Hi,
When I try to build Pound debian-version 2.4-2 under debian etch (using
gcc-4.1.1-15) I get a compile error (log at the end of the mail).
Removing -fstack-protector from the CFLAGS makes it compile.
My question now: is it safe to remove the -fstack-protector from the compile
options?
When building upstream source the -fstack-protector is not present in CFLAGS
anyways AFAICS.
thanks,
Tom
x(at)y:~/tom/building/pound/pound-2.4$ debuild -us -uc
fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
[ ! -f Makefile ] || /usr/bin/make clean
rm -f config.h config.status config.log Makefile
dh_clean
dpkg-source -b pound-2.4
dpkg-source: warning: unknown information field `Homepage' in input data in
general section of control info file
dpkg-source: building pound using existing pound_2.4.orig.tar.gz
dpkg-source: building pound in pound_2.4-2.diff.gz
dpkg-source: building pound in pound_2.4-2.dsc
debian/rules build
dh_testdir
mv config.sub config.sub.upstream && ln -s /usr/share/misc/config.sub
mv config.guess config.guess.upstream && ln -s
/usr/share/misc/config.guess
env LDFLAGS="-Wl,-z,relro,-z,noexecstack -pie"
CFLAGS="-O2 -D_FORTIFY_SOURCE=2 -fstack-protector -fPIE" ./configure
--prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info
--sysconfdir=/etc/pound
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
configure: *** Checking for threads library and/or flags ***
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for cc_r... gcc
configure: *** Parsing options ***
configure: *** Checking for libraries ***
checking for dlopen in -ldl... yes
checking for socket in -lsocket... no
checking for hstrerror in -lresolv... yes
checking for BIO_new in -lcrypto... yes
checking for SSL_CTX_new in -lssl... yes
checking for regcomp in -lpcreposix... yes
checking for malloc in -ltcmalloc... no
checking for malloc in -lhoard... no
checking for pthread_attr_setstacksize in
LIBS=-lpcreposix -lssl -lcrypto -lresolv -ldl -lm with
CFLAGS=-O2 -D_FORTIFY_SOURCE=2 -fstack-protector -fPIE -pthread -DUPER... OK
configure: *** Checking for header files ***
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for sys/types.h... (cached) yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/engine.h usability... yes
checking openssl/engine.h presence... yes
checking for openssl/engine.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking wait.h usability... yes
checking wait.h presence... yes
checking for wait.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking for sys/stat.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking pcreposix.h usability... yes
checking pcreposix.h presence... yes
checking for pcreposix.h... yes
checking pcre/pcreposix.h usability... no
checking pcre/pcreposix.h presence... no
checking for pcre/pcreposix.h... no
configure: *** Checking for additonal information ***
checking for facilitynames presence... yes
checking return type of signal handlers... void
checking for an ANSI C-conforming const... yes
checking for uid_t in sys/types.h... yes
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for in_addr_t... yes
checking for in_port_t... yes
checking for time_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for working memcmp... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/socket.h... (cached) yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... (cached) void
checking whether lstat dereferences a symlink specified with a trailing
slash... yes
checking whether stat accepts an empty string... no
checking for strftime... yes
checking for getaddrinfo... yes
checking for inet_ntop... yes
checking for memset... yes
checking for regcomp... yes
checking for poll... yes
checking for socket... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strspn... yes
checking for strtol... yes
checking for setsid... yes
checking for X509_STORE_set_flags... yes
checking for localtime_r... yes
checking for gettimeofday... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING: Makefile.in seems to ignore the --datarootdir setting
config.status: creating config.h
rm config.sub && mv config.sub.upstream config.sub
rm config.guess && mv config.guess.upstream config.guess
dh_testdir
/usr/bin/make
make[1]: Entering directory `/home/staffi/tom/building/pound/pound-2.4'
"gcc" -DF_CONF=\"/etc/pound/pound.cfg\" -DVERSION=\""2.4"\" -DC_SSL=\"""\"
-DC_T_RSA=\""0"\" -DC_MAXBUF=\""0"\" -DC_OWNER=\"""\" -DC_GROUP=\"""\"
-DC_SUPER=\""0"\" -DC_CERT1L=\""0"\" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
-fPIE -pthread -DUPER -DNEED_STACK -DHAVE_SYSLOG_H=1 -pthread -D_REENTRANT
-D_THREAD_SAFE -Wstrict-prototypes -pipe -c -o
pound.o pound.c
"gcc" -DF_CONF=\"/etc/pound/pound.cfg\" -DVERSION=\""2.4"\" -DC_SSL=\"""\"
-DC_T_RSA=\""0"\" -DC_MAXBUF=\""0"\" -DC_OWNER=\"""\" -DC_GROUP=\"""\"
-DC_SUPER=\""0"\" -DC_CERT1L=\""0"\" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
-fPIE -pthread -DUPER -DNEED_STACK -DHAVE_SYSLOG_H=1 -pthread -D_REENTRANT
-D_THREAD_SAFE -Wstrict-prototypes -pipe -c -o
http.o http.c
"gcc" -DF_CONF=\"/etc/pound/pound.cfg\" -DVERSION=\""2.4"\" -DC_SSL=\"""\"
-DC_T_RSA=\""0"\" -DC_MAXBUF=\""0"\" -DC_OWNER=\"""\" -DC_GROUP=\"""\"
-DC_SUPER=\""0"\" -DC_CERT1L=\""0"\" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
-fPIE -pthread -DUPER -DNEED_STACK -DHAVE_SYSLOG_H=1 -pthread -D_REENTRANT
-D_THREAD_SAFE -Wstrict-prototypes -pipe -c -o
config.o config.c
config.c: In function 't_hash':
config.c:376: warning: this decimal constant is unsigned only in ISO C90
"gcc" -DF_CONF=\"/etc/pound/pound.cfg\" -DVERSION=\""2.4"\" -DC_SSL=\"""\"
-DC_T_RSA=\""0"\" -DC_MAXBUF=\""0"\" -DC_OWNER=\"""\" -DC_GROUP=\"""\"
-DC_SUPER=\""0"\" -DC_CERT1L=\""0"\" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
-fPIE -pthread -DUPER -DNEED_STACK -DHAVE_SYSLOG_H=1 -pthread -D_REENTRANT
-D_THREAD_SAFE -Wstrict-prototypes -pipe -c -o
svc.o svc.c
svc.c: In function 'hash_backend':
svc.c:436: warning: this decimal constant is unsigned only in ISO C90
"gcc" -Wl,-z,relro,-z,noexecstack -pie -pthread -o pound pound.o http.o
config.o svc.o -lpcreposix -lssl -lcrypto -lresolv -ldl -lm
pound.o: In function `main':
pound.c:(.text+0x3a): undefined reference to `__stack_chk_guard'
http.o: In function `copy_bin':
http.c:(.text+0xca): undefined reference to `__stack_chk_guard'
http.c:(.text+0x14d): undefined reference to `__stack_chk_guard'
http.c:(.text+0x1d7): undefined reference to `__stack_chk_fail_local'
http.o: In function `get_headers':
http.c:(.text+0x387): undefined reference to `__stack_chk_guard'
http.c:(.text+0x542): undefined reference to `__stack_chk_guard'
http.c:(.text+0x65b): undefined reference to `__stack_chk_fail_local'
http.o: In function `copy_chunks':
http.c:(.text+0x699): undefined reference to `__stack_chk_guard'
http.c:(.text+0x761): undefined reference to `__stack_chk_guard'
http.c:(.text+0xb21): undefined reference to `__stack_chk_fail_local'
http.o: In function `thr_http':
http.c:(.text+0xdf0): undefined reference to `__stack_chk_guard'
config.o: In function `parse_be':
config.c:(.text+0x225): undefined reference to `__stack_chk_guard'
config.c:(.text+0xc04): undefined reference to `__stack_chk_guard'
config.c:(.text+0xc57): undefined reference to `__stack_chk_fail_local'
config.o: In function `parse_service':
config.c:(.text+0xcb1): undefined reference to `__stack_chk_guard'
config.c:(.text+0x18de): undefined reference to `__stack_chk_guard'
config.c:(.text+0x1a30): undefined reference to `__stack_chk_fail_local'
config.o: In function `parse_HTTPS':
config.c:(.text+0x1f7f): undefined reference to `__stack_chk_guard'
config.c:(.text+0x335c): undefined reference to `__stack_chk_guard'
config.c:(.text+0x3379): undefined reference to `__stack_chk_fail_local'
config.o: In function `parse_HTTP':
config.c:(.text+0x339f): undefined reference to `__stack_chk_guard'
config.c:(.text+0x4037): undefined reference to `__stack_chk_guard'
config.c:(.text+0x4054): undefined reference to `__stack_chk_fail_local'
config.o: In function `config_parse':
config.c:(.text+0x408d): undefined reference to `__stack_chk_guard'
config.o: In function `.L680':
config.c:(.text+0x519d): undefined reference to `__stack_chk_guard'
config.c:(.text+0x5239): undefined reference to `__stack_chk_fail_local'
svc.o: In function `addr2str':
svc.c:(.text+0x8a5): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x936): undefined reference to `__stack_chk_guard'
svc.c:(.text+0xa6c): undefined reference to `__stack_chk_fail_local'
svc.o: In function `logmsg':
svc.c:(.text+0xa9e): undefined reference to `__stack_chk_guard'
svc.c:(.text+0xb6f): undefined reference to `__stack_chk_fail_local'
svc.o: In function `do_resurect':
svc.c:(.text+0x134f): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x1b87): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x1ed9): undefined reference to `__stack_chk_fail_local'
svc.o: In function `thr_control':
svc.c:(.text+0x2c5f): undefined reference to `__stack_chk_guard'
svc.o: In function `.L660':
svc.c:(.text+0x379a): undefined reference to `__stack_chk_fail_local'
svc.o: In function `upd_session':
svc.c:(.text+0x37ce): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x37eb): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x38d9): undefined reference to `__stack_chk_fail_local'
svc.o: In function `get_backend':
svc.c:(.text+0x3917): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x39ad): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x3c1e): undefined reference to `__stack_chk_fail_local'
svc.o: In function `need_rewrite':
svc.c:(.text+0x3c67): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x3c8a): undefined reference to `__stack_chk_guard'
svc.c:(.text+0x3f86): undefined reference to `__stack_chk_fail_local'
collect2: ld returned 1 exit status
make[1]: *** [pound] Fehler 1
make[1]: Leaving directory `/home/staffi/tom/building/pound/pound-2.4'
make: *** [build-stamp] Fehler 2
debuild: fatal error at line 1228:
debian/rules build failed
|