[Slackbuilds-users] Error building OpenBLAS

Christoph Willing chris.willing at iinet.net.au
Tue Oct 2 06:58:55 UTC 2018


On 2/10/18 6:36 am, Rich Shepard wrote:
>   I'm building all my SBo packages on a newly minted desktop running
> -14.2/x86_64. I downloaded from the repository the *.tar.gz and build
> directory so all files are fresh.
> 
>   Running the SlackBuild script stops with this:
> 
> gemv.c: In function ‘sgemv_’:
> gemv.c:219:42: error: ‘GEMM_MULTITHREAD_THRESHOLD’ undeclared (first use
> in this function)
>    if ( MNK <= (500.0 * 100.0  * (double) GEMM_MULTITHREAD_THRESHOLD)  )
>                                           ^
> gemv.c:219:42: note: each undeclared identifier is reported only once
> for each function it appears in
> Makefile:815: recipe for target 'sgemv.o' failed
> make[1]: *** [sgemv.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make[1]: Leaving directory '/tmp/SBo/OpenBLAS-0.2.11/interface'
> Makefile:141: recipe for target 'libs' failed
> make: *** [libs] Error 1
> 
>   Since I've built this before (on my current desktop) I've no idea
> where to
> look for a fix for this error and I would appreciate guidance.
>

The missing GEMM_MULTITHREAD_THRESHOLD is (should be) set in
Makefile.system which is called from the second line of the main
Makefile. Something is definitely screwy if it hasn't been set.

To check that, you could edit the main Makefile and add a blank line
after "include ./Makefile.system"; then add a new target "atest" which
prints out the value of the GEMM_MULTITHREAD_THRESHOLD variable i.e.
confirms that it has been set e.g.
atest:
	@echo "GEMM_MULTITHREAD_THRESHOLD = $(GEMM_MULTITHREAD_THRESHOLD)"

Then another blank line. Now run 'make atest" from the directory that
contains the Makefiles. By default GEMM_MULTITHREAD_THRESHOLD is set to
4 - if you don't see that result, I guess you could set it explicitly - run:
	GEMM_MULTITHREAD_THRESHOLD=4 make atest
and when that works:
	GEMM_MULTITHREAD_THRESHOLD=4 make
and see how far it builds.

However the problem with this approach is that if
GEMM_MULTITHREAD_THRESHOLD hasn't been set correctly in Makefile.system,
then there are likely other things not being set correctly in there.

chris


More information about the SlackBuilds-users mailing list