Skip to content

gcc hardcoded in build scripts! (ignores the --with-gcc= flag in configure)

NB: this may be a dupe of another issue, but reporting is separately for now

i'm on OS X 10.8 (mountain lion) with xcode 5, ghc comit 23fb7f3b,

I've got a gcc-4.8 installed, though gcc in my path is actually clang (as is typical for xcode 5), so I configured as ./configure --with-gcc=gcc-4.8

and then I noticed as i'm building, some warnings that mean clang is being called rather than gcc!

heres a relevant snippet of the build transcript

cp" utils/hsc2hs/template-hsc.h inplace/lib/template-hsc.h
"/usr/bin/ghc" -hisuf hi -osuf  o -hcsuf hc -static  -H64m -O -fasm -package process -package containers -package-db libraries/bootstrapping.conf   -i -iutils/deriveConstants/. -iutils/deriveConstants/dist/build -iutils/deriveConstants/dist/build/autogen -Iutils/deriveConstants/dist/build -Iutils/deriveConstants/dist/build/autogen         -no-user-package-db -rtsopts      -odir utils/deriveConstants/dist/build -hidir utils/deriveConstants/dist/build -stubdir utils/deriveConstants/dist/build   -c utils/deriveConstants/./DeriveConstants.hs -o utils/deriveConstants/dist/build/DeriveConstants.o 
"inplace/bin/mkdirhier" utils/deriveConstants/dist/build/tmp//.
"inplace/bin/mkdirhier" rts/dist/build//.
gcc -E  -m64 -undef -traditional -P -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header  -Icompiler/stage1 -x c compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' > compiler/stage1/build/primops.txt
compiler/prelude/primops.txt.pp:35:55: warning: missing terminating ' character [-Winvalid-pp-token]
-- The default attribute values which apply if you don't specify
                                                      ^
compiler/prelude/primops.txt.pp:1310:19: warning: missing terminating ' character [-Winvalid-pp-token]
         difference doesn't fit in an {\tt Int\#}.}
                         ^
compiler/prelude/primops.txt.pp:1591:41: warning: missing terminating ' character [-Winvalid-pp-token]
-- not really the right type, but we don't know about pairs here.  The
                                        ^
compiler/prelude/primops.txt.pp:1620:15: warning: missing terminating ' character [-Winvalid-pp-token]
        -- but we don't want to tell the strictness
                     ^
compiler/prelude/primops.txt.pp:1634:30: warning: missing terminating ' character [-Winvalid-pp-token]
-- must be *precise* - we don't want the strictness analyser turning
                             ^
compiler/prelude/primops.txt.pp:1690:14: warning: missing terminating ' character [-Winvalid-pp-token]
-- NB: retry#'s strictness information specifies it to return bottom.
             ^
compiler/prelude/primops.txt.pp:1811:47: warning: missing terminating ' character [-Winvalid-pp-token]
    Otherwise, store value arg as {\tt MVar\#}'s new contents, and return with integer 1.}
                                              ^
compiler/prelude/primops.txt.pp:1906:21: warning: missing terminating ' character [-Winvalid-pp-token]
        {\tt RealWorld}; it's only used in the type system, to parameterise {\tt State\#}. }
                           ^
compiler/prelude/primops.txt.pp:2084:67: warning: missing terminating ' character [-Winvalid-pp-token]
   -- why return the value?  So that we can control sharing of seq'd
                                                                  ^
compiler/prelude/primops.txt.pp:2087:13: warning: missing terminating ' character [-Winvalid-pp-token]
   -- we don't want to inline x, so better to represent it as
            ^
compiler/prelude/primops.txt.pp:2108:48: warning: missing terminating ' character [-Winvalid-pp-token]
--   `the processor containing the expression v'; it is not evaluated
                                               ^
compiler/prelude/primops.txt.pp:2206:20: warning: missing terminating ' character [-Winvalid-pp-token]
        {These aren't nearly as wired in as Etc...}
                   ^
compiler/prelude/primops.txt.pp:2236:57: warning: missing terminating ' character [-Winvalid-pp-token]
          * It does not claim to be a {\it data} type, and that's important for
                                                               ^
compiler/prelude/primops.txt.pp:2240:4: warning: missing terminating ' character [-Winvalid-pp-token]
        It's also used to instantiate un-constrained type variables after type
          ^
compiler/prelude/primops.txt.pp:2278:86: warning: missing terminating ' character [-Winvalid-pp-token]
        used when you want to write a program that you know is well-typed, but where Haskell's
                                                                                            ^
compiler/prelude/primops.txt.pp:2301:28: warning: missing terminating ' character [-Winvalid-pp-token]
        have to do with GHC's internal representation details (for the congnoscenti, data values
                           ^
compiler/prelude/primops.txt.pp:2307:76: warning: missing terminating ' character [-Winvalid-pp-token]
-- NB. It is tempting to think that casting a value to a type that it doesn't have is safe
                                                                           ^
compiler/prelude/primops.txt.pp:2308:22: warning: missing terminating ' character [-Winvalid-pp-token]
-- as long as you don't "do anything" with the value in its cast form, such as seq on it.  This
                     ^
compiler/prelude/primops.txt.pp:2309:7: warning: missing terminating ' character [-Winvalid-pp-token]
-- isn't the case: the compiler can insert seqs itself, and if these happen at the wrong type,
      ^
compiler/prelude/primops.txt.pp:2344:17: warning: missing terminating ' character [-Winvalid-pp-token]
     the newtype's concrete type to the abstract type. But it also works in
                ^
compiler/prelude/primops.txt.pp:2367:67: warning: missing terminating ' character [-Winvalid-pp-token]
     {\tt instance Coercible b b' => Coercible (D a b c) (D a b' c')}
                                                                  ^
compiler/prelude/primops.txt.pp:2389:43: warning: missing terminating ' character [-Winvalid-pp-token]
     you need to set the role of {\tt Set}'s type parameter to Nominal.

notice the hard coded gcc call

gcc -E -m64 -undef -traditional -P -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Icompiler/stage1 -x c compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' > compiler/stage1/build/primops.txt

Trac metadata
Trac field Value
Version 7.7
Type Bug
TypeOfFailure OtherFailure
Priority high
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information