Skip to contentSkip to conversation

package/gcc: renumber patch

PATCH Superseded Bernd Kuhls 2 participants 6 messages Aug 12, 2018 – Aug 13, 2018 1 message not in the archive

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 package/gcc: renumber patch

---
 ...R-target-65416.patch => 0003-xtensa-fix-PR-target-65416.patch} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename package/gcc/7.3.0/{0002-xtensa-fix-PR-target-65416.patch => 0003-xtensa-fix-PR-target-65416.patch} (100%)
package/gcc/7.3.0/0003-xtensa-fix-PR-target-65416.patch renamed from package/gcc/7.3.0/0002-xtensa-fix-PR-target-65416.patch +0 -0
similarity index 100%
rename from package/gcc/7.3.0/0002-xtensa-fix-PR-target-65416.patch
rename to package/gcc/7.3.0/0003-xtensa-fix-PR-target-65416.patch
Signature · 1 line
2.18.0
#1 lore raw

PATCH 2/2 package/gcc: fix build of gcc-7.3.0 with glibc-2.28

---
 ...4-libsanitizer-Use-pre-computed-size.patch | 72 +++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 package/gcc/7.3.0/0004-libsanitizer-Use-pre-computed-size.patch
package/gcc/7.3.0/0004-libsanitizer-Use-pre-computed-size.patch new file +72 -0
new file mode 100644
index 0000000000..6e73331eae
@@ -0,0 +1,72 @@
+From 61f38c64c01a15560026115a157b7021ec67bd3b Mon Sep 17 00:00:00 2001
+From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 24 May 2018 20:21:54 +0000
+Subject: [PATCH] libsanitizer: Use pre-computed size of struct ustat for Linux
+
+Cherry-pick compiler-rt revision 333213:
+
+<sys/ustat.h> has been removed from glibc 2.28 by:
+
+commit cf2478d53ad7071e84c724a986b56fe17f4f4ca7
+Author: Adhemerval Zanella <[email protected]>
+Date:   Sun Mar 18 11:28:59 2018 +0800
+
+    Deprecate ustat syscall interface
+
+This patch uses pre-computed size of struct ustat for Linux.
+
+	PR sanitizer/85835
+	* sanitizer_common/sanitizer_platform_limits_posix.cc: Don't
+	include <sys/ustat.h> for Linux.
+	(SIZEOF_STRUCT_USTAT): New.
+	(struct_ustat_sz): Use SIZEOF_STRUCT_USTAT for Linux.
+
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch at 260688 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Downloaded from upstream commit
+https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=61f38c64c01a15560026115a157b7021ec67bd3b
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+---
+ libsanitizer/ChangeLog                                    |  8 ++++++++
+ .../sanitizer_common/sanitizer_platform_limits_posix.cc   | 15 +++++++++++++--
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 31a5e69..8017afd 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -154,7 +154,6 @@ typedef struct user_fpregs elf_fpregset_t;
+ # include <sys/procfs.h>
+ #endif
+ #include <sys/user.h>
+-#include <sys/ustat.h>
+ #include <linux/cyclades.h>
+ #include <linux/if_eql.h>
+ #include <linux/if_plip.h>
+@@ -247,7 +246,19 @@ namespace __sanitizer {
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+-  unsigned struct_ustat_sz = sizeof(struct ustat);
++  // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
++  // has been removed from glibc 2.28.
++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
++  || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
++  || defined(__x86_64__)
++#define SIZEOF_STRUCT_USTAT 32
++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
++  || defined(__powerpc__) || defined(__s390__)
++#define SIZEOF_STRUCT_USTAT 20
++#else
++#error Unknown size of struct ustat
++#endif
++  unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
+   unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
+   unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
+ #endif // SANITIZER_LINUX && !SANITIZER_ANDROID
+-- 
+2.9.3
+
Signature · 1 line
2.18.0
#2 lore raw

PATCH 2/2 package/gcc: fix build of gcc-7.3.0 with glibc-2.28

Hello Bernd,

Quoted 5 lines · Bernd Kuhls
---
 ...4-libsanitizer-Use-pre-computed-size.patch | 72 +++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 package/gcc/7.3.0/0004-libsanitizer-Use-pre-computed-size.patch

What about the older gcc versions we support ?

4.9.4
5.5.0
6.4.0
or1k-musl-5.4.0-20170218

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#3 lore raw

PATCH 2/2 package/gcc: fix build of gcc-7.3.0 with glibc-2.28

A message that is not in the archive (sent off-list or not yet received): [email protected]

#5 lore raw

PATCH 2/2 package/gcc: fix build of gcc-7.3.0 with

Hello,

Quoted 3 lines · Bernd Kuhls
Quoted 1 line

What about the older gcc versions we support ?

upstream has no patches for these versions:

Does this mean the problem doesn't exist, or just that the gcc developers didn't backport the patch ?

Could you do a test build of gcc 6.x and glibc 2.28 ? Or perhaps verify in the source code that the problem didn't exist back then ?

Quoted 3 lines
Quoted 1 line

or1k-musl-5.4.0-20170218

Could not find an upstream branch at gcc.gnu.org.

This is not an official upstream branch, but if the upstream 5.4.0 is affected by the issue, the patch should apply just as well to this branch.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#6 lore raw

PATCH 2/2 package/gcc: fix build of gcc-7.3.0 with

Hi Thomas,

Am Sun, 12 Aug 2018 21:04:19 +0200 schrieb Thomas Petazzoni:

Quoted 4 lines
Quoted 1 line

upstream has no patches for these versions:

Does this mean the problem doesn't exist, or just that the gcc developers didn't backport the patch ?

the latter.

Quoted 2 lines

Could you do a test build of gcc 6.x and glibc 2.28 ? Or perhaps verify in the source code that the problem didn't exist back then ?

done, all older gcc versions are affected as well, sent patches:

http://patchwork.ozlabs.org/project/buildroot/list/?series=60590

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

or1k-musl-5.4.0-20170218

Could not find an upstream branch at gcc.gnu.org.

This is not an official upstream branch, but if the upstream 5.4.0 is affected by the issue, the patch should apply just as well to this branch.

In buildroot or1k has no support for glibc, only for uclibc and musl. Therefore I did not patch this gcc version.

Regards, Bernd