pkg/gecko_sdk: Bump to version 4.1.2#18739
Conversation
Murdock results✔️ PASSED f3d1773 cpu/efm32/gpio: fix deprecated GPIO_IntConfig() call
ArtifactsThis only reflects a subset of all builds from https://ci-prod.riot-os.org. Please refer to https://ci.riot-os.org for a complete build for now. |
|
I noticed Kconfig stuff had to be adjusted. Maybe someone familiar wir Kconfig can have a look? (@MrKevinWeiss? ;-)) I'm unsure if I modeled Kconfig correctly:
|
|
And another Kconfig problem: The module is modeled like this: |
|
After sleeping over this problem, I tried to model this FPU vs. non-FPU librail as features. (TBH: This was advertisement for the Kconfig system. This was easy to model compared to the Makefile-based approach ...) |
9b45279 to
f3d1773
Compare
maribu
left a comment
There was a problem hiding this comment.
Looks good to me.
I think that the non-FPU version of librail should run without any issues even with an FPU. Maybe it is only the wording that needs updating (e.g. something along the lines "Yes, you could use the non-FPU version, but since you have an FPU you really do not want to bloat up your firmware with a soft-FPU implementation. So go use the FPU version instead!")?
| FEATURES_CONFLICT_MSG += "On the EFM32, the RTC and RTT map to the same hardware peripheral." | ||
|
|
||
| FEATURES_CONFLICT += cortexm_fpu:gecko_sdk_librail_nonfpu | ||
| FEATURES_CONFLICT_MSG += "Using librail with the FPU enabled is not supported on this CPU." |
There was a problem hiding this comment.
That's surprising to me. It is obvious that a library that expects a FPU won't function without it, but a lib not expecting an FPU could just not use it, even if it is present.
There was a problem hiding this comment.
Well, I can't link if cortexm_fpu is enabled. I really don't know if any floats are used in that blob, but the .ASM.attributes section in the object indicates that it has been built with soft floats and, thus, the linker complains about that. That's at least what I'm observing here.
There was a problem hiding this comment.
Those are the linker errors if I'm building `ikea-tradfri` with `gecko_sdk_librail` and `cortexm_fpu`
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_tx.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_tx.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_features.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_features.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(pa_auto_mode.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(pa_auto_mode.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_ble.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_ble.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_power_manager.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_power_manager.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_features.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_features.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_module.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_module.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_pa.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_pa.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_radio.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_radio.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_synth.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_synth.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(seq_globals.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(seq_globals.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_rf_hal.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_rf_hal.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_ieee802154_rf_hal.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_ieee802154_rf_hal.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_ble_rf_hal.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_ble_rf_hal.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(generic_efr32xg1_seq.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(generic_efr32xg1_seq.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_singleprotocol.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_singleprotocol.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_rf.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_rf.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_rx.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_rx.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_calibration.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_calibration.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_data.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_data.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_assert.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_assert.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_timer.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_timer.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(tmrdrv.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(tmrdrv.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(tmrdrv_config.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(tmrdrv_config.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_bufc.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_bufc.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_ircal.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_ircal.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_protimer.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_protimer.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_pti.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_pti.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_antenna.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_antenna.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rftest.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rftest.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rfsense.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rfsense.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rtccsync.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rtccsync.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rtccsync_shared.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rtccsync_shared.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_standard_phys.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_standard_phys.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_tempcal.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_tempcal.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_timings.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_timings.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rand.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_rand.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(generic_phy.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(generic_phy.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(cortex_utils.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(cortex_utils.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_mfm_rf_hal.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rail_mfm_rf_hal.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(ieee802154_efr32xg1_configurator_out.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(ieee802154_efr32xg1_configurator_out.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(ble_efr32xg1_configurator_out.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(ble_efr32xg1_configurator_out.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfsense_ook_efr32xg1_configurator_out.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfsense_ook_efr32xg1_configurator_out.o)
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: error: /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/default.elf uses VFP register arguments, /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_auxpll.o) does not
/usr/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /home/jue/Projects/ssv/RIOT/examples/default/bin/ikea-tradfri/gecko_sdk_librail.a(rfhal_auxpll.o)
collect2: error: ld returned 1 exit status
There was a problem hiding this comment.
OK, sounds like the calling convention is different when not using an FPU. Likely only for passing floats, but since librail actually does use floats this could indeed be a real issue.
I really should read the calling convention specs at some point in time to not be surprised by these things.
| Indicates that the CPU offers librail support if the FPU is enabled. | ||
| Librail is shipped as pre-compiled blobs. Thus, we have to adapt to | ||
| their choice how to process floats. |
There was a problem hiding this comment.
I've seen many surprising design choices made by Silabs ... but yes, I wouldn't expect a radio HAL using floats, as well :D But I can't tell - that's the problem with those vendor-specific blobs. Actually, I spent way too long with the integration because of those black boxes. And they weren't willing to let me look inside even after dozes of exchanged emails :/
|
Thank you a lot :-) |

Contribution description
This PR updates the SDK to the latest release.
The update is required to bring back SiLabs' RAIL lib support to RIOT.
Testing procedure
I've run buildtests for all EFM32-based boards that are present in RIOT:
Issues/PRs references
none