Add support for building PPL:

- PPL will be needed to correctly build gcc-4.4+ for the
  GRAPHITE loop optimisation

 -------- diffstat follows --------
 /trunk/scripts/build/companion_libs/ppl.sh |   66    66     0     0 ++++++++++++++++++++++++++++++++++++
 /trunk/scripts/build/companion_libs/gmp.sh |   24    19     5     0 ++++++++++---
 /trunk/scripts/addToolVersion.sh           |    3     2     1     0 +-
 /trunk/scripts/crosstool-NG.sh.in          |    3     3     0     0 ++
 /trunk/steps.mk                            |    1     1     0     0 +
 /trunk/config/companion_libs/ppl.in        |   33    33     0     0 ++++++++++++++++++
 /trunk/config/companion_libs.in            |   22    19     3     0 ++++++++++--
 7 files changed, 143 insertions(+), 9 deletions(-)
This commit is contained in:
Yann E. MORIN" 2009-05-05 22:04:20 +00:00
parent 524095a6fa
commit a0cf91e83b
7 changed files with 143 additions and 9 deletions

View File

@ -9,10 +9,11 @@ config GMP_MPFR
prompt "GMP and MPFR"
help
gcc 4.3.0 and above requires both GMP and MPFR to build some frontends,
and some other components can use them as well (eg. binutils and gdb).
and some other components can use them as well.
Say 'Y' here if you want to build those two libraries specifically
for crosstool-NG.
These will be automatically selected if you choose gcc>=4.3.0, but you
can say 'Y' here if you want to build those two libraries for the other
components (that don't select them by default).
The packages that can use GMP and MPFR are:
- binutils
@ -35,4 +36,19 @@ source config/companion_libs/gmp.in
source config/companion_libs/mpfr.in
endif
config PPL_CLOOG
bool
prompt "PPL and GLooG/PPL"
help
gcc-4.4.0 and above requires both PPL and CLooG/PPL to build some
parts of the optimiser (GRAPHITE loop optimisation, to be precise).
These will be automatically selected if you choose gcc>=4.4.0, but you
can say 'Y' here, although it is unknown yet if any other component
can use them.
if PPL_CLOOG
source config/companion_libs/ppl.in
endif
endmenu

View File

@ -0,0 +1,33 @@
# PPL options
choice
bool
prompt "PPL version"
config PPL_V_0_10_2
bool
prompt "0.10.2"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
config PPL_VERSION
string
default "0.10.2" if PPL_V_0_10_2
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!
config PPL_CHECK
bool
prompt "Check PPL (!!! README !!!)"
default n
help
Checking PPL is very intensive and takes a loooong time.
The PPL folks do not recommend checking the library, but they do
not recommend not checking it, either.
Checking PPL is thus disabled by default.
If you suspect that your PPL library is the cause for incorrectly
generated code, you should answer 'Y' here.

View File

@ -13,7 +13,7 @@ Usage: ${myname} <tool> <[options] version [...]> ...
'tool' in one of:
--gcc, --binutils, --glibc, --eglibc, --uClibc, --linux,
--gdb, --dmalloc, --duma, --strace, --ltrace, --libelf
--gmp, --mpfr
--gmp, --mpfr, --ppl
Valid options for all tools:
--stable, -s, +x (default)
@ -133,6 +133,7 @@ while [ $# -gt 0 ]; do
--libelf) EXP=; OBS=; cat=LIBELF; tool=libelf; tool_prefix=tools;;
--gmp) EXP=; OBS=; cat=GMP; tool=gmp; tool_prefix=companion_libs;;
--mpfr) EXP=; OBS=; cat=MPFR; tool=mpfr; tool_prefix=companion_libs;;
--ppl) EXP=; OBS=; cat=PPL; tool=ppl; tool_prefix=companion_libs;;
# Tools options:
-x|--experimental|+s) EXP=1;;

View File

@ -22,20 +22,32 @@ do_gmp_extract() {
}
do_gmp() {
local opts
local cflags
mkdir -p "${CT_BUILD_DIR}/build-gmp"
cd "${CT_BUILD_DIR}/build-gmp"
CT_DoStep INFO "Installing GMP"
CT_DoLog EXTRA "Configuring GMP"
CFLAGS="${CT_CFLAGS_FOR_HOST}" \
if [ "${CT_PPL_CLOOG}" = "y" ]; then
opts="--enable-cxx"
cflags="-fexceptions"
fi
CFLAGS="${CT_CFLAGS_FOR_HOST} ${cflags}" \
CT_DoExecLog ALL \
"${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \
--build=${CT_BUILD} \
--host=${CT_HOST} \
--prefix="${CT_PREFIX_DIR}" \
--disable-shared --enable-static \
--enable-fft --enable-mpbsd
--disable-shared \
--enable-static \
--enable-fft \
--enable-mpbsd \
${opts}
CT_DoLog EXTRA "Building GMP"
CT_DoExecLog ALL make ${PARALLELMFLAGS}
@ -66,8 +78,10 @@ do_gmp_target() {
--build=${CT_BUILD} \
--host=${CT_TARGET} \
--prefix=/usr \
--disable-shared --enable-static \
--enable-fft --enable-mpbsd
--disable-shared \
--enable-static \
--enable-fft \
--enable-mpbsd \
CT_DoLog EXTRA "Building GMP"
CT_DoExecLog ALL make ${PARALLELMFLAGS}

View File

@ -0,0 +1,66 @@
# This file adds the functions to build the PPL library
# Copyright 2009 Yann E. MORIN
# Licensed under the GPL v2. See COPYING in the root of this package
do_ppl_get() { :; }
do_ppl_extract() { :; }
do_ppl() { :; }
do_ppl_target() { :; }
# Overide functions depending on configuration
if [ "${CT_PPL_CLOOG}" = "y" ]; then
# Download PPL
do_ppl_get() {
CT_GetFile "ppl-${CT_PPL_VERSION}" \
http://www.cs.unipr.it/ppl/Download/ftp/releases/${CT_PPL_VERSION} \
ftp://ftp.cs.unipr.it/pub/ppl/releases/${CT_PPL_VERSION}
}
# Extract PPL
do_ppl_extract() {
CT_Extract "ppl-${CT_PPL_VERSION}"
CT_Patch "ppl-${CT_PPL_VERSION}"
}
do_ppl() {
mkdir -p "${CT_BUILD_DIR}/build-ppl"
cd "${CT_BUILD_DIR}/build-ppl"
CT_DoStep INFO "Installing PPL"
CT_DoLog EXTRA "Configuring PPL"
CFLAGS="${CT_CFLAGS_FOR_HOST}" \
CT_DoExecLog ALL \
"${CT_SRC_DIR}/ppl-${CT_PPL_VERSION}/configure" \
--build=${CT_BUILD} \
--host=${CT_HOST} \
--prefix="${CT_PREFIX_DIR}" \
--with-libgmp-prefix="${CT_PREFIX_DIR}" \
--with-libgmpxx-prefix="${CT_PREFIX_DIR}" \
--disable-shared \
--enable-static \
--disable-debugging \
--disable-assertions \
--disable-ppl_lcdd \
--disable-ppl_lpsol
# Maybe-options:
# --enable-interfaces=...
# --enable-optimization=speed or sspeed (yes, with 2 's')
CT_DoLog EXTRA "Building PPL"
CT_DoExecLog ALL make ${PARALLELMFLAGS}
if [ "${CT_PPL_CHECK}" = "y" ]; then
CT_DoLog EXTRA "Checking PPL"
CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
fi
CT_DoLog EXTRA "Installing PPL"
CT_DoExecLog ALL make install
CT_EndStep
}
fi # CT_PPL_CLOOG

View File

@ -90,6 +90,7 @@ CT_DoLog INFO "Building environment variables"
. "${CT_LIB_DIR}/scripts/build/kernel/${CT_KERNEL}.sh"
. "${CT_LIB_DIR}/scripts/build/companion_libs/gmp.sh"
. "${CT_LIB_DIR}/scripts/build/companion_libs/mpfr.sh"
. "${CT_LIB_DIR}/scripts/build/companion_libs/ppl.sh"
. "${CT_LIB_DIR}/scripts/build/binutils.sh"
. "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"
. "${CT_LIB_DIR}/scripts/build/cc/${CT_CC}.sh"
@ -444,6 +445,7 @@ if [ -z "${CT_RESTART}" ]; then
do_kernel_get
do_gmp_get
do_mpfr_get
do_ppl_get
do_binutils_get
do_cc_get
do_libc_get
@ -460,6 +462,7 @@ if [ -z "${CT_RESTART}" ]; then
do_kernel_extract
do_gmp_extract
do_mpfr_extract
do_ppl_extract
do_binutils_extract
do_cc_extract
do_libc_extract

View File

@ -20,6 +20,7 @@ CT_STEPS := libc_check_config \
kernel_headers \
gmp \
mpfr \
ppl \
binutils \
cc_core_pass_1 \
libc_headers \