if {[have_spec always_hybrid]} { puts "Run script does not support hybrid Linux/Genode."; exit 0 } build "core init test/ldso" create_boot_directory install_config { } build_boot_image "core init test-ldso test-ldso.lib.so test-ldso2.lib.so libc.lib.so libm.lib.so ld.lib.so" append qemu_args "-nographic -m 64" run_genode_until "child exited with exit value 0.*\n" 10 # pay only attention to the output of init and its children grep_output {^\[init} unify_output {environ: [a-f0-9]+} "environ: " compare_output_to { [init -> test-ldso] Starting ldso ... [init -> test-ldso] Starting application ... environ: [init -> test-ldso] [init -> test-ldso] Static Geekings! [init -> test-ldso] ================ [init -> test-ldso] Test read [init -> test-ldso] no plugin found for read(0) [init -> test-ldso] Static object in funcion ... a: aaaaaaaa b: bbbbbbbb c: cccccccc 6: 00000666 [init -> test-ldso] Shared library function call ...good [init -> test-ldso] Ctor in shared lib ... a: aaaaaaaa b: bbbbbbbb c: cccccccc 6: 00000666 [init -> test-ldso] Exception in shared lib ... good (library) [init -> test-ldso] Cross library exception ... good (cross library) [init -> test-ldso] Exception during RPC: Could not open file "__not_found__" [init -> test-ldso] good [init -> test-ldso] Exception in dynamic binary ... good (binary) [init -> test-ldso] Exception inter-shared library ... good (inter) [init -> test-ldso] Exception from LDSO with explicit catch ... good [init -> test-ldso] Libc test: abs(-10): 10 [init -> test-ldso] ================ [init -> test-ldso] [init] virtual void Genode::Child_policy::exit(int): child exited with exit value 0 }