diff options
author | Tamar Christina <tamar@zhox.com> | 2017-08-28 12:29:48 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-08-29 12:38:10 -0400 |
commit | 5266ab9059dffa741b172636f50f1fbfd491dbb4 (patch) | |
tree | 33a59d9f309d775e318cef3b160cec34f359e0c3 /rules | |
parent | db3a8e168ad81f54ec58eebc4c75a0eaad889daf (diff) | |
download | haskell-5266ab9059dffa741b172636f50f1fbfd491dbb4.tar.gz |
Remove dll-split.
This patch removes dll-split from the code base, the reason is dll-split
no longer makes any sense. It was designed to split a dll in two, but we
now already have many more symbols than would fit inside two dlls. So we
need a third one. This means there's no point in having to maintain this
list as it'll never work anyway and the solution isn't scalable.
Test Plan: ./validate
Reviewers: austin, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie, #ghc_windows_task_force
GHC Trac Issues: #5987
Differential Revision: https://phabricator.haskell.org/D3882
Diffstat (limited to 'rules')
-rw-r--r-- | rules/build-package-data.mk | 2 | ||||
-rw-r--r-- | rules/build-package-way.mk | 43 | ||||
-rw-r--r-- | rules/distdir-way-opts.mk | 8 |
3 files changed, 4 insertions, 49 deletions
diff --git a/rules/build-package-data.mk b/rules/build-package-data.mk index 04364b781e..2f0d7c9f2a 100644 --- a/rules/build-package-data.mk +++ b/rules/build-package-data.mk @@ -125,7 +125,7 @@ ifneq "$$($1_NO_CHECK)" "YES" "$$(ghc-cabal_INPLACE)" check $1 endif endif - "$$(ghc-cabal_INPLACE)" configure $1 $2 "$$($1_$2_dll0_MODULES)" --with-ghc="$$($1_$2_HC_CONFIG)" --with-ghc-pkg="$$($1_$2_GHC_PKG)" $$($1_CONFIGURE_OPTS) $$($1_$2_CONFIGURE_OPTS) + "$$(ghc-cabal_INPLACE)" configure $1 $2 --with-ghc="$$($1_$2_HC_CONFIG)" --with-ghc-pkg="$$($1_$2_GHC_PKG)" $$($1_CONFIGURE_OPTS) $$($1_$2_CONFIGURE_OPTS) ifeq "$$($1_$2_PROG)" "" $$(call cmd,$1_$2_GHC_PKG) update -v0 --force $$($1_$2_GHC_PKG_OPTS) $1/$2/inplace-pkg-config endif diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk index 3b4d1c926c..73fc684257 100644 --- a/rules/build-package-way.mk +++ b/rules/build-package-way.mk @@ -23,18 +23,10 @@ $(call hs-objs,$1,$2,$3) # The .a/.so library file, indexed by two different sets of vars: # the first is indexed by the dir, distdir and way # the second is indexed by the package id, distdir and way -$1_$2_$3_LIB_FILE = libHS$$($1_$2_COMPONENT_ID)$$($3_libsuf) +$1_$2_$3_LIB_FILE = libHS$$($1_$2_COMPONENT_ID)$(subst .,%,$$($3_libsuf)) $1_$2_$3_LIB = $1/$2/build/$$($1_$2_$3_LIB_FILE) $$($1_$2_COMPONENT_ID)_$2_$3_LIB = $$($1_$2_$3_LIB) -ifeq "$$(TargetOS_CPP)" "mingw32" -ifneq "$$($1_$2_dll0_HS_OBJS)" "" -$1_$2_$3_LIB0_ROOT = HS$$($1_$2_COMPONENT_ID)-0$$($3_libsuf) -$1_$2_$3_LIB0_NAME = lib$$($1_$2_$3_LIB0_ROOT) -$1_$2_$3_LIB0 = $1/$2/build/$$($1_$2_$3_LIB0_NAME) -endif -endif - # Note [inconsistent distdirs] # # hack: the DEPS_LIBS mechanism assumes that the distdirs for packages @@ -62,32 +54,11 @@ $1_$2_$3_ALL_OBJS = $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS) ifeq "$3" "dyn" -ifneq "$$($1_$2_dll0_MODULES)" "" -$$($1_$2_$3_LIB) : $1/$2/dll-split.stamp -ifneq "$$($1_$2_$3_LIB0)" "" -$$($1_$2_$3_LIB0) : $1/$2/dll-split.stamp -endif -endif - -$1/$2/dll-split.stamp: $$($1_$2_depfile_haskell) $$$$(dll-split_INPLACE) - $$(dll-split_INPLACE) $$< "$$($1_$2_dll0_START_MODULE)" "$$($1_$2_dll0_MODULES)" - touch $$@ - # Link a dynamic library # On windows we have to supply the extra libs this one links to when building it. ifeq "$$(TargetOS_CPP)" "mingw32" $$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS) -ifneq "$$($1_$2_$3_LIB0)" "" - $$(call build-dll,$1,$2,$3,-L$1/$2/build -l$$($1_$2_$3_LIB0_ROOT),$$(filter-out $$($1_$2_dll0_HS_OBJS),$$($1_$2_$3_HS_OBJS)) $$($1_$2_$3_NON_HS_OBJS),$$@) -else - $$(call build-dll,$1,$2,$3,,$$($1_$2_$3_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS),$$@) -endif - -ifneq "$$($1_$2_$3_LIB0)" "" -$$($1_$2_$3_LIB) : $$($1_$2_$3_LIB0) -$$($1_$2_$3_LIB0) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS) - $$(call build-dll,$1,$2,$3,,$$($1_$2_dll0_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS),$$($1_$2_$3_LIB0)) -endif + $$(call build-dll,$1,$2,$3,-L$1/$2/build,,$$($1_$2_$3_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS),"$$@","NO","$$($1_PACKAGE)","$$($1_$2_VERSION)") else # ifneq "$$(TargetOS_CPP)" "mingw32" $$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS) @@ -116,14 +87,6 @@ else endif $$(call removeFiles,$$@.contents) -ifeq "$$(TargetOS_CPP)" "mingw32" -ifneq "$$($1_$2_$3_LIB0)" "" -$$($1_$2_$3_LIB) : $$($1_$2_$3_LIB0) -$$($1_$2_$3_LIB0) : - $$(call cmd,$1_$2_AR) $$($1_$2_AR_OPTS) $$($1_$2_EXTRA_AR_ARGS) $$@ -endif -endif - endif # "$3" "dyn" $(call all-target,$1_$2,all_$1_$2_$3) @@ -133,7 +96,7 @@ $(call all-target,$1_$2_$3,$$($1_$2_$3_LIB)) ifneq "$4" "0" BINDIST_HI += $$($1_$2_$3_HI) BINDIST_LIBS += $$($1_$2_$3_LIB) -BINDIST_LIBS += $$($1_$2_$3_LIB0) +# Need to put the split libs and import libraries here endif ifeq "$$($1_$2_SplitSections)" "YES" diff --git a/rules/distdir-way-opts.mk b/rules/distdir-way-opts.mk index eb4a5c420c..88847e86b7 100644 --- a/rules/distdir-way-opts.mk +++ b/rules/distdir-way-opts.mk @@ -177,14 +177,6 @@ $1_$2_$3_ALL_HC_OPTS = \ $$(if $$(findstring YES,$$($1_$2_SplitSections)),$$(if $$(findstring dyn,$3),,-split-sections),) \ $$(if $$(findstring YES,$$($1_$2_DYNAMIC_TOO)),$$(if $$(findstring v,$3),-dynamic-too)) -ifeq "$3" "dyn" -ifeq "$$(HostOS_CPP)" "mingw32" -ifneq "$$($1_$2_dll0_MODULES)" "" -$1_$2_$3_ALL_HC_OPTS += -dll-split $1/$2/dll-split -endif -endif -endif - $1_$2_$3_ALL_CC_OPTS = \ $$(WAY_$3_CC_OPTS) \ $$($1_$2_DIST_GCC_CC_OPTS) \ |