diff mbox series

[01/11] binutils: backport a patch to address failures when time64.inc is in use

Message ID 20230426095036.2632847-1-alex@linutronix.de
State Accepted, archived
Commit e80a836be72d304aa2f47421882390263623b6fc
Headers show
Series [01/11] binutils: backport a patch to address failures when time64.inc is in use | expand

Commit Message

Alexander Kanavin April 26, 2023, 9:50 a.m. UTC
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 .../binutils/binutils-2.40.inc                |  1 +
 .../binutils/binutils/fix-time64.patch        | 94 +++++++++++++++++++
 2 files changed, 95 insertions(+)
 create mode 100644 meta/recipes-devtools/binutils/binutils/fix-time64.patch
diff mbox series

Patch

diff --git a/meta/recipes-devtools/binutils/binutils-2.40.inc b/meta/recipes-devtools/binutils/binutils-2.40.inc
index 93631ca3d7f..ad2c9f9da14 100644
--- a/meta/recipes-devtools/binutils/binutils-2.40.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.40.inc
@@ -35,5 +35,6 @@  SRC_URI = "\
      file://0014-configure-remove-dependencies-on-gmp-and-mpfr-when-g.patch \
      file://0015-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch \
      file://0016-CVE-2023-25586.patch \
+     file://fix-time64.patch \
 "
 S  = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/binutils/binutils/fix-time64.patch b/meta/recipes-devtools/binutils/binutils/fix-time64.patch
new file mode 100644
index 00000000000..0bfc977fd4e
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/fix-time64.patch
@@ -0,0 +1,94 @@ 
+From f6f19a39ecfe962cb8a05522c27f513308687a74 Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Thu, 16 Feb 2023 19:00:47 -0800
+Subject: [PATCH] gprofng: PR30036 Build failure on aarch64 w/ glibc: symbol
+ `pwrite64' is already defined
+
+gprofng/ChangeLog
+2023-02-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	PR gprofng/30036
+	* libcollector/iotrace.c: Define creat64 and pwrite64 only when
+	__USE_LARGEFILE64 and __USE_FILE_OFFSET64 are not defined.
+	* libcollector/mmaptrace.c: Likewise for mmap64.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f6f19a39ecfe962cb8a05522c27f513308687a74]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ gprofng/libcollector/iotrace.c   | 15 ++++++++-------
+ gprofng/libcollector/mmaptrace.c |  2 +-
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/gprofng/libcollector/iotrace.c b/gprofng/libcollector/iotrace.c
+index af90cc31f1a..d8439b02b3a 100644
+--- a/gprofng/libcollector/iotrace.c
++++ b/gprofng/libcollector/iotrace.c
+@@ -1441,7 +1441,7 @@ creat (const char *path, mode_t mode)
+ }
+ 
+ /*------------------------------------------------------------- creat64 */
+-#if WSIZE(32)
++#if WSIZE(32) && !defined(__USE_LARGEFILE64)
+ int
+ creat64 (const char *path, mode_t mode)
+ {
+@@ -2476,7 +2476,7 @@ __collector_pwrite_2_1 (int fildes, const void *buf, size_t nbyte, off_t offset)
+   return ret;
+ }
+ 
+-#else
++#endif
+ ssize_t
+ pwrite (int fildes, const void *buf, size_t nbyte, off_t offset)
+ {
+@@ -2497,11 +2497,10 @@ pwrite (int fildes, const void *buf, size_t nbyte, off_t offset)
+   POP_REENTRANCE (guard);
+   return ret;
+ }
+-#endif
+ 
+ /*------------------------------------------------------------- pwrite64 */
+-#if WSIZE(32)
+-#if !defined(__MUSL_LIBC) && ARCH(Intel)
++#if WSIZE(32) && ARCH(Intel)
++#if !defined(__MUSL_LIBC)
+ // map interposed symbol versions
+ 
+ SYMVER_ATTRIBUTE (__collector_pwrite64_2_2, pwrite64@GLIBC_2.2)
+@@ -2547,8 +2546,9 @@ __collector_pwrite64_2_1 (int fildes, const void *buf, size_t nbyte, off64_t off
+   POP_REENTRANCE (guard);
+   return ret;
+ }
++#endif
+ 
+-#else
++#if !defined(__USE_FILE_OFFSET64)
+ ssize_t
+ pwrite64 (int fildes, const void *buf, size_t nbyte, off64_t offset)
+ {
+@@ -2570,7 +2570,8 @@ pwrite64 (int fildes, const void *buf, size_t nbyte, off64_t offset)
+   return ret;
+ }
+ #endif
+-#endif /* SIZE(32) */
++
++#endif /* SIZE(32)  && ARCH(Intel) */
+ 
+ /*------------------------------------------------------------- fgets */
+ char*
+diff --git a/gprofng/libcollector/mmaptrace.c b/gprofng/libcollector/mmaptrace.c
+index 61613c21560..221b4e2d176 100644
+--- a/gprofng/libcollector/mmaptrace.c
++++ b/gprofng/libcollector/mmaptrace.c
+@@ -1494,7 +1494,7 @@ mmap (void *start, size_t length, int prot, int flags, int fd, off_t offset)
+ }
+ 
+ /*------------------------------------------------------------- mmap64 */
+-#if WSIZE(32)       /* mmap64 only defined for non-64-bit */
++#if WSIZE(32) && !defined(__USE_FILE_OFFSET64)
+ 
+ void *
+ mmap64 (void *start, size_t length, int prot, int flags, int fd, off64_t offset)
+-- 
+2.31.1
+