[Bug lto/59183] New: configure of pdsh successfuly checks for function shl_load when lto is enabled
steffen at hauihau dot de
gcc-bugzilla@gcc.gnu.org
Mon Nov 18 23:50:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59183
Bug ID: 59183
Summary: configure of pdsh successfuly checks for function
shl_load when lto is enabled
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: steffen at hauihau dot de
Created attachment 31243
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31243&action=edit
Output directories with -save-temps of both gcc runs with disabled and enabled
lto
Hi all,
I was running into an issue when I tried to compile pdsh 2.26 (a parallel
shell, see https://computing.llnl.gov/linux/pdsh.html). When lto is enabled,
configure successfully checks for function shl_load, but fails when lto is
disabled.
With enabled lto:
gcc -o shl_load_test -march=native -O2 -pipe -ggdb -floop-interchange
-floop-strip-mine -floop-block -ftree-loop-distribution -fira-loop-pressure
-ftree-vectorize -ftree-loop-linear -flto=5 -fuse-linker-plugin -Wl,-O1
-Wl,--as-needed -march=native -O2 -pipe -ggdb -floop-interchange
-floop-strip-mine -floop-block -ftree-loop-distribution -fira-loop-pressure
-ftree-vectorize -ftree-loop-linear -flto=5 -fuse-linker-plugin -Wl,-znow
-Wl,--sort-common -Wl,--hash-style=gnu -Wl,--enable-new-dtags -save-temps
shl_load_test.c
gcc: warning: -pipe ignored because -save-temps specified
gcc: warning: -pipe ignored because -save-temps specified
[Leaving LTRANS /tmp/ccSSsJJ4.args]
[Leaving LTRANS shl_load_test.ltrans.out]
gcc: warning: -pipe ignored because -save-temps specified
[Leaving LTRANS /tmp/cc259S6e.mk]
[Leaving LTRANS shl_load_test.ltrans0.o]
With disabled lto:
gcc -o shl_load_test -march=native -O2 -pipe -ggdb -floop-interchange
-floop-strip-mine -floop-block -ftree-loop-distribution -fira-loop-pressure
-ftree-vectorize -ftree-loop-linear -Wl,-O1 -Wl,--as-needed -march=native -O2
-pipe -ggdb -floop-interchange -floop-strip-mine -floop-block
-ftree-loop-distribution -fira-loop-pressure -ftree-vectorize
-ftree-loop-linear -Wl,-znow -Wl,--sort-common -Wl,--hash-style=gnu
-Wl,--enable-new-dtags -save-temps shl_load_test.c gcc: warning: -pipe ignored
because -save-temps specified
shl_load_test.o:shl_load_test.c:function f: error: undefined reference to
'shl_load'
shl_load_test.c:69: error: undefined reference to 'shl_load'
collect2: error: ld returned 1 exit status
The latter one is the desired result, as this function is not present on my
system.
I have this issue also with another package (libsidplay) where configure checks
successfully for strnicmp and stricmp, which are both not present. Disabled lto
here does also prevent configure from successfully checking for these two
functions. I've compared the piece of code, which configure uses to check for
these functions and it is identical to the code that the configure from pdsh
uses to check for shl_load (replace shl_load with strnicmp/stricmp).
Here is the output of gcc -v:
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.2/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.2/lto-wrapper
Ziel: x86_64-pc-linux-gnu
Konfiguriert mit:
/home/misc/gentoo/tmp/portage/sys-devel/gcc-4.8.2/work/gcc-4.8.2/configure
--prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.2
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --with-cloog --disable-isl-version-check --enable-lto
--enable-nls --without-included-gettext --with-system-zlib --enable-obsolete
--disable-werror --enable-secureplt --enable-multilib
--with-multilib-list=m32,m64 --enable-libmudflap --disable-libssp
--enable-libgomp
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/python
--enable-checking=release --disable-libgcj --enable-libstdcxx-time
--enable-languages=c,c++,fortran --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu --enable-targets=all
--with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.8.2 p1.0,
pie-0.5.8'
Thread-Modell: posix
gcc-Version 4.8.2 (Gentoo 4.8.2 p1.0, pie-0.5.8)
Please let me know wether you need more input/files from me.
More information about the Gcc-bugs
mailing list