xref: /netbsd-src/sys/arch/zaurus/conf/ldscript.zaurus (revision 0cd327bec693a3f5e3edbdc8ac06969a1419d59b)
1*0cd327beSmlelstv/*	$NetBSD: ldscript.zaurus,v 1.13 2023/02/11 22:42:20 mlelstv Exp $	*/
29587ee65Snonaka
39587ee65SnonakaENTRY(KERNEL_BASE_phys)
49587ee65SnonakaSECTIONS
59587ee65Snonaka{
6*0cd327beSmlelstv  KERNEL_BASE_phys = @KERNEL_BASE_PHYS@;
7*0cd327beSmlelstv  KERNEL_BASE_virt = @KERNEL_BASE_VIRT@;
8*0cd327beSmlelstv
99587ee65Snonaka  /* Kernel start: */
10*0cd327beSmlelstv  .start (KERNEL_BASE_phys) :
119587ee65Snonaka  {
129587ee65Snonaka    *(.start)
138e8896caSuebayasi  }
149587ee65Snonaka
159587ee65Snonaka  /* Read-only sections, merged into text segment: */
16*0cd327beSmlelstv  .text (KERNEL_BASE_virt + SIZEOF(.start)) :
17*0cd327beSmlelstv  AT (LOADADDR(.start) + SIZEOF(.start))
189587ee65Snonaka  {
199587ee65Snonaka    *(.text)
209587ee65Snonaka    *(.text.*)
219587ee65Snonaka    *(.stub)
229587ee65Snonaka    *(.glue_7t) *(.glue_7)
239587ee65Snonaka    *(.rodata) *(.rodata.*)
248e8896caSuebayasi  }
259587ee65Snonaka  PROVIDE (__etext = .);
269587ee65Snonaka  PROVIDE (_etext = .);
279587ee65Snonaka  PROVIDE (etext = .);
289587ee65Snonaka  /* Adjust the address for the data segment to start on the next page
299587ee65Snonaka     boundary.  */
309587ee65Snonaka  . = ALIGN(0x8000);
319587ee65Snonaka  .data    :
329587ee65Snonaka  {
339587ee65Snonaka    __data_start = . ;
349587ee65Snonaka    *(.data)
359587ee65Snonaka    *(.data.*)
369587ee65Snonaka  }
379587ee65Snonaka  .sdata     :
389587ee65Snonaka  {
399587ee65Snonaka    *(.sdata)
409587ee65Snonaka    *(.sdata.*)
419587ee65Snonaka  }
429587ee65Snonaka  _edata = .;
439587ee65Snonaka  PROVIDE (edata = .);
449587ee65Snonaka  __bss_start = .;
459587ee65Snonaka  __bss_start__ = .;
469587ee65Snonaka  .sbss      :
479587ee65Snonaka  {
489587ee65Snonaka    PROVIDE (__sbss_start = .);
499587ee65Snonaka    PROVIDE (___sbss_start = .);
509587ee65Snonaka    *(.dynsbss)
519587ee65Snonaka    *(.sbss)
529587ee65Snonaka    *(.sbss.*)
539587ee65Snonaka    *(.scommon)
549587ee65Snonaka    PROVIDE (__sbss_end = .);
559587ee65Snonaka    PROVIDE (___sbss_end = .);
569587ee65Snonaka  }
579587ee65Snonaka  .bss       :
589587ee65Snonaka  {
599587ee65Snonaka    *(.dynbss)
609587ee65Snonaka    *(.bss)
619587ee65Snonaka    *(.bss.*)
629587ee65Snonaka    *(COMMON)
639587ee65Snonaka    /* Align here to ensure that the .bss section occupies space up to
649587ee65Snonaka       _end.  Align after .bss to ensure correct alignment even if the
659587ee65Snonaka       .bss section disappears because there are no input sections.  */
669587ee65Snonaka    . = ALIGN(32 / 8);
679587ee65Snonaka  }
689587ee65Snonaka  . = ALIGN(32 / 8);
699587ee65Snonaka  _end = .;
709587ee65Snonaka  _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
719587ee65Snonaka  PROVIDE (end = .);
729587ee65Snonaka  .note.netbsd.ident :
739587ee65Snonaka  {
749587ee65Snonaka    KEEP(*(.note.netbsd.ident));
759587ee65Snonaka  }
76c4e471c4Schristos  /DISCARD/ : {
77c4e471c4Schristos    *(.eh_frame_hdr)
78c4e471c4Schristos    *(.eh_frame)
79c6362a3cSmartin    *(.SUNW_ctf)
80c4e471c4Schristos  }
819587ee65Snonaka}
82