$ git clone git://github.com/ghc/ghc.git ghc-github
$ cd ghc-github
$ ./sync-all get
$ perl boot
$ ./configure
$ make
[…]
"inplace/bin/ghc-stage1" -this-package-key rts -shared -dynamic -dynload deploy
-no-auto-link-packages -Lrts/dist/build -lffi -optl-Wl,-rpath
-optl-Wl,'$ORIGIN' -optl-Wl,-zorigin `cat rts/dist/libs.depend`
rts/dist/build/Adjustor.dyn_o rts/dist/build/Arena.dyn_o
rts/dist/build/Capability.dyn_o rts/dist/build/CheckUnload.dyn_o
rts/dist/build/ClosureFlags.dyn_o rts/dist/build/Disassembler.dyn_o
rts/dist/build/FileLock.dyn_o rts/dist/build/Globals.dyn_o
rts/dist/build/Hash.dyn_o rts/dist/build/Hpc.dyn_o rts/dist/build/HsFFI.dyn_o
rts/dist/build/Inlines.dyn_o rts/dist/build/Interpreter.dyn_o
rts/dist/build/LdvProfile.dyn_o rts/dist/build/Linker.dyn_o
rts/dist/build/Messages.dyn_o rts/dist/build/OldARMAtomic.dyn_o
rts/dist/build/Papi.dyn_o rts/dist/build/Printer.dyn_o
rts/dist/build/ProfHeap.dyn_o rts/dist/build/Profiling.dyn_o
rts/dist/build/Proftimer.dyn_o rts/dist/build/RaiseAsync.dyn_o
rts/dist/build/RetainerProfile.dyn_o rts/dist/build/RetainerSet.dyn_o
rts/dist/build/RtsAPI.dyn_o rts/dist/build/RtsDllMain.dyn_o
rts/dist/build/RtsFlags.dyn_o rts/dist/build/RtsMain.dyn_o
rts/dist/build/RtsMessages.dyn_o rts/dist/build/RtsStartup.dyn_o
rts/dist/build/RtsUtils.dyn_o rts/dist/build/STM.dyn_o
rts/dist/build/Schedule.dyn_o rts/dist/build/Sparks.dyn_o
rts/dist/build/Stable.dyn_o rts/dist/build/Stats.dyn_o
rts/dist/build/StgCRun.dyn_o rts/dist/build/StgPrimFloat.dyn_o
rts/dist/build/Task.dyn_o rts/dist/build/ThreadLabels.dyn_o
rts/dist/build/ThreadPaused.dyn_o rts/dist/build/Threads.dyn_o
rts/dist/build/Ticky.dyn_o rts/dist/build/Timer.dyn_o
rts/dist/build/Trace.dyn_o rts/dist/build/WSDeque.dyn_o
rts/dist/build/Weak.dyn_o rts/dist/build/hooks/FlagDefaults.dyn_o
rts/dist/build/hooks/MallocFail.dyn_o rts/dist/build/hooks/OnExit.dyn_o
rts/dist/build/hooks/OutOfHeap.dyn_o rts/dist/build/hooks/StackOverflow.dyn_o
rts/dist/build/sm/BlockAlloc.dyn_o rts/dist/build/sm/Compact.dyn_o
rts/dist/build/sm/Evac.dyn_o rts/dist/build/sm/GC.dyn_o
rts/dist/build/sm/GCAux.dyn_o rts/dist/build/sm/GCUtils.dyn_o
rts/dist/build/sm/MBlock.dyn_o rts/dist/build/sm/MarkWeak.dyn_o
rts/dist/build/sm/Sanity.dyn_o rts/dist/build/sm/Scav.dyn_o
rts/dist/build/sm/Storage.dyn_o rts/dist/build/sm/Sweep.dyn_o
rts/dist/build/eventlog/EventLog.dyn_o rts/dist/build/posix/GetEnv.dyn_o
rts/dist/build/posix/GetTime.dyn_o rts/dist/build/posix/Itimer.dyn_o
rts/dist/build/posix/OSMem.dyn_o rts/dist/build/posix/OSThreads.dyn_o
rts/dist/build/posix/Select.dyn_o rts/dist/build/posix/Signals.dyn_o
rts/dist/build/posix/TTY.dyn_o rts/dist/build/Apply.dyn_o
rts/dist/build/Exception.dyn_o rts/dist/build/HeapStackCheck.dyn_o
rts/dist/build/PrimOps.dyn_o rts/dist/build/StgMiscClosures.dyn_o
rts/dist/build/StgStartup.dyn_o rts/dist/build/StgStdThunks.dyn_o
rts/dist/build/Updates.dyn_o rts/dist/build/AutoApply.dyn_o -fPIC -dynamic
-H32m -O -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header
-Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS
-this-package-key rts -optc-DNOSMP -dcmm-lint -i -irts -irts/dist/build
-irts/dist/build/autogen -Irts/dist/build -Irts/dist/build/autogen
-O2-fno-use-rpaths -optl-Wl,-zorigin -o
rts/dist/build/libHSrts-ghc7.9.20140809.so
/usr/bin/ld: rts/dist/build/Adjustor.dyn_o: relocation R_MIPS_HI16 against
`__gnu_local_gp' can not be used when making a shared object; recompile with
-fPIC
rts/dist/build/Adjustor.dyn_o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [rts/dist/build/libHSrts-ghc7.9.20140809.so] Error 1
make[1]: *** Waiting for unfinished jobs
make: *** [all] Error 2
After making this change (see #8857)
$ diff -Nru config.mk.in-orig config.mk.in
--- config.mk.in-orig 2014-08-11 04:39:24.257232224 +
+++ config.mk.in2014-08-11 04:41:50.666057938 +
@@ -99,7 +99,8 @@
x86_64-unknown-mingw32 \
i386-unknown-mingw32 \
sparc-sun-solaris2 \
- sparc-unknown-linux
+ sparc-unknown-linux \
+mipsel-unknown-linux
ifeq "$(SOLARIS_BROKEN_SHLD)" "YES"
NoSharedLibsPlatformList += i386-unknown-solaris2
and running
$ make distclean
$ ./configure
$ make
it failed with a different error:
"inplace/bin/ghc-stage1" -hisuf hi -osuf o -hcsuf hc -static -H32m -O
-this-package-key time_KUji6QoLFw0LtcZkg4b7t4 -hide-all-packages -i
-ilibraries/time/. -ilibraries/time/dist-install/build
-ilibraries/time/dist-install/build/autogen -Ilibraries/time/dist-install/build
-Ilibraries/time/dist-install/build/autogen -Ilibraries/time/include
-optP-DLANGUAGE_Rank2Types -optP-DLANGUAGE_DeriveDataTypeable
-optP-DLANGUAGE_StandaloneDeriving -optP-include
-optPlibraries/time/dist-install/build/autogen/cabal_macros.h -package-key
base_DiPQ1siqG3SBjHauL3L03p -package-key deeps_L0rJEVU1Zgn8x0Qs5aTOsU
-package-key oldlo_EJWcQwUg