On Mon, 8 Jun 2020, Matthias Klose wrote: > However the file is architecture specific, currently only having variants for > x86_64-*-gnu, x86_64-*-gnux32, and a generic variant. This creates problems > when the file is contained in a Debian package which is marked as Multi-Arch: > same, also it should create problems installing the i386 and amd64 rpm's on > the > the same system. How to solve this issue?
The general principle in glibc is that installed header files contain conditionals for variants within an architecture that can be used by a single GCC installation in a multilib configuration, most often for 32-bit and 64-bit variants, so that a single set of header files can be shared between such multilibs. However, they do not generally contain conditionals for different target architectures (where "different" means different GCC ports - for example, Arm and AArch64 are different for this purpose) or target OSes, so in those cases separate sets of installed headers are needed for each architecture / OS. Although most of the architecture-specific headers are in bits/ or sys/, this isn't the case for all of them (e.g. fpu_control.h and ieee754.h, as well as the case of finclude/math-vector-fortran.h that you've noted). It would be possible to change some headers such as fpu_control.h and ieee754.h to have an architecture-independent wrapper round an architecture-specific file in bits/, but probably a separate directory such as finclude/ for Fortran files would still be appropriate. -- Joseph S. Myers jos...@codesourcery.com