On 29.09.22 09:06, Jakub Jelinek wrote:

My recent change to enable _Float{16,32,64,128,32x,64x,128x} for C++
apparently broke bootstrap on some Debian/Ubuntu setups.
Those multiarch targets put some headers into
/usr/include/x86_64-linux-gnu/bits/ etc. subdirectory instead of
/usr/include/bits/.

...

Bootstrapped/regtested on x86_64-linux (Debian on GCCFarm, though with the
/usr/include/bits -> x86_64-linux-gnu/bits symlink).  Ok for trunk?


I have now bootstrapped on ppc64le with Ubuntu 18.04.3 LTS (bionic) with glibc 
2.27-3ubuntu1

This glibc is too old for the '#   if __LDBL_MANT_DIG__ == 113"' issue reported 
by
Joseph as that line was added one version later in glibc 2.28.

But it did have the bootstrap issue (only affecting the -B... / build, the 
installed
one was okay - for reasons why, see PR).

Thus, my boostrap only tested this patch - and not the __LDBL_MANT_DIG__ part.

Result: Bootstrapping passed and I get for

cd $BUILD
echo '#include <complex.h>' > foo.c
gcc/xgcc -B`pwd`/gcc -v -E -o foo.i foo.c
grep floatn.h foo.i

...
/tmp/gcc-build/gcc/cc1 ... \
 -iprefix 
/tmp/tburnus-gcc-test/gcc/../lib/gcc/powerpc64le-unknown-linux-gnu/13.0.0/ \
 -isystem /tmp/tburnus-gcc-test/gcc/include \
 -isystem /tmp/tburnus-gcc-test/gcc/include-fixed/powerpc64le-linux-gnu \
 -isystem /tmp/tburnus-gcc-test/gcc/include-fixed
...
#include "..." search starts here:
#include <...> search starts here:
/tmp/gcc-build/gcc/include
/tmp/gcc-build/gcc/include-fixed/powerpc64le-linux-gnu
/tmp/gcc-build/gcc/include-fixed
/usr/local/include
/usr/include/powerpc64le-linux-gnu
/usr/include
End of search list.
...
# 1 "/tmp/gcc-build/gcc/include-fixed/powerpc64le-linux-gnu/bits/floatn.h" 1 3 4

* * *

And with the installed version:

#include "..." search starts here:
#include <...> search starts here:
/tmp/gcc-inst/lib/gcc/powerpc64le-unknown-linux-gnu/13.0.0/include
/usr/local/include
/tmp/gcc-inst/include
/tmp/gcc-inst/lib/gcc/powerpc64le-unknown-linux-gnu/13.0.0/include-fixed/powerpc64le-linux-gnu
/tmp/gcc-inst/lib/gcc/powerpc64le-unknown-linux-gnu/13.0.0/include-fixed
/usr/include/powerpc64le-linux-gnu
/usr/include
End of search list.
...
# 1 
"/tmp/gcc-inst/lib/gcc/powerpc64le-unknown-linux-gnu/13.0.0/include-fixed/powerpc64le-linux-gnu/bits/floatn.h"
 1 3 4
...

Thanks for the fix!

Tobias


2022-09-29  Jakub Jelinek  <ja...@redhat.com><mailto:ja...@redhat.com>

       PR bootstrap/107059
       * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
       isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
       before FIXED_INCLUDE_DIR entry with multilib flag 0.
       * gcc.cc (do_spec_1): If multiarch_dir, add
       include-fixed/multiarch_dir paths before include-fixed paths.


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas 
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht 
München, HRB 106955

Reply via email to