Skip to content

Commit

Permalink
PPL: Remove support for PPL and CLooG/PPL
Browse files Browse the repository at this point in the history
Now that versions of gcc that required PPL are no longer supported
( >= gcc-4.5.x AND <= gcc-4.7.x )
...we no longer require PPL or CLooG/PPL.

This commit:

* Removes PPL
* Removes CLooG/PPL
* Updates the documentation
* Updates build script for CLooG and GCC
* Removes PPL and CLooG/PPL from scripts/addToolVersion.sh and
  scripts/showSamples.sh
* Adds ISL to scripts/addToolVersion.sh and scripts/showSamples.sh

I know that sounds like a lot for one commit, but it was all kind of
inter-tangled.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
  • Loading branch information
bhundven committed Nov 30, 2015
1 parent c0bd1bb commit 0e0ecc8
Show file tree
Hide file tree
Showing 32 changed files with 45 additions and 1,093 deletions.
7 changes: 5 additions & 2 deletions config/cc/gcc.in
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,8 @@ config CC_GCC_latest
config CC_GCC_HAS_GRAPHITE
bool

# For graphite: gcc 4.4..4.7 need ppl, while 4.8.. need isl
# For graphite: gcc needs cloog and isl
# In >= gcc-5.x, cloog is no longer needed, but isl is.
# Prompt in config/cc/gcc.in.2
config CC_GCC_USE_GRAPHITE
bool
Expand All @@ -167,10 +168,12 @@ config CC_GCC_USE_GRAPHITE
help
Enable the GRAPHITE loop optimsations.

On some systems (eg. Cygwin), PPL and/or CLooG (required to enable
On some systems (eg. Cygwin), CLooG and ISL (required to enable
GRAPHITE) may not build properly (yet), so you'll have to say 'N'
here (or help debug the issues)

TODO: Is this still true on Cygwin?

# The way LTO works is a bit twisted.
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
# Basically:
Expand Down
2 changes: 1 addition & 1 deletion config/cc/gcc.in.2
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ config CC_GCC_STATIC_LIBSTDCXX
default y
select WANTS_STATIC_LINK
help
Newer gcc versions use the PPL library which is C++ code. Statically
Newer gcc versions require some c++ libraries. So statically
linking libstdc++ increases the likeliness that the gcc binary will
run on machines other than the one which it was built on, without
having to worry about distributing the matching version of libstdc++
Expand Down
17 changes: 1 addition & 16 deletions config/companion_libs.in
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,6 @@ config MPFR_NEEDED
select MPFR
select COMPLIBS_NEEDED

config PPL_NEEDED
bool
select PPL
select COMPLIBS_NEEDED

config ISL_NEEDED
bool
select ISL
Expand Down Expand Up @@ -83,11 +78,6 @@ config MPFR
select GMP
select COMPLIBS

config PPL
bool
select GMP
select COMPLIBS

config ISL
bool
select GMP
Expand Down Expand Up @@ -137,9 +127,6 @@ endif
if MPFR
source "config/companion_libs/mpfr.in"
endif
if PPL
source "config/companion_libs/ppl.in"
endif
if ISL
source "config/companion_libs/isl.in"
endif
Expand Down Expand Up @@ -182,9 +169,7 @@ config COMPLIBS_CHECK

If you suspect that one (or more) of your companion libraries is the
cause for incorrectly generated code, you should answer 'Y' here.
Note however that this will take a really long time. For example,
building PPL on my machine takes roughly 1'40", while checking it takes
about 1h40'...
Note however that this will take a really long time.

endif # COMPLIBS

Expand Down
10 changes: 0 additions & 10 deletions config/companion_libs/cloog.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,6 @@ config CLOOG_V_0_18_0

endif # ISL

if PPL

config CLOOG_V_0_15_11
bool
prompt "0.15.11"
select CLOOG_NEEDS_AUTORECONF

endif # PPL

endchoice

config CLOOG_VERSION
Expand All @@ -44,7 +35,6 @@ config CLOOG_VERSION
default "0.18.4" if CLOOG_V_0_18_4
default "0.18.1" if CLOOG_V_0_18_1
default "0.18.0" if CLOOG_V_0_18_0
default "0.15.11" if CLOOG_V_0_15_11

config CLOOG_0_18_4_or_later
bool
Expand Down
51 changes: 0 additions & 51 deletions config/companion_libs/ppl.in

This file was deleted.

5 changes: 4 additions & 1 deletion docs/4 - Building the toolchain.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,10 @@ Unfortunately, not all systems on which crosstool-NG runs have all of those
libraries. And for those that do, the versions of those libraries may be
older than the version required by gcc (and binutils and gdb). To date,
Debian stable (aka Lenny) is lagging behind on some, and is missing the
others.
others. With >= gcc-4.8, we drop PPL and CLooG/PPL, and switch to ISL to
replace PPL, and use the upstream version of CLooG instead of CLooG/PPL
which was a fork of CLooG that provided PPL backend support, that was under-
maintained. See: https://gcc.gnu.org/wiki/Graphite-4.8

This is why crosstool-NG builds its own set of libraries as part of the
toolchain.
Expand Down
2 changes: 1 addition & 1 deletion docs/7 - Contributing to crosstool-NG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Here is the (mostly-complete) list of categories and components:
libc | uClibc, glibc, newlib, mingw, none
kernel | linux, mingw32, bare-metal
debug | dmalloc, duma, gdb, ltrace, strace
complibs | gmp, mpfr, ppl, cloog, mpc, libelf
complibs | gmp, mpfr, isl, cloog, mpc, libelf
comptools | make, m4, autoconf, automake, libtool
------------+-------------------------------------------------------
| The following categories have no component-part:
Expand Down
12 changes: 6 additions & 6 deletions docs/9 - How is a toolchain constructed.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,25 +199,25 @@ loop optimisation (GRAPHITE) and Link Time Optimisation (LTO). If you want
to use these, you'll need three additional libraries:

To enable GRAPHITE:
- the Parma Polyhedra Library, PPL
- the Chunky Loop Generator, using the PPL backend, CLooG/PPL
- the Interger Set Library, ISL
- the Chunky Loop Generator, CLooG

To enable LTO:
- the ELF object file access library, libelf

The dependencies for those libraries are:

- PPL requires GMP
- CLooG/PPL requires GMP and PPL
- ISL requires GMP
- CLooG requires GMP and ISL
- libelf has no pre-requisites

The list now looks like (optional libs with a *):

1 GMP
2 MPFR
3 MPC
4 PPL *
5 CLooG/PPL *
4 ISL *
5 CLooG *
6 libelf *
7 binutils
8 core pass 1 compiler
Expand Down
24 changes: 0 additions & 24 deletions patches/cloog-ppl/0.15.10/100-add_on_libs_position.patch

This file was deleted.

24 changes: 0 additions & 24 deletions patches/cloog-ppl/0.15.11/100-add_on_libs_position.patch

This file was deleted.

24 changes: 0 additions & 24 deletions patches/cloog-ppl/0.15.6/100-add_on_libs_position.patch

This file was deleted.

24 changes: 0 additions & 24 deletions patches/cloog-ppl/0.15.7/100-add_on_libs_position.patch

This file was deleted.

24 changes: 0 additions & 24 deletions patches/cloog-ppl/0.15.8/100-add_on_libs_position.patch

This file was deleted.

24 changes: 0 additions & 24 deletions patches/cloog-ppl/0.15.9/100-add_on_libs_position.patch

This file was deleted.

28 changes: 0 additions & 28 deletions patches/ppl/0.10.2/100-fix-configure-with-gmp-5_0_1.patch

This file was deleted.

Loading

0 comments on commit 0e0ecc8

Please sign in to comment.