[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] linux-user: Replace __u64 with uint64_t

From: Richard Henderson
Subject: Re: [PATCH] linux-user: Replace __u64 with uint64_t
Date: Wed, 10 Nov 2021 16:12:57 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 11/10/21 10:25 AM, Richard Henderson wrote:
On 11/8/21 8:42 PM, Khem Raj wrote:
uint64_t is available in all userspaces via compiler include stdint.h
therefore use it instead of __u64 which is linux internal type, it fixes
build on some platforms eg. aarch64 systems using musl C library

Signed-off-by: Khem Raj <raj.khem@gmail.com>
  linux-user/host/aarch64/hostdep.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux-user/host/aarch64/hostdep.h 
index a8d41a21ad..34d934f665 100644
--- a/linux-user/host/aarch64/hostdep.h
+++ b/linux-user/host/aarch64/hostdep.h
@@ -25,7 +25,7 @@ extern char safe_syscall_end[];
  static inline void rewind_if_in_safe_syscall(void *puc)
      ucontext_t *uc = puc;
-    __u64 *pcreg = &uc->uc_mcontext.pc;
+    uint64_t *pcreg = &uc->uc_mcontext.pc;
      if (*pcreg > (uintptr_t)safe_syscall_start
          && *pcreg < (uintptr_t)safe_syscall_end) {

Queued to tcg-next, since that's where the original patch came from.

Dequeued.  We need something more, because on debian we now get:

../linux-user/host/aarch64/hostdep.h:28:23: error: initialization of 'uint64_t *' {aka 'long unsigned int *'} from incompatible pointer type 'long long unsigned int *' [-Werror=incompatible-pointer-types]
     uint64_t *pcreg = &uc->uc_mcontext.pc;
cc1: all warnings being treated as errors

Perhaps we need to use __typeof() to get the correct pointer type? Oh for c++11 auto declarations... :-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]