Problem building GHC

Dinko Tenev dinko.tenev at gmail.com
Wed Jul 13 16:08:44 EDT 2005


On 7/13/05, Simon Marlow <simonmar at microsoft.com> wrote:
> You should be able to use the native code generator to build GHC, which
> will compile a lot faster and use less memory.  The GHC binary it
> produces may be slightly slower, however (on x86).
> 
> To do this, create a file mk/build.mk in your build tree, containing the
> line:
> 
> SRC_HC_OPTS = -H32m -O -fasm

Great, that almost did it - thanks.  It also took replacing some
hard-coded -fvia-C options scattered throughout
/fptools/ghc/compiler/Makefile.  I still have the feeling this wasn't
exactly the right thing to do, but it did work, as far as compilation
goes.  Now I am stuck on building the libs - ar dies ignominiously
trying to create libHSbase.a.

The thing that fails:


(echo Control/Concurrent_stub.o System/CPUTime_hsc.o System/Time_hsc.o
Text/Regex/Posix_hsc.o ; /usr/bin/find Control/Arrow_split
Control/Concurrent_split Control/Concurrent/Chan_split
Control/Concurrent/MVar_split Control/Concurrent/QSem_split
Control/Concurrent/QSemN_split Control/Concurrent/SampleVar_split
Control/Exception_split Control/Monad_split Control/Monad/Fix_split
Control/Monad/ST_split Control/Monad/ST/Lazy_split
Control/Monad/ST/Strict_split Control/Parallel_split
Control/Parallel/Strategies_split Data/Array_split
Data/Array/Base_split Data/Array/Diff_split Data/Array/IArray_split
Data/Array/IO_split Data/Array/IO/Internals_split
Data/Array/MArray_split Data/Array/ST_split Data/Array/Storable_split
Data/Array/Unboxed_split Data/Bits_split Data/Bool_split
Data/Char_split Data/Complex_split Data/Dynamic_split
Data/Either_split Data/Eq_split Data/FiniteMap_split
Data/FunctorM_split Data/Generics_split Data/Generics/Aliases_split
Data/Generics/Basics_split Data/Generics/Instances_split
Data/Generics/Schemes_split Data/Generics/Text_split
Data/Generics/Twins_split Data/Graph_split Data/HashTable_split
Data/IORef_split Data/Int_split Data/IntMap_split Data/IntSet_split
Data/Ix_split Data/List_split Data/Map_split Data/Maybe_split
Data/Monoid_split Data/Ord_split Data/PackedString_split
Data/Queue_split Data/Ratio_split Data/STRef_split
Data/STRef/Lazy_split Data/STRef/Strict_split Data/Set_split
Data/Tree_split Data/Tuple_split Data/Typeable_split Data/Unique_split
Data/Version_split Data/Word_split Debug/Trace_split Foreign_split
Foreign/C_split Foreign/C/Error_split Foreign/C/String_split
Foreign/C/Types_split Foreign/Concurrent_split
Foreign/ForeignPtr_split Foreign/Marshal_split
Foreign/Marshal/Alloc_split Foreign/Marshal/Array_split
Foreign/Marshal/Error_split Foreign/Marshal/Pool_split
Foreign/Marshal/Utils_split Foreign/Ptr_split Foreign/StablePtr_split
Foreign/Storable_split GHC/Arr_split GHC/Base_split GHC/Conc_split
GHC/ConsoleHandler_split GHC/Dotnet_split GHC/Enum_split GHC/Err_split
GHC/Exception_split GHC/Exts_split GHC/Float_split
GHC/ForeignPtr_split GHC/Handle_split GHC/IO_split GHC/IOBase_split
GHC/Int_split GHC/List_split GHC/Num_split GHC/PArr_split
GHC/Pack_split GHC/PrimopWrappers_split GHC/Ptr_split GHC/Read_split
GHC/Real_split GHC/ST_split GHC/STRef_split GHC/Show_split
GHC/Stable_split GHC/Storable_split GHC/TopHandler_split
GHC/Unicode_split GHC/Weak_split GHC/Word_split Numeric_split
Prelude_split System/CPUTime_split System/Cmd_split
System/Console/GetOpt_split System/Directory_split
System/Directory/Internals_split System/Environment_split
System/Exit_split System/IO_split System/IO/Error_split
System/IO/Unsafe_split System/Info_split System/Locale_split
System/Mem_split System/Mem/StableName_split System/Mem/Weak_split
System/Posix/Internals_split System/Posix/Signals_split
System/Posix/Types_split System/Process_split
System/Process/Internals_split System/Random_split System/Time_split
Text/Html_split Text/Html/BlockTable_split
Text/ParserCombinators/ReadP_split
Text/ParserCombinators/ReadPrec_split Text/PrettyPrint_split
Text/PrettyPrint/HughesPJ_split Text/Printf_split Text/Read_split
Text/Read/Lex_split Text/Regex_split Text/Regex/Posix_split
Text/Show_split Text/Show/Functions_split -name '*.o' -print) | xargs
/usr/bin/ar q libHSbase.a
/usr/bin/ar: creating libHSbase.a
xargs: /usr/bin/ar: terminated by signal 9
make[2]: *** [libHSbase.a] Error 125
make[2]: *** Deleting file `libHSbase.a'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/shinobi/build/fptools/libraries'
make: *** [build] Error 1


It appears to die at the point of adding
Data/Array/Base_split/Base__191.o, or shortly afterwards perhaps, for
no apparent reason.  I imagine it might help changing this a bit so
that it added the files one dir at a time to reduce the load somewhat,
but I can't find where it's done - could you give me a pointer?  Or is
there anything more sensible to do?


Cheers,

D. Tenev


More information about the Glasgow-haskell-users mailing list