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

Reply via email to