driver: pass '-fPIC' option to all CC invocations
Reported by mitchty:
When porting ghc to alpine linux (rumors say they build
all binaries as Position Independent Executables
to leverage global ASLR) linker issued obscure errors:
Tiny example:
$ echo 'main = print "hello"' > a.hs
$ ghc -fforce-recomp a.hs -fPIC -dynamic -optl-pie -o a
ld: /tmp/ghc2142_0/ghc2142_5.o: relocation R_X86_64_32 against `ZCMain_main_closure'
can not be used when making a shared object; recompile with -fPIC
/tmp/ghc2142_0/ghc2142_5.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
There is two entry points in CC driver:
'runPhase' (CC) and 'mkExtraObj'
'mkExtraObj' does not handle most of 'runPhase's complexity.
Ideally it should.
This patch only adds -fPIC propagation to 'mkExtraObj'.
Please merge to stable branch.
Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
Loading
Please register or sign in to comment