diff --git a/compiler/GHC/StgToJS/Linker/Linker.hs b/compiler/GHC/StgToJS/Linker/Linker.hs index 22b1c833e8cb607d2fd2e560cf70e57fc1fcca83..68decdd100f918b53d2f2116181f7504e18b7608 100644 --- a/compiler/GHC/StgToJS/Linker/Linker.hs +++ b/compiler/GHC/StgToJS/Linker/Linker.hs @@ -328,7 +328,7 @@ computeLinkDependencies cfg unit_env link_spec finder_opts finder_cache = do let obj_roots = S.fromList . filter obj_is_root $ concatMap (M.keys . bi_exports . lbi_info) (M.elems objs_block_info) obj_units = map moduleUnitId $ nub (M.keys objs_block_info) - let (rts_wired_units, rts_wired_functions) = rtsDeps units + let (rts_wired_units, rts_wired_functions) = rtsDeps -- all the units we want to link together, without their dependencies let root_units = filter (/= ue_currentUnit unit_env) @@ -802,24 +802,9 @@ readArObject ar_state mod ar_file = do go_entries entries - --- | A helper function to read system dependencies that are hardcoded -diffDeps - :: [UnitId] -- ^ Packages that are already Linked - -> ([UnitId], Set ExportedFun) -- ^ New units and functions to link - -> ([UnitId], Set ExportedFun) -- ^ Diff -diffDeps pkgs (deps_pkgs,deps_funs) = - ( filter linked_pkg deps_pkgs - , S.filter linked_fun deps_funs - ) - where - linked_fun f = moduleUnitId (funModule f) `S.member` linked_pkgs - linked_pkg p = S.member p linked_pkgs - linked_pkgs = S.fromList pkgs - -- | dependencies for the RTS, these need to be always linked -rtsDeps :: [UnitId] -> ([UnitId], Set ExportedFun) -rtsDeps pkgs = diffDeps pkgs $ +rtsDeps :: ([UnitId], Set ExportedFun) +rtsDeps = ( [baseUnitId, primUnitId] , S.fromList $ concat [ mkBaseFuns "GHC.Conc.Sync" diff --git a/testsuite/tests/driver/MergeObjsMode/all.T b/testsuite/tests/driver/MergeObjsMode/all.T index 034b0a0dbd9ad731994886c30e3d3e14ab46830e..89025a588adaad41cca08c52a5aa083027840c27 100644 --- a/testsuite/tests/driver/MergeObjsMode/all.T +++ b/testsuite/tests/driver/MergeObjsMode/all.T @@ -1,6 +1,5 @@ test('MergeObjsMode', [ extra_files(['A.hs', 'B.hs', 'Main.hs']) - , js_broken(22261) ], makefile_test, []) diff --git a/testsuite/tests/driver/T1959/test.T b/testsuite/tests/driver/T1959/test.T index ec2accc0956d095710d20d8e8de405937e6120b5..77cfd75dc6626da9f8309f61351ab9b89ae7e6b5 100644 --- a/testsuite/tests/driver/T1959/test.T +++ b/testsuite/tests/driver/T1959/test.T @@ -1 +1 @@ -test('T1959', [extra_files(['B.hs', 'C.hs', 'D.hs', 'E1.hs', 'E2.hs']), js_broken(22374)], makefile_test, ['dotest']) +test('T1959', [extra_files(['B.hs', 'C.hs', 'D.hs', 'E1.hs', 'E2.hs'])], makefile_test, ['dotest']) diff --git a/testsuite/tests/driver/recomp008/all.T b/testsuite/tests/driver/recomp008/all.T index 702b3b6f645c0d9c4033374480e05f1078d53483..128a757ddb1b36ddd371bf98eb898f7acac0e2c7 100644 --- a/testsuite/tests/driver/recomp008/all.T +++ b/testsuite/tests/driver/recomp008/all.T @@ -3,6 +3,5 @@ test('recomp008', [extra_files(['A1.hs', 'A2.hs', 'B.hs', 'Main.hs']) , when(fast(), skip) - , normalise_slashes - , js_broken(22261)], + , normalise_slashes], makefile_test, [])