]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR81358: Enable automatic linking of libatomic.
authorPrathamesh Kulkarni <prathameshk@nvidia.com>
Thu, 9 Oct 2025 07:07:24 +0000 (07:07 +0000)
committerPrathamesh Kulkarni <prathameshk@nvidia.com>
Thu, 9 Oct 2025 07:26:51 +0000 (07:26 +0000)
commite63cf4b130b86dd7dde1bf499d3d40faca10ea2e
tree48aae4aefd93a9bf5c75449d3f121c9dde8a8ffb
parent5e9eecc66867ba0ae7df20f1cd526ad38fd1888f
PR81358: Enable automatic linking of libatomic.

ChangeLog:
PR driver/81358
* Makefile.def: Add no_atomic=true for libraries that don't depend on
libatomic.
* Makefile.tpl: Export TARGET_CONFIGDIRS and create rule to
add dependencies for libatomic.
* configure.ac: Add libatomic to bootstrap_target_libs.
* Makefile.in: Regenerate.
* configure: Regenerate.

gcc/ChangeLog:
PR driver/81358
* common.opt: New option -flink-libatomic.
* gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
* config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Use LINK_LIBATOMIC_SPEC.
* config/arm/uclinux-elf.h: Likewise.
* config/arm/unknown-elf.h: Likewise.
* config/avr/avrlibc.h: Likewise.
* config/bfin/linux.h: Likewise.
* config/darwin.h: Likewise.
* config/gnu-user.h: Likewise.
* config/lm32/uclinux-elf.h: Likewise.
* config/rs6000/linux64.h: Likewise.
* config/rs6000/rtems.h: Likewise.
* config/sparc/sparc.h: Likewise.
* doc/invoke.texi: Document -flink-libatomic.
* configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
* configure: Regenerate.
* config.in: Regenerate.
* common.opt.urls: Regenerate.

libatomic/ChangeLog:
PR driver/81358
* Makefile.am: Pass -fno-link-libatomic.
New rule all-local.
* configure.ac: Assert that CFLAGS is set and pass -fno-link-libatomic.
Use __libatomic_save_CFLAGS__ instead of save_CFLAGS.
* Makefile.in: Regenerate.
* configure: Regenerate.

Signed-off-by: Prathamesh Kulkarni <prathameshk@nvidia.com>
Co-authored-by: Matthew Malcolmson <mmalcolmson@nvidia.com>
27 files changed:
Makefile.def
Makefile.in
Makefile.tpl
configure
configure.ac
gcc/common.opt
gcc/common.opt.urls
gcc/config.in
gcc/config/alpha/linux.h
gcc/config/arm/uclinux-elf.h
gcc/config/arm/unknown-elf.h
gcc/config/avr/avrlibc.h
gcc/config/bfin/linux.h
gcc/config/darwin.h
gcc/config/gnu-user.h
gcc/config/lm32/uclinux-elf.h
gcc/config/rs6000/linux64.h
gcc/config/rs6000/rtems.h
gcc/config/sparc/sparc.h
gcc/configure
gcc/configure.ac
gcc/doc/invoke.texi
gcc/gcc.cc
libatomic/Makefile.am
libatomic/Makefile.in
libatomic/configure
libatomic/configure.ac