[PATCH 15/30] nptl: Remove pread from libpthread

Florian Weimer fweimer@redhat.com
Wed Mar 17 20:04:03 GMT 2021


* Adhemerval Zanella:

>> Sorry, two more things: I don't quite see how alpha is an outlier here.
>> 
>> And ideally, this should receive the same treatment (and similar commit
>> message) as lseek64 because I think we should switch from GLIBC_2.2
>> symbols to GLIBC_2.1 for the default, and make the GLIBC_2.2 symbols
>> compat versions.
>> 
>> Both comments apply to the pwrite change as well.
>
> Alpha is outlier because it requires to handle a GLIBC_2_1 and
> GLIBC_2_2 symbol versioning *also* for pread and __pread (not only
> for LFS pread64 and __pread64 as usual LFS ABIs).

Ah I see it now: mips64-linux-gnu-n64 has only this:

 1556: 0000000000109b70    300 FUNC    GLOBAL DEFAULT       12 __libc_pread@@GLIBC_PRIVATE
 2229: 0000000000109b70    300 FUNC    WEAK   DEFAULT       12 pread@@GLIBC_2.2

Likewise ia64-linux-gnu:

 1640: 00000000001bb180    528 FUNC    GLOBAL DEFAULT       11 __libc_pread@@GLIBC_PRIVATE
 2624: 00000000001bb180    528 FUNC    WEAK   DEFAULT       11 pread@@GLIBC_2.2

While i686-linux-gnu has:

 1327: 000f8480    218 FUNC    GLOBAL DEFAULT       13 __libc_pread@@GLIBC_PRIVATE
 2371: 000f8480    218 FUNC    GLOBAL DEFAULT       13 pread@@GLIBC_2.2
 2373: 000f8480    218 FUNC    GLOBAL DEFAULT       13 pread@GLIBC_2.1

And alpha-linux-gnu has:

 1406: 00000000000fc490    296 FUNC    GLOBAL DEFAULT       11 __libc_pread@@GLIBC_PRIVATE
 2522: 00000000000fc490    296 FUNC    GLOBAL DEFAULT       11 pread@@GLIBC_2.2
 2524: 00000000000fc490    296 FUNC    GLOBAL DEFAULT       11 pread@GLIBC_2.1

I compared it to the 32-bit ports …

It's a bit unfortunate that we have to pollute the generic code for
this.  But I don't see a way to avoid this if we bias the symbol version
towards pread@@GLIBC_2.1, to avoid the new pread@@GLIBC_2.34 symbol.

Thanks,
Florian



More information about the Libc-alpha mailing list