diff --git a/dmd/src/dmd/glue.d b/dmd/src/dmd/glue.d index 4520f3b9..bc3356b3 100644 --- a/dmd/src/dmd/glue.d +++ b/dmd/src/dmd/glue.d @@ -1129,7 +1129,7 @@ private void specialFunctions(Obj objmod, FuncDeclaration fd) // Pull in RTL startup code (but only once) if (fd.isMain() && onlyOneMain(fd.loc)) { - if (target.isPOSIX) + if (target.isPOSIX && target.os != Target.OS.linux) { objmod.external_def("_main"); } diff --git a/dmd/src/posix.mak b/dmd/src/posix.mak index 13909ecd..f9f1f466 100644 --- a/dmd/src/posix.mak +++ b/dmd/src/posix.mak @@ -97,7 +97,7 @@ ifeq (,$(HOST_DMD_PATH)) endif HOST_DMD_RUN:=$(HOST_DMD) -RUN_BUILD = $(GENERATED)/build OS="$(OS)" BUILD="$(BUILD)" MODEL="$(MODEL)" HOST_DMD="$(HOST_DMD)" CXX="$(HOST_CXX)" AUTO_BOOTSTRAP="$(AUTO_BOOTSTRAP)" DOCDIR="$(DOCDIR)" STDDOC="$(STDDOC)" DOC_OUTPUT_DIR="$(DOC_OUTPUT_DIR)" MAKE="$(MAKE)" VERBOSE="$(VERBOSE)" ENABLE_RELEASE="$(ENABLE_RELEASE)" ENABLE_DEBUG="$(ENABLE_DEBUG)" ENABLE_ASSERTS="$(ENABLE_ASSERTS)" ENABLE_UNITTEST="$(ENABLE_UNITTEST)" ENABLE_PROFILE="$(ENABLE_PROFILE)" ENABLE_COVERAGE="$(ENABLE_COVERAGE)" DFLAGS="$(DFLAGS)" +RUN_BUILD = $(GENERATED)/build OS="$(OS)" BUILD="$(BUILD)" MODEL="$(MODEL)" HOST_DMD="$(HOST_DMD)" CXX="$(HOST_CXX)" AUTO_BOOTSTRAP="$(AUTO_BOOTSTRAP)" DOCDIR="$(DOCDIR)" STDDOC="$(STDDOC)" DOC_OUTPUT_DIR="$(DOC_OUTPUT_DIR)" MAKE="$(MAKE)" VERBOSE="$(VERBOSE)" ENABLE_RELEASE="$(ENABLE_RELEASE)" ENABLE_DEBUG="$(ENABLE_DEBUG)" ENABLE_ASSERTS="$(ENABLE_ASSERTS)" ENABLE_UNITTEST="$(ENABLE_UNITTEST)" ENABLE_PROFILE="$(ENABLE_PROFILE)" ENABLE_COVERAGE="$(ENABLE_COVERAGE)" DFLAGS="$(DFLAGS)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" ######## Begin build targets all: dmd @@ -108,7 +108,7 @@ dmd: $(GENERATED)/build .PHONY: dmd $(GENERATED)/build: build.d $(HOST_DMD_PATH) - $(HOST_DMD_RUN) -of$@ -g build.d + $(HOST_DMD_RUN) -fPIC -of$@ -g build.d auto-tester-build: $(GENERATED)/build $(RUN_BUILD) $@