-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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!")?
@@ -22,6 +25,9 @@ FEATURES_PROVIDED += periph_wdt | |||
FEATURES_CONFLICT += periph_rtc:periph_rtt | |||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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