From 94e376af7728839c40192d5a02abbeb638dc36f1 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Sat, 31 Jan 2009 17:39:35 +0000 Subject: Add support for powerpc64, along with an EXPERIMENTAL sample. /trunk/scripts/build/arch/powerpc64.sh | 21 1 20 0 - /trunk/scripts/build/arch/powerpc.sh | 21 1 20 0 - /trunk/samples/powerpc64-unknown-linux-gnu/crosstool.config | 388 388 0 0 +++++++++++++++++++ /trunk/samples/powerpc64-unknown-linux-gnu/reported.by | 3 3 0 0 + /trunk/config/arch/powerpc-powerpc64.in-common | 12 4 8 0 - /trunk/config/arch/powerpc.in | 15 0 15 0 - /trunk/config/arch/powerpc64.in | 19 3 16 0 - 7 files changed, 400 insertions(+), 79 deletions(-) diff --git a/config/arch/powerpc-powerpc64.in-common b/config/arch/powerpc-powerpc64.in-common new file mode 100644 index 0000000..95f2859 --- /dev/null +++ b/config/arch/powerpc-powerpc64.in-common @@ -0,0 +1,21 @@ +# powerpc and powerpc64 common options + +if ARCH_powerpc || ARCH_powerpc64 + +config ARCH_POWERPC_SPE + bool + prompt "Enable SPE support" + default n + help + Add support for the Signal Processing Engine. This will set up + the toolchain so that it supports the SPE ABI extensions. This + mainly targets Freescale e500 processors. + + Setting this option will append "spe" to the end of your target + tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc + configure/build system will know to include SPE ABI support. + It will also automatically add "-mabi=spe -mspe" to your + TARGET_CFLAGS, and "--enable-e500_double" to your CC_EXTRA_CONFIG, + so you do not need to explicitly add them. + +endif # ARCH_powerpc || ARCH_powerpc64 diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in index 448065a..07d1672 100644 --- a/config/arch/powerpc.in +++ b/config/arch/powerpc.in @@ -8,18 +8,3 @@ config ARCH_powerpc The PowerPC architecture, as defined by: http://www.ibm.com/developerworks/eserver/articles/archguide.html -config ARCH_POWERPC_SPE - bool - prompt "Enable SPE support" - default n - help - Add support for the Signal Processing Engine. This will set up - the toolchain so that it supports the SPE ABI extensions. This - mainly targets Freescale e500 processors. - - Setting this option will append "spe" to the end of your target - tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc - configure/build system will know to include SPE ABI support. - It will also automatically add "-mabi=spe -mspe" to your - TARGET_CFLAGS, and "--enable-e500_double" to your CC_EXTRA_CONFIG, - so you do not need to explicitly add them. diff --git a/config/arch/powerpc64.in b/config/arch/powerpc64.in new file mode 100644 index 0000000..7b5a62e --- /dev/null +++ b/config/arch/powerpc64.in @@ -0,0 +1,12 @@ +# powerpc specific configuration file +# EXPERIMENTAL + +config ARCH_powerpc64 + select ARCH_64 + select ARCH_SUPPORT_ABI + select ARCH_SUPPORT_CPU + select ARCH_SUPPORT_TUNE + help + The PowerPC architecture, as defined by: + http://www.ibm.com/developerworks/eserver/articles/archguide.html + diff --git a/samples/powerpc64-unknown-linux-gnu/crosstool.config b/samples/powerpc64-unknown-linux-gnu/crosstool.config new file mode 100644 index 0000000..4cb18d6 --- /dev/null +++ b/samples/powerpc64-unknown-linux-gnu/crosstool.config @@ -0,0 +1,388 @@ +# +# Automatically generated make config: don't edit +# crosstool-NG version: svn_trunk@1347M +# Sat Jan 31 18:29:59 2009 +# + +# +# Paths and misc options +# + +# +# crosstool-NG behavior +# +# CT_OBSOLETE is not set +CT_EXPERIMENTAL=y +# CT_DEBUG_CT is not set + +# +# Paths +# +CT_LOCAL_TARBALLS_DIR="${HOME}/src" +CT_SAVE_TARBALLS=y +CT_WORK_DIR="${CT_TOP_DIR}/targets" +CT_PREFIX_DIR="${HOME}/x-tools/${CT_TARGET}" +CT_INSTALL_DIR="${CT_PREFIX_DIR}" +# CT_CUSTOM_PATCH is not set +CT_REMOVE_DOCS=y +CT_INSTALL_DIR_RO=y + +# +# Downloading +# +# CT_FORBID_DOWNLOAD is not set +# CT_FORCE_DOWNLOAD is not set +# CT_USE_PROXY is not set +CT_PROXY_TYPE="none" +CT_USE_MIRROR=y +# CT_PREFER_MIRROR is not set +CT_MIRROR_HTTP=y +# CT_MIRROR_FTP is not set +CT_MIRROR_SCHEME="http" +CT_MIRROR_HOSTNAME="ymorin.is-a-geek.org" +CT_MIRROR_BASE="/mirrors" +# CT_MIRROR_LS_R is not set +CT_CONNECT_TIMEOUT=10 +# CT_ONLY_DOWNLOAD is not set + +# +# Extracting +# +# CT_FORCE_EXTRACT is not set +CT_OVERIDE_CONFIG_GUESS_SUB=y +# CT_ONLY_EXTRACT is not set + +# +# Build behavior +# +CT_PARALLEL_JOBS=1 +CT_LOAD=0 +CT_NICE=0 +CT_USE_PIPES=y +# CT_CONFIG_SHELL_ASH 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 +# +CT_ARCH="powerpc64" +CT_ARCH_64=y +# CT_ARCH_SUPPORT_ARCH is not set +CT_ARCH_SUPPORT_ABI=y +CT_ARCH_SUPPORT_CPU=y +CT_ARCH_SUPPORT_TUNE=y +# CT_ARCH_SUPPORT_FPU is not set +# CT_ARCH_SUPPORTS_BOTH_ENDIAN is not set +# CT_ARCH_DEFAULT_BE is not set +# CT_ARCH_DEFAULT_LE is not set +CT_ARCH_ABI="" +CT_ARCH_CPU="" +CT_ARCH_TUNE="" +CT_ARCH_FLOAT_HW=y +# CT_ARCH_FLOAT_SW is not set +CT_TARGET_CFLAGS="" +CT_TARGET_LDFLAGS="" + +# +# General target options +# +# CT_ARCH_alpha is not set +# CT_ARCH_arm is not set +# CT_ARCH_ia64 is not set +# CT_ARCH_mips is not set +# CT_ARCH_powerpc is not set +CT_ARCH_powerpc64=y +# CT_ARCH_sh is not set +# CT_ARCH_x86 is not set +# CT_ARCH_x86_64 is not set +# CT_ARCH_POWERPC_SPE is not set + +# +# Target optimisations +# + +# +# Toolchain options +# + +# +# General toolchain options +# +CT_USE_SYSROOT=y +CT_SHARED_LIBS=y +CT_TARGET_VENDOR="" +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" + +# +# Build system +# +CT_BUILD="" +CT_BUILD_PREFIX="" +CT_BUILD_SUFFIX="" + +# +# Operating System +# +# CT_BARE_METAL is not set +CT_KERNEL="linux" +CT_KERNEL_VERSION="2.6.26.8" +# CT_KERNEL_bare_metal is not set +CT_KERNEL_linux=y +CT_KERNEL_LINUX_INSTALL=y +CT_KERNEL_LINUX_INSTALL_CHECK=y +# CT_KERNEL_V_2_6_18_8 is not set +# CT_KERNEL_V_2_6_19_7 is not set +# CT_KERNEL_V_2_6_20_21 is not set +# CT_KERNEL_V_2_6_21_7 is not set +# CT_KERNEL_V_2_6_22_19 is not set +# CT_KERNEL_V_2_6_23_17 is not set +# CT_KERNEL_V_2_6_24_7 is not set +# CT_KERNEL_V_2_6_25_20 is not set +# CT_KERNEL_V_2_6_26 is not set +# CT_KERNEL_V_2_6_26_1 is not set +# CT_KERNEL_V_2_6_26_2 is not set +# CT_KERNEL_V_2_6_26_3 is not set +# CT_KERNEL_V_2_6_26_4 is not set +# CT_KERNEL_V_2_6_26_5 is not set +# CT_KERNEL_V_2_6_26_6 is not set +# CT_KERNEL_V_2_6_26_7 is not set +CT_KERNEL_V_2_6_26_8=y +# CT_KERNEL_V_2_6_27 is not set +# CT_KERNEL_V_2_6_27_1 is not set +# CT_KERNEL_V_2_6_27_2 is not set +# CT_KERNEL_V_2_6_27_3 is not set +# CT_KERNEL_V_2_6_27_4 is not set +# CT_KERNEL_V_2_6_27_5 is not set +# CT_KERNEL_V_2_6_27_6 is not set +# CT_KERNEL_V_2_6_27_7 is not set +# CT_KERNEL_V_2_6_27_8 is not set +# CT_KERNEL_V_2_6_27_9 is not set +# CT_KERNEL_V_2_6_27_10 is not set +# CT_KERNEL_V_2_6_27_11 is not set +# CT_KERNEL_V_2_6_27_12 is not set +# CT_KERNEL_V_2_6_27_13 is not set +# CT_KERNEL_V_2_6_28 is not set +# CT_KERNEL_V_2_6_28_1 is not set +# CT_KERNEL_V_2_6_28_2 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_USE_CUSTOM_DIR is not set + +# +# GMP and MPFR +# +CT_GMP_MPFR=y +CT_GMP_MPFR_TARGET=y +# CT_GMP_V_4_2_2 is not set +CT_GMP_V_4_2_4=y +CT_GMP_VERSION="4.2.4" +CT_GMP_CHECK=y +# CT_MPFR_V_2_3_1 is not set +CT_MPFR_V_2_3_2=y +CT_MPFR_VERSION="2.3.2" +CT_MPFR_CHECK=y + +# +# binutils +# +CT_BINUTILS_VERSION="2.19" +# 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 is not set +# CT_BINUTILS_V_2_18_50_0_4 is not set +# CT_BINUTILS_V_2_18_50_0_6 is not set +# CT_BINUTILS_V_2_18_50_0_7 is not set +# CT_BINUTILS_V_2_18_50_0_8 is not set +# CT_BINUTILS_V_2_18_50_0_9 is not set +# CT_BINUTILS_V_2_18_90 is not set +# CT_BINUTILS_V_2_18_91 is not set +# CT_BINUTILS_V_2_18_92 is not set +# CT_BINUTILS_V_2_18_93 is not set +CT_BINUTILS_V_2_19=y +# CT_BINUTILS_V_2_19_50_0_1 is not set +CT_BINUTILS_EXTRA_CONFIG="" +CT_BINUTILS_FOR_TARGET=y +CT_BINUTILS_FOR_TARGET_IBERTY=y +CT_BINUTILS_FOR_TARGET_BFD=y + +# +# C compiler +# +CT_CC="gcc" +CT_CC_VERSION="4.3.2" +CT_CC_gcc=y +# 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 is not set +# CT_CC_V_4_2_2 is not set +# CT_CC_V_4_2_3 is not set +# CT_CC_V_4_2_4 is not set +# CT_CC_V_4_3_0 is not set +# CT_CC_V_4_3_1 is not set +CT_CC_V_4_3_2=y +# CT_CC_V_4_3_3 is not set +CT_CC_GCC_4_3_or_later=y +CT_CC_CXA_ATEXIT=y +CT_CC_SJLJ_EXCEPTIONS_CONFIGURE=y +# CT_CC_SJLJ_EXCEPTIONS_USE is not set +# CT_CC_SJLJ_EXCEPTIONS_DONT_USE is not set +CT_CC_CORE_EXTRA_CONFIG="" +CT_CC_EXTRA_CONFIG="" +CT_CC_PKGVERSION="crosstool-NG-${CT_VERSION}" +CT_CC_BUGURL="" +CT_CC_LANG_JAVA_USE_ECJ=y +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=y +CT_CC_LANG_JAVA=y +# 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="" +CT_LIBC="glibc" + +# +# C-library +# +CT_LIBC_VERSION="2.7" +# CT_LIBC_eglibc is not set +CT_LIBC_glibc=y +# CT_LIBC_uClibc is not set +# 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_V_2_8 is not set +# CT_LIBC_V_2_9 is not set +# CT_LIBC_V_LATEST is not set +# CT_LIBC_V_date is not set +# CT_LIBC_GLIBC_2_8_or_later is not set + +# +# glibc/eglibc common options +# +CT_LIBC_GLIBC_EXTRA_CONFIG="" +CT_LIBC_GLIBC_EXTRA_CFLAGS="" +CT_LIBC_EXTRA_CC_ARGS="" +# CT_LIBC_GLIBC_USE_PORTS is not set +CT_LIBC_ADDONS_LIST="" +# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set +CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y +# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set +CT_LIBC_GLIBC_MIN_KERNEL="2.6.26.8" + +# +# Common C library options +# +CT_LIBC_SUPPORT_NPTL=y +CT_LIBC_SUPPORT_LINUXTHREADS=y +CT_THREADS="nptl" +CT_THREADS_NPTL=y +# CT_THREADS_LINUXTHREADS is not set +# CT_THREADS_NONE is not set + +# +# Tools facilities +# +# CT_TOOL_libelf is not set +CT_TOOL_sstrip=y +# CT_SSTRIP_ELFKICKERS is not set +CT_SSTRIP_BUILDROOT=y +CT_SSTRIP_FROM="buildroot" + +# +# Debug facilities +# +CT_DEBUG_dmalloc=y +# CT_DMALLOC_V_5_4_3 is not set +CT_DMALLOC_V_5_5_2=y +CT_DMALLOC_VERSION="5.5.2" +CT_DEBUG_duma=y +CT_DUMA_A=y +CT_DUMA_SO=y +# CT_DUMA_V_2_5_1 is not set +# CT_DUMA_V_2_5_8 is not set +# CT_DUMA_V_2_5_12 is not set +CT_DUMA_V_2_5_14=y +CT_DUMA_VERSION="2_5_14" +CT_DEBUG_gdb=y +CT_GDB_CROSS=y +# CT_GDB_CROSS_STATIC is not set +# CT_GDB_CROSS_INSIGHT is not set +CT_GDB_NATIVE=y +# CT_GDB_NATIVE_STATIC is not set +CT_GDB_NATIVE_USE_GMP_MPFR=y +CT_GDB_GDBSERVER=y +CT_GDB_GDBSERVER_STATIC=y +# CT_GDB_V_6_4 is not set +# CT_GDB_V_6_5 is not set +# CT_GDB_V_6_6 is not set +# CT_GDB_V_6_7 is not set +# CT_GDB_V_6_7_1 is not set +CT_GDB_V_6_8=y +# CT_GDB_V_snapshot is not set +CT_GDB_VERSION="6.8" + +# +# Native gdb needs the ncurses library on the target +# +CT_NCURSES_V_5_6=y +CT_NCURSES_VERSION="5.6" +# CT_DEBUG_ltrace is not set +CT_DEBUG_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 is not set +# CT_STRACE_V_4_5_16 is not set +CT_STRACE_V_4_5_17=y +# CT_STRACE_V_4_5_18 is not set +CT_STRACE_VERSION="4.5.17" diff --git a/samples/powerpc64-unknown-linux-gnu/reported.by b/samples/powerpc64-unknown-linux-gnu/reported.by new file mode 100644 index 0000000..ed2cb54 --- /dev/null +++ b/samples/powerpc64-unknown-linux-gnu/reported.by @@ -0,0 +1,3 @@ +reporter_name="Yann E. MORIN" +reporter_url="http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool" +reporter_comment="" diff --git a/scripts/build/arch/powerpc-powerpc64.sh-common b/scripts/build/arch/powerpc-powerpc64.sh-common new file mode 100644 index 0000000..edba61e --- /dev/null +++ b/scripts/build/arch/powerpc-powerpc64.sh-common @@ -0,0 +1,22 @@ +# Compute powerpc-specific values + +CT_DoArchTupleValues () { + # The architecture part of the tuple: + CT_TARGET_ARCH="${CT_ARCH}" + + # The kernel ARCH: + CT_KERNEL_ARCH=powerpc + + # Add spe in the tuplet if needed + case "${CT_LIBC},${CT_ARCH_POWERPC_SPE}" in + glibc,|eglibc,) CT_TARGET_SYS=gnu;; + glibc,y|eglibc,y) CT_TARGET_SYS=gnuspe;; + esac + + # Add extra flags for SPE if needed + if [ "${CT_ARCH_POWERPC_SPE}" = "y" ]; then + CT_ARCH_TARGET_CFLAGS="-mabi=spe -mspe" + CT_ARCH_CC_CORE_EXTRA_CONFIG="--enable-e500_double" + CT_ARCH_CC_EXTRA_CONFIG="--enable-e500_double" + fi +} diff --git a/scripts/build/arch/powerpc.sh b/scripts/build/arch/powerpc.sh index edba61e..6bcd840 100644 --- a/scripts/build/arch/powerpc.sh +++ b/scripts/build/arch/powerpc.sh @@ -1,22 +1,3 @@ # Compute powerpc-specific values -CT_DoArchTupleValues () { - # The architecture part of the tuple: - CT_TARGET_ARCH="${CT_ARCH}" - - # The kernel ARCH: - CT_KERNEL_ARCH=powerpc - - # Add spe in the tuplet if needed - case "${CT_LIBC},${CT_ARCH_POWERPC_SPE}" in - glibc,|eglibc,) CT_TARGET_SYS=gnu;; - glibc,y|eglibc,y) CT_TARGET_SYS=gnuspe;; - esac - - # Add extra flags for SPE if needed - if [ "${CT_ARCH_POWERPC_SPE}" = "y" ]; then - CT_ARCH_TARGET_CFLAGS="-mabi=spe -mspe" - CT_ARCH_CC_CORE_EXTRA_CONFIG="--enable-e500_double" - CT_ARCH_CC_EXTRA_CONFIG="--enable-e500_double" - fi -} +. "${CT_LIB_DIR}/scripts/build/arch/powerpc-powerpc64.sh-common" diff --git a/scripts/build/arch/powerpc64.sh b/scripts/build/arch/powerpc64.sh new file mode 100644 index 0000000..6bcd840 --- /dev/null +++ b/scripts/build/arch/powerpc64.sh @@ -0,0 +1,3 @@ +# Compute powerpc-specific values + +. "${CT_LIB_DIR}/scripts/build/arch/powerpc-powerpc64.sh-common" -- cgit v0.10.2-6-g49f6