aboutsummaryrefslogtreecommitdiffstats
path: root/main/fish/fish-safe-strerror.patch
diff options
context:
space:
mode:
authorBartłomiej Piotrowski <bpiotrowski@alpinelinux.org>2014-02-05 17:34:42 +0100
committerBartłomiej Piotrowski <bpiotrowski@alpinelinux.org>2014-02-05 17:51:41 +0100
commitf01e31eec18317297a6f899c41362a21a7e7c9b3 (patch)
tree5a2f9d086a28c27ecfaba1166a1e57686b371b60 /main/fish/fish-safe-strerror.patch
parentbc05b5ad6e378b520fcac69e97bcbf9a08f3a2c1 (diff)
downloadaports-f01e31eec18317297a6f899c41362a21a7e7c9b3.tar.bz2
aports-f01e31eec18317297a6f899c41362a21a7e7c9b3.tar.xz
main/fish: fix musl build
Diffstat (limited to 'main/fish/fish-safe-strerror.patch')
-rw-r--r--main/fish/fish-safe-strerror.patch37
1 files changed, 9 insertions, 28 deletions
diff --git a/main/fish/fish-safe-strerror.patch b/main/fish/fish-safe-strerror.patch
index 114953ba6c..86916b3d38 100644
--- a/main/fish/fish-safe-strerror.patch
+++ b/main/fish/fish-safe-strerror.patch
@@ -1,31 +1,12 @@
---- a/wutil.cpp
-+++ b/wutil.cpp
-@@ -319,27 +319,7 @@
+diff -rupN a/wutil.cpp b/wutil.cpp
+--- a/wutil.cpp 2013-10-19 22:10:26.000000000 +0200
++++ b/wutil.cpp 2014-02-05 17:30:54.372370762 +0100
+@@ -319,7 +319,7 @@ static inline void safe_append(char *buf
const char *safe_strerror(int err)
{
-- if (err >= 0 && err < sys_nerr && sys_errlist[err] != NULL)
-- {
-- return sys_errlist[err];
-- }
-- else
-- {
-- int saved_err = errno;
--
-- /* Use a shared buffer for this case */
-- static char buff[384];
-- char errnum_buff[64];
-- format_long_safe(errnum_buff, err);
--
-- buff[0] = '\0';
-- safe_append(buff, "unknown error (errno was ", sizeof buff);
-- safe_append(buff, errnum_buff, sizeof buff);
-- safe_append(buff, ")", sizeof buff);
--
-- errno = saved_err;
-- return buff;
-- }
-+ return strerror(err);
- }
-
- void safe_perror(const char *message)
+-#if defined(__UCLIBC__)
++#if defined(__UCLIBC__) || !defined(__GLIBC__)
+ // uClibc does not have sys_errlist, however, its strerror is believed to be async-safe
+ // See #808
+ return strerror(err);