Ticket #8208: Fix-iOS-link-warnings-a.patch

File Fix-iOS-link-warnings-a.patch, 2.3 KB (added by lukexi, 2 years ago)
  • compiler/main/DriverPipeline.hs

    diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
    index 9f279e0..03de371 100644
    a b linkBinary' staticLink dflags o_files dep_packages = do 
    19161916                      --     ld: warning: could not create compact unwind for .LFB3: non-standard register 5 being saved in prolog
    19171917                      -- on x86.
    19181918                      ++ (if sLdSupportsCompactUnwind mySettings &&
    1919                              not staticLink &&
    1920                              platformOS   platform == OSDarwin &&
    1921                              platformArch platform `elem` [ArchX86, ArchX86_64]
     1919                             --not staticLink &&
     1920                             (platformOS platform == OSDarwin || platformOS platform == OSiOS) &&
     1921                             case platformArch platform of
     1922                               ArchX86 -> True
     1923                               ArchX86_64 -> True
     1924                               ArchARM {} -> True
     1925                               _ -> False
    19221926                          then ["-Wl,-no_compact_unwind"]
    19231927                          else [])
    19241928
     1929                      -- '-no_pie'
     1930                      -- iOS uses 'dynamic-no-pic', so we must pass this to ld to suppress a warning; see #7722
     1931                      ++ (if platformOS platform == OSiOS
     1932                          then ["-Wl,-no_pie"]
     1933                          else [])
     1934
    19251935                      -- '-Wl,-read_only_relocs,suppress'
    19261936                      -- ld gives loads of warnings like:
    19271937                      --     ld: warning: text reloc in _base_GHCziArr_unsafeArray_info to _base_GHCziArr_unsafeArray_closure
  • compiler/main/SysTools.lhs

    diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs
    index 6fe29a9..78255b7 100644
    a b getLinkerInfo' dflags = do 
    681681                 -- that doesn't support --version. We can just assume that's
    682682                 -- what we're using.
    683683                 return $ DarwinLD []
     684               OSiOS ->
     685                 -- Ditto for iOS
     686                 return $ DarwinLD []
    684687               OSMinGW32 ->
    685688                 -- GHC doesn't support anything but GNU ld on Windows anyway.
    686689                 -- Process creation is also fairly expensive on win32, so