16.11 build fails on boot image creation

robjsstewart at ...9... robjsstewart at ...9...
Thu Dec 1 23:08:38 CET 2016



Hi,


I'm moving from 16.08 to 16.11. I had previously built and run my custom os and apps successfully on releases since 14.xx. The kernel is base-hw and the platform is based on TI's AM437x.


Using the same make script that I used in 16.08, the script successfully built all the components on 16.11 without error. However, in the last stage, to build the boot image, it first failed with the error "unknown platform no linker address known". I traced this to a new tool module, tool/run/boot_dir/hw. Apparently this script requires that each unique base-hw kernel platform have a table entry that contains the name used for the platform plus an address which I assume is the load address for the boot image. Is there a documentation update describing this new feature in a bit more detail than the paragraph in the release notes? Adding to the table the necessary entry and running the make script again produced another error which has me stuck. The full make output is attached but the error that is now occurring complains that modules have been built for hardware floating point but the libgcc.a is not built to using the vector floating point register arguments. The message output for one of the libgcc.a modules is:


/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixsfdi.o) does not


Since release 15.02 I've been compiling some of the modules with floating point hardware flagged on, so rico_fs.core does indeed have VFP register usage in it. So why is this error showing up now and not in prior releases and how may I fix it?


Thanks,


Bob Stewart





Get Outlook for Android


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20161201/3b0d20bc/attachment.html>
-------------- next part --------------
bob at ...297...:/Work/Genode/Builds/16.11/437x$ make run/rico_fs | tee build.log
including /Work/Genode/genode-16.11/tool/run/boot_dir/hw
including /Work/Genode/genode-16.11/tool/run/image/uboot
including /Work/Genobob at ...297...:/Work/Genode/Builds/16.11/437x$ make run/rico_fs | tee build.log
including /Work/Genode/genode-16.11/tool/run/boot_dir/hw
including /Work/Genode/genode-16.11/tool/run/image/uboot
including /Work/Genode/genode-16.11/repos/os/run/rico_fs.run
building targets:  core init server/pin_mux_ctl server/shared_mem drivers/platform/spec/437x drivers/platform/spec/437x/client drivers/timer drivers/gpio/spec/437x drivers/pwm/spec/437x drivers/i2c/spec/437x drivers/uart/spec/437x drivers/sd_card/spec/437x drivers/pruss/spec/437x drivers/usb app/soc_leds server/ffat_fs server/report_rom app/motor_control app/ap_cli app/ap_sensors app/autopilot

spawn make core init server/pin_mux_ctl server/shared_mem drivers/platform/spec/437x drivers/platform/spec/437x/client drivers/timer drivers/gpio/spec/437x drivers/pwm/spec/437x drivers/i2c/spec/437x drivers/uart/spec/437x drivers/sd_card/spec/437x drivers/pruss/spec/437x drivers/usb app/soc_leds server/ffat_fs server/report_rom app/motor_control app/ap_cli app/ap_sensors app/autopilot
make[1]: Entering directory `/Work/Genode/Builds/16.11/437x'
checking library dependencies...
  Library platform
  Library cxx
  Library base-common
  Library syscall
  Library startup
  Library base
  Library config
  Library libc-string
  Library libc-locale
  Library libc-stdlib
  Library libc-stdio
  Library libc-gen
  Library libc-gdtoa
  Library libc-inet
  Library libc-stdtime
  Library libc-regex
  Library libc-compat
  Library libc-setjmp
  Library alarm
  Library timed_semaphore
  Library component_entry_point
  Library ldso-startup
  Library ld
  Library vfs
  Library libc
  Library libm
  Program app/ap_sensors/ap_sensors
  Library data_store
  Program app/autopilot/Autopilot
  Program app/motor_control/motor_ctl
  Program app/soc_leds/soc_leds
  Library core-perf_counter
  Library core
    COMPILE  version.o
    MERGE    core.lib.a
  Program core/core
  Program drivers/gpio/spec/437x/gpio_drv
  Program drivers/i2c/spec/437x/i2c_drv
  Program drivers/platform/spec/437x/client/437x_platform_client
  Program drivers/platform/spec/437x/platform_drv
  Program drivers/pruss/spec/437x/pruss_drv
  Program drivers/pwm/spec/437x/pwm_drv
  Program drivers/sd_card/spec/437x/sd_card_drv
  Library timeout
  Library timer
  Program drivers/timer/timer
  Program drivers/uart/spec/437x/uart_drv
  Library usb_include
  Library usb
  Program drivers/usb/usb_drv
  Program init/init
  Library ffat_block
  Program server/ffat_fs/ffat_fs
  Program server/pin_mux_ctl/ctrl_module
  Program server/report_rom/report_rom
  Program server/shared_mem/shared_memory
  Program app/ap_cli/ap_cli
make[1]: Leaving directory `/Work/Genode/Builds/16.11/437x'
genode build completed
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixsfdi.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixsfdi.o)
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixdfdi.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixdfdi.o)
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixunssfdi.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixunssfdi.o)
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixunsdfdi.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_fixunsdfdi.o)
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(bpabi.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(bpabi.o)
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_divdi3.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_divdi3.o)
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: error: var/run/rico_fs.core uses VFP register arguments, /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_udivdi3.o) does not
/opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /opt/usr-local/genode-gcc/bin/../lib/gcc/arm-none-eabi/4.9.2/libgcc.a(_udivdi3.o)
collect2: error: ld returned 1 exit status
    while executing
"exec [cross_dev_prefix]g++ {*}$arch -nostdlib {*}[core_ld_opts]  -Wl,-z -Wl,max-page-size=0x1000  -Wl,-Ttext=[core_link_address] -Wl,-gc-sections  -Wl..."
    (procedure "build_core" line 18)
    invoked from within
"build_core core/core.o {} [run_dir].core"
    (procedure "build_core_image" line 11)
    invoked from within
"build_core_image $binaries"
    (procedure "run_boot_dir" line 10)
    invoked from within
"run_boot_dir $binaries"
    (procedure "build_boot_image" line 2)
    invoked from within
"build_boot_image $boot_modules"
    (file "/Work/Genode/genode-16.11/repos/os/run/rico_fs.run" line 283)
    invoked from within
"source $include_name"
    ("foreach" body line 6)
    invoked from within
"foreach include_name [get_cmd_arg --include ""] {
	# first check if the include name is absolute
	if {[string first "/" $include_name] == 0} {
		puts ..."
    (file "/Work/Genode/genode-16.11/tool/run/run" line 773)
make: *** [run/rico_fs] Error 1




More information about the users mailing list