From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14111 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: Re: __strftime_l: symbol not found Date: Wed, 8 May 2019 22:03:39 +0200 Message-ID: <20190508200339.GS26605@port70.net> References: Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="243324"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.10.1 (2018-07-13) Cc: John Mudd To: musl@lists.openwall.com Original-X-From: musl-return-14127-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 08 22:03:56 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1hOSnB-00117G-Q8 for gllmg-musl@m.gmane.org; Wed, 08 May 2019 22:03:53 +0200 Original-Received: (qmail 14219 invoked by uid 550); 8 May 2019 20:03:51 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 14201 invoked from network); 8 May 2019 20:03:51 -0000 Mail-Followup-To: musl@lists.openwall.com, John Mudd Content-Disposition: inline In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:14111 Archived-At: * John Mudd [2019-05-08 15:54:35 -0400]: > Here's more details. I'm trying to load a library that includes some C++ > code. It requires libstdc++.so.6 which is looking for __strftime_l. > > $ nm -D /usr/rx30/musl/lib/libstdc++.so.6 | grep __strftime_l > U __strftime_l > $ > > I get the following error when trying to load libstdc++.so.6. > Error relocating /usr/rx30/musl/lib/libstdc++.so.6: __strftime_l: symbol > not found ok in that case this symbol should be kept for glibc abi compat so it is a real regression. it seems libstdc++ explicitly declares and uses the __ symbols on glibc >= 2.2 targets. > > > > On Wed, May 8, 2019 at 12:26 PM John Mudd wrote: > > > Hi, I'm upgrading my musl from 1.19 to 1.22 but it looks like I lost > > the __strftime_l function. It's present in the 1.19 libc.so but not in 1.22. > > > > $ nm -D /home/mudd/musl-1.1.19.install/lib/libc.so | grep __strftime_l > > 0007b6a0 T __strftime_l > > $ nm -D /home/mudd/musl-1.1.22.install/lib/libc.so | grep __strftime_l > > $ > > > > > > Here's the diff on the source code. I can't explain how this diff would > > cause the function to disappear. Any suggestions? > > > > $ diff musl-1.1.19/src/time/strftime.c /musl-1.1.22/src/time/strftime.c > > 9d8 > > < #include "libc.h" > > 12,13d10 > > < const char *__nl_langinfo_l(nl_item, locale_t); > > < > > 48,50d44 > > < const char *__tm_to_tzname(const struct tm *); > > < size_t __strftime_l(char *restrict, size_t, const char *restrict, const > > struct tm *restrict, locale_t); > > < > > 184,186c178,179 > > < *l = snprintf(*s, sizeof *s, "%+.2d%.2d", > > < (tm->__tm_gmtoff)/3600, > > < abs(tm->__tm_gmtoff%3600)/60); > > --- > > > *l = snprintf(*s, sizeof *s, "%+.4ld", > > > tm->__tm_gmtoff/3600*100 + > > tm->__tm_gmtoff%3600/60); > > $ > >