Question about ld_plugin_output_file_type and "-fpic" option
Alexander Ivchenko
aivchenk@gmail.com
Tue Mar 4 14:16:00 GMT 2014
Hi,
Have a little question about ld_plugin_output_file_type in plugin-api.h.
"-fpic" option is turned on by default for Android compiler (both gcc
and llvm), so if we run the compiler on a .c file and get an
executable - it will be compiled and linked as position independent
code (e.g. no COPY relocs).
However, if we add an lto mechanism into account, the thing will be
different. As far as I understand, for gcc case "-fpic" option will be
given through temporary file, but llvm will rely on
ld_plugin_output_file_type of the linker, which in the case described
above would be just LDPO_EXEC which is not position independent. And
so for "-fpic" and lto we will get copy relocations and stuff.
Since we allow to compile and link an executable with "-fpic" (I know
that it is recommended to make an executable "-fpie" but I'm
describing how the default compiling is done) what are the assumptions
on a resulting executable? Should there be another entry in
ld_plugin_output_file_type for that? "-fpic" is not given to a linker
in any way, can we say that the resulting executable will be a
position independent?
thanks,
Alexander
More information about the Binutils
mailing list