From 049d76bdd2ac7b3e65dc70b91e3b1e95e1a12d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Fri, 18 Sep 2015 23:02:05 +0200 Subject: [PATCH] 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. --- mk/platform.mk | 8 ++++++++ 1 file changed, 8 insertions(+) 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"