mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-18 20:37:56 +00:00
Finally enable the PPC-8xx memset workaround, by Nye Liu.
http://sourceware.org/ml/crossgcc/2008-10/msg00094.html /trunk/scripts/build/libc/glibc.sh | 9 9 0 0 + /trunk/patches/glibc/2.7/290-powerpc-8xx-CPU15-errata.patch | 22 19 3 0 + /trunk/samples/powerpc-860-linux-gnu/crosstool.config | 344 344 0 0 +++++++++++++++++++ /trunk/samples/powerpc-860-linux-gnu/reported.by | 3 3 0 0 + 4 files changed, 375 insertions(+), 3 deletions(-)
This commit is contained in:
parent
2730c0b494
commit
d31396bc23
@ -7,7 +7,7 @@ Quote:
|
||||
dcbX bug). The source of the problem is sysdeps/powerpc/power3/memset.S
|
||||
|
||||
--- glibc-2.7/sysdeps/powerpc/powerpc32/memset.S 2007-03-26 13:09:07.000000000 -0700
|
||||
+++ glibc-2.7/sysdeps/powerpc/powerpc32/memset.S.new 2008-10-23 12:20:04.000000000 -0700
|
||||
+++ glibc-2.7/sysdeps/powerpc/powerpc32/memset.S.new 2008-10-23 20:28:52.000000000 -0700
|
||||
@@ -112,11 +112,13 @@
|
||||
clrrwi. rALIGN, rLEN, 5
|
||||
mtcrf 0x01, rLEN /* 40th instruction from .align */
|
||||
@ -22,7 +22,23 @@ Quote:
|
||||
|
||||
/* Store blocks of 32-bytes (256-bits) starting on a 32-byte boundary.
|
||||
Can't assume that rCHR is zero or that the cache line size is either
|
||||
@@ -248,6 +250,7 @@
|
||||
@@ -158,6 +160,7 @@
|
||||
add rMEMP, rMEMP, rALIGN
|
||||
b L(medium_tail2) /* 72nd instruction from .align */
|
||||
|
||||
+#ifndef BROKEN_PPC_8xx_CPU15
|
||||
.align 5
|
||||
nop
|
||||
/* Clear cache lines of memory in 128-byte chunks.
|
||||
@@ -191,6 +194,7 @@
|
||||
bdnz L(zloop)
|
||||
beqlr cr5
|
||||
b L(medium_tail2)
|
||||
+#endif /* ! BROKEN_PPC_8xx_CPU15 */
|
||||
|
||||
.align 5
|
||||
L(small):
|
||||
@@ -248,6 +252,7 @@
|
||||
stw rCHR, -8(rMEMP)
|
||||
blr
|
||||
|
||||
@ -30,7 +46,7 @@ Quote:
|
||||
L(checklinesize):
|
||||
#ifdef SHARED
|
||||
mflr rTMP
|
||||
@@ -329,6 +332,7 @@
|
||||
@@ -329,6 +334,7 @@
|
||||
L(handletail32):
|
||||
clrrwi. rALIGN, rLEN, 5
|
||||
b L(nondcbz)
|
||||
|
344
samples/powerpc-860-linux-gnu/crosstool.config
Normal file
344
samples/powerpc-860-linux-gnu/crosstool.config
Normal file
@ -0,0 +1,344 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# crosstool-NG version: 1.2.0+svn_trunk@1158M
|
||||
# Mon Oct 27 12:31:20 2008
|
||||
#
|
||||
|
||||
#
|
||||
# Paths and misc options
|
||||
#
|
||||
|
||||
#
|
||||
# crosstool-NG behavior
|
||||
#
|
||||
# CT_OBSOLETE is not set
|
||||
CT_EXPERIMENTAL=y
|
||||
CT_DEBUG_CT=y
|
||||
# CT_DEBUG_PAUSE_STEPS is not set
|
||||
CT_DEBUG_CT_SAVE_STEPS=y
|
||||
CT_DEBUG_CT_SAVE_STEPS_GZIP=y
|
||||
|
||||
#
|
||||
# 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 is not set
|
||||
|
||||
#
|
||||
# Downloading
|
||||
#
|
||||
# CT_FORCE_DOWNLOAD is not set
|
||||
# CT_USE_PROXY is not set
|
||||
CT_PROXY_TYPE="none"
|
||||
# CT_USE_LAN_MIRROR 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="powerpc"
|
||||
# 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="860"
|
||||
CT_ARCH_TUNE=""
|
||||
# CT_ARCH_FLOAT_HW is not set
|
||||
CT_ARCH_FLOAT_SW=y
|
||||
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=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="860"
|
||||
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"
|
||||
|
||||
#
|
||||
# Operating System
|
||||
#
|
||||
# CT_BARE_METAL is not set
|
||||
CT_KERNEL="linux"
|
||||
CT_KERNEL_VERSION="2.6.26"
|
||||
# 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_19 is not set
|
||||
CT_KERNEL_V_2_6_26=y
|
||||
# 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_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_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.50.0.1"
|
||||
# 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_50_0_1=y
|
||||
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_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 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_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="--with-cpu=860 --enable-cxx-flags=-mcpu=860 --with-float=soft --enable-cxx-flags=-msoft-float"
|
||||
CT_CC_PKGVERSION="crosstool-NG-${CT_VERSION}"
|
||||
CT_CC_BUGURL=""
|
||||
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 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=""
|
||||
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_LATEST is not set
|
||||
# CT_LIBC_V_date is not set
|
||||
|
||||
#
|
||||
# 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
|
||||
|
||||
#
|
||||
# glibc/eglibc common options
|
||||
#
|
||||
CT_LIBC_GLIBC_EXTRA_CONFIG="--without-fp"
|
||||
CT_LIBC_GLIBC_EXTRA_CFLAGS=""
|
||||
CT_LIBC_EXTRA_CC_ARGS=""
|
||||
CT_LIBC_GLIBC_USE_PORTS=y
|
||||
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"
|
||||
|
||||
#
|
||||
# Tools facilities
|
||||
#
|
||||
# CT_TOOL_libelf is not set
|
||||
# CT_TOOL_sstrip is not set
|
||||
|
||||
#
|
||||
# Debug facilities
|
||||
#
|
||||
# CT_DEBUG_dmalloc is not set
|
||||
# CT_DEBUG_duma is not set
|
||||
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 is not set
|
||||
# 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"
|
3
samples/powerpc-860-linux-gnu/reported.by
Normal file
3
samples/powerpc-860-linux-gnu/reported.by
Normal file
@ -0,0 +1,3 @@
|
||||
reporter_name="Nye Liu"
|
||||
reporter_url="http://sourceware.org/ml/crossgcc/2008-10/msg00046.html"
|
||||
reporter_comment=""
|
@ -443,6 +443,14 @@ do_libc() {
|
||||
GLIBC_INSTALL_APPS_LATER=no
|
||||
fi
|
||||
|
||||
# glibc initial build hacks
|
||||
# http://sourceware.org/ml/crossgcc/2008-10/msg00068.html
|
||||
case "${CT_ARCH},${CT_ARCH_CPU}" in
|
||||
powerpc,8??)
|
||||
CT_DoLog DEBUG "Activating support for memset on broken ppc-8xx (CPU15 erratum)"
|
||||
GLIBC_INITIAL_BUILD_ASFLAGS="-DBROKEN_PPC_8xx_CPU15";;
|
||||
esac
|
||||
|
||||
# If this fails with an error like this:
|
||||
# ... linux/autoconf.h: No such file or directory
|
||||
# then you need to set the KERNELCONFIG variable to point to a .config file for this arch.
|
||||
@ -453,6 +461,7 @@ do_libc() {
|
||||
CT_DoExecLog ALL make LD=${CT_TARGET}-ld \
|
||||
RANLIB=${CT_TARGET}-ranlib \
|
||||
OBJDUMP_FOR_HOST="${CT_TARGET}-objdump" \
|
||||
ASFLAGS="${GLIBC_INITIAL_BUILD_ASFLAGS}" \
|
||||
${GLIBC_INITIAL_BUILD_RULE}
|
||||
|
||||
CT_DoLog EXTRA "Installing C library"
|
||||
|
Loading…
Reference in New Issue
Block a user