[PATCH] crosstool-ng: ARM with glibc 2.7

Matthias Kaehlcke matthias@kaehlcke.net
Mon May 12 21:08:00 GMT 2008


hi again,

El Mon, May 12, 2008 at 05:00:32PM +0200 Matthias Kaehlcke ha dit:

> ARM toolchains with glibc 2.7 don't build with crosstool-ng, due to an
> include that is no longer exported by the linux kernel. the following
> patch fixes this problem

in my first attempt i build an EABI toolchain. later i tried to build
the same toolchain with OABI but it failed with an assembler
error. googling i found the following solution: 

http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo/src/patchsets/glibc/2.7/6225_all_glibc-2.7-cargs6.patch

below is a new patch that fixes the assembler error and the include
problem of the initial patch

for if someone is interested i attached the configuration files for
building crosstool-ng with glibc 2.7 (EABI and OABI) that work for me
in combination with these patches

--

diff -urN crosstool-ng-1.1.0.orig/patches/glibc/ports-2.7/100-ARM-asm-page.patch crosstool-ng-1.1.0/patches/glibc/ports-2.7/100-ARM-asm-page.patch
--- crosstool-ng-1.1.0.orig/patches/glibc/ports-2.7/100-ARM-asm-page.patch	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-ng-1.1.0/patches/glibc/ports-2.7/100-ARM-asm-page.patch	2008-05-12 22:24:09.000000000 +0200
@@ -0,0 +1,10 @@
+--- glibc-2.7.orig/glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/ioperm.c	2008-05-12 13:09:37.000000000 +0200
++++ glibc-2.7/glibc-ports-2.7/sysdeps/unix/sysv/linux/arm/ioperm.c	2008-05-12 13:09:50.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 -urN crosstool-ng-1.1.0.orig/patches/glibc/ports-2.7/110-ARM-NPTL.patch crosstool-ng-1.1.0/patches/glibc/ports-2.7/110-ARM-NPTL.patch
--- crosstool-ng-1.1.0.orig/patches/glibc/ports-2.7/110-ARM-NPTL.patch	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-ng-1.1.0/patches/glibc/ports-2.7/110-ARM-NPTL.patch	2008-05-12 22:24:34.000000000 +0200
@@ -0,0 +1,12 @@
+--- glibc-2.7.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2008-05-12 19:47:13.000000000 +0200
++++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h	2008-05-12 19:48:11.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)

-- 
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona

              You can't separate peace from freedom because no
               one can be at peace unless he has his freedom
                              (Malcolm X)
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-
-------------- next part --------------
#
# Automatically generated make config: don't edit
# crosstool-NG version: 1.1.0
# Mon May 12 13:14:45 2008
#

#
# Paths and misc options
#

#
# crosstool-NG behavior
#
# CT_OBSOLETE is not set
CT_EXPERIMENTAL=y
# CT_BROKEN is not set
# CT_DEBUG_CT is not set

#
# Downloading
#
# CT_FORCE_DOWNLOAD is not set
# CT_ONLY_DOWNLOAD is not set
CT_PROXY_TYPE_NONE=y
# CT_PROXY_TYPE_HTTP is not set
# CT_PROXY_TYPE_SOCKS is not set
CT_PROXY_TYPE="none"
# CT_BREAK_INDENT is not set

#
# Extracting
#
# CT_FORCE_EXTRACT is not set
# CT_ONLY_EXTRACT is not set

#
# Build behavior
#
CT_PARALLEL_JOBS=1
CT_LOAD=0
CT_NICE=0
CT_USE_PIPES=y

#
# Paths
#
CT_LOCAL_TARBALLS_DIR=""
CT_PREFIX_DIR="${HOME}/${CT_TARGET}"
CT_INSTALL_DIR="${CT_PREFIX_DIR}"
# CT_CUSTOM_PATCH is not set
CT_REMOVE_DOCS=y
# CT_INSTALL_DIR_RO is not set

#
# Logging
#
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_DEBUG is not set
# CT_LOG_ALL is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y

#
# Target options
#

#
# General target options
#
CT_ARCH="arm"
CT_ARCH_ARM=y
# CT_ARCH_IA64 is not set
# CT_ARCH_MIPS is not set
# CT_ARCH_SH is not set
# CT_ARCH_x86 is not set
# CT_ARCH_x86_64 is not set
CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
# CT_ARCH_DEFAULT_BE is not set
CT_ARCH_DEFAULT_LE=y
# CT_ARCH_BE is not set
CT_ARCH_LE=y

#
# ARM specific options
#
CT_ARCH_ARM_EABI=y

#
# Target optimisations
#
CT_ARCH_ARCH=""
CT_ARCH_ABI=""
CT_ARCH_CPU=""
CT_ARCH_TUNE=""
CT_ARCH_FPU=""
# CT_ARCH_FLOAT_HW is not set
CT_ARCH_FLOAT_SW=y
CT_TARGET_CFLAGS=""

#
# Toolchain options
#

#
# General toolchain options
#
CT_USE_SYSROOT=y
CT_SHARED_LIBS=y
CT_THREADS_NPTL=y
# CT_THREADS_LINUXTHREADS is not set
# CT_THREADS_NONE is not set
CT_THREADS="nptl"
CT_TARGET_VENDOR="unknown"
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""

#
# Toolchain type
#
# CT_NATIVE is not set
CT_CROSS=y
# CT_CROSS_NATIVE is not set
# CT_CANADIAN is not set
CT_TOOLCHAIN_TYPE="cross"
CT_BUILD=""
CT_CC_NATIVE="gcc"

#
# Kernel
#
CT_KERNEL_LINUX=y
CT_KERNEL_VERSION="2.6.25.1"
CT_KERNEL_LINUX_HEADERS_INSTALL=y
# CT_KERNEL_LINUX_HEADERS_SANITISED is not set
# CT_KERNEL_LINUX_HEADERS_COPY is not set
# CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR is not set
CT_KERNEL="linux"
CT_KERNEL_VERSION_SEE_EXTRAVERSION=y
# CT_KERNEL_INSTALL_V_2_6_18_8 is not set
# CT_KERNEL_INSTALL_V_2_6_19_7 is not set
# CT_KERNEL_INSTALL_V_2_6_20_21 is not set
# CT_KERNEL_INSTALL_V_2_6_21_7 is not set
# CT_KERNEL_INSTALL_V_2_6_22_19 is not set
# CT_KERNEL_INSTALL_V_2_6_23_17 is not set
# CT_KERNEL_INSTALL_V_2_6_24 is not set
# CT_KERNEL_INSTALL_V_2_6_24_1 is not set
# CT_KERNEL_INSTALL_V_2_6_24_2 is not set
# CT_KERNEL_INSTALL_V_2_6_24_3 is not set
# CT_KERNEL_INSTALL_V_2_6_24_4 is not set
# CT_KERNEL_INSTALL_V_2_6_24_5 is not set
# CT_KERNEL_INSTALL_V_2_6_24_6 is not set
# CT_KERNEL_INSTALL_V_2_6_25 is not set
CT_KERNEL_INSTALL_V_2_6_25_1=y
# CT_KERNEL_LINUX_HEADERS_INSTALL_CHECK is not set
CT_KERNEL_LINUX_VERBOSITY_0=y
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
# CT_KERNEL_LINUX_VERBOSITY_2 is not set
CT_KERNEL_LINUX_VERBOSE_LEVEL=0
# CT_KERNEL_LINUX_NEEDS_CONFIG is not set

#
# binutils
#
CT_BINUTILS_VERSION="2.18"
# CT_BINUTILS_V_2_14 is not set
# CT_BINUTILS_V_2_15 is not set
# CT_BINUTILS_V_2_16_1 is not set
# CT_BINUTILS_V_2_17 is not set
CT_BINUTILS_V_2_18=y
# CT_BINUTILS_V_2_18_50_0_4 is not set
# CT_BINUTILS_V_2_18_50_0_6 is not set
CT_BINUTILS_EXTRA_CONFIG=""
# CT_BINUTILS_FOR_TARGET is not set

#
# C compiler
#
CT_CC_GCC=y
CT_CC_VERSION="4.2.1"
CT_CC="gcc"
# CT_CC_V_2_95_3 is not set
# CT_CC_V_3_2_3 is not set
# CT_CC_V_3_3_6 is not set
# CT_CC_V_3_4_6 is not set
# CT_CC_V_4_0_0 is not set
# CT_CC_V_4_0_1 is not set
# CT_CC_V_4_0_2 is not set
# CT_CC_V_4_0_3 is not set
# CT_CC_V_4_0_4 is not set
# CT_CC_V_4_1_0 is not set
# CT_CC_V_4_1_1 is not set
# CT_CC_V_4_1_2 is not set
# CT_CC_V_4_2_0 is not set
CT_CC_V_4_2_1=y
# CT_CC_V_4_2_2 is not set
# CT_CC_V_4_2_3 is not set
CT_CC_CXA_ATEXIT=y
CT_CC_CORE_EXTRA_CONFIG=""
CT_CC_EXTRA_CONFIG=""
# CT_CC_GCC_GMP_MPFR is not set
CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_JAVA=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y

#
# Additional supported languages:
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JAVA is not set
# CT_CC_LANG_ADA is not set
# CT_CC_LANG_OBJC is not set
# CT_CC_LANG_OBJCXX is not set
CT_CC_LANG_OTHERS=""

#
# C-library
#
CT_LIBC_GLIBC=y
# CT_LIBC_UCLIBC is not set
CT_LIBC_VERSION="2.7"
CT_LIBC="glibc"
CT_LIBC_SUPPORT_NPTL=y
CT_LIBC_SUPPORT_LINUXTHREADS=y
# CT_LIBC_V_2_3_6 is not set
# CT_LIBC_V_2_5 is not set
# CT_LIBC_V_2_5_1 is not set
# CT_LIBC_V_2_6 is not set
# CT_LIBC_V_2_6_1 is not set
CT_LIBC_V_2_7=y
CT_LIBC_GLIBC_EXTRA_CONFIG=""
CT_LIBC_GLIBC_EXTRA_CFLAGS=""
CT_LIBC_EXTRA_CC_ARGS=""
CT_LIBC_GLIBC_CONFIGPARMS=""
CT_LIBC_GLIBC_USE_PORTS=y
# CT_LIBC_ADDONS is not set

#
# Tools facilities
#
CT_SSTRIP=y
# CT_SSTRIP_ELFKICKERS is not set
CT_SSTRIP_BUILDROOT=y
CT_SSTRIP_FROM="buildroot"

#
# Debug facilities
#
# CT_DMALLOC is not set
CT_DUMA=y
CT_DUMA_A=y
CT_DUMA_SO=y
CT_DUMA_V_2_5_1=y
# CT_DUMA_V_2_5_8 is not set
# CT_DUMA_V_2_5_12 is not set
CT_DUMA_VERSION="2_5_1"
CT_GDB=y
CT_GDB_CROSS=y
# CT_GDB_CROSS_STATIC_GDB is not set
CT_GDB_CROSS_STATIC_GDBSERVER=y
# CT_GDB_NATIVE is not set
# CT_GDB_V_snapshot is not set
# CT_GDB_V_6_4 is not set
# CT_GDB_V_6_5 is not set
CT_GDB_V_6_6=y
# CT_GDB_V_6_7 is not set
# CT_GDB_V_6_7_1 is not set
# CT_GDB_V_6_8 is not set
CT_GDB_VERSION="6.6"
CT_STRACE=y
# CT_STRACE_V_4_5 is not set
# CT_STRACE_V_4_5_14 is not set
CT_STRACE_V_4_5_15=y
# CT_STRACE_V_4_5_16 is not set
CT_STRACE_VERSION="4.5.15"
-------------- next part --------------
#
# Automatically generated make config: don't edit
# crosstool-NG version: 1.1.0
# Mon May 12 18:22:58 2008
#

#
# Paths and misc options
#

#
# crosstool-NG behavior
#
# CT_OBSOLETE is not set
CT_EXPERIMENTAL=y
# CT_BROKEN is not set
# CT_DEBUG_CT is not set

#
# Downloading
#
# CT_FORCE_DOWNLOAD is not set
# CT_ONLY_DOWNLOAD is not set
CT_PROXY_TYPE_NONE=y
# CT_PROXY_TYPE_HTTP is not set
# CT_PROXY_TYPE_SOCKS is not set
CT_PROXY_TYPE="none"
# CT_BREAK_INDENT is not set

#
# Extracting
#
# CT_FORCE_EXTRACT is not set
# CT_ONLY_EXTRACT is not set

#
# Build behavior
#
CT_PARALLEL_JOBS=1
CT_LOAD=0
CT_NICE=0
CT_USE_PIPES=y

#
# Paths
#
CT_LOCAL_TARBALLS_DIR=""
CT_PREFIX_DIR="${HOME}/${CT_TARGET}"
CT_INSTALL_DIR="${CT_PREFIX_DIR}"
# CT_CUSTOM_PATCH is not set
CT_REMOVE_DOCS=y
# CT_INSTALL_DIR_RO is not set

#
# Logging
#
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
# CT_LOG_EXTRA is not set
# CT_LOG_DEBUG is not set
CT_LOG_ALL=y
CT_LOG_LEVEL_MAX="ALL"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y

#
# Target options
#

#
# General target options
#
CT_ARCH="arm"
CT_ARCH_ARM=y
# CT_ARCH_IA64 is not set
# CT_ARCH_MIPS is not set
# CT_ARCH_SH is not set
# CT_ARCH_x86 is not set
# CT_ARCH_x86_64 is not set
CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
# CT_ARCH_DEFAULT_BE is not set
CT_ARCH_DEFAULT_LE=y
# CT_ARCH_BE is not set
CT_ARCH_LE=y

#
# ARM specific options
#
# CT_ARCH_ARM_EABI is not set

#
# Target optimisations
#
CT_ARCH_ARCH=""
CT_ARCH_ABI=""
CT_ARCH_CPU=""
CT_ARCH_TUNE=""
CT_ARCH_FPU=""
# CT_ARCH_FLOAT_HW is not set
CT_ARCH_FLOAT_SW=y
CT_TARGET_CFLAGS=""

#
# Toolchain options
#

#
# General toolchain options
#
CT_USE_SYSROOT=y
CT_SHARED_LIBS=y
CT_THREADS_NPTL=y
# CT_THREADS_LINUXTHREADS is not set
# CT_THREADS_NONE is not set
CT_THREADS="nptl"
CT_TARGET_VENDOR="unknown"
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""

#
# Toolchain type
#
# CT_NATIVE is not set
CT_CROSS=y
# CT_CROSS_NATIVE is not set
# CT_CANADIAN is not set
CT_TOOLCHAIN_TYPE="cross"
CT_BUILD=""
CT_CC_NATIVE="gcc"

#
# Kernel
#
CT_KERNEL_LINUX=y
CT_KERNEL_VERSION="2.6.25.1"
CT_KERNEL_LINUX_HEADERS_INSTALL=y
# CT_KERNEL_LINUX_HEADERS_SANITISED is not set
# CT_KERNEL_LINUX_HEADERS_COPY is not set
# CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR is not set
CT_KERNEL="linux"
CT_KERNEL_VERSION_SEE_EXTRAVERSION=y
# CT_KERNEL_INSTALL_V_2_6_18_8 is not set
# CT_KERNEL_INSTALL_V_2_6_19_7 is not set
# CT_KERNEL_INSTALL_V_2_6_20_21 is not set
# CT_KERNEL_INSTALL_V_2_6_21_7 is not set
# CT_KERNEL_INSTALL_V_2_6_22_19 is not set
# CT_KERNEL_INSTALL_V_2_6_23_17 is not set
# CT_KERNEL_INSTALL_V_2_6_24 is not set
# CT_KERNEL_INSTALL_V_2_6_24_1 is not set
# CT_KERNEL_INSTALL_V_2_6_24_2 is not set
# CT_KERNEL_INSTALL_V_2_6_24_3 is not set
# CT_KERNEL_INSTALL_V_2_6_24_4 is not set
# CT_KERNEL_INSTALL_V_2_6_24_5 is not set
# CT_KERNEL_INSTALL_V_2_6_24_6 is not set
# CT_KERNEL_INSTALL_V_2_6_25 is not set
CT_KERNEL_INSTALL_V_2_6_25_1=y
# CT_KERNEL_LINUX_HEADERS_INSTALL_CHECK is not set
CT_KERNEL_LINUX_VERBOSITY_0=y
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
# CT_KERNEL_LINUX_VERBOSITY_2 is not set
CT_KERNEL_LINUX_VERBOSE_LEVEL=0
# CT_KERNEL_LINUX_NEEDS_CONFIG is not set

#
# binutils
#
CT_BINUTILS_VERSION="2.18"
# CT_BINUTILS_V_2_14 is not set
# CT_BINUTILS_V_2_15 is not set
# CT_BINUTILS_V_2_16_1 is not set
# CT_BINUTILS_V_2_17 is not set
CT_BINUTILS_V_2_18=y
# CT_BINUTILS_V_2_18_50_0_4 is not set
# CT_BINUTILS_V_2_18_50_0_6 is not set
CT_BINUTILS_EXTRA_CONFIG=""
# CT_BINUTILS_FOR_TARGET is not set

#
# C compiler
#
CT_CC_GCC=y
CT_CC_VERSION="4.2.1"
CT_CC="gcc"
# CT_CC_V_2_95_3 is not set
# CT_CC_V_3_2_3 is not set
# CT_CC_V_3_3_6 is not set
# CT_CC_V_3_4_6 is not set
# CT_CC_V_4_0_0 is not set
# CT_CC_V_4_0_1 is not set
# CT_CC_V_4_0_2 is not set
# CT_CC_V_4_0_3 is not set
# CT_CC_V_4_0_4 is not set
# CT_CC_V_4_1_0 is not set
# CT_CC_V_4_1_1 is not set
# CT_CC_V_4_1_2 is not set
# CT_CC_V_4_2_0 is not set
CT_CC_V_4_2_1=y
# CT_CC_V_4_2_2 is not set
# CT_CC_V_4_2_3 is not set
CT_CC_CXA_ATEXIT=y
CT_CC_CORE_EXTRA_CONFIG=""
CT_CC_EXTRA_CONFIG=""
# CT_CC_GCC_GMP_MPFR is not set
CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_JAVA=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y

#
# Additional supported languages:
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JAVA is not set
# CT_CC_LANG_ADA is not set
# CT_CC_LANG_OBJC is not set
# CT_CC_LANG_OBJCXX is not set
CT_CC_LANG_OTHERS=""

#
# C-library
#
CT_LIBC_GLIBC=y
# CT_LIBC_UCLIBC is not set
CT_LIBC_VERSION="2.7"
CT_LIBC="glibc"
CT_LIBC_SUPPORT_NPTL=y
CT_LIBC_SUPPORT_LINUXTHREADS=y
# CT_LIBC_V_2_3_6 is not set
# CT_LIBC_V_2_5 is not set
# CT_LIBC_V_2_5_1 is not set
# CT_LIBC_V_2_6 is not set
# CT_LIBC_V_2_6_1 is not set
CT_LIBC_V_2_7=y
CT_LIBC_GLIBC_EXTRA_CONFIG=""
CT_LIBC_GLIBC_EXTRA_CFLAGS=""
CT_LIBC_EXTRA_CC_ARGS=""
CT_LIBC_GLIBC_CONFIGPARMS=""
CT_LIBC_GLIBC_USE_PORTS=y
# CT_LIBC_ADDONS is not set

#
# Tools facilities
#
CT_SSTRIP=y
# CT_SSTRIP_ELFKICKERS is not set
CT_SSTRIP_BUILDROOT=y
CT_SSTRIP_FROM="buildroot"

#
# Debug facilities
#
# CT_DMALLOC is not set
CT_DUMA=y
CT_DUMA_A=y
CT_DUMA_SO=y
CT_DUMA_V_2_5_1=y
# CT_DUMA_V_2_5_8 is not set
# CT_DUMA_V_2_5_12 is not set
CT_DUMA_VERSION="2_5_1"
CT_GDB=y
CT_GDB_CROSS=y
# CT_GDB_CROSS_STATIC_GDB is not set
CT_GDB_CROSS_STATIC_GDBSERVER=y
# CT_GDB_NATIVE is not set
# CT_GDB_V_snapshot is not set
# CT_GDB_V_6_4 is not set
# CT_GDB_V_6_5 is not set
CT_GDB_V_6_6=y
# CT_GDB_V_6_7 is not set
# CT_GDB_V_6_7_1 is not set
# CT_GDB_V_6_8 is not set
CT_GDB_VERSION="6.6"
CT_STRACE=y
# CT_STRACE_V_4_5 is not set
# CT_STRACE_V_4_5_14 is not set
CT_STRACE_V_4_5_15=y
# CT_STRACE_V_4_5_16 is not set
CT_STRACE_VERSION="4.5.15"

-------------- next part --------------
--
For unsubscribe information see http://sourceware.org/lists.html#faq


More information about the crossgcc mailing list