Re: switching ARC to 64-bit time_t (Re: [RFC v6 07/23] RISC-V: Use 64-bit time_t and off_t for RV32 and RV64)
- To: Lukasz Majewski <lukma@denx.de>
- Cc: Andreas Schwab <schwab@suse.de>, Arnd Bergmann <arnd@arndb.de>, Florian Weimer <fweimer@redhat.com>, Helmut Grohne <helmutg@debian.org>, GNU C Library <libc-alpha@sourceware.org>, Vineet Gupta <Vineet.Gupta1@synopsys.com>, Palmer Dabbelt <palmerdabbelt@google.com>, Zong Li <zongbox@gmail.com>, <debian-arm@lists.debian.org>, Alistair Francis <alistair.francis@wdc.com>, Adhemerval Zanella <adhemerval.zanella@linaro.org>, "Maciej W. Rozycki" <macro@wdc.com>, Alistair Francis <alistair23@gmail.com>, arcml <linux-snps-arc@lists.infradead.org>
- Subject: Re: switching ARC to 64-bit time_t (Re: [RFC v6 07/23] RISC-V: Use 64-bit time_t and off_t for RV32 and RV64)
- From: Joseph Myers <joseph@codesourcery.com>
- Date: Tue, 25 Feb 2020 00:03:59 +0000
- Message-id: <[🔎] alpine.DEB.2.21.2002242353570.23654@digraph.polyomino.org.uk>
- In-reply-to: <[🔎] 20200224113658.275ea702@jawa>
- References: <cover.1578824547.git.alistair.francis@wdc.com> <4e95f95966d8d7c6a8339160dc62d81c1f6a1bfb.1578824547.git.alistair.francis@wdc.com> <00574bfb-981a-3a1c-cbdf-b2fee4eddc32@gmail.com> <CAKmqyKMyf2psPp+-EHoidvbPbSXv0=dP26GjVQnT5BUriLc1gA@mail.gmail.com> <alpine.DEB.2.21.2002120123230.3988@digraph.polyomino.org.uk> <CAKmqyKOgFRfMOws_-48GqMnuS3ygmN9A4DzLg6UtEjRXVoM82A@mail.gmail.com> <8a9784b3-fc52-adc3-4595-33142b059388@synopsys.com> <20200220001136.2f14236e@jawa> <[🔎] CAK8P3a1b73K+RjfHONWLy_dFUucXxwd+0jTnHmkf6YqwRjit4w@mail.gmail.com> <[🔎] 20200220103716.2f526933@jawa> <[🔎] CAK8P3a2n6fRm4C5Ywyk5ys92jSOAc5SwvBVZyFOY9=4rB2pyjw@mail.gmail.com> <[🔎] 20200224100051.2511d797@jawa> <[🔎] mvmpne4xqpb.fsf@suse.de> <[🔎] 20200224111424.33759b2e@jawa> <[🔎] mvmh7zgxozs.fsf@suse.de> <[🔎] 20200224113658.275ea702@jawa>
On Mon, 24 Feb 2020, Lukasz Majewski wrote:
> I'm probably not aware of something - but as done in the following
> patch:
>
> https://github.com/lmajewski/y2038_glibc/commit/c96eeb73175961c4ac80fdd3b6adc132805387c9
>
> I do need to remove librt_hidden_proto / librt_hidden_def to have
> proper symbols visible when I do want to use redirections.
You'll need to explain the actual problem you see, because
lib<name>_hidden_proto / lib<name>_hidden_def are correct for any symbol
that satisfies both of the following properties: (a) it is exported from
shared lib<name> (whether at a public symbol version or version
GLIBC_PRIVATE) and (b) it is also used within the library that defines it.
They are useless but harmless for other symbols.
lib<name>_hidden_proto / lib<name>_hidden_def always need to be used
together, and always need to have <name> matching the name of the shared
library with the symbol. In C code, lib<name>_hidden_proto causes the
function, for both definition and calls, to be redirected to an internal,
hidden-visibility alias, while lib<name>_hidden_def then adds back the
exported name as a non-hidden alias to cause it to be exported from the
shared library in question.
It's true that the redirection from lib<name>_hidden_proto doesn't work
when there is another redirection for the same symbol in effect, but that
should not be a concern here (there should be no reason to have an asm
redirection from __mq_timedreceive_time64 to another name, for example).
--
Joseph S. Myers
joseph@codesourcery.com
Reply to: