[PATCH v4 13/15] ARC: Build Infrastructure
Joseph Myers
joseph@codesourcery.com
Tue Mar 31 22:48:31 GMT 2020
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 libc.so
that does the syscall there.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list