On Tue, 2 Jul 2019 at 07:17, Tony Cook via RT <perlbug-followup@perl.org> wrote: > > On Sun, 30 Jun 2019 16:00:02 -0700, kloczko.tomasz@gmail.com wrote: > > When Perl 5.30.0 is build with LTO optimisation linking of the > > miniperl fails with: > > > > rm -rf mpdtrace > > mkdir mpdtrace > > cp opmini.o perlmini.o gv.o toke.o perly.o pad.o regcomp.o dump.o > > util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o > > sv.o pp.o scope.o pp_ctl.o pp_sys. > > CFLAGS="`sh cflags "optimize='-g'" dtrace_mini.o`" /usr/bin/dtrace > > -G -s perldtrace.d -o dtrace_mini.o mpdtrace/opmini.o > > mpdtrace/perlmini.o mpdtrace/gv.o mpdtrace > > gcc -Wl,-z,relro -Wl,--as-needed -Wl,-z,now > > -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto > > -fuse-linker-plugin -fstack-protector-strong -L/usr/local/lib -o > > miniperl mpdtrace/opmini.o mpdtrace/perlmini.o mpdtrace/gv.o > > mpdtrace/toke.o mpdtrace/perly.o mpdtrace/pad.o mpdtrace/regcomp.o > > mpdtrace/dump.o mpdtrace/util.o mpdtrace/mg.o > > perl.h:7278:19: warning: type of 'PL_nan' does not match original > > declaration [-Wlto-type-mismatch] > > 7278 | INFNAN_NV_U8_DECL PL_nan; > > | ^ > > perl.h:7248:19: note: 'PL_nan' was previously declared here > > 7248 | INFNAN_U8_NV_DECL PL_nan = { { DOUBLENANBYTES } }; > > | ^ > > perl.h:7277:19: warning: type of 'PL_inf' does not match original > > declaration [-Wlto-type-mismatch] > > 7277 | INFNAN_NV_U8_DECL PL_inf; > > | ^ > > perl.h:7212:19: note: 'PL_inf' was previously declared here > > 7212 | INFNAN_U8_NV_DECL PL_inf = { { DOUBLEINFBYTES } }; > > | ^ > > /usr/bin/ld: > > /tmp/miniperl.bCBaN7.ltrans19.ltrans.o:(.note.stapsdt+0x24): > > undefined reference to `perl_phase__change_semaphore' > > /usr/bin/ld: > > /tmp/miniperl.bCBaN7.ltrans19.ltrans.o:(.note.stapsdt+0x120): > > undefined reference to `perl_sub__return_semaphore' > > /usr/bin/ld: > > /tmp/miniperl.bCBaN7.ltrans2.ltrans.o:(.note.stapsdt+0x24): > > undefined reference to `perl_loading__file_semaphore' > > /usr/bin/ld: > > /tmp/miniperl.bCBaN7.ltrans2.ltrans.o:(.note.stapsdt+0x6c): > > undefined reference to `perl_loaded__file_semaphore' > > collect2: error: ld returned 1 exit status > > make: *** [makefile:398: lib/buildcustomize.pl] Error 1 > > error: Bad exit status from /var/tmp/rpm-tmp.Mv5rO5 (%build) > > Please provide the options you supplied to Configure. > > I tried a simple > > ./Configure -des -Dusedevel -Dusedtrace -Doptimize='-O2 -g -flto' -Dusethreads && make miniperl > > which successfully built miniperl (which is where your build failed.) > > I did get the type mismatch warnings, which I'll look into. Did you combine that with -Wl,--as-needed? -- Tomasz KÅoczko | LinkedIn: http://lnkd.in/FXPWxHThread Next