From: sthibault@debian.org   
      
   Package: ghc   
   Version: 9.6.6-4   
   Severity: important   
   Tags: patch upstream   
   Forwarded: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/15319   
      
   Hello,   
      
   A few patches are needed to fix building ghc on hurd-any. The attached   
   three patches have already been applied upstream, could you apply them   
   to the Debian package?   
      
   Thanks,   
   Samuel   
      
   -- System Information:   
   Debian Release: forky/sid   
    APT prefers testing   
    APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, '   
   esting-debug'), (500, 'stable-security'), (500, 'stable-debug'), (500,   
   'proposed-updates'), (500, 'oldstable-debug'), (500, 'oldoldstable'), (500,   
   'buildd-unstable'), (500, 'unstable'), (   
   500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1,   
   'buildd-experimental'), (1, 'experimental')   
   Architecture: amd64 (x86_64)   
   Foreign Architectures: i386, arm64   
      
   Kernel: Linux 6.19.0 (SMP w/22 CPU threads; PREEMPT)   
   Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not   
   set   
   Shell: /bin/sh linked to /usr/bin/dash   
   Init: systemd (via /run/systemd/system)   
   LSM: AppArmor: enabled   
      
   Versions of packages ghc depends on:   
   ii dpkg 1.23.5   
   ii gcc 4:15.2.0-5   
   ii libbsd-dev 0.12.2-2+b1   
   ii libc6 2.42-11+b1   
   ii libc6-dev 2.42-11+b1   
   ii libffi-dev 3.5.2-3+b1   
   ii libffi8 3.5.2-3+b1   
   ii libgmp-dev 2:6.3.0+dfsg-5+b1   
   ii libgmp10 2:6.3.0+dfsg-5+b1   
   ii libncurses-dev 6.6+20251231-1   
   ii libnuma-dev 2.0.19-1+b1   
   ii libnuma1 2.0.19-1+b1   
   ii libtinfo6 6.6+20251231-1   
      
   Versions of packages ghc recommends:   
   ii libstdc++-14-dev 14.3.0-12   
      
   Versions of packages ghc suggests:   
   pn ghc-doc    
   pn ghc-prof    
   ii llvm-18 1:18.1.8-20+b2   
   ii perl 5.40.1-7   
      
   -- no debconf information   
      
   commit bf4694e9d10b7d9898ed1e3cd7ae115fd33ac725   
   Author: Samuel Thibault    
   Date: Sat Jan 10 15:53:10 2026 +0100   
      
    Fix linking against libm by moving the -lm option   
      
    For those systems that need -lm for getting math functions, this is   
    currently added on the link line very early, before the object files being   
    linked together. Newer toolchains enable --as-needed by default, which   
   means   
    -lm is ignored at that point because no object requires a math function   
    yet. With such toolchains, we thus have to add -lm after the objects, so   
   the   
    linker actually includes libm in the link.   
      
   ---   
    compiler/GHC/Linker/Dynamic.hs | 2 +-   
    1 file changed, 1 insertion(+), 1 deletion(-)   
      
   https://gitlab.haskell.org/ghc/ghc/-/merge_requests/15319   
      
   --- a/compiler/GHC/Linker/Dynamic.hs   
   +++ b/compiler/GHC/Linker/Dynamic.hs   
   @@ -223,7 +223,6 @@ linkDynLib logger tmpfs dflags0 unit_env   
      
    runLink logger tmpfs linker_config (   
    map Option verbFlags   
   - ++ libmLinkOpts platform   
    ++ [ Option "-o"   
    , FileOption "" output_fn   
    ]   
   @@ -234,6 +233,7 @@ linkDynLib logger tmpfs dflags0 unit_env   
    -- Solaris 10 doesn't support the latter:   
    ++ [ Option ("-Wl,-h," ++ takeFileName output_fn) ]   
    ++ extra_ld_inputs   
   + ++ libmLinkOpts platform   
    ++ map Option lib_path_opts   
    ++ map Option pkg_lib_path_opts   
    ++ map Option pkg_link_opts   
      
   https://gitlab.haskell.org/ghc/ghc/-/merge_requests/15318   
      
   +   
      
   From 3939a8bf93e27d8151aa1d92bf3ce10bbbc96a72 Mon Sep 17 00:00:00 2001   
   From: Samuel Thibault    
   Date: Sun, 15 Sep 2024 15:57:52 +0200   
   Subject: [PATCH] GNU/Hurd: Add getExecutablePath support   
      
   GNU/Hurd exposes it as /proc/self/exe just like on Linux.   
   ---   
    .../src/GHC/Internal/System/Environment/ExecutablePath.hsc | 6 +++---   
    1 file changed, 3 insertions(+), 3 deletions(-)   
      
   Index: ghc-9.10.3/libraries/ghc-internal/src/GHC/Internal/System   
   Environment/ExecutablePath.hsc   
   ===================================================================   
   --- ghc-9.10.3.orig/libraries/ghc-internal/src/GHC/Internal/Syst   
   m/Environment/ExecutablePath.hsc   
   +++ ghc-9.10.3/libraries/ghc-internal/src/GHC/Internal/System/En   
   ironment/ExecutablePath.hsc   
   @@ -51,7 +51,7 @@ import GHC.Internal.Foreign.Ptr   
    import GHC.Internal.Foreign.Storable   
    import GHC.Internal.System.IO.Error (isDoesNotExistError)   
    import GHC.Internal.System.Posix.Internals   
   -#elif defined(linux_HOST_OS)   
   +#elif defined(linux_HOST_OS) || defined(gnu_HOST_OS)   
    import GHC.Internal.Data.Functor   
    import GHC.Internal.Data.List (isSuffixOf)   
    import GHC.Internal.Foreign.C.Types   
   @@ -200,9 +200,9 @@ executablePath = Just (fmap Just getExec   
    | otherwise = throw e   
      
    ---------------------------------------------------------------   
   ----------------   
   --- Linux / Solaris   
   +-- Linux / Solaris / Hurd   
      
   -#elif defined(linux_HOST_OS) || defined(solaris2_HOST_OS)   
   +#elif defined(linux_HOST_OS) || defined(solaris2_HOST_OS) || de   
   ined(gnu_HOST_OS)   
      
    foreign import ccall unsafe "readlink"   
    c_readlink :: CString -> CString -> CSize -> IO CInt   
   @@ -219,7 +219,7 @@ readSymbolicLink file =   
    c_readlink s buf 4096   
    peekFilePathLen (buf,fromIntegral len)   
      
   -# if defined(linux_HOST_OS)   
   +# if defined(linux_HOST_OS) || defined(gnu_HOST_OS)   
    getExecutablePath = readSymbolicLink $ "/proc/self/exe"   
      
    executablePath = Just (check <$> getExecutablePath) where   
      
   commit 95773d289c62373772f676df91c1278b7d382e30   
   Author: Samuel Thibault    
   Date: Sat Jan 10 15:59:18 2026 +0100   
      
    Fix the OS string encoding for GNU/Hurd   
      
    Following https://github.com/haskell/cabal/pull/9434/files , and as seen   
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|