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:
Tomasz Kłoczko
Date:
July 4, 2019 02:20
Subject:
[perl #134241] Perl 5.30.0 fails with LTO optimisation
Message ID:
rt-4.0.24-849-1561935602-407.134241-75-0@perl.org
# New Ticket Created by  Tomasz Kłoczko 
# Please include the string:  [perl #134241]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=134241 >


This is a bug report for perl from kloczko.tomasz@gmail.com,
generated with the help of perlbug 1.41 running under perl 5.30.0.


-----------------------------------------------------------------
[Please describe your issue here]
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 do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=high
---
Site configuration information for perl 5.30.0:

Configured by Red Hat, Inc. at Tue Jun 25 15:54:28 UTC 2019.

Summary of my perl5 (revision 5 version 30 subversion 0) configuration:

  Platform:
    osname=linux
    osvers=5.1.11-200.fc29.x86_64
    archname=x86_64-linux-thread-multi
    uname='linux buildhw-09.phx2.fedoraproject.org
5.1.11-200.fc29.x86_64 #1 smp mon jun 17 19:30:44 utc 2019 x86_64
x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=none -Dccflags=-O2 -g -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-Dldflags=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-Dccdlflags=-Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed
-Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-Dlddlflags=-shared -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Dshrpdir=/usr/lib64
-DDEBUGGING=-g -Dversion=5.30.0 -Dmyhostname=localhost
-Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc.
-Dprefix=/usr -Dvendorprefix=/usr
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5/5.30
-Dsitearch=/usr/local/lib64/perl5/5.30 -Dprivlib=/usr/share/perl5
-Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5
-Dvendorarch=/usr/lib64/perl5/vendor_perl
-Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64
/usr/lib64 -Duseshrplib -Dusethreads -Duseithreads
-Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db
-Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio
-Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly
-Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto
-Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto
-Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto
-Dscriptdir=/usr/bin -Dusesitecustomize -Duse64bitint'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='gcc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64'
    optimize=' -g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-fwrapv -fno-strict-aliasing -I/usr/local/include'
    ccversion=''
    gccversion='9.1.1 20190605 (Red Hat 9.1.1-2)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='gcc'
    ldflags ='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong
-L/usr/local/lib'
    libpth=/usr/local/lib64 /lib64 /usr/lib64 /usr/local/lib /usr/lib
/lib/../lib64 /usr/lib/../lib64 /lib
    libs=-lpthread -lresolv -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
-lgdbm_compat
    perllibs=-lpthread -lresolv -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.29.9000.so
    so=so
    useshrplib=true
    libperl=libperl.so
    gnulibc_version='2.29.9000'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed
-Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
    cccdlflags='-fPIC'
    lddlflags='-lpthread -shared -Wl,-z,relro -Wl,--as-needed
-Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-L/usr/local/lib -fstack-protector-strong'

Locally applied patches:
    Fedora Patch1: Removes date check, Fedora/RHEL specific
    Fedora Patch2: support for libdir64
    Fedora Patch3: use libresolv instead of libbind
    Fedora Patch4: USE_MM_LD_RUN_PATH
    Fedora Patch5: Provide MM::maybe_command independently (bug #1129443)
    Fedora Patch6: Dont run one io test due to random builder failures
    Fedora Patch8: Define SONAME for libperl.so
    Fedora Patch9: Install libperl.so to -Dshrpdir value
    Fedora Patch10: Make *DBM_File desctructors thread-safe (RT#61912)
    Fedora Patch11: Replace EU::MakeMaker dependency with
EU::MM::Utils in IPC::Cmd (bug #1129443)
    Fedora Patch12: Link XS modules to pthread library to fix linking
with -z defs
    Fedora Patch13: Pass the correct CFLAGS to dtrace
    Fedora Patch14: Fix an out-of-buffer read while parsing a Unicode
property name (RT#134134)
    Fedora Patch15: Do not panic when outputting a warning (RT#134059)
    Fedora Patch16: Fix memory handling when parsing string literals
    Fedora Patch17: Fix an undefined behavior in shifting IV variables
    Fedora Patch18: Fix an undefined behavior in shifting IV variables
    Fedora Patch19: Fix an undefined behavior in shifting IV variables
    Fedora Patch20: Fix stacking file test operators (CPAN RT#127073)
    Fedora Patch21: Fix a crash in SIGALARM handler when waiting on a
child process to be closed (RT#122112)
    Fedora Patch22: Fix a crash in SIGALARM handler when waiting on a
child process to be closed (RT#122112)
    Fedora Patch23: Fix a crash in SIGALARM handler when waiting on a
child process to be closed (RT#122112)
    Fedora Patch24: Fix a crash with a negative precision in sprintf
function (RT#134008)
    Fedora Patch25: Fix a crash with a negative precision in sprintf
function (RT#134008)
    Fedora Patch26: Fix an erroneous assertion on OP_SCALAR (RT#134048)
    Fedora Patch27: Prevent from wrapping a width in a numeric format
string (RT#133913)
    Fedora Patch28: Fix subroutine protypes to track reference aliases
(RT#134072)
    Fedora Patch29: Improve retrieving a scalar value of a variable
modified in a signal handler (RT#134035)
    Fedora Patch30: Fix changing packet destination sent from a UDP
IO::Socket object (RT#133936)
    Fedora Patch31: Fix changing packet destination sent from a UDP
IO::Socket object (RT#133936)
    Fedora Patch32: Fix changing packet destination sent from a UDP
IO::Socket object (RT#133936)
    Fedora Patch33: Fix a stack underflow in readline() if passed an
empty array as an argument (#RT133989)
    Fedora Patch34: Fix setting supplementar group IDs (RT#134169)
    Fedora Patch35: Fix setting supplementar group IDs (RT#134169)
    Fedora Patch36: Fix setting supplementar group IDs (RT#134169)
    Fedora Patch37: Fix %{^CAPTURE_ALL} to be an alias for %- variable
(RT#131867)
    Fedora Patch38: Fix %{^CAPTURE} value when used after @{^CAPTURE}
(RT#134193)
    Fedora Patch39: Fix %{^CAPTURE} value when used after @{^CAPTURE}
(RT#134193)
    Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux
    Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux

---
@INC for perl 5.30.0:
    /usr/local/lib64/perl5/5.30
    /usr/local/share/perl5/5.30
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5

---
Environment for perl 5.30.0:
    HOME=/home/tkloczko
    LANG=en_GB.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/tkloczko/.local/bin:/home/tkloczko/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
    PERL_BADLANG (unset)
    SHELL=/bin/bash


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