Can't build HEAD on OS X

Johan Tibell johan.tibell at gmail.com
Thu Mar 13 09:45:16 UTC 2014


I've unblocked myself with this change:

diff --git a/rts/ghc.mk b/rts/ghc.mk
index 3929adb..b96df3d 100644
--- a/rts/ghc.mk
+++ b/rts/ghc.mk
@@ -427,7 +427,7 @@ rts/win32/ThrIOManager_CC_OPTS += -w

 # Without this, thread_obj will not be inlined (at least on x86 with GCC
4.1.0)
 ifneq "$(CC_CLANG_BACKEND)" "1"
-rts/sm/Compact_CC_OPTS += -finline-limit=2500
+# rts/sm/Compact_CC_OPTS += -finline-limit=2500
 endif

 # -O3 helps unroll some loops (especially in copy() with a constant
argument).

That #ifneq check doesn't work because 1) gcc is not clang (I used
/usr/local/bin/gcc-4.9) but 2) the cpp that actually gets called during the
build is 'gcc -E', which is clang.


On Thu, Mar 13, 2014 at 10:03 AM, Johan Tibell <johan.tibell at gmail.com>wrote:

> Checking out a clean tree today (commit: ) I can no longer build HEAD.
> Here's what I did:
>
> git clone git://git.haskell.org/ghc.git
> cd ghc
> ./sync-all --no-dph get
> cp mk/build.mk.sample mk/build.mk
> # Uncomment devel2 in mk/build.mk
> ./boot && ./configure --with-gcc=/usr/local/bin/gcc-4.9
> make
>
> Here's the result:
>
> gcc -E  -m64 -DPROFILING -DTHREADED_RTS -DDEBUG -Irts/dist/build  -m64
> -fno-stack-protector  -Wall -Wextra -Wstrict-prototypes
>  -Wmissing-prototypes  -Wmissing-declarations -Winline -Waggregate-return
> -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls
>  -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header
> -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS
> -fno-strict-aliasing -fno-common -DDTRACE        -O2 -fomit-frame-pointer
> -DRtsWay=\"rts_v\" -Wno-strict-prototypes    -Wno-inline
> -finline-limit=2500 -MM -x c rts/sm/Compact.c -MF
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> clang: error: unknown argument: '-finline-limit=2500'
> [-Wunused-command-line-argument-hard-error-in-future]
> clang: note: this will be a hard error (cannot be downgraded to a warning)
> in the future
> make[1]: ***
> [rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm]
> Error 1
>
> More context:
> sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.o|" -e "1s|^|rts/sm/|" -e
> "1s|rts/|rts/dist/build/|" -e "1s|dist/build/dist/build|dist/build|g" -e
> "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.dyn_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.l_o|" -e "1s|^|rts/sm/|"
> -e "1s|rts/|rts/dist/build/|" -e "1s|dist/build/dist/build|dist/build|g" -e
> "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.debug_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.thr_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.thr_debug_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.thr_l_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.debug_dyn_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.thr_dyn_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.thr_debug_dyn_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.l_dyn_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && sed -e 's|\\|/|g' -e 's| /$| \\|' -e "1s|\.o|\.thr_l_dyn_o|" -e
> "1s|^|rts/sm/|" -e "1s|rts/|rts/dist/build/|" -e
> "1s|dist/build/dist/build|dist/build|g" -e "s|/Users/tibbe/src/ghc/||g"
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> >>
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.tmp
> && true
> gcc -E  -m64 -DPROFILING -DTHREADED_RTS -DDEBUG -Irts/dist/build  -m64
> -fno-stack-protector  -Wall -Wextra -Wstrict-prototypes
>  -Wmissing-prototypes  -Wmissing-declarations -Winline -Waggregate-return
> -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls
>  -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header
> -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS
> -fno-strict-aliasing -fno-common -DDTRACE        -O2 -fomit-frame-pointer
> -DRtsWay=\"rts_v\" -Wno-strict-prototypes    -Wno-inline
> -finline-limit=2500 -MM -x c rts/sm/Compact.c -MF
> rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm.bit
> clang: error: unknown argument: '-finline-limit=2500'
> [-Wunused-command-line-argument-hard-error-in-future]
> clang: note: this will be a hard error (cannot be downgraded to a warning)
> in the future
> make[1]: ***
> [rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm]
> Error 1
> make: *** [all] Error 2
>
> -- Johan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140313/370f9318/attachment.html>


More information about the ghc-devs mailing list