elf32mep.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. MACHINE=
  2. SCRIPT_NAME=mep
  3. OUTPUT_FORMAT="elf32-mep-little"
  4. TEXT_START_ADDR=0x1000
  5. ARCH=mep
  6. MAXPAGESIZE=256
  7. ENTRY=_start
  8. EMBEDDED=yes
  9. TEMPLATE_NAME=elf32
  10. DATA_START_SYMBOLS='__data_start = . ;'
  11. OTHER_GOT_SYMBOLS='
  12. . = ALIGN(4);
  13. __sdabase = . + 0x8000;
  14. .srodata : { *(.srodata) *(.srodata.*) *(.gnu.linkonce.srd.*) }
  15. '
  16. OTHER_SDATA_SECTIONS='
  17. PROVIDE (__sdabase = .);
  18. __assert_tiny_size = ASSERT ((. < __sdabase) || ((. - __sdabase) <= 0x8000),
  19. "tiny section overflow");
  20. '
  21. OTHER_READONLY_SECTIONS='
  22. __stack = 0x001ffff0;
  23. __stack_size = 0x100000;
  24. __stack0 = (__stack - (0 * (__stack_size / 1)) + 15) / 16 * 16;
  25. .rostacktab :
  26. {
  27. /* Emit a table describing the location of the different stacks.
  28. Only 1 processor in the default configuration. */
  29. . = ALIGN(4);
  30. __stack_table = .;
  31. LONG (__stack0);
  32. }
  33. '
  34. OTHER_END_SYMBOLS='
  35. PROVIDE (__heap = _end);
  36. PROVIDE (__heap_end = 0);
  37. '
  38. OTHER_TEXT_SECTIONS='
  39. *(.ftext) *(.ftext.*) *(.gnu.linkonce.ft.*)
  40. . = ALIGN(8);
  41. *(.vftext) *(.vftext.*) *(.gnu.linkonce.vf.*)
  42. *(.frodata) *(.frodata.*) *(.gnu.linkonce.frd.*)
  43. '
  44. OTHER_READWRITE_SECTIONS='
  45. . = ALIGN(4);
  46. __tpbase = .;
  47. .based : { *(.based) *(.based.*) *(.gnu.linkonce.based.*) }
  48. __assert_based_size = ASSERT ((. - __tpbase) <= 0x80, "based section overflow");
  49. .far : { *(.far) *(.far.*) *(.gnu.linkonce.far.*) }
  50. '
  51. OTHER_BSS_SECTIONS='
  52. __assert_near_size = ASSERT (. <= 0x1000000, "near section overflow");
  53. .farbss : { PROVIDE (__farbss_start = .); *(.farbss) *(.farbss.*) PROVIDE (__farbss_end = .); }
  54. '