[cfarm-users] RISC-V emulated systems available in BETA
Pierre Muller
pierre at freepascal.org
Sat Nov 21 18:40:52 CET 2020
Hi,
Le 21/11/2020 à 16:39, Baptiste Jonglez a écrit :
> Hi,
>
> On 21-11-20, Pierre Muller via cfarm-users wrote:
>> It is indeed great to have a new riscv64 system available.
>>
>> I tried to use it to test Free Pascal on that CPU.
>>
>> I tried to use strace and gdb on gcc401:
>>
>> muller at gcc401:~/pas/check$ strace ~/bin/ppcrv64 -gl hello.pp
>> /usr/bin/strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Function not implemented
>> /usr/bin/strace: ptrace(PTRACE_TRACEME, ...): Function not implemented
>> /usr/bin/strace: PTRACE_SETOPTIONS: Function not implemented
>> /usr/bin/strace: detach: waitpid(117236): No child processes
>> /usr/bin/strace: Process 117236 detached
>
> ...
>
>> (gdb) r
>> Starting program: /home/muller/bin/ppcrv64 -gl hello.pp
>> warning: Error disabling address space randomization: Operation not permitted
>> warning: Could not trace the inferior process.
>> warning: ptrace: Function not implemented
>> During startup program exited with code 127.
>
> Interesting. It turns out many syscalls are disabled by default in
> containers, I have just enabled them: https://framagit.org/compile-farm/risc-v-virtual-cloud/-/commit/54ed75f5fd85f3d9974c6281b3b63994adfd08c4
>
> This should fix the "address space randomization" warning and possibly
> other operations that require specific syscalls.
Confirmed:
Reading symbols from /home/muller/bin/ppcrv64...
(gdb) r
Starting program: /home/muller/bin/ppcrv64 hello
warning: Could not trace the inferior process.
warning: ptrace: Function not implemented
During startup program exited with code 127.
> For ptrace, if I understand Andreas' answer, it's a limitation of qemu
> user-mode emulation.
>
> Since /home is shared with the host, you can try something like this:
>
> - build on gcc401 to benefit from the "native" compiler
> - then run qemu-riscv64-static yourself from gcc140 with the options
> described by Andreas
Is there a way to access the home of the container gcc401 from the gcc140 machine?
I am sorry, but I really don't know docker,
would it be possible to have a symbolic link from the gcc140 home directory to
the home directory of gcc401 or gcc402?
I tried to 'ssh gcc401' from within gcc140,
and that did not work...
I also tried:
muller at gcc140:~$ docker info
Client:
Debug Mode: false
Server:
ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": dial unix /var/run/docker.sock: connect: permission denied
errors pretty printing info
muller at gcc140:~$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json": dial unix /var/run/docker.sock: connect: permission denied
> Overall, it's a case where system-mode emulation would be better (or
> even better, having a physical machine), but it's not ready.
Thanks for the feedback!
Pierre
More information about the cfarm-users
mailing list