
Recently I started getting following error: ``` [nix-shell:~/ghc]$ "inplace/bin/ghc-stage1" -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Iincludes/dist-install/build -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_thr\" -static -optc-DTHREADED_RTS -O0 -H64m -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS -DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/sm/Scav_thr.c -o rts/dist/build/sm/Scav_thr.thr_o -v Glasgow Haskell Compiler, Version 8.11.0.20191222, stage 1 booted by GHC version 8.6.5 *** initializing package database: Using binary package database: /Users/ggreif/ghc/inplace/lib/package.conf.d/package.cache package flags [] loading package database /Users/ggreif/ghc/inplace/lib/package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.6.1 wired-in package integer-wired-in mapped to integer-gmp-1.0.2.0 wired-in package base mapped to base-4.14.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.16.0.0 wired-in package ghc mapped to ghc-8.11.0.20191222 !!! initializing package database: finished in 8.51 milliseconds, allocated 8.770 megabytes Created temporary directory: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 *** systool:cc: *** C Compiler: /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc -x c rts/sm/Scav_thr.c -o /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s -fno-common -U__PIC__ -D__PIC__ -Wimplicit -S -O2 -include /Users/ggreif/ghc/includes/ghcversion.h -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -Irts/dist/build -Irts/dist/build/./autogen -I/Users/ggreif/ghc/libraries/base/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/rts/dist/build -I/Users/ggreif/ghc/includes -I/Users/ggreif/ghc/includes/dist-derivedconstants/header -I/Users/ggreif/ghc/includes/dist-install/build -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DDTRACE -Wall -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wno-aggregate-return -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS '-DFS_NAMESPACE=rts' -fno-strict-aliasing -fno-common -DDTRACE -Irts/dist/build/./autogen -Wno-unknown-pragmas -O2 -fomit-frame-pointer -g '-DRtsWay="rts_thr"' -DTHREADED_RTS In file included from rts/sm/Scav_thr.c:3:0: error: In file included from rts/sm/Scav.c:51:0: error: In file included from rts/sm/GCUtils.h:18:0: error: rts/sm/GCTDecl.h:113:1: error: error: register '%r13' unsuitable for global register variables on this target | 113 | GCT_REG_DECL(gc_thread*, gct, REG_Base); | ^ GCT_REG_DECL(gc_thread*, gct, REG_Base); ^ rts/sm/GCTDecl.h:37:56: error: note: expanded from macro 'GCT_REG_DECL' | 37 | #define GCT_REG_DECL(type,name,reg) register type name REG(reg); | ^ #define GCT_REG_DECL(type,name,reg) register type name REG(reg); ^ includes/stg/MachRegs.h:160:24: error: note: expanded from macro 'REG' | 160 | #define REG(x) __asm__("%" #x) | ^ #define REG(x) __asm__("%" #x) ^ 1 error generated. *** Deleting temp files: Deleting: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_2.rsp Warning: deleting non-existent /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s *** Deleting temp dirs: Deleting: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 `cc' failed in phase `C Compiler'. (Exit code: 1) ``` My $CC is clang-9 (but I also tried others). Has anybody seen something similar? Cheers nd thanks, Gabor

Gabor Greif
Recently I started getting following error: ``` [nix-shell:~/ghc]$ "inplace/bin/ghc-stage1" -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Iincludes/dist-install/build -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_thr\" -static -optc-DTHREADED_RTS -O0 -H64m -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS -DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/sm/Scav_thr.c -o rts/dist/build/sm/Scav_thr.thr_o -v Glasgow Haskell Compiler, Version 8.11.0.20191222, stage 1 booted by GHC version 8.6.5 *** initializing package database: Using binary package database: /Users/ggreif/ghc/inplace/lib/package.conf.d/package.cache package flags [] loading package database /Users/ggreif/ghc/inplace/lib/package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.6.1 wired-in package integer-wired-in mapped to integer-gmp-1.0.2.0 wired-in package base mapped to base-4.14.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.16.0.0 wired-in package ghc mapped to ghc-8.11.0.20191222 !!! initializing package database: finished in 8.51 milliseconds, allocated 8.770 megabytes Created temporary directory: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 *** systool:cc: *** C Compiler: /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc -x c rts/sm/Scav_thr.c -o /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s -fno-common -U__PIC__ -D__PIC__ -Wimplicit -S -O2 -include /Users/ggreif/ghc/includes/ghcversion.h -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -Irts/dist/build -Irts/dist/build/./autogen -I/Users/ggreif/ghc/libraries/base/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/rts/dist/build -I/Users/ggreif/ghc/includes -I/Users/ggreif/ghc/includes/dist-derivedconstants/header -I/Users/ggreif/ghc/includes/dist-install/build -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DDTRACE -Wall -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wno-aggregate-return -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS '-DFS_NAMESPACE=rts' -fno-strict-aliasing -fno-common -DDTRACE -Irts/dist/build/./autogen -Wno-unknown-pragmas -O2 -fomit-frame-pointer -g '-DRtsWay="rts_thr"' -DTHREADED_RTS
In file included from rts/sm/Scav_thr.c:3:0: error:
In file included from rts/sm/Scav.c:51:0: error:
In file included from rts/sm/GCUtils.h:18:0: error:
rts/sm/GCTDecl.h:113:1: error: error: register '%r13' unsuitable for global register variables on this target | 113 | GCT_REG_DECL(gc_thread*, gct, REG_Base); | ^ GCT_REG_DECL(gc_thread*, gct, REG_Base); ^ Hmmm, this is quite odd. Is this a clean tree? Have you pulled without re-./booting and ./configure'ing recently? Are you using Apple's Clang?
In short, we shouldn't be using a register variable at all on OS X (since Apple's Clang doesn't support register variables, as this error suggests). Rather, we use TLS. This is implemented here [1]. Perhaps check what value configure computed for CC_LLVM_BACKEND? Cheers, - Ben [1] https://gitlab.haskell.org/ghc/ghc/blob/master/rts/sm/GCTDecl.h#L69

This is a clean tree. Modulo
```
$ diff -u mk/build.mk.sample mk/build.mk
--- mk/build.mk.sample 2019-12-07 20:44:48.850209944 +0100
+++ mk/build.mk 2019-11-27 14:18:57.052582066 +0100
@@ -20,7 +20,7 @@
#BuildFlavour = perf-cross-ncg
# Fast build with optimised libraries, no profiling (RECOMMENDED):
-#BuildFlavour = quick
+BuildFlavour = quick
```
I see
```
$ grep CC_LLVM_BACKEND config*
config.log:| #define CC_LLVM_BACKEND 1
```
Yes this is with clang-9, but it also happened with clang-7.
I'll try to track this down. The TLS tip is good.
Thanks,
Gabor
On 12/23/19, Ben Gamari
Gabor Greif
writes: Recently I started getting following error: ``` [nix-shell:~/ghc]$ "inplace/bin/ghc-stage1" -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Iincludes/dist-install/build -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_thr\" -static -optc-DTHREADED_RTS -O0 -H64m -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS -DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/sm/Scav_thr.c -o rts/dist/build/sm/Scav_thr.thr_o -v Glasgow Haskell Compiler, Version 8.11.0.20191222, stage 1 booted by GHC version 8.6.5 *** initializing package database: Using binary package database: /Users/ggreif/ghc/inplace/lib/package.conf.d/package.cache package flags [] loading package database /Users/ggreif/ghc/inplace/lib/package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.6.1 wired-in package integer-wired-in mapped to integer-gmp-1.0.2.0 wired-in package base mapped to base-4.14.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.16.0.0 wired-in package ghc mapped to ghc-8.11.0.20191222 !!! initializing package database: finished in 8.51 milliseconds, allocated 8.770 megabytes Created temporary directory: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 *** systool:cc: *** C Compiler: /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc -x c rts/sm/Scav_thr.c -o /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s -fno-common -U__PIC__ -D__PIC__ -Wimplicit -S -O2 -include /Users/ggreif/ghc/includes/ghcversion.h -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -Irts/dist/build -Irts/dist/build/./autogen -I/Users/ggreif/ghc/libraries/base/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/rts/dist/build -I/Users/ggreif/ghc/includes -I/Users/ggreif/ghc/includes/dist-derivedconstants/header -I/Users/ggreif/ghc/includes/dist-install/build -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DDTRACE -Wall -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wno-aggregate-return -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS '-DFS_NAMESPACE=rts' -fno-strict-aliasing -fno-common -DDTRACE -Irts/dist/build/./autogen -Wno-unknown-pragmas -O2 -fomit-frame-pointer -g '-DRtsWay="rts_thr"' -DTHREADED_RTS
In file included from rts/sm/Scav_thr.c:3:0: error:
In file included from rts/sm/Scav.c:51:0: error:
In file included from rts/sm/GCUtils.h:18:0: error:
rts/sm/GCTDecl.h:113:1: error: error: register '%r13' unsuitable for global register variables on this target | 113 | GCT_REG_DECL(gc_thread*, gct, REG_Base); | ^ GCT_REG_DECL(gc_thread*, gct, REG_Base); ^ Hmmm, this is quite odd. Is this a clean tree? Have you pulled without re-./booting and ./configure'ing recently? Are you using Apple's Clang?
In short, we shouldn't be using a register variable at all on OS X (since Apple's Clang doesn't support register variables, as this error suggests). Rather, we use TLS. This is implemented here [1]. Perhaps check what value configure computed for CC_LLVM_BACKEND?
Cheers,
- Ben
[1] https://gitlab.haskell.org/ghc/ghc/blob/master/rts/sm/GCTDecl.h#L69

I see some conflict potential from ``` Configure completed successfully. Building GHC version : 8.11.0.20191222 Git commit id : 1c302c6289a6eddc92b48815dd420bd58eb2f286 Build platform : x86_64-apple-darwin Host platform : x86_64-apple-darwin Target platform : x86_64-apple-darwin Bootstrapping using : /nix/store/m7nigmssmx89j5v22r1a83w6fb8cs6qb-ghc-8.6.5/bin/ghc which is version : 8.6.5
Using (for bootstrapping) : /nix/store/a76n8l1caynyyngdpnyihlrgyr9k9ilg-clang-wrapper-7.1.0/bin/cc Using gcc : /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc which is version : 9.0.0 Building a cross compiler : NO Unregisterised : NO TablesNextToCode : YES hs-cpp : /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc hs-cpp-flags : -E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs
It is strange that
`/nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc`
is identified as `gcc`. It is `clang`:
[nix-shell:~/ghc]$
/nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc
--version
clang version 9.0.0 (tags/RELEASE_900/final)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /nix/store/mg8gzayayl9sbgdy5hq2km6lxgi9x6dp-clang-9.0.0/bin
```
Cheers,
Gabor
On 12/23/19, Gabor Greif
This is a clean tree. Modulo ``` $ diff -u mk/build.mk.sample mk/build.mk --- mk/build.mk.sample 2019-12-07 20:44:48.850209944 +0100 +++ mk/build.mk 2019-11-27 14:18:57.052582066 +0100 @@ -20,7 +20,7 @@ #BuildFlavour = perf-cross-ncg
# Fast build with optimised libraries, no profiling (RECOMMENDED): -#BuildFlavour = quick +BuildFlavour = quick ```
I see ``` $ grep CC_LLVM_BACKEND config* config.log:| #define CC_LLVM_BACKEND 1 ```
Yes this is with clang-9, but it also happened with clang-7.
I'll try to track this down. The TLS tip is good.
Thanks,
Gabor
On 12/23/19, Ben Gamari
wrote: Gabor Greif
writes: Recently I started getting following error: ``` [nix-shell:~/ghc]$ "inplace/bin/ghc-stage1" -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Iincludes/dist-install/build -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_thr\" -static -optc-DTHREADED_RTS -O0 -H64m -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS -DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/sm/Scav_thr.c -o rts/dist/build/sm/Scav_thr.thr_o -v Glasgow Haskell Compiler, Version 8.11.0.20191222, stage 1 booted by GHC version 8.6.5 *** initializing package database: Using binary package database: /Users/ggreif/ghc/inplace/lib/package.conf.d/package.cache package flags [] loading package database /Users/ggreif/ghc/inplace/lib/package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.6.1 wired-in package integer-wired-in mapped to integer-gmp-1.0.2.0 wired-in package base mapped to base-4.14.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.16.0.0 wired-in package ghc mapped to ghc-8.11.0.20191222 !!! initializing package database: finished in 8.51 milliseconds, allocated 8.770 megabytes Created temporary directory: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 *** systool:cc: *** C Compiler: /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc -x c rts/sm/Scav_thr.c -o /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s -fno-common -U__PIC__ -D__PIC__ -Wimplicit -S -O2 -include /Users/ggreif/ghc/includes/ghcversion.h -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -Irts/dist/build -Irts/dist/build/./autogen -I/Users/ggreif/ghc/libraries/base/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/rts/dist/build -I/Users/ggreif/ghc/includes -I/Users/ggreif/ghc/includes/dist-derivedconstants/header -I/Users/ggreif/ghc/includes/dist-install/build -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DDTRACE -Wall -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wno-aggregate-return -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS '-DFS_NAMESPACE=rts' -fno-strict-aliasing -fno-common -DDTRACE -Irts/dist/build/./autogen -Wno-unknown-pragmas -O2 -fomit-frame-pointer -g '-DRtsWay="rts_thr"' -DTHREADED_RTS
In file included from rts/sm/Scav_thr.c:3:0: error:
In file included from rts/sm/Scav.c:51:0: error:
In file included from rts/sm/GCUtils.h:18:0: error:
rts/sm/GCTDecl.h:113:1: error: error: register '%r13' unsuitable for global register variables on this target | 113 | GCT_REG_DECL(gc_thread*, gct, REG_Base); | ^ GCT_REG_DECL(gc_thread*, gct, REG_Base); ^ Hmmm, this is quite odd. Is this a clean tree? Have you pulled without re-./booting and ./configure'ing recently? Are you using Apple's Clang?
In short, we shouldn't be using a register variable at all on OS X (since Apple's Clang doesn't support register variables, as this error suggests). Rather, we use TLS. This is implemented here [1]. Perhaps check what value configure computed for CC_LLVM_BACKEND?
Cheers,
- Ben
[1] https://gitlab.haskell.org/ghc/ghc/blob/master/rts/sm/GCTDecl.h#L69

Comparing the above to the (successfully bootstrapping) Darwin CI
job's configure output:
```
Using (for bootstrapping) : gcc
Using gcc : cc
which is version : 11.0.0
```
On 12/23/19, Gabor Greif
I see some conflict potential from ``` Configure completed successfully.
Building GHC version : 8.11.0.20191222 Git commit id : 1c302c6289a6eddc92b48815dd420bd58eb2f286
Build platform : x86_64-apple-darwin Host platform : x86_64-apple-darwin Target platform : x86_64-apple-darwin
Bootstrapping using : /nix/store/m7nigmssmx89j5v22r1a83w6fb8cs6qb-ghc-8.6.5/bin/ghc which is version : 8.6.5
Using (for bootstrapping) : /nix/store/a76n8l1caynyyngdpnyihlrgyr9k9ilg-clang-wrapper-7.1.0/bin/cc Using gcc : /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc which is version : 9.0.0 Building a cross compiler : NO Unregisterised : NO TablesNextToCode : YES hs-cpp : /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc hs-cpp-flags : -E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs
It is strange that `/nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc` is identified as `gcc`. It is `clang`:
[nix-shell:~/ghc]$ /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc --version clang version 9.0.0 (tags/RELEASE_900/final) Target: x86_64-apple-darwin17.7.0 Thread model: posix InstalledDir: /nix/store/mg8gzayayl9sbgdy5hq2km6lxgi9x6dp-clang-9.0.0/bin ```
Cheers,
Gabor
On 12/23/19, Gabor Greif
wrote: This is a clean tree. Modulo ``` $ diff -u mk/build.mk.sample mk/build.mk --- mk/build.mk.sample 2019-12-07 20:44:48.850209944 +0100 +++ mk/build.mk 2019-11-27 14:18:57.052582066 +0100 @@ -20,7 +20,7 @@ #BuildFlavour = perf-cross-ncg
# Fast build with optimised libraries, no profiling (RECOMMENDED): -#BuildFlavour = quick +BuildFlavour = quick ```
I see ``` $ grep CC_LLVM_BACKEND config* config.log:| #define CC_LLVM_BACKEND 1 ```
Yes this is with clang-9, but it also happened with clang-7.
I'll try to track this down. The TLS tip is good.
Thanks,
Gabor
On 12/23/19, Ben Gamari
wrote: Gabor Greif
writes: Recently I started getting following error: ``` [nix-shell:~/ghc]$ "inplace/bin/ghc-stage1" -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Iincludes/dist-install/build -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_thr\" -static -optc-DTHREADED_RTS -O0 -H64m -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS -DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/sm/Scav_thr.c -o rts/dist/build/sm/Scav_thr.thr_o -v Glasgow Haskell Compiler, Version 8.11.0.20191222, stage 1 booted by GHC version 8.6.5 *** initializing package database: Using binary package database: /Users/ggreif/ghc/inplace/lib/package.conf.d/package.cache package flags [] loading package database /Users/ggreif/ghc/inplace/lib/package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.6.1 wired-in package integer-wired-in mapped to integer-gmp-1.0.2.0 wired-in package base mapped to base-4.14.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.16.0.0 wired-in package ghc mapped to ghc-8.11.0.20191222 !!! initializing package database: finished in 8.51 milliseconds, allocated 8.770 megabytes Created temporary directory: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 *** systool:cc: *** C Compiler: /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc -x c rts/sm/Scav_thr.c -o /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s -fno-common -U__PIC__ -D__PIC__ -Wimplicit -S -O2 -include /Users/ggreif/ghc/includes/ghcversion.h -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -Irts/dist/build -Irts/dist/build/./autogen -I/Users/ggreif/ghc/libraries/base/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/rts/dist/build -I/Users/ggreif/ghc/includes -I/Users/ggreif/ghc/includes/dist-derivedconstants/header -I/Users/ggreif/ghc/includes/dist-install/build -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DDTRACE -Wall -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wno-aggregate-return -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS '-DFS_NAMESPACE=rts' -fno-strict-aliasing -fno-common -DDTRACE -Irts/dist/build/./autogen -Wno-unknown-pragmas -O2 -fomit-frame-pointer -g '-DRtsWay="rts_thr"' -DTHREADED_RTS
In file included from rts/sm/Scav_thr.c:3:0: error:
In file included from rts/sm/Scav.c:51:0: error:
In file included from rts/sm/GCUtils.h:18:0: error:
rts/sm/GCTDecl.h:113:1: error: error: register '%r13' unsuitable for global register variables on this target | 113 | GCT_REG_DECL(gc_thread*, gct, REG_Base); | ^ GCT_REG_DECL(gc_thread*, gct, REG_Base); ^ Hmmm, this is quite odd. Is this a clean tree? Have you pulled without re-./booting and ./configure'ing recently? Are you using Apple's Clang?
In short, we shouldn't be using a register variable at all on OS X (since Apple's Clang doesn't support register variables, as this error suggests). Rather, we use TLS. This is implemented here [1]. Perhaps check what value configure computed for CC_LLVM_BACKEND?
Cheers,
- Ben
[1] https://gitlab.haskell.org/ghc/ghc/blob/master/rts/sm/GCTDecl.h#L69

This is now resolved. There were some incompatible
includes/ghcautoconf.h
includes/ghcplatform.h
includes/ghcversion.h
files hanging around (probably from a previous Hadrian build)
These never caused trouble, because all the right symbols were defined.
But recently with c2290596f10 some of the symbols changed.
Sorry for the noise.
Gabor
On 12/24/19, Gabor Greif
Comparing the above to the (successfully bootstrapping) Darwin CI job's configure output: ``` Using (for bootstrapping) : gcc Using gcc : cc which is version : 11.0.0 ```
On 12/23/19, Gabor Greif
wrote: I see some conflict potential from ``` Configure completed successfully.
Building GHC version : 8.11.0.20191222 Git commit id : 1c302c6289a6eddc92b48815dd420bd58eb2f286
Build platform : x86_64-apple-darwin Host platform : x86_64-apple-darwin Target platform : x86_64-apple-darwin
Bootstrapping using : /nix/store/m7nigmssmx89j5v22r1a83w6fb8cs6qb-ghc-8.6.5/bin/ghc which is version : 8.6.5
Using (for bootstrapping) : /nix/store/a76n8l1caynyyngdpnyihlrgyr9k9ilg-clang-wrapper-7.1.0/bin/cc Using gcc : /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc which is version : 9.0.0 Building a cross compiler : NO Unregisterised : NO TablesNextToCode : YES hs-cpp : /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc hs-cpp-flags : -E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs
It is strange that `/nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc` is identified as `gcc`. It is `clang`:
[nix-shell:~/ghc]$ /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc --version clang version 9.0.0 (tags/RELEASE_900/final) Target: x86_64-apple-darwin17.7.0 Thread model: posix InstalledDir: /nix/store/mg8gzayayl9sbgdy5hq2km6lxgi9x6dp-clang-9.0.0/bin ```
Cheers,
Gabor
On 12/23/19, Gabor Greif
wrote: This is a clean tree. Modulo ``` $ diff -u mk/build.mk.sample mk/build.mk --- mk/build.mk.sample 2019-12-07 20:44:48.850209944 +0100 +++ mk/build.mk 2019-11-27 14:18:57.052582066 +0100 @@ -20,7 +20,7 @@ #BuildFlavour = perf-cross-ncg
# Fast build with optimised libraries, no profiling (RECOMMENDED): -#BuildFlavour = quick +BuildFlavour = quick ```
I see ``` $ grep CC_LLVM_BACKEND config* config.log:| #define CC_LLVM_BACKEND 1 ```
Yes this is with clang-9, but it also happened with clang-7.
I'll try to track this down. The TLS tip is good.
Thanks,
Gabor
On 12/23/19, Ben Gamari
wrote: Gabor Greif
writes: Recently I started getting following error: ``` [nix-shell:~/ghc]$ "inplace/bin/ghc-stage1" -optc-Wall -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-Iincludes -optc-Iincludes/dist -optc-Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-ghcconstants/header -optc-Iincludes/dist-install/build -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-DDTRACE -optc-Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_thr\" -static -optc-DTHREADED_RTS -O0 -H64m -Wall -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS -DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -DDTRACE -i -irts -irts/dist/build -Irts/dist/build -irts/dist/build/./autogen -Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-monad-instances -c rts/sm/Scav_thr.c -o rts/dist/build/sm/Scav_thr.thr_o -v Glasgow Haskell Compiler, Version 8.11.0.20191222, stage 1 booted by GHC version 8.6.5 *** initializing package database: Using binary package database: /Users/ggreif/ghc/inplace/lib/package.conf.d/package.cache package flags [] loading package database /Users/ggreif/ghc/inplace/lib/package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.6.1 wired-in package integer-wired-in mapped to integer-gmp-1.0.2.0 wired-in package base mapped to base-4.14.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.16.0.0 wired-in package ghc mapped to ghc-8.11.0.20191222 !!! initializing package database: finished in 8.51 milliseconds, allocated 8.770 megabytes Created temporary directory: /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0 *** systool:cc: *** C Compiler: /nix/store/mq8dqgqf2qqkp77pzf3jwc05px8rkbny-clang-wrapper-9.0.0/bin/cc -x c rts/sm/Scav_thr.c -o /var/folders/39/lr50t0q96tx5qp0mzht34r240000gn/T/ghc55616_0/ghc_1.s -fno-common -U__PIC__ -D__PIC__ -Wimplicit -S -O2 -include /Users/ggreif/ghc/includes/ghcversion.h -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -Irts/dist/build -Irts/dist/build/./autogen -I/Users/ggreif/ghc/libraries/base/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/include -I/Users/ggreif/ghc/libraries/base/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/include -I/Users/ggreif/ghc/libraries/integer-gmp/dist-install/build/dist-install/build/include -I/Users/ggreif/ghc/rts/dist/build -I/Users/ggreif/ghc/includes -I/Users/ggreif/ghc/includes/dist-derivedconstants/header -I/Users/ggreif/ghc/includes/dist-install/build -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DDTRACE -Wall -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wno-aggregate-return -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Iincludes/dist-install/build -Irts -Irts/dist/build -DCOMPILING_RTS '-DFS_NAMESPACE=rts' -fno-strict-aliasing -fno-common -DDTRACE -Irts/dist/build/./autogen -Wno-unknown-pragmas -O2 -fomit-frame-pointer -g '-DRtsWay="rts_thr"' -DTHREADED_RTS
In file included from rts/sm/Scav_thr.c:3:0: error:
In file included from rts/sm/Scav.c:51:0: error:
In file included from rts/sm/GCUtils.h:18:0: error:
rts/sm/GCTDecl.h:113:1: error: error: register '%r13' unsuitable for global register variables on this target | 113 | GCT_REG_DECL(gc_thread*, gct, REG_Base); | ^ GCT_REG_DECL(gc_thread*, gct, REG_Base); ^ Hmmm, this is quite odd. Is this a clean tree? Have you pulled without re-./booting and ./configure'ing recently? Are you using Apple's Clang?
In short, we shouldn't be using a register variable at all on OS X (since Apple's Clang doesn't support register variables, as this error suggests). Rather, we use TLS. This is implemented here [1]. Perhaps check what value configure computed for CC_LLVM_BACKEND?
Cheers,
- Ben
[1] https://gitlab.haskell.org/ghc/ghc/blob/master/rts/sm/GCTDecl.h#L69
participants (2)
-
Ben Gamari
-
Gabor Greif