This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Question about ld_plugin_output_file_type and "-fpic" option


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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]