if {!([have_spec nova] || ([have_spec foc] && [have_spec 32bit]))} { puts "\nThe Noux GDB scenario is only supported for NOVA or 32-bit Fiasco.OC\n" exit 0 } source ${genode_dir}/repos/ports/run/noux_gdb.inc if {[have_spec arm]} { set tool_prefix "genode-arm-" } if {[have_spec x86]} { set tool_prefix "genode-x86-" } # # Uncomment the following line when working on the GDB source code. Otherwise, # the package may get recompiled, yet it does not get reinstalled into 'bin/'. # #exec rm -rf noux-pkg/[noux_gdb_pkg_name]/ bin/[noux_gdb_pkg_name]/ set build_components { core init drivers/timer noux lib/libc_noux drivers/framebuffer drivers/input drivers/usb server/terminal server/terminal_crosslink app/gdb_monitor } lappend_if [have_spec gpio] build_components drivers/gpio lappend_if [have_spec nova] build_components lib/ld/nova lappend_if [have_spec foc] build_components lib/ld/foc lappend build_components noux-pkg/[noux_gdb_pkg_name] # the application to be debugged with GDB lappend build_components test/gdb_monitor set gdb_target_binary_name test-gdb_monitor source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components build $build_components # GDB loads symbols from 'bin/ld.lib.so' if { [have_spec nova] } { exec ln -sf ld-nova.lib.so bin/ld.lib.so } if { [have_spec foc] } { exec ln -sf ld-foc.lib.so bin/ld.lib.so } # names of the binaries needed for the GDB monitor test set gdb_target_binaries { test-gdb_monitor ld.lib.so libc.lib.so libm.lib.so } lappend gdb_target_binaries ${gdb_target_binary_name} create_gdb_tar create_binary_and_source_tars ${gdb_target_binary_name} ${gdb_target_binaries} create_boot_directory append config { } append_if [have_spec sdl] config { } append_platform_drv_config append_if [have_spec framebuffer] config { } append_if [have_spec ps2] config { } append_if [have_spec gpio] config { } append_if [expr ![have_spec ps2] && [have_spec usb]] config { } append config { } append config " " append config { } append config " " append config { } append config " " append config { } append config " " append config { } install_config $config # # Boot modules # # generic modules set boot_modules { core init timer ld.lib.so noux terminal terminal_crosslink libc.lib.so libm.lib.so libc_noux.lib.so ncurses.lib.so expat.lib.so libc_pipe.lib.so libc_terminal.lib.so gdb_monitor test-gdb_monitor gdb.tar test-gdb_monitor.tar test-gdb_monitor-src.tar } # platform-specific modules lappend_if [have_spec linux] boot_modules fb_sdl lappend_if [have_spec framebuffer] boot_modules fb_drv lappend_if [have_spec ps2] boot_modules ps2_drv lappend_if [have_spec usb] boot_modules usb_drv lappend_if [have_spec gpio] boot_modules gpio_drv append_platform_drv_boot_modules build_boot_image $boot_modules append qemu_args " -m 256 " run_genode_until forever exec rm bin/gdb.tar