Richard Sandiford <richard.sandif...@linaro.org> writes:
> Dave Martin <dave.mar...@linaro.org> writes:
>> Another way of doing a similar thing is to mark __mylib_constructor
>> as undefined in all the objects that make up the library.
>>
>> Unfortunately, there seems to be no obvious way of doing that: the
>> assembler generates undefined symbol references automatically for
>> unresolved references at assembly time.  There's no way for force
>> the existence of an undefined symbol without an actual reference to
>> it.
>
> One way of doing this is to create an R_ARM_NONE relocation
> against it, such as:
>
>         .reloc   .,R_ARM_NONE,__mylib_constructor
>
> This isn't as hacky as it might sound, because undefined references
> don't really make much sense without an associated reloc.

Not that I recommend this as a fix for the original problem btw. :-)
Just FYI.

As Kito says, the easiest way of treating a static link like a shared
one is to use --whole-archive -lfoo --no-whole-archive.  If the library
is compiled with -ffunction-sections -fdata-sections, --gc-sections
should remove the unnecessary code.

Richard

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to