libmemcache does not properly configure itself (via pmk) on FreeBSD 4.x. It does that just fine on FreeBSD 5.3 while on 4.x it does this: xp2400# cd /usr/ports/databases/libmemcache xp2400# make ===> libmemcache-1.2.3 depends on executable: pmk - found ===> Configuring for libmemcache-1.2.3 cd /usr/ports/databases/libmemcache/work/libmemcache-1.2.3; /usr/local/bin/pmk PMK version 0.9.2 Loaded 44 predefinined variables. Loaded 0 overridden switches. Loaded 0 overridden variables. Total : 62 variables. Parsing '/usr/ports/databases/libmemcache/work/libmemcache-1.2.3/pmkfile' Processing commands : * Parsing settings Setting global language : Set to 'C'. Collecting targets : Added 'Makefile.pmk'. Total 1 target(s) added. Detecting compilers : Gathering data for compiler detection. Detecting 'CC' : GNU gcc (version 295). Setting SLCFLAGS to '-fPIC' Setting SLLDFLAGS to '-fPIC -shared' * Parsing switches Added 'debug' switch. Total 1 switch(es) added. < Begin of 'IF' condition [!debug] * Parsing define redefined 'CFLAGS' variable. > End of 'IF' condition [!debug] - Skipping 'IF' condition [debug] * Parsing define defined 'BASE' variable. defined 'LIBDIR' variable. * Checking binary [bzip_config] Found binary 'bzip2' : yes. * Checking binary [chown_config] Found binary 'chown' : yes. * Checking binary [cvs_config] Found binary 'cvs' : yes. * Checking binary [cvs2cl_config] Found binary 'cvs2cl.pl' : no. * Checking binary [cvs2cl_config] Found binary 'cvs2cl' : no. * Checking binary [echo_config] Found binary 'echo' : yes. * Checking binary [killall_config] Found binary 'killall' : yes. * Checking binary [ln_config] Found binary 'ln' : yes. * Checking binary [memcached_config] Found binary 'memcached' : no. * Checking binary [mv_config] Found binary 'mv' : yes. * Checking binary [pmk_config] Found binary 'pmk' : yes. * Checking binary [rm_config] Found binary 'rm' : yes. * Checking binary [tar_config] Found binary 'tar' : yes. * Checking header [include_read] Use C language with CC compiler. Store compiler flags in 'CFLAGS'. Found header 'unistd.h' : yes. Found function 'read' : yes. * Checking header [include_socket] Use C language with CC compiler. Store compiler flags in 'CFLAGS'. Found header 'sys/socket.h' : no. *** Error code 1 Stop in /usr/ports/databases/libmemcache. xp2400# How-To-Repeat: Try to build libmemcache from ports on 4.x.
Responsible Changed From-To: freebsd-ports-bugs->seanc Over to maintainer
The problem is that pmk tries to include sys/socket.h without sys/types.h and the following program fails: #include <stdio.h> #include <sys/socket.h> int main() {return(0);} In file included from ./pmk_SG9entFc.c:2: /usr/include/sys/socket.h:52: syntax error before `sa_family_t' /usr/include/sys/socket.h:52: warning: data definition has no type or storage class /usr/include/sys/socket.h:163: syntax error before `u_char' /usr/include/sys/socket.h:174: syntax error before `u_short' ..... Does anyone know how to force pmk include sys/types.h before sys/socket.h in its test programs, so we can create the proper patch? The attached patch removes failing checks as we certainly know they would pass on FreeBSD if appropriate headers were included as in the source of libmemcache.
At 17:03 27.4.2005, Vasil Dimov wrote: >Does anyone know how to force pmk include sys/types.h before >sys/socket.h in its test programs, so we can create the proper patch? One of pmk developers (mipsator) replied to me that future versions will have option to permit inclusion of several headers for the test. Tomaz
State Changed From-To: open->closed Vasil's patch was committed.