07:16:50 https://github.com/tevador/RandomX/pull/282 07:17:01 Not an issue right now, but better to fix it before it bites us in the future 12:47:22 should we tag a new randomx release, or just update the submodule to the newest commit? 12:50:30 JIT compiler for RISC-V, macOS Apple silicon fix. Yes, it's worth enough to make a release 12:51:58 One more small PR https://github.com/tevador/RandomX/pull/284 and we can tag 14:40:37 https://github.com/tevador/RandomX/pull/285 14:40:42 I will tag after this 14:47:41 tagged v1.2.0 15:06:16 Strange, Monero RISC-V build fails 15:11:14 fails where? 15:12:00 https://github.com/monero-project/monero/actions/runs/6589422571/job/17903873454?pr=9026 15:12:06 linking error 15:13:10 does monero set ARCH to something other than riscv64? 15:13:34 because the jit compiler files are not added to the build 15:22:50 depends toolchain.cmake sets it to rv64imafdc 15:23:39 that would explain it 15:24:53 but it's dumb, the architecture is riscv64, i.e. 64-bit RISC-V 15:26:26 https://github.com/monero-project/monero/blob/master/CMakeLists.txt#L328 15:28:56 try changing it here: https://github.com/monero-project/monero/blob/master/contrib/depends/toolchain.cmake.in#L148 15:30:25 set(NO_AES ON) <-- is this needed? 15:31:13 does riscv64 have hardware aes? if yes, then no 15:31:42 the architecture has it, but it's an optional extension 15:32:46 binaries won't start on board that don't have it 15:33:58 that's the same for x86 or ARM 15:34:18 but they don't set NO_AES there 15:37:40 NO_AES is only used in crypto/slow-hash.c together with x86 and arm-specific defines, so it should be safe to remove it 15:37:42 oh it's always disabled https://github.com/monero-project/monero/blob/master/CMakeLists.txt#L747 15:37:56 it seems to force no AES even if the code supports it 15:38:03 "so it should be safe to remove it" <- yeah 15:52:07 after changing the ARCH to "riscv64", the RISC-V build is taking forever, seems to be building boost, openssl, sodium etc. from source 15:53:49 it's because it doesn't use ccache this time due to changing ARCH 15:56:45 Failed. Seems to be setting -march=${ARCH_ID}, where can we disable this? 15:59:29 and the randomx build still failed to include jit_compiler_rv64.cpp 16:36:06 hmm https://github.com/tobtoht/monero/actions/runs/6590133669/job/17906111979#step:9:13888 16:41:40 must be some ancient assembler version 16:43:55 https://github.com/tevador/RandomX/actions/runs/6589233240/job/17903232776#step:5:59 16:45:29 Which gcc version is it using? The RandomX CI has gcc 13.1.1. 16:46:02 9.4.0 17:02:27 GCC 9 is ancient and received the latest update in May 2022 17:03:06 It's better to use at least GCC 11 which is still being supported: https://github.com/gcc-mirror/gcc/tree/releases/gcc-11 (last commit 7 hours ago) 17:03:31 I can fix zext.b in RandomX if needed. 17:03:56 If we really want to support ancient gcc versions... 17:04:06 Not for RISC-V probably 17:04:23 because all future RISC-V end users will install fres OS on their boards 17:04:28 *fresh 17:04:50 I'd say require GCC 11 for RISC-V 17:05:04 GCC 9.4 is from June 2021 17:06:08 hmm, GCC 9.5 exists: https://github.com/gcc-mirror/gcc/commit/7a15b5060a83ea8282323d92043c6152e6a3e22d 17:12:56 https://godbolt.org/z/Yb56cv8WW 17:13:12 huh 17:13:48 works even with gcc 8.2, which is the oldest one they have here 17:15:01 then it must be something wrong with compiler flags 17:15:05 i'll try changing the isa string to match that 17:15:13 missing extension maybe 17:17:09 zext.b is an alias 17:17:18 for andi r, r, 255 17:33:53 tobtoht: https://github.com/tevador/RandomX/pull/286 17:34:40 ok will pick that 17:34:48 try just set(ARCH_ID "riscv64") in toolchain.cmake 17:35:05 remove the set(ARCH)? 17:35:11 is it needed? 17:35:25 lets see 17:36:38 RandomX has this: https://github.com/tevador/RandomX/blob/master/CMakeLists.txt#L71-L73 17:36:45 not sure if Monero needs it 17:41:19 if that PR helps, we'll have to tag 1.2.1 17:44:39 (1.2.0 builds fine when cherry-picked on top of #8929, uses gcc 10.3 - not important for now) 17:44:44 trying 286 18:19:50 works https://github.com/tobtoht/monero/actions/runs/6590988466/job/17908674745#step:9:13863 18:19:56 gcc docs seem to suggest that default is system dependent for riscv, which could introduce non-determinism 18:20:02 so better to set ARCH explicitely 18:20:40 https://gcc.gnu.org/onlinedocs/gcc/RISC-V-Options.html#index-march-14 18:25:52 I thought the default was rv64gc 18:26:13 actually i'm not sure if it matters, since we're cross-compiling anyway 18:26:20 At least RandomX assumes rv64gc 18:28:54 ok i have this https://github.com/tobtoht/monero/commit/e2fd69a040695361be8d86a2e64046f404c09a9a 18:57:59 don't forget release 18:58:25 I'm waiting for CI to success on master 18:58:32 succeed* 19:10:32 that risc-v build took forever 19:12:17 like watching paint dry 19:14:39 It runs risc-v build in qemu (as well as other non-x86 builds) 19:15:28 ci cross-compiles 19:15:38 Oh, I though you were talking about RandomX CI 19:16:25 wish those runners had more than 2 vcpus 19:17:16 Self-hosted runners can 19:17:23 Someone can CCS that 19:17:59 didn't ginger have CCS for a speccy machine? 19:18:11 is that thing still running 19:19:28 last i heard from gingeropolous is that its available for devs .. Rucknium has used it in the past for things 20:10:46 yep all my mining rigs are available for monero R&D 21:13:13 Now it's time to set up gitian for RISC-V so Monero can release riscv64 binaries next time. 21:49:02 working on it 22:20:38 happy 3000000 23:22:59 Yay