tools: elfutils: fix uio header inclusion
Fixes arm64 build failures by replacing <linux/uio.h> with POSIX <sys/uio.h> to avoid header redefinition conflicts. gnulib's fcntl.h ends up including glibc's fcntl.h and fcntl-linux.h which includes glibc's types/struct_iovec.h, thats where the redefinition happens. the lines that use <linux/uio.h> are antiquated and were never necessary. it can be traced back to the original 2014 change that added the file with aarch64 support in upstream commit 66637fa21044ac0058b25522f473669e73de328b it was never necessary to use the linux header over the glibc headers, as elfutils only needs the iovec struct and that struct was present since glibc 2.0 in the 1990s Signed-off-by: Paweł Owoc <frut3k7@gmail.com> Link: https://github.com/openwrt/openwrt/pull/24539 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
parent
70b3f992b8
commit
9452d96721
1 changed files with 44 additions and 0 deletions
44
tools/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
Normal file
44
tools/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
From 578f370c7e7a9f056aefa062b34590b0aa13bce5 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Tue, 15 Aug 2017 17:27:30 +0800
|
||||
Subject: [PATCH] Fix build on aarch64/musl
|
||||
|
||||
Errors
|
||||
|
||||
error: redefinition
|
||||
of 'struct iovec'
|
||||
struct iovec { void *iov_base; size_t iov_len; };
|
||||
^
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Rebase to 0.170
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
|
||||
---
|
||||
backends/aarch64_initreg.c | 2 +-
|
||||
backends/arm_initreg.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/backends/aarch64_initreg.c
|
||||
+++ b/backends/aarch64_initreg.c
|
||||
@@ -33,7 +33,7 @@
|
||||
#include "system.h"
|
||||
#include <assert.h>
|
||||
#if defined(__aarch64__) && defined(__linux__)
|
||||
-# include <linux/uio.h>
|
||||
+# include <sys/uio.h>
|
||||
# include <sys/user.h>
|
||||
# include <sys/ptrace.h>
|
||||
# include <asm/ptrace.h>
|
||||
--- a/backends/arm_initreg.c
|
||||
+++ b/backends/arm_initreg.c
|
||||
@@ -38,7 +38,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef __aarch64__
|
||||
-# include <linux/uio.h>
|
||||
+# include <sys/uio.h>
|
||||
# include <sys/user.h>
|
||||
# include <sys/ptrace.h>
|
||||
/* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */
|
||||
Loading…
Reference in a new issue