Dear Android Developers, I noticed that google'd maintained binutils for android. We are porting Android to own processor. The difficult part is DSO.
First of all, is it necessary for the toolchains of android set PIC in default? I means how compiler deal with variable/function which might be in DSO. The conservative way is always kept a got entry for potential candicates. but it needs 2x loads if they are defined in the executable. I don't know ARM very much. AFAIK, x86 and mips are currently PICed in default. our toolchains don't set PIC in default. Second, should we implement R_XXX_COPY? I'm not sure where to locate non-static variables in share library. Are those in .sbss of .so file, or .bss section of the executable? Android building script enforces option "-z,nocopyrelc". so I assume dynamic executables never generate R_XXX_COPY relocations. Then why android linker processes R_ARM_COPY? if executables would not contain COPY relec type, then how linker handle non-static variables in shared library? Some people say android linker is not compatible with ld.linux.so. As a result, linker can not load binaries generate for linux system. So what's the difference exactly? There should be spec for toolchain developers. Thanks, --lx -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
