summaryrefslogtreecommitdiffstats
path: root/sysroot-patches
diff options
context:
space:
mode:
Diffstat (limited to 'sysroot-patches')
-rw-r--r--sysroot-patches/glibc-2.17-define-gnu-inline.patch35
-rw-r--r--sysroot-patches/sysroot-link-libgl-correctly.patch13
-rw-r--r--sysroot-patches/sysroot-link-stdatomic-to-bionic.patch15
3 files changed, 63 insertions, 0 deletions
diff --git a/sysroot-patches/glibc-2.17-define-gnu-inline.patch b/sysroot-patches/glibc-2.17-define-gnu-inline.patch
new file mode 100644
index 0000000..b4c3468
--- /dev/null
+++ b/sysroot-patches/glibc-2.17-define-gnu-inline.patch
@@ -0,0 +1,35 @@
+This patch is one of the motivating reasons for upgrading glibc from 2.15.
+
+Unfortunately, we couldn't upgrade to 2.19(*) due to some users having 2.17.
+
+* - which no longer needs the patch, since the #ifdefs around __gnu_inline__ are
+ worded so that compilers that don't have __GNUC_PREREQ(4, 3) can still get
+ the reasonable definition for __gnu_inline__
+
+-----
+diff --git a/amd64/usr/include/x86_64-linux-gnu/sys/cdefs.h b/amd64/usr/include/x86_64-linux-gnu/sys/cdefs.h
+index fb6c959..bd9ee92 100644
+--- a/usr/include/x86_64-linux-gnu/sys/cdefs.h
++++ b/usr/include/x86_64-linux-gnu/sys/cdefs.h
+@@ -320,7 +320,7 @@
+
+ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. */
+-#if (!defined __cplusplus || __GNUC_PREREQ (4,3)) && defined __GNUC__
++#if (!defined __cplusplus || __GNUC_PREREQ (4,3) || defined __clang__) && defined __GNUC__
+ # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+ # define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+ # define __extern_always_inline \
+diff --git a/i386/usr/include/i386-linux-gnu/sys/cdefs.h b/i386/usr/include/i386-linux-gnu/sys/cdefs.h
+index fb6c959..bd9ee92 100644
+--- a/usr/include/i386-linux-gnu/sys/cdefs.h
++++ b/usr/include/i386-linux-gnu/sys/cdefs.h
+@@ -320,7 +320,7 @@
+
+ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. */
+-#if (!defined __cplusplus || __GNUC_PREREQ (4,3)) && defined __GNUC__
++#if (!defined __cplusplus || __GNUC_PREREQ (4,3) || defined __clang__) && defined __GNUC__
+ # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+ # define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+ # define __extern_always_inline \
diff --git a/sysroot-patches/sysroot-link-libgl-correctly.patch b/sysroot-patches/sysroot-link-libgl-correctly.patch
new file mode 100644
index 0000000..1d6f539
--- /dev/null
+++ b/sysroot-patches/sysroot-link-libgl-correctly.patch
@@ -0,0 +1,13 @@
+libGL.so was symlinked to itself. Unsurprisingly, this breaks things. Link it to
+mesa/ instead.
+
+-----
+diff --git a/usr/lib/libGL.so b/usr/lib/libGL.so
+index fc3a03e..e898a5b 120000
+--- a/usr/lib/libGL.so
++++ b/usr/lib/libGL.so
+@@ -1 +1 @@
+-libGL.so
+\ No newline at end of file
++mesa/libGL.so
+\ No newline at end of file
diff --git a/sysroot-patches/sysroot-link-stdatomic-to-bionic.patch b/sysroot-patches/sysroot-link-stdatomic-to-bionic.patch
new file mode 100644
index 0000000..d12ffa0
--- /dev/null
+++ b/sysroot-patches/sysroot-link-stdatomic-to-bionic.patch
@@ -0,0 +1,15 @@
+Carried from glibc-2.15 we have a stdatomic.h symlink.
+
+There's no motivating build failure I could produce for this. It's incredibly
+cheap to include, and random online posts indicate that stdatomic.h only
+appeared with gcc 4.9. Probably worth checking if this is still needed when we
+move to that.
+
+-----
+diff --git a/usr/include/stdatomic.h b/usr/include/stdatomic.h
+new file mode 120000
+--- /dev/null
++++ b/usr/include/stdatomic.h
+@@ -0,0 +1 @@
++../../../../../../../../bionic/libc/include/stdatomic.h
+\ No newline at end of file