Opened 9 months ago
Closed 8 months ago
#69432 closed defect (fixed)
lighttpd @1.4.74 does not build on PPC Leopard, Mac OS X 10.5.8, because of error: ../compat/sys/queue.h: No such file or directory
Reported by: | ballapete (Peter "Pete" Dyballa) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.1 |
Keywords: | leopard ppc | Cc: | gstrauss (Glenn Strauss) |
Port: | lighttpd |
Description
Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_www_lighttpd/lighttpd/work/lighttpd-1.4.74" && ./configure --prefix=/opt/local CC_FOR_BUILD="/usr/bin/gcc-4.2" CFLAGS_FOR_BUILD="-Os -I/opt/local/include/LegacySupport" --with-brotli --with-lua=lua --with-pcre2 --with-xxhash --with-zlib --with-zstd ac_cv_prog_AWK=/usr/bin/awk --with-openssl . . . depbase=`echo h2.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/sh ../libtool --tag=CC --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -DHAVE_VERSIONSTAMP_H -DLIBRARY_DIR="\"/opt/local/lib\"" -DSBIN_DIR="\"/opt/local/sbin\"" -I. -I.. -I/opt/local/include -I/opt/local/include/LegacySupport -D_REENTRANT -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_DEFAULT_SOURCE -pipe -Os -I/opt/local/include/LegacySupport -arch ppc -pipe -Wall -W -Wshadow -pedantic -MT h2.lo -MD -MP -MF $depbase.Tpo -c -o h2.lo h2.c &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -DHAVE_VERSIONSTAMP_H -DLIBRARY_DIR=\"/opt/local/lib\" -DSBIN_DIR=\"/opt/local/sbin\" -I. -I.. -I/opt/local/include -I/opt/local/include/LegacySupport -D_REENTRANT -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_DEFAULT_SOURCE -pipe -Os -I/opt/local/include/LegacySupport -arch ppc -pipe -Wall -W -Wshadow -pedantic -MT h2.lo -MD -MP -MF .deps/h2.Tpo -c h2.c -fno-common -DPIC -o .libs/h2.o In file included from ls-hpack/lshpack.h:34, from h2.h:10, from h2.c:8: ls-hpack/lsxpack_header.h:60: warning: type of bit-field 'flags' is a GCC extension In file included from h2.h:10, from h2.c:8: ls-hpack/lshpack.h:231:33: error: ../compat/sys/queue.h: No such file or directory In file included from h2.h:10, from h2.c:8: ls-hpack/lshpack.h:259: warning: data definition has no type or storage class ls-hpack/lshpack.h:259: warning: type defaults to 'int' in declaration of 'STAILQ_HEAD' ls-hpack/lshpack.h:259: warning: parameter names (without types) in function declaration ls-hpack/lshpack.h:280: error: field 'hpe_all_entries' has incomplete type make[3]: *** [h2.lo] Error 1 make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_www_lighttpd/lighttpd/work/lighttpd-1.4.74/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_www_lighttpd/lighttpd/work/lighttpd-1.4.74/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_www_lighttpd/lighttpd/work/lighttpd-1.4.74' make: *** [all] Error 2
The mentioend directory, …/lighttpd/work/lighttpd-1.4.74/src/compat
, conatains here only the file fastcgi.h
.
Attachments (1)
Change History (7)
Changed 9 months ago by ballapete (Peter "Pete" Dyballa)
comment:1 Changed 9 months ago by ballapete (Peter "Pete" Dyballa)
Inclusion of ../compat/sys/queue.h
comes from this code in ls-hpack/lshpack.h
:
228 #ifndef STAILQ_FOREACH 229 230 #ifndef SIMPLEQ_FOREACH 231 #include "../compat/sys/queue.h" 232 #endif
With GCC7
all builds fine!
comment:2 Changed 9 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | gstrauss added; ryandesign@… removed |
---|---|
Owner: | set to ryandesign |
Status: | new → assigned |
comment:3 Changed 9 months ago by ballapete (Peter "Pete" Dyballa)
When Apple's GCC 4.2
pre-processes h2.c
with option -H
it gives:
/opt/local/include/LegacySupport/assert.h:3:2: warning: #include_next is a GCC extension ..... /usr/include/assert.h .... /opt/local/include/LegacySupport/string.h In file included from ls-hpack/lsxpack_header.h:10, from ls-hpack/lshpack.h:34, from h2.h:10, from h2.c:8: /opt/local/include/LegacySupport/string.h:25:2: warning: #include_next is a GCC extension ..... /usr/include/string.h In file included from h2.h:10, from h2.c:8: ls-hpack/lshpack.h:231:33: error: ../compat/sys/queue.h: No such file or directory . /usr/include/arpa/inet.h .. /usr/include/netinet/in.h ... /usr/include/sys/socket.h .... /usr/include/machine/_param.h ..... /usr/include/ppc/_param.h ... /usr/include/netinet6/in6.h . /opt/local/include/LegacySupport/stdlib.h In file included from h2.c:16:
With GCC7
I get:
/opt/local/include/LegacySupport/assert.h:3:2: warning: #include_next is a GCC extension #include_next <assert.h> ^~~~~~~~~~~~ ..... /usr/include/assert.h .... /opt/local/include/LegacySupport/string.h In file included from ls-hpack/lsxpack_header.h:10:0, from ls-hpack/lshpack.h:34, from h2.h:10, from h2.c:8: /opt/local/include/LegacySupport/string.h:25:2: warning: #include_next is a GCC extension #include_next <string.h> ^~~~~~~~~~~~ ..... /usr/include/string.h ... /opt/local/include/LegacySupport/sys/queue.h In file included from ls-hpack/lshpack.h:224:0, from h2.h:10, from h2.c:8: /opt/local/include/LegacySupport/sys/queue.h:25:2: warning: #include_next is a GCC extension #include_next <sys/queue.h> ^~~~~~~~~~~~ .... /usr/include/sys/queue.h <<<<<============ . /usr/include/arpa/inet.h .. /usr/include/netinet/in.h ... /usr/include/sys/socket.h .... /usr/include/machine/_param.h ..... /usr/include/ppc/_param.h ... /usr/include/netinet6/in6.h . /opt/local/include/LegacySupport/stdlib.h In file included from h2.c:16:0:
This is because I should have cited from h2.c
:
222 #ifdef __has_include 223 #if __has_include(<sys/queue.h>) 224 #include <sys/queue.h> 225 #endif 226 #endif 227 228 #ifndef STAILQ_FOREACH 229 230 #ifndef SIMPLEQ_FOREACH 231 #include "../compat/sys/queue.h" 232 #endif
Then follows
233 234 /* OpenBSD and older MacOSX might not define STAILQ, 235 * but ls-hpack usage could use SIMPLEQ as alternative */ 236 #if defined(SIMPLEQ_FOREACH) && !defined(STAILQ_FOREACH) 237 #define STAILQ_HEAD SIMPLEQ_HEAD 238 #define STAILQ_ENTRY SIMPLEQ_ENTRY 239 #define STAILQ_INIT SIMPLEQ_INIT 240 #define STAILQ_INSERT_TAIL SIMPLEQ_INSERT_TAIL 241 #define STAILQ_EMPTY SIMPLEQ_EMPTY 242 #define STAILQ_FIRST SIMPLEQ_FIRST 243 #define STAILQ_NEXT SIMPLEQ_NEXT 244 #define STAILQ_REMOVE_HEAD SIMPLEQ_REMOVE_HEAD 245 #define STAILQ_FOREACH SIMPLEQ_FOREACH 246 #endif 247 248 #endif
On Leopard SIMPLEQ_FOREACH is not #define
d. I Think GCC7
should be used… (I have saved the pre-processed output from both compilers.)
comment:4 follow-up: 5 Changed 9 months ago by gstrauss (Glenn Strauss)
Fixed upstream in lighttpd git.
This works on FreeBSD, Cygwin, and modern MacOS https://git.lighttpd.net/lighttpd/lighttpd1.4/commit/106c4b147b7bc357d8764cddd0bf30fa9e8c0bf9
This fixes the file missing from the release tarball, but won't help you until the next lighttpd release, which is scheduled this month (March). https://git.lighttpd.net/lighttpd/lighttpd1.4/commit/47db644874aab1ade7951e4d78aec589276abe07
comment:5 Changed 9 months ago by ballapete (Peter "Pete" Dyballa)
Replying to gstrauss:
This fixes the file missing from the release tarball, but won't help you until the next lighttpd release, which is scheduled this month (March).
That's alright with me!
comment:6 Changed 8 months ago by gstrauss (Glenn Strauss)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Main.log from PPC Leopard, Mac OS X 10.5.8