From b8c7370a682e4e29cda623222d17a790c01c3642 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 7 Aug 2024 12:37:21 +0100 Subject: gentoo auto-resync : 07:08:2024 - 12:37:20 --- sci-libs/atlas/Manifest | 8 +- sci-libs/atlas/atlas-3.10.2-r1.ebuild | 216 +++++++++++++++ sci-libs/atlas/atlas-3.10.2.ebuild | 220 --------------- sci-libs/atlas/atlas-3.10.3.ebuild | 225 ++++++++++++++++ sci-libs/atlas/atlas-3.11.41.ebuild | 225 ++++++++++++++++ .../atlas/files/atlas-3.10.3-fix-ancient-c.patch | 297 +++++++++++++++++++++ 6 files changed, 970 insertions(+), 221 deletions(-) create mode 100644 sci-libs/atlas/atlas-3.10.2-r1.ebuild delete mode 100644 sci-libs/atlas/atlas-3.10.2.ebuild create mode 100644 sci-libs/atlas/atlas-3.10.3.ebuild create mode 100644 sci-libs/atlas/atlas-3.11.41.ebuild create mode 100644 sci-libs/atlas/files/atlas-3.10.3-fix-ancient-c.patch (limited to 'sci-libs/atlas') diff --git a/sci-libs/atlas/Manifest b/sci-libs/atlas/Manifest index 5f68dcd06051..4cda34da9815 100644 --- a/sci-libs/atlas/Manifest +++ b/sci-libs/atlas/Manifest @@ -1,6 +1,12 @@ AUX atlas-3.10.2-format-security.patch 8872 BLAKE2B 146136803b7c62f40847e6dbc3acc9422c5fda23383c0fb672b7bb34581898c852756992905d28f7ad1321cefd3ac027958e77971501030157d8e4e1f04d29c2 SHA512 151add96a1e34f99eb37d83e31018797a5737cf9e1ffb9d2fa459f9811dabae1e8fada3a8790618fd24abc7a43255b3694d4f3b9775d3478f1ffe4bc9c314252 AUX atlas-3.10.2-x32-support.patch 3410 BLAKE2B ba2f45ef71805d51aef7280876a825f522ac7eaa6210d1283be3a8a62cf2a0511003c9127393360a43010d29e86467f1c8bbf3be2bebaa37123313a77268e113 SHA512 ba30f795031457a4416978fadd76870aa09fa7af93f10bc5f0258a44d98151fa37c72813a999048927fc9a521e52d2eb9f01b4f7423baa4d0bad099eb0ee06cb +AUX atlas-3.10.3-fix-ancient-c.patch 8185 BLAKE2B cf8e922aa19276162e19ca671acbe9e5e469d5a8520ddc01fd24d269535c31afd0da98465f835ba5726865b97f34f7c5b39ea65008f3e0ef4b42f6311620ccbf SHA512 c8b423eebaeb42130f61f622e8d0bf5555b5560cf1e859a1b1b7781ff042d1570425a44df48d5826a4ef7f99e6ad47c88231471ef68eba0e67de8d88058a7ec4 DIST atlas3.10.2.tar.bz2 4904923 BLAKE2B e2fb0d307907549644cb678c32c4befce7ce6809c348a11fa6084e17d696da8681b3388dd63d8bdee6040999d9ab38a75f1788b42640121a536eb5f13e6f8939 SHA512 9fe04cfa1f89449db047d1a4659a656964d13117c783cbbe43344eb32555736f037d9cd30c5ae1514c08ad5b8949a3982d7fe102d707ddb62288e76b2607fbb1 +DIST atlas3.10.3.tar.bz2 5156852 BLAKE2B cd3880a6d0c43b5840d4da26ac996cc9fe7615fc996229193ef1f936daa2c54c5465643def19f59dd5c481c447176e2ba3cf85d38c0b5008c2dc1bc18be0e65b SHA512 bf17306f09f2aa973cb776e2c9eacfb2409ad4d95d19802e1c4e0597d0a099fccdb5eaafe273c2682a41e41a3c6fabc8bbba4ce03180cffea40ede5df1d1f56e +DIST atlas3.11.41.tar.bz2 6644195 BLAKE2B c046725f1a8978e345cb59026b93029483ecdfa0151256cca5dcdd337ced2a63819c19319795b663cd12180e8be0db475a3d1c1a5d76296ef333f99887d9e44a SHA512 06306c588505dcf22a1afa0f57d85b0008728deb5876e66b2710fee29712b979aa63eafc9142be2372b9895ba594cc5aba230aa3d1ddc95932af1e585478204d +DIST lapack-3.12.0.tar.gz 7933607 BLAKE2B dafb1f9a717f2cbc00a26f8cff2c7a1ebb720714fe6d7bd5fabb511a2f4af317165814340864c9d601e4e16c7762f643fbbafc058170ebcdc6529a9b4f2d70b6 SHA512 f8f3c733a0221be0b3f5618235408ac59cbd4e5f1c4eab5f509b831a6ec6a9ef14b8849aa6ea10810df1aff90186ca454d15e9438d1dd271c2449d42d3da9dda DIST lapack-3.6.0.tgz 6792324 BLAKE2B 438f3376b63b38ef0fe70f6becac847816f3a11c01f5ab237dc0d941792ceb54dbd2f8dc22d56286f5dab3499289ed94e67521ea951a98973c9640abc294ad6c SHA512 bc50441d415ef8896dd7626d77c6104184b996e758704366288089f03d4c99d068e33153b0d13305310886017e5d2e716130f812a95cfcad36ef37fe20417ab8 -EBUILD atlas-3.10.2.ebuild 5628 BLAKE2B 665ae5186574dad553800439446f63785df44977e94f10246c7913f4c16c650065771ab590f538ac5515ce986a29a3f40a57f363820ced5001b77aa4375fd084 SHA512 c01abb2b0af5f728a4a70de22862eaf58731fdafa3afcc3286cc73fb2d22e463967b8263ea977db4ca41173be84771ee57e7dd473a08d4ad651513d2e85cdcd7 +EBUILD atlas-3.10.2-r1.ebuild 5560 BLAKE2B 9502f57aac61fb78938406066ba56b61458f48c4bcc651ce605581bb16da29df245819a7f807b0863b190fc5e232ecdcb879e41eb98c8b1bccad332b6d5d2663 SHA512 324d20f0a666f3ee3a60a1c3a00831a141998c63e5cfe41f1750f1a3a67d0f987bb65cc22dbc638bd3a13c597c1fc66e1f04ebe9d5f69b61ab3a33f9dc24be43 +EBUILD atlas-3.10.3.ebuild 5891 BLAKE2B 3b9b82639d95f5031a67692177cbe789796dd9c7ffa2aad9d3e53078472fa13288462261e1b602474ad2d738cc4c6bf32ade3472c30b32026a12d59f7aa4b999 SHA512 9a27623f377b84b57dd36a0f093ba5ca0db996ee78255066b3f5e77184ca294e73f770a895ebc9b64407f99438a0bfa8ec65d8543a04c409de1637fa430d7902 +EBUILD atlas-3.11.41.ebuild 5887 BLAKE2B c91954f3843f50d532b90756dbf2ba436ead1d07e6066a01b5b4b2b8a20dfab4bdb6cfd1de98c3209285ccc871aa2fa7981c6eb199c08a429631e69917d9b0c3 SHA512 d890c1ab87bdca5014220d4558238877c3f191abf58c02e06eaec390f2327094e7bf7b1106f1257228fd26db14f3da40f01b09b34b7a2dee968202a8f8f90f59 MISC metadata.xml 935 BLAKE2B cf5e711f899988c36d4ffc63997c963a4ee30e7ac57de0415424e32699379d6595ac9e52cca8760f2b49af527d01b6a4e28bccdb762e5f9c220ae4da99899879 SHA512 5cb05a261bedbd08274d72ea3a4c2843fc39c0ca27d2b8e144310035feab40ec3abfd07438db062bc4c5fc7306be27ceb0fe97d1d24c68bea56683ceb55e7b9b diff --git a/sci-libs/atlas/atlas-3.10.2-r1.ebuild b/sci-libs/atlas/atlas-3.10.2-r1.ebuild new file mode 100644 index 000000000000..88ac1701512c --- /dev/null +++ b/sci-libs/atlas/atlas-3.10.2-r1.ebuild @@ -0,0 +1,216 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_NEEDED=fortran + +inherit fortran-2 toolchain-funcs + +LAPACKP=lapack-3.6.0.tgz + +DESCRIPTION="Automatically Tuned Linear Algebra Software" +HOMEPAGE="https://math-atlas.sourceforge.net" +SRC_URI="https://downloads.sourceforge.net/math-atlas/${PN}${PV}.tar.bz2 + fortran? ( lapack? ( http://www.netlib.org/lapack/${LAPACKP} ) )" +S="${WORKDIR}/ATLAS" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc fortran generic lapack static-libs threads" + +PATCHES=( + "${FILESDIR}/${P}-x32-support.patch" + "${FILESDIR}/${P}-format-security.patch" +) + +pkg_setup() { + local _cpufreq + for _cpufreq in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do + if [ -f ${_cpufreq} ]; then + if ! grep -q performance ${_cpufreq}; then + echo 2> /dev/null performance > ${_cpufreq} || \ + die "${PN} needs all cpu set to performance" + fi + fi + done + use fortran && fortran-2_pkg_setup +} + +src_configure() { + # hack needed to trick the flaky gcc detection + local mycc="$(type -P $(tc-getCC))" + [[ ${mycc} == *gcc* ]] && mycc=gcc + atlas_configure() { + local myconf=( + --prefix="/usr" + --libdir="/usr/$(get_libdir)" + --incdir="/usr/include" + --cc="$(tc-getCC)" + "-D c -DWALL" + "-C acg '${mycc}'" + "-F acg '${CFLAGS}'" + "-Ss pmake '\$(MAKE) ${MAKEOPTS}'" + ) + + # OpenMP shown to decreased performance over POSIX threads + # (at least in 3.9.x, see atlas-dev mailing list) + if use threads; then + if use generic; then # 2 threads is most generic + myconf+=( "-t 2" "-Si omp 0" ) + else + myconf+=( "-t -1" "-Si omp 0" ) + fi + else + myconf+=( "-t 0" "-Si omp 0" ) + fi + + if use amd64 || use ppc64 || use sparc; then + if [ ${ABI} = amd64 ] || [ ${ABI} = ppc64 ] || [ ${ABI} = sparc64 ] ; then + myconf+=( "-b 64" ) + elif [ ${ABI} = x86 ] || [ ${ABI} = ppc ] || [ ${ABI} = sparc32 ] ; then + myconf+=( "-b 32" ) + elif [ ${ABI} = x32 ] ; then + myconf+=( "-b 48" ) + else + myconf+=( "-b 64" ) + fi + elif use ppc || use x86; then + myconf+=( "-b 32" ) + elif use ia64; then + myconf+=( "-b 64" ) + fi + if use fortran; then + myconf+=( + "-C if '$(type -P $(tc-getFC))'" + "-F if '${FFLAGS}'" + ) + if use lapack; then + myconf+=( + "-Si latune 1" + "--with-netlib-lapack-tarfile=${DISTDIR}/${LAPACKP}" + ) + else + myconf+=( "-Si latune 0" ) + fi + else + myconf+=( "-Si latune 0" "--nof77" ) + fi + # generic stuff found by make make xprint_enums in atlas build dir + # basically assuming sse2+sse1 and 2 threads max + use generic && use x86 && myconf+=( "-V 384 -A 13") + use generic && use amd64 && myconf+=( "-V 384 -A 24") + + local confdir="${S}_${1}"; shift + myconf+=( $@ ) + mkdir "${confdir}" && cd "${confdir}" + # for debugging + echo ${myconf[@]} > myconf.out + "${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed" + } + + atlas_configure shared "-Fa alg -fPIC" ${EXTRA_ECONF} + use static-libs && atlas_configure static ${EXTRA_ECONF} +} + +src_compile() { + atlas_compile() { + pushd "${S}_${1}" > /dev/null + # atlas does its own parallel builds + emake -j1 build + cd lib + emake libclapack.a + [[ -e libptcblas.a ]] && emake libptclapack.a + popd > /dev/null + } + + atlas_compile shared + use static-libs && atlas_compile static +} + +src_test() { + cd "${S}_shared" + emake -j1 check time +} + +# transform a static archive into a shared library and install them +# atlas_install_libs [extra link flags] +atlas_install_libs() { + local libname=$(basename ${1%.*}) + einfo "Installing ${libname}" + local soname=${libname}.so.$(ver_cut 1) + shift + pushd "${S}_shared"/lib > /dev/null + ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared -Wl,-soname=${soname} \ + -Wl,--whole-archive ${libname}.a -Wl,--no-whole-archive \ + "$@" -o ${soname} || die "Creating ${soname} failed" + dolib.so ${soname} + ln -s ${soname} ${soname%.*} + dosym ${soname} /usr/$(get_libdir)/${soname%.*} + popd > /dev/null + use static-libs && dolib.a "${S}_static"/lib/${libname}.a +} + +src_install() { + cd "${S}_shared/lib" + # rename to avoid collision with other packages + local l + for l in {,c}{blas,lapack}; do + if [[ -e lib${l}.a ]]; then + mv lib{,atl}${l}.a + use static-libs && mv "${S}"_static/lib/lib{,atl}${l}.a + fi + done + + [[ -e libptcblas.a ]] && PTLIBS="-lpthread" + + # atlas + atlas_install_libs libatlas.a -lm ${PTLIBS} + + # cblas + atlas_install_libs libatlcblas.a -lm -L. -latlas + + # cblas threaded + [[ -e libptcblas.a ]] && \ + atlas_install_libs libptcblas.a -lm -L. -latlas ${PTLIBS} + + if use lapack; then + # clapack + atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas + + # clapack threaded + [[ -e libptclapack.a ]] && \ + atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas ${PTLIBS} + fi + + if use fortran; then + LINK=$(tc-getF77) + + # blas + atlas_install_libs libf77blas.a -lm -L. -latlas + + # blas threaded + [[ -e libptf77blas.a ]] && \ + atlas_install_libs libptf77blas.a -lm -L. -latlas ${PTLIBS} + + if use lapack; then + # lapack + atlas_install_libs libatllapack.a \ + -lm -L. -latlas -latlcblas -lf77blas + # lapack threaded + [[ -e libptlapack.a ]] && \ + atlas_install_libs libptlapack.a -lm -L. -latlas -lptcblas -lptf77blas ${PTLIBS} + fi + fi + + cd "${S}" + insinto /usr/include/${PN} + doins include/*.h + + cd "${S}/doc" + dodoc INDEX.txt AtlasCredits.txt ChangeLog + use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf + use doc && use fortran && dodoc f77blas*pdf + use doc && use fortran && use lapack && dodoc *lapack*pdf +} diff --git a/sci-libs/atlas/atlas-3.10.2.ebuild b/sci-libs/atlas/atlas-3.10.2.ebuild deleted file mode 100644 index 43582741de1a..000000000000 --- a/sci-libs/atlas/atlas-3.10.2.ebuild +++ /dev/null @@ -1,220 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -FORTRAN_NEEDED=fortran - -inherit fortran-2 toolchain-funcs versionator - -LAPACKP=lapack-3.6.0.tgz - -DESCRIPTION="Automatically Tuned Linear Algebra Software" -HOMEPAGE="https://math-atlas.sourceforge.net" -SRC_URI="https://downloads.sourceforge.net/math-atlas/${PN}${PV}.tar.bz2 - fortran? ( lapack? ( http://www.netlib.org/lapack/${LAPACKP} ) )" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="doc fortran generic lapack static-libs threads" - -RDEPEND="" -DEPEND="${RDEPEND}" - -S="${WORKDIR}/ATLAS" - -PATCHES=( - "${FILESDIR}/${P}-x32-support.patch" - "${FILESDIR}/${P}-format-security.patch" -) - -pkg_setup() { - local _cpufreq - for _cpufreq in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do - if [ -f ${_cpufreq} ]; then - if ! grep -q performance ${_cpufreq}; then - echo 2> /dev/null performance > ${_cpufreq} || \ - die "${PN} needs all cpu set to performance" - fi - fi - done - use fortran && fortran-2_pkg_setup -} - -src_configure() { - # hack needed to trick the flaky gcc detection - local mycc="$(type -P $(tc-getCC))" - [[ ${mycc} == *gcc* ]] && mycc=gcc - atlas_configure() { - local myconf=( - --prefix="${ED}/usr" - --libdir="${ED}/usr/$(get_libdir)" - --incdir="${ED}/usr/include" - --cc="$(tc-getCC)" - "-D c -DWALL" - "-C acg '${mycc}'" - "-F acg '${CFLAGS}'" - "-Ss pmake '\$(MAKE) ${MAKEOPTS}'" - ) - - # OpenMP shown to decreased performance over POSIX threads - # (at least in 3.9.x, see atlas-dev mailing list) - if use threads; then - if use generic; then # 2 threads is most generic - myconf+=( "-t 2" "-Si omp 0" ) - else - myconf+=( "-t -1" "-Si omp 0" ) - fi - else - myconf+=( "-t 0" "-Si omp 0" ) - fi - - if use amd64 || use ppc64 || use sparc; then - if [ ${ABI} = amd64 ] || [ ${ABI} = ppc64 ] || [ ${ABI} = sparc64 ] ; then - myconf+=( "-b 64" ) - elif [ ${ABI} = x86 ] || [ ${ABI} = ppc ] || [ ${ABI} = sparc32 ] ; then - myconf+=( "-b 32" ) - elif [ ${ABI} = x32 ] ; then - myconf+=( "-b 48" ) - else - myconf+=( "-b 64" ) - fi - elif use ppc || use x86; then - myconf+=( "-b 32" ) - elif use ia64; then - myconf+=( "-b 64" ) - fi - if use fortran; then - myconf+=( - "-C if '$(type -P $(tc-getFC))'" - "-F if '${FFLAGS}'" - ) - if use lapack; then - myconf+=( - "-Si latune 1" - "--with-netlib-lapack-tarfile=${DISTDIR}/${LAPACKP}" - ) - else - myconf+=( "-Si latune 0" ) - fi - else - myconf+=( "-Si latune 0" "--nof77" ) - fi - # generic stuff found by make make xprint_enums in atlas build dir - # basically assuming sse2+sse1 and 2 threads max - use generic && use x86 && myconf+=( "-V 384 -A 13") - use generic && use amd64 && myconf+=( "-V 384 -A 24") - - local confdir="${S}_${1}"; shift - myconf+=( $@ ) - mkdir "${confdir}" && cd "${confdir}" - # for debugging - echo ${myconf[@]} > myconf.out - "${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed" - } - - atlas_configure shared "-Fa alg -fPIC" ${EXTRA_ECONF} - use static-libs && atlas_configure static ${EXTRA_ECONF} -} - -src_compile() { - atlas_compile() { - pushd "${S}_${1}" > /dev/null - # atlas does its own parallel builds - emake -j1 build - cd lib - emake libclapack.a - [[ -e libptcblas.a ]] && emake libptclapack.a - popd > /dev/null - } - - atlas_compile shared - use static-libs && atlas_compile static -} - -src_test() { - cd "${S}_shared" - emake -j1 check time -} - -# transform a static archive into a shared library and install them -# atlas_install_libs [extra link flags] -atlas_install_libs() { - local libname=$(basename ${1%.*}) - einfo "Installing ${libname}" - local soname=${libname}.so.$(get_major_version) - shift - pushd "${S}_shared"/lib > /dev/null - ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared -Wl,-soname=${soname} \ - -Wl,--whole-archive ${libname}.a -Wl,--no-whole-archive \ - "$@" -o ${soname} || die "Creating ${soname} failed" - dolib.so ${soname} - ln -s ${soname} ${soname%.*} - dosym ${soname} /usr/$(get_libdir)/${soname%.*} - popd > /dev/null - use static-libs && dolib.a "${S}_static"/lib/${libname}.a -} - -src_install() { - cd "${S}_shared/lib" - # rename to avoid collision with other packages - local l - for l in {,c}{blas,lapack}; do - if [[ -e lib${l}.a ]]; then - mv lib{,atl}${l}.a - use static-libs && mv "${S}"_static/lib/lib{,atl}${l}.a - fi - done - - [[ -e libptcblas.a ]] && PTLIBS="-lpthread" - - # atlas - atlas_install_libs libatlas.a -lm ${PTLIBS} - - # cblas - atlas_install_libs libatlcblas.a -lm -L. -latlas - - # cblas threaded - [[ -e libptcblas.a ]] && \ - atlas_install_libs libptcblas.a -lm -L. -latlas ${PTLIBS} - - if use lapack; then - # clapack - atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas - - # clapack threaded - [[ -e libptclapack.a ]] && \ - atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas ${PTLIBS} - fi - - if use fortran; then - LINK=$(tc-getF77) - - # blas - atlas_install_libs libf77blas.a -lm -L. -latlas - - # blas threaded - [[ -e libptf77blas.a ]] && \ - atlas_install_libs libptf77blas.a -lm -L. -latlas ${PTLIBS} - - if use lapack; then - # lapack - atlas_install_libs libatllapack.a \ - -lm -L. -latlas -latlcblas -lf77blas - # lapack threaded - [[ -e libptlapack.a ]] && \ - atlas_install_libs libptlapack.a -lm -L. -latlas -lptcblas -lptf77blas ${PTLIBS} - fi - fi - - cd "${S}" - insinto /usr/include/${PN} - doins include/*.h - - cd "${S}/doc" - dodoc INDEX.txt AtlasCredits.txt ChangeLog - use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf - use doc && use fortran && dodoc f77blas*pdf - use doc && use fortran && use lapack && dodoc *lapack*pdf -} diff --git a/sci-libs/atlas/atlas-3.10.3.ebuild b/sci-libs/atlas/atlas-3.10.3.ebuild new file mode 100644 index 000000000000..aa0e6a6826fb --- /dev/null +++ b/sci-libs/atlas/atlas-3.10.3.ebuild @@ -0,0 +1,225 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_NEEDED=fortran + +inherit fortran-2 toolchain-funcs + +LAPACKPV=3.12.0 + +DESCRIPTION="Automatically Tuned Linear Algebra Software" +HOMEPAGE="https://math-atlas.sourceforge.net" +SRC_URI="https://downloads.sourceforge.net/math-atlas/${PN}${PV}.tar.bz2 + fortran? ( lapack? ( + https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v${LAPACKPV}.tar.gz + -> lapack-${LAPACKPV}.tar.gz + ) ) +" +S="${WORKDIR}/ATLAS" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc fortran generic lapack static-libs threads" + +PATCHES=( + "${FILESDIR}/${PN}-3.10.2-x32-support.patch" + "${FILESDIR}/${PN}-3.10.2-format-security.patch" + "${FILESDIR}/${PN}-3.10.3-fix-ancient-c.patch" +) + +pkg_setup() { + local _cpufreq + for _cpufreq in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do + if [[ -f ${_cpufreq} ]]; then + if ! grep -q performance "${_cpufreq}"; then + echo 2> /dev/null performance > "${_cpufreq}" || \ + die "${PN} needs all cpu set to performance" + fi + fi + done + use fortran && fortran-2_pkg_setup +} + +src_configure() { + # hack needed to trick the flaky gcc detection + local mycc + mycc="$(type -P "$(tc-getCC)")" + [[ ${mycc} == *gcc* ]] && mycc=gcc + atlas_configure() { + local myconf=( + --cripple-atlas-performance + --prefix="/usr" + --libdir="/usr/$(get_libdir)" + --incdir="/usr/include" + --cc="$(tc-getCC)" + "-D c -DWALL" + "-C acg '${mycc}'" + "-F acg '${CFLAGS}'" + "-Ss pmake '\$(MAKE) ${MAKEOPTS}'" + ) + + # OpenMP shown to decreased performance over POSIX threads + # (at least in 3.9.x, see atlas-dev mailing list) + if use threads; then + if use generic; then # 2 threads is most generic + myconf+=( "-t 2" "-Si omp 0" ) + else + myconf+=( "-t -1" "-Si omp 0" ) + fi + else + myconf+=( "-t 0" "-Si omp 0" ) + fi + + if use amd64 || use ppc64 || use sparc; then + if [[ ${ABI} = amd64 ]] || [[ ${ABI} = ppc64 ]] || [[ ${ABI} = sparc64 ]] ; then + myconf+=( "-b 64" ) + elif [[ ${ABI} = x86 ]] || [[ ${ABI} = ppc ]] || [[ ${ABI} = sparc32 ]] ; then + myconf+=( "-b 32" ) + elif [[ ${ABI} = x32 ]] ; then + myconf+=( "-b 48" ) + else + myconf+=( "-b 64" ) + fi + elif use ppc || use x86; then + myconf+=( "-b 32" ) + elif use ia64; then + myconf+=( "-b 64" ) + fi + if use fortran; then + myconf+=( + "-C if '$(type -P "$(tc-getFC)")'" + "-F if '${FFLAGS}'" + ) + if use lapack; then + myconf+=( + "-Si latune 1" + "--with-netlib-lapack-tarfile=${DISTDIR}/lapack-${LAPACKPV}.tar.gz" + ) + else + myconf+=( "-Si latune 0" ) + fi + else + myconf+=( "-Si latune 0" "--nof77" ) + fi + # generic stuff found by make make xprint_enums in atlas build dir + # basically assuming sse2+sse1 and 2 threads max + use generic && use x86 && myconf+=( "-V 384 -A 13") + use generic && use amd64 && myconf+=( "-V 384 -A 24") + + local confdir="${S}_${1}"; shift + myconf+=( $@ ) + mkdir "${confdir}" || die + cd "${confdir}" || die + # for debugging + echo "${myconf[@]}" > myconf.out + "${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed" + } + + atlas_configure shared "-Fa alg -fPIC" ${EXTRA_ECONF} + use static-libs && atlas_configure static ${EXTRA_ECONF} +} + +src_compile() { + atlas_compile() { + pushd "${S}_${1}" > /dev/null || die + # atlas does its own parallel builds + emake -j1 build + cd lib || die + emake libclapack.a + [[ -e libptcblas.a ]] && emake libptclapack.a + popd > /dev/null || die + } + + atlas_compile shared + use static-libs && atlas_compile static +} + +src_test() { + cd "${S}_shared" || die + emake -j1 check time +} + +# transform a static archive into a shared library and install them +# atlas_install_libs [extra link flags] +atlas_install_libs() { + local libname soname + libname=$(basename "${1%.*}") + einfo "Installing ${libname}" + soname=${libname}.so.$(ver_cut 1) + shift + pushd "${S}_shared"/lib > /dev/null || die + ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared "-Wl,-soname=${soname}" \ + -Wl,--whole-archive "${libname}.a" -Wl,--no-whole-archive \ + $@ -o "${soname}" || die "Creating ${soname} failed" + dolib.so "${soname}" + ln -s "${soname}" "${soname%.*}" + dosym "${soname}" "/usr/$(get_libdir)/${soname%.*}" + popd > /dev/null || die + use static-libs && dolib.a "${S}_static/lib/${libname}.a" +} + +src_install() { + cd "${S}_shared/lib" || die + # rename to avoid collision with other packages + local l + for l in {,c}{blas,lapack}; do + if [[ -e lib${l}.a ]]; then + mv lib{,atl}"${l}.a" + use static-libs && mv "${S}"_static/lib/lib{,atl}"${l}.a" + fi + done + + [[ -e libptcblas.a ]] && PTLIBS="-lpthread" + + # atlas + atlas_install_libs libatlas.a -lm "${PTLIBS}" + + # cblas + atlas_install_libs libatlcblas.a -lm -L. -latlas + + # cblas threaded + [[ -e libptcblas.a ]] && \ + atlas_install_libs libptcblas.a -lm -L. -latlas "${PTLIBS}" + + if use lapack; then + # clapack + atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas + + # clapack threaded + [[ -e libptclapack.a ]] && \ + atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas "${PTLIBS}" + fi + + if use fortran; then + LINK=$(tc-getF77) + + # blas + atlas_install_libs libf77blas.a -lm -L. -latlas + + # blas threaded + [[ -e libptf77blas.a ]] && \ + atlas_install_libs libptf77blas.a -lm -L. -latlas "${PTLIBS}" + + if use lapack; then + # lapack + atlas_install_libs libatllapack.a \ + -lm -L. -latlas -latlcblas -lf77blas + # lapack threaded + [[ -e libptlapack.a ]] && \ + atlas_install_libs libptlapack.a -lm -L. -latlas -lptcblas -lptf77blas "${PTLIBS}" + fi + fi + + cd "${S}" || die + insinto "/usr/include/${PN}" + doins include/*.h + + cd "${S}/doc" || die + dodoc INDEX.txt AtlasCredits.txt ChangeLog + use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf + use doc && use fortran && dodoc f77blas*pdf + use doc && use fortran && use lapack && dodoc -- *lapack*pdf +} diff --git a/sci-libs/atlas/atlas-3.11.41.ebuild b/sci-libs/atlas/atlas-3.11.41.ebuild new file mode 100644 index 000000000000..f4a8920320ab --- /dev/null +++ b/sci-libs/atlas/atlas-3.11.41.ebuild @@ -0,0 +1,225 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_NEEDED=fortran + +inherit fortran-2 toolchain-funcs + +LAPACKPV=3.12.0 + +DESCRIPTION="Automatically Tuned Linear Algebra Software" +HOMEPAGE="https://math-atlas.sourceforge.net" +SRC_URI="https://downloads.sourceforge.net/math-atlas/${PN}${PV}.tar.bz2 + fortran? ( lapack? ( + https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v${LAPACKPV}.tar.gz + -> lapack-${LAPACKPV}.tar.gz + ) ) +" +S="${WORKDIR}/ATLAS" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc fortran generic lapack static-libs threads" + +PATCHES=( + # TODO These don't apply, find out why + # "${FILESDIR}/${PN}-3.10.2-x32-support.patch" + # "${FILESDIR}/${PN}-3.10.2-format-security.patch" +) + +pkg_setup() { + local _cpufreq + for _cpufreq in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do + if [[ -f ${_cpufreq} ]]; then + if ! grep -q performance "${_cpufreq}"; then + echo 2> /dev/null performance > "${_cpufreq}" || \ + die "${PN} needs all cpu set to performance" + fi + fi + done + use fortran && fortran-2_pkg_setup +} + +src_configure() { + # hack needed to trick the flaky gcc detection + local mycc + mycc="$(type -P "$(tc-getCC)")" + [[ ${mycc} == *gcc* ]] && mycc=gcc + atlas_configure() { + local myconf=( + --cripple-atlas-performance + --prefix="/usr" + --libdir="/usr/$(get_libdir)" + --incdir="/usr/include" + --cc="$(tc-getCC)" + "-D c -DWALL" + "-C acg '${mycc}'" + "-F acg '${CFLAGS}'" + "-Ss pmake '\$(MAKE) ${MAKEOPTS}'" + ) + + # OpenMP shown to decreased performance over POSIX threads + # (at least in 3.9.x, see atlas-dev mailing list) + if use threads; then + if use generic; then # 2 threads is most generic + myconf+=( "-t 2" "-Si omp 0" ) + else + myconf+=( "-t -1" "-Si omp 0" ) + fi + else + myconf+=( "-t 0" "-Si omp 0" ) + fi + + if use amd64 || use ppc64 || use sparc; then + if [[ ${ABI} = amd64 ]] || [[ ${ABI} = ppc64 ]] || [[ ${ABI} = sparc64 ]] ; then + myconf+=( "-b 64" ) + elif [[ ${ABI} = x86 ]] || [[ ${ABI} = ppc ]] || [[ ${ABI} = sparc32 ]] ; then + myconf+=( "-b 32" ) + elif [[ ${ABI} = x32 ]] ; then + myconf+=( "-b 48" ) + else + myconf+=( "-b 64" ) + fi + elif use ppc || use x86; then + myconf+=( "-b 32" ) + elif use ia64; then + myconf+=( "-b 64" ) + fi + if use fortran; then + myconf+=( + "-C if '$(type -P "$(tc-getFC)")'" + "-F if '${FFLAGS}'" + ) + if use lapack; then + myconf+=( + "-Si latune 1" + "--with-netlib-lapack-tarfile=${DISTDIR}/lapack-${LAPACKPV}.tar.gz" + ) + else + myconf+=( "-Si latune 0" ) + fi + else + myconf+=( "-Si latune 0" "--nof77" ) + fi + # generic stuff found by make make xprint_enums in atlas build dir + # basically assuming sse2+sse1 and 2 threads max + use generic && use x86 && myconf+=( "-V 384 -A 13") + use generic && use amd64 && myconf+=( "-V 384 -A 24") + + local confdir="${S}_${1}"; shift + myconf+=( $@ ) + mkdir "${confdir}" || die + cd "${confdir}" || die + # for debugging + echo "${myconf[@]}" > myconf.out + "${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed" + } + + atlas_configure shared "-Fa alg -fPIC" ${EXTRA_ECONF} + use static-libs && atlas_configure static ${EXTRA_ECONF} +} + +src_compile() { + atlas_compile() { + pushd "${S}_${1}" > /dev/null || die + # atlas does its own parallel builds + emake -j1 build + cd lib || die + emake libclapack.a + [[ -e libptcblas.a ]] && emake libptclapack.a + popd > /dev/null || die + } + + atlas_compile shared + use static-libs && atlas_compile static +} + +src_test() { + cd "${S}_shared" || die + emake -j1 check time +} + +# transform a static archive into a shared library and install them +# atlas_install_libs [extra link flags] +atlas_install_libs() { + local libname soname + libname=$(basename "${1%.*}") + einfo "Installing ${libname}" + soname=${libname}.so.$(ver_cut 1) + shift + pushd "${S}_shared"/lib > /dev/null || die + ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared "-Wl,-soname=${soname}" \ + -Wl,--whole-archive "${libname}.a" -Wl,--no-whole-archive \ + $@ -o "${soname}" || die "Creating ${soname} failed" + dolib.so "${soname}" + ln -s "${soname}" "${soname%.*}" + dosym "${soname}" "/usr/$(get_libdir)/${soname%.*}" + popd > /dev/null || die + use static-libs && dolib.a "${S}_static/lib/${libname}.a" +} + +src_install() { + cd "${S}_shared/lib" || die + # rename to avoid collision with other packages + local l + for l in {,c}{blas,lapack}; do + if [[ -e lib${l}.a ]]; then + mv lib{,atl}"${l}.a" + use static-libs && mv "${S}"_static/lib/lib{,atl}"${l}.a" + fi + done + + [[ -e libptcblas.a ]] && PTLIBS="-lpthread" + + # atlas + atlas_install_libs libatlas.a -lm "${PTLIBS}" + + # cblas + atlas_install_libs libatlcblas.a -lm -L. -latlas + + # cblas threaded + [[ -e libptcblas.a ]] && \ + atlas_install_libs libptcblas.a -lm -L. -latlas "${PTLIBS}" + + if use lapack; then + # clapack + atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas + + # clapack threaded + [[ -e libptclapack.a ]] && \ + atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas "${PTLIBS}" + fi + + if use fortran; then + LINK=$(tc-getF77) + + # blas + atlas_install_libs libf77blas.a -lm -L. -latlas + + # blas threaded + [[ -e libptf77blas.a ]] && \ + atlas_install_libs libptf77blas.a -lm -L. -latlas "${PTLIBS}" + + if use lapack; then + # lapack + atlas_install_libs libatllapack.a \ + -lm -L. -latlas -latlcblas -lf77blas + # lapack threaded + [[ -e libptlapack.a ]] && \ + atlas_install_libs libptlapack.a -lm -L. -latlas -lptcblas -lptf77blas "${PTLIBS}" + fi + fi + + cd "${S}" || die + insinto "/usr/include/${PN}" + doins include/*.h + + cd "${S}/doc" || die + dodoc INDEX.txt AtlasCredits.txt ChangeLog + use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf + use doc && use fortran && dodoc f77blas*pdf + use doc && use fortran && use lapack && dodoc -- *lapack*pdf +} diff --git a/sci-libs/atlas/files/atlas-3.10.3-fix-ancient-c.patch b/sci-libs/atlas/files/atlas-3.10.3-fix-ancient-c.patch new file mode 100644 index 000000000000..5a8a257a1a9b --- /dev/null +++ b/sci-libs/atlas/files/atlas-3.10.3-fix-ancient-c.patch @@ -0,0 +1,297 @@ +From 3d330dc50a608581c81d269b661af0c938155428 Mon Sep 17 00:00:00 2001 +From: Paul Zander +Date: Fri, 26 Jul 2024 00:10:33 +0200 +Subject: [PATCH 1/5] main must return int + +Signed-off-by: Paul Zander +--- a/CONFIG/src/backend/archinfo_aix.c ++++ b/CONFIG/src/backend/archinfo_aix.c +@@ -180,7 +180,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_freebsd.c ++++ b/CONFIG/src/backend/archinfo_freebsd.c +@@ -243,7 +243,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_irix.c ++++ b/CONFIG/src/backend/archinfo_irix.c +@@ -198,7 +198,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_linux.c ++++ b/CONFIG/src/backend/archinfo_linux.c +@@ -571,7 +571,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_sfu.c ++++ b/CONFIG/src/backend/archinfo_sfu.c +@@ -151,7 +151,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_sunos.c ++++ b/CONFIG/src/backend/archinfo_sunos.c +@@ -212,7 +212,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_win.c ++++ b/CONFIG/src/backend/archinfo_win.c +@@ -221,7 +221,7 @@ int ProbeThrottle() + return(iret); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int flags, CacheLevel, ncpu, mhz, bits, sure; + enum MACHTYPE arch=MACHOther; +--- a/CONFIG/src/backend/archinfo_x86.c ++++ b/CONFIG/src/backend/archinfo_x86.c +@@ -460,7 +460,7 @@ int GetFlags(int nargs, char **args, int *CacheLevel) + return(flag); + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int ierr, x86_64, flags, CacheLevel; + unsigned family, model; +--- a/bin/extract.c ++++ b/bin/extract.c +@@ -3904,7 +3904,7 @@ void HandleLine(EXTENV *EE, char *line) + } + + +-main(int nargs, char *args[]) ++int main(int nargs, char *args[]) + { + char line[LNLEN], *path; + int i; +--- a/bin/gpmmtst.c ++++ b/bin/gpmmtst.c +@@ -783,11 +783,11 @@ void GetFlags(int nargs, char *args[], int *TEST, + #endif + } + } +-___main(){} +-__main(){} +-MAIN__(){} +-_MAIN_(){} +-main(int nargs, char *args[]) ++int ___main(){} ++int __main(){} ++int MAIN__(){} ++int _MAIN_(){} ++int main(int nargs, char *args[]) + /* + * tst <# TA> <# TB's> + * <# alphas> <# betas> +--- a/bin/invtst.c ++++ b/bin/invtst.c +@@ -743,7 +743,7 @@ void GetFlags(int nargs, char **args, int *MFLOP, int *CacheSize, TYPE *thresh, + } + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int MFLOP, CacheSize, ldagap, nord, nuplo, N0, NN, incN; + enum TEST_UPLO *Uplo; +--- a/bin/llttst.c ++++ b/bin/llttst.c +@@ -538,7 +538,7 @@ void GetFlags(int nargs, char **args, int *MFLOP, int *CacheSize, TYPE *thresh, + } + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int MFLOP, CacheSize, ldagap, nuplo, N0, NN, incN; + TYPE thresh; +--- a/bin/lutst.c ++++ b/bin/lutst.c +@@ -476,7 +476,7 @@ void GetFlags(int nargs, char **args, int *MFLOP, int *CacheSize, TYPE *thresh, + if (*M0 == -1) *M0 = *MN = *incM = *MisN = 1; + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int MFLOP, CacheSize, LdaIsM, MisN, NisM, M0, MN, incM, N0, NN, incN; + int norders; +--- a/bin/slvtst.c ++++ b/bin/slvtst.c +@@ -743,7 +743,7 @@ static int DoAllTests(int nrep, int N0, int NN, int incN, int R0, int RN, + else fprintf(stdout, "\n%d TESTS RUN, %d FAILED!!\n\n", i, ierr); + return(ierr); + } +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int ierr, N0, NN, incN, R0, RN, incR, ldagap, ldbgap, nord, nuplo; + int CS, MFLOP, QR, nrep; +--- a/bin/uumtst.c ++++ b/bin/uumtst.c +@@ -566,7 +566,7 @@ void GetFlags(int nargs, char **args, int *MFLOP, int *CacheSize, TYPE *thresh, + } + } + +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + int MFLOP, CacheSize, ldagap, nuplo, N0, NN, incN; + TYPE thresh; +--- a/lib/qr.c ++++ b/lib/qr.c +@@ -5,7 +5,7 @@ + #elif defined(UpCase) + #define dgeqrf_ DGEQRF + #endif +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + extern void dgeqrf_(F77_INTEGER*,F77_INTEGER*,double*,F77_INTEGER*, + double*,double*,F77_INTEGER*,F77_INTEGER*); +--- a/lib/test_dynlink.c ++++ b/lib/test_dynlink.c +@@ -1,6 +1,6 @@ + #include + #include +-main(int nargs, char **args) ++int main(int nargs, char **args) + { + double A[1]={1.0}, b[1]={1.0}; + int ipiv[1]; +--- a/tune/sysinfo/masrch.c ++++ b/tune/sysinfo/masrch.c +@@ -169,7 +169,7 @@ int FindMflop + return(mf); + } + +-FindNreg ++int FindNreg + ( + char pre, /* precision: s,d,q */ + int fmf, /* number of mflops to force timer on */ +-- +2.45.2 + + +From 537f1afe821d5bad24fe401c8cb1294f2235f5b7 Mon Sep 17 00:00:00 2001 +From: Paul Zander +Date: Fri, 26 Jul 2024 00:11:42 +0200 +Subject: [PATCH 2/5] add missing function declarations + +Signed-off-by: Paul Zander +--- a/CONFIG/include/atlconf_misc.h ++++ b/CONFIG/include/atlconf_misc.h +@@ -41,6 +41,8 @@ char *NameWithoutPath(char *file); + char *GetPathWithoutName(char *file); + void GetGccVers(char *gcc, int *comp, int *major, int *minor, int *patch); + int CompIsGcc(char *comp); ++int CompIsClang(char *comp); ++int CompIsMinGW(char *comp); + int CompIsAppleGcc(char *comp); + int CompIsMIPSpro(char *comp); + int CompIsPathScale(char *comp); +-- +2.45.2 + + +From 975b10d484ec2c18fcc3eccbdf30fd166f2072c3 Mon Sep 17 00:00:00 2001 +From: Paul Zander +Date: Fri, 26 Jul 2024 00:11:49 +0200 +Subject: [PATCH 3/5] fix typo osnam -> osname + +Signed-off-by: Paul Zander +--- a/CONFIG/src/probe_arch.c ++++ b/CONFIG/src/probe_arch.c +@@ -198,7 +198,7 @@ int ConfirmPtrbits(enum OSTYPE OS0, enum ASMDIA asmd0, char *targ0, + /* + * Try OS-specific probe, compiling with -m64 (assumes gcc workalike) + */ +- i = 1 + strlen(frm) + strlen(osnam) + strlen(osnam[OS]) + ++ i = 1 + strlen(frm) + strlen(osname) + strlen(osnam[OS]) + + strlen(ASMNAM[asmd]) + strlen(flag) + strlen(targ) + strlen(find); + cmnd = malloc(i*sizeof(char)); + assert(cmnd); +-- +2.45.2 + + +From 550c8ff309c6896635bc86001af6dbecbf043d51 Mon Sep 17 00:00:00 2001 +From: Paul Zander +Date: Fri, 26 Jul 2024 00:15:08 +0200 +Subject: [PATCH 4/5] use long long in format string + +Signed-off-by: Paul Zander +--- a/bin/atlas_install.c ++++ b/bin/atlas_install.c +@@ -278,7 +278,7 @@ long long GetFirstLongHex(char *ln) + { + if (isxdigit(ln[i])) + { +- sscanf(ln+i, "%lx", &iret); ++ sscanf(ln+i, "%llx", &iret); + break; + } + } +-- +2.45.2 + + +From 9a9d7f5f83ea6235ee8e40d49b93545bb3c5b7c2 Mon Sep 17 00:00:00 2001 +From: Paul Zander +Date: Fri, 26 Jul 2024 00:16:03 +0200 +Subject: [PATCH 5/5] add missing string.h include + +Signed-off-by: Paul Zander +--- a/bin/qrtst.c ++++ b/bin/qrtst.c +@@ -41,6 +41,7 @@ + #ifndef TimeF77 + #include "clapack.h" + #endif ++#include + + #ifdef ATL_FULL_LAPACK + #include "atlas_C2Flapack.h" +-- +2.45.2 + -- cgit v1.2.3