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

File Fix-iOS-link-warnings-b.patch, 2.2 KB (added by lukexi, 18 months ago)

(supersedes) fix missing "not staticLink" predicates

  • compiler/main/DriverPipeline.hs

    diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
    index 9f279e0..e456bca 100644
    a b linkBinary' staticLink dflags o_files dep_packages = do 
    19171917                      -- on x86. 
    19181918                      ++ (if sLdSupportsCompactUnwind mySettings && 
    19191919                             not staticLink && 
    1920                              platformOS   platform == OSDarwin && 
    1921                              platformArch platform `elem` [ArchX86, ArchX86_64] 
     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                             not staticLink 
     1933                          then ["-Wl,-no_pie"] 
     1934                          else []) 
     1935 
    19251936                      -- '-Wl,-read_only_relocs,suppress' 
    19261937                      -- ld gives loads of warnings like: 
    19271938                      --     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