Message ID | 20180525110914.22348-1-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | scripts/update-linux-headers: Handle __aligned_u64 | expand |
diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh index 947dec2852..1fe54f8ab1 100755 --- a/scripts/update-linux-headers.sh +++ b/scripts/update-linux-headers.sh @@ -51,7 +51,8 @@ cp_portable() { fi header=$(basename "$f"); - sed -e 's/__u\([0-9][0-9]*\)/uint\1_t/g' \ + sed -e 's/__aligned_u64/__u64 __attribute__((aligned(8)))/g' \ + -e 's/__u\([0-9][0-9]*\)/uint\1_t/g' \ -e 's/u\([0-9][0-9]*\)/uint\1_t/g' \ -e 's/__s\([0-9][0-9]*\)/int\1_t/g' \ -e 's/__le\([0-9][0-9]*\)/uint\1_t/g' \
We'll currently replace any 'u64' with a 'uint64_t' including when it's embedded in an '__aligned_u64', creating a '__aligned_uint64_t' which doesn't exist. We need to instead expand out the kernel's definition of __aligned_u64: #define __aligned_u64 __u64 __attribute__((aligned(8))) before we convert the __u64 to uint64_t. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- Alex's "scripts/update-linux-headers: Update handling of __aligned_u64" patch also addresses this problem, but I think we need to take this approach, because the resulting header is supposed to be host-OS-portable. scripts/update-linux-headers.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.17.0