From b155ce6ab804df56cdeb5b89bdf89f805ef4d853 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Thu, 29 Jun 2017 22:40:50 -0700 Subject: Encode GCC/ISL/CLooG requirements Signed-off-by: Alexey Neyman diff --git a/config/cc/gcc.in b/config/cc/gcc.in index cdcda9d..96e0b28 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -8,6 +8,17 @@ ## select CC_SUPPORT_OBJC ## select CC_SUPPORT_OBJCXX ## select CC_SUPPORT_GOLANG +# GCC7 requires ISL 0.15+ +## select ISL_REQUIRE_0_15_or_later if ISL_NEEDED && GCC_7_or_later +# GCC6 requires ISL 0.14+ (it says 0.14-0.16, but accepts newer ISL as well) +## select ISL_REQUIRE_0_14_or_later if ISL_NEEDED && GCC_6_or_later +# GCC5 requires ISL 0.12+ (again, it says 0.12-0.16, but also accepts newer ISL) +## select ISL_REQUIRE_0_12_or_later if ISL_NEEDED && GCC_5_or_later +# GCC4.9 requires ISL 0.10..0.15 +# GCC4.8 requires ISL 0.10..0.14 +## select ISL_REQUIRE_0_10_or_later if ISL_NEEDED && GCC_4_8_or_later +## select ISL_REQUIRE_0_15_or_older if ISL_NEEDED && GCC_4_9_or_later && !GCC_5_or_later +## select ISL_REQUIRE_0_14_or_older if ISL_NEEDED && GCC_4_8_or_later && !GCC_4_9_or_later ## ## help gcc is the full-blown GNU compiler. This is what most people will choose. ## help diff --git a/config/companion_libs/cloog.in b/config/companion_libs/cloog.in index 3c92d52..b894de9 100644 --- a/config/companion_libs/cloog.in +++ b/config/companion_libs/cloog.in @@ -1,9 +1,8 @@ # CLooG options ## depends on OBSOLETE -# TBD: encode these version requirements - how? # CLooG 0.18.4 requires ISL 0.12 or newer -# CLooG 0.18.1/0.18.0 frequires ISL 0.12 or older +# CLooG 0.18.1/0.18.0 requires ISL 0.12 or older source "config/versions/cloog.in" diff --git a/config/companion_libs/isl.in b/config/companion_libs/isl.in index cf0fea8..b617aa3 100644 --- a/config/companion_libs/isl.in +++ b/config/companion_libs/isl.in @@ -1,19 +1,23 @@ # ISL options - -# TBD need to encode this with new framework -# GCC 4.8 supports ISL 0.10 to 0.14 -# GCC 4.9 supports ISL 0.10 to 0.15 -# GCC 5 supports ISL 0.12 to 0.16 -# GCC 6 supports ISL 0.14 to 0.16 -# GCC 7 supports ISL 0.15 and up -# Starting with GCC 5, GCC's configure no longer checks the ISL version explicitly, -# despite what the configure's message says ("checking for isl 0.15 or 0.16"). -# Instead, it verifies that certain interfaces are available, so it accepts 0.17.1 -# or 0.18 under that check. Include them as experimental just in case anyone needs -# the bugfixes in these releases. +# FIXME these currently have no effect +## select CLOOG_REQUIRE_0_18_1_or_older if !ISL_0_12_or_later +## select CLOOG_REQUIRE_0_18_4_or_later if !ISL_0_14_or_older source "config/versions/isl.in" +# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax) +config ISL_CLOOG_auto_select_1 + def_bool y + depends on CLOOG_NEEDED && !ISL_0_12_or_later + select CLOOG_REQUIRE_0_18_1_or_older + +# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax) +config ISL_CLOOG_auto_select_2 + def_bool y + depends on CLOOG_NEEDED && !ISL_0_13_or_older + select CLOOG_REQUIRE_0_18_4_or_later +# TBD 0.12.2 should allow both! + config ISL_NEEDS_WITH_GMP bool default y if !ISL_0_12_or_later diff --git a/maintainer/kconfig-versions.template b/maintainer/kconfig-versions.template index c8dfed7..c135091 100644 --- a/maintainer/kconfig-versions.template +++ b/maintainer/kconfig-versions.template @@ -213,6 +213,9 @@ config @@pfx@@_V_@@kcfg@@ #!if [ "@@version_cmp_milestone@@" -ge 0 ] select @@masterpfx@@_@@ms_kcfg@@_or_later #!end-if +#!if [ "@@version_cmp_milestone@@" -le 0 ] + select @@masterpfx@@_@@ms_kcfg@@_or_older +#!end-if #!if [ "@@version_cmp_milestone@@" -gt 0 ] depends on !@@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_older #!end-if @@ -260,6 +263,9 @@ endif config @@masterpfx@@_@@ms_kcfg@@_or_later bool +config @@masterpfx@@_@@ms_kcfg@@_or_older + bool + #!// Milestone requirements selected by other packages that restrict #!// the choices in this package config @@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_later diff --git a/packages/cloog/package.desc b/packages/cloog/package.desc index ac3c29a..76252ae 100644 --- a/packages/cloog/package.desc +++ b/packages/cloog/package.desc @@ -1,4 +1,4 @@ name='CLooG' repository='git git://repo.or.cz/cloog.git' mirrors='http://www.bastoul.net/cloog/pages/download ftp://gcc.gnu.org/pub/gcc/infrastructure' -milestones='0.18' +milestones='0.18 0.18.1 0.18.4' diff --git a/packages/isl/package.desc b/packages/isl/package.desc index e4904d5..1efde40 100644 --- a/packages/isl/package.desc +++ b/packages/isl/package.desc @@ -1,4 +1,4 @@ repository='git git://repo.or.cz/isl.git' bootstrap='./autogen.sh' mirrors='http://isl.gforge.inria.fr' -milestones='0.12 0.14' +milestones='0.12 0.13 0.14 0.15' -- cgit v0.10.2-6-g49f6