summaryrefslogtreecommitdiffstats
path: root/toolchain/glibc-ports
diff options
context:
space:
mode:
authorNicolas Thill <nico@openwrt.org>2009-01-08 01:49:11 +0000
committerNicolas Thill <nico@openwrt.org>2009-01-08 01:49:11 +0000
commita3edea1b9136b05edfed95b58ba33a9ff46b6587 (patch)
treed770d58fd59fc61cac796defdba965d6e1af5f71 /toolchain/glibc-ports
parent001fd4384175d67eef5554613e6933ddb3c70585 (diff)
downloadmaster-31e0f0ae-a3edea1b9136b05edfed95b58ba33a9ff46b6587.tar.gz
master-31e0f0ae-a3edea1b9136b05edfed95b58ba33a9ff46b6587.tar.bz2
master-31e0f0ae-a3edea1b9136b05edfed95b58ba33a9ff46b6587.zip
add support for alternative C libraries (currently only glibc/eglibc) other (related) changes: - kernel headers are now installed using "make headers_install" on 2.6 - target names now contain an openwrt "vendor" tag (e.g. mips-openwrt-linux-gnu) - build directory names now contain gcc/libc name/version - default cpu for x86 is now i486 (required to build glibc/eglibc)
SVN-Revision: 13931
Diffstat (limited to 'toolchain/glibc-ports')
-rw-r--r--toolchain/glibc-ports/Makefile58
-rw-r--r--toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch13
-rw-r--r--toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch13
-rw-r--r--toolchain/glibc-ports/patches/2.6.1/401-mips_bootstrap_gcc_header_install.patch11
-rw-r--r--toolchain/glibc-ports/patches/2.6.1/603-powerpc-softfloat.patch21
-rw-r--r--toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch13
-rw-r--r--toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch13
-rw-r--r--toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch15
-rw-r--r--toolchain/glibc-ports/patches/2.7/104-arm_nptl_lowlevellock.patch13
-rw-r--r--toolchain/glibc-ports/patches/2.7/401-mips_bootstrap_gcc_header_install.patch11
10 files changed, 181 insertions, 0 deletions
diff --git a/toolchain/glibc-ports/Makefile b/toolchain/glibc-ports/Makefile
new file mode 100644
index 0000000000..2ddeb4e2be
--- /dev/null
+++ b/toolchain/glibc-ports/Makefile
@@ -0,0 +1,58 @@
+#
+# Copyright (C) 2006-2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=glibc-ports
+PKG_VERSION:=$(call qstrip,$(CONFIG_GLIBC_VERSION))
+
+ifeq ($(PKG_VERSION),2.3.6)
+ PKG_MD5SUM:=40dce745d34ff80401da2fdfe58f6d53
+endif
+ifeq ($(PKG_VERSION),2.6.1)
+ PKG_MD5SUM:=53d88ca624642dd267752ccce77b19d0
+endif
+ifeq ($(PKG_VERSION),2.7)
+ PKG_MD5SUM:=eaeb8527b8fa286c2d887157214f9998
+endif
+
+PKG_SOURCE_URL:=@GNU/glibc/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_CAT:=bzcat
+
+PATCH_DIR:=./patches/$(PKG_VERSION)
+
+STAGING_DIR_HOST:=$(TOOLCHAIN_DIR)
+BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN)
+
+override CONFIG_AUTOREBUILD=
+
+include $(INCLUDE_DIR)/host-build.mk
+
+STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.glibc-ports_built
+STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.glibc-ports_installed
+
+define Build/Prepare
+$(call Build/Prepare/Default)
+ ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Build/Install
+endef
+
+define Build/Clean
+ rm -rf \
+ $(PKG_BUILD_DIR) \
+ $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
+endef
+
+$(eval $(call HostBuild))
diff --git a/toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch b/toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch
new file mode 100644
index 0000000000..9279ccb64c
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch
@@ -0,0 +1,13 @@
+http://sourceware.org/ml/crossgcc/2008-05/msg00014.html
+
+diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c
+--- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c 2005-06-10 13:12:09.000000000 +0200
++++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-05-18 16:19:45.000000000 +0200
+@@ -45,7 +45,6 @@
+ #include <sys/mman.h>
+
+ #include <linux/version.h>
+-#include <asm/page.h>
+ #include <sys/sysctl.h>
+
+ #define PATH_ARM_SYSTYPE "/etc/arm_systype"
diff --git a/toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch b/toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch
new file mode 100644
index 0000000000..1207e7969b
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch
@@ -0,0 +1,13 @@
+diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+--- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2005-11-16 20:22:59.000000000 +0100
++++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-09-06 13:53:16.000000000 +0200
+@@ -132,3 +132,9 @@
+ # define NO_CANCELLATION 1
+
+ #endif
++
++#ifndef __ASSEMBLER__
++# define RTLD_SINGLE_THREAD_P \
++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
++ header.multiple_threads) == 0, 1)
++#endif
diff --git a/toolchain/glibc-ports/patches/2.6.1/401-mips_bootstrap_gcc_header_install.patch b/toolchain/glibc-ports/patches/2.6.1/401-mips_bootstrap_gcc_header_install.patch
new file mode 100644
index 0000000000..0908974a93
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.6.1/401-mips_bootstrap_gcc_header_install.patch
@@ -0,0 +1,11 @@
+diff -ruN glibc-ports-2.7-orig/sysdeps/mips/mips32/Makefile glibc-ports-2.7/sysdeps/mips/mips32/Makefile
+--- glibc-ports-2.7-orig/ports/sysdeps/mips/mips32/Makefile 2003-03-29 09:15:28.000000000 +0100
++++ glibc-ports-2.7/sysdeps/mips/mips32/Makefile 2008-10-01 17:04:40.475005748 +0200
+@@ -1,3 +1,7 @@
++ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),)
+ ifeq ($(filter -mabi=32,$(CC)),)
+ CC += -mabi=32
+ endif
++else
++CC += -D"_MIPS_SZPTR=32"
++endif
diff --git a/toolchain/glibc-ports/patches/2.6.1/603-powerpc-softfloat.patch b/toolchain/glibc-ports/patches/2.6.1/603-powerpc-softfloat.patch
new file mode 100644
index 0000000000..3213c9aed0
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.6.1/603-powerpc-softfloat.patch
@@ -0,0 +1,21 @@
+From: http://sourceware.org/ml/crossgcc/2008-10/msg00044.html
+From: http://sources.redhat.com/ml/libc-ports/2007-06/msg00005.html
+
+2007-06-07 Steven Munroe <sjmunroe@us.ibm.com>
+
+ * sysdeps/powerpc/nofpu/Makefile: Remove fe_nomask from libm-support.
+
+diff -urN glibc-ports-2.6.1.orig/sysdeps/powerpc/nofpu/Makefile glibc-ports-2.6.1/sysdeps/powerpc/nofpu/Makefile
+--- glibc-ports-2.6.1.orig/sysdeps/powerpc/nofpu/Makefile 2006-11-22 09:13:11.000000000 -0600
++++ glibc-ports-2.6.1/sysdeps/powerpc/nofpu/Makefile 2007-06-07 09:53:05.708240976 -0500
+@@ -6,7 +6,7 @@
+ endif
+
+ ifeq ($(subdir),math)
+-libm-support += fenv_const fe_nomask
++libm-support += fenv_const
+ CPPFLAGS += -I../soft-fp/
+ # The follow CFLAGS are a work around for GCC Bugzilla Bug 29253
+ # "expand_abs wrong default code for floating point"
+
+
diff --git a/toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch b/toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch
new file mode 100644
index 0000000000..9279ccb64c
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch
@@ -0,0 +1,13 @@
+http://sourceware.org/ml/crossgcc/2008-05/msg00014.html
+
+diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c
+--- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/ioperm.c 2005-06-10 13:12:09.000000000 +0200
++++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-05-18 16:19:45.000000000 +0200
+@@ -45,7 +45,6 @@
+ #include <sys/mman.h>
+
+ #include <linux/version.h>
+-#include <asm/page.h>
+ #include <sys/sysctl.h>
+
+ #define PATH_ARM_SYSTYPE "/etc/arm_systype"
diff --git a/toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch b/toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch
new file mode 100644
index 0000000000..65836b6816
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch
@@ -0,0 +1,13 @@
+diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+--- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2005-11-16 20:22:59.000000000 +0100
++++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-09-06 13:53:16.000000000 +0200
+@@ -126,3 +126,9 @@
+ # define NO_CANCELLATION 1
+
+ #endif
++
++#ifndef __ASSEMBLER__
++# define RTLD_SINGLE_THREAD_P \
++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
++ header.multiple_threads) == 0, 1)
++#endif
diff --git a/toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch b/toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch
new file mode 100644
index 0000000000..8f363137c8
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch
@@ -0,0 +1,15 @@
+http://sourceware.org/ml/libc-ports/2008-02/msg00005.html
+
+diff -durN glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+--- glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-06-06 19:27:04.000000000 +0200
++++ glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2008-05-18 16:57:21.000000000 +0200
+@@ -73,6 +73,9 @@
+ # define DOCARGS_5 DOCARGS_4
+ # define UNDOCARGS_5 UNDOCARGS_4
+
++# define DOCARGS_6 DOCARGS_5
++# define UNDOCARGS_6 UNDOCARGS_5
++
+ # ifdef IS_IN_libpthread
+ # define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
+ # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
diff --git a/toolchain/glibc-ports/patches/2.7/104-arm_nptl_lowlevellock.patch b/toolchain/glibc-ports/patches/2.7/104-arm_nptl_lowlevellock.patch
new file mode 100644
index 0000000000..047f786cf6
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.7/104-arm_nptl_lowlevellock.patch
@@ -0,0 +1,13 @@
+http://www.nabble.com/arm-linux-compilation-failure-and-possible-fix-td19229074.html
+
+diff -durN glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/ioperm.c
+--- glibc-ports-2.7.orig/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig 2008-10-04 20:46:13.000000000 +0200
++++ glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2008-10-04 20:45:40.000000000 +0200
+@@ -25,6 +25,7 @@
+ #include <atomic.h>
+ #include <sysdep.h>
+ #include <kernel-features.h>
++#include <tls.h>
+
+ #define FUTEX_WAIT 0
+ #define FUTEX_WAKE 1
diff --git a/toolchain/glibc-ports/patches/2.7/401-mips_bootstrap_gcc_header_install.patch b/toolchain/glibc-ports/patches/2.7/401-mips_bootstrap_gcc_header_install.patch
new file mode 100644
index 0000000000..66f42e9284
--- /dev/null
+++ b/toolchain/glibc-ports/patches/2.7/401-mips_bootstrap_gcc_header_install.patch
@@ -0,0 +1,11 @@
+diff -ruN glibc-ports-2.7-orig/sysdeps/mips/mips32/Makefile glibc-ports-2.7/sysdeps/mips/mips32/Makefile
+--- glibc-ports-2.7-orig/sysdeps/mips/mips32/Makefile 2003-03-29 09:15:28.000000000 +0100
++++ glibc-ports-2.7/sysdeps/mips/mips32/Makefile 2008-10-01 17:04:40.475005748 +0200
+@@ -1,3 +1,7 @@
++ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),)
+ ifeq ($(filter -mabi=32,$(CC)),)
+ CC += -mabi=32
+ endif
++else
++CC += -D"_MIPS_SZPTR=32"
++endif