aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2024-03-03 17:40:20 -0800
committerAndrew Waterman <andrew@sifive.com>2024-03-03 18:03:51 -0800
commitc820d2b9b485dc0204fc21ec7ea704e8e8c4c4ec (patch)
treec2d7ff8ee34b8cb87c70b4b85d501c2d943aa5db
parent567e687b215e1198fe6e45122f245f1c9f4da556 (diff)
downloadspike-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.in2
-rw-r--r--fdt/fdt.mk.in2
-rw-r--r--riscv/riscv.mk.in2
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