1 /* This linker script generated from xt-genldscripts.tpp for LSP c:\_ddm\audio\devices\MIMXRT685S\xtensa\min-rt */ 2 /* Linker Script for default link */ 3 MEMORY 4 { 5 dsp_core_seg : org = 0x00200000, len = 0x280000 6 dsp_uncached_seg : org = 0x20060000, len = 0x10000 7 dram0_0_seg : org = 0x24000000, len = 0x10000 8 iram0_0_seg : org = 0x24020000, len = 0x400 9 iram0_1_seg : org = 0x24020400, len = 0x17C 10 iram0_2_seg : org = 0x2402057C, len = 0x20 11 iram0_3_seg : org = 0x2402059C, len = 0x20 12 iram0_4_seg : org = 0x240205BC, len = 0x20 13 iram0_5_seg : org = 0x240205DC, len = 0x20 14 iram0_6_seg : org = 0x240205FC, len = 0x20 15 iram0_7_seg : org = 0x2402061C, len = 0x20 16 iram0_8_seg : org = 0x2402063C, len = 0xF9C4 17 } 18 19 PHDRS 20 { 21 dsp_core_phdr PT_LOAD; 22 dsp_core_bss_phdr PT_LOAD; 23 dsp_uncached_phdr PT_LOAD; 24 dram0_0_phdr PT_LOAD; 25 dram0_0_bss_phdr PT_LOAD; 26 iram0_0_phdr PT_LOAD; 27 iram0_1_phdr PT_LOAD; 28 iram0_2_phdr PT_LOAD; 29 iram0_3_phdr PT_LOAD; 30 iram0_4_phdr PT_LOAD; 31 iram0_5_phdr PT_LOAD; 32 iram0_6_phdr PT_LOAD; 33 iram0_7_phdr PT_LOAD; 34 iram0_8_phdr PT_LOAD; 35 } 36 37 38 /* Default entry point: */ 39 ENTRY(_ResetVector) 40 41 42 /* Memory boundary addresses: */ 43 _memmap_mem_dsp_core_start = 0x200000; 44 _memmap_mem_dsp_core_end = 0x480000; 45 _memmap_mem_dsp_uncached_start = 0x20000000; 46 _memmap_mem_dsp_uncached_end = 0x20480000; 47 _memmap_mem_dram0_start = 0x24000000; 48 _memmap_mem_dram0_end = 0x24010000; 49 _memmap_mem_iram0_start = 0x24020000; 50 _memmap_mem_iram0_end = 0x24030000; 51 52 /* Memory segment boundary addresses: */ 53 _memmap_seg_dsp_core_start = 0x200000; 54 _memmap_seg_dsp_core_max = 0x480000; 55 _memmap_seg_dsp_uncached_start = 0x20060000; 56 _memmap_seg_dsp_uncached_max = 0x20070000; 57 _memmap_seg_dram0_0_start = 0x24000000; 58 _memmap_seg_dram0_0_max = 0x24010000; 59 _memmap_seg_iram0_0_start = 0x24020000; 60 _memmap_seg_iram0_0_max = 0x24020400; 61 _memmap_seg_iram0_1_start = 0x24020400; 62 _memmap_seg_iram0_1_max = 0x2402057c; 63 _memmap_seg_iram0_2_start = 0x2402057c; 64 _memmap_seg_iram0_2_max = 0x2402059c; 65 _memmap_seg_iram0_3_start = 0x2402059c; 66 _memmap_seg_iram0_3_max = 0x240205bc; 67 _memmap_seg_iram0_4_start = 0x240205bc; 68 _memmap_seg_iram0_4_max = 0x240205dc; 69 _memmap_seg_iram0_5_start = 0x240205dc; 70 _memmap_seg_iram0_5_max = 0x240205fc; 71 _memmap_seg_iram0_6_start = 0x240205fc; 72 _memmap_seg_iram0_6_max = 0x2402061c; 73 _memmap_seg_iram0_7_start = 0x2402061c; 74 _memmap_seg_iram0_7_max = 0x2402063c; 75 _memmap_seg_iram0_8_start = 0x2402063c; 76 _memmap_seg_iram0_8_max = 0x24030000; 77 78 _rom_store_table = 0; 79 PROVIDE(_memmap_reset_vector = 0x24020000); 80 PROVIDE(_memmap_vecbase_reset = 0x24020400); 81 /* Various memory-map dependent cache attribute settings: */ 82 _memmap_cacheattr_wb_base = 0x00000024; 83 _memmap_cacheattr_wt_base = 0x00000021; 84 _memmap_cacheattr_bp_base = 0x00000022; 85 _memmap_cacheattr_unused_mask = 0xFFFFFF00; 86 _memmap_cacheattr_wb_trapnull = 0x22222224; 87 _memmap_cacheattr_wba_trapnull = 0x22222224; 88 _memmap_cacheattr_wbna_trapnull = 0x22222225; 89 _memmap_cacheattr_wt_trapnull = 0x22222221; 90 _memmap_cacheattr_bp_trapnull = 0x22222222; 91 _memmap_cacheattr_wb_strict = 0xFFFFFF24; 92 _memmap_cacheattr_wt_strict = 0xFFFFFF21; 93 _memmap_cacheattr_bp_strict = 0xFFFFFF22; 94 _memmap_cacheattr_wb_allvalid = 0x22222224; 95 _memmap_cacheattr_wt_allvalid = 0x22222221; 96 _memmap_cacheattr_bp_allvalid = 0x22222222; 97 _memmap_region_map = 0x00000003; 98 PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull); 99 100 SECTIONS 101 { 102 103 NonCacheable.init : ALIGN(4) 104 { 105 NonCacheable_init_start = ABSOLUTE(.); 106 *(NonCacheable.init) 107 . = ALIGN (4); 108 NonCacheable_init_end = ABSOLUTE(.); 109 } >dsp_uncached_seg :dsp_uncached_phdr 110 111 NonCacheable : ALIGN(4) 112 { 113 NonCacheable_start = ABSOLUTE(.); 114 *(NonCacheable) 115 . = ALIGN (4); 116 NonCacheable_end = ABSOLUTE(.); 117 _memmap_seg_dsp_uncached_end = ALIGN(0x8); 118 } >dsp_uncached_seg :dsp_uncached_phdr 119 120 _memmap_mem_dsp_uncached_max = ABSOLUTE(.); 121 122 .dram0.rodata : ALIGN(4) 123 { 124 _dram0_rodata_start = ABSOLUTE(.); 125 *(.dram0.rodata) 126 *(.dram.rodata) 127 . = ALIGN (4); 128 _dram0_rodata_end = ABSOLUTE(.); 129 } >dram0_0_seg :dram0_0_phdr 130 131 .ResetVector.literal : ALIGN(4) 132 { 133 _ResetVector_literal_start = ABSOLUTE(.); 134 *(.ResetVector.literal) 135 . = ALIGN (4); 136 _ResetVector_literal_end = ABSOLUTE(.); 137 } >dram0_0_seg :dram0_0_phdr 138 139 .Level2InterruptVector.literal : ALIGN(4) 140 { 141 _Level2InterruptVector_literal_start = ABSOLUTE(.); 142 *(.Level2InterruptVector.literal) 143 . = ALIGN (4); 144 _Level2InterruptVector_literal_end = ABSOLUTE(.); 145 } >dram0_0_seg :dram0_0_phdr 146 147 .Level3InterruptVector.literal : ALIGN(4) 148 { 149 _Level3InterruptVector_literal_start = ABSOLUTE(.); 150 *(.Level3InterruptVector.literal) 151 . = ALIGN (4); 152 _Level3InterruptVector_literal_end = ABSOLUTE(.); 153 } >dram0_0_seg :dram0_0_phdr 154 155 .DebugExceptionVector.literal : ALIGN(4) 156 { 157 _DebugExceptionVector_literal_start = ABSOLUTE(.); 158 *(.DebugExceptionVector.literal) 159 . = ALIGN (4); 160 _DebugExceptionVector_literal_end = ABSOLUTE(.); 161 } >dram0_0_seg :dram0_0_phdr 162 163 .NMIExceptionVector.literal : ALIGN(4) 164 { 165 _NMIExceptionVector_literal_start = ABSOLUTE(.); 166 *(.NMIExceptionVector.literal) 167 . = ALIGN (4); 168 _NMIExceptionVector_literal_end = ABSOLUTE(.); 169 } >dram0_0_seg :dram0_0_phdr 170 171 .KernelExceptionVector.literal : ALIGN(4) 172 { 173 _KernelExceptionVector_literal_start = ABSOLUTE(.); 174 *(.KernelExceptionVector.literal) 175 . = ALIGN (4); 176 _KernelExceptionVector_literal_end = ABSOLUTE(.); 177 } >dram0_0_seg :dram0_0_phdr 178 179 .UserExceptionVector.literal : ALIGN(4) 180 { 181 _UserExceptionVector_literal_start = ABSOLUTE(.); 182 *(.UserExceptionVector.literal) 183 . = ALIGN (4); 184 _UserExceptionVector_literal_end = ABSOLUTE(.); 185 } >dram0_0_seg :dram0_0_phdr 186 187 .DoubleExceptionVector.literal : ALIGN(4) 188 { 189 _DoubleExceptionVector_literal_start = ABSOLUTE(.); 190 *(.DoubleExceptionVector.literal) 191 . = ALIGN (4); 192 _DoubleExceptionVector_literal_end = ABSOLUTE(.); 193 } >dram0_0_seg :dram0_0_phdr 194 195 .iram0.literal : ALIGN(4) 196 { 197 _iram0_literal_start = ABSOLUTE(.); 198 *(.iram0.literal) 199 *(.iram.literal) 200 *(.iram.text.literal) 201 . = ALIGN (4); 202 _iram0_literal_end = ABSOLUTE(.); 203 } >dram0_0_seg :dram0_0_phdr 204 205 .dram0.data : ALIGN(4) 206 { 207 _dram0_data_start = ABSOLUTE(.); 208 *(.dram0.data) 209 *(.dram.data) 210 . = ALIGN (4); 211 _dram0_data_end = ABSOLUTE(.); 212 } >dram0_0_seg :dram0_0_phdr 213 bss(NOLOAD)214 .dram0.bss (NOLOAD) : ALIGN(8) 215 { 216 . = ALIGN (8); 217 _dram0_bss_start = ABSOLUTE(.); 218 *(.dram0.bss) 219 . = ALIGN (8); 220 _dram0_bss_end = ABSOLUTE(.); 221 _memmap_seg_dram0_0_end = ALIGN(0x8); 222 } >dram0_0_seg :dram0_0_bss_phdr 223 224 _memmap_mem_dram0_max = ABSOLUTE(.); 225 226 .ResetVector.text : ALIGN(4) 227 { 228 _ResetVector_text_start = ABSOLUTE(.); 229 KEEP (*(.ResetVector.text)) 230 . = ALIGN (4); 231 _ResetVector_text_end = ABSOLUTE(.); 232 } >iram0_0_seg :iram0_0_phdr 233 234 .ResetHandler.text : ALIGN(4) 235 { 236 _ResetHandler_text_start = ABSOLUTE(.); 237 *(.ResetHandler.literal .ResetHandler.text) 238 . = ALIGN (4); 239 _ResetHandler_text_end = ABSOLUTE(.); 240 _memmap_seg_iram0_0_end = ALIGN(0x8); 241 } >iram0_0_seg :iram0_0_phdr 242 243 244 .WindowVectors.text : ALIGN(4) 245 { 246 _WindowVectors_text_start = ABSOLUTE(.); 247 KEEP (*(.WindowVectors.text)) 248 . = ALIGN (4); 249 _WindowVectors_text_end = ABSOLUTE(.); 250 _memmap_seg_iram0_1_end = ALIGN(0x8); 251 } >iram0_1_seg :iram0_1_phdr 252 253 254 .Level2InterruptVector.text : ALIGN(4) 255 { 256 _Level2InterruptVector_text_start = ABSOLUTE(.); 257 KEEP (*(.Level2InterruptVector.text)) 258 . = ALIGN (4); 259 _Level2InterruptVector_text_end = ABSOLUTE(.); 260 _memmap_seg_iram0_2_end = ALIGN(0x8); 261 } >iram0_2_seg :iram0_2_phdr 262 263 264 .Level3InterruptVector.text : ALIGN(4) 265 { 266 _Level3InterruptVector_text_start = ABSOLUTE(.); 267 KEEP (*(.Level3InterruptVector.text)) 268 . = ALIGN (4); 269 _Level3InterruptVector_text_end = ABSOLUTE(.); 270 _memmap_seg_iram0_3_end = ALIGN(0x8); 271 } >iram0_3_seg :iram0_3_phdr 272 273 274 .DebugExceptionVector.text : ALIGN(4) 275 { 276 _DebugExceptionVector_text_start = ABSOLUTE(.); 277 KEEP (*(.DebugExceptionVector.text)) 278 . = ALIGN (4); 279 _DebugExceptionVector_text_end = ABSOLUTE(.); 280 _memmap_seg_iram0_4_end = ALIGN(0x8); 281 } >iram0_4_seg :iram0_4_phdr 282 283 284 .NMIExceptionVector.text : ALIGN(4) 285 { 286 _NMIExceptionVector_text_start = ABSOLUTE(.); 287 KEEP (*(.NMIExceptionVector.text)) 288 . = ALIGN (4); 289 _NMIExceptionVector_text_end = ABSOLUTE(.); 290 _memmap_seg_iram0_5_end = ALIGN(0x8); 291 } >iram0_5_seg :iram0_5_phdr 292 293 294 .KernelExceptionVector.text : ALIGN(4) 295 { 296 _KernelExceptionVector_text_start = ABSOLUTE(.); 297 KEEP (*(.KernelExceptionVector.text)) 298 . = ALIGN (4); 299 _KernelExceptionVector_text_end = ABSOLUTE(.); 300 _memmap_seg_iram0_6_end = ALIGN(0x8); 301 } >iram0_6_seg :iram0_6_phdr 302 303 304 .UserExceptionVector.text : ALIGN(4) 305 { 306 _UserExceptionVector_text_start = ABSOLUTE(.); 307 KEEP (*(.UserExceptionVector.text)) 308 . = ALIGN (4); 309 _UserExceptionVector_text_end = ABSOLUTE(.); 310 _memmap_seg_iram0_7_end = ALIGN(0x8); 311 } >iram0_7_seg :iram0_7_phdr 312 313 314 .DoubleExceptionVector.text : ALIGN(4) 315 { 316 _DoubleExceptionVector_text_start = ABSOLUTE(.); 317 KEEP (*(.DoubleExceptionVector.text)) 318 . = ALIGN (4); 319 _DoubleExceptionVector_text_end = ABSOLUTE(.); 320 } >iram0_8_seg :iram0_8_phdr 321 322 .iram0.text : ALIGN(4) 323 { 324 _iram0_text_start = ABSOLUTE(.); 325 *(.iram0.text) 326 *(.iram.text) 327 . = ALIGN (4); 328 _iram0_text_end = ABSOLUTE(.); 329 _memmap_seg_iram0_8_end = ALIGN(0x8); 330 } >iram0_8_seg :iram0_8_phdr 331 332 _memmap_mem_iram0_max = ABSOLUTE(.); 333 334 .clib.rodata : ALIGN(4) 335 { 336 _clib_rodata_start = ABSOLUTE(.); 337 *(.clib.rodata) 338 . = ALIGN (4); 339 _clib_rodata_end = ABSOLUTE(.); 340 } >dsp_core_seg :dsp_core_phdr 341 342 .rtos.rodata : ALIGN(4) 343 { 344 _rtos_rodata_start = ABSOLUTE(.); 345 *(.rtos.rodata) 346 . = ALIGN (4); 347 _rtos_rodata_end = ABSOLUTE(.); 348 } >dsp_core_seg :dsp_core_phdr 349 350 .rodata : ALIGN(4) 351 { 352 _rodata_start = ABSOLUTE(.); 353 *(.rodata) 354 *(SORT(.rodata.sort.*)) 355 KEEP (*(SORT(.rodata.keepsort.*) .rodata.keep.*)) 356 *(.rodata.*) 357 *(.gnu.linkonce.r.*) 358 *(.rodata1) 359 __XT_EXCEPTION_TABLE__ = ABSOLUTE(.); 360 KEEP (*(.xt_except_table)) 361 KEEP (*(.gcc_except_table)) 362 *(.gnu.linkonce.e.*) 363 *(.gnu.version_r) 364 KEEP (*(.eh_frame)) 365 /* C++ constructor and destructor tables, properly ordered: */ 366 KEEP (*crtbegin.o(.ctors)) 367 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) 368 KEEP (*(SORT(.ctors.*))) 369 KEEP (*(.ctors)) 370 KEEP (*crtbegin.o(.dtors)) 371 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) 372 KEEP (*(SORT(.dtors.*))) 373 KEEP (*(.dtors)) 374 /* C++ exception handlers table: */ 375 __XT_EXCEPTION_DESCS__ = ABSOLUTE(.); 376 *(.xt_except_desc) 377 *(.gnu.linkonce.h.*) 378 __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.); 379 *(.xt_except_desc_end) 380 *(.dynamic) 381 *(.gnu.version_d) 382 . = ALIGN(4); /* this table MUST be 4-byte aligned */ 383 _bss_table_start = ABSOLUTE(.); 384 LONG(_dram0_bss_start) 385 LONG(_dram0_bss_end) 386 LONG(_bss_start) 387 LONG(_bss_end) 388 _bss_table_end = ABSOLUTE(.); 389 . = ALIGN (4); 390 _rodata_end = ABSOLUTE(.); 391 } >dsp_core_seg :dsp_core_phdr 392 393 .text : ALIGN(4) 394 { 395 _stext = .; 396 _text_start = ABSOLUTE(.); 397 *(.entry.text) 398 *(.init.literal) 399 KEEP(*(.init)) 400 *(.literal.sort.* SORT(.text.sort.*)) 401 KEEP (*(.literal.keepsort.* SORT(.text.keepsort.*) .literal.keep.* .text.keep.* .literal.*personality* .text.*personality*)) 402 *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) 403 *(.fini.literal) 404 KEEP(*(.fini)) 405 *(.gnu.version) 406 . = ALIGN (4); 407 _text_end = ABSOLUTE(.); 408 _etext = .; 409 } >dsp_core_seg :dsp_core_phdr 410 411 .clib.text : ALIGN(4) 412 { 413 _clib_text_start = ABSOLUTE(.); 414 *(.clib.literal .clib.text) 415 . = ALIGN (4); 416 _clib_text_end = ABSOLUTE(.); 417 } >dsp_core_seg :dsp_core_phdr 418 419 .rtos.text : ALIGN(4) 420 { 421 _rtos_text_start = ABSOLUTE(.); 422 *(.rtos.literal .rtos.text) 423 . = ALIGN (4); 424 _rtos_text_end = ABSOLUTE(.); 425 } >dsp_core_seg :dsp_core_phdr 426 427 .clib.data : ALIGN(4) 428 { 429 _clib_data_start = ABSOLUTE(.); 430 *(.clib.data) 431 . = ALIGN (4); 432 _clib_data_end = ABSOLUTE(.); 433 } >dsp_core_seg :dsp_core_phdr 434 435 .clib.percpu.data : ALIGN(4) 436 { 437 _clib_percpu_data_start = ABSOLUTE(.); 438 *(.clib.percpu.data) 439 . = ALIGN (4); 440 _clib_percpu_data_end = ABSOLUTE(.); 441 } >dsp_core_seg :dsp_core_phdr 442 443 .rtos.percpu.data : ALIGN(4) 444 { 445 _rtos_percpu_data_start = ABSOLUTE(.); 446 *(.rtos.percpu.data) 447 . = ALIGN (4); 448 _rtos_percpu_data_end = ABSOLUTE(.); 449 } >dsp_core_seg :dsp_core_phdr 450 451 .rtos.data : ALIGN(4) 452 { 453 _rtos_data_start = ABSOLUTE(.); 454 *(.rtos.data) 455 . = ALIGN (4); 456 _rtos_data_end = ABSOLUTE(.); 457 } >dsp_core_seg :dsp_core_phdr 458 459 .data : ALIGN(4) 460 { 461 _data_start = ABSOLUTE(.); 462 *(.data) 463 *(SORT(.data.sort.*)) 464 KEEP (*(SORT(.data.keepsort.*) .data.keep.*)) 465 *(.data.*) 466 *(.gnu.linkonce.d.*) 467 KEEP(*(.gnu.linkonce.d.*personality*)) 468 *(.data1) 469 *(.sdata) 470 *(.sdata.*) 471 *(.gnu.linkonce.s.*) 472 *(.sdata2) 473 *(.sdata2.*) 474 *(.gnu.linkonce.s2.*) 475 KEEP(*(.jcr)) 476 *(__llvm_prf_cnts) 477 *(__llvm_prf_data) 478 *(__llvm_prf_vnds) 479 . = ALIGN (4); 480 _data_end = ABSOLUTE(.); 481 } >dsp_core_seg :dsp_core_phdr 482 483 __llvm_prf_names : ALIGN(4) 484 { 485 __llvm_prf_names_start = ABSOLUTE(.); 486 *(__llvm_prf_names) 487 . = ALIGN (4); 488 __llvm_prf_names_end = ABSOLUTE(.); 489 } >dsp_core_seg :dsp_core_phdr 490 bss(NOLOAD)491 .bss (NOLOAD) : ALIGN(8) 492 { 493 . = ALIGN (8); 494 _bss_start = ABSOLUTE(.); 495 *(.dynsbss) 496 *(.sbss) 497 *(.sbss.*) 498 *(.gnu.linkonce.sb.*) 499 *(.scommon) 500 *(.sbss2) 501 *(.sbss2.*) 502 *(.gnu.linkonce.sb2.*) 503 *(.dynbss) 504 *(.bss) 505 *(SORT(.bss.sort.*)) 506 KEEP (*(SORT(.bss.keepsort.*) .bss.keep.*)) 507 *(.bss.*) 508 *(.gnu.linkonce.b.*) 509 *(COMMON) 510 *(.clib.bss) 511 *(.clib.percpu.bss) 512 *(.rtos.percpu.bss) 513 *(.rtos.bss) 514 . = ALIGN (8); 515 _bss_end = ABSOLUTE(.); 516 _end = ALIGN(0x8); 517 PROVIDE(end = ALIGN(0x8)); 518 _stack_sentry = ALIGN(0x8); 519 _memmap_seg_dsp_core_end = ALIGN(0x8); 520 } >dsp_core_seg :dsp_core_bss_phdr 521 522 PROVIDE(__stack = 0x480000); 523 _heap_sentry = 0x480000; 524 525 _memmap_mem_dsp_core_max = ABSOLUTE(.); 526 527 .debug 0 : { *(.debug) } 528 .line 0 : { *(.line) } 529 .debug_srcinfo 0 : { *(.debug_srcinfo) } 530 .debug_sfnames 0 : { *(.debug_sfnames) } 531 .debug_aranges 0 : { *(.debug_aranges) } 532 .debug_pubnames 0 : { *(.debug_pubnames) } 533 .debug_info 0 : { *(.debug_info) } 534 .debug_abbrev 0 : { *(.debug_abbrev) } 535 .debug_line 0 : { *(.debug_line) } 536 .debug_frame 0 : { *(.debug_frame) } 537 .debug_str 0 : { *(.debug_str) } 538 .debug_loc 0 : { *(.debug_loc) } 539 .debug_macinfo 0 : { *(.debug_macinfo) } 540 .debug_weaknames 0 : { *(.debug_weaknames) } 541 .debug_funcnames 0 : { *(.debug_funcnames) } 542 .debug_typenames 0 : { *(.debug_typenames) } 543 .debug_varnames 0 : { *(.debug_varnames) } 544 .xt.insn 0 : 545 { 546 KEEP (*(.xt.insn)) 547 KEEP (*(.gnu.linkonce.x.*)) 548 } 549 .xt.prop 0 : 550 { 551 KEEP (*(.xt.prop)) 552 KEEP (*(.xt.prop.*)) 553 KEEP (*(.gnu.linkonce.prop.*)) 554 } 555 .xt.lit 0 : 556 { 557 KEEP (*(.xt.lit)) 558 KEEP (*(.xt.lit.*)) 559 KEEP (*(.gnu.linkonce.p.*)) 560 } 561 .debug.xt.callgraph 0 : 562 { 563 KEEP (*(.debug.xt.callgraph .debug.xt.callgraph.* .gnu.linkonce.xt.callgraph.*)) 564 } 565 .note.gnu.build-id 0 : 566 { 567 KEEP(*(.note.gnu.build-id)) 568 } 569 } 570 571