From 3b75e47f8f0d1db7575f0824f7a2469e2e8af7cf Mon Sep 17 00:00:00 2001 From: Nicolas Thill Date: Thu, 8 Jan 2009 01:49:11 +0000 Subject: [massive] 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) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13931 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- toolchain/glibc-ports/Makefile | 58 ++++++++++++++++++++++ .../patches/2.6.1/101-arm_asm_page_h.patch | 13 +++++ .../glibc-ports/patches/2.6.1/102-arm_nptl.patch | 13 +++++ .../401-mips_bootstrap_gcc_header_install.patch | 11 ++++ .../patches/2.6.1/603-powerpc-softfloat.patch | 21 ++++++++ .../patches/2.7/101-arm_asm_page_h.patch | 13 +++++ .../glibc-ports/patches/2.7/102-arm_nptl.patch | 13 +++++ .../patches/2.7/103-arm_nptl_cargs6.patch | 15 ++++++ .../patches/2.7/104-arm_nptl_lowlevellock.patch | 13 +++++ .../401-mips_bootstrap_gcc_header_install.patch | 11 ++++ 10 files changed, 181 insertions(+) create mode 100644 toolchain/glibc-ports/Makefile create mode 100644 toolchain/glibc-ports/patches/2.6.1/101-arm_asm_page_h.patch create mode 100644 toolchain/glibc-ports/patches/2.6.1/102-arm_nptl.patch create mode 100644 toolchain/glibc-ports/patches/2.6.1/401-mips_bootstrap_gcc_header_install.patch create mode 100644 toolchain/glibc-ports/patches/2.6.1/603-powerpc-softfloat.patch create mode 100644 toolchain/glibc-ports/patches/2.7/101-arm_asm_page_h.patch create mode 100644 toolchain/glibc-ports/patches/2.7/102-arm_nptl.patch create mode 100644 toolchain/glibc-ports/patches/2.7/103-arm_nptl_cargs6.patch create mode 100644 toolchain/glibc-ports/patches/2.7/104-arm_nptl_lowlevellock.patch create mode 100644 toolchain/glibc-ports/patches/2.7/401-mips_bootstrap_gcc_header_install.patch (limited to 'toolchain/glibc-ports') 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 + + #include +-#include + #include + + #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 + + * 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 + + #include +-#include + #include + + #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 + #include + #include ++#include + + #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 -- cgit v1.2.3