linkerscript fix from #2615 breaks Darwin
The fix from ticket #2615 (closed) breaks compilation on Darwin as follows:
"inplace/bin/ghc-stage1" -optc-m32 -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Iincludes -optc-Irts -optc-DCOMPILING_RTS -optc-DUSE_LIBFFI_FOR_ADJUSTORS -optc-fno-strict-aliasing -optc-fno-common -optc-Ilibffi/build/include -optc-fomit-frame-pointer -optc-DRtsWay=\"rts_v\" -H32m -O -optc-mcpu=G5 -opta-mcpu=G5 -optc-mtune=G5 -opta-mtune=G5 -w -Iincludes -Irts -DCOMPILING_RTS -package-name rts -static -optc-fno-stack-protector -dcmm-lint -Ilibffi/build/include -i -irts -irts/dist/build -irts/dist/build/autogen -Irts/dist/build -Irts/dist/build/autogen -optc-O2 -c rts/Linker.c -o rts/dist/build/Linker.o
rts/Linker.c:997:0: error: conflicting types for '__eprintf'
/usr/include/assert.h:77:0:
error: previous declaration of '__eprintf' was here
rts/Linker.c:1087:0:
error: expected '=', ',', ';', 'asm' or '__attribute__' before 're_invalid'
rts/Linker.c:1088:0:
error: expected '=', ',', ';', 'asm' or '__attribute__' before 're_realso'
rts/Linker.c: In function 'initLinker':
rts/Linker.c:1130:0:
warning: implicit declaration of function 'regcomp'
rts/Linker.c:1130:0:
error: 're_invalid' undeclared (first use in this function)
rts/Linker.c:1130:0:
error: (Each undeclared identifier is reported only once
rts/Linker.c:1130:0: error: for each function it appears in.)
rts/Linker.c:1132:0:
error: 'REG_EXTENDED' undeclared (first use in this function)
rts/Linker.c:1134:0:
error: 're_realso' undeclared (first use in this function)
rts/Linker.c: In function 'exitLinker':
rts/Linker.c:1162:0:
warning: implicit declaration of function 'regfree'
rts/Linker.c:1162:0:
warning: nested extern declaration of 'regfree'
rts/Linker.c:1162:0:
error: 're_invalid' undeclared (first use in this function)
rts/Linker.c:1163:0:
error: 're_realso' undeclared (first use in this function)
rts/Linker.c: In function 'addDLL':
rts/Linker.c:1251:0:
error: 'regmatch_t' undeclared (first use in this function)
rts/Linker.c:1251:0: error: expected ';' before 'match'
rts/Linker.c:1284:0:
warning: implicit declaration of function 'regexec'
rts/Linker.c:1284:0:
warning: nested extern declaration of 'regexec'
rts/Linker.c:1284:0:
error: 're_invalid' undeclared (first use in this function)
rts/Linker.c:1284:0:
error: 'match' undeclared (first use in this function)
rts/Linker.c:1288:0:
warning: type defaults to 'int' in declaration of '_a'
rts/Linker.c:1288:0:
warning: type defaults to 'int' in declaration of '_b'
rts/Linker.c:1299:0:
error: 're_realso' undeclared (first use in this function)
rts/Linker.c: In function 'machoInitSymbolsWithoutUnderscore':
rts/Linker.c:4743:0:
warning: nested extern declaration of 'symbolsWithoutUnderscore'
make[1]: *** [rts/dist/build/Linker.o] Error 1
make[1]: *** Waiting for unfinished jobs....
The particular system here is Darwin 8/PPC, but the same happens on Darwin 9/x86.
GNU linker scripts don't exist on Darwin (Mach-O) targets, hence testing for them on this platform is pointless. Perhaps the code to check can be conditionalised for ELF-platforms only, which would leave the assert problem.
Trac metadata
Trac field | Value |
---|---|
Version | 6.12.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | grobian@gentoo.org, howard_b_golden@yahoo.com |
Operating system | |
Architecture |