>
> Could you try with EXTRA_HC_OPTS=-v, and send us the output? Thanks.
>
> Also, what compiler are you building GHC with? Installed from where?
The compiler was ghc 5.04.1, installed from the rpm on haskell.org; I've updated to 5.04.2 (same source): no change. In the example below, I'm using gcc 3.2.1, but the problem occurs with the Redhat supplied 2.96 (?) as well, and I've successfully built on another machine with 3.2.1 so I think that's irrelevant.
The output with EXTRA_HC_OPTS=-v is:
----------------------------------------------------------------------
------------------------------------------------------------------------
==fptools== make all -wr;
in /usr/local/src/ghc-5.04.2/ghc/rts
------------------------------------------------------------------------
.../utils/ghc-pkg/ghc-pkg-inplace --update-package <rts.conf.inplace
warning: can't find GHCi lib `HSrts.o'
Reading package info from stdin... done.
Expanding embedded variables...done.
Saving old package config file... done.
Writing new package config file... done.
.../utils/ghc-pkg/ghc-pkg-inplace -f .../driver/package.conf --update-package <rts.conf.installed
warning: can't find GHCi lib `HSrts.o'
Reading package info from stdin... done.
Expanding embedded variables...done.
Saving old package config file... done.
Writing new package config file... done.
.../../ghc/compiler/ghc-inplace -optc-O -optc-Wall -optc-W -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return -optc-Wbad-function-cast -optc-Wcast-align -optc-I../includes -optc-I. -optc-Iparallel -optc-DCOMPILING_RTS -optc-fomit-frame-pointer -ldl -O2 -static -package-name rts -O -Rghc-timing -v -c Adjustor.c -o Adjustor.o
Glasgow Haskell Compiler, Version 5.04.2, for Haskell 98, compiled by GHC version 5.04.1
Using package config file: /usr/local/src/ghc-5.04.2/ghc/driver/package.conf.inplace
Hsc static flags: -static -inpackage=rts -fignore-asserts -ffoldr-build-on -fdo-eta-reduction -fdo-lambda-eta-expansion -fcase-merge -flet-to-case -flet-no-escape
*** C Compiler
gcc-3.2.1 Adjustor.c -o /tmp/ghc21719.s -DDONT_WANT_WIN32_DLL_SUPPORT -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=504 -O -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Waggregate-return -Wbad-function-cast -Wcast-align -I../includes -I. -Iparallel -DCOMPILING_RTS -fomit-frame-pointer -ffloat-store -I . -I /usr/local/src/ghc-5.04.2/ghc/includes
Failed: gcc-3.2.1 Adjustor.c -o /tmp/ghc21719.s -DDONT_WANT_WIN32_DLL_SUPPORT -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=504 -O -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Waggregate-return -Wbad-function-cast -Wcast-align -I../includes -I. -Iparallel -DCOMPILING_RTS -fomit-frame-pointer -ffloat-store -I . -I /usr/local/src/ghc-5.04.2/ghc/includes
*** Deleting temp files
Deleting: /tmp/ghc21719.s
Warning: deleting non-existent /tmp/ghc21719.s
==================== Packages ====================
Package
{name = "rts",
import_dirs = [],
source_dirs = [],
library_dirs =
["/usr/local/src/ghc-5.04.2/ghc/rts",
"/usr/local/src/ghc-5.04.2/ghc/rts/gmp"],
hs_libraries = ["HSrts"],
extra_libraries = ["m", "gmp", "dl"],
include_dirs = ["/usr/local/src/ghc-5.04.2/ghc/includes"],
c_includes = ["Stg.h"],
package_deps = [],
extra_ghc_opts = [],
extra_cc_opts = [],
extra_ld_opts =
["-u",
"GHCziBase_Izh_static_info",
"-u",
"GHCziBase_Czh_static_info",
"-u",
"GHCziFloat_Fzh_static_info",
"-u",
"GHCziFloat_Dzh_static_info",
"-u",
"GHCziPtr_Ptr_static_info",
"-u",
"GHCziWord_Wzh_static_info",
"-u",
"GHCziInt_I8zh_static_info",
"-u",
"GHCziInt_I16zh_static_info",
"-u",
"GHCziInt_I32zh_static_info",
"-u",
"GHCziInt_I64zh_static_info",
"-u",
"GHCziWord_W8zh_static_info",
"-u",
"GHCziWord_W16zh_static_info",
"-u",
"GHCziWord_W32zh_static_info",
"-u",
"GHCziWord_W64zh_static_info",
"-u",
"GHCziStable_StablePtr_static_info",
"-u",
"GHCziBase_Izh_con_info",
"-u",
"GHCziBase_Czh_con_info",
"-u",
"GHCziFloat_Fzh_con_info",
"-u",
"GHCziFloat_Dzh_con_info",
"-u",
"GHCziPtr_Ptr_con_info",
"-u",
"GHCziStable_StablePtr_con_info",
"-u",
"GHCziBase_False_closure",
"-u",
"GHCziBase_True_closure",
"-u",
"GHCziPack_unpackCString_closure",
"-u",
"GHCziIOBase_stackOverflow_closure",
"-u",
"GHCziIOBase_heapOverflow_closure",
"-u",
"GHCziIOBase_NonTermination_closure",
"-u",
"GHCziIOBase_BlockedOnDeadMVar_closure",
"-u",
"GHCziIOBase_Deadlock_closure",
"-u",
"GHCziWeak_runFinalizzerBatch_closure",
"-u",
"__stginit_Prelude"],
framework_dirs = [],
extra_frameworks = []}
ghc: 1218004 bytes, 2 GCs, 32384/32384 avg/max bytes residency (1 samples), 5M in use, 0.02 INIT (0.00 elapsed), 0.01 MUT (0.08 elapsed), 0.04 GC (0.06 elapsed) :ghc>>
make[2]: *** [Adjustor.o] Error 1
make[1]: *** [all] Error 1
make[1]: Leaving directory `/usr/local/src/ghc-5.04.2/ghc'
make: *** [all] Error 1
--------------------------------------------------------------------------
Again, the generated gcc command succeeds by itself.
Cheers