From: Carsten Schlote <[email protected]>

- Updated Kconfig for eglibc
- Updated fixup-script for eglibc
- Copied glibc rules as templates for eglibc rules
  and modified as needed

- Added env 'install-bootstrap-headers' define to disables some
  unwanted compilation in sunrpc submodule.

- Changed way to checkout a given subversion revision for eglibc

  There are no release tarballs for eglibc. So I hacked the get stages
  to use subversion to checkout a branch and revision. The code can
  be moved to an external script and simplyfied/improved.

  Functionality could be moved to usual make_get script in ptxdist, so
  that other packages might profit from this feature.

Signed-off-by: Carsten Schlote <[email protected]>
---
 Kconfig                                           |    7 +
 fixup_ptxconfigs.sh                               |   14 ++
 rules/{glibc-crt.make => eglibc-crt.make}         |   43 +++--
 rules/{glibc-first.make => eglibc-first.make}     |   52 +++---
 rules/{glibc-headers.make => eglibc-headers.make} |   61 +++---
 rules/eglibc-linuxthreads.in                      |    7 +
 rules/eglibc-linuxthreads.make                    |  116 ++++++++++++
 rules/eglibc-ports.in                             |   19 ++
 rules/eglibc-ports.make                           |  127 +++++++++++++
 rules/eglibc.in                                   |  111 +++++++++++
 rules/eglibc.make                                 |  202 +++++++++++++++++++++
 rules/libc.in                                     |    8 +-
 12 files changed, 690 insertions(+), 77 deletions(-)
 copy rules/{glibc-crt.make => eglibc-crt.make} (71%)
 copy rules/{glibc-first.make => eglibc-first.make} (65%)
 copy rules/{glibc-headers.make => eglibc-headers.make} (66%)
 create mode 100644 rules/eglibc-linuxthreads.in
 create mode 100644 rules/eglibc-linuxthreads.make
 create mode 100644 rules/eglibc-ports.in
 create mode 100644 rules/eglibc-ports.make
 create mode 100644 rules/eglibc.in
 create mode 100644 rules/eglibc.make

diff --git a/Kconfig b/Kconfig
index 47647a3..c3f414f 100644
--- a/Kconfig
+++ b/Kconfig
@@ -34,6 +34,12 @@ comment "----------------------------------"
 
 source "workspace/rules/libc.in"
 
+if LIBC_EGLIBC
+source "workspace/rules/eglibc.in"
+source "workspace/rules/eglibc-ports.in"
+source "workspace/rules/eglibc-linuxthreads.in"
+endif
+
 if LIBC_GLIBC
 source "workspace/rules/glibc.in"
 source "workspace/rules/glibc-ports.in"
@@ -93,6 +99,7 @@ config PREFIX_JAVA
 
 config PREFIX_TCID
        string  
+       default 
"gcc-${PTXCONF_CROSS_GCC_VERSION}${PTXCONF_PREFIX_JAVA}-eglibc-${PTXCONF_EGLIBC_VERSION}-binutils-${PTXCONF_CROSS_BINUTILS_VERSION}-kernel-${PTXCONF_KERNEL_HEADERS_VERSION}${PTXCONF_PREFIX_KERNEL}"
   if LIBC_EGLIBC
        default 
"gcc-${PTXCONF_CROSS_GCC_VERSION}${PTXCONF_PREFIX_JAVA}-glibc-${PTXCONF_GLIBC_VERSION}-binutils-${PTXCONF_CROSS_BINUTILS_VERSION}-kernel-${PTXCONF_KERNEL_HEADERS_VERSION}${PTXCONF_PREFIX_KERNEL}"
     if LIBC_GLIBC
        default 
"gcc-${PTXCONF_CROSS_GCC_VERSION}${PTXCONF_PREFIX_JAVA}-uclibc-${PTXCONF_UCLIBC_VERSION}-binutils-${PTXCONF_CROSS_BINUTILS_VERSION}-kernel-${PTXCONF_KERNEL_HEADERS_VERSION}${PTXCONF_PREFIX_KERNEL}"
   if LIBC_UCLIBC
        default 
"gcc-${PTXCONF_CROSS_GCC_VERSION}-newlib-${PTXCONF_NEWLIB_VERSION}-binutils-${PTXCONF_CROSS_BINUTILS_VERSION}"
  if LIBC_NEWLIB
diff --git a/fixup_ptxconfigs.sh b/fixup_ptxconfigs.sh
index 9142483..a6c2462 100755
--- a/fixup_ptxconfigs.sh
+++ b/fixup_ptxconfigs.sh
@@ -26,7 +26,9 @@ fixup()
     # defaults
     PTXCONF_PREFIX="/opt"
     PTXCONF_GLIBC_CONFIG_EXTRA=""
+    PTXCONF_EGLIBC_CONFIG_EXTRA=""
     PTXCONF_GLIBC_TIMESTAMP=""
+    PTXCONF_EGLIBC_SVNREV="HEAD"
     PTXCONF_CROSS_GCC_LANG_JAVA=n
     PTXCONF_KERNEL_HEADERS_SANITIZED=n
     # FIXME: nptl vs. linuxthreads
@@ -47,6 +49,9 @@ fixup()
            gcc*)
                PTXCONF_CROSS_GCC_VERSION="${part##gcc-}"
                ;;
+           eglibc*)
+               PTXCONF_EGLIBC_VERSION="${part##eglibc-}"
+               ;;
            glibc*)
                PTXCONF_GLIBC_VERSION="${part##glibc-}"
                ;;
@@ -96,9 +101,11 @@ fixup()
     case "${PTXCONF_GNU_TARGET}" in
        arm*gnueabi)
            PTXCONF_GLIBC_HEADERS_FAKE_CROSS="-D__ARM_EABI__"
+           PTXCONF_EGLIBC_HEADERS_FAKE_CROSS="-D__ARM_EABI__"
            ;;
        mips*)
            PTXCONF_GLIBC_HEADERS_FAKE_CROSS="-DBOOTSTRAP_GCC"
+           PTXCONF_EGLIBC_HEADERS_FAKE_CROSS="-DBOOTSTRAP_GCC"
            ;;
        *)
            ;;
@@ -132,6 +139,7 @@ fixup()
     #
     # PTXCONF_CROSS_GCC_CONFIG_EXTRA
     # PTXCONF_GLIBC_CONFIG_EXTRA
+    # PTXCONF_EGLIBC_CONFIG_EXTRA
     #
     case "${PTXCONF_GNU_TARGET}" in
        # hard, fpa
@@ -221,18 +229,24 @@ fixup()
            ;;
     esac
 
+       PTXCONF_EGLIBC_CONFIG_EXTRA="${PTXCONF_GLIBC_CONFIG_EXTRA}"
+       
     #
     # PTXCONF_GLIBC_ENABLE_KERNEL
+    # PTXCONF_EGLIBC_ENABLE_KERNEL
     #
     case "${PTXCONF_KERNEL_HEADERS_VERSION}" in
        2.6.18)
            PTXCONF_GLIBC_ENABLE_KERNEL="2.6.16"
+           PTXCONF_EGLIBC_ENABLE_KERNEL="2.6.16"
            ;;
        2.6.2[456789])
            PTXCONF_GLIBC_ENABLE_KERNEL="2.6.23"
+           PTXCONF_EGLIBC_ENABLE_KERNEL="2.6.23"
            ;;
        2.6.3[123456789])
            PTXCONF_GLIBC_ENABLE_KERNEL="2.6.31"
+           PTXCONF_EGLIBC_ENABLE_KERNEL="2.6.31"
            ;;
        "")
            ;;
diff --git a/rules/glibc-crt.make b/rules/eglibc-crt.make
similarity index 71%
copy from rules/glibc-crt.make
copy to rules/eglibc-crt.make
index f597787..e42539c 100644
--- a/rules/glibc-crt.make
+++ b/rules/eglibc-crt.make
@@ -2,6 +2,7 @@
 # $Id$
 #
 # Copyright (C) 2006 by Robert Schwebel <[email protected]>
+#       2009 by Carsten Schlote
 #
 # See CREDITS for details about who has contributed to this project.
 #
@@ -12,18 +13,18 @@
 #
 # We provide this package
 #
-PACKAGES-$(PTXCONF_GLIBC_CRT) += glibc-crt
+PACKAGES-$(PTXCONF_EGLIBC_CRT) += eglibc-crt
 
 #
 # Paths and names
 #
-GLIBC_CRT_DIR  = $(BUILDDIR)/$(GLIBC)-crt-build
+EGLIBC_CRT_DIR = $(BUILDDIR)/$(EGLIBC)-crt-build
 
 # ----------------------------------------------------------------------------
 # Get
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-crt.get: $(STATEDIR)/glibc.get
+$(STATEDIR)/eglibc-crt.get: $(STATEDIR)/eglibc.get
        @$(call targetinfo)
        @$(call touch)
 
@@ -31,7 +32,7 @@ $(STATEDIR)/glibc-crt.get: $(STATEDIR)/glibc.get
 # Extract
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-crt.extract: $(STATEDIR)/glibc.extract
+$(STATEDIR)/eglibc-crt.extract: $(STATEDIR)/eglibc.extract
        @$(call targetinfo)
        @$(call touch)
 
@@ -39,8 +40,8 @@ $(STATEDIR)/glibc-crt.extract: $(STATEDIR)/glibc.extract
 # Prepare
 # ----------------------------------------------------------------------------
 
-GLIBC_CRT_PATH := PATH=$(CROSS_PATH)
-GLIBC_CRT_ENV := \
+EGLIBC_CRT_PATH := PATH=$(CROSS_PATH)
+EGLIBC_CRT_ENV := \
        BUILD_CC=$(HOSTCC) \
        \
        ac_cv_path_GREP=grep \
@@ -52,24 +53,24 @@ GLIBC_CRT_ENV := \
 #
 # autoconf
 #
-GLIBC_CRT_AUTOCONF = $(GLIBC_AUTOCONF)
+EGLIBC_CRT_AUTOCONF = $(EGLIBC_AUTOCONF)
 
-$(STATEDIR)/glibc-crt.prepare:
+$(STATEDIR)/eglibc-crt.prepare:
        @$(call targetinfo)
-       @$(call clean, $(GLIBC_CRT_DIR))
-       mkdir -p $(GLIBC_CRT_DIR)
-       cd $(GLIBC_CRT_DIR) && eval \
-               $(GLIBC_CRT_PATH) $(GLIBC_CRT_ENV) \
-               $(GLIBC_DIR)/configure $(GLIBC_CRT_AUTOCONF)
+       @$(call clean, $(EGLIBC_CRT_DIR))
+       mkdir -p $(EGLIBC_CRT_DIR)
+       cd $(EGLIBC_CRT_DIR) && eval \
+               $(EGLIBC_CRT_PATH) $(EGLIBC_CRT_ENV) \
+               $(EGLIBC_DIR)/configure $(EGLIBC_CRT_AUTOCONF)
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Compile
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-crt.compile:
+$(STATEDIR)/eglibc-crt.compile:
        @$(call targetinfo)
-       cd $(GLIBC_CRT_DIR) && $(GLIBC_CRT_PATH) \
+       cd $(EGLIBC_CRT_DIR) && $(EGLIBC_CRT_PATH) \
                $(MAKE) $(PARALLELMFLAGS) csu/subdir_lib
        @$(call touch)
 
@@ -77,11 +78,11 @@ $(STATEDIR)/glibc-crt.compile:
 # Install
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-crt.install:
+$(STATEDIR)/eglibc-crt.install:
        @$(call targetinfo)
        mkdir -p $(SYSROOT)/usr/lib
        for file in {S,}crt1.o crt{i,n}.o; do \
-               $(INSTALL) -m 644 $(GLIBC_CRT_DIR)/csu/$$file \
+               $(INSTALL) -m 644 $(EGLIBC_CRT_DIR)/csu/$$file \
                        $(SYSROOT)/usr/lib/$$file || exit 1; \
        done
        @$(call touch)
@@ -90,7 +91,7 @@ $(STATEDIR)/glibc-crt.install:
 # Target-Install
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-crt.targetinstall:
+$(STATEDIR)/eglibc-crt.targetinstall:
        @$(call targetinfo)
        @$(call touch)
 
@@ -98,8 +99,8 @@ $(STATEDIR)/glibc-crt.targetinstall:
 # Clean
 # ----------------------------------------------------------------------------
 
-glibc-crt_clean:
-       rm -rf $(STATEDIR)/glibc-crt.*
-       rm -rf $(GLIBC_CRT_DIR)
+eglibc-crt_clean:
+       rm -rf $(STATEDIR)/eglibc-crt.*
+       rm -rf $(EGLIBC_CRT_DIR)
 
 # vim: syntax=make
diff --git a/rules/glibc-first.make b/rules/eglibc-first.make
similarity index 65%
copy from rules/glibc-first.make
copy to rules/eglibc-first.make
index fdd46a6..8eac57d 100644
--- a/rules/glibc-first.make
+++ b/rules/eglibc-first.make
@@ -3,6 +3,7 @@
 #
 # Copyright (C) 2006 by Robert Schwebel
 #              2007, 2008 by Marc Kleine-Budde
+#       2009 by Carsten Schlote
 #
 # See CREDITS for details about who has contributed to this project.
 #
@@ -13,18 +14,18 @@
 #
 # We provide this package
 #
-PACKAGES-$(PTXCONF_GLIBC_FIRST) += glibc-first
+PACKAGES-$(PTXCONF_EGLIBC_FIRST) += eglibc-first
 
 #
 # Paths and names
 #
-GLIBC_FIRST_BUILDDIR   = $(BUILDDIR)/$(GLIBC)-first-build
+EGLIBC_FIRST_BUILDDIR  = $(BUILDDIR)/$(EGLIBC)-first-build
 
 # ----------------------------------------------------------------------------
 # Get
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-first.get: $(STATEDIR)/glibc.get
+$(STATEDIR)/eglibc-first.get: $(STATEDIR)/eglibc.get
        @$(call targetinfo)
        @$(call touch)
 
@@ -32,7 +33,7 @@ $(STATEDIR)/glibc-first.get: $(STATEDIR)/glibc.get
 # Extract
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-first.extract: $(STATEDIR)/glibc.extract
+$(STATEDIR)/eglibc-first.extract: $(STATEDIR)/eglibc.extract
        @$(call targetinfo)
        @$(call touch)
 
@@ -40,8 +41,8 @@ $(STATEDIR)/glibc-first.extract: $(STATEDIR)/glibc.extract
 # Prepare
 # ----------------------------------------------------------------------------
 
-GLIBC_FIRST_PATH := PATH=$(CROSS_PATH)
-GLIBC_FIRST_ENV := \
+EGLIBC_FIRST_PATH := PATH=$(CROSS_PATH)
+EGLIBC_FIRST_ENV := \
        CC=$(CROSS_CC) \
        CXX=false \
        BUILD_CC=$(HOSTCC) \
@@ -56,47 +57,48 @@ GLIBC_FIRST_ENV := \
        \
        ac_cv_sizeof_long_double=$(PTXCONF_SIZEOF_LONG_DOUBLE)
 
-GLIBC_FIRST_MAKEVARS := AUTOCONF=no
+EGLIBC_FIRST_MAKEVARS := AUTOCONF=no
 
-GLIBC_FIRST_AUTOCONF = \
-       $(GLIBC_AUTOCONF_COMMON) \
+EGLIBC_FIRST_AUTOCONF = \
+       $(EGLIBC_AUTOCONF_COMMON) \
        --disable-debug \
        --disable-profile \
 
-$(STATEDIR)/glibc-first.prepare:
+$(STATEDIR)/eglibc-first.prepare:
        @$(call targetinfo)
-       @$(call clean, $(GLIBC_FIRST_BUILDDIR))
-       mkdir -p $(GLIBC_FIRST_BUILDDIR)
-       cd $(GLIBC_FIRST_BUILDDIR) && \
-               $(GLIBC_FIRST_ENV) $(GLIBC_FIRST_PATH) \
-               $(GLIBC_DIR)/configure $(GLIBC_FIRST_AUTOCONF)
+       @$(call clean, $(EGLIBC_FIRST_BUILDDIR))
+       mkdir -p $(EGLIBC_FIRST_BUILDDIR)
+       cd $(EGLIBC_FIRST_BUILDDIR) && \
+               $(EGLIBC_FIRST_ENV) $(EGLIBC_FIRST_PATH) \
+               $(EGLIBC_DIR)/configure $(EGLIBC_FIRST_AUTOCONF)
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Compile
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-first.compile:
+$(STATEDIR)/eglibc-first.compile:
        @$(call targetinfo)
-       cd $(GLIBC_FIRST_BUILDDIR) && $(GLIBC_FIRST_PATH) $(MAKE) 
$(PARALLELMFLAGS) lib
+       cd $(EGLIBC_FIRST_BUILDDIR) && $(EGLIBC_FIRST_PATH) $(MAKE) 
$(PARALLELMFLAGS) lib
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Install
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-first.install:
+$(STATEDIR)/eglibc-first.install:
        @$(call targetinfo)
-       cd $(GLIBC_FIRST_BUILDDIR) && \
-               $(GLIBC_FIRST_PATH) $(MAKE) $(GLIBC_FIRST_MAKEVARS) \
-               install_root=$(SYSROOT) install-lib-all install-headers
+       cd $(EGLIBC_FIRST_BUILDDIR) && \
+               $(EGLIBC_FIRST_PATH) $(MAKE) $(EGLIBC_FIRST_MAKEVARS) \
+               install_root=$(SYSROOT) install-bootstrap-headers=yes \
+               install-lib-all install-headers  
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Target-Install
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-first.targetinstall:
+$(STATEDIR)/eglibc-first.targetinstall:
        @$(call targetinfo)
        @$(call touch)
 
@@ -104,8 +106,8 @@ $(STATEDIR)/glibc-first.targetinstall:
 # Clean
 # ----------------------------------------------------------------------------
 
-glibc-first_clean:
-       rm -rf $(STATEDIR)/glibc-first.*
-       rm -rf $(GLIBC_FIRST_BUILDDIR)
+eglibc-first_clean:
+       rm -rf $(STATEDIR)/eglibc-first.*
+       rm -rf $(EGLIBC_FIRST_BUILDDIR)
 
 # vim: syntax=make
diff --git a/rules/glibc-headers.make b/rules/eglibc-headers.make
similarity index 66%
copy from rules/glibc-headers.make
copy to rules/eglibc-headers.make
index de0d157..3f51dc6 100644
--- a/rules/glibc-headers.make
+++ b/rules/eglibc-headers.make
@@ -2,6 +2,7 @@
 # $Id$
 #
 # Copyright (C) 2006 by Robert Schwebel
+#       2009 by Carsten Schlote
 #
 # See CREDITS for details about who has contributed to this project.
 #
@@ -12,18 +13,18 @@
 #
 # We provide this package
 #
-PACKAGES-$(PTXCONF_GLIBC_HEADERS) += glibc-headers
+PACKAGES-$(PTXCONF_EGLIBC_HEADERS) += eglibc-headers
 
 #
 # Paths and names
 #
-GLIBC_HEADERS_DIR      = $(BUILDDIR)/$(GLIBC)-headers-build
+EGLIBC_HEADERS_DIR     = $(BUILDDIR)/$(EGLIBC)-headers-build
 
 # ----------------------------------------------------------------------------
 # Get
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-headers.get: $(STATEDIR)/glibc.get
+$(STATEDIR)/eglibc-headers.get: $(STATEDIR)/eglibc.get
        @$(call targetinfo)
        @$(call touch)
 
@@ -31,7 +32,7 @@ $(STATEDIR)/glibc-headers.get: $(STATEDIR)/glibc.get
 # Extract
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-headers.extract: $(STATEDIR)/glibc.extract
+$(STATEDIR)/eglibc-headers.extract: $(STATEDIR)/eglibc.extract
        @$(call targetinfo)
        @$(call touch)
 
@@ -39,16 +40,16 @@ $(STATEDIR)/glibc-headers.extract: $(STATEDIR)/glibc.extract
 # Prepare
 # ----------------------------------------------------------------------------
 
-GLIBC_HEADERS_PATH := PATH=$(CROSS_PATH)
+EGLIBC_HEADERS_PATH := PATH=$(CROSS_PATH)
 #
 # these various env variables are necessary, because we are using the host 
compiler
 # it doesn't matter if we define ppc stuff during arm build
 # they aren't tested :)
 # no ifdefs for simplicity
 #
-GLIBC_HEADERS_ENV  := \
+EGLIBC_HEADERS_ENV  := \
        $(HOST_ENV) \
-       CC="$${CC} $(PTXCONF_GLIBC_HEADERS_FAKE_CROSS)" \
+       CC="$${CC} $(PTXCONF_EGLIBC_HEADERS_FAKE_CROSS)" \
        \
        libc_cv_asm_symver_directive=yes \
        libc_cv_asm_protected_directive=yes \
@@ -79,56 +80,56 @@ GLIBC_HEADERS_ENV  := \
 #
 # autoconf
 #
-GLIBC_HEADERS_AUTOCONF = \
-       $(GLIBC_AUTOCONF_COMMON) \
+EGLIBC_HEADERS_AUTOCONF = \
+       $(EGLIBC_AUTOCONF_COMMON) \
        \
        --enable-hacker-mode
 
-$(STATEDIR)/glibc-headers.prepare:
+$(STATEDIR)/eglibc-headers.prepare:
        @$(call targetinfo)
-       @$(call clean, $(GLIBC_HEADERS_DIR))
-       mkdir -p $(GLIBC_HEADERS_DIR)
-       cd $(GLIBC_HEADERS_DIR) && \
-               $(GLIBC_HEADERS_PATH) $(GLIBC_HEADERS_ENV) \
-               $(GLIBC_DIR)/configure $(GLIBC_HEADERS_AUTOCONF)
+       @$(call clean, $(EGLIBC_HEADERS_DIR))
+       mkdir -p $(EGLIBC_HEADERS_DIR)
+       cd $(EGLIBC_HEADERS_DIR) && \
+               $(EGLIBC_HEADERS_PATH) $(EGLIBC_HEADERS_ENV) \
+               $(EGLIBC_DIR)/configure $(EGLIBC_HEADERS_AUTOCONF)
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Compile
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-headers.compile:
+$(STATEDIR)/eglibc-headers.compile:
        @$(call targetinfo)
-       cd $(GLIBC_HEADERS_DIR) && \
-               $(GLIBC_HEADERS_PATH) $(GLIBC_HEADERS_ENV) \
+       cd $(EGLIBC_HEADERS_DIR) && \
+               $(EGLIBC_HEADERS_PATH) $(EGLIBC_HEADERS_ENV) \
                $(MAKE) sysdeps/gnu/errlist.c
 
-       mkdir -p $(GLIBC_HEADERS_DIR)/stdio-common
-       touch $(GLIBC_HEADERS_DIR)/stdio-common/errlist-compat.c
+       mkdir -p $(EGLIBC_HEADERS_DIR)/stdio-common
+       touch $(EGLIBC_HEADERS_DIR)/stdio-common/errlist-compat.c
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Install
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-headers.install:
+$(STATEDIR)/eglibc-headers.install:
        @$(call targetinfo)
-       cd $(GLIBC_HEADERS_DIR) && \
-               $(GLIBC_HEADERS_PATH) $(GLIBC_HEADERS_ENV) \
-               $(MAKE) cross_compiling=yes install_root=$(SYSROOT) 
install-headers
+       cd $(EGLIBC_HEADERS_DIR) && \
+               $(EGLIBC_HEADERS_PATH) $(EGLIBC_HEADERS_ENV) \
+               $(MAKE) cross_compiling=yes install-bootstrap-headers=yes 
install_root=$(SYSROOT) install-headers
 
        mkdir -p $(SYSROOT)/usr/include/gnu
        touch $(SYSROOT)/usr/include/gnu/stubs.h
 
-       cp $(GLIBC_DIR)/include/features.h $(SYSROOT)/usr/include/features.h
-       cp $(GLIBC_HEADERS_DIR)/bits/stdio_lim.h 
$(SYSROOT)/usr/include/bits/stdio_lim.h
+       cp $(EGLIBC_DIR)/include/features.h $(SYSROOT)/usr/include/features.h
+       cp $(EGLIBC_HEADERS_DIR)/bits/stdio_lim.h 
$(SYSROOT)/usr/include/bits/stdio_lim.h
        @$(call touch)
 
 # ----------------------------------------------------------------------------
 # Target-Install
 # ----------------------------------------------------------------------------
 
-$(STATEDIR)/glibc-headers.targetinstall:
+$(STATEDIR)/eglibc-headers.targetinstall:
        @$(call targetinfo)
        @$(call touch)
 
@@ -136,8 +137,8 @@ $(STATEDIR)/glibc-headers.targetinstall:
 # Clean
 # ----------------------------------------------------------------------------
 
-glibc-headers_clean:
-       rm -rf $(STATEDIR)/glibc-headers.*
-       rm -rf $(GLIBC_HEADERS_DIR)
+eglibc-headers_clean:
+       rm -rf $(STATEDIR)/eglibc-headers.*
+       rm -rf $(EGLIBC_HEADERS_DIR)
 
 # vim: syntax=make
diff --git a/rules/eglibc-linuxthreads.in b/rules/eglibc-linuxthreads.in
new file mode 100644
index 0000000..d0de6e3
--- /dev/null
+++ b/rules/eglibc-linuxthreads.in
@@ -0,0 +1,7 @@
+config EGLIBC_LINUXTHREADS
+       bool
+
+config EGLIBC_LINUXTHREADS_VERSION
+       depends on EGLIBC_LINUXTHREADS
+       string
+       default "${PTXCONF_EGLIBC_VERSION}"
diff --git a/rules/eglibc-linuxthreads.make b/rules/eglibc-linuxthreads.make
new file mode 100644
index 0000000..7263e3a
--- /dev/null
+++ b/rules/eglibc-linuxthreads.make
@@ -0,0 +1,116 @@
+# -*-makefile-*-
+# $Id: template 6001 2006-08-12 10:15:00Z mkl $
+#
+# Copyright (C) 2006 by Marc Kleine-Budde <[email protected]>
+#       2009 by Carsten Schlote
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_EGLIBC_LINUXTHREADS) += eglibc-linuxthreads
+
+#
+# Paths and names
+#
+EGLIBC_LINUXTHREADS_VERSION    := $(call 
remove_quotes,$(PTXCONF_EGLIBC_LINUXTHREADS_VERSION))
+EGLIBC_LINUXTHREADS            := 
eglibc-linuxthreads-$(EGLIBC_LINUXTHREADS_VERSION)
+EGLIBC_LINUXTHREADS_SUFFIX     := svn
+EGLIBC_LINUXTHREADS_URL                = $(EGLIBC_URL)
+EGLIBC_LINUXTHREADS_SVNREV     = $(EGLIBC_SVNREV)
+EGLIBC_LINUXTHREADS_SOURCE     := 
$(SRCDIR)/$(EGLIBC_LINUXTHREADS).$(EGLIBC_LINUXTHREADS_SUFFIX)
+EGLIBC_LINUXTHREADS_SOURCE_B := $(SRCDIR)/$(EGLIBC_LINUXTHREADS)
+EGLIBC_LINUXTHREADS_DIR                := $(BUILDDIR)/$(EGLIBC_LINUXTHREADS)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(EGLIBC_LINUXTHREADS_SOURCE): | $(EGLIBC_LINUXTHREADS_SOURCE_B)
+       @$(call targetinfo)
+       # @$(call get, EGLIBC_LINUXTHREADS)
+       # See http://www.eglibc.org/archives/issues/msg00064.html
+       if [ -d $(EGLIBC_LINUXTHREADS_SOURCE_B) ]; then \
+          rev1=`svnversion $(EGLIBC_LINUXTHREADS_SOURCE_B)`; \
+          rev2=`cat $...@`; \
+          if test "$$rev1" != "$$rev2"; then \
+             touch $@; \
+             echo Touched $@ because of changes; \
+          fi; \
+       else \
+          rm -rf $@; \
+       fi
+
+$(EGLIBC_LINUXTHREADS_SOURCE_B):
+       if [ -d $(EGLIBC_LINUXTHREADS_SOURCE_B) ]; then \
+          svn update $(EGLIBC_PORTS_SVNREV) $(EGLIBC_LINUXTHREADS_SOURCE_B);\
+       else \
+          svn co $(EGLIBC_LINUXTHREADS_SVNREV) 
$(EGLIBC_LINUXTHREADS_URL)/linuxthreads $(EGLIBC_LINUXTHREADS_SOURCE_B); \
+       fi
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+ifdef PTXCONF_EGLIBC_LINUXTHREADS
+$(STATEDIR)/eglibc.extract: $(STATEDIR)/eglibc-linuxthreads.extract
+endif
+
+$(STATEDIR)/eglibc-linuxthreads.extract:
+       @$(call targetinfo)
+       @$(call clean, $(EGLIBC_LINUXTHREADS_DIR))
+       # @$(call extract, EGLIBC_LINUXTHREADS, $(EGLIBC_LINUXTHREADS_DIR))
+       # See http://www.eglibc.org/archives/issues/msg00064.html
+       svn export $(EGLIBC_LINUXTHREADS_SOURCE_B) $(EGLIBC_LINUXTHREADS_DIR)
+       @$(call patchin, EGLIBC_LINUXTHREADS, $(EGLIBC_LINUXTHREADS_DIR))
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-linuxthreads.prepare:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-linuxthreads.compile:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-linuxthreads.install:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-linuxthreads.targetinstall:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+eglibc-linuxthreads_clean:
+  ifeq ($(call remove_quotes $(PTXCONF_EGLIBC_LINUXTHREADS_SVNREV)),HEAD)
+       rm -rf $(EGLIBC_LINUXTHREADS_SOURCE)
+  endif
+       rm -rf $(STATEDIR)/eglibc-linuxthreads.*
+       rm -rf $(EGLIBC_LINUXTHREADS_DIR)
+
+# vim: syntax=make
diff --git a/rules/eglibc-ports.in b/rules/eglibc-ports.in
new file mode 100644
index 0000000..c864188
--- /dev/null
+++ b/rules/eglibc-ports.in
@@ -0,0 +1,19 @@
+menuconfig EGLIBC_PORTS
+       prompt "eglibc-ports                 "
+       bool
+
+config EGLIBC_PORTS_VERSION
+       depends on EGLIBC_PORTS
+       string
+       default "${PTXCONF_EGLIBC_VERSION}"
+
+config EGLIBC_PORTS_SVNREV
+       depends on EGLIBC_PORTS
+       string
+       default "${PTXCONF_EGLIBC_SVNREV}"
+
+config EGLIBC_PORTS_SERIES
+       depends on EGLIBC_PORTS
+       string
+       prompt "eglibc-ports patch series file"
+       default "series"
diff --git a/rules/eglibc-ports.make b/rules/eglibc-ports.make
new file mode 100644
index 0000000..5904023
--- /dev/null
+++ b/rules/eglibc-ports.make
@@ -0,0 +1,127 @@
+# -*-makefile-*-
+# $Id$
+#
+# Copyright (C) 2006 by Robert Schwebel
+#              2008 by Marc Kleine-Budde <[email protected]>
+#       2009 by Carsten Schlote
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_EGLIBC_PORTS) += eglibc-ports
+
+#
+# Paths and names
+#
+ifneq ($(call remove_quotes $(PTXCONF_EGLIBC_PORTS_VERSION)),)
+EGLIBC_PORTS_VERSION   := -$(call 
remove_quotes,$(PTXCONF_EGLIBC_PORTS_VERSION))
+else
+EGLIBC_PORTS_VERSION   := -$(call remove_quotes,$(PTXCONF_EGLIBC_VERSION))
+endif
+
+ifneq ($(call remove_quotes $(PTXCONF_EGLIBC_PORTS_SVNREV)),)
+EGLIBC_PORTS_SVNREV    := -r $(call 
remove_quotes,$(PTXCONF_EGLIBC_PORTS_SVNREV))
+endif
+EGLIBC_PORTS           := eglibc-ports$(EGLIBC_PORTS_VERSION)
+
+EGLIBC_PORTS_SUFFIX    := svn
+EGLIBC_PORTS_SOURCE    := $(SRCDIR)/$(EGLIBC_PORTS).$(EGLIBC_PORTS_SUFFIX)
+EGLIBC_PORTS_SOURCE_B := $(SRCDIR)/$(EGLIBC_PORTS)
+EGLIBC_PORTS_DIR       := $(BUILDDIR)/$(EGLIBC_PORTS)
+
+EGLIBC_PORTS_URL       := $(EGLIBC_URL)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(EGLIBC_PORTS_SOURCE): | $(EGLIBC_PORTS_SOURCE_B)
+       @$(call targetinfo)
+       @#$(call get, EGLIBC_PORTS)
+       # See http://www.eglibc.org/archives/issues/msg00064.html
+       if [ -d $(EGLIBC_PORTS_SOURCE_B) ]; then \
+          rev1=`svnversion $(EGLIBC_PORTS_SOURCE_B)`; \
+          rev2=`cat $...@`; \
+          if test "$$rev1" != "$$rev2"; then \
+             echo $$rev1 > $@; \
+             echo Touched $@ because of changes; \
+          fi; \
+       else \
+          rm $@; \
+       fi
+
+$(EGLIBC_PORTS_SOURCE_B): 
+       if [ -d $(EGLIBC_PORTS_SOURCE_B) ]; then \
+          svn update $(EGLIBC_PORTS_SVNREV) $(EGLIBC_PORTS_SOURCE_B);\
+       else \
+          svn co $(EGLIBC_PORTS_SVNREV) $(EGLIBC_PORTS_URL)/ports 
$(EGLIBC_PORTS_SOURCE_B); \
+       fi
+
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+ifdef PTXCONF_EGLIBC_PORTS
+$(STATEDIR)/eglibc.extract: $(STATEDIR)/eglibc-ports.extract
+endif
+
+$(STATEDIR)/eglibc-ports.extract:
+       @$(call targetinfo)
+       @$(call clean, $(EGLIBC_PORTS_DIR))
+       # @$(call extract, EGLIBC_PORTS, $(BUILDDIR))
+       # See http://www.eglibc.org/archives/issues/msg00064.html
+       svn export $(EGLIBC_PORTS_SOURCE_B) $(EGLIBC_PORTS_DIR)
+       @$(call patchin, EGLIBC_PORTS, $(EGLIBC_PORTS_DIR))
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-ports.prepare:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-ports.compile:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-ports.install:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc-ports.targetinstall:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+eglibc-ports_clean:
+  ifeq ($(call remove_quotes $(PTXCONF_EGLIBC_PORTS_SVNREV)),HEAD)
+       rm -rf $(EGLIBC_PORTS_SOURCE)
+  endif
+       rm -rf $(STATEDIR)/eglibc-ports.*
+       rm -rf $(EGLIBC_PORTS_DIR)
+
+# vim: syntax=make
diff --git a/rules/eglibc.in b/rules/eglibc.in
new file mode 100644
index 0000000..8879f8c
--- /dev/null
+++ b/rules/eglibc.in
@@ -0,0 +1,111 @@
+# config for eglibc
+
+config EGLIBC_HEADERS
+       bool
+       select KERNEL_HEADERS
+
+config EGLIBC_CRT
+       bool
+       select CROSS_GCC_FIRST
+
+config EGLIBC_FIRST
+       bool
+       select CROSS_GCC_FIRST
+
+menuconfig EGLIBC
+       bool
+
+       select EGLIBC_CRT
+#      select EGLIBC_PORTS             if EGLIBC_ADDON_NPTL && ( ARCH_ARM || 
ARCH_MIPS )
+       select EGLIBC_LINUXTHREADS      if EGLIBC_ADDON_LINUXTHREADS
+
+       select TOOLCHAIN_ENABLE_SYSROOT
+       select TOOLCHAIN_DISABLE_MULTILIB
+
+       select CROSS_GCC
+       select CROSS_GCC_ENABLE_CXA_ATEXIT
+       select CROSS_GCC_DISABLE_SJLJ_EXCEPTIONS
+       select CROSS_GCC_ENABLE_LIBSSP
+       select CROSS_GCC_ENABLE_SHARED
+       select CROSS_GCC_THREADS_POSIX
+
+       prompt "eglibc                       "
+
+config EGLIBC_VERSION
+       depends on EGLIBC
+       string
+       prompt "eglibc version"
+       default ""
+       help
+         Specify the eglibc version here.
+         Leave empty for eglibc trunk snapshots and enter a timestamp below.
+
+config EGLIBC_SVNREV
+       depends on EGLIBC
+       string
+       prompt "eglibc svn revision"
+       default "HEAD"
+       help
+         For eglibc branches at a specific revision enter the revision
+         number here here,
+         or "HEAD" or if you want try the latest version.
+
+config EGLIBC_SERIES
+       depends on EGLIBC
+       string
+       prompt "eglibc patch series file"
+       default "series"
+
+config EGLIBC_ENABLE_KERNEL
+       depends on EGLIBC
+       string
+       prompt "mininum kernel version"
+       default "2.6.23"
+
+config EGLIBC_CONFIG_EXTRA
+       depends on EGLIBC
+       string
+       prompt "extra configure options"
+       help
+         Add these extra options to eglibc's configure script.
+
+config EGLIBC_HEADERS_FAKE_CROSS
+       depends on EGLIBC
+       string
+       prompt "fake cross args"
+       default "-D__ARM_EABI__"        if ARCH_ARM
+       default "-DBOOTSTRAP_GCC"       if ARCH_MIPS
+       help
+         Add these args to fake a crosscompiler during eglibc-header 
extraction stage.
+
+choice
+       prompt "Thread implementation"
+       depends on EGLIBC
+       default EGLIBC_ADDON_NPTL
+
+       config EGLIBC_ADDON_NOTHREADS
+               bool
+               prompt "no threading support"
+               help
+                 Activate the linuxthreads addon.
+
+       config EGLIBC_ADDON_LINUXTHREADS
+               bool
+               prompt "linuxthreads"
+               help
+                 Activate the linuxthreads addon.
+
+       config EGLIBC_ADDON_NPTL
+               bool
+               prompt "nptl"
+               select EGLIBC_TLS
+               help
+                 Activate the NPTL addon.
+endchoice
+
+config EGLIBC_TLS
+       depends on EGLIBC
+       bool
+       prompt "enable TLS"
+       help
+         Activate Thread Local Storage.
diff --git a/rules/eglibc.make b/rules/eglibc.make
new file mode 100644
index 0000000..622eafb
--- /dev/null
+++ b/rules/eglibc.make
@@ -0,0 +1,202 @@
+# -*-makefile-*-
+# $Id: template 6655 2007-01-02 12:55:21Z rsc $
+#
+# Copyright (C) 2006 by Robert Schwebel
+#              2007, 2008 by Marc Kleine-Budde
+#       2009 by Carsten Schlote
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_EGLIBC) += eglibc
+
+#
+# Paths and names
+#
+ifneq ($(PTXCONF_EGLIBC_VERSION),"")
+EGLIBC_VERSION := -$(call remove_quotes,$(PTXCONF_EGLIBC_VERSION))
+endif
+ifneq ($(PTXCONF_EGLIBC_SVNREV),"")
+EGLIBC_SVNREV  := -r $(call remove_quotes,$(PTXCONF_EGLIBC_SVNREV))
+endif
+
+EGLIBC                 := eglibc$(EGLIBC_VERSION)
+EGLIBC_SUFFIX  := svn
+EGLIBC_SOURCE  := $(SRCDIR)/$(EGLIBC).$(EGLIBC_SUFFIX)
+EGLIBC_SOURCE_B        := $(SRCDIR)/$(EGLIBC)
+EGLIBC_DIR             := $(BUILDDIR_DEBUG)/$(EGLIBC)
+EGLIBC_BUILDDIR        := $(BUILDDIR)/$(EGLIBC)-build
+
+EGLIBC_URL     := svn://svn.eglibc.org/branches/eglibc$(subst 
.,_,$(EGLIBC_VERSION))
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(EGLIBC_SOURCE): | $(EGLIBC_SOURCE_B)
+       @$(call targetinfo)
+       # @$(call get, EGLIBC)
+       # See http://www.eglibc.org/archives/issues/msg00064.html
+       if [ -d $(EGLIBC_SOURCE_B) ]; then \
+          rev1=`svnversion $(EGLIBC_SOURCE_B)`; \
+          rev2=`cat $...@`; \
+          if test "$$rev1" != "$$rev2"; then \
+             echo $$rev1 > $@; \
+             echo Touched $@ because of changes; \
+          fi; \
+       else \
+          rm  $@; \
+       fi
+
+$(EGLIBC_SOURCE_B):
+       if [ -d $(EGLIBC_SOURCE_B) ]; then \
+          svn update $(EGLIBC_SVNREV) $(EGLIBC_SOURCE_B);\
+       else \
+          svn co $(EGLIBC_SVNREV) $(EGLIBC_PORTS_URL)/libc $(EGLIBC_SOURCE_B); 
\
+       fi
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc.extract:
+       @$(call targetinfo)
+       @$(call clean, $(EGLIBC_DIR))
+       # @$(call extract, EGLIBC, $(BUILDDIR_DEBUG))
+       # See http://www.eglibc.org/archives/issues/msg00064.html
+       svn export $(EGLIBC_SOURCE_B) $(EGLIBC_DIR)
+       @$(call patchin, EGLIBC, $(EGLIBC_DIR))
+
+ifdef PTXCONF_EGLIBC_LINUXTHREADS
+       cp -r $(EGLIBC_LINUXTHREADS_DIR)/linuxthreads $(EGLIBC_DIR)
+       cp -r $(EGLIBC_LINUXTHREADS_DIR)/linuxthreads_db $(EGLIBC_DIR)
+endif
+ifdef PTXCONF_EGLIBC_PORTS
+       mkdir -p $(EGLIBC_DIR)/ports
+       cp -r $(EGLIBC_PORTS_DIR)/* $(EGLIBC_DIR)/ports
+endif
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+EGLIBC_PATH := PATH=$(CROSS_PATH)
+EGLIBC_ENV := \
+       CC=$(CROSS_CC) \
+       BUILD_CC=$(HOSTCC) \
+       ac_cv_sizeof_long_double=$(PTXCONF_SIZEOF_LONG_DOUBLE)
+
+
+EGLIBC_MAKEVARS := AUTOCONF=no
+
+#
+# autoconf
+#
+ifdef PTXCONF_EGLIBC_PORTS
+EGLIBC_ADDONS  += ports
+endif
+ifdef PTXCONF_EGLIBC_ADDON_NPTL
+EGLIBC_ADDONS  += nptl
+endif
+ifdef PTXCONF_EGLIBC_ADDON_LINUXTHREADS
+EGLIBC_ADDONS  += linuxthreads
+endif
+
+EGLIBC_AUTOCONF_COMMON := \
+       --prefix=/usr \
+       --host=$(PTXCONF_GNU_TARGET) \
+       --target=$(PTXCONF_GNU_TARGET) \
+       \
+       --with-headers=$(SYSROOT)/usr/include \
+       --enable-add-ons=$(subst $(space),$(comma),$(EGLIBC_ADDONS)) \
+       \
+       --without-cvs \
+       --without-gd \
+       --without-selinux \
+       --disable-sanity-checks \
+       \
+       $(PTXCONF_EGLIBC_CONFIG_EXTRA)
+
+ifdef PTXCONF_EGLIBC_TLS
+EGLIBC_AUTOCONF_COMMON += --with-tls --with-__thread
+else
+EGLIBC_AUTOCONF_COMMON += --without-tls --without-__thread
+endif
+
+EGLIBC_AUTOCONF := \
+       $(EGLIBC_AUTOCONF_COMMON) \
+       \
+       --enable-kernel=$(PTXCONF_EGLIBC_ENABLE_KERNEL) \
+       --enable-debug \
+       --enable-profile \
+       --enable-shared \
+       --enable-static-nss
+
+$(STATEDIR)/eglibc.prepare:
+       @$(call targetinfo)
+       @$(call clean, $(EGLIBC_BUILDDIR))
+       mkdir -p $(EGLIBC_BUILDDIR)
+       cd $(EGLIBC_BUILDDIR) && \
+               $(EGLIBC_ENV) $(EGLIBC_PATH) \
+               $(EGLIBC_DIR)/configure $(EGLIBC_AUTOCONF)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc.compile:
+       @$(call targetinfo)
+       cd $(EGLIBC_BUILDDIR) && $(EGLIBC_PATH) $(MAKE) $(PARALLELMFLAGS)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc.install:
+       @$(call targetinfo)
+       cd $(EGLIBC_BUILDDIR) && \
+               $(EGLIBC_PATH) $(MAKE) $(EGLIBC_MAKEVARS) \
+               install_root=$(SYSROOT) install
+#
+# Fix a bug when linking statically
+# see: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=76451
+# see: http://www.sourceware.org/bugzilla/show_bug.cgi?id=631
+#
+       mv -- "$(SYSROOT)/usr/lib/libc.a" "$(SYSROOT)/usr/lib/libc_ns.a"
+       echo '/* GNU ld script'                                                 
                                >  "$(SYSROOT)/usr/lib/libc.a"
+       echo '   Use the static library, but some functions are in other 
strange'                               >> "$(SYSROOT)/usr/lib/libc.a"
+       echo '   libraries :-( So try them secondarily. */'                     
                                >> "$(SYSROOT)/usr/lib/libc.a"
+       echo 'GROUP ( /usr/lib/libc_ns.a /usr/lib/libnss_files_pic.a 
/usr/lib/libnss_dns_pic.a /usr/lib/libresolv.a )'  >> 
"$(SYSROOT)/usr/lib/libc.a"
+       @#echo 'GROUP ( /usr/lib/libc_ns.a /usr/lib/libnss_files.a 
/usr/lib/libnss_dns.a /usr/lib/libresolv.a )'        >> 
"$(SYSROOT)/usr/lib/libc.a"
+
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/eglibc.targetinstall:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+eglibc_clean:
+  ifeq ($(call remove_quotes $(PTXCONF_EGLIBC_SVNREV)),HEAD)
+       rm -rf $(EGLIBC_SOURCE)
+  endif
+       rm -rf $(STATEDIR)/eglibc.*
+       rm -rf $(EGLIBC_DIR)
+
+# vim: syntax=make
diff --git a/rules/libc.in b/rules/libc.in
index 85f0258..91cac02 100644
--- a/rules/libc.in
+++ b/rules/libc.in
@@ -1,5 +1,6 @@
 config LIBC_HEADERS
        bool
+       select EGLIBC_HEADERS           if LIBC_EGLIBC
        select GLIBC_HEADERS            if LIBC_GLIBC
        select UCLIBC_HEADERS           if LIBC_UCLIBC
        select W32API_HEADERS           if LIBC_MINGW
@@ -9,11 +10,12 @@ config LIBC_FIRST
        bool
        select CROSS_GCC_FIRST
        
+       select EGLIBC_FIRST             if LIBC_EGLIBC
        select GLIBC_FIRST              if LIBC_GLIBC
        select UCLIBC                   if LIBC_UCLIBC
        select NEWLIB                   if LIBC_NEWLIB
        select W32API                   if LIBC_MINGW
-       select MINGW_RUNTIME            if LIBC_MINGW
+       select MINGW_RUNTIME    if LIBC_MINGW
        select AVRLIB                   if LIBC_AVR
 
 config LIBC
@@ -26,6 +28,10 @@ choice
        prompt "C library"
        default LIBC_GLIBC
 
+       config LIBC_EGLIBC
+               bool
+               prompt "eglibc          "
+
        config LIBC_GLIBC
                bool
                prompt "glibc           "
-- 
1.6.6.1


--
ptxdist mailing list
[email protected]

Reply via email to