solidpixel
solidpixel

Reputation: 12229

Stopping linkage against GLIBC turning strftime into __strftime_l

I have an application which is normally built and executed using GLIBC. One of my users is attempting to use it on a platform built with the MUSL C library (which claims to be GLIBC compatible).

When doing so they are getting an ldd symbol resolution failure for __strftime_l, which MUSL implements but doesn't actually export as an externally visible symbol.

Is there any way to stop the application build against GLIBC turning functions like strftime_l() into to the __ prefixed versions such as __strftime_l() in the run-time resolved symbol table?

Upvotes: 5

Views: 273

Answers (1)

Employed Russian
Employed Russian

Reputation: 213877

MUSL C library (which claims to be GLIBC compatible).

From musl FAQ:

Is musl compatible with glibc?
... At present, some glibc-linked shared libraries can be loaded with musl ...
all but the simplest glibc-linked applications will fail if musl is dropped-in in place of /lib/ld-linux.so.2

If you want to support musl, build (and test) a separate version of your application against it. Both you and your users will be much happier with the end result.

Upvotes: 3

Related Questions