Hi, I've recently upgraded from binutils 2.36.1 to version 2.37. This has now caused some of the firmware code I'm working on to no longer compile. The firmware uses RIOT OS, and its linker script uses minus ("-") symbols in some of its region names. (specifcally, it has a region called "bkup-ram" allowing one to store data in special backup memory if the microcontroller has it).
While this used to work, it now throws a syntax error /usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld:cortexm_base.ld:215: warning: memory region `bkup' not declared /usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld:cortexm_base.ld:215: syntax error collect2: error: ld returned 1 exit status Some of the relevant lines in cortexm_base.ld: 40 /* not all Cortex-M platforms use cortexm.ld yet */ 41 MEMORY 42 { 43 bkup-ram (w!rx) : ORIGIN = _backup_ram_start_addr, LENGTH = _backup_ram_len 44 } 208 _sbackup_data_load = LOADADDR(.backup.data); 209 .backup.data : ALIGN(4) { 210 _sbackup_data = .; 211 *(.backup.data) 212 _ebackup_data = .; 213 /* Round size so that we can use 4 byte copy in init */ 214 . = ALIGN(4); 215 } > bkup-ram AT> rom Renaming bkup-ram to bkup_ram fixes the issue. Is this a regression in 2.37, or was it a bug that 2.36.1 even accepted it in the first place?