develooper Front page | perl.perl5.porters | Postings from March 2011

[perl #87120] 5.12.3 build 'make test' fails with Embed.pl using '-fexport-dynamic'

From:
Jason Vas Dias
Date:
March 28, 2011 02:09
Subject:
[perl #87120] 5.12.3 build 'make test' fails with Embed.pl using '-fexport-dynamic'
Message ID:
rt-3.6.HEAD-16385-1301240405-1598.87120-75-0@perl.org
# New Ticket Created by  Jason Vas Dias 
# Please include the string:  [perl #87120]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=87120 >




This is a bug report for perl from jason.vas.dias@gmail.com,
generated with the help of perlbug 1.39 running under perl 5.12.3.


-----------------------------------------------------------------
[Please describe your issue here]

perl-5.12.3 'make test' fails with :

lib/ExtUtils/t/Embed...........................................cc1: error: unrecognized command line option "-fexport-dynamic"
FAILED at test 1

t/porting/checkcase............................................FAILED at test 4875

I've been building 5.12.0- with these flags in config.sh ( but obviously with 5.12.0 instead of 5.12.3 paths ), and
it passes 'make test',  but 5.12.3 does not : 

ccdlflags='-O -g -fstack-protector -fPIC -Wl,--export-dynamic,-rpath,/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE -Wl,-rpath,/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE'
lddlflags='-shared -O -g -fstack-protector -fPIC -Wl,--export-dynamic'
ldflags='-Wl,--export-dynamic'

which are the ONLY occurences of the string 'export-dynamic' in config.sh, 
that are all prefixed by '-Wl,', to mark them as linker  (GNU binutils
ld(1) 2.21.51.0.6.20110118 / 2.20.51.0.7-6.fc14 ) options only .

So I can't understand how Embed.pm is getting '-fexport-dynamic' - especially
as this option is supported by no compiler on my machine:
   
$ gcc -fexport-dynamic -o /tmp/t /tmp/t.c; gcc -v
cc1: error: unrecognized command line option "-fexport-dynamic"
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.5.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC)


$  gcc -fexport-dynamic -o /tmp/t /tmp/t.c; gcc -v
cc1: error: unrecognized command line option "-fexport-dynamic"
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/usr --enable-languages=c,c++,objc,obj-c++,java,fortran --enable-targets=all --enable-multilib --enable-threads=posix --enable-tls --enable-shared --enable-checking=release --with-build-time-tools=/usr/bin --with-ld=/usr/bin/ld --with-gnu-ld --with-as=/usr/bin/as --with-gnu-as --enable-__cxa_atexit --disable-libunwind-exceptions --with-system-zlib --with-system-gettext --with-system-intl --with-system-libbfd --with-system-libopcodes --with-system-libiberty --disable-werror --enable-classpath --enable-java-awt=gtk --with-java-home=/usr/java --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --enable-bootstrap --enable-serial-configure
Thread model: posix
gcc version 4.4.2 20090927 (prerelease) (GCC)

(yes, I know the last compiler is a bit out-of-date, I'm working on that)...

So how is Embed.pm getting '-fexport-dynamic' ? is this some gcc-4.5.2+ option ? 
If so,  Embed.pm should NOT be using it with gcc 4.5.1 / 4.4.2, and using such a gcc
option at all when it is only a wrapper to a '-Wl,' linker option and when
it causes such compatibility issues seems to me to be of dubious utility at all .

Also, maybe a separate issue - why does this failure also occur:

t/porting/checkcase............................................FAILED at test 4875

The above appear as regressions to me with respect to 5.12.0, which passed its 'make test' .

Is this 5.12.3  git commit c0247066c34077145eaa8f33eddcbb64fa3b0f8d the "latest stable maintenance branch" ?
If not, what is ?

Thanks in advance for any replies,
Jason

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=medium
---
Site configuration information for perl 5.12.3:

Configured by root at Sun Mar 27 14:57:27 BST 2011.

Summary of my perl5 (revision 5 version 12 subversion 3) configuration:
  Commit id: c0247066c34077145eaa8f33eddcbb64fa3b0f8d
  Platform:
    osname=linux, osvers=2.6.31.1-jvd, archname=x86_64-linux-thread-multi
    uname='linux jvdspc 2.6.26-rc9.jvd #1 smp thu jul 10 15:01:47 edt 2008 x86_64 amd turion(tm) 64 x2 mobile technology tl-64 authenticamd gnulinux '
    config_args='-f ./config.sh'
    hint=previous, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    ccversion='', gccversion='4.4.2 20090927 (prerelease)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    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,--export-dynamic'
    libpth=/lib64 /usr/lib64
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=/lib64/libc.so.6, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.12'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-O -g -fstack-protector -fPIC -Wl,--export-dynamic,-rpath,/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE -Wl,-rpath,/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O -g -fstack-protector -fPIC -Wl,--export-dynamic'

Locally applied patches:
    

---
@INC for perl 5.12.3:
    /usr/build2/perl/perl/lib
    /usr/lib/perl5/site_perl/5.12.3/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.12.3
    /usr/lib/perl5/vendor_perl/5.12.3/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.12.3
    /usr/lib/perl5/5.12.3/x86_64-linux-thread-multi
    /usr/lib/perl5/5.12.3
    /usr/lib/perl5/site_perl/5.12.0
    /usr/lib/perl5/site_perl/5.10.1
    /usr/lib/perl5/site_perl/5.10.0
    /usr/lib/perl5/site_perl/5.8.8
    /usr/lib/perl5/site_perl
    /usr/lib/perl5/vendor_perl/5.10.1
    /usr/lib/perl5/vendor_perl/5.10.0
    /usr/lib/perl5/vendor_perl/5.8.8
    /usr/lib/perl5/vendor_perl
    /usr/lib/perl5/vendor_perl/5.12.0
    /usr/lib/perl5/vendor_perl/5.12.0/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.10.1/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.10.1
    /usr/lib/perl5/vendor_perl/5.10.1/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.10.0
    /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.8.8
    /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.8.7
    /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.10.0
    /usr/lib/perl5/site_perl/5.8.8]
    /usr/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.10.1
    /usr/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.10.0
    /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.8.8
    /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.8.7
    /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
    .

---
Environment for perl 5.12.3:
    HOME=/home/root
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH=/usr/build2/perl/perl
    LD_PRELINK=/usr/build2/perl/perl/libperl.so
    LOGDIR (unset)
    PATH=.:/bin:/usr/bin:/sbin:/usr/sbin
    PERL5LIB=/usr/build2/perl/perl/lib
    PERL_BADLANG (unset)
    SHELL (unset)




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