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

Bug#1014392: mingw-w64: ftbfs on riscv64(error: #error Unknown CPU architecture!)



Source: mingw-w64
Version: 10.0.0-2
Severity: minor
Tags: ftbfs, patch
User: debian-riscv@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: debian-riscv@lists.debian.org

Dear mingw-w64 Maintainer,
The package has a ftbfs issue on risv64:
```
...
mv -f src/.deps/widl-expr.Tpo src/.deps/widl-expr.Po
riscv64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I/<<PKGBUILDDIR>>/mingw-w64-tools/widl -I./include  -I/<<PKGBUILDDIR>>/mingw-w64-tools/widl/include -DINCLUDEDIR=\""/usr/i686-w64-mingw32/include"\" -DBIN_TO_INCLUDEDIR=\""../i686-w64-mingw32/include"\" -DBIN_TO_DLLDIR=\""../i686-w64-mingw32/include"\" -DDLLDIR="\"/usr/lib\"" -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -MT src/widl-hash.o -MD -MP -MF src/.deps/widl-hash.Tpo -c -o src/widl-hash.o `test -f 'src/hash.c' || echo '/<<PKGBUILDDIR>>/mingw-w64-tools/widl/'`src/hash.c
In file included from /<<PKGBUILDDIR>>/mingw-w64-tools/widl/include/winnt.h:24,
                 from /<<PKGBUILDDIR>>/mingw-w64-tools/widl/include/windef.h:290,
                 from /<<PKGBUILDDIR>>/mingw-w64-tools/widl/src/hash.c:24:
/<<PKGBUILDDIR>>/mingw-w64-tools/widl/include/basetsd.h:305:3: error: #error Unknown CPU architecture!
  305 | # error Unknown CPU architecture!
      |   ^~~~~
In file included from /<<PKGBUILDDIR>>/mingw-w64-tools/widl/src/hash.c:25:
/<<PKGBUILDDIR>>/mingw-w64-tools/widl/include/winbase.h:2718:1: warning: parameter names (without types) in function declaration
 2718 | WINBASEAPI LONG        WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS);
      | ^~~~~~~~~~
make[1]: *** [Makefile:619: src/widl-hash.o] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>/build/riscv64-linux-gnu-i686-w64-mingw32-toolswidl'
dh_auto_build: error: cd build/riscv64-linux-gnu-i686-w64-mingw32-toolswidl && make -j1 returned exit code 2
make: *** [debian/rules:154: riscv64-linux-gnu~i686-w64-mingw32~tools-widl-build-stamp] Error 25

```
The full buildd is here:
https://buildd.debian.org/status/fetch.php?pkg=mingw-w64&arch=riscv64&ver=10.0.0-2&stamp=1649695392&raw=0

The patch attached is to fix the issue and I can build the package 
on my locally real riscv64 hardware(Unmatched board) with it.

Please let me know if you need me to do more tests.

PS: Probably no value running the package on riscv64, but fixing an 
ftbfs issue might be a worthwhile job.:)

Bo
-- 
Best Regards,

--- a/mingw-w64-tools/widl/include/basetsd.h
+++ b/mingw-w64-tools/widl/include/basetsd.h
@@ -36,7 +36,7 @@
  * 64-bit.
  */
 
-#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__) || defined(__sparc64__) || defined(__ia64__) || defined(__s390x__)) && !defined(_WIN64)
+#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__) || defined(__sparc64__) || defined(__ia64__) || defined(__s390x__) || defined(__riscv) && __riscv_xlen == 64) && !defined(_WIN64)
 #define _WIN64
 #endif
 
@@ -299,6 +299,8 @@
 # undef  WORDS_BIGENDIAN
 #elif defined(__s390__) || defined(__s390x__)
 # define WORDS_BIGENDIAN
+#elif defined(__riscv) && __riscv_xlen == 64
+# define WORDS_BIGENDIAN
 #elif defined(__hppa__)
 # undef  WORDS_BIGENDIAN
 #elif !defined(RC_INVOKED) && !defined(__WIDL__) && !defined(__midl)

Attachment: signature.asc
Description: PGP signature


Reply to: