about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSébastien Marie <semarie@users.noreply.github.com>2015-09-18 23:02:05 +0200
committerSébastien Marie <semarie@users.noreply.github.com>2015-09-20 19:06:37 +0200
commit049d76bdd2ac7b3e65dc70b91e3b1e95e1a12d43 (patch)
treefde231002932568b1c6dc4d9b089639aedbab686
parent25aaeb40b11a5983ed6000a8e466c08a701dfb99 (diff)
downloadrust-049d76bdd2ac7b3e65dc70b91e3b1e95e1a12d43.tar.gz
rust-049d76bdd2ac7b3e65dc70b91e3b1e95e1a12d43.zip
Pass libstdc++.so path to linker under OpenBSD
By default, the linker in use under OpenBSD is the linker of base, which
don't include /usr/local/lib where libstdc++ of gcc-4.9 lives. We need
to add this directory to linker-path-search (using -L).

Search the path of libstdc++.a, which is a known name (libstdc++.so has
SO_VERSION) in the same directory.
-rw-r--r--mk/platform.mk8
1 files changed, 8 insertions, 0 deletions
diff --git a/mk/platform.mk b/mk/platform.mk
index fcb6a5b50d3..856a22dc606 100644
--- a/mk/platform.mk
+++ b/mk/platform.mk
@@ -208,6 +208,14 @@ define CFG_MAKE_TOOLCHAIN
 
   ifeq ($$(findstring $(HOST_$(1)),arm aarch64 mips mipsel powerpc),)
 
+  # On OpenBSD, we need to pass the path of libstdc++.so to the linker
+  # (use path of libstdc++.a which is a known name for the same path)
+  ifeq ($(OSTYPE_$(1)),unknown-openbsd)
+    RUSTC_FLAGS_$(1)=-L "$$(dir $$(shell $$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
+        -print-file-name=lib$(CFG_STDCPP_NAME).a))" \
+        $(RUSTC_FLAGS_$(1))
+  endif
+
   # On Bitrig, we need the relocation model to be PIC for everything
   ifeq (,$(filter $(OSTYPE_$(1)),bitrig))
     LLVM_MC_RELOCATION_MODEL="pic"