Why there are serval different versions related to GLIBC when dumping the symbols of a program by nm whereas the program is built with GLIBC_2.23?

Adhemerval Zanella adhemerval.zanella@linaro.org
Thu Sep 3 10:47:07 GMT 2020



On 02/09/2020 21:56, 孙世龙 sunshilong wrote:
> Hi,
> 
> Thank you for the clarification.
> 
>> This is the initial version when the symbol was added.  And it can vary
>> for different architectures (with different baseline versions).
> 
> So, __printf_chk is not supported before GLIBC_2.2.4.
> Can I draw this conclusion?

I think you meant GLIBC_2.3.4 and it is version the symbol was added.

> 
> But I am amazed that malloc is not supported before GLIBC_2.2.5.
> As far as I know, malloc is a very basic API.
> So I think it is supported by the very beginning version of GLIBC.
> 
> If there is something wrong, please let me know.

You need to check the *base* abi version for the specific ABI. For x86_64
specifically it is GLIBC_2.2.5 while for i686 it is GLIBC_2.0.


More information about the Libc-help mailing list