Hi!
Since alloca will return void*, g++ will report error(-fpermissive, invalid conversion from void* to char*), if you do strcpy(alloca(32), str), which is the definition of strdupa on musl. I've patched it by type casting to fix the build of bazel. Could this be merged upstream?
--- a/include/string.h 2022-04-08 01:12:40.000000000 +0800
+++ b/include/string.h 2022-04-08 01:12:40.000000000 +0800
@@ -88,7 +88,7 @@
#endif
#ifdef _GNU_SOURCE
-#define strdupa(x) strcpy(alloca(strlen(x)+1),x)
+#define strdupa(x) strcpy((char*)(alloca(strlen(x)+1)),x)
int strverscmp (const char *, const char *);
char *strchrnul(const char *, int);
char *strcasestr(const char *, const char *);