diff --git a/dim.sh b/dim.sh index fe718579d7..2164e76801 100644 --- a/dim.sh +++ b/dim.sh @@ -1,6 +1,6 @@ package: dim version: "%(tag_basename)s" -tag: v20r30 +tag: v20r30-alice1 source: https://github.com/alisw/dim requires: - "GCC-Toolchain:(?!osx)" diff --git a/gcc-toolchain.sh b/gcc-toolchain.sh index 0634865a5d..6b2983c844 100644 --- a/gcc-toolchain.sh +++ b/gcc-toolchain.sh @@ -1,6 +1,6 @@ package: GCC-Toolchain version: "%(tag_basename)s" -tag: v14.2.0-alice2 +tag: v15.3.0-alice2 license: GPL-3.0 source: https://github.com/alisw/gcc-toolchain prepend_path: @@ -15,6 +15,7 @@ prefer_system_check: | set -e which gfortran || { echo "gfortran missing"; exit 1; } case $REQUESTED_VERSION in + v15*) MIN_GCC_VERSION=150300 ;; v14*) MIN_GCC_VERSION=140200 ;; v13*) MIN_GCC_VERSION=130200 ;; v12*) MIN_GCC_VERSION=120100 ;; @@ -96,6 +97,17 @@ rsync -a gcc/gmp/ gmp rsync -a gcc/isl/ isl rsync -a gcc/mpc/ mpc +# isl 0.27 ships C++17 self-tests (isl_test_cpp17, isl_test_cpp17-checked) that +# break the in-tree GCC build: AX_CXX_COMPILE_STDCXX_17 sets HAVE_CXX17=1 when +# the host compiler accepts C++17 "by default" but adds no -std switch, then the +# TUs get compiled with __cplusplus < 201703L so the C++17-only members +# (id::try_user, the std::any ctor) are invisible. These tests are not needed to +# build libisl for GCC, so drop them from both isl copies before autoreconf +# regenerates the Makefiles. +for islmf in gcc/isl/Makefile.am isl/Makefile.am; do + [ -f "$islmf" ] && perl -ni -e 'print unless /^if HAVE_CXX17$/ .. /^endif$/' "$islmf" +done + pushd gcc [ -d mpfr ] && (cd mpfr && autoreconf -ivf) [ -d mpc ] && (cd mpc && autoreconf -ivf) @@ -215,6 +227,7 @@ mkdir -p build-isl mkdir -p build-mpc pushd build-gmp + CFLAGS="-O2 -pedantic -fomit-frame-pointer -std=gnu17" \ ../gmp/configure --prefix="$INSTALLROOT/libexec/extra" \ --disable-shared \ --enable-static diff --git a/libxml2.sh b/libxml2.sh index a0ded24b5f..386153cd96 100644 --- a/libxml2.sh +++ b/libxml2.sh @@ -1,44 +1,31 @@ package: libxml2 version: "%(tag_basename)s" -tag: v2.9.3 +tag: v2.15.3 license: MIT build_requires: - "autotools:(slc6|slc7)" - zlib - "GCC-Toolchain:(?!osx)" -source: https://github.com/alisw/libxml2.git + - ninja + - CMake + - alibuild-recipe-tools +source: https://gitlab.gnome.org/GNOME/libxml2 prefer_system: "(?!slc5)" prefer_system_check: | xml2-config --version; if [ $? -ne 0 ]; then printf "libxml2 not found.\n * On RHEL-compatible systems you probably need: libxml2 libxml2-devel\n * On Ubuntu-compatible systems you probably need: libxml2 libxml2-dev"; exit 1; fi --- #!/bin/sh -echo "Building ALICE libxml. To avoid this install libxml development package." -rsync -a --chmod=ug=rwX --exclude='**/.git' --delete --delete-excluded "$SOURCEDIR"/ . -autoreconf -i -./configure --disable-static \ - --prefix=$INSTALLROOT \ - --with-zlib="${ZLIB_ROOT}" --without-python - -make ${JOBS+-j $JOBS} -make install +cmake "$SOURCEDIR" "-DCMAKE_INSTALL_PREFIX=$INSTALLROOT" \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DLIBXML2_WITH_ZLIB=ON \ + ${ZLIB_REVISION:+-DZLIB_ROOT=$ZLIB_ROOT} +cmake --build . -- ${JOBS:+-j$JOBS} install # Modulefile mkdir -p etc/modulefiles -cat > etc/modulefiles/$PKGNAME < "etc/modulefiles/$PKGNAME" <