On Mon, 3 Jun 2019, Ian Lance Taylor wrote: > > I have results as at r270765, taken with QEMU run in the user emulation > > mode (I have patches outstanding for configury/Makefiles to correctly > > support libgo and other library testing with a build sysroot in such a > > setup, pending the completion of my WDC copyright assignment paperwork > > with FSF): > > > > FAIL: go.test/test/args.go execution, -O2 -g > > That is a fairly trivial test so if that one fails then something is > pretty fundamentally wrong somewhere. > > You can run just that test by running > > make RUNTESTFLAGS=go-test.exp=args.go check-gcc-go > > If it fails you should have an executable gcc/testsuite/go/args.x.
The .log file reports (leading paths edited throughout): spawn qemu-riscv64 -E LD_LIBRARY_PATH=.:.../riscv64-linux-gnu/lib64/lp64d/libgo/.libs:.../gcc:.../gcc/lib64/lp64:.../gcc/lib64/lp64d .../gcc/testsuite/go/args.x panic: argc goroutine 1 [running]: main.main .../gcc/testsuite/go.test/test/args.go:18 FAIL: go.test/test/args.go execution, -O2 -g The same happens when this is invoked manually. > Run that executable as `args.x arg1 arg2`. That works however. I've modified `sim_spawn', which is declared as: proc sim_spawn { dest cmdline args } by adding this line: clone_output "sim_spawn $dest $cmdline $args" and it reports no command-line arguments being passed to the test case from the test harness: sim_spawn qemu-user-lp64d .../gcc/testsuite/go/args.x so I gather there is something wrong at an upper level. I'll see if I can investigate it at one point, but given that it is probably the only test case that expects arguments I consider it a very low priority issue. Also not all simulators may support arguments in the first place, especially for bare metal. NB I had to make a local copy of `sim_spawn' in the qemu-user-lp64d.exp board description file used, to get `-E ...' passed to QEMU with the LD_LIBRARY_PATH setting for uninstalled shared libraries to work. That does not affect received `args' being empty however. Maciej