Hi Trey,

I can reproduce your problem on our end, thanks for the info.

From the CUnit configure script:

ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'

So, the "libopenblasp-r0.2.10.a" part is passed via $LIBS.

However, EasyBuild doesn't define $LIBS as such. It does define $LIBS, but differently:

== 2014-08-27 15:43:32,732 main.environment INFO Environment variable LIBS set to -lm -lpthread

So, this is quite weird, but I've seen behavior similar to this when $LIBS is involved.

My suspicion is that the OpenBLAS installation procedure somehow acts differently when $LIBS is set from the outside, breaking the CUnit configure by passing down 'libopenblasp-r0.2.10.a' that only makes sense for OpenBLAS.

You can resolve this problem by unsetting $LIBS before starting the OpenBLAS procedure:

    prebuildopts = "unset LIBS && "

I verified this, it works:

     CUnit - A unit testing framework for C - Version 2.1-2
     http://cunit.sourceforge.net/


Suite: Level1 Test Suite
  Test: Testing srot when incx || incy == 0 ...passed
  Test: Testing drot when incx || incy == 0 ...passed
  Test: Testing csrot when incx || incy == 0 ...passed
  Test: Testing zdrot when incx || incy == 0 ...passed
  Test: Testing sswap with incx || incy == 0 ...passed
  Test: Testing dswap with incx || incy == 0 ...passed
  Test: Testing cswap with incx || incy == 0 ...passed
  Test: Testing zswap with incx || incy == 0 ...passed
  Test: Testing saxpy with incx || incy == 0 ...passed
  Test: Testing daxpy with incx || incy == 0 ...passed
  Test: Testing caxpy with incx || incy == 0 ...passed
  Test: Testing zaxpy with incx || incy == 0 ...passed
  Test: Testing zdotu with n == 1 ...passed
  Test: Testing zdotu with input x & y offset == 1 ...passed
  Test: Testing drotmg ...passed
  Test: Testing dsdot with n == 1 ...passed
  Test: Testing samax ...passed
  Test: Testing fork safety ...passed

Run Summary:    Type   Total     Ran  Passed Failed Inactive
              suites       1       1     n/a      0        0
               tests      18      18      18      0        0
             asserts 1000177 1000177 1000177      0      n/a



One thing I don't particularly like about this whole situation is that OpenBLAS auto-downloads the CUnit source tarball and then builds it itself.

The proper way would be to install a separate module for CUnit, and provide that as a (build) dependency to OpenBLAS...

Then this problem should not arise either to start with...

Another issue I noticed while browsing your OpenBLAS is that the LAPACK source that is being provided is not being used at all... It's just using a 'lapack-netlib' that is shipped with the OpenBLAS sources, as opposed to the one being provided. I've opened https://github.com/hpcugent/easybuild-easyconfigs/issues/1050 to track this one down.

regards,

Kenneth



On 27/08/14 23:31, Trey Dockendorf wrote:
The debug log was too big to send (15.6MB), resending compressed.

- Trey

=============================

Trey Dockendorf
Systems Analyst I
Texas A&M University
Academy for Advanced Telecommunications and Learning Technologies
Phone: (979)458-2396
Email: [email protected]
Jabber: [email protected]

----- Original Message -----
From: "Trey Dockendorf" <[email protected]>
To: [email protected]
Sent: Wednesday, August 27, 2014 4:21:22 PM
Subject: Re: [easybuild] OpenBLAS with buildopts UTEST_CHECK=1

I can't build 0.2.9, as I need the NO_AVX2 flag added in 0.2.10.  I
get the same failure with 0.2.8 which I've also successfully built
outside EB.

Attached is the log from running 'eb
OpenBLAS-0.2.10-GCC-4.8.3-LAPACK-3.5.0.eb --robot=. --force --debug'
as well as the easyconfig.

Builds just fine without UTEST_CHECK=1, but be nice to be able to use
the build-in OpenBLAS tests during build.

Thanks,
- Trey

=============================

Trey Dockendorf
Systems Analyst I
Texas A&M University
Academy for Advanced Telecommunications and Learning Technologies
Phone: (979)458-2396
Email: [email protected]
Jabber: [email protected]

----- Original Message -----
From: "Kenneth Hoste" <[email protected]>
To: [email protected]
Sent: Wednesday, August 27, 2014 2:53:15 PM
Subject: Re: [easybuild] OpenBLAS with buildopts UTEST_CHECK=1


On 27/08/14 21:45, Trey Dockendorf wrote:
Kenneth,

Thanks for response, below is output from config.log [1] under
build root's "utest/CUnit-2.1-2".  Comparing with config.log from
a successful build when run interactively [2] it seems that the
line "./libopenblasp-r0.2.10.a >&5" should not be there.
Hmm, weird, I have absolutely no clue where that is coming from.

Can you collect a full debug log with EasyBuild (use --debug), and
send
it to us?

Please include your easyconfig file as well.

Are you running into similar issues with OpenBLAS 0.2.9 with the
same
build options?
I'm not aware of anyone having tried OpenBLAS 0.2.10 yet with EB,
but
I
know 0.2.9 does work (although without the UTEST_CHECK enabled).


regards,

Kenneth

[1] Failing under Easybuild

gcc version 4.8.3 (GCC)
configure:3379: $? = 0
configure:3368: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3379: $? = 1
configure:3368: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3379: $? = 1
configure:3399: checking whether the C compiler works
configure:3421: gcc -O2 -march=native -O2 -DUTEST_CHECK
-DSANITY_CHECK -DREFNAME=f_ -Wall -m64 -DF_INTERFACE_GFORT -fPIC
-DDYNAMIC_ARCH -DNO_AVX2 -DSMP_SERVER -DNO_WARMUP
-DMAX_CPU_NUMBER=64 -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME=
-DCHAR_NAME="_" -DCHAR_CN
AME="" -DNO_AFFINITY -I.
-I/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/include
-O2 -DUTEST_CHECK -DSANITY_CHECK -DREFNAME=libcunitf_ -Wall -m64
-DF_INTERFACE_GFORT -fPIC -DDYNAMIC_ARCH -DNO_AVX2 -DSMP_SERVER
-DNO_WARMUP
-DMAX_CPU_NUMBER=64 -DASMNAME=libcunit -DASMFNAME=libcunit_
-DNAME=libcunit_ -DCNAME=libcunit -DCHAR_NAME="libcunit_"
-DCHAR_CNAME="libcunit" -DNO_AFFINITY -I.. -DRELEASE=@RELEASE@
-Wall -W -pedantic -Wshadow -ansi
-I/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK
-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/CUnit/Headers
  -L/apps/easybuild/software/Core/GCC/4.8.3/lib64
-L/apps/easybuild/software/Core/GCC/4.8.3/lib
-L/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/CUnit/Sources
conftest.c
   ../libopenblasp-r0.2.10.a >&5
gcc: error: ../libopenblasp-r0.2.10.a: No such file or directory
configure:3425: $? = 1
configure:3463: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "CUnit"
| #define PACKAGE_TARNAME "cunit"
| #define PACKAGE_VERSION "2.1-2"
| #define PACKAGE_STRING "CUnit 2.1-2"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "CUnit"
| #define VERSION "2.1-2"
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:3468: error: in
`/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2':
configure:3470: error: C compiler cannot create executables
See `config.log' for more details


[2] Succeeds when run manually:

gcc version 4.8.3 (GCC)
configure:3379: $? = 0
configure:3368: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3379: $? = 1
configure:3368: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3379: $? = 1
configure:3399: checking whether the C compiler works
configure:3421: gcc
-I/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/include
-O2 -DUTEST_CHECK -DSANITY_CHECK -DREFNAME=libcunitf_ -Wall -m64
-DF_INTERFACE_GFORT -fPIC -DDYNAMIC_ARCH -DNO_AVX2 -DSMP_SERVER
-DNO_WARMUP -DMAX_CPU_NUMBER=64 -DASMNAME=libcunit
-DASMFNAME=libcunit_ -DNAME=libcunit_ -DCNAME=libcunit
-DCHAR_NAME="libcunit_" -DCHAR_CNAME="libcunit" -DNO_AFFINITY
-I..
-DRELEASE=@RELEASE@ -Wall -W -pedantic -Wshadow -ansi
-I/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/CUnit/Headers
   
-L/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/CUnit/Sources
conftest.c  >&5
configure:3425: $? = 0
configure:3473: result: yes

=============================

Trey Dockendorf
Systems Analyst I
Texas A&M University
Academy for Advanced Telecommunications and Learning Technologies
Phone: (979)458-2396
Email: [email protected]
Jabber: [email protected]

----- Original Message -----
From: "Kenneth Hoste" <[email protected]>
To: [email protected]
Sent: Wednesday, August 27, 2014 2:31:25 PM
Subject: Re: [easybuild] OpenBLAS with buildopts UTEST_CHECK=1

Hi Trey,

On 27/08/14 21:25, Trey Dockendorf wrote:
I'm having an issue replicating in Easybuild what I can do
interactively when building OpenBLAS.

Manually running 'make BINARY=64 DYNAMIC_ARCH=1 USE_THREAD=1
NUM_THREADS=64 NO_AFFINITY=1 NO_AVX2=1 UTEST_CHECK=1' on the
source gives me no issue.

Using as a base the Easyconfig for
OpenBLAS-0.2.9-GCC-4.8.3-LAPACK-3.5.0 [1] where I only changed
the
following:

version = '0.2.10'
maxparallel = 1 # OpenBLAS will parallel build by default AFAIK
buildopts = 'BINARY=64 DYNAMIC_ARCH=1 USE_THREAD=1
NUM_THREADS=64
NO_AFFINITY=1 NO_AVX2=1 UTEST_CHECK=1'

$ eb OpenBLAS-0.2.10-GCC-4.8.3-LAPACK-3.5.0.eb --robot=.

# From the log file when it fails

<snip>
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in
`/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2':
configure: error: C compiler cannot create executables
See `config.log' for more details
Did you check this config.log file? The real reason will be in
there
somewhere (not at the very bottom though).

Look for the string "checking whether the C compiler works".


regards,

Kenneth

make[1]: ***
[/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest/CUnit-2.1-2/lib/libcunit.a]
Error 77
make[1]: Leaving directory
`/dev/shm/OpenBLAS/0.2.10/GCC-4.8.3-LAPACK-3.5.0/OpenBLAS-0.2.10/utest'
make: *** [tests] Error 2

== 2014-08-27 14:09:57,601 main.easyblock.<module> WARNING
build
failed (first 300 chars): EasyBuild crashed with an error (at
easybuild/tools/run.py:382 in parse_cmd_output): cmd " make -j
1
BINARY=64 DYNAMIC_ARCH=1 USE_THREAD=1 NUM_THREADS=64
NO_AFFINITY=1
NO_AVX2=1 UTEST_CHECK=1" exited with exitcode 2 and output:

Thanks,
- Trey

[1] :
https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.2.9-GCC-4.8.3-LAPACK-3.5.0.eb

=============================

Trey Dockendorf
Systems Analyst I
Texas A&M University
Academy for Advanced Telecommunications and Learning
Technologies
Phone: (979)458-2396
Email: [email protected]
Jabber: [email protected]

Reply via email to