From: "Ludovic Courtès" <ludo@gnu.org>
To: Konrad Hinsen <konrad.hinsen@fastmail.net>
Cc: Danny Milosavljevic <dannym@scratchpost.org>,
Mathieu Othacehe <m.othacehe@gmail.com>,
38454-done@debbugs.gnu.org
Subject: bug#38454: [PATCH] gnu: lapack: Update to 3.9.0.
Date: Tue, 07 Jan 2020 11:20:12 +0100 [thread overview]
Message-ID: <871rsblg9v.fsf@gnu.org> (raw)
In-Reply-To: <87blshbe2x.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 09 Dec 2019 18:31:34 +0100")
Hi Konrad,
(Mathieu, Danny: see below for qemu-binfmt concerns. :-))
Ludovic Courtès <ludovic.courtes@inria.fr> skribis:
> Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:
>
>> * gnu/packages/maths.scm (lapack): Update to 3.9.0.
>
> Unfortunately this fails to build on armhf-linux (tested via
> qemu-binfmt):
>
> starting phase `configure'
> source directory: "/tmp/guix-build-lapack-3.9.0.drv-0/lapack-3.9.0" (relative from build: "../lapack-3.9.0")
> build directory: "/tmp/guix-build-lapack-3.9.0.drv-0/build"
> running 'cmake' with arguments ("../lapack-3.9.0" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DCMAKE_INSTALL_PREFIX=/gnu/store/ynakjwrsq06j7q75ysqfrmhp8mhhdxrb-lapack-3.9.0" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" "-DCMAKE_INSTALL_RPATH=/gnu/store/ynakjwrsq06j7q75ysqfrmhp8mhhdxrb-lapack-3.9.0/lib" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DBUILD_SHARED_LIBS:BOOL=YES" "-DLAPACKE=ON" "-DLAPACKE_WITH_TMG=ON" "-DBUILD_TESTING=ON")
> -- The Fortran compiler identification is unknown
> CMake Error at /gnu/store/lxj8wisj7ylwc67x1rshiw24fb5digx5-cmake-minimal-3.15.1/share/cmake-3.15/Modules/CMakeCompilerIdDetection.cmake:26 (list):
> list sub-command REMOVE_ITEM requires two or more arguments.
> Call Stack (most recent call first):
> /gnu/store/lxj8wisj7ylwc67x1rshiw24fb5digx5-cmake-minimal-3.15.1/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection)
> /gnu/store/lxj8wisj7ylwc67x1rshiw24fb5digx5-cmake-minimal-3.15.1/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
> /gnu/store/lxj8wisj7ylwc67x1rshiw24fb5digx5-cmake-minimal-3.15.1/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
> /gnu/store/lxj8wisj7ylwc67x1rshiw24fb5digx5-cmake-minimal-3.15.1/share/cmake-3.15/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID)
> CMakeLists.txt:3 (project)
>
> [… repeated several times…]
This turned out to be a side effect of building through qemu-binfmt;
building on real hardware succeeds. So, patch committed, at last—sorry
for the delay!
--8<---------------cut here---------------start------------->8---
starting phase `configure'
source directory: "/tmp/guix-build-lapack-3.9.0.drv-0/lapack-3.9.0" (relative from build: "../lapack-3.9.0")
build directory: "/tmp/guix-build-lapack-3.9.0.drv-0/build"
running 'cmake' with arguments ("../lapack-3.9.0" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DCMAKE_INSTALL_PREFIX=/gnu/stor
e/ynakjwrsq06j7q75ysqfrmhp8mhhdxrb-lapack-3.9.0" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE
" "-DCMAKE_INSTALL_RPATH=/gnu/store/ynakjwrsq06j7q75ysqfrmhp8mhhdxrb-lapack-3.9.0/lib" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-
DBUILD_SHARED_LIBS:BOOL=YES" "-DLAPACKE=ON" "-DLAPACKE_WITH_TMG=ON" "-DBUILD_TESTING=ON")
-- The Fortran compiler identification is GNU 7.4.0
-- The C compiler identification is GNU 7.4.0
-- Check for working Fortran compiler: /gnu/store/91iyya22d6s055iwlwja3vvlpc4i8sih-gfortran-7.4.0/bin/gfortran
-- Check for working Fortran compiler: /gnu/store/91iyya22d6s055iwlwja3vvlpc4i8sih-gfortran-7.4.0/bin/gfortran -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Checking whether /gnu/store/91iyya22d6s055iwlwja3vvlpc4i8sih-gfortran-7.4.0/bin/gfortran supports Fortran 90
-- Checking whether /gnu/store/91iyya22d6s055iwlwja3vvlpc4i8sih-gfortran-7.4.0/bin/gfortran supports Fortran 90 -- yes
-- Check for working C compiler: /gnu/store/pkx3kcvj1mbkkgzxi1w57c1vfvhwzxh7-gcc-7.4.0/bin/gcc
-- Check for working C compiler: /gnu/store/pkx3kcvj1mbkkgzxi1w57c1vfvhwzxh7-gcc-7.4.0/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
--8<---------------cut here---------------end--------------->8---
So, what’s going on under qemu-binfmt?
When doing a qemu-binfmt build, ‘CMakeOutput.log’ contains several
instances of:
--8<---------------cut here---------------start------------->8---
The system is: Linux - 5.4.8-gnu - armv7l
Compiling the Fortran compiler identification source file "CMakeFortranCompilerId.F" succeeded.
Compiler: /gnu/store/91iyya22d6s055iwlwja3vvlpc4i8sih-gfortran-7.4.0/bin/gfortran
Build flags:
Id flags: -v
--8<---------------cut here---------------end--------------->8---
Yet ‘CMakeError.log’ reads:
--8<---------------cut here---------------start------------->8---
Compilation of the Fortran compiler identification source "CMakeFortranCompilerId.F" did not produce an executable in "/tmp/guix-build-lapack-3.9.0.drv-0/build/CMakeFiles/3.15.1/CompilerIdFortran".
--8<---------------cut here---------------end--------------->8---
I do see an ‘a.out’ file in there, though.
The code for that is in ‘CMakeDetermineCompilerId.cmake’:
--8<---------------cut here---------------start------------->8---
# Find the executable produced by the compiler, try all files in the
# binary dir.
string(REGEX REPLACE "([][])" "[\\1]" _glob_id_dir "${CMAKE_${lang}_COMPILER_ID_DIR}")
file(GLOB files
RELATIVE ${CMAKE_${lang}_COMPILER_ID_DIR}
# normal case
${_glob_id_dir}/*
# com.apple.package-type.bundle.unit-test
${_glob_id_dir}/*.xctest/*
# com.apple.product-type.framework
${_glob_id_dir}/*.framework/*
)
list(REMOVE_ITEM files "${src}")
set(COMPILER_${lang}_PRODUCED_FILES "")
foreach(file ${files})
if(NOT IS_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/${file})
list(APPEND COMPILER_${lang}_PRODUCED_FILES ${file})
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Compilation of the ${lang} compiler identification source \""
"${src}\" produced \"${file}\"\n\n")
endif()
endforeach()
if(NOT COMPILER_${lang}_PRODUCED_FILES)
# No executable was found.
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Compilation of the ${lang} compiler identification source \""
"${src}\" did not produce an executable in \""
"${CMAKE_${lang}_COMPILER_ID_DIR}\".\n\n")
endif()
--8<---------------cut here---------------end--------------->8---
Why would that fail? Mystery…
There’s some code in CMake that looks at /proc/cpuinfo, so that could
somehow make the wrong decision, but I don’t see how. Also, why would
it affect emulation of ARMv7 but not emulation of AArch64, as seems to
be the case?
Ideas, people?
Thanks,
Ludo’.
prev parent reply other threads:[~2020-01-07 10:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-28 21:11 [bug#38454] [PATCH] gnu: lapack: Update to 3.9.0 Konrad Hinsen
2019-12-09 17:31 ` Ludovic Courtès
2019-12-10 17:00 ` Konrad Hinsen
2020-01-07 10:20 ` Ludovic Courtès [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871rsblg9v.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=38454-done@debbugs.gnu.org \
--cc=dannym@scratchpost.org \
--cc=konrad.hinsen@fastmail.net \
--cc=m.othacehe@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).