switchroot: Fix building with musl libc
POSIX and GNU define conflicting versions of `strerror_r`. The GNU version returns the string but doesn't necessilary write into buf. The POSIX version writes into buf and returns the length but doesn't necessilary append a terminate the string with a NUL if it's too long to fit in buf. This commit fixes building ostree-prepare-root with musl libc. The stripped static build with musl on my machine is 30K vs. 724K with glibc static and 11K with glibc shared. Closes: #477 Approved by: cgwalters
This commit is contained in:
parent
a269075724
commit
faee3df8ae
|
|
@ -40,7 +40,13 @@ perrorv (const char *format, ...)
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
|
#ifdef _GNU_SOURCE
|
||||||
p = strerror_r (errno, buf, sizeof (buf));
|
p = strerror_r (errno, buf, sizeof (buf));
|
||||||
|
#else
|
||||||
|
strerror_r (errno, buf, sizeof (buf));
|
||||||
|
buf[sizeof (buf) - 1] = '\0';
|
||||||
|
p = buf;
|
||||||
|
#endif /* _GNU_SOURCE */
|
||||||
|
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue