diff mbox series

[uclibc-ng-devel] Fix uClibc build for nds32 with gcc-14.

Message ID 20240517092807.295586-1-dm.chestnykh@gmail.com
State Accepted
Headers show
Series [uclibc-ng-devel] Fix uClibc build for nds32 with gcc-14. | expand

Commit Message

Dmitry Chestnykh May 17, 2024, 9:28 a.m. UTC
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
---
 libc/sysdeps/linux/common/fstat64.c      | 2 +-
 libc/sysdeps/linux/nds32/jmpbuf-unwind.h | 2 +-
 libpthread/nptl/sysdeps/nds32/dl-tls.h   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Comments

Waldemar Brodkorb May 18, 2024, 3:12 a.m. UTC | #1
Hi Dmitry,
Dmitry Chestnykh wrote,

> Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
> ---
>  libc/sysdeps/linux/common/fstat64.c      | 2 +-
>  libc/sysdeps/linux/nds32/jmpbuf-unwind.h | 2 +-
>  libpthread/nptl/sysdeps/nds32/dl-tls.h   | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/libc/sysdeps/linux/common/fstat64.c b/libc/sysdeps/linux/common/fstat64.c
> index 359c22af6..ca25bde5e 100644
> --- a/libc/sysdeps/linux/common/fstat64.c
> +++ b/libc/sysdeps/linux/common/fstat64.c
> @@ -30,7 +30,7 @@ int fstat64(int fd, struct stat64 *buf)
>  	return result;
>  
>  #else
> -	return __syscall_fstat64(fd, buf);
> +	return __syscall_fstat64(fd, (struct kernel_stat64 *)buf);
>  #endif
>  }
>  libc_hidden_def(fstat64)

I dropped this change, as nds32 port is back to deprecated syscalls
with kernel 3.4.x. The newer kernel 5.10.x/5.15.x do not work well
on my AG101p board.

> diff --git a/libc/sysdeps/linux/nds32/jmpbuf-unwind.h b/libc/sysdeps/linux/nds32/jmpbuf-unwind.h
> index 8499e99b4..5b85f4d23 100644
> --- a/libc/sysdeps/linux/nds32/jmpbuf-unwind.h
> +++ b/libc/sysdeps/linux/nds32/jmpbuf-unwind.h
> @@ -20,7 +20,7 @@
>  static inline uintptr_t __attribute__ ((unused))
>  _jmpbuf_sp (__jmp_buf regs)
>  {
> -  uintptr_t sp = &(regs)[0].__regs[__JMP_BUF_SP];
> +  uintptr_t sp = (uintptr_t) &(regs)[0].__regs[__JMP_BUF_SP];
>    return sp;
>  }
>  
> diff --git a/libpthread/nptl/sysdeps/nds32/dl-tls.h b/libpthread/nptl/sysdeps/nds32/dl-tls.h
> index 3b11e7f42..f0107cacb 100644
> --- a/libpthread/nptl/sysdeps/nds32/dl-tls.h
> +++ b/libpthread/nptl/sysdeps/nds32/dl-tls.h
> @@ -50,7 +50,7 @@ struct tlsdesc_dynamic_arg
>  extern void *__tls_get_addr (tls_index *ti);
>  
>  extern ptrdiff_t attribute_hidden
> -  _dl_tlsdesc_return(struct tlsdesc_dynamic_arg *);
> +  _dl_tlsdesc_return(struct tlsdesc *);
>  
>  extern void *_dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset);
>  extern ptrdiff_t attribute_hidden

The other changes where tested with old gcc 4.9.x and on my target
board. 

Thanks for providing the fix.

committed and pushed.
 best regards
  Waldemar
diff mbox series

Patch

diff --git a/libc/sysdeps/linux/common/fstat64.c b/libc/sysdeps/linux/common/fstat64.c
index 359c22af6..ca25bde5e 100644
--- a/libc/sysdeps/linux/common/fstat64.c
+++ b/libc/sysdeps/linux/common/fstat64.c
@@ -30,7 +30,7 @@  int fstat64(int fd, struct stat64 *buf)
 	return result;
 
 #else
-	return __syscall_fstat64(fd, buf);
+	return __syscall_fstat64(fd, (struct kernel_stat64 *)buf);
 #endif
 }
 libc_hidden_def(fstat64)
diff --git a/libc/sysdeps/linux/nds32/jmpbuf-unwind.h b/libc/sysdeps/linux/nds32/jmpbuf-unwind.h
index 8499e99b4..5b85f4d23 100644
--- a/libc/sysdeps/linux/nds32/jmpbuf-unwind.h
+++ b/libc/sysdeps/linux/nds32/jmpbuf-unwind.h
@@ -20,7 +20,7 @@ 
 static inline uintptr_t __attribute__ ((unused))
 _jmpbuf_sp (__jmp_buf regs)
 {
-  uintptr_t sp = &(regs)[0].__regs[__JMP_BUF_SP];
+  uintptr_t sp = (uintptr_t) &(regs)[0].__regs[__JMP_BUF_SP];
   return sp;
 }
 
diff --git a/libpthread/nptl/sysdeps/nds32/dl-tls.h b/libpthread/nptl/sysdeps/nds32/dl-tls.h
index 3b11e7f42..f0107cacb 100644
--- a/libpthread/nptl/sysdeps/nds32/dl-tls.h
+++ b/libpthread/nptl/sysdeps/nds32/dl-tls.h
@@ -50,7 +50,7 @@  struct tlsdesc_dynamic_arg
 extern void *__tls_get_addr (tls_index *ti);
 
 extern ptrdiff_t attribute_hidden
-  _dl_tlsdesc_return(struct tlsdesc_dynamic_arg *);
+  _dl_tlsdesc_return(struct tlsdesc *);
 
 extern void *_dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset);
 extern ptrdiff_t attribute_hidden