[GHC] #8498: gcc hardcoded in build scripts! (ignores the --with-gcc= flag in configure)
GHC
ghc-devs at haskell.org
Sat Nov 2 22:16:44 UTC 2013
#8498: gcc hardcoded in build scripts! (ignores the --with-gcc= flag in configure)
------------------------------------+---------------------------------
Reporter: carter | Owner:
Type: bug | Status: new
Priority: high | Milestone: 7.8.1
Component: Compiler | Version: 7.7
Keywords: | Operating System: MacOS X
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
------------------------------------+---------------------------------
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
23fb7f3b7987d7b3fa445e54680a8a00a37e714d,
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 }}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8498>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list