@@ -1508,11 +1508,9 @@ RPATH_LIB := $(RPATH_ORIGIN)
15081508
15091509# --whole-archive
15101510ifeq ($(OS ) , Darwin)
1511- WHOLE_ARCHIVE := -Xlinker -all_load
1512- NO_WHOLE_ARCHIVE :=
1511+ whole_archive = -Xlinker -force_load $(1 )
15131512else
1514- WHOLE_ARCHIVE := -Wl,--whole-archive
1515- NO_WHOLE_ARCHIVE := -Wl,--no-whole-archive
1513+ whole_archive = -Wl,--whole-archive $(1 ) -Wl,--no-whole-archive
15161514endif
15171515
15181516# Initialize these once, then add to them in OS-specific blocks
@@ -1558,8 +1556,7 @@ ifeq (,$(findstring aarch64,$(ARCH)))
15581556OSLIBS += -lgcc_s
15591557endif
15601558
1561- OSLIBS += -Wl,--export-dynamic -Wl,--version-script=$(BUILDROOT ) /src/julia.expmap \
1562- $(NO_WHOLE_ARCHIVE )
1559+ OSLIBS += -Wl,--export-dynamic -Wl,--version-script=$(BUILDROOT ) /src/julia.expmap -Wl,--no-whole-archive
15631560endif
15641561
15651562ifeq ($(OS ) , OpenBSD)
@@ -1578,16 +1575,14 @@ endif
15781575ifeq ($(OS ) , Darwin)
15791576SHLIB_EXT := dylib
15801577OSLIBS += -framework CoreFoundation
1581- WHOLE_ARCHIVE := -Xlinker -all_load
1582- NO_WHOLE_ARCHIVE :=
15831578HAVE_SSP := 1
15841579JLIBLDFLAGS += -Wl,-compatibility_version,$(SOMAJOR ) -Wl,-current_version,$(JULIA_MAJOR_VERSION ) .$(JULIA_MINOR_VERSION ) .$(JULIA_PATCH_VERSION )
15851580endif
15861581
15871582ifeq ($(OS ) , WINNT)
15881583HAVE_SSP := 1
15891584OSLIBS += -Wl,--export-all-symbols -Wl,--version-script=$(BUILDROOT ) /src/julia.expmap \
1590- $( NO_WHOLE_ARCHIVE ) -lpsapi -lkernel32 -lws2_32 -liphlpapi -lwinmm -ldbghelp -luserenv -lsecur32 -latomic -lole32
1585+ -Wl,--no-whole-archive -lpsapi -lkernel32 -lws2_32 -liphlpapi -lwinmm -ldbghelp -luserenv -lsecur32 -latomic -lole32
15911586# N.B.: Unlike in the sysimage, we cannot -Wl,--disable-auto-import -Wl,--disable-runtime-pseudo-reloc here, because libstdc++/LLVM are not fully correct under
15921587# enforced visibility at this point.
15931588JLDFLAGS += -Wl,--stack,8388608
0 commit comments