diff options
3 files changed, 162 insertions, 0 deletions
| diff --git a/target/linux/uml/patches-2.6.30/006-uml_libc_link_errors.patch b/target/linux/uml/patches-2.6.30/006-uml_libc_link_errors.patch new file mode 100644 index 000000000..340a5f266 --- /dev/null +++ b/target/linux/uml/patches-2.6.30/006-uml_libc_link_errors.patch @@ -0,0 +1,54 @@ +diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S +index 7fcad58..85babf5 100644 +--- a/arch/um/kernel/dyn.lds.S ++++ b/arch/um/kernel/dyn.lds.S +@@ -50,8 +50,21 @@ SECTIONS +   .rela.got       : { *(.rela.got) } +   .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } +   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } +-  .rel.plt        : { *(.rel.plt) } +-  .rela.plt       : { *(.rela.plt) } ++  /* Deal with multilib libc */ ++  .rel.plt        : ++  { ++    *(.rel.plt) ++    PROVIDE_HIDDEN (__rel_iplt_start = .); ++    *(.rel.iplt) ++    PROVIDE_HIDDEN (__rel_iplt_end = .); ++  } ++  .rela.plt       : ++  { ++    *(.rela.plt) ++    PROVIDE_HIDDEN (__rela_iplt_start = .); ++    *(.rela.iplt) ++    PROVIDE_HIDDEN (__rela_iplt_end = .); ++  } +   .init           : { +     KEEP (*(.init)) +   } =0x90909090 +diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S +index e7a6cca..50d80e8 100644 +--- a/arch/um/kernel/uml.lds.S ++++ b/arch/um/kernel/uml.lds.S +@@ -35,6 +35,21 @@ SECTIONS +     *(.gnu.warning) +     *(.gnu.linkonce.t*) +   } ++  /* Deal with multilib libc */ ++  .rel.plt        : ++  { ++    *(.rel.plt) ++    PROVIDE_HIDDEN (__rel_iplt_start = .); ++    *(.rel.iplt) ++    PROVIDE_HIDDEN (__rel_iplt_end = .); ++  } ++  .rela.plt       : ++  { ++    *(.rela.plt) ++    PROVIDE_HIDDEN (__rela_iplt_start = .); ++    *(.rela.iplt) ++    PROVIDE_HIDDEN (__rela_iplt_end = .); ++  } + +   . = ALIGN(PAGE_SIZE); +   .syscall_stub : { diff --git a/target/linux/uml/patches-2.6.33/006-uml_libc_link_errors.patch b/target/linux/uml/patches-2.6.33/006-uml_libc_link_errors.patch new file mode 100644 index 000000000..340a5f266 --- /dev/null +++ b/target/linux/uml/patches-2.6.33/006-uml_libc_link_errors.patch @@ -0,0 +1,54 @@ +diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S +index 7fcad58..85babf5 100644 +--- a/arch/um/kernel/dyn.lds.S ++++ b/arch/um/kernel/dyn.lds.S +@@ -50,8 +50,21 @@ SECTIONS +   .rela.got       : { *(.rela.got) } +   .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } +   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } +-  .rel.plt        : { *(.rel.plt) } +-  .rela.plt       : { *(.rela.plt) } ++  /* Deal with multilib libc */ ++  .rel.plt        : ++  { ++    *(.rel.plt) ++    PROVIDE_HIDDEN (__rel_iplt_start = .); ++    *(.rel.iplt) ++    PROVIDE_HIDDEN (__rel_iplt_end = .); ++  } ++  .rela.plt       : ++  { ++    *(.rela.plt) ++    PROVIDE_HIDDEN (__rela_iplt_start = .); ++    *(.rela.iplt) ++    PROVIDE_HIDDEN (__rela_iplt_end = .); ++  } +   .init           : { +     KEEP (*(.init)) +   } =0x90909090 +diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S +index e7a6cca..50d80e8 100644 +--- a/arch/um/kernel/uml.lds.S ++++ b/arch/um/kernel/uml.lds.S +@@ -35,6 +35,21 @@ SECTIONS +     *(.gnu.warning) +     *(.gnu.linkonce.t*) +   } ++  /* Deal with multilib libc */ ++  .rel.plt        : ++  { ++    *(.rel.plt) ++    PROVIDE_HIDDEN (__rel_iplt_start = .); ++    *(.rel.iplt) ++    PROVIDE_HIDDEN (__rel_iplt_end = .); ++  } ++  .rela.plt       : ++  { ++    *(.rela.plt) ++    PROVIDE_HIDDEN (__rela_iplt_start = .); ++    *(.rela.iplt) ++    PROVIDE_HIDDEN (__rela_iplt_end = .); ++  } + +   . = ALIGN(PAGE_SIZE); +   .syscall_stub : { diff --git a/target/linux/uml/patches-2.6.34/006-uml_libc_link_errors.patch b/target/linux/uml/patches-2.6.34/006-uml_libc_link_errors.patch new file mode 100644 index 000000000..340a5f266 --- /dev/null +++ b/target/linux/uml/patches-2.6.34/006-uml_libc_link_errors.patch @@ -0,0 +1,54 @@ +diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S +index 7fcad58..85babf5 100644 +--- a/arch/um/kernel/dyn.lds.S ++++ b/arch/um/kernel/dyn.lds.S +@@ -50,8 +50,21 @@ SECTIONS +   .rela.got       : { *(.rela.got) } +   .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } +   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } +-  .rel.plt        : { *(.rel.plt) } +-  .rela.plt       : { *(.rela.plt) } ++  /* Deal with multilib libc */ ++  .rel.plt        : ++  { ++    *(.rel.plt) ++    PROVIDE_HIDDEN (__rel_iplt_start = .); ++    *(.rel.iplt) ++    PROVIDE_HIDDEN (__rel_iplt_end = .); ++  } ++  .rela.plt       : ++  { ++    *(.rela.plt) ++    PROVIDE_HIDDEN (__rela_iplt_start = .); ++    *(.rela.iplt) ++    PROVIDE_HIDDEN (__rela_iplt_end = .); ++  } +   .init           : { +     KEEP (*(.init)) +   } =0x90909090 +diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S +index e7a6cca..50d80e8 100644 +--- a/arch/um/kernel/uml.lds.S ++++ b/arch/um/kernel/uml.lds.S +@@ -35,6 +35,21 @@ SECTIONS +     *(.gnu.warning) +     *(.gnu.linkonce.t*) +   } ++  /* Deal with multilib libc */ ++  .rel.plt        : ++  { ++    *(.rel.plt) ++    PROVIDE_HIDDEN (__rel_iplt_start = .); ++    *(.rel.iplt) ++    PROVIDE_HIDDEN (__rel_iplt_end = .); ++  } ++  .rela.plt       : ++  { ++    *(.rela.plt) ++    PROVIDE_HIDDEN (__rela_iplt_start = .); ++    *(.rela.iplt) ++    PROVIDE_HIDDEN (__rela_iplt_end = .); ++  } + +   . = ALIGN(PAGE_SIZE); +   .syscall_stub : { | 
