| 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 |
| |