public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 2/6] c: Turn int-conversion warnings into permerrors
@ 2023-12-02  0:33 钟居哲
  2023-12-02  1:10 ` Patrick O'Neill
  2023-12-02  1:13 ` Sam James
  0 siblings, 2 replies; 10+ messages in thread
From: 钟居哲 @ 2023-12-02  0:33 UTC (permalink / raw)
  To: gcc-patches; +Cc: thomas, fweimer

[-- Attachment #1: Type: text/plain, Size: 22009 bytes --]

Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:

/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_utime.c:5:39: warning: 'struct utimbuf' declared inside parameter list will not be visible outside of this definition or declaration
    5 | _utime(const char *path, const struct utimbuf *times)
      |                                       ^~~~~~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c: In function '_faccessat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c:7:50: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_faccessat, 4, dirfd, file, mode, flags, 0, 0);
      |                                                  ^~~~
      |                                                  |
      |                                                  const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
make[5]: *** [Makefile:3315: riscv/riscv_libgloss_a-sys_access.o] Error 1
make[5]: *** Waiting for unfinished jobs....
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c: In function '_open':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c:8:38: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_open, 3, name, flags, mode, 0, 0, 0);
      |                                      ^~~~
      |                                      |
      |                                      const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c: In function '_openat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c:7:47: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_openat, 4, dirfd, name, flags, mode, 0, 0);
      |                                               ^~~~
      |                                               |
      |                                               const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
make[5]: *** [Makefile:3427: riscv/riscv_libgloss_a-sys_faccessat.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c: In function '_link':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:7:38: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_link, 2, old_name, new_name, 0, 0, 0, 0);
      |                                      ^~~~~~~~
      |                                      |
      |                                      const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:7:48: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_link, 2, old_name, new_name, 0, 0, 0, 0);
      |                                                ^~~~~~~~
      |                                                |
      |                                                const char *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c: In function '_fstat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c:12:47: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   12 |   int rv = syscall_errno (SYS_fstat, 2, file, &kst, 0, 0, 0, 0);
      |                                               ^~~~
      |                                               |
      |                                               struct kernel_stat *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c: In function '_fstatat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:11:50: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_fstatat, 4, dirfd, file, &kst, flags, 0, 0);
      |                                                  ^~~~
      |                                                  |
      |                                                  const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:11:56: error: passing argument 5 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_fstatat, 4, dirfd, file, &kst, flags, 0, 0);
      |                                                        ^~~~
      |                                                        |
      |                                                        struct kernel_stat *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c: In function '_unlink':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:58: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                                     ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c:8:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_unlink, 1, name, 0, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c: In function '_access':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c: In function '_read':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c:8:44: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_read, 3, file, ptr, len, 0, 0, 0);
      |                                            ^~~
      |                                            |
      |                                            void *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'void *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
make[5]: *** [Makefile:3609: riscv/riscv_libgloss_a-sys_open.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c: In function '_lstat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:10:41: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   10 |   int rv = syscall_errno (SYS_lstat, 2, file, &kst, 0, 0, 0, 0);
      |                                         ^~~~
      |                                         |
      |                                         const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:10:47: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   10 |   int rv = syscall_errno (SYS_lstat, 2, file, &kst, 0, 0, 0, 0);
      |                                               ^~~~
      |                                               |
      |                                               struct kernel_stat *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c: In function '_write':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c:9:45: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    9 |   return syscall_errno (SYS_write, 3, file, ptr, len, 0, 0, 0);
      |                                             ^~~
      |                                             |
      |                                             const void *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const void *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c: In function '_stat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:11:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_stat, 2, file, &kst, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c: In function '_gettimeofday':
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:11:46: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_stat, 2, file, &kst, 0, 0, 0, 0);
      |                                              ^~~~
      |                                              |
      |                                              struct kernel_stat *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c:29:46: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   29 |   return syscall_errno (SYS_gettimeofday, 1, tp, 0, 0, 0, 0, 0);
      |                                              ^~
      |                                              |
      |                                              struct timeval *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c:4:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'struct timeval *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
make[5]: *** [Makefile:3623: riscv/riscv_libgloss_a-sys_openat.o] Error 1
make[5]: *** [Makefile:3567: riscv/riscv_libgloss_a-sys_link.o] Error 1
make[5]: *** [Makefile:3455: riscv/riscv_libgloss_a-sys_fstat.o] Error 1
make[5]: *** [Makefile:3469: riscv/riscv_libgloss_a-sys_fstatat.o] Error 1
make[5]: *** [Makefile:3707: riscv/riscv_libgloss_a-sys_unlink.o] Error 1
make[5]: *** [Makefile:4127: riscv/riscv_libsim_a-sys_access.o] Error 1
make[5]: *** [Makefile:3637: riscv/riscv_libgloss_a-sys_read.o] Error 1
make[5]: *** [Makefile:3595: riscv/riscv_libgloss_a-sys_lstat.o] Error 1
make[5]: *** [Makefile:3749: riscv/riscv_libgloss_a-sys_write.o] Error 1
make[5]: *** [Makefile:3665: riscv/riscv_libgloss_a-sys_stat.o] Error 1
make[5]: *** [Makefile:3525: riscv/riscv_libgloss_a-sys_gettimeofday.o] Error 1




juzhe.zhong@rivai.ai

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  0:33 [PATCH 2/6] c: Turn int-conversion warnings into permerrors 钟居哲
@ 2023-12-02  1:10 ` Patrick O'Neill
  2023-12-02  1:53   ` 钟居哲
  2023-12-02  1:13 ` Sam James
  1 sibling, 1 reply; 10+ messages in thread
From: Patrick O'Neill @ 2023-12-02  1:10 UTC (permalink / raw)
  To: 钟居哲, gcc-patches; +Cc: thomas, fweimer

[-- Attachment #1: Type: text/plain, Size: 24331 bytes --]

Hi Juzhe,

I can confirm the failure on Newlib.
I'm not seeing any issues on glibc 2.37.
I haven't tried to build musl.

Since this patch promotes warnings to errors breakages were probably 
expected.
The fix may require changes to newlib to remove the errors.
I've hacked together a series of patches on top of newlib 4.3.0 that 
resolves these issues (but I think they'd need more work to be 
upstream-able):
https://github.com/patrick-rivos/riscv-gnu-toolchain/tree/35d8e8c486bd2f6e3e2e673db8d2b979309a6de4/fixups/newlib

@Thomas @Florian am I right in assuming that breakages were expected/the 
fix should come from fixing the warnings?

Thanks,
Patrick

On 12/1/23 16:33, 钟居哲 wrote:
> Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:
>
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
>       |                                        ^~~~
>       |                                        |
>       |                                        const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_utime.c:5:39: 
> warning: 'struct utimbuf' declared inside parameter list will not be 
> visible outside of this definition or declaration
>     5 | _utime(const char *path, const struct utimbuf *times)
>       |                                       ^~~~~~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c: 
> In function '_faccessat':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c:7:50: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     7 |   return syscall_errno (SYS_faccessat, 4, dirfd, file, mode, 
> flags, 0, 0);
>       | ^~~~
>       |                                                  |
>       | const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> make[5]: *** [Makefile:3315: riscv/riscv_libgloss_a-sys_access.o] Error 1
> make[5]: *** Waiting for unfinished jobs....
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c: 
> In function '_open':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c:8:38: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     8 |   return syscall_errno (SYS_open, 3, name, flags, mode, 0, 0, 0);
>       |                                      ^~~~
>       |                                      |
>       |                                      const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c: 
> In function '_openat':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c:7:47: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     7 |   return syscall_errno (SYS_openat, 4, dirfd, name, flags, 
> mode, 0, 0);
>       |                                               ^~~~
>       |                                               |
>       |                                               const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> make[5]: *** [Makefile:3427: riscv/riscv_libgloss_a-sys_faccessat.o] 
> Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c: 
> In function '_link':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:7:38: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     7 |   return syscall_errno (SYS_link, 2, old_name, new_name, 0, 0, 
> 0, 0);
>       |                                      ^~~~~~~~
>       |                                      |
>       |                                      const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:7:48: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     7 |   return syscall_errno (SYS_link, 2, old_name, new_name, 0, 0, 
> 0, 0);
>       | ^~~~~~~~
>       |                                                |
>       | const char *
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c: 
> In function '_fstat':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c:12:47: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    12 |   int rv = syscall_errno (SYS_fstat, 2, file, &kst, 0, 0, 0, 0);
>       |                                               ^~~~
>       |                                               |
>       |  struct kernel_stat *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c:3:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'struct kernel_stat *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c: 
> In function '_fstatat':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:11:50: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    11 |   int rv = syscall_errno (SYS_fstatat, 4, dirfd, file, &kst, 
> flags, 0, 0);
>       | ^~~~
>       |                                                  |
>       | const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:3:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:11:56: 
> error: passing argument 5 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    11 |   int rv = syscall_errno (SYS_fstatat, 4, dirfd, file, &kst, 
> flags, 0, 0);
>       |     ^~~~
>       |     |
>       |     struct kernel_stat *
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c: 
> In function '_unlink':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:58: 
> note: expected 'long int' but argument is of type 'struct kernel_stat *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |  ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c:8:40: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     8 |   return syscall_errno (SYS_unlink, 1, name, 0, 0, 0, 0, 0);
>       |                                        ^~~~
>       |                                        |
>       |                                        const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c: 
> In function '_access':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
>       |                                        ^~~~
>       |                                        |
>       |                                        const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:2:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c: 
> In function '_read':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c:8:44: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     8 |   return syscall_errno (SYS_read, 3, file, ptr, len, 0, 0, 0);
>       |                                            ^~~
>       |                                            |
>       |                                            void *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c:3:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'void *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> make[5]: *** [Makefile:3609: riscv/riscv_libgloss_a-sys_open.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c: 
> In function '_lstat':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:10:41: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    10 |   int rv = syscall_errno (SYS_lstat, 2, file, &kst, 0, 0, 0, 0);
>       |                                         ^~~~
>       |                                         |
>       |                                         const char *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:3:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:10:47: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    10 |   int rv = syscall_errno (SYS_lstat, 2, file, &kst, 0, 0, 0, 0);
>       |                                               ^~~~
>       |                                               |
>       |  struct kernel_stat *
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'struct kernel_stat *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c: 
> In function '_write':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c:9:45: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>     9 |   return syscall_errno (SYS_write, 3, file, ptr, len, 0, 0, 0);
>       |                                             ^~~
>       |                                             |
>       |                                             const void *
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c:3:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'const void *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c: 
> In function '_stat':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:11:40: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    11 |   int rv = syscall_errno (SYS_stat, 2, file, &kst, 0, 0, 0, 0);
>       |                                        ^~~~
>       |                                        |
>       |                                        const char *
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c: 
> In function '_gettimeofday':
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:3:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'const char *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:11:46: 
> error: passing argument 4 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    11 |   int rv = syscall_errno (SYS_stat, 2, file, &kst, 0, 0, 0, 0);
>       |                                              ^~~~
>       |                                              |
>       |                                              struct kernel_stat *
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c:29:46: 
> error: passing argument 3 of 'syscall_errno' makes integer from 
> pointer without a cast [-Wint-conversion]
>    29 |   return syscall_errno (SYS_gettimeofday, 1, tp, 0, 0, 0, 0, 0);
>       |                                              ^~
>       |                                              |
>       |                                              struct timeval *
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: 
> note: expected 'long int' but argument is of type 'struct kernel_stat *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                           ~~~~~^~~
> In file included from 
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c:4:
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: 
> note: expected 'long int' but argument is of type 'struct timeval *'
>    66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, 
> long _a3, long _a4, long _a5)
>       |                                 ~~~~~^~~
> make[5]: *** [Makefile:3623: riscv/riscv_libgloss_a-sys_openat.o] Error 1
> make[5]: *** [Makefile:3567: riscv/riscv_libgloss_a-sys_link.o] Error 1
> make[5]: *** [Makefile:3455: riscv/riscv_libgloss_a-sys_fstat.o] Error 1
> make[5]: *** [Makefile:3469: riscv/riscv_libgloss_a-sys_fstatat.o] Error 1
> make[5]: *** [Makefile:3707: riscv/riscv_libgloss_a-sys_unlink.o] Error 1
> make[5]: *** [Makefile:4127: riscv/riscv_libsim_a-sys_access.o] Error 1
> make[5]: *** [Makefile:3637: riscv/riscv_libgloss_a-sys_read.o] Error 1
> make[5]: *** [Makefile:3595: riscv/riscv_libgloss_a-sys_lstat.o] Error 1
> make[5]: *** [Makefile:3749: riscv/riscv_libgloss_a-sys_write.o] Error 1
> make[5]: *** [Makefile:3665: riscv/riscv_libgloss_a-sys_stat.o] Error 1
> make[5]: *** [Makefile:3525: 
> riscv/riscv_libgloss_a-sys_gettimeofday.o] Error 1
>
>
> ------------------------------------------------------------------------
> juzhe.zhong@rivai.ai

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  0:33 [PATCH 2/6] c: Turn int-conversion warnings into permerrors 钟居哲
  2023-12-02  1:10 ` Patrick O'Neill
@ 2023-12-02  1:13 ` Sam James
  2023-12-02  3:40   ` Jeff Law
  1 sibling, 1 reply; 10+ messages in thread
From: Sam James @ 2023-12-02  1:13 UTC (permalink / raw)
  To: 钟居哲; +Cc: thomas, fweimer, gcc-patches


钟居哲 <juzhe.zhong@rivai.ai> writes:

> Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:
>
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40:
> error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
>     8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
>       |                                        ^~~~
>       |                                        |
>       |                                        const char *

This looks like an issue in newlib. We expect broken code to be broken
by the recent changes. Can you investigate it on the newlib side?

Thanks.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  1:10 ` Patrick O'Neill
@ 2023-12-02  1:53   ` 钟居哲
  2023-12-02  3:25     ` Patrick O'Neill
  0 siblings, 1 reply; 10+ messages in thread
From: 钟居哲 @ 2023-12-02  1:53 UTC (permalink / raw)
  To: patrick, gcc-patches; +Cc: thomas, fweimer

[-- Attachment #1: Type: text/plain, Size: 44776 bytes --]

No. GLIBC 2.37 also failed:

make[4]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib/riscv64-unknown-elf/newlib'
  CC       libm/complex/libm_a-casinhl.o
make[3]: *** [Makefile:5283: all] Error 2
make[3]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib/riscv64-unknown-elf/newlib'
make[2]: *** [Makefile:8492: all-target-newlib] Error 2
make[2]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib'
make[1]: *** [Makefile:879: all] Error 2
make[1]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib'
make: *** [Makefile:624: stamps/build-newlib] Error 2
make: *** Waiting for unfinished jobs....
  CC       libm/complex/libm_a-csinhl.o
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c: In function 'ccoshl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:13: error: implicit declaration of function 'coshl'; did you mean 'coshf'? [-Wimplicit-function-declaration]
   43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
      |             ^~~~~
      |             coshf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:24: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
      |                        ^~~~
      |                        cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/clogl.c: In function 'clogl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:35: error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? [-Wimplicit-function-declaration]
   43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
      |                                   ^~~~~
      |                                   sinhf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/clogl.c:42:13: error: implicit declaration of function 'logl'; did you mean 'logf'? [-Wimplicit-function-declaration]
   42 |         p = logl(rr);
      |             ^~~~
      |             logf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:46: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
      |                                              ^~~~
      |                                              sinf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/clogl.c:43:14: error: implicit declaration of function 'atan2l'; did you mean 'atan2f'? [-Wimplicit-function-declaration]
   43 |         rr = atan2l(cimagl(z), creall(z));
      |              ^~~~~~
      |              atan2f
  CC       libm/complex/libm_a-csinl.o
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c: In function 'cexpl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c:43:13: error: implicit declaration of function 'expl'; did you mean 'expf'? [-Wimplicit-function-declaration]
   43 |         r = expl(x);
      |             ^~~~
      |             expf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c:44:17: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   44 |         w = r * cosl(y) + r * sinl(y) * I;
      |                 ^~~~
      |                 cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c:44:31: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   44 |         w = r * cosl(y) + r * sinl(y) * I;
      |                               ^~~~
      |                               sinf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c: In function '_cchshl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:43:13: error: implicit declaration of function 'fabsl'; did you mean 'fabsf'? [-Wimplicit-function-declaration]
   43 |         if (fabsl(x) <= 0.5L) {
      |             ^~~~~
      |             fabsf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cargl.c: In function 'cargl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cargl.c:16:17: error: implicit declaration of function 'atan2l'; did you mean 'atan2f'? [-Wimplicit-function-declaration]
   16 |          return atan2l (cimagl (z), creall (z));
      |                 ^~~~~~
      |                 atan2f
  CC       libm/complex/libm_a-catanl.o
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:44:22: error: implicit declaration of function 'coshl'; did you mean 'coshf'? [-Wimplicit-function-declaration]
   44 |                 *c = coshl(x);
      |                      ^~~~~
      |                      coshf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:45:22: error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? [-Wimplicit-function-declaration]
   45 |                 *s = sinhl(x);
      |                      ^~~~~
      |                      sinhf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c: In function 'csqrtl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:80:40: error: implicit declaration of function 'fabsl'; did you mean 'fabsf'? [-Wimplicit-function-declaration]
   80 |                         return (cpackl(fabsl(b - b), copysignl(a, b)));
      |                                        ^~~~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:50:24: note: in definition of macro 'cpackl'
   50 | #define cpackl(r, i) ((r) + (i) * I)
      |                        ^
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:47:21: error: implicit declaration of function 'expl'; did you mean 'expf'? [-Wimplicit-function-declaration]
   47 |                 e = expl(x);
      |                     ^~~~
      |                     expf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:80:54: error: implicit declaration of function 'copysignl'; did you mean 'copysignf'? [-Wimplicit-function-declaration]
   80 |                         return (cpackl(fabsl(b - b), copysignl(a, b)));
      |                                                      ^~~~~~~~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:50:30: note: in definition of macro 'cpackl'
   50 | #define cpackl(r, i) ((r) + (i) * I)
      |                              ^
  CC       libm/fenv/libm_a-feclearexcept.o
  CC       libm/fenv/libm_a-fe_dfl_env.o
  CC       libm/fenv/libm_a-fegetenv.o
  CC       libm/fenv/libm_a-fegetexceptflag.o
make[4]: *** [Makefile:43116: libm/complex/libm_a-ccoshl.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:43144: libm/complex/libm_a-clogl.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cprojl.c: In function 'cprojl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cprojl.c:60:32: error: implicit declaration of function 'copysignl'; did you mean 'copysignf'? [-Wimplicit-function-declaration]
   60 |                 IMAG_PART(w) = copysignl(0.0L, cimagl(z));
      |                                ^~~~~~~~~
      |                                copysignf
make[4]: *** [Makefile:43200: libm/complex/libm_a-cexpl.o] Error 1
make[4]: *** [Makefile:43172: libm/complex/libm_a-cargl.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccosl.c: In function 'ccosl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccosl.c:43:13: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   43 |         w = cosl(creall(z)) * ch - (sinl(creall(z)) * sh) * I;
      |             ^~~~
      |             cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccosl.c:43:37: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   43 |         w = cosl(creall(z)) * ch - (sinl(creall(z)) * sh) * I;
      |                                     ^~~~
      |                                     sinf
make[4]: *** [Makefile:43214: libm/complex/libm_a-cephes_subrl.o] Error 1
make[4]: *** [Makefile:43158: libm/complex/libm_a-csqrtl.o] Error 1
make[4]: *** [Makefile:43186: libm/complex/libm_a-cprojl.o] Error 1
make[4]: *** [Makefile:43242: libm/complex/libm_a-ccosl.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c: In function 'cpowl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:48:13: error: implicit declaration of function 'powl'; did you mean 'powf'? [-Wimplicit-function-declaration]
   48 |         r = powl(absa, x);
      |             ^~~~
      |             powf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c: In function 'ctanhl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:43:13: error: implicit declaration of function 'coshl'; did you mean 'coshf'? [-Wimplicit-function-declaration]
   43 |         d = coshl(2.0L * x) + cosl(2.0L * y);
      |             ^~~~~
      |             coshf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:51:25: error: implicit declaration of function 'expl'; did you mean 'expf'? [-Wimplicit-function-declaration]
   51 |                 r = r * expl(-y * arga);
      |                         ^~~~
      |                         expf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:43:31: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   43 |         d = coshl(2.0L * x) + cosl(2.0L * y);
      |                               ^~~~
      |                               cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:52:37: error: implicit declaration of function 'logl'; did you mean 'logf'? [-Wimplicit-function-declaration]
   52 |                 theta = theta + y * logl(absa);
      |                                     ^~~~
      |                                     logf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:44:13: error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? [-Wimplicit-function-declaration]
   44 |         w = sinhl(2.0L * x) / d  +  (sinl(2.0L * y) / d) * I;
      |             ^~~~~
      |             sinhf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:54:17: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   54 |         w = r * cosl(theta) + (r * sinl(theta)) * I;
      |                 ^~~~
      |                 cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:44:38: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   44 |         w = sinhl(2.0L * x) / d  +  (sinl(2.0L * y) / d) * I;
      |                                      ^~~~
      |                                      sinf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:54:36: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   54 |         w = r * cosl(theta) + (r * sinl(theta)) * I;
      |                                    ^~~~
      |                                    sinf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c: In function 'ctanl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:43:13: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   43 |         d = cosl(2.0L * creall(z)) + coshl(2.0L * cimagl(z));
      |             ^~~~
      |             cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:43:38: error: implicit declaration of function 'coshl'; did you mean 'coshf'? [-Wimplicit-function-declaration]
   43 |         d = cosl(2.0L * creall(z)) + coshl(2.0L * cimagl(z));
      |                                      ^~~~~
      |                                      coshf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:45:13: error: implicit declaration of function 'fabsl'; did you mean 'fabsf'? [-Wimplicit-function-declaration]
   45 |         if (fabsl(d) < 0.25L)
      |             ^~~~~
      |             fabsf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:54:13: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   54 |         w = sinl(2.0L * creall(z)) / d + (sinhl(2.0L * cimagl(z)) / d) * I;
      |             ^~~~
      |             sinf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:54:43: error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? [-Wimplicit-function-declaration]
   54 |         w = sinl(2.0L * creall(z)) / d + (sinhl(2.0L * cimagl(z)) / d) * I;
      |                                           ^~~~~
      |                                           sinhf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c: In function 'csinhl':
make[4]: *** [Makefile:43312: libm/complex/libm_a-ctanhl.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:13: error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? [-Wimplicit-function-declaration]
   43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
      |             ^~~~~
      |             sinhf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:24: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
      |                        ^~~~
      |                        cosf
make[4]: *** [Makefile:43298: libm/complex/libm_a-cpowl.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:35: error: implicit declaration of function 'coshl'; did you mean 'coshf'? [-Wimplicit-function-declaration]
   43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
      |                                   ^~~~~
      |                                   coshf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:46: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
      |                                              ^~~~
      |                                              sinf
make[4]: *** [Makefile:43326: libm/complex/libm_a-ctanl.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinl.c: In function 'csinl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinl.c:43:13: error: implicit declaration of function 'sinl'; did you mean 'sinf'? [-Wimplicit-function-declaration]
   43 |         w = sinl(creall(z)) * ch + (cosl(creall(z)) * sh) * I;
      |             ^~~~
      |             sinf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinl.c:43:37: error: implicit declaration of function 'cosl'; did you mean 'cosf'? [-Wimplicit-function-declaration]
   43 |         w = sinl(creall(z)) * ch + (cosl(creall(z)) * sh) * I;
      |                                     ^~~~
      |                                     cosf
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/catanl.c: In function 'catanl':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/catanl.c:55:20: error: implicit declaration of function 'atan2l'; did you mean 'atan2f'? [-Wimplicit-function-declaration]
   55 |         t = 0.5L * atan2l(2.0L * x, a);
      |                    ^~~~~~
      |                    atan2f
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/catanl.c:65:26: error: implicit declaration of function 'logl'; did you mean 'logf'? [-Wimplicit-function-declaration]
   65 |         w = w + (0.25L * logl(a)) * I;
      |                          ^~~~
      |                          logf
make[4]: *** [Makefile:43354: libm/complex/libm_a-csinhl.o] Error 1
make[4]: *** [Makefile:43368: libm/complex/libm_a-csinl.o] Error 1
make[4]: *** [Makefile:43382: libm/complex/libm_a-catanl.o] Error 1
make[4]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano/riscv64-unknown-elf/newlib'
make[3]: *** [Makefile:5283: all] Error 2
make[3]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano/riscv64-unknown-elf/newlib'
make[2]: *** [Makefile:8492: all-target-newlib] Error 2
make[2]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano'
make[1]: *** [Makefile:879: all] Error 2
make[1]: Leaving directory '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano'
make: *** [Makefile:641: stamps/build-newlib-nano] Error 2

Confirm newlib/glibc/musl definitely can not be compiled by trunk GCC.



juzhe.zhong@rivai.ai
 
From: Patrick O'Neill
Date: 2023-12-02 09:10
To: 钟居哲; gcc-patches
CC: thomas; fweimer
Subject: Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
Hi Juzhe,

I can confirm the failure on Newlib.
I'm not seeing any issues on glibc 2.37.
I haven't tried to build musl.

Since this patch promotes warnings to errors breakages were probably expected.
The fix may require changes to newlib to remove the errors.
I've hacked together a series of patches on top of newlib 4.3.0 that resolves these issues (but I think they'd need more work to be upstream-able):
https://github.com/patrick-rivos/riscv-gnu-toolchain/tree/35d8e8c486bd2f6e3e2e673db8d2b979309a6de4/fixups/newlib

@Thomas @Florian am I right in assuming that breakages were expected/the fix should come from fixing the warnings?

Thanks,
Patrick
On 12/1/23 16:33, 钟居哲 wrote:
Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:

/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_utime.c:5:39: warning: 'struct utimbuf' declared inside parameter list will not be visible outside of this definition or declaration
    5 | _utime(const char *path, const struct utimbuf *times)
      |                                       ^~~~~~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c: In function '_faccessat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c:7:50: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_faccessat, 4, dirfd, file, mode, flags, 0, 0);
      |                                                  ^~~~
      |                                                  |
      |                                                  const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_faccessat.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
make[5]: *** [Makefile:3315: riscv/riscv_libgloss_a-sys_access.o] Error 1
make[5]: *** Waiting for unfinished jobs....
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c: In function '_open':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c:8:38: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_open, 3, name, flags, mode, 0, 0, 0);
      |                                      ^~~~
      |                                      |
      |                                      const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_open.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c: In function '_openat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c:7:47: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_openat, 4, dirfd, name, flags, mode, 0, 0);
      |                                               ^~~~
      |                                               |
      |                                               const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_openat.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
make[5]: *** [Makefile:3427: riscv/riscv_libgloss_a-sys_faccessat.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c: In function '_link':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:7:38: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_link, 2, old_name, new_name, 0, 0, 0, 0);
      |                                      ^~~~~~~~
      |                                      |
      |                                      const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_link.c:7:48: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    7 |   return syscall_errno (SYS_link, 2, old_name, new_name, 0, 0, 0, 0);
      |                                                ^~~~~~~~
      |                                                |
      |                                                const char *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c: In function '_fstat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c:12:47: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   12 |   int rv = syscall_errno (SYS_fstat, 2, file, &kst, 0, 0, 0, 0);
      |                                               ^~~~
      |                                               |
      |                                               struct kernel_stat *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c: In function '_fstatat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:11:50: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_fstatat, 4, dirfd, file, &kst, flags, 0, 0);
      |                                                  ^~~~
      |                                                  |
      |                                                  const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_fstatat.c:11:56: error: passing argument 5 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_fstatat, 4, dirfd, file, &kst, flags, 0, 0);
      |                                                        ^~~~
      |                                                        |
      |                                                        struct kernel_stat *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c: In function '_unlink':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:58: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                                     ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c:8:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_unlink, 1, name, 0, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_unlink.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c: In function '_access':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:2:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c: In function '_read':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c:8:44: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    8 |   return syscall_errno (SYS_read, 3, file, ptr, len, 0, 0, 0);
      |                                            ^~~
      |                                            |
      |                                            void *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_read.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'void *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
make[5]: *** [Makefile:3609: riscv/riscv_libgloss_a-sys_open.o] Error 1
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c: In function '_lstat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:10:41: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   10 |   int rv = syscall_errno (SYS_lstat, 2, file, &kst, 0, 0, 0, 0);
      |                                         ^~~~
      |                                         |
      |                                         const char *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_lstat.c:10:47: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   10 |   int rv = syscall_errno (SYS_lstat, 2, file, &kst, 0, 0, 0, 0);
      |                                               ^~~~
      |                                               |
      |                                               struct kernel_stat *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c: In function '_write':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c:9:45: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
    9 |   return syscall_errno (SYS_write, 3, file, ptr, len, 0, 0, 0);
      |                                             ^~~
      |                                             |
      |                                             const void *
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_write.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'const void *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c: In function '_stat':
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:11:40: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_stat, 2, file, &kst, 0, 0, 0, 0);
      |                                        ^~~~
      |                                        |
      |                                        const char *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c: In function '_gettimeofday':
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:3:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'const char *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_stat.c:11:46: error: passing argument 4 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   11 |   int rv = syscall_errno (SYS_stat, 2, file, &kst, 0, 0, 0, 0);
      |                                              ^~~~
      |                                              |
      |                                              struct kernel_stat *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c:29:46: error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
   29 |   return syscall_errno (SYS_gettimeofday, 1, tp, 0, 0, 0, 0, 0);
      |                                              ^~
      |                                              |
      |                                              struct timeval *
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:48: note: expected 'long int' but argument is of type 'struct kernel_stat *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                           ~~~~~^~~
In file included from /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_gettimeofday.c:4:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/internal_syscall.h:66:38: note: expected 'long int' but argument is of type 'struct timeval *'
   66 | syscall_errno(long n, int argc, long _a0, long _a1, long _a2, long _a3, long _a4, long _a5)
      |                                 ~~~~~^~~
make[5]: *** [Makefile:3623: riscv/riscv_libgloss_a-sys_openat.o] Error 1
make[5]: *** [Makefile:3567: riscv/riscv_libgloss_a-sys_link.o] Error 1
make[5]: *** [Makefile:3455: riscv/riscv_libgloss_a-sys_fstat.o] Error 1
make[5]: *** [Makefile:3469: riscv/riscv_libgloss_a-sys_fstatat.o] Error 1
make[5]: *** [Makefile:3707: riscv/riscv_libgloss_a-sys_unlink.o] Error 1
make[5]: *** [Makefile:4127: riscv/riscv_libsim_a-sys_access.o] Error 1
make[5]: *** [Makefile:3637: riscv/riscv_libgloss_a-sys_read.o] Error 1
make[5]: *** [Makefile:3595: riscv/riscv_libgloss_a-sys_lstat.o] Error 1
make[5]: *** [Makefile:3749: riscv/riscv_libgloss_a-sys_write.o] Error 1
make[5]: *** [Makefile:3665: riscv/riscv_libgloss_a-sys_stat.o] Error 1
make[5]: *** [Makefile:3525: riscv/riscv_libgloss_a-sys_gettimeofday.o] Error 1




juzhe.zhong@rivai.ai

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  1:53   ` 钟居哲
@ 2023-12-02  3:25     ` Patrick O'Neill
  0 siblings, 0 replies; 10+ messages in thread
From: Patrick O'Neill @ 2023-12-02  3:25 UTC (permalink / raw)
  To: 钟居哲, gcc-patches; +Cc: thomas, fweimer

[-- Attachment #1: Type: text/plain, Size: 24458 bytes --]

That failure is is due to newlib files:
/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../*newlib*/newlib/libm/complex/ccoshl.c: 
In function 'ccoshl':

To build gcc w/ glibc with riscv-gnu-toolchain, run make linux.

A temporary fix for newlib is here:
https://github.com/patrick-rivos/riscv-gnu-toolchain/tree/35d8e8c486bd2f6e3e2e673db8d2b979309a6de4/fixups/newlib

On 12/1/23 17:53, 钟居哲 wrote:
> No. GLIBC 2.37 also failed:
>
> make[4]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib/riscv64-unknown-elf/newlib'
>   CC       libm/complex/libm_a-casinhl.o
> make[3]: *** [Makefile:5283: all] Error 2
> make[3]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib/riscv64-unknown-elf/newlib'
> make[2]: *** [Makefile:8492: all-target-newlib] Error 2
> make[2]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib'
> make[1]: *** [Makefile:879: all] Error 2
> make[1]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib'
> make: *** [Makefile:624: stamps/build-newlib] Error 2
> make: *** Waiting for unfinished jobs....
>   CC       libm/complex/libm_a-csinhl.o
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c: 
> In function 'ccoshl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:13: 
> error: implicit declaration of function 'coshl'; did you mean 'coshf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
>       |             ^~~~~
>       |             coshf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:24: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
>       |                        ^~~~
>       |                        cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/clogl.c: 
> In function 'clogl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:35: 
> error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
>       |                                   ^~~~~
>       |                                   sinhf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/clogl.c:42:13: 
> error: implicit declaration of function 'logl'; did you mean 'logf'? 
> [-Wimplicit-function-declaration]
>    42 |         p = logl(rr);
>       |             ^~~~
>       |             logf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccoshl.c:43:46: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
>       |                                              ^~~~
>       |                                              sinf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/clogl.c:43:14: 
> error: implicit declaration of function 'atan2l'; did you mean 
> 'atan2f'? [-Wimplicit-function-declaration]
>    43 |         rr = atan2l(cimagl(z), creall(z));
>       |              ^~~~~~
>       |              atan2f
>   CC       libm/complex/libm_a-csinl.o
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c: 
> In function 'cexpl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c:43:13: 
> error: implicit declaration of function 'expl'; did you mean 'expf'? 
> [-Wimplicit-function-declaration]
>    43 |         r = expl(x);
>       |             ^~~~
>       |             expf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c:44:17: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    44 |         w = r * cosl(y) + r * sinl(y) * I;
>       |                 ^~~~
>       |                 cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cexpl.c:44:31: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    44 |         w = r * cosl(y) + r * sinl(y) * I;
>       |                               ^~~~
>       |                               sinf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c: 
> In function '_cchshl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:43:13: 
> error: implicit declaration of function 'fabsl'; did you mean 'fabsf'? 
> [-Wimplicit-function-declaration]
>    43 |         if (fabsl(x) <= 0.5L) {
>       |             ^~~~~
>       |             fabsf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cargl.c: 
> In function 'cargl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cargl.c:16:17: 
> error: implicit declaration of function 'atan2l'; did you mean 
> 'atan2f'? [-Wimplicit-function-declaration]
>    16 |          return atan2l (cimagl (z), creall (z));
>       |                 ^~~~~~
>       |                 atan2f
>   CC       libm/complex/libm_a-catanl.o
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:44:22: 
> error: implicit declaration of function 'coshl'; did you mean 'coshf'? 
> [-Wimplicit-function-declaration]
>    44 |                 *c = coshl(x);
>       |                      ^~~~~
>       |                      coshf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:45:22: 
> error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? 
> [-Wimplicit-function-declaration]
>    45 |                 *s = sinhl(x);
>       |                      ^~~~~
>       |                      sinhf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c: 
> In function 'csqrtl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:80:40: 
> error: implicit declaration of function 'fabsl'; did you mean 'fabsf'? 
> [-Wimplicit-function-declaration]
>    80 |                         return (cpackl(fabsl(b - b), 
> copysignl(a, b)));
>       |                                        ^~~~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:50:24: 
> note: in definition of macro 'cpackl'
>    50 | #define cpackl(r, i) ((r) + (i) * I)
>       |                        ^
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cephes_subrl.c:47:21: 
> error: implicit declaration of function 'expl'; did you mean 'expf'? 
> [-Wimplicit-function-declaration]
>    47 |                 e = expl(x);
>       |                     ^~~~
>       |                     expf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:80:54: 
> error: implicit declaration of function 'copysignl'; did you mean 
> 'copysignf'? [-Wimplicit-function-declaration]
>    80 |                         return (cpackl(fabsl(b - b), 
> copysignl(a, b)));
>       |   ^~~~~~~~~
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csqrtl.c:50:30: 
> note: in definition of macro 'cpackl'
>    50 | #define cpackl(r, i) ((r) + (i) * I)
>       |                              ^
>   CC       libm/fenv/libm_a-feclearexcept.o
>   CC       libm/fenv/libm_a-fe_dfl_env.o
>   CC       libm/fenv/libm_a-fegetenv.o
>   CC       libm/fenv/libm_a-fegetexceptflag.o
> make[4]: *** [Makefile:43116: libm/complex/libm_a-ccoshl.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> make[4]: *** [Makefile:43144: libm/complex/libm_a-clogl.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cprojl.c: 
> In function 'cprojl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cprojl.c:60:32: 
> error: implicit declaration of function 'copysignl'; did you mean 
> 'copysignf'? [-Wimplicit-function-declaration]
>    60 |                 IMAG_PART(w) = copysignl(0.0L, cimagl(z));
>       |                                ^~~~~~~~~
>       |                                copysignf
> make[4]: *** [Makefile:43200: libm/complex/libm_a-cexpl.o] Error 1
> make[4]: *** [Makefile:43172: libm/complex/libm_a-cargl.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccosl.c: 
> In function 'ccosl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccosl.c:43:13: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = cosl(creall(z)) * ch - (sinl(creall(z)) * sh) * I;
>       |             ^~~~
>       |             cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ccosl.c:43:37: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = cosl(creall(z)) * ch - (sinl(creall(z)) * sh) * I;
>       |                                     ^~~~
>       |                                     sinf
> make[4]: *** [Makefile:43214: libm/complex/libm_a-cephes_subrl.o] Error 1
> make[4]: *** [Makefile:43158: libm/complex/libm_a-csqrtl.o] Error 1
> make[4]: *** [Makefile:43186: libm/complex/libm_a-cprojl.o] Error 1
> make[4]: *** [Makefile:43242: libm/complex/libm_a-ccosl.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c: 
> In function 'cpowl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:48:13: 
> error: implicit declaration of function 'powl'; did you mean 'powf'? 
> [-Wimplicit-function-declaration]
>    48 |         r = powl(absa, x);
>       |             ^~~~
>       |             powf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c: 
> In function 'ctanhl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:43:13: 
> error: implicit declaration of function 'coshl'; did you mean 'coshf'? 
> [-Wimplicit-function-declaration]
>    43 |         d = coshl(2.0L * x) + cosl(2.0L * y);
>       |             ^~~~~
>       |             coshf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:51:25: 
> error: implicit declaration of function 'expl'; did you mean 'expf'? 
> [-Wimplicit-function-declaration]
>    51 |                 r = r * expl(-y * arga);
>       |                         ^~~~
>       |                         expf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:43:31: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    43 |         d = coshl(2.0L * x) + cosl(2.0L * y);
>       |                               ^~~~
>       |                               cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:52:37: 
> error: implicit declaration of function 'logl'; did you mean 'logf'? 
> [-Wimplicit-function-declaration]
>    52 |                 theta = theta + y * logl(absa);
>       |                                     ^~~~
>       |                                     logf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:44:13: 
> error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? 
> [-Wimplicit-function-declaration]
>    44 |         w = sinhl(2.0L * x) / d  +  (sinl(2.0L * y) / d) * I;
>       |             ^~~~~
>       |             sinhf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:54:17: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    54 |         w = r * cosl(theta) + (r * sinl(theta)) * I;
>       |                 ^~~~
>       |                 cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanhl.c:44:38: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    44 |         w = sinhl(2.0L * x) / d  +  (sinl(2.0L * y) / d) * I;
>       |                                      ^~~~
>       |                                      sinf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/cpowl.c:54:36: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    54 |         w = r * cosl(theta) + (r * sinl(theta)) * I;
>       |                                    ^~~~
>       |                                    sinf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c: 
> In function 'ctanl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:43:13: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    43 |         d = cosl(2.0L * creall(z)) + coshl(2.0L * cimagl(z));
>       |             ^~~~
>       |             cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:43:38: 
> error: implicit declaration of function 'coshl'; did you mean 'coshf'? 
> [-Wimplicit-function-declaration]
>    43 |         d = cosl(2.0L * creall(z)) + coshl(2.0L * cimagl(z));
>       |                                      ^~~~~
>       |                                      coshf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:45:13: 
> error: implicit declaration of function 'fabsl'; did you mean 'fabsf'? 
> [-Wimplicit-function-declaration]
>    45 |         if (fabsl(d) < 0.25L)
>       |             ^~~~~
>       |             fabsf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:54:13: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    54 |         w = sinl(2.0L * creall(z)) / d + (sinhl(2.0L * 
> cimagl(z)) / d) * I;
>       |             ^~~~
>       |             sinf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/ctanl.c:54:43: 
> error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? 
> [-Wimplicit-function-declaration]
>    54 |         w = sinl(2.0L * creall(z)) / d + (sinhl(2.0L * 
> cimagl(z)) / d) * I;
>       |                                           ^~~~~
>       |                                           sinhf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c: 
> In function 'csinhl':
> make[4]: *** [Makefile:43312: libm/complex/libm_a-ctanhl.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:13: 
> error: implicit declaration of function 'sinhl'; did you mean 'sinhf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
>       |             ^~~~~
>       |             sinhf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:24: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
>       |                        ^~~~
>       |                        cosf
> make[4]: *** [Makefile:43298: libm/complex/libm_a-cpowl.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:35: 
> error: implicit declaration of function 'coshl'; did you mean 'coshf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
>       |                                   ^~~~~
>       |                                   coshf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinhl.c:43:46: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
>       |                                              ^~~~
>       |                                              sinf
> make[4]: *** [Makefile:43326: libm/complex/libm_a-ctanl.o] Error 1
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinl.c: 
> In function 'csinl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinl.c:43:13: 
> error: implicit declaration of function 'sinl'; did you mean 'sinf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = sinl(creall(z)) * ch + (cosl(creall(z)) * sh) * I;
>       |             ^~~~
>       |             sinf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/csinl.c:43:37: 
> error: implicit declaration of function 'cosl'; did you mean 'cosf'? 
> [-Wimplicit-function-declaration]
>    43 |         w = sinl(creall(z)) * ch + (cosl(creall(z)) * sh) * I;
>       |                                     ^~~~
>       |                                     cosf
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/catanl.c: 
> In function 'catanl':
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/catanl.c:55:20: 
> error: implicit declaration of function 'atan2l'; did you mean 
> 'atan2f'? [-Wimplicit-function-declaration]
>    55 |         t = 0.5L * atan2l(2.0L * x, a);
>       |                    ^~~~~~
>       |                    atan2f
> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/../../newlib/newlib/libm/complex/catanl.c:65:26: 
> error: implicit declaration of function 'logl'; did you mean 'logf'? 
> [-Wimplicit-function-declaration]
>    65 |         w = w + (0.25L * logl(a)) * I;
>       |                          ^~~~
>       |                          logf
> make[4]: *** [Makefile:43354: libm/complex/libm_a-csinhl.o] Error 1
> make[4]: *** [Makefile:43368: libm/complex/libm_a-csinl.o] Error 1
> make[4]: *** [Makefile:43382: libm/complex/libm_a-catanl.o] Error 1
> make[4]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano/riscv64-unknown-elf/newlib'
> make[3]: *** [Makefile:5283: all] Error 2
> make[3]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano/riscv64-unknown-elf/newlib'
> make[2]: *** [Makefile:8492: all-target-newlib] Error 2
> make[2]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano'
> make[1]: *** [Makefile:879: all] Error 2
> make[1]: Leaving directory 
> '/work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-linux-spike-debug/build-newlib-nano'
> make: *** [Makefile:641: stamps/build-newlib-nano] Error 2
>
> Confirm newlib/glibc/musl definitely can not be compiled by trunk GCC.
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  1:13 ` Sam James
@ 2023-12-02  3:40   ` Jeff Law
  2023-12-02  5:47     ` Sam James
  0 siblings, 1 reply; 10+ messages in thread
From: Jeff Law @ 2023-12-02  3:40 UTC (permalink / raw)
  To: Sam James, 钟居哲; +Cc: thomas, fweimer, gcc-patches



On 12/1/23 18:13, Sam James wrote:
> 
> 钟居哲 <juzhe.zhong@rivai.ai> writes:
> 
>> Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:
>>
>> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40:
>> error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
>>      8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
>>        |                                        ^~~~
>>        |                                        |
>>        |                                        const char *
> 
> This looks like an issue in newlib. We expect broken code to be broken
> by the recent changes. Can you investigate it on the newlib side?
A ton of stuff in newlib/libgloss is broken due to the compiler changes. 
  But that's not a big surprise -- much of the newlib/libgloss code is 
c89 and clearly wrong for c99 and newer.

Jeff

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  3:40   ` Jeff Law
@ 2023-12-02  5:47     ` Sam James
  2023-12-02 15:19       ` Jeff Law
  0 siblings, 1 reply; 10+ messages in thread
From: Sam James @ 2023-12-02  5:47 UTC (permalink / raw)
  To: Jeff Law
  Cc: Sam James, 钟居哲, thomas, fweimer, gcc-patches


Jeff Law <jeffreyalaw@gmail.com> writes:

> On 12/1/23 18:13, Sam James wrote:
>> 钟居哲 <juzhe.zhong@rivai.ai> writes:
>> 
>>> Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:
>>>
>>> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40:
>>> error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
>>>      8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
>>>        |                                        ^~~~
>>>        |                                        |
>>>        |                                        const char *
>> This looks like an issue in newlib. We expect broken code to be
>> broken
>> by the recent changes. Can you investigate it on the newlib side?
> A ton of stuff in newlib/libgloss is broken due to the compiler
> changes.   But that's not a big surprise -- much of the
> newlib/libgloss code is c89 and clearly wrong for c99 and newer.

Yeah, it's probably a reasonable candidate for -fpermissive to start
with until it's cleaned up.

(Also, sorry, I didn't mean my comment to appear glib. I just meant to
say "yes, this looks expected".)

>
> Jeff

thanks,
sam

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02  5:47     ` Sam James
@ 2023-12-02 15:19       ` Jeff Law
  2023-12-04  7:45         ` Kito Cheng
  0 siblings, 1 reply; 10+ messages in thread
From: Jeff Law @ 2023-12-02 15:19 UTC (permalink / raw)
  To: Sam James; +Cc: 钟居哲, thomas, fweimer, gcc-patches



On 12/1/23 22:47, Sam James wrote:
> 
> Jeff Law <jeffreyalaw@gmail.com> writes:
> 
>> On 12/1/23 18:13, Sam James wrote:
>>> 钟居哲 <juzhe.zhong@rivai.ai> writes:
>>>
>>>> Hi, This patch cause error on building newlib/glibc/musl on RISC-V port:
>>>>
>>>> /work/home/jzzhong/work/toolchain/riscv/build/dev-rv64gcv_zvfh_zfh-lp64d-medany-newlib-spike-debug/../../newlib/libgloss/riscv/sys_access.c:8:40:
>>>> error: passing argument 3 of 'syscall_errno' makes integer from pointer without a cast [-Wint-conversion]
>>>>       8 |   return syscall_errno (SYS_access, 2, file, mode, 0, 0, 0, 0);
>>>>         |                                        ^~~~
>>>>         |                                        |
>>>>         |                                        const char *
>>> This looks like an issue in newlib. We expect broken code to be
>>> broken
>>> by the recent changes. Can you investigate it on the newlib side?
>> A ton of stuff in newlib/libgloss is broken due to the compiler
>> changes.   But that's not a big surprise -- much of the
>> newlib/libgloss code is c89 and clearly wrong for c99 and newer.
> 
> Yeah, it's probably a reasonable candidate for -fpermissive to start
> with until it's cleaned up.
Perhaps.  Particularly if it can be confined to libgloss as that's where 
the bulk of the problems are.   It'd be even better if we could 
constrain it per-port, but I suspect putting all that in place would be 
more work than just fixing this stuff.



> 
> (Also, sorry, I didn't mean my comment to appear glib. I just meant to
> say "yes, this looks expected".)
No worries, I didn't take it that way at all.  I fully agree this looks 
expected and while annoying it's not a big deal IMHO.  We fix and move on.

jeff

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-02 15:19       ` Jeff Law
@ 2023-12-04  7:45         ` Kito Cheng
  2023-12-05  0:25           ` Kito Cheng
  0 siblings, 1 reply; 10+ messages in thread
From: Kito Cheng @ 2023-12-04  7:45 UTC (permalink / raw)
  To: Jeff Law
  Cc: Sam James, 钟居哲, thomas, fweimer, gcc-patches

RISC-V newlib patch send, one for libgloss and another one for libm,
the libm issue is because we don't have right long double support,
however newlib has supported that few months ago, and porting effort
is minor, so I just port that to fix the issue :)

https://sourceware.org/pipermail/newlib/2023/020725.html
https://sourceware.org/pipermail/newlib/2023/020726.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] c: Turn int-conversion warnings into permerrors
  2023-12-04  7:45         ` Kito Cheng
@ 2023-12-05  0:25           ` Kito Cheng
  0 siblings, 0 replies; 10+ messages in thread
From: Kito Cheng @ 2023-12-05  0:25 UTC (permalink / raw)
  To: Jeff Law
  Cc: Sam James, 钟居哲, thomas, fweimer, gcc-patches

both patches are landed, newlib trunk should be able to build with gcc
trunk now.

On Mon, Dec 4, 2023 at 3:45 PM Kito Cheng <kito.cheng@gmail.com> wrote:
>
> RISC-V newlib patch send, one for libgloss and another one for libm,
> the libm issue is because we don't have right long double support,
> however newlib has supported that few months ago, and porting effort
> is minor, so I just port that to fix the issue :)
>
> https://sourceware.org/pipermail/newlib/2023/020725.html
> https://sourceware.org/pipermail/newlib/2023/020726.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-12-05  0:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-02  0:33 [PATCH 2/6] c: Turn int-conversion warnings into permerrors 钟居哲
2023-12-02  1:10 ` Patrick O'Neill
2023-12-02  1:53   ` 钟居哲
2023-12-02  3:25     ` Patrick O'Neill
2023-12-02  1:13 ` Sam James
2023-12-02  3:40   ` Jeff Law
2023-12-02  5:47     ` Sam James
2023-12-02 15:19       ` Jeff Law
2023-12-04  7:45         ` Kito Cheng
2023-12-05  0:25           ` Kito Cheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).