On Fri, Dec 03, 2021 at 08:57:54AM -0600, Bill Schmidt wrote:
> Hi!
> 
> On 12/3/21 5:56 AM, Thomas Koenig wrote:
> >
> > Hi Jakub,
> >
> >> Note, we want to test both building gcc on ppc64le with older glibc
> >> and newer glibc (and that libgfortran will have the same ABI between both
> >> and one can move gcc including libgfortran and libquadmath from the older
> >> glibc setup to newer and make -mabi=ieeelongdouble work in Fortran too).
> >
> > Using an older glibc is no problem - we can use gcc135 on the compile
> > farm for that.
> >
> > As far as the other options you outlined, I think I'll defer to people
> > who know more about setting up libraries than I do. I have root access,
> > but chances are I would just mess up the virtual machine :-)
> 
> Easiest is probably to install the advance toolchain.  Mike said he'll work on
> 
> that later this morning.
> 
> Thanks!
> Bill

I have loaded Advance Toolchain 15.0 on the system.  It is located in
/opt/at15.0.  AT 15 provides a GCC 11.2 compiler and GLIBC 2.34.

I built a trunk compiler using the options:

        --enable-languages=c,c++,fortran \
        --disable-plugin \
        --enable-checking \
        --enable-stage1-checking \
        --enable-gnu-indirect-function \
        --disable-libgomp \
        --enable-decimal-float \
        --enable-secureplt \
        --enable-threads=posix \
        --enable-__cxa_atexit \
        --with-cpu=power8 \
        --with-long-double-128 \
        --with-as=/opt/at15.0/bin/as \
        --with-ld=/opt/at15.0/bin/ld \
        --with-gnu-as=/opt/at15.0/bin/as \
        --with-gnu-ld=/opt/at15.0/bin/ld \
        --with-advance-toolchain=at15.0 \
        --with-system-zlib \
        --with-native-system-header-dir=/opt/at15.0/include \
        --without-ppl \
        --without-cloog \
        --without-isl

I will rebuild the compiler using --with-cpu=power9 instead, since if power9 is
the default CPU, we avoid the use of using an emulator for IEEE 128-bit.

Note, if you are doing a bootstrap using the AT 15.0 libraries, you need a
'msgfmt' in your PATH to avoid problems that show up when the compiler is
rebuilding libstdc++.  I use this script:

#! /bin/bash

# Hack script to allow building GCC with the --with-advance-toolchain=<at>
# option and do a bootstrap.  What happens is at the end of the stage1 build,
# and in preparation for the stage2 build, the environment variable
# LD_LIBRARY_PATH is set to the new library directory.  Unfortunately this
# occurs while we are building libstdc++, and the libstdc++ that is pointed to
# is incomplete.  The msgfmt program then aborts because it doesn't have the
# right symbols.  This script allows us to not use those environment variables.

unset LD_LIBRARY_PATH
unset RPATH_ENVVAR

for x in /usr/local/bin /usr/bin /bin; do
    if [ -x "${x}/msgfmt" ]; then
        exec "${x}/msgfmt" $@
    fi
done

echo "Could not find msgfmt" >&2
exit 1


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

Reply via email to