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 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? Thanks, Mark