2016-01-15 2 views
3

Когда я создавал php 7.0.1 У меня были некоторые предупреждения, я надеялся, что это будет исправлено в новой версии php, но сегодня у меня было больше предупреждений с 7.0.2.Предупреждения о компиляции PHP7 и Apache

PHP

6 предупреждения были сгенерированы php_date.c файлов

/Users/username/folder/php/ext/date/php_date.c:2196:6: warning: absolute value function 'abs' given an argument of type 'long long' but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value] abs(utc_offset/60), 
               ^
/Users/username/folder/php/ext/date/php_date.c:2196:6: note: use function 'llabs' instead abs(utc_offset/60), ^~~ llabs 
      6 warnings generated. 

1 предупреждения генерируется interval.c

/Users/javidgajievi/Ovlee/php/ext/date/lib/interval.c:73:13: warning: using integer absolute value function 'abs' when argument is of 
     floating point type [-Wabsolute-value] 
     rt->days = abs(floor((one->sse - two->sse - (dst_h_corr * 3600) - (dst_m_corr * 60))/86400)); 
       ^
/Users/javidgajievi/Ovlee/php/ext/date/lib/interval.c:73:13: note: use function 'fabs' instead 
     rt->days = abs(floor((one->sse - two->sse - (dst_h_corr * 3600) - (dst_m_corr * 60))/86400)); 
        ^~~ 
        fabs 
1 warning generated. 

и 1 предупреждение был сгенерирован Pthreads

ext/pthreads/src/object.h:41:1: warning: '/*' within block comment [-Wcomment] 
/* {{{ */ 
^ 

Apache

Apache генерирует больше предупреждений, поэтому я собираюсь перечислить лишь некоторые из них, чтобы дать вам представление о предупреждениях.

mod_authnz_ldap.c:554:50: warning: 'ldap_err2string' is deprecated: first deprecated in OS X 10.11 - use OpenDirectory Framework 
     [-Wdeprecated-declarations] 
         user, r->uri, ldc->reason, ldap_err2string(result)); 
               ^
/Users/username/folder/apache/include/http_log.h:448:44: note: expanded from macro 'ap_log_rerror' 
#define ap_log_rerror(...) ap_log_rerror__(__VA_ARGS__) 
             ^
/Users/username/ovlee/apache/include/http_log.h:451:63: note: expanded from macro 'ap_log_rerror__' 
      ap_log_rerror_(file, line, mi, level, status, r, __VA_ARGS__); \ 

Моя конфигурация сборки

PHP

./configure \ 
--prefix=/Users/username/fodler/php \ 
--exec-prefix=/Users/username/folder/php \ 
--with-apxs2=/Users/username/folder/apache/bin/apxs \ 
--with-config-file-scan-dir=/Users/username/folder/php/lib \ 
--with-config-file-path=/Users/username/folder/php/lib \ 
--disable-all \ 
--enable-maintainer-zts \ 
--enable-pthreads 

Apache

./configure \ 
--prefix=/Users/username/fodler/apache \ 
--exec-prefix=/Users/username/folder/apache \ 
--with-pcre=/Users/username/folder/apache/pcre \ 
--enable-module=so \ 
--with-mpm=worker 

Так что я не буду перечислять все предупреждения, так как я думаю, что проблема может быть причиной из моего окружения который представляет собой Mac OSX 10.11.2, xCode 7.2, PHP 7.0.2, APAHCE (Httpd) 2.4.18

Как вы думаете, в чем проблема? как я могу исправить это предупреждение?

+1

Есть ли какой-то вопрос тоже? –

+0

Очевидно, вопрос в том, как я могу исправить это предупреждение? –

+0

Вы хотите изменить/исправить код (и, возможно, внести свой вклад в исходный репозиторий php)? – VolkerK

ответ

2

«Я только хочу знать причину этих предупреждений».
Хорошо, не уверен, если это действительно поможет вам, но здесь мы идем .... ;-)

Относительно /Users/username/folder/php/ext/date/php_date.c:2196:6:
Код линии

abs(utc_offset/60) 

где utc_offset объявлен как timelib_sll utc_offset ,
timelib_sll определяется как

#if defined(_MSC_VER) 
typedef uint64_t timelib_ull; 
typedef int64_t timelib_sll; 
# define TIMELIB_LL_CONST(n) n ## i64 
#else 
typedef unsigned long long timelib_ull; 
typedef signed long long timelib_sll; 
# define TIMELIB_LL_CONST(n) n ## ll 
#endif 

в timelib_structs.h и так как вы находитесь на макинтош, _MSC_VER не будет определена и, следовательно, timelib_sll короткий длинный длинный.
И компилятор жалуется на короткий длинный длинный * передаваемый функции, ожидающей int (который в вашем случае «меньше», чем длинный).

Аналогичная информация с предупреждением для interval.c: 73.

В архиве я скачал из php.net не включают каталог доб/Pthreads, но предупреждение означает, что кто-то поставил комментарий как

/** 
lalala 
    /* {{{ */ 
*/ 

в этом файле и компилятор комментируя блок вложенных комментариев.

Относительно mod_authnz_ldap.c:554:50: warning: 'ldap_err2string' is deprecated: apple хочет, чтобы разработчики использовали другую функцию сейчас. Прямо сейчас I don't know будет заменой.
Следующие два сообщения (содержащие expanded from macro) просто намекают на источник; так как он находится в макрорасширении, это может быть трудно найти иначе. (Так как это выглядело явно как предупреждение лязг я посмотрел его и, да: From Xcode 4.2, Clang is the default compiler for Mac OS X. - так что я узнал кое-что из этого Анвэй ;-))


* редактировать и кстати:
следующая строка

abs((utc_offset % 60))) 

, за которое я не получил предупреждения; компилятор достаточно умен, чтобы понять, что что-то по модулю 60 находится в пределах диапазона значений int.

+0

Благодарим вас за то, что вы пытаетесь понять этот процесс, но то, что меня действительно интересовало, стало причиной этих предупреждений тем, что я имел в виду, являются ли это ошибками или чем-то, вызывающими мою машину .. но этот ответ заслуживает «голосования». –

+0

Хотя это возможно, в этом случае это не имеет никакого отношения к вашей машине, конфигурации или настройке. И те, что вы опубликовали, пока некритичны. – VolkerK

+0

Да, несмотря на предупреждения, как php, так и apache работает нормально, я просто думаю, что я должен сосредоточиться на каждой детали процесса сборки. Еще раз спасибо. –

Смежные вопросы