[Git][haskell-team/DHG_packages][master] hadrian: Pass -DNOSMP to C compiler when needed

Ilias Tsitsimpis (@iliastsi) gitlab at salsa.debian.org
Thu Oct 12 18:54:56 BST 2023



Ilias Tsitsimpis pushed to branch master at Debian Haskell Group / DHG_packages


Commits:
b888fac3 by Ilias Tsitsimpis at 2023-10-12T18:13:36+03:00
hadrian: Pass -DNOSMP to C compiler when needed

- - - - -


4 changed files:

- p/haskell-hadrian/debian/changelog
- p/haskell-hadrian/debian/control
- + p/haskell-hadrian/debian/patches/fix-dnosmp
- p/haskell-hadrian/debian/patches/series


Changes:

=====================================
p/haskell-hadrian/debian/changelog
=====================================
@@ -1,3 +1,10 @@
+haskell-hadrian (9.4.7-2) unstable; urgency=medium
+
+  * Relax versioned dependency on GHC
+  * Pass -DNOSMP to C compiler when needed
+
+ -- Ilias Tsitsimpis <iliastsi at debian.org>  Thu, 12 Oct 2023 18:13:26 +0300
+
 haskell-hadrian (9.4.7-1) unstable; urgency=low
 
   * Initial release


=====================================
p/haskell-hadrian/debian/control
=====================================
@@ -8,7 +8,7 @@ Rules-Requires-Root: no
 Build-Depends: debhelper (>= 10),
  haskell-devscripts (>= 0.13),
  cdbs,
- ghc (>= 9.4),
+ ghc (>= 9.0),
  libghc-extra-dev (>= 1.4.7),
  libghc-shake-dev (>= 0.18.3),
  libghc-shake-dev (<< 0.20),


=====================================
p/haskell-hadrian/debian/patches/fix-dnosmp
=====================================
@@ -0,0 +1,62 @@
+commit bea762f2c9d3ff1f67e3fdb22a8ac288b32225b0
+Author: Ilias Tsitsimpis <iliastsi at debian.org>
+Date:   Thu Oct 12 12:44:02 2023 +0300
+
+    hadrian: Pass -DNOSMP to C compiler when needed
+    
+    Hadrian passes the -DNOSMP flag to GHC when the target doesn't support
+    SMP, but doesn't pass it to CC as well, leading to the following
+    compilation error on mips64el:
+    
+    | Run Cc (FindCDependencies CDep) Stage1: rts/sm/NonMovingScav.c => _build/stage1/rts/build/c/sm/NonMovingScav.o.d
+    Command line: /usr/bin/mips64el-linux-gnuabi64-gcc -E -MM -MG -MF _build/stage1/rts/build/c/hooks/FlagDefaults.thr_debug_p_o.d -MT _build/stage1/rts/build/c/hooks/FlagDefaults.o -Irts/include -I_build/stage1/rts/build -I_build/stage1/rts/build/include -Irts/include -x c rts/hooks/FlagDefaults.c -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wundef -fno-strict-aliasing -DTHREADED_RTS -DDEBUG -fomit-frame-pointer -O2 -g -Irts -I_build/stage1/rts/build -DDEBUG -fno-omit-frame-pointer -g3 -O0
+    ===> Command failed with error code: 1
+    In file included from rts/include/Stg.h:348,
+                     from rts/include/Rts.h:38,
+                     from rts/hooks/FlagDefaults.c:8:
+    rts/include/stg/SMP.h:416:2: error: #error memory barriers unimplemented on this architecture
+      416 | #error memory barriers unimplemented on this architecture
+          |  ^~~~~
+    rts/include/stg/SMP.h:440:2: error: #error memory barriers unimplemented on this architecture
+      440 | #error memory barriers unimplemented on this architecture
+          |  ^~~~~
+    rts/include/stg/SMP.h:464:2: error: #error memory barriers unimplemented on this architecture
+      464 | #error memory barriers unimplemented on this architecture
+          |  ^~~~~
+    
+    The old make system correctly passed this flag to both GHC and CC [1].
+    
+    Fix this error by passing -DNOSMP to CC as well.
+    
+    [1] https://gitlab.haskell.org/ghc/ghc/-/blob/00920f176b0235d5bb52a8e054d89a664f8938fe/rts/ghc.mk#L407
+    
+    Closes #24082
+
+Index: b/src/Settings/Packages.hs
+===================================================================
+--- a/src/Settings/Packages.hs
++++ b/src/Settings/Packages.hs
+@@ -300,13 +300,11 @@ rtsPackageArgs = package rts ? do
+           -- Set the namespace for the rts fs functions
+           , arg $ "-DFS_NAMESPACE=rts"
+           , arg $ "-DCOMPILING_RTS"
+-          , notM targetSupportsSMP           ? arg "-DNOSMP"
+           , way `elem` [debug, debugDynamic] ? pure [ "-DTICKY_TICKY"
+                                                     , "-optc-DTICKY_TICKY"]
+           , Profiling `wayUnit` way          ? arg "-DPROFILING"
+           , Threaded  `wayUnit` way          ? arg "-DTHREADED_RTS"
+-          , notM targetSupportsSMP           ? pure [ "-DNOSMP"
+-                                                    , "-optc-DNOSMP" ]
++          , notM targetSupportsSMP           ? arg "-optc-DNOSMP"
+           ]
+ 
+     let cArgs = mconcat
+@@ -325,6 +323,8 @@ rtsPackageArgs = package rts ? do
+           , arg "-Irts"
+           , arg $ "-I" ++ path
+ 
++          , notM targetSupportsSMP           ? arg "-DNOSMP"
++
+           , Debug     `wayUnit` way          ? pure [ "-DDEBUG"
+                                                     , "-fno-omit-frame-pointer"
+                                                     , "-g3"


=====================================
p/haskell-hadrian/debian/patches/series
=====================================
@@ -1,2 +1,3 @@
 hadrian-haddock-opts
 hadrian-iserv
+fix-dnosmp



View it on GitLab: https://salsa.debian.org/haskell-team/DHG_packages/-/commit/b888fac305bbbdb7fe3dd0fa7c777dd282b4ec29

-- 
View it on GitLab: https://salsa.debian.org/haskell-team/DHG_packages/-/commit/b888fac305bbbdb7fe3dd0fa7c777dd282b4ec29
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-haskell-commits/attachments/20231012/a6769067/attachment-0001.htm>


More information about the Pkg-haskell-commits mailing list