Hallo, ich möchte mir PHP 4 kompilieren. Nach dem Aufruf von make kommt folgender Fehler: /bin/sh /home/helms/src/build/php-4.0.3pl1/libtool --silent \ --mode=compile gcc -I. \ -I/home/helms/src/build/php-4.0.3pl1/ext/standard \ -I/home/helms/src/build/php-4.0.3pl1 \ -I/home/helms/src/build/php-4.0.3pl1/main \ -I/usr/local/apache/include \ -I/home/helms/src/build/php-4.0.3pl1/Zend \ -I/home/helms/src/build/php-4.0.3pl1 -I/usr/include/gd \ -I/home/helms/src/build/php-4.0.3pl1/ext/mysql/libmysql \ -I/home/helms/src/build/php-4.0.3pl1/ext/xml/expat/xmltok \ -I/home/helms/src/build/php-4.0.3pl1/ext/xml/expat/xmlparse \ -I/home/helms/src/build/php-4.0.3pl1/TSRM -DXML_BYTE_ORDER=12 -g \ -O2 -c microtime.c microtime.c: In function `php_if_getrusage': microtime.c:97: storage size of `usg' isn't known microtime.c:100: `RUSAGE_SELF' undeclared (first use in this function) microtime.c:100: (Each undeclared identifier is reported only once microtime.c:100: for each function it appears in.) microtime.c:106: `RUSAGE_CHILDREN' undeclared (first use in this function) make[3]: *** [microtime.lo] Error 1 make[3]: Leaving directory `/home/helms/src/build/php-4.0.3pl1/ext/standard' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/helms/src/build/php-4.0.3pl1/ext/standard' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/helms/src/build/php-4.0.3pl1/ext' make: *** [all-recursive] Error 1 Ich kann aber leider weder den Fehler finden noch die Ursache... Auch ein Deaktivieren von HAVE_GETRUSAGE in der php_config.h und ein anschließendes make bringt nichts... Hat jemand eine Idee, woran das liegen könnte? Gruß, Sebastian -- Do not meddle in the affairs of Wizards, for they are subtle and quick to anger. Sebastian Helms - http://www.helms.sh - mailto:mail@helms.sh (PGP welcome)
On Fre, 12 Okt 2001, Sebastian Helms wrote:
ich möchte mir PHP 4 kompilieren. Nach dem Aufruf von make kommt folgender Fehler: microtime.c: In function `php_if_getrusage': microtime.c:97: storage size of `usg' isn't known microtime.c:100: `RUSAGE_SELF' undeclared (first use in this function) microtime.c:100: (Each undeclared identifier is reported only once microtime.c:100: for each function it appears in.) microtime.c:106: `RUSAGE_CHILDREN' undeclared (first use in this function)
Hat jemand eine Idee, woran das liegen könnte?
$ find /usr{,/local}/include -name "*.h" \
-exec grep -l 'RUSAGE_\(SELF\|CHILDREN\)' {} \;
/usr/include/bits/resource.h
$ find /usr{,/local}/include -name "*.h" \
-exec grep -l 'include.*bits/resource.h' {} \;
/usr/include/sys/resource.h
$ man -k rusage
getrusage (2) - get/set resource limits and usage
$ man 2 getrusage | head -15 | tail -5
SYNOPSIS
#include
Moin David, * David Haller schrieb am 13 Oct 2001:
On Fre, 12 Okt 2001, Sebastian Helms wrote:
ich möchte mir PHP 4 kompilieren. Nach dem Aufruf von make kommt folgender Fehler: microtime.c: In function `php_if_getrusage': microtime.c:97: storage size of `usg' isn't known microtime.c:100: `RUSAGE_SELF' undeclared (first use in this function) microtime.c:100: (Each undeclared identifier is reported only once microtime.c:100: for each function it appears in.) microtime.c:106: `RUSAGE_CHILDREN' undeclared (first use in this function)
Hat jemand eine Idee, woran das liegen könnte?
Wie's scheint wird
nicht (korrekt) eingebunden... Kontrolliere mal ob die resource.h von microtime.{c,h} eingebunden wird (ggfs. indirekt, siehe das 2te find oben, setz das mal auf das php-source-dir an), und wenn ja, die Umgebung der beiden RUSAGE_ defines in bits/resouce.h ob die von weiteren gesetzten defines abhaengen (z.B. _GNU_SOURCE oder so)...
Eingebunden wird
Moin SuSE-Linux, * Sebastian Helms schrieb am 13 Oct 2001:
Ich mußte allerdings mit Erstaunen feststellen, daß resource.h nicht aus /usr/include/sys/ eingebunden wird. Ich habe in der sys/resource.h ein eigenes define gesetzt, dieses findet sich bei einer #ifdef Abfrage in microtime.c nicht wieder (nach dem Einbinden von resource.h *g*).
Ich gestehe, ich habe jetzt erst in die PHP FAQ gesehen.. da steht diese Problem genau beschrieben. Allerdings hilft mir das nicht weiter, da ich immernoch nicht rausgefunden habe, woher gcc denn nun seine includes bekommt. /usr/include/sys/resource.c /usr/src/linux/include/linux/resource.c in versch. Kernel-Varianten werden - wenn ich mich nicht allzu blöd angestellt habe - nicht benutzt. Gruß, Sebastian -- Do not meddle in the affairs of Wizards, for they are subtle and quick to anger. Sebastian Helms - http://www.helms.sh - mailto:mail@helms.sh (PGP welcome) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.sh/faq/
participants (2)
-
David Haller
-
Sebastian Helms