>Author: kan >Date: Tue Jul 14 21:19:13 2009 >New Revision: 195697 >URL: http://svn.freebsd.org/changeset/base/195697 >Log: > Second attempt at eliminating .text relocations in shared libraries > compiled with stack protector. Unfortunately, on r195705 i386 (world and kernel), this breaks a clean (i.e., no other ports or packages installed, clean work directory) build of lang/perl5.8 or lang/perl5.10 with -fstack-protector or -fstack-protector-all in the CFLAGS, using the base system compiler: ... CCCMD = cc -DPERL_CORE -c -DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.9/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -I/usr/local/include -O2 -fno-strict-aliasing -pipe -fstack-protector-all -Wall -Wextra -march=athlon-tbird -Wall -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat opmini.c: In function 'Perl_fold_constants': opmini.c:2122: warning: argument 'o' might be clobbered by 'longjmp' or 'vfork' `sh cflags "optimize='-O2 -fno-strict-aliasing -pipe -fstack-protector-all -Wall -Wextra -march=athlon-tbird'" perly.o` -DPIC -fPIC perly.c CCCMD = cc -DPERL_CORE -c -DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.9/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -I/usr/local/include -O2 -fno-strict-aliasing -pipe -fstack-protector-all -Wall -Wextra -march=athlon-tbird -Wall -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat LD_LIBRARY_PATH=/tmp/usr/ports/lang/perl5.8/work/perl-5.8.9 cc -pthread -Wl,-E -L/usr/local/lib -o miniperl `echo gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o perl.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o | sed 's/ op.o / /'` miniperlmain.o opmini.o -lm -lcrypt -lutil gv.o(.text+0xc1): In function `Perl_gv_name_set': : undefined reference to `__stack_chk_fail_local' gv.o(.text+0x221): In function `.L19': : undefined reference to `__stack_chk_fail_local' gv.o(.text+0x2c2): In function `Perl_is_gv_magical_sv': : undefined reference to `__stack_chk_fail_local' gv.o(.text+0x34d): In function `Perl_magic_freeovrld': : undefined reference to `__stack_chk_fail_local' gv.o(.text+0x3dd): In function `Perl_gp_ref': : undefined reference to `__stack_chk_fail_local' gv.o(.text+0xe6d): more undefined references to `__stack_chk_fail_local' follow *** Error code 1 1 error *** Error code 1 Stop in /usr/ports/lang/perl5.8. *** Error code 1 I would not be surprised to find that it affects a large number of other ports in a similar manner. So it seems that some further changes are required. Regards, b.Received on Thu Jul 16 2009 - 20:00:31 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:52 UTC