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