Message ID | alpine.DEB.2.20.1701032135220.14638@digraph.polyomino.org.uk |
---|---|
State | Superseded |
Headers |
Received: (qmail 7269 invoked by alias); 3 Jan 2017 21:36:53 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 7253 invoked by uid 89); 3 Jan 2017 21:36:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=Hx-languages-length:1404, 1511, H*Ad:U*david X-HELO: relay1.mentorg.com Date: Tue, 3 Jan 2017 21:36:33 +0000 From: Joseph Myers <joseph@codesourcery.com> To: <libc-alpha@sourceware.org> CC: <eager@eagercon.com>, <david@holsgrove.tech> Subject: Correct MicroBlaze librt ABI list Message-ID: <alpine.DEB.2.20.1701032135220.14638@digraph.polyomino.org.uk> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) |
Commit Message
Joseph Myers
Jan. 3, 2017, 9:36 p.m. UTC
Running compile tests for MicroBlaze shows ABI test failures in librt because of the absence of clock_* symbols. This absence seems correct, since those symbols moved to libc before the port was added; that is, this seems like a mistake in the ABI baseline, and this patch removes them from it. Unfortunately, there are no MicroBlaze test results on any of the per-release wiki pages to confirm if this test has indeed been failing all along since the port was added. Tested (compilation tests) with build-many-glibcs.py. 2017-01-03 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/microblaze/librt.abilist (GLIBC_2.18): Remove clock_getcpuclockid, clock_getres, clock_gettime, clock_nanosleep and clock_settime.
Comments
Ping. This patch <https://sourceware.org/ml/libc-alpha/2017-01/msg00094.html> is pending review. Can someone confirm these functions have indeed been absent from MicroBlaze librt all along?
Ping^2. This patch <https://sourceware.org/ml/libc-alpha/2017-01/msg00094.html> is still pending review. Can someone confirm these functions have indeed been absent from MicroBlaze librt all along?
On 17/01/2017 20:50, Joseph Myers wrote: > Ping^2. This patch > <https://sourceware.org/ml/libc-alpha/2017-01/msg00094.html> is still > pending review. Can someone confirm these functions have indeed been > absent from MicroBlaze librt all along? > 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_ 000062a8 g F .text 00000030 clock_gettime 00006308 g F .text 00000030 clock_getcpuclockid 00006278 g F .text 00000030 clock_getres 00000000 F *UND* 00000000 __clock_nanosleep@@GLIBC_PRIVATE 00000000 F *UND* 00000000 __clock_getres@@GLIBC_PRIVATE 00000000 F *UND* 00000000 __clock_gettime@@GLIBC_PRIVATE 00006338 g F .text 00000030 clock_nanosleep 000062d8 g F .text 00000030 clock_settime 00000000 F *UND* 00000000 __clock_getcpuclockid@@GLIBC_PRIVATE 00000000 F *UND* 00000000 __clock_settime@@GLIBC_PRIVATE
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. 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>.
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.
diff --git a/sysdeps/unix/sysv/linux/microblaze/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/librt.abilist index 9f6ecb0..e672dfc 100644 --- a/sysdeps/unix/sysv/linux/microblaze/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.18 aio_suspend F GLIBC_2.18 aio_suspend64 F GLIBC_2.18 aio_write F GLIBC_2.18 aio_write64 F -GLIBC_2.18 clock_getcpuclockid F -GLIBC_2.18 clock_getres F -GLIBC_2.18 clock_gettime F -GLIBC_2.18 clock_nanosleep F -GLIBC_2.18 clock_settime F GLIBC_2.18 lio_listio F GLIBC_2.18 lio_listio64 F GLIBC_2.18 mq_close F