]> git.ipfire.org Git - thirdparty/gcc.git/commit
Switch from USE_GAS/GLD to HAVE_GNU_AS/LD
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 20 Nov 2025 09:34:13 +0000 (10:34 +0100)
committerRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 20 Nov 2025 09:34:13 +0000 (10:34 +0100)
commit240b502bb2ca89ab4e1ad9478e669edd0b59b9fa
tree078713362c2bae50895dab59984d986836cee281
parent48a432de368ab8784392947a187880a658463106
Switch from USE_GAS/GLD to HAVE_GNU_AS/LD

We currently have two ways to distinguish GNU and non-GNU assemblers and
linkers:

* USE_GAS and USE_GLD, defined via gcc/config/usegas.h and usegld.h
  which are included via config.gcc

* HAVE_GNU_AS and HAVE_GNU_LD, determined from gcc/configure.ac

This is confusing and leads to weird mistakes like combining both into
an undefined USE_GNU_LD.  Since both are based on the same info ($gas
resp. $gnu_ld in gcc/configure.ac), it seems best to standardise on one
of them.  Since the USE_* form is almost exclusively used in
Solaris-specific contexts, it's clearer to use the HAVE_GNU_* forms
instead.

This is what this patch does.

Most of the changes are either Solaris-specific or border on obvious.

Outside of Solaris code, there are only two cases:

* gcc/config/ia64/hpux.h has one macro guarded by !USE_GAS.  This wasn't
  defined before since the configuration for this target doesn't include
  usegas.h.  However, the code is still needed, so the HAVE_GNU_AS form is
  now used.

* Uses of usegas.h in various powerpc*-*-* configurations in
  gcc/config.gcc.  Those make no difference since USE_GAS isn't used in any
  of the affected files.

Bootstrapped without regressions on i386-pc-solaris2.11 and
sparc-sun-solaris2.11 (as/ld, gas/ld, and gas/gld configurations).

2025-11-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

gcc:
* config/i386/sol2.h: Replace USE_GAS by HAVE_GNU_AS.
Replace USE_GLD by HAVE_GNU_LD.
* config/sol2.h: Likewise.
* config/sparc/sol2.h: Likewise.
* config/i386/i386.cc (i386_solaris_elf_named_section)
[TARGET_SOLARIS]: Replace USE_GAS by HAVE_GNU_AS.
* config/ia64/hpux.h: Likewise.

* config.gcc: Remove usegas.h, usegld.h.
* config/usegas.h: Remove.
* config/usegld.h: Remove

gcc/go:
* gospec.cc (lang_specific_driver) [TARGET_SOLARIS]: Replace
USE_GLD by HAVE_GNU_LD.
gcc/config.gcc
gcc/config/i386/i386.cc
gcc/config/i386/sol2.h
gcc/config/ia64/hpux.h
gcc/config/sol2.h
gcc/config/sparc/sol2.h
gcc/config/usegas.h [deleted file]
gcc/config/usegld.h [deleted file]
gcc/go/gospec.cc