Re: [PATCH v4 13/15] ARC: Build Infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On Tue, 31 Mar 2020, Vineet Gupta via Libc-alpha wrote:

> On 3/27/20 11:42 PM, Vineet Gupta via Libc-alpha wrote:
> >>> +++ b/sysdeps/arc/Versions
> >>> @@ -0,0 +1,6 @@
> >>> +libc {
> >>> +  GLIBC_2.32 {
> >>> +    __syscall_error;
> >>
> >> Why does __syscall_error need a public symbol version?  If it's used by a 
> >> library other than libc, that means it needs to be exported at some symbol 
> >> version - but it only needs a public version (as opposed to GLIBC_PRIVATE) 
> >> if it might be used by user programs linked with glibc (if it's used in 
> >> crt*.o, lib*_nonshared.a, or inline functions in installed headers, for 
> >> example - or in libgcc.a, libstdc++.a, etc. (GCC static libraries)).
> >
> > We'll historically I've preferred an out-of-line errno setter in the syscall
> > wrappers and those are used in libpthread et all as well but not expected to be
> > used by user programs. See my sysdeps.h
> Ok so this will not be called directly from user programs, but indeed 
> could end up in non shared libs and/or inline functions in headers, so I 
> suppose this is fine ?

What inline function or object in lib*_nonshared.a / crt*.o / GCC static 
library has a reference to this symbol?

If there's an inline function referring to this in an installed header, we 
can consider whether that inline function *should* be referring to it.  
Similarly if there's a reference in crt*.o / lib*_nonshared.a / GCC static 
libraries, we can consider if that reference *should* be there or if the 
function in question should actually be calling some function from 
that does the syscall there.

Joseph S. Myers

linux-snps-arc mailing list

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux