Veil-Project / veil

Veil-Project
MIT License
118 stars 91 forks source link

[Github actions] RISCV64 #1036

Closed steel97 closed 1 year ago

steel97 commented 1 year ago

Added riscv64 build step to github actions (without veil-qt). Tested on visionfive 2 board veil-cli

sinetek commented 1 year ago

Yes, this looks good. It would be nice to have Qt too, that does not seem to compile properly.

sinetek commented 1 year ago

For what it's worth project seems to be broken under native riscv64.

 libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
libtoolize: copying file 'build-aux/m4/libtool.m4'
libtoolize: copying file 'build-aux/m4/ltoptions.m4'
libtoolize: copying file 'build-aux/m4/ltsugar.m4'
libtoolize: copying file 'build-aux/m4/ltversion.m4'
libtoolize: copying file 'build-aux/m4/lt~obsolete.m4'
configure.ac:45: installing 'build-aux/compile'
configure.ac:28: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
libtoolize: copying file 'build-aux/m4/libtool.m4'
libtoolize: copying file 'build-aux/m4/ltoptions.m4'
libtoolize: copying file 'build-aux/m4/ltsugar.m4'
libtoolize: copying file 'build-aux/m4/ltversion.m4'
libtoolize: copying file 'build-aux/m4/lt~obsolete.m4'
configure.ac:28: warning: The macro `AC_PROG_CC_C89' is obsolete.
configure.ac:28: You should run autoupdate.
./lib/autoconf/c.m4:1652: AC_PROG_CC_C89 is expanded from...
configure.ac:28: the top level
configure.ac:10: installing 'build-aux/compile'
configure.ac:9: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
libtoolize: copying file 'build-aux/m4/libtool.m4'
libtoolize: copying file 'build-aux/m4/ltoptions.m4'
libtoolize: copying file 'build-aux/m4/ltsugar.m4'
libtoolize: copying file 'build-aux/m4/ltversion.m4'
libtoolize: copying file 'build-aux/m4/lt~obsolete.m4'
configure.ac:645: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
build-aux/m4/ax_pthread.m4:89: AX_PTHREAD is expanded from...
configure.ac:645: the top level
configure.ac:17: error: possibly undefined macro: AC_MSG_ERROR
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:123: error: possibly undefined macro: AC_MSG_WARN
configure.ac:217: error: possibly undefined macro: AC_DEFINE
autoreconf: error: /usr/bin/autoconf failed with exit status: 1
sinetek commented 1 year ago

Never mind that, I needed pkg-config, which for some reason isn't pulled in with build-essential.

sinetek commented 1 year ago

berkeleydb doesn't like being built on riscv64.

/usr/bin/uname -p = riscv64
/bin/uname -X     = 

hostinfo               = 
/bin/universe          = 
/usr/bin/arch -k       = 
/bin/arch              = riscv64
/usr/bin/oslevel       = 
/usr/convex/getsysinfo = 

UNAME_MACHINE = riscv64
UNAME_RELEASE = 5.19.0-1012-generic
UNAME_SYSTEM  = Linux
UNAME_VERSION = #13~22.04.1-Ubuntu SMP Thu Jan 12 15:34:31 UTC 2023
configure: error: cannot guess build type; you must specify one
steel97 commented 1 year ago

berkeleydb doesn't like being built on riscv64.

/usr/bin/uname -p = riscv64
/bin/uname -X     = 

hostinfo               = 
/bin/universe          = 
/usr/bin/arch -k       = 
/bin/arch              = riscv64
/usr/bin/oslevel       = 
/usr/convex/getsysinfo = 

UNAME_MACHINE = riscv64
UNAME_RELEASE = 5.19.0-1012-generic
UNAME_SYSTEM  = Linux
UNAME_VERSION = #13~22.04.1-Ubuntu SMP Thu Jan 12 15:34:31 UTC 2023
configure: error: cannot guess build type; you must specify one

This PR focused on cross-compilation from x86. I am not surprised that compilation doesn't work natively on riscv (faced same problem with a lot of other software, like dotnet runtime for example)

steel97 commented 1 year ago

Yes, this looks good. It would be nice to have Qt too, that does not seem to compile properly.

Unfortunately I had to disable GUI because of qrencode dependency (version shipped with veil doesn't support RISC-V). I think we can fix that somehow later