On Sat, Dec 04, 2021 at 02:42:13PM +0100, Thomas Koenig wrote:
> On 04.12.21 11:29, Jakub Jelinek wrote:
> > If zlib devel isn't installed, drop --with-system-zlib option
> > or use --without-system-zlib.
> > 
> > You've asked in another mail how to configure gcc to default to
> > -mabi=ieeelongdouble, that is
> > --with-long-double-format=ieee
> 
> Thanks for those hints.
> 
> I have now managed to bootstrap a compiler on that machine, but
> success at running programs is somewhat limited:
> 
> tkoenig@gcc-fortran:~/Tst$ which gcc
> /home/tkoenig/bin/gcc
> tkoenig@gcc-fortran:~/Tst$ cat hello.c
> #include <stdio.h>
> 
> int main()
> {
>   printf ("Hello, world!\n");
>   return 0;
> }
> tkoenig@gcc-fortran:~/Tst$ gcc hello.c
> tkoenig@gcc-fortran:~/Tst$ ldd ./a.out
> ./a.out: /lib/powerpc64le-linux-gnu/libc.so.6: version `GLIBC_2.34' not
> found (required by ./a.out)
>         linux-vdso64.so.1 (0x00007a16a4510000)
>         libc.so.6 => /lib/powerpc64le-linux-gnu/libc.so.6
> (0x00007a16a42c0000)
>         /opt/at15.0/lib64/ld64.so.2 => /lib64/ld64.so.2 (0x00007a16a4530000)
> tkoenig@gcc-fortran:~/Tst$ export LD_LIBRARY_PATH=~/lib64:/opt/at15.0/lib64/
> tkoenig@gcc-fortran:~/Tst$ ls
> Segmentation fault (core dumped)
> 
> @IBM folks: I would appreciate if you gave me access to a system
> which actually worked, together with the necessary information,
> so I can actually do what I volunteered to do.
> 
> Right now, I appear to be just wasting my time.

The Advance Toolchain has its own GLIBC, and it sets a different path to load
up the libraries.  You should not need to set the LD_LIBRARY_PATH variable.

Note, the system ldd does not tend to accurately report the library
dependencies for AT libraries:

15:15:03 ~/tests
-gcc-fortran-> /home/meissner/fsf-install-ppc64le/trunk/bin/gcc -O2 hello.c

15:15:23 ~/tests
-gcc-fortran-> ldd a.out
./a.out: /lib/powerpc64le-linux-gnu/libc.so.6: version `GLIBC_2.34' not found 
(required by ./a.out)
        linux-vdso64.so.1 (0x0000796b63da0000)
        libm.so.6 => /lib/powerpc64le-linux-gnu/libm.so.6 (0x0000796b63c50000)
        libc.so.6 => /lib/powerpc64le-linux-gnu/libc.so.6 (0x0000796b63a10000)
        /opt/at15.0/lib64/ld64.so.2 => /lib64/ld64.so.2 (0x0000796b63dc0000)

15:15:27 ~/tests
-gcc-fortran-> /opt/at15.0/bin/ldd a.out
        linux-vdso64.so.1 (0x000070dea0140000)
        libm.so.6 => /opt/at15.0/lib64/power9/libm.so.6 (0x000070dea0020000)
        libc.so.6 => /opt/at15.0/lib64/power9/libc.so.6 (0x000070de9fdb0000)
        /opt/at15.0/lib64/ld64.so.2 (0x000070dea0160000)


This is done by the GCC driver setting a different dynamic linker path
internally:

        -dynamic-linker /opt/at15.0/lib64/ld64.so.2

Tulio can probably expand on what is going on in more detail.  The reason for
using the Advance Toolchain is to get access to newer libraries.  I don't know
Ubuntu at all, but I believe the version that is installed is too old to have
the necessary changes in it.  There isn't a LTS (long time support) version of
Ubuntu yet available that has the library.  There are newer versions that
aren't LTS (i.e. every 6 months you have to jump to the next release), and
Peter, Bill and I have talked about upgrading the partition to use those.

-- 
Michael Meissner, IBM
PO Box 98, Ayer, Massachusetts, USA, 01432
email: meiss...@linux.ibm.com

Reply via email to