elf32mep.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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=elf
  10. if test -n "${RELOCATING}"; then
  11. DATA_START_SYMBOLS='__data_start = . ;'
  12. OTHER_GOT_SYMBOLS='
  13. . = ALIGN(4);
  14. __sdabase = . + 0x8000;
  15. .srodata : { *(.srodata) *(.srodata.*) *(.gnu.linkonce.srd.*) }
  16. '
  17. OTHER_SDATA_SECTIONS='
  18. PROVIDE (__sdabase = .);
  19. __assert_tiny_size = ASSERT ((. < __sdabase) || ((. - __sdabase) <= 0x8000),
  20. "tiny section overflow");
  21. '
  22. OTHER_READONLY_SECTIONS='
  23. __stack = 0x001ffff0;
  24. __stack_size = 0x100000;
  25. __stack0 = (__stack - (0 * (__stack_size / 1)) + 15) / 16 * 16;
  26. .rostacktab :
  27. {
  28. /* Emit a table describing the location of the different stacks.
  29. Only 1 processor in the default configuration. */
  30. . = ALIGN(4);
  31. __stack_table = .;
  32. LONG (__stack0);
  33. }
  34. '
  35. OTHER_END_SYMBOLS='
  36. PROVIDE (__heap = _end);
  37. PROVIDE (__heap_end = 0);
  38. '
  39. OTHER_TEXT_SECTIONS='
  40. *(.ftext) *(.ftext.*) *(.gnu.linkonce.ft.*)
  41. . = ALIGN(8);
  42. *(.vftext) *(.vftext.*) *(.gnu.linkonce.vf.*)
  43. *(.frodata) *(.frodata.*) *(.gnu.linkonce.frd.*)
  44. '
  45. OTHER_READWRITE_SECTIONS='
  46. . = ALIGN(4);
  47. __tpbase = .;
  48. .based : { *(.based) *(.based.*) *(.gnu.linkonce.based.*) }
  49. __assert_based_size = ASSERT ((. - __tpbase) <= 0x80, "based section overflow");
  50. .far : { *(.far) *(.far.*) *(.gnu.linkonce.far.*) }
  51. '
  52. OTHER_BSS_SECTIONS='
  53. __assert_near_size = ASSERT (. <= 0x1000000, "near section overflow");
  54. .farbss : { PROVIDE (__farbss_start = .); *(.farbss) *(.farbss.*) PROVIDE (__farbss_end = .); }
  55. '
  56. fi