develooper Front page | perl.perl5.porters | Postings from July 2019

[perl #134241] Perl 5.30.0 fails with LTO optimisation

Thread Previous | Thread Next
From:
Tony Cook via RT
Date:
July 2, 2019 06:17
Subject:
[perl #134241] Perl 5.30.0 fails with LTO optimisation
Message ID:
rt-4.0.24-22437-1562048241-431.134241-15-0@perl.org
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.

Tony

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=134241

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About