Subject: [m4/libtool.m4] linker error for powerpc64le-unknown-linux-gnu

From: Leno Hou <[email-masked]>
Date: Sun, 24 Apr 2016 00:46:53 +0800

Hi all,

 1) As we might know, Gentoo has powerpc64le-unknown-linux-gnu compiler

leno@localhost ~ $ powerpc64le-unknown-linux-gnu-gcc -v

Using built-in specs.

COLLECT_GCC=/usr/powerpc64le-unknown-linux-gnu/gcc-bin/5.3.0/powerpc64le-unknown-linux-gnu-gcc

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/powerpc64le-unknown-linux-gnu/5.3.0/lto-wrapper

Target: powerpc64le-unknown-linux-gnu

Configured with:
/var/tmp/portage/sys-devel/gcc-5.3.0/work/gcc-5.3.0/configure
--host=powerpc64le-unknown-linux-gnu --build=powerpc64le-unknown-linux-gnu
--prefix=/usr --bindir=/usr/powerpc64le-unknown-linux-gnu/gcc-bin/5.3.0
--includedir=/usr/lib/gcc/powerpc64le-unknown-linux-gnu/5.3.0/include
--datadir=/usr/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0
--mandir=/usr/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0/man
--infodir=/usr/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0/info
--with-gxx-include-dir=/usr/lib/gcc/powerpc64le-unknown-linux-gnu/5.3.0/include/g++-v5
--with-python-dir=/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0/python
--enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt
--disable-werror --with-system-zlib --enable-nls --without-included-gettext
--enable-checking=release --with-bugurl=https://bugs.gentoo.org/
--with-pkgversion='Gentoo 5.3.0 p1.0, pie-0.6.5' --enable-libstdcxx-time
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu --disable-multilib --enable-altivec
--disable-fixed-point --enable-targets=all --disable-libgcj
--enable-libgomp --disable-libmudflap --disable-libssp --disable-libcilkrts
--enable-lto --without-isl --enable-libsanitizer

Thread model: posix

gcc version 5.3.0 (Gentoo 5.3.0 p1.0, pie-0.6.5)

  2) And the supported emulations

leno@localhost ~ $ powerpc64le-unknown-linux-gnu-ld -V

GNU ld (Gentoo 2.25.1 p1.1) 2.25.1

  Supported emulations:

   elf64lppc

   elf32lppc

   elf32lppclinux

   elf32lppcsim

   3) But when I set CHOST="powerpc64le-unkown-linux-gnu" in Gentoo and
execute aclocal, automake, libtoolize --copy --force, autoconf. When I
glance in the latest m4/libtool.m4 :

if AC_TRY_EVAL(ac_compile); then
   case `/usr/bin/file conftest.o` in
     *32-bit*)
       case $host in
...
         powerpc64le-*linux*)
           LD="${LD-ld} -m elf32lppclinux"
           ;;
         powerpc64-*linux*)
           LD="${LD-ld} -m elf32ppclinux"
           ;;
...
     *64-bit*)
       case $host in
...
         powerpcle-*linux*)
           LD="${LD-ld} -m elf64lppc"
           ;;
         powerpc-*linux*)
           LD="${LD-ld} -m elf64ppc"
           ;;
...

seems linked to $LD='$LD-ld -m elf64ppc' and failed to compile packages.

 4)  Below is my workaround patch and works fine for this case.  If this is
OK for you, Could this to be merged in upstream? Thanks

leno@localhost ~/libtool $ cat configure-libtool-with-ppc64le.patch

--- m4/libtool.m4.orig 2016-04-23 16:35:57.383197077 +0000

+++ m4/libtool.m4 2016-04-23 16:36:40.623197724 +0000

@@ -1417,10 +1417,10 @@

    x86_64-*linux*)

      LD="${LD-ld} -m elf_x86_64"

      ;;

-   powerpcle-*linux*)

+   powerpcle-*linux*|powerpc64le-*linux*)

      LD="${LD-ld} -m elf64lppc"

      ;;

-   powerpc-*linux*)

+   powerpc-*linux*|powerpc64-*linux*)

      LD="${LD-ld} -m elf64ppc"

      ;;

    s390*-*linux*|s390*-*tpf*)

*Leno Hou*
E-mail :  [email-masked]