Re: svn commit: r195697 - in head: . contrib/gcc/config gnu/lib/libgcc gnu/lib/libssp/libssp_nonshared lib/libc lib/libc/sys libexec/rtld-elf share/mk

From: b. f. <bf1783_at_googlemail.com>
Date: Thu, 16 Jul 2009 22:00:28 +0000
>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