This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Ping^2 Re: Correct MicroBlaze librt ABI list
On 18/01/2017 11:42, Joseph Myers wrote:
> On Wed, 18 Jan 2017, Adhemerval Zanella wrote:
>
>> I am not sure if it is suffice to confirm the symbol existence, but
>> I could build a microblaze-linux-gnu using 2.18 release branch (with
>> minor adjustment on configure to not fail with make 4.*) and these
>> symbol indeed are present on librt:
>>
>> glibc/build/microblaze-linux-gnu$ objdump -t rt/librt.so | grep clock_
>
> objdump -T (--dynamic-syms) output, showing the symbol versions, would be
> more useful.
$ objdump -T rt/librt.so | grep clock_
00000000 DF *UND* 00000000 GLIBC_PRIVATE __clock_nanosleep
00000000 DF *UND* 00000000 GLIBC_PRIVATE __clock_getres
00000000 DF *UND* 00000000 GLIBC_PRIVATE __clock_gettime
00000000 DF *UND* 00000000 GLIBC_PRIVATE __clock_getcpuclockid
00000000 DF *UND* 00000000 GLIBC_PRIVATE __clock_settime
00006278 g DF .text 00000030 GLIBC_2.18 clock_getres
000062a8 g DF .text 00000030 GLIBC_2.18 clock_gettime
00006308 g DF .text 00000030 GLIBC_2.18 clock_getcpuclockid
00006338 g DF .text 00000030 GLIBC_2.18 clock_nanosleep
000062d8 g DF .text 00000030 GLIBC_2.18 clock_settime
It indeed shows the symbols being exported the 2.18 version.
>
> If the symbols are indeed part of the librt ABI for MicroBlaze we need a
> more complicated fix to ensure they are present in that library with
> current sources. I suspect the cause of the symbols being present would
> have been the Versions.def issue fixed by
> <https://sourceware.org/ml/libc-alpha/2014-02/msg00598.html>.
>
The symbols seems to be removed on 2.20 release and 2.23 also have these
symbols absent (I could not verify on 2.21 and 2.22 since the build is
broken on microblaze with my current GCC 6.2.1 toolchain).
So we have potentially two releases with these symbol on librt.so (2.18
and 2.19). I am not sure which is the best course of action in this
case, if it would be better to just follow the default practice to
assume no librt symbols or follow old release behaviour.