From e1686eef7c1dbaf4d7922dffa1dd8e36e1054b1f Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Wed, 8 May 2024 20:45:04 +0200 Subject: gcc: use -idirafter for libc headers (#44081) GCC C++ headers like cstdlib use `#include_next ` to wrap libc headers. We're using `-isystem` for libc, which puts those headers too early in the search path. `-idirafter` fixes this so `include_next` works. --- var/spack/repos/builtin/packages/gcc/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 88c2faeb6a..e5d9f9a390 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -1174,7 +1174,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): os.path.exists(os.path.join(header_dir, h)) for h in libc.package_class.representative_headers ): - relocation_args.append(f"-isystem {header_dir}") + relocation_args.append(f"-idirafter {header_dir}") else: tty.warn( f"Cannot relocate {specs_file} include directories, " -- cgit v1.2.3-70-g09d2