[PATCH] LoongArch: Link c++ header directory in the default ABI to the toplevel.

Yang Yujie yangyujie@loongson.cn
Wed Sep 6 10:06:28 GMT 2023


When multilib is enabled, the c++ header directory of the default multilib
variant needs to be linked to the toplevel since g++ does not search the
toplevel in this case.

libstdc++-v3/ChangeLog:

	* configure.host: Register t-loongarch in tmake_file.
	* config/cpu/loongarch/t-loongarch: New file.  Link c++ header
	directory in the default ABI to the toplevel.
---
 libstdc++-v3/config/cpu/loongarch/t-loongarch | 12 ++++++++++++
 libstdc++-v3/configure.host                   |  5 ++++-
 2 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 libstdc++-v3/config/cpu/loongarch/t-loongarch

diff --git a/libstdc++-v3/config/cpu/loongarch/t-loongarch b/libstdc++-v3/config/cpu/loongarch/t-loongarch
new file mode 100644
index 00000000000..942eddeb3be
--- /dev/null
+++ b/libstdc++-v3/config/cpu/loongarch/t-loongarch
@@ -0,0 +1,12 @@
+LA_DEFAULT_MULTIDIR = $(shell $(CXX) --print-multi-directory)
+TOPLEV_HEADERS = $(DESTDIR)${gxx_include_dir}/${host_alias}/$(LA_DEFAULT_MULTIDIR)
+
+.PHONY: install-toplevel-link
+install: install-toplevel-link
+install-toplevel-link:
+	if test x$(MULTIDO) != xtrue && \
+	   test x$(LA_DEFAULT_MULTIDIR) != x.; then \
+	    $(MKDIR_P) "$(dir $(TOPLEV_HEADERS))"; \
+	    rm -rf "$(TOPLEV_HEADERS)"; \
+	    $(LN_S) ../ "$(TOPLEV_HEADERS)"; \
+	fi
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index 9e7c7f02dfd..9dc42ad3edb 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -315,7 +315,10 @@ esac
 # Set any OS-dependent and CPU-dependent bits.
 # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
 case "${host}" in
-  *-*-linux* | *-*-uclinux*)
+ loongarch*)
+    tmake_file="cpu/loongarch/t-loongarch"
+    ;;
+ *-*-linux* | *-*-uclinux*)
     case "${host_cpu}" in
       i[567]86)
         abi_baseline_pair=i486-linux-gnu
-- 
2.36.0



More information about the Gcc-patches mailing list