summaryrefslogtreecommitdiff
path: root/toolchain/uClibc
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/uClibc')
-rw-r--r--toolchain/uClibc/Makefile10
-rw-r--r--toolchain/uClibc/Makefile.inc4
-rw-r--r--toolchain/uClibc/patches/cris.patch97
-rw-r--r--toolchain/uClibc/patches/devel-prefix-lib.patch78
-rw-r--r--toolchain/uClibc/patches/fix-daemon-pthread.patch18
5 files changed, 104 insertions, 103 deletions
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index ee64a4940..194bce39a 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -15,7 +15,7 @@ endif
$(WRKBUILD)/.headers:
$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak
sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${TOOLCHAIN_SYSROOT}/usr/include\"' \
- $(TOPDIR)/target/$(ADK_TARGET)/uclibc.config >${WRKBUILD}/.config
+ $(TOPDIR)/target/$(ADK_TARGET_ARCH)/uclibc.config >${WRKBUILD}/.config
ifneq ($(ADK_DEBUG),)
$(SED) 's,DOSTRIP,DODEBUG,' ${WRKBUILD}/.config
endif
@@ -41,7 +41,7 @@ $(WRKBUILD)/.compiled:
$(WRKBUILD)/.install_headers: $(WRKBUILD)/.compiled
$(MAKE) -C $(WRKBUILD) \
- PREFIX=$(STAGING_DIR) \
+ PREFIX=$(STAGING_TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
DEVEL_PREFIX_LIB=/ \
RUNTIME_PREFIX=/ \
@@ -51,14 +51,14 @@ $(WRKBUILD)/.install_headers: $(WRKBUILD)/.compiled
$(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
$(MAKE) -C $(WRKBUILD) \
- PREFIX=$(STAGING_DIR) \
+ PREFIX=$(STAGING_TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
DEVEL_PREFIX_LIB=/ \
RUNTIME_PREFIX=/ \
CPU_CFLAGS="$(TARGET_CFLAGS)" \
install_runtime
- rm -rf $(STAGING_DIR)/lib/libc.so
- ln -s libc.so.0 $(STAGING_DIR)/lib/libc.so
+ rm -rf $(STAGING_TARGET_DIR)/lib/libc.so
+ ln -s libc.so.0 $(STAGING_TARGET_DIR)/lib/libc.so
touch $@
include ${TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/uClibc/Makefile.inc b/toolchain/uClibc/Makefile.inc
index f02b99e1a..0b7812b5f 100644
--- a/toolchain/uClibc/Makefile.inc
+++ b/toolchain/uClibc/Makefile.inc
@@ -2,8 +2,8 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= uClibc
-PKG_VERSION:= 0.9.30.3
+PKG_VERSION:= 0.9.32-rc1
PKG_RELEASE:= 1
-PKG_MD5SUM:= 73a4bf4a0fa508b01a7a3143574e3d21
+PKG_MD5SUM:= ec2ec3e187bd68327ee94c31846d275a
PKG_SITES:= http://uclibc.org/downloads/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
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 )
- {