A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

Revert "Fix .ncbss from possibly overlapping .ncdata in plugins/codecs."

This reverts commit 5c2ad2fd36be7a0d1ec2468e6b270047c36d8a6f.

The .ncbss bug is still showing up. Will try again shortly.

+35 -30
+35 -30
apps/plugins/plugin.lds
··· 247 { 248 *(.rodata*) 249 #if defined(IRAMSIZE) && IRAMSIZE == 0 250 - *(.irodata) 251 #endif 252 } > PLUGIN_RAM 253 254 .data : 255 { 256 *(.data*) 257 #if defined(IRAMSIZE) && IRAMSIZE == 0 258 - *(.idata) 259 #endif 260 } > PLUGIN_RAM 261 ··· 265 . = ALIGN(CACHEALIGN_SIZE); 266 *(.ncdata*) 267 . = ALIGN(CACHEALIGN_SIZE); 268 - } AT> PLUGIN_RAM 269 - . -= NOCACHE_BASE; 270 #endif 271 - 272 - #if defined(IRAMSIZE) && IRAMSIZE != 0 273 iramcopy = .; 274 #endif 275 ··· 281 #endif 282 } 283 284 - .bss . (NOLOAD) : 285 { 286 plugin_bss_start = .; 287 _plugin_bss_start = .; 288 *(.bss*) 289 #if defined(IRAMSIZE) && IRAMSIZE == 0 290 - *(.ibss) 291 #endif 292 *(COMMON) 293 . = ALIGN(0x4); ··· 300 *(.ncbss*) 301 . = ALIGN(CACHEALIGN_SIZE); 302 } AT> PLUGIN_RAM 303 - . -= NOCACHE_BASE; 304 #endif 305 306 - /* Final end of plugin after IRAM setup */ 307 - .pluginend : 308 { 309 _plugin_end_addr = .; 310 plugin_end_addr = .; 311 } 312 - 313 - #if defined(IRAMSIZE) && IRAMSIZE != 0 314 - .iram IRAMORIG : AT (iramcopy) 315 - { 316 - iramstart = .; 317 - *(.icode) 318 - *(.irodata) 319 - *(.idata) 320 - iramend = .; 321 - } > PLUGIN_IRAM 322 - 323 - .ibss (NOLOAD) : 324 - { 325 - iedata = .; 326 - *(.ibss) 327 - . = ALIGN(0x4); 328 - iend = .; 329 - } > PLUGIN_IRAM 330 - #endif 331 332 /* Special trick to avoid a linker error when no other sections are 333 left after garbage collection (plugin not for this platform) */
··· 247 { 248 *(.rodata*) 249 #if defined(IRAMSIZE) && IRAMSIZE == 0 250 + *(.irodata) 251 #endif 252 + . = ALIGN(0x4); 253 } > PLUGIN_RAM 254 255 .data : 256 { 257 *(.data*) 258 #if defined(IRAMSIZE) && IRAMSIZE == 0 259 + *(.idata) 260 #endif 261 } > PLUGIN_RAM 262 ··· 266 . = ALIGN(CACHEALIGN_SIZE); 267 *(.ncdata*) 268 . = ALIGN(CACHEALIGN_SIZE); 269 + /* EABI currently needs iramcopy defined here, otherwise .iram can sometimes 270 + have an incorrect load address, breaking codecs. */ 271 + #if defined(IRAMSIZE) 272 + iramcopy = . - NOCACHE_BASE; 273 #endif 274 + } AT> PLUGIN_RAM 275 + /* This definition is used when NOCACHE_BASE is 0. The address offset bug only 276 + seems to occur when the empty .ncdata is present. */ 277 + #elif defined(IRAMSIZE) 278 iramcopy = .; 279 #endif 280 ··· 286 #endif 287 } 288 289 + #if defined(IRAMSIZE) && IRAMSIZE != 0 290 + .iram IRAMORIG : AT ( iramcopy) 291 + { 292 + iramstart = .; 293 + *(.icode) 294 + *(.irodata) 295 + *(.idata) 296 + iramend = .; 297 + } > PLUGIN_IRAM 298 + 299 + 300 + .ibss (NOLOAD) : 301 + { 302 + iedata = .; 303 + *(.ibss) 304 + . = ALIGN(0x4); 305 + iend = .; 306 + } > PLUGIN_IRAM 307 + #endif 308 + 309 + .bss (NOLOAD) : 310 { 311 plugin_bss_start = .; 312 _plugin_bss_start = .; 313 *(.bss*) 314 #if defined(IRAMSIZE) && IRAMSIZE == 0 315 + *(.ibss) 316 #endif 317 *(COMMON) 318 . = ALIGN(0x4); ··· 325 *(.ncbss*) 326 . = ALIGN(CACHEALIGN_SIZE); 327 } AT> PLUGIN_RAM 328 #endif 329 330 + /* Restore . */ 331 + .pluginend . - NOCACHE_BASE : 332 { 333 _plugin_end_addr = .; 334 plugin_end_addr = .; 335 } 336 337 /* Special trick to avoid a linker error when no other sections are 338 left after garbage collection (plugin not for this platform) */