Bug #2024

pkgsrc lang/perl5 doesn't build on master with gcc44 and stack protector

Added by lentferj over 3 years ago. Updated over 3 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:swildner% Done:

0%

Category:-
Target version:-

Description

pkgsrc-current's lang/perl5 does not build on master with gcc44.

This seems to be due to enabling the stack protector in gcc44.

cc -o generate_uudmap -Wl,-R/usr/pkg/lib -pthread -Wl,-E
-fstack-protector generate_uudmap.o -lm -lcrypt -lpthread -lrt
./generate_uudmap uudmap.h bitcount.h
`sh cflags "optimize='-O2 -pthread -I/usr/include'" globals.o` -DPIC
-fPIC globals.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" perlio.o` -DPIC
-fPIC perlio.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" perlapi.o` -DPIC
-fPIC perlapi.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" numeric.o` -DPIC
-fPIC numeric.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" mathoms.o` -DPIC
-fPIC mathoms.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" locale.o` -DPIC
-fPIC locale.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" pp_pack.o` -DPIC
-fPIC pp_pack.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
pp_pack.c: In function 'S_unpack_rec':
pp_pack.c:1561: warning: 'str' may be used uninitialized in this function
pp_pack.c:1228: warning: 'sv' may be used uninitialized in this function
`sh cflags "optimize='-O2 -pthread -I/usr/include'" pp_sort.o` -DPIC
-fPIC pp_sort.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" opmini.o` -DPIC
-fPIC -DPERL_EXTERNAL_GLOB opmini.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
`sh cflags "optimize='-O2 -pthread -I/usr/include'" perlmini.o` -DPIC
-fPIC -DPERL_IS_MINIPERL perlmini.c
CCCMD = cc -DPERL_CORE -c -O2 -pthread -I/usr/include
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -std=c89 -O2 -pthread
-I/usr/include -Wall -ansi -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
LD_LIBRARY_PATH=/usr/pkgsrc/lang/perl5/work/perl-5.12.2 cc
-Wl,-R/usr/pkg/lib -pthread -Wl,-E -fstack-protector -o miniperl gv.o
toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o
av.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 globals.o perlio.o perlapi.o
numeric.o mathoms.o locale.o pp_pack.o pp_sort.o miniperlmain.o
opmini.o perlmini.o -lm -lcrypt -lpthread -lrt
gv.o: In function `Perl_gv_fetchfile_flags':
gv.c:(.text+0x265b): undefined reference to `__stack_chk_fail_local'
gv.o: In function `.L438':
gv.c:(.text+0x4401): undefined reference to `__stack_chk_fail_local'
gv.o: In function `Perl_gv_stashpvn':
gv.c:(.text+0x4a28): undefined reference to `__stack_chk_fail_local'
toke.o: In function `Perl_scan_vstring':
toke.c:(.text+0x407): undefined reference to `__stack_chk_fail_local'
toke.o: In function `S_feature_is_enabled':
toke.c:(.text+0x1f2f): undefined reference to `__stack_chk_fail_local'
toke.o:toke.c:(.text+0x84e6): more undefined references to
`__stack_chk_fail_local' follow
/usr/libexec/binutils217/elf/ld: miniperl: hidden symbol
`__stack_chk_fail_local' isn't defined
/usr/libexec/binutils217/elf/ld: final link failed: Nonrepresentable
section on output
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/lang/perl5/work/perl-5.12.2
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/lang/perl5
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/lang/perl5
df386devel#

History

#1 Updated by swildner over 3 years ago

grab

#2 Updated by ahuete.devel over 3 years ago

Hi,

Should we assume this only happens in x86_64?

=> Automatic manual page handling
===> Building binary package for perl-5.12.2nb1
=> Creating binary package /usr/pkgsrc/packages/All/perl-5.12.2nb1.tgz
# cc -v
Using built-in specs.
Target: i386-pc-dragonflybsd
Configured with: DragonFly/i386 system compiler
Thread model: posix
gcc version 4.4.2 (DragonFly)
# uname -a
DragonFly 2.9-DEVELOPMENT DragonFly v2.9.1.854.gf7fcb7-DEVELOPMENT
#5: Fri Mar 11 21:04:20 CET 2011
antonioh@:/usr/obj/home/source/dfbsd/sys/GENERIC_SMP i386

Cheers,
Antonio Huete

2011/3/12 Sascha Wildner (via DragonFly issue tracker)
<>:
>
> Sascha Wildner <> added the comment:
>
> grab
>
> ----------
> assignedto:  -> swildner
> nosy: +swildner
> status: unread -> chatting
>
> _____________________________________________________
> DragonFly issue tracker <>
> <http://bugs.dragonflybsd.org/issue2024>
> _____________________________________________________
>
>

#3 Updated by ahuete.devel over 3 years ago

Okay, sorry for the noise, I thought I was in latest master when I
wasn't in fact. In i386 it also fails with the same error.

Cheers,
Antonio Huete

#4 Updated by swildner over 3 years ago

I've committed a workaround (3e54e5b140b688cc536bc071eff4cd69831066a1) and it
works here now.

If anyone has a better fix, feel free to revert the workaround and push it.

Also available in: Atom PDF