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