ARM EABI is now working for little endian ARM targets.

Big endian is still missing, though...
This commit is contained in:
Yann E. MORIN" 2007-09-16 17:59:18 +00:00
parent af2e42b572
commit dd9e2b9602
6 changed files with 494 additions and 9 deletions

View File

@ -0,0 +1,252 @@
#
# Automatically generated make config: don't edit
# crosstool-NG version: 0.3.1+svn
# Sun Sep 16 17:43:02 2007
#
# CT_FOOBAR is not set
#
# Paths and misc options
#
#
# crosstool-NG behavior
#
# CT_OBSOLETE is not set
CT_EXPERIMENTAL=y
# CT_BROKEN is not set
CT_DEBUG_CT=y
# CT_DEBUG_CT_PAUSE_STEPS is not set
CT_DEBUG_CT_SAVE_STEPS=y
CT_DEBUG_CT_SAVE_STEPS_GZIP=y
#
# Build behavior
#
CT_PARALLEL_JOBS=1
CT_LOAD=0
CT_NICE=0
CT_USE_PIPES=y
#
# Paths
#
CT_LOCAL_TARBALLS_DIR="${HOME}/dev/src"
CT_SAVE_TARBALLS=y
CT_PREFIX_DIR="/opt/x-tools/${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
#
# Downloading
#
# CT_FORCE_DOWNLOAD is not set
# CT_ONLY_DOWNLOAD is not set
#
# Extracting
#
# CT_FORCE_EXTRACT is not set
# CT_ONLY_EXTRACT 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_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="armv5te"
CT_ARCH_ABI=""
CT_ARCH_CPU="xscale"
CT_ARCH_TUNE="xscale"
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 is not set
CT_THREADS_LINUXTHREADS=y
# CT_THREADS_NONE is not set
CT_THREADS="linuxthreads"
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.22.6"
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_15 is not set
# CT_KERNEL_INSTALL_V_2_6_21_7 is not set
# CT_KERNEL_INSTALL_V_2_6_22 is not set
# CT_KERNEL_INSTALL_V_2_6_22_1 is not set
# CT_KERNEL_INSTALL_V_2_6_22_2 is not set
# CT_KERNEL_INSTALL_V_2_6_22_3 is not set
# CT_KERNEL_INSTALL_V_2_6_22_4 is not set
# CT_KERNEL_INSTALL_V_2_6_22_5 is not set
CT_KERNEL_INSTALL_V_2_6_22_6=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_17_50_0_10 is not set
# CT_BINUTILS_V_2_17_50_0_15 is not set
# CT_BINUTILS_V_2_17_50_0_17 is not set
# CT_BINUTILS_V_2_17_50_0_18 is not set
CT_BINUTILS_V_2_18=y
CT_BINUTILS_EXTRA_CONFIG=""
#
# 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_CXA_ATEXIT=y
CT_CC_CORE_EXTRA_CONFIG=""
CT_CC_EXTRA_CONFIG=""
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
#
# Additionnal 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 is not set
CT_LIBC_UCLIBC=y
CT_LIBC_VERSION="0.9.29"
CT_LIBC="uClibc"
# CT_LIBC_SUPPORT_NPTL is not set
CT_LIBC_SUPPORT_LINUXTHREADS=y
# CT_LIBC_V_snapshot is not set
# CT_LIBC_V_specific_date is not set
# CT_LIBC_V_0_9_28 is not set
# CT_LIBC_V_0_9_28_1 is not set
# CT_LIBC_V_0_9_28_2 is not set
# CT_LIBC_V_0_9_28_3 is not set
CT_LIBC_V_0_9_29=y
CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y
# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set
# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set
CT_LIBC_UCLIBC_DEBUG_LEVEL=0
CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
# CT_LIBC_UCLIBC_LOCALES is not set
#
# Tools facilities
#
# CT_SSTRIP is not set
#
# Debug facilities
#
# CT_DMALLOC is not set
# CT_DUMA is not set
# CT_GDB is not set
# CT_STRACE is not set

View File

@ -0,0 +1,214 @@
#
# Automatically generated make config: don't edit
# Sun Sep 16 10:35:03 2007
#
# TARGET_alpha is not set
TARGET_arm=y
# TARGET_bfin is not set
# TARGET_cris is not set
# TARGET_e1 is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_i960 is not set
# TARGET_ia64 is not set
# TARGET_m68k is not set
# TARGET_microblaze is not set
# TARGET_mips is not set
# TARGET_nios is not set
# TARGET_nios2 is not set
# TARGET_powerpc is not set
# TARGET_sh is not set
# TARGET_sh64 is not set
# TARGET_sparc is not set
# TARGET_v850 is not set
# TARGET_vax is not set
# TARGET_x86_64 is not set
#
# Target Architecture Features and Options
#
TARGET_ARCH="arm"
FORCE_OPTIONS_FOR_ARCH=y
# CONFIG_ARM_OABI is not set
CONFIG_ARM_EABI=y
USE_BX=y
# CONFIG_GENERIC_ARM is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
CONFIG_ARM_XSCALE=y
# CONFIG_ARM_IWMMXT is not set
TARGET_SUBARCH=""
#
# Using ELF file format
#
ARCH_ANY_ENDIAN=y
ARCH_BIG_ENDIAN=y
ARCH_WANTS_BIG_ENDIAN=y
# ARCH_WANTS_LITTLE_ENDIAN is not set
ARCH_HAS_MMU=y
ARCH_USE_MMU=y
UCLIBC_HAS_FLOATS=y
# UCLIBC_HAS_FPU is not set
UCLIBC_HAS_SOFT_FLOAT=y
DO_C99_MATH=y
KERNEL_HEADERS="/opt/x-tools/armeb-unknown-linux-uclibc/armeb-unknown-linux-uclibc/sys-root/usr/include"
HAVE_DOT_CONFIG=y
#
# General Library Settings
#
# HAVE_NO_PIC is not set
DOPIC=y
# HAVE_NO_SHARED is not set
# ARCH_HAS_NO_LDSO is not set
HAVE_SHARED=y
FORCE_SHAREABLE_TEXT_SEGMENTS=y
LDSO_LDD_SUPPORT=y
LDSO_CACHE_SUPPORT=y
# LDSO_PRELOAD_FILE_SUPPORT is not set
LDSO_BASE_FILENAME="ld.so"
UCLIBC_STATIC_LDCONFIG=y
# LDSO_RUNPATH is not set
UCLIBC_CTOR_DTOR=y
# HAS_NO_THREADS is not set
UCLIBC_HAS_THREADS=y
# PTHREADS_DEBUG_SUPPORT is not set
LINUXTHREADS_OLD=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
# MALLOC_SIMPLE is not set
MALLOC_STANDARD=y
# MALLOC_GLIBC_COMPAT is not set
UCLIBC_DYNAMIC_ATEXIT=y
# COMPAT_ATEXIT is not set
# UCLIBC_SUSV3_LEGACY is not set
# UCLIBC_SUSV3_LEGACY_MACROS is not set
UCLIBC_HAS_SHADOW=y
# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
# UCLIBC_HAS___PROGNAME is not set
UNIX98PTY_ONLY=y
ASSUME_DEVPTS=y
UCLIBC_HAS_TM_EXTENSIONS=y
# UCLIBC_HAS_TZ_CACHING is not set
UCLIBC_HAS_TZ_FILE=y
# UCLIBC_HAS_TZ_FILE_READ_MANY is not set
UCLIBC_TZ_FILE_PATH="/etc/TZ"
#
# Advanced Library Settings
#
UCLIBC_PWD_BUFFER_SIZE=256
UCLIBC_GRP_BUFFER_SIZE=256
#
# Networking Support
#
# UCLIBC_HAS_IPV6 is not set
UCLIBC_HAS_RPC=y
UCLIBC_HAS_FULL_RPC=y
UCLIBC_HAS_REENTRANT_RPC=y
UCLIBC_USE_NETLINK=y
# UCLIBC_HAS_BSD_RES_CLOSE is not set
#
# String and Stdio Support
#
UCLIBC_HAS_STRING_GENERIC_OPT=y
UCLIBC_HAS_STRING_ARCH_OPT=y
UCLIBC_HAS_CTYPE_TABLES=y
UCLIBC_HAS_CTYPE_SIGNED=y
# UCLIBC_HAS_CTYPE_UNSAFE is not set
# UCLIBC_HAS_CTYPE_CHECKED is not set
UCLIBC_HAS_CTYPE_ENFORCED=y
# UCLIBC_HAS_WCHAR is not set
# UCLIBC_HAS_LOCALE is not set
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
# USE_OLD_VFPRINTF is not set
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
UCLIBC_HAS_STDIO_BUFSIZ_4096=y
# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT=y
UCLIBC_HAS_STDIO_GETC_MACRO=y
UCLIBC_HAS_STDIO_PUTC_MACRO=y
UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
UCLIBC_HAS_FOPEN_LARGEFILE_MODE=y
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
UCLIBC_HAS_PRINTF_M_SPEC=y
UCLIBC_HAS_ERRNO_MESSAGES=y
# UCLIBC_HAS_SYS_ERRLIST is not set
UCLIBC_HAS_SIGNUM_MESSAGES=y
# UCLIBC_HAS_SYS_SIGLIST is not set
UCLIBC_HAS_GNU_GETOPT=y
# UCLIBC_HAS_GNU_GETSUBOPT is not set
#
# Big and Tall
#
UCLIBC_HAS_REGEX=y
UCLIBC_HAS_REGEX_OLD=y
UCLIBC_HAS_FNMATCH=y
UCLIBC_HAS_FNMATCH_OLD=y
UCLIBC_HAS_WORDEXP=y
UCLIBC_HAS_FTW=y
UCLIBC_HAS_GLOB=y
# UCLIBC_HAS_GNU_GLOB is not set
#
# Library Installation Options
#
SHARED_LIB_LOADER_PREFIX="/lib/"
RUNTIME_PREFIX="/"
DEVEL_PREFIX="/usr/"
#
# Security options
#
UCLIBC_BUILD_PIE=y
UCLIBC_HAS_ARC4RANDOM=y
# HAVE_NO_SSP is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
UCLIBC_BUILD_NOEXECSTACK=y
#
# uClibc development/debugging options
#
CROSS_COMPILER_PREFIX=""
UCLIBC_EXTRA_CFLAGS=""
# DODEBUG is not set
# DODEBUG_PT is not set
# DOSTRIP is not set
# DOASSERTS is not set
# SUPPORT_LD_DEBUG is not set
# SUPPORT_LD_DEBUG_EARLY is not set
# UCLIBC_MALLOC_DEBUGGING is not set
WARNINGS="-Wall -pipe"
# EXTRA_WARNINGS is not set
# DOMULTI is not set
# UCLIBC_MJN3_ONLY is not set

View File

@ -231,7 +231,8 @@ do_cc() {
# detection problem only matters for gcc-3.2.x and later, I think.
# --disable-nls to work around crash bug on ppc405, but also because
# embedded systems don't really need message catalogs...
CFLAGS="${CT_CFLAGS_FOR_HOST}" \
CFLAGS="${CT_CFLAGS_FOR_HOST}" \
TARGET_CFLAGS="${CT_TARGET_CFLAGS}" \
"${CT_SRC_DIR}/${CT_CC_FILE}/configure" \
${CT_CANADIAN_OPT} \
--target=${CT_TARGET} --host=${CT_HOST} \

View File

@ -164,6 +164,20 @@ s/^TARGET_ARCH=".*"/TARGET_ARCH="${CT_KERNEL_ARCH}"/
s/.*(DOSTRIP).*/# \\1 is not set/
ENDSED
# Ah. We may one day need architecture-specific handler here...
# Hack the ARM {E,O}ABI into the config file
if [ "${CT_ARCH_ARM_EABI}" = "y" ]; then
cat >>"${munge_file}" <<-ENDSED
s/.*(CONFIG_ARM_OABI).*/# \\1 is not set/
s/.*(CONFIG_ARM_EABI).*/\\1=y/
ENDSED
else
cat >>"${munge_file}" <<-ENDSED
s/.*(CONFIG_ARM_OABI).*/\\1=y/
s/.*(CONFIG_ARM_EABI).*/# \\1 is not set/
ENDSED
fi
# Accomodate for old and new uClibc versions, where the
# way to select between big/little endian has changed
case "${CT_ARCH_BE},${CT_ARCH_LE}" in
@ -198,7 +212,7 @@ ENDSED
;;
esac
# Change paths to work with crosstool
# Change paths to work with crosstool-NG
# From http://www.uclibc.org/cgi-bin/viewcvs.cgi?rev=16846&view=rev
# " we just want the kernel headers, not the whole kernel source ...
# " so people may need to update their paths slightly

View File

@ -82,6 +82,10 @@ CT_DoBuildTargetTuple
# then rescan the options file now:
. "${CT_TOP_DIR}/.config"
# Second kludge: merge user-supplied target CFLAGS with architecture-provided
# target CFLAGS
CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
# Now, build up the variables from the user-configured options.
CT_KERNEL_FILE="${CT_KERNEL}-${CT_KERNEL_VERSION}"
CT_BINUTILS_FILE="binutils-${CT_BINUTILS_VERSION}"
@ -212,7 +216,7 @@ case "${CT_LOG_TO_FILE}" in
;;
esac
# Setting up the rest of the environment only is not restarting
# Setting up the rest of the environment only if not restarting
if [ -z "${CT_RESTART}" ]; then
# Determine build system if not set by the user
CT_Test "You did not specify the build system. That's OK, I can guess..." -z "${CT_BUILD}"

View File

@ -529,12 +529,12 @@ CT_DoBuildTargetTuple() {
CT_TARGET=`CT_DoConfigSub "${CT_TARGET_ARCH}-${CT_TARGET_VENDOR:-unknown}-${CT_TARGET_KERNEL}-${CT_TARGET_SYS}"`
# Prepare the target CFLAGS
CT_TARGET_CFLAGS="${CT_TARGET_CFLAGS} ${CT_ARCH_ARCH_CFLAGS}"
CT_TARGET_CFLAGS="${CT_TARGET_CFLAGS} ${CT_ARCH_ABI_CFLAGS}"
CT_TARGET_CFLAGS="${CT_TARGET_CFLAGS} ${CT_ARCH_CPU_CFLAGS}"
CT_TARGET_CFLAGS="${CT_TARGET_CFLAGS} ${CT_ARCH_TUNE_CFLAGS}"
CT_TARGET_CFLAGS="${CT_TARGET_CFLAGS} ${CT_ARCH_FPU_CFLAGS}"
CT_TARGET_CFLAGS="${CT_TARGET_CFLAGS} ${CT_ARCH_FLOAT_CFLAGS}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_ARCH_CFLAG}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ABI_CFLAG}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_CPU_CFLAG}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_TUNE_CFLAG}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_FPU_CFLAG}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_FLOAT_CFLAG}"
}
# This function does pause the build until the user strikes "Return"