Hi!
I am trying to bringup Genode/Linux on aarch64. I have ported the syscall*.S files. But many of the SYS_ defines areen't defined, SYS_ioperm for example. I checked with x86_64 and it built.
In both x86_64 and aarch64 it isn't defined in toolchain or Genode. In system includes both platforms has a #Ifdef __NR_ etc. But neither of the systems define that.
I am all confused!
Michael
On Sat, 31 Oct 2020 at 11:21, Michael Grunditz michael.grunditz@gmail.com wrote:
Hi! In both x86_64 and aarch64 it isn't defined in toolchain or Genode. In system includes both platforms has a #Ifdef __NR_ etc. But neither of the systems define that.
I realised that they lived in the kernel headers, but still no luck. They are defined in asm/unistd32.h but I think only asm-generic/unistd.h gets included. I get no errors from syscalls defined in that header file. I am not so used to linux.
I realised that they lived in the kernel headers, but still no luck. They are defined in asm/unistd32.h but I think only asm-generic/unistd.h gets included. I get no errors from syscalls defined in that header file. I am not so used to linux.
I have modified all syscalls to work with aarch64. Status is now that core starts, but ld.so.lib doesn't work. It fails somewhere in env_deprecated. I tried to nail it down with gdb but it ends up in IPC stuff that calls Log. That call log hangs the process, because init_log hasn't been called. I am trying to find out what might be the root fault. Syscalls works just fine and also lx_clone. I followed the tradition and used glibc as a base for those asm files. I can see it works when running strace -ff on core.
So that leaves me with ctr0.s. It is the only component I changed. My file: http://www.update.uu.se/~micken/crt0.s
Regards Michael
Hi Michael,
On 31.10.20 12:21, Michael Grunditz wrote:
Hi!
I am trying to bringup Genode/Linux on aarch64. I have ported the syscall*.S files. But many of the SYS_ defines areen't defined, SYS_ioperm for example. I checked with x86_64 and it built.
In both x86_64 and aarch64 it isn't defined in toolchain or Genode. In system includes both platforms has a #Ifdef __NR_ etc. But neither of the systems define that.
I'm currently trying to work with the armhf version and 'SYS_ioperm' was missing as well. Since the 'lx_ioperm()' function appeared to be unused, I removed it. Also, the 'run/log' test didn't output anything at first and it turned out that I had to add 'BOARD_RUN_OPT(linux) = --include power_on/linux --include log/linux' in 'build/arm_v7a/etc/build.conf' first.
Christian
On Tue, 3 Nov 2020 at 20:14, Christian Prochaska christian.prochaska@genode-labs.com wrote:
I'm currently trying to work with the armhf version and 'SYS_ioperm' was missing as well. Since the 'lx_ioperm()' function appeared to be unused, I removed it. Also, the 'run/log' test didn't output anything at first and it turned out that I had to add 'BOARD_RUN_OPT(linux) = --include power_on/linux --include log/linux' in 'build/arm_v7a/etc/build.conf' first.
Yes, just found that! So apart from seccomp everything is working fine. I also commented out ioperm.