add a workaround for a glibc 2.20 bug

This commit is contained in:
Thomas Pöchtrager 2014-09-11 00:58:44 +02:00
parent 45b8510f70
commit f1c5d5368d
4 changed files with 54 additions and 1 deletions

View File

@ -186,6 +186,7 @@ if [ "$PLATFORM" == "Linux" ]; then
fi
# fix LD_LIBRARY_PATH
patch -p0 < $PATCH_DIR/cctools-f7a5930.patch
patch -p0 < $PATCH_DIR/cctools-cdefs.patch
popd &>/dev/null
patch -p0 < $PATCH_DIR/cctools-ld64-1.patch
patch -p0 < $PATCH_DIR/cctools-ld64-2.patch

View File

@ -0,0 +1,32 @@
commit 7083dddbb0f106d791d313829ea7dc45db90e375
Author: Thomas Pöchtrager <t.poechtrager@gmail.com>
Date: Thu Sep 11 00:34:16 2014 +0200
add a workaround for a glibc 2.20 bug
diff --git cctools/include/sys/cdefs.h cctools/include/sys/cdefs.h
new file mode 100644
index 0000000..ca78da5
--- /dev/null
+++ cctools/include/sys/cdefs.h
@@ -0,0 +1,20 @@
+/*
+ * Workaround for a GLIBC bug.
+ * https://sourceware.org/bugzilla/show_bug.cgi?id=14952
+ */
+
+#include_next <sys/cdefs.h>
+
+#ifdef __GLIBC__
+
+#ifndef __extern_inline
+# define __extern_inline \
+ extern __inline __attribute__ ((__gnu_inline__))
+#endif
+
+#ifndef __extern_always_inline
+# define __extern_always_inline \
+ extern __always_inline __attribute__ ((__gnu_inline__))
+#endif
+
+#endif /* __GLIBC__ */

View File

@ -58,7 +58,7 @@ fi
[ $PLATFORM = "FreeBSD" ] && FLAGS+="-lutil "
if [[ $PLATFORM != *Windows ]] && [ $PLATFORM != "Darwin" ]; then
FLAGS+="-lrt "
FLAGS+="-lrt -isystem quirks/include"
fi
function compile_wrapper()

View File

@ -0,0 +1,20 @@
/*
* Workaround for a GLIBC bug.
* https://sourceware.org/bugzilla/show_bug.cgi?id=14952
*/
#include_next <sys/cdefs.h>
#ifdef __GLIBC__
#ifndef __extern_inline
# define __extern_inline \
extern __inline __attribute__ ((__gnu_inline__))
#endif
#ifndef __extern_always_inline
# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
#endif
#endif /* __GLIBC__ */