On Thu, Dec 14, 2023 at 10:07 AM Mark Wielaard <m...@klomp.org> wrote:
>
> Hi Khem,
>
> On Sun, 2023-12-10 at 12:20 -0800, Khem Raj wrote:
> > musl does not provide GNU version of basename and lately have removed
> > the definiton from string.h [1] which exposes this problem. It can be
> > made to work by providing a local implementation of basename which
> > implements the GNU basename behavior, this makes it work across C
> > libraries which have POSIX implementation only.
> >
> > Upstream-Status: Pending
> > [1] 
> > https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
> > Signed-off-by: Khem Raj <raj.k...@gmail.com>
>
> Our discussion showed we really need this if we want to support musl
> (or any other alternative libc without the string.h basename variant).
> I would have liked a configure check, but old musl makes that kind of
> impossible. So I agree we should use our own implementation.
>
> I did structure it slightly differently though. Instead of adding it to
> libeu I added it to system.h as static inline function. And I poisoned
> the basename symbol. That found two other places where basename was
> used (and now replaced by xbasename). Sadly it means we have to rename
> a variable in debuginfod.cxx from basename to filename, but I think
> that is acceptable.
>
> I don't like the const cast away in ar.c, but that seems necessary
> because we are using search.h and that interface just takes non-cast
> char pointers (even though they really are const).
>
> What do you think of the attached variant of your patch?

Overall, this looks a good improvement on top of my patch so good to go.
I will also try it in my local distro builds and see how it goes.

>
> Thanks,
>
> Mark

Reply via email to