Ticket #1229 (closed defect: worksforme)

Opened 1 year ago

Last modified 3 months ago

Unable to compile on AIX 5.3 using gcc 4.1.1

Reported by: j.m.jackson@thecompany.org Assigned to: jan
Priority: normal Milestone: 1.5.0
Component: core Version: 1.4.18
Severity: blocker Keywords:
Cc: Blocking:
Need Feedback: 1

Description

Here's the configure line that I used:

./configure --prefix=/opt/lighttpd-1.4.15

Here's the last output from the compiler before it died:

bash-3.00# make

make all-recursive

Making all in src make[1]: Entering directory `/tmp/lighttpd-1.4.15/src' /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -DLIBRARY_DIR="\"/opt/lighttpd-1.4.15/lib\"" -I. -I.. -D_REENTRANT -DEXTENSIONS -I/opt/pware/include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -g -O2 -Wall -W -Wshadow -pedantic -std=gnu99 -MT mod_webdav_la-mod_webdav.lo -MD -MP -MF .deps/mod_webdav_la-mod_webdav.Tpo -c -o mod_webdav_la-mod_webdav.lo test -f 'mod_webdav.c' || echo './'mod_webdav.c

gcc -DHAVE_CONFIG_H -DLIBRARY_DIR=\"/opt/lighttpd-1.4.15/lib\" -I. -I.. -D_REENTRANT -DEXTENSIONS -I/opt/pware/include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -g -O2 -Wall -W -Wshadow -pedantic -std=gnu99 -MT mod_webdav_la-mod_webdav.lo -MD -MP -MF .deps/mod_webdav_la-mod_webdav.Tpo -c mod_webdav.c -o mod_webdav_la-mod_webdav.o

mod_webdav.c: In function 'webdav_delete_file': mod_webdav.c:536: warning: unused parameter 'p' mod_webdav.c: In function 'webdav_copy_file': mod_webdav.c:664: warning: unused parameter 'p' mod_webdav.c: In function 'webdav_has_lock': mod_webdav.c:1153: warning: unused parameter 'srv' mod_webdav.c:1153: warning: unused parameter 'con' mod_webdav.c:1153: warning: unused parameter 'p' mod_webdav.c:1153: warning: unused parameter 'uri' mod_webdav.c: In function 'mod_webdav_subrequest_handler': mod_webdav.c:1705: error: 'struct <anonymous>' has no member named 'mmap64' mod_webdav.c:1713: error: 'struct <anonymous>' has no member named 'mmap64' mod_webdav.c:1720: error: 'struct <anonymous>' has no member named 'mmap64' mod_webdav.c:1728: error: 'struct <anonymous>' has no member named 'mmap64' make[1]: *** [mod_webdav_la-mod_webdav.lo] Error 1 make[1]: Leaving directory `/tmp/lighttpd-1.4.15/src' make: *** [all-recursive] Error 1 make: 1254-004 The error code from the last command is 2.

Stop.

Attachments

Change History

06/12/2007 07:51:45 PM changed by j.m.jackson@thecompany.org

Ok, i can get farther if i use the following configure line, which disables large file support:

./configure --disable-lfs --prefix=/opt/lighttpd-1.4.15

AND the resultant binary is runnable, but it looks like the modules compile their .a and .la parts, but never produce the .so file, so when i run lighty, i get this:

./lighttpd -f /tmp/lighttpd-1.4.15/doc/lighttpd.conf 2007-06-12 15:42:12: (plugin.c.165) dlopen() failed for: /opt/lighttpd-1.4.15/lib/mod_indexfile.so Could not load module /opt/lighttpd-1.4.15/lib/mod_indexfile.so. System error: No such file or directory 2007-06-12 15:42:12: (server.c.594) loading plugins finally failed

ls /opt/lighttpd-1.4.15/lib/

liblightcomp.a mod_expire.a mod_scgi.a liblightcomp.la mod_expire.la mod_scgi.la mod_access.a mod_extforward.a mod_secdownload.a mod_access.la mod_extforward.la mod_secdownload.la mod_accesslog.a mod_fastcgi.a mod_setenv.a mod_accesslog.la mod_fastcgi.la mod_setenv.la mod_alias.a mod_flv_streaming.a mod_simple_vhost.a mod_alias.la mod_flv_streaming.la mod_simple_vhost.la mod_auth.a mod_indexfile.a mod_ssi.a mod_auth.la mod_indexfile.la mod_ssi.la mod_cgi.a mod_magnet.a mod_staticfile.a mod_cgi.la mod_magnet.la mod_staticfile.la mod_cml.a mod_mysql_vhost.a mod_status.a mod_cml.la mod_mysql_vhost.la mod_status.la mod_compress.a mod_proxy.a mod_trigger_b4_dl.a mod_compress.la mod_proxy.la mod_trigger_b4_dl.la mod_dirlisting.a mod_redirect.a mod_userdir.a mod_dirlisting.la mod_redirect.la mod_userdir.la mod_evasive.a mod_rewrite.a mod_usertrack.a mod_evasive.la mod_rewrite.la mod_usertrack.la mod_evhost.a mod_rrdtool.a mod_webdav.a mod_evhost.la mod_rrdtool.la mod_webdav.la

Any ideas?

06/16/2007 02:23:34 PM changed by anonymous

got the same problems under qnx. it seems that there are no shared libs created.

10/26/2007 09:21:04 PM changed by anonymous

  • pending changed.

I were able to compile using the xlc_r compiler with the following configure command

CC="xlc_r" CFLAGS="-O2 -brtl -bexpfull" \ ./configure \ --disable-lfs \

The shared libaries all end up under src/.libs, however in order to get them to work properly you will need to change CFLAGS of the main binary to use -brtl -bexpfull and the shared libraries to use -G -qmkshrobj -bexpfull, so changes to the Makefiles in . and ./src as well as libtool needs to be made. The configure script does not seem to update Makefile's and libtool's correctly for aix.

I did run into a problem "configfile.c", line 977.1: 1506-191 (E) The character # is not a valid C source character. "configfile.c", line 979.1: 1506-191 (E) The character # is not a valid C source character. "configfile.c", line 981.1: 1506-191 (E) The character # is not a valid C source character. "configfile.c", line 977.8: 1506-276 (S) Syntax error: possible missing ')'? "configfile.c", line 977.2: 1506-045 (S) Undeclared identifier ifdef. make[2]: *** [configfile.o] Error 1

I just got rid of the #ifdef, specifying '/' in all cases, and it compiled fine, though that is likely not the right long term solution.

01/28/2008 06:17:12 PM changed by r_l_cross a t lycos.co.uk

  • version changed from 1.4.15 to 1.4.18.

I got the same "mmap64" message with AIX5.3TL4 using IBM's version of GCC4.0.0. However I was able to get rid of this message by altering the definition of the mmap structure defined in chunk.h and used in mod_cgi.c; mod_webdav.c; network_writev.c; and chunk.c. I assumed that this might be a problem with the system "mmap" definitions, so renamed the one in the five files named to "mymap" and the error message disappears. At the basic level that I'm able to test at the moment this doesn't seem to break the software. I'm also wondering if switching the compile system to 32bit mode (using the environment variable ABI=32) would also be a way to stop the error? Unfortunately, I've not got access to 64-bit AIX hardware at the moment to try this.

02/17/2008 05:13:23 PM changed by stbuehler

  • pending set to 1.

Ok, this is an "easy" problem - your systems define a macro mmap:

#define mmap mmap64

I think that is broken behaviour... but how to fix it?

Either rename the mmap element to mymap as suggested above, or try adding

#include <sys/mman.h>

in chunks.h before the struct definition. I would prefer the latter one ;-)

04/24/2008 09:30:41 AM changed by stbuehler

  • status changed from new to closed.
  • resolution set to worksforme.

Broken system header (imho) and missing feedback.


Add/Change #1229 (Unable to compile on AIX 5.3 using gcc 4.1.1)




Change Properties
Action