diff options
| author | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-04-30 12:20:24 +0000 | 
|---|---|---|
| committer | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-04-30 12:20:24 +0000 | 
| commit | 5df1ac31daa98afea347573820a695cb6c66e914 (patch) | |
| tree | 88a983d9f68c2c1539384917897e0b20514c462d | |
| parent | 96cbb6e41487a217783e602583feca008c628b9c (diff) | |
[uml] add upstream patch to fix linking failures on '__rela_iplt_end'
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21267 3c298f89-4303-0410-b956-a3cf2f4a3e73
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 : { | 
