@@ -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"
new file mode 100644
@@ -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
+
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