On Fri, 14 Apr 2023 02:09:47 GMT, Jiangli Zhou <jian...@openjdk.org> wrote:

>>> If we were to do this then we should have a naming convention of some kind 
>>> e.g. `<lib-name>_<var-name>` but it strikes me as wrong as the code 
>>> shouldn't need to know what library it is part of. In this case we do 
>>> something as a simple point-fix, but to me it says there is a bigger 
>>> problem.
>> 
>> Using a naming convention as you suggested sounds good. I'm not completely 
>> clear what's the bigger problem though. Could you please clarify?
>
> David, I was doing some more reading on the topic for our discussion in the 
> thread and just found this: 
> https://stackoverflow.com/questions/61663118/avoid-multiple-definition-linker-error-when-not-using-the-redefined-symbols.
>  
> 
> It has some good information on the symbol collision issue. It describes 
> using 'objcopy' to localize or redefine symbols. It also mentions 
> '--allow-multiple-definitions', which I didn't know before. However, 
> '--allow-multiple-definitions' doesn't seem to be a good approach.

Thanks for the pointer to stackoverflow - that made things a lot clearer. 

The symbol localization using `objcopy` seems to achieve what we desire but has 
the same drawback as renaming, that you need to know the symbols will clash to 
localize them. And it is also not ideal that changing the code may also need a 
change to the build file. :(

With that in mind a simple renaming seems the least worst option for fixing 
this.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13451#discussion_r1166283513

Reply via email to