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: [email protected]