diff options
author | Andrew Waterman <andrew@sifive.com> | 2024-03-03 17:40:20 -0800 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2024-03-03 18:03:51 -0800 |
commit | c820d2b9b485dc0204fc21ec7ea704e8e8c4c4ec (patch) | |
tree | c2d7ff8ee34b8cb87c70b4b85d501c2d943aa5db | |
parent | 567e687b215e1198fe6e45122f245f1c9f4da556 (diff) | |
download | spike-c820d2b9b485dc0204fc21ec7ea704e8e8c4c4ec.zip spike-c820d2b9b485dc0204fc21ec7ea704e8e8c4c4ec.tar.gz spike-c820d2b9b485dc0204fc21ec7ea704e8e8c4c4ec.tar.bz2 |
Don't include subproject headers with -I
Use -iquote instead. This prevents our include paths from messing up
the system headers depended upon by libstdc++. (The specific problem
was syscall.h in fesvr/, which was interfering with libstdc++'s
dependence on the system's syscall.h for SYS_futex.)
Subproject headers can now be included in the following ways:
#include "foo.h" // for a header local to this subproject
#include <bar/baz.h>" // for a header in another subproject
But no longer:
#include <baz.h> // for a header in any subproject
As a special case, libfdt needs itself to be added to the -I path,
because their coding style is to use angle brackets for local headers.
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | fdt/fdt.mk.in | 2 | ||||
-rw-r--r-- | riscv/riscv.mk.in | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in index dc70893..f90159e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -69,7 +69,7 @@ install_exes_dir := $(INSTALLDIR)/bin sprojs := @subprojects@ sprojs_enabled := @subprojects_enabled@ -sprojs_include := -I. -I$(src_dir) $(addprefix -I$(src_dir)/, $(sprojs_enabled)) +sprojs_include := -iquote . -I$(src_dir) $(addprefix -iquote $(src_dir)/, $(sprojs_enabled)) VPATH := $(addprefix $(src_dir)/, $(sprojs_enabled)) #------------------------------------------------------------------------- diff --git a/fdt/fdt.mk.in b/fdt/fdt.mk.in index 99e7639..64d06ac 100644 --- a/fdt/fdt.mk.in +++ b/fdt/fdt.mk.in @@ -15,3 +15,5 @@ fdt_c_srcs = \ fdt_empty_tree.c \ fdt_addresses.c \ fdt_overlay.c \ + +fdt_CFLAGS = -I$(src_dir)/fdt diff --git a/riscv/riscv.mk.in b/riscv/riscv.mk.in index 04747c9..df557f5 100644 --- a/riscv/riscv.mk.in +++ b/riscv/riscv.mk.in @@ -7,7 +7,7 @@ riscv_subproject_deps = \ fesvr \ softfloat \ -riscv_CFLAGS = -fPIC +riscv_CFLAGS = -fPIC -I$(src_dir)/fdt riscv_install_shared_lib = yes |