diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2009-08-20 20:42:19 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2009-08-20 20:42:19 +0200 |
commit | d07acf5eacf62cd8b5495f12e3b37427050270c9 (patch) | |
tree | a0f4d7869e37ede1ca386ac428c75bf4b34d80f4 /toolchain | |
parent | 70c44baa23fbf86a888f6f37a75bca10a631a01c (diff) | |
parent | 4a0a9fe7fee9d7032adc62e244a23d37013816e3 (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'toolchain')
-rw-r--r-- | toolchain/uClibc/Makefile | 9 | ||||
-rw-r--r-- | toolchain/uClibc/patches/pagesize-fix.patch | 276 |
2 files changed, 9 insertions, 276 deletions
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile index 9ae8016cc..3a9310ad1 100644 --- a/toolchain/uClibc/Makefile +++ b/toolchain/uClibc/Makefile @@ -8,6 +8,15 @@ include ../rules.mk include Makefile.inc include ${TOPDIR}/mk/buildhlp.mk +#workaround for mips and gcc 4.4, where -Os does not inline code in ld.so +ifeq ($(ARCH),mips) +TARGET_CFLAGS:=$(subst Os,O2,$(TARGET_CFLAGS)) +endif +#workaround for cris and gcc 4.4, where -Os generates ICE +ifeq ($(ARCH),cris) +TARGET_CFLAGS:=$(subst Os,O2,$(TARGET_CFLAGS)) +endif + $(WRKBUILD)/.headers: $(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${TOOLCHAIN_SYSROOT}/usr/include\"' \ diff --git a/toolchain/uClibc/patches/pagesize-fix.patch b/toolchain/uClibc/patches/pagesize-fix.patch deleted file mode 100644 index 789820638..000000000 --- a/toolchain/uClibc/patches/pagesize-fix.patch +++ /dev/null @@ -1,276 +0,0 @@ -diff -Nur uClibc-0.9.30.1.orig/ldso/include/ldso.h uClibc-0.9.30.1/ldso/include/ldso.h ---- uClibc-0.9.30.1.orig/ldso/include/ldso.h 2008-05-30 16:35:31.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/include/ldso.h 2009-06-21 19:34:42.324963528 +0200 -@@ -39,6 +39,19 @@ - #include <dl-elf.h> - #include <dl-hash.h> - -+/* common align masks, if not specified by sysdep headers */ -+#ifndef ADDR_ALIGN -+#define ADDR_ALIGN (_dl_pagesize - 1) -+#endif -+ -+#ifndef PAGE_ALIGN -+#define PAGE_ALIGN (~ADDR_ALIGN) -+#endif -+ -+#ifndef OFFS_ALIGN -+#define OFFS_ALIGN (PAGE_ALIGN & ~(1ul << (sizeof(_dl_pagesize) * 8 - 1))) -+#endif -+ - /* For INIT/FINI dependency sorting. */ - struct init_fini_list { - struct init_fini_list *next; -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/arm/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/arm/dl-sysdep.h 2008-09-25 10:35:20.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h 2009-06-21 19:34:42.324963528 +0200 -@@ -55,11 +55,6 @@ - struct elf_resolve; - unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - PLT entries should not be allowed to define the value. - ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/avr32/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/avr32/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/avr32/dl-sysdep.h 2008-11-03 16:54:24.000000000 +0100 -+++ uClibc-0.9.30.1/ldso/ldso/avr32/dl-sysdep.h 2009-06-21 19:34:42.324963528 +0200 -@@ -46,11 +46,6 @@ - - unsigned long _dl_linux_resolver(unsigned long got_offset, unsigned long *got); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - #define elf_machine_type_class(type) \ - ((type == R_AVR32_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) - -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/bfin/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/bfin/dl-sysdep.h 2008-07-23 13:23:36.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h 2009-06-21 19:34:42.324963528 +0200 -@@ -67,12 +67,6 @@ - - extern int _dl_linux_resolve(void) __attribute__((__visibility__("hidden"))); - --/* 4KiB page alignment. Should perhaps be made dynamic using -- getpagesize(), based on AT_PAGESZ from auxvt? */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - struct funcdesc_ht; - - #undef SEND_EARLY_STDERR -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/cris/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/cris/dl-sysdep.h 2008-07-23 13:19:00.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h 2009-06-21 19:34:42.324963528 +0200 -@@ -18,11 +18,6 @@ - struct elf_resolve; - extern unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry); - --/* 8192 bytes alignment */ --#define PAGE_ALIGN 0xffffe000 --#define ADDR_ALIGN 0x1fff --#define OFFS_ALIGN 0xffffe000 -- - /* The union of reloc-type-classes where the reloc TYPE is a member. - - TYPE is in the class ELF_RTYPE_CLASS_PLT if it can describe a -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/frv/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/frv/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/frv/dl-sysdep.h 2008-07-23 13:23:36.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/frv/dl-sysdep.h 2009-06-21 19:34:42.324963528 +0200 -@@ -51,12 +51,6 @@ - - extern int _dl_linux_resolve(void) __attribute__((__visibility__("hidden"))); - --/* 16KiB page alignment. Should perhaps be made dynamic using -- getpagesize(), based on AT_PAGESZ from auxvt? */ --#define PAGE_ALIGN 0xffffc000 --#define ADDR_ALIGN 0x3fff --#define OFFS_ALIGN 0x7fffc000 -- - struct funcdesc_ht; - - /* We must force strings used early in the bootstrap into the data -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/i386/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/i386/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h 2009-06-21 19:34:42.328963480 +0200 -@@ -25,11 +25,6 @@ - struct elf_resolve; - extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or - TLS variable, so undefined references should not be allowed to - define the value. -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/m68k/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/m68k/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h 2009-06-21 19:34:42.328963480 +0200 -@@ -25,11 +25,6 @@ - struct elf_resolve; - extern unsigned long _dl_linux_resolver (struct elf_resolve *, int); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - PLT entries should not be allowed to define the value. - ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/mips/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/mips/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h 2009-06-22 20:51:04.324542339 +0200 -@@ -148,14 +148,9 @@ - - /* 4096 bytes alignment */ - #if _MIPS_SIM == _MIPS_SIM_ABI64 --#define PAGE_ALIGN (~0xfffUL) --#define ADDR_ALIGN 0xfffUL --#define OFFS_ALIGN (0x10000000000UL-0x1000) --#else /* O32 || N32 */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 --#endif /* O32 || N32 */ -+#define OFFS_ALIGN (0x10000000000UL-_dl_pagesize) -+#endif -+/* O32 || N32 */ - - #define elf_machine_type_class(type) ELF_RTYPE_CLASS_PLT - /* MIPS does not have COPY relocs */ -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/powerpc/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/powerpc/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h 2009-06-21 19:34:42.328963480 +0200 -@@ -67,11 +67,6 @@ - extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); - void _dl_init_got(unsigned long *lpnt,struct elf_resolve *tpnt); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - PLT entries should not be allowed to define the value. - ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/sh/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/sh/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h 2009-06-21 19:34:42.328963480 +0200 -@@ -83,11 +83,6 @@ - - #define do_rem(result, n, base) ((result) = _dl_urem((n), (base))) - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or - TLS variable, so undefined references should not be allowed to - define the value. -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/sh64/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/sh64/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h 2009-06-21 19:34:42.328963480 +0200 -@@ -25,11 +25,6 @@ - struct elf_resolve; - extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or - TLS variable, so undefined references should not be allowed to - define the value. -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/sparc/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/sparc/dl-sysdep.h 2008-09-15 18:36:11.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h 2009-06-21 19:34:42.332963990 +0200 -@@ -89,18 +89,6 @@ - #define do_rem(result, n, base) ((result) = sparc_mod(n, base)) - #endif - --/* 4096 bytes alignment */ --#if defined(__sparc_v9__) --/* ...but 8192 is required for mmap() on sparc64 kernel */ --#define PAGE_ALIGN 0xffffe000 --#define ADDR_ALIGN 0x1fff --#define OFFS_ALIGN 0x7fffe000 --#elif defined(__sparc_v8__) --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 --#endif -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - PLT entries should not be allowed to define the value. - ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/x86_64/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/x86_64/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/x86_64/dl-sysdep.h 2006-03-08 04:58:13.000000000 +0100 -+++ uClibc-0.9.30.1/ldso/ldso/x86_64/dl-sysdep.h 2009-06-21 19:34:42.332963990 +0200 -@@ -41,11 +41,6 @@ - struct elf_resolve; - extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or - TLS variable, so undefined references should not be allowed to - define the value. -diff -Nur uClibc-0.9.30.1.orig/ldso/ldso/xtensa/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h ---- uClibc-0.9.30.1.orig/ldso/ldso/xtensa/dl-sysdep.h 2008-07-23 13:19:00.000000000 +0200 -+++ uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h 2009-06-21 19:34:42.332963990 +0200 -@@ -76,11 +76,6 @@ - struct elf_resolve; - extern unsigned long _dl_linux_resolver (struct elf_resolve *, int); - --/* 4096 bytes alignment */ --#define PAGE_ALIGN 0xfffff000 --#define ADDR_ALIGN 0xfff --#define OFFS_ALIGN 0x7ffff000 -- - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - undefined references should not be allowed to define the value. */ - #define elf_machine_type_class(type) \ -diff -Nur uClibc-0.9.30.1.orig/libc/sysdeps/linux/mips/bits/uClibc_page.h uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/uClibc_page.h ---- uClibc-0.9.30.1.orig/libc/sysdeps/linux/mips/bits/uClibc_page.h 2004-08-14 01:39:45.000000000 +0200 -+++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/uClibc_page.h 2009-06-22 21:04:53.505363149 +0200 -@@ -20,15 +20,17 @@ - #ifndef _UCLIBC_PAGE_H - #define _UCLIBC_PAGE_H - --/* PAGE_SIZE of mips is sortof wierd, and depends on how the kernel -- * happens to have been configured. It might use 4KB, 16K or 64K -- * pages. To avoid using the current kernel configuration settings, -- * uClibc will simply use 4KB on mips and call it good. */ --#if 0 --#define PAGE_SHIFT 16 -+/* This approach sucks, one should really use sysconf(_SC_PAGESIZE) -+ * instead. The current mips64 kernel only seems to boot with a 16K -+ * page size on a Loongson 2f notebook, so we hardcode it to 16K on -+ * MIPS64 (matching the kernel developer's default) and 4K otherwise. -+ */ -+#ifdef __mips64 - #define PAGE_SHIFT 14 --#endif -+#else - #define PAGE_SHIFT 12 -+#endif -+ - #define PAGE_SIZE (1UL << PAGE_SHIFT) - #define PAGE_MASK (~(PAGE_SIZE-1)) - |