I am working on a package (haskell-src-exts) that could not be built for the mips64el architecture for Debian and the log retued by the autobuilder ends like this:
[24 of 24] Compiling Language.Haskell.Exts (src/Language/Haskell/Exts.hs, dist-ghc/build/Language/Haskell/Exts.p_o )
dist-ghc/build/Language/Haskell/Exts/Aotated/Syntax.dyn_o: In function `c66jH_entry':
ghc_8.hc:(.text+0x10c): relocation truncated to fit: R_MIPS_GOT_DISP against `stg_ap_0_fast'
[...]
ghc_8.hc:(.text+0x884): relocation truncated to fit: R_MIPS_GOT_DISP against `base_GHCziNum_zp_entry'
ghc_8.hc:(.text+0x8e4): additional relocation overflows omitted from the output
collect2: error: ld retued 1 exit status
/usr/share/cdbs/1/class/hlibrary.mk:147: recipe for target 'build-ghc-stamp' failed
make: *** [build-ghc-stamp] Error 1
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
After searching the web about relocation, and R_MIPS_GOT_DISP it seems to me that the linker is having a problem with the linking.
Strangely enough it seems like a kind of error you would get for incorrectly assigning an address to an object or something. The problem is I am pretty sure you caot have that type of control over memory in Haskell, and certainly not over the linker.
Many files use pragmas which have effect on the compilation but I doubt this is the source of the problem
If this is all true, I am forced to conclude that there is a problem with the mips64el version of GHC and this is what causes this bug.
Any clues? Thanks alot
