diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-12-30 22:45:29 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-12-30 22:45:29 +0100 |
commit | 220a96f9926788ed531717f78e44fdf1e7ab3b34 (patch) | |
tree | 406f65eea71fabd8cf66c2bd1108ec63f8c349ee /toolchain/uClibc/patches | |
parent | 38af8185ea05a1c5d1abb32a68a025e3b4afa4d6 (diff) |
rework architecture / embedded systems concept
Make configuration of new targets cheap.
Just add a new file in target/arch/sys-enabled/foo.
See other files for syntax. While doing runtime tests
with the new infrastructure I've updated a lot of other
stuff:
- gcc 4.5.2
- uClibc 0.9.32-rc1 (NPTL)
- strongswan, php, miredo, parted, util-linux-ng, e2fsprogs
I promise, this is the last big fat commit this year ;)
Diffstat (limited to 'toolchain/uClibc/patches')
-rw-r--r-- | toolchain/uClibc/patches/cris.patch | 97 | ||||
-rw-r--r-- | toolchain/uClibc/patches/devel-prefix-lib.patch | 78 | ||||
-rw-r--r-- | toolchain/uClibc/patches/fix-daemon-pthread.patch | 18 |
3 files changed, 97 insertions, 96 deletions
diff --git a/toolchain/uClibc/patches/cris.patch b/toolchain/uClibc/patches/cris.patch new file mode 100644 index 000000000..9bd2ce795 --- /dev/null +++ b/toolchain/uClibc/patches/cris.patch @@ -0,0 +1,97 @@ +diff -Nur uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sys/user.h uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sys/user.h +--- uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sys/user.h 1970-01-01 01:00:00.000000000 +0100 ++++ uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sys/user.h 2010-12-28 16:41:14.000000000 +0100 +@@ -0,0 +1,81 @@ ++#ifndef __ASM_CRIS_USER_H ++#define __ASM_CRIS_USER_H ++ ++/* User-mode register used for core dumps. */ ++ ++struct user_fpregs { ++}; ++ ++struct user_regs_struct { ++ unsigned long r0; /* General registers. */ ++ unsigned long r1; ++ unsigned long r2; ++ unsigned long r3; ++ unsigned long r4; ++ unsigned long r5; ++ unsigned long r6; ++ unsigned long r7; ++ unsigned long r8; ++ unsigned long r9; ++ unsigned long r10; ++ unsigned long r11; ++ unsigned long r12; ++ unsigned long r13; ++ unsigned long sp; /* R14, Stack pointer. */ ++ unsigned long acr; /* R15, Address calculation register. */ ++ unsigned long bz; /* P0, Constant zero (8-bits). */ ++ unsigned long vr; /* P1, Version register (8-bits). */ ++ unsigned long pid; /* P2, Process ID (8-bits). */ ++ unsigned long srs; /* P3, Support register select (8-bits). */ ++ unsigned long wz; /* P4, Constant zero (16-bits). */ ++ unsigned long exs; /* P5, Exception status. */ ++ unsigned long eda; /* P6, Exception data address. */ ++ unsigned long mof; /* P7, Multiply overflow regiter. */ ++ unsigned long dz; /* P8, Constant zero (32-bits). */ ++ unsigned long ebp; /* P9, Exception base pointer. */ ++ unsigned long erp; /* P10, Exception return pointer. */ ++ unsigned long srp; /* P11, Subroutine return pointer. */ ++ unsigned long nrp; /* P12, NMI return pointer. */ ++ unsigned long ccs; /* P13, Condition code stack. */ ++ unsigned long usp; /* P14, User mode stack pointer. */ ++ unsigned long spc; /* P15, Single step PC. */ ++}; ++ ++/* ++ * Core file format: The core file is written in such a way that gdb ++ * can understand it and provide useful information to the user (under ++ * linux we use the `trad-core' bfd). The file contents are as follows: ++ * ++ * upage: 1 page consisting of a user struct that tells gdb ++ * what is present in the file. Directly after this is a ++ * copy of the task_struct, which is currently not used by gdb, ++ * but it may come in handy at some point. All of the registers ++ * are stored as part of the upage. The upage should always be ++ * only one page long. ++ * data: The data segment follows next. We use current->end_text to ++ * current->brk to pick up all of the user variables, plus any memory ++ * that may have been sbrk'ed. No attempt is made to determine if a ++ * page is demand-zero or if a page is totally unused, we just cover ++ * the entire range. All of the addresses are rounded in such a way ++ * that an integral number of pages is written. ++ * stack: We need the stack information in order to get a meaningful ++ * backtrace. We need to write the data from usp to ++ * current->start_stack, so we round each of these in order to be able ++ * to write an integer number of pages. ++ */ ++ ++struct user { ++ struct user_regs_struct regs; /* entire machine state */ ++ size_t u_tsize; /* text size (pages) */ ++ size_t u_dsize; /* data size (pages) */ ++ size_t u_ssize; /* stack size (pages) */ ++ unsigned long start_code; /* text starting address */ ++ unsigned long start_data; /* data starting address */ ++ unsigned long start_stack; /* stack starting address */ ++ long int signal; /* signal causing core dump */ ++ unsigned long u_ar0; /* help gdb find registers */ ++ unsigned long magic; /* identifies a core file */ ++ char u_comm[32]; /* user command name */ ++}; ++ ++#endif /* __ASM_CRIS_USER_H */ +diff -Nur uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sysdep.h uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sysdep.h +--- uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sysdep.h 2010-12-17 20:05:17.000000000 +0100 ++++ uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sysdep.h 2010-12-28 16:41:08.000000000 +0100 +@@ -20,6 +20,8 @@ + #ifndef _SYSDEP_H_ + #define _SYSDEP_H_ + ++#include <sys/syscall.h> ++ + #ifndef C_LABEL + + /* Define a macro we can use to construct the asm name for a C symbol. */ diff --git a/toolchain/uClibc/patches/devel-prefix-lib.patch b/toolchain/uClibc/patches/devel-prefix-lib.patch deleted file mode 100644 index 336fad1c7..000000000 --- a/toolchain/uClibc/patches/devel-prefix-lib.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff -Nur uClibc-0.9.30.3.orig/Makefile.in uClibc-0.9.30.3/Makefile.in ---- uClibc-0.9.30.3.orig/Makefile.in 2010-03-12 20:32:42.000000000 +0100 -+++ uClibc-0.9.30.3/Makefile.in 2010-03-12 22:05:15.486918488 +0100 -@@ -190,7 +190,7 @@ - install: install_runtime install_dev - - --RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX)lib $(RUNTIME_PREFIX)lib) -+RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX_LIB)lib $(RUNTIME_PREFIX)lib) - - $(top_builddir)extra/scripts/unifdef: $(top_srcdir)extra/scripts/unifdef.c|$(@D) - $(hcompile.u) -@@ -371,41 +371,41 @@ - - # Installs development library links. - install_dev: install_headers install_runtime -- $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib -- -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/ -+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX_LIB)lib -+ -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX_LIB)lib/ - ifeq ($(HAVE_SHARED),y) - for i in `find lib/ -type l -name 'lib[a-zA-Z]*.so' | \ - $(SED) -e 's/lib\///'` ; do \ - $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)$$i.$(MAJOR_VERSION) \ -- $(PREFIX)$(DEVEL_PREFIX)lib/$$i; \ -+ $(PREFIX)$(DEVEL_PREFIX_LIB)lib/$$i; \ - done - if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME) ] ; then \ -- $(RM) $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ -- $(SED) -e 's:$(NONSHARED_LIBNAME):$(DEVEL_PREFIX)lib/$(NONSHARED_LIBNAME):' \ -+ $(RM) $(PREFIX)$(DEVEL_PREFIX_LIB)lib/libc.so; \ -+ $(SED) -e 's:$(NONSHARED_LIBNAME):$(DEVEL_PREFIX_LIB)lib/$(NONSHARED_LIBNAME):' \ - -e 's:$(SHARED_MAJORNAME):$(RUNTIME_PREFIX)lib/$(SHARED_MAJORNAME):' \ - -e 's:$(UCLIBC_LDSO):$(RUNTIME_PREFIX)lib/$(UCLIBC_LDSO):' \ -- $(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \ -+ $(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX_LIB)lib/libc.so; \ - fi - ifeq ($(UCLIBC_HAS_THREADS),y) - ifneq ($(LINUXTHREADS_OLD),y) - if [ -f $(top_builddir)lib/libpthread.so -a -f $(PREFIX)$(RUNTIME_PREFIX)lib/libpthread.so.$(MAJOR_VERSION) ] ; then \ -- $(RM) $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \ -- cp $(top_srcdir)extra/scripts/format.lds $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \ -- echo "GROUP ( $(RUNTIME_PREFIX)lib/libpthread.so.$(MAJOR_VERSION) $(DEVEL_PREFIX)lib/libpthread_nonshared.a )" \ -- >> $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \ -+ $(RM) $(PREFIX)$(DEVEL_PREFIX_LIB)lib/libpthread.so; \ -+ cp $(top_srcdir)extra/scripts/format.lds $(PREFIX)$(DEVEL_PREFIX_LIB)lib/libpthread.so; \ -+ echo "GROUP ( $(RUNTIME_PREFIX)lib/libpthread.so.$(MAJOR_VERSION) $(DEVEL_PREFIX_LIB)lib/libpthread_nonshared.a )" \ -+ >> $(PREFIX)$(DEVEL_PREFIX_LIB)lib/libpthread.so; \ - fi - endif - endif - ifeq ($(PTHREADS_DEBUG_SUPPORT),y) - $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)libthread_db.so.1 \ -- $(PREFIX)$(DEVEL_PREFIX)lib/libthread_db.so -+ $(PREFIX)$(DEVEL_PREFIX_LIB)lib/libthread_db.so - endif - ifeq ($(DOPIC),y) - # # If we build shared libraries then the static libs are PIC... - # # Make _pic.a symlinks to make mklibs.py and similar tools happy. - if [ -d lib ] ; then \ - for i in `find lib/ -type f -name 'lib*.a' | $(SED) -e 's/lib\///'` ; do \ -- $(LN) -sf $$i $(PREFIX)$(DEVEL_PREFIX)lib/`echo $$i \ -+ $(LN) -sf $$i $(PREFIX)$(DEVEL_PREFIX_LIB)lib/`echo $$i \ - | $(SED) -e 's/\.a$$/_pic.a/'`; \ - done ; \ - fi -@@ -414,9 +414,9 @@ - ifeq ($(UCLIBC_FORMAT_SHARED_FLAT),y) - for file in lib/lib*.gdb; do \ - if test -f $$file; then \ -- $(INSTALL) -m 755 $$file $(PREFIX)$(DEVEL_PREFIX)lib; \ -+ $(INSTALL) -m 755 $$file $(PREFIX)$(DEVEL_PREFIX_LIB)lib; \ - $(INSTALL) -m 755 `echo $$file | $(SED) 's/\.gdb$$//'` \ -- $(PREFIX)$(DEVEL_PREFIX)lib; \ -+ $(PREFIX)$(DEVEL_PREFIX_LIB)lib; \ - fi; \ - done - endif diff --git a/toolchain/uClibc/patches/fix-daemon-pthread.patch b/toolchain/uClibc/patches/fix-daemon-pthread.patch deleted file mode 100644 index a137320c2..000000000 --- a/toolchain/uClibc/patches/fix-daemon-pthread.patch +++ /dev/null @@ -1,18 +0,0 @@ - Taken from OpenWrt, this patch fixes for a broken daemon() function - in applications linked against pthread, as the fork() function provided - by pthread has to be used then. It is said, that this won't fix for - statically compiled binaries. - - See here: https://dev.openwrt.org/attachment/ticket/4809/fix-daemon-pthread.patch - and here: https://bugs.busybox.net/show_bug.cgi?id=193 ---- a/libc/unistd/daemon.c 2006-07-05 21:52:39.000000000 +0200 -+++ b/libc/unistd/daemon.c 2009-03-21 08:45:25.000000000 +0100 -@@ -54,7 +54,7 @@ - libc_hidden_proto(dup2) - libc_hidden_proto(setsid) - libc_hidden_proto(chdir) --libc_hidden_proto(fork) -+/* libc_hidden_proto(fork) */ - - int daemon( int nochdir, int noclose ) - { |