diff options
-rw-r--r-- | compiler/main/DriverPipeline.hs | 8 | ||||
-rw-r--r-- | compiler/utils/Platform.hs | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index 1328ffe209..6c4bff9364 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -1819,7 +1819,13 @@ linkBinary dflags o_files dep_packages = do extraLinkObj <- mkExtraObjToLinkIntoBinary dflags noteLinkObjs <- mkNoteObjsToLinkIntoBinary dflags dep_packages - pkg_link_opts <- getPackageLinkOpts dflags dep_packages + pkg_link_opts <- if platformBinariesAreStaticLibs platform + then -- If building an executable really means + -- making a static library (e.g. iOS), then + -- we don't want the options (like -lm) + -- that getPackageLinkOpts gives us. #7720 + return [] + else getPackageLinkOpts dflags dep_packages pkg_framework_path_opts <- if platformUsesFrameworks platform diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs index 213a63e0c8..617e691ddf 100644 --- a/compiler/utils/Platform.hs +++ b/compiler/utils/Platform.hs @@ -13,6 +13,7 @@ module Platform ( isARM, osElfTarget, platformUsesFrameworks, + platformBinariesAreStaticLibs, ) where @@ -135,3 +136,10 @@ osUsesFrameworks _ = False platformUsesFrameworks :: Platform -> Bool platformUsesFrameworks = osUsesFrameworks . platformOS +osBinariesAreStaticLibs :: OS -> Bool +osBinariesAreStaticLibs OSiOS = True +osBinariesAreStaticLibs _ = False + +platformBinariesAreStaticLibs :: Platform -> Bool +platformBinariesAreStaticLibs = osBinariesAreStaticLibs . platformOS + |