Skip to content

Build fails with BUILD_DOUBLE=1 TARGET=NEHALEM #5650

@parched

Description

@parched

With DYNAMIC_ARCH=0

...
cc -O2 -DSMALL_MATRIX_OPT -DMAX_STACK_ALLOC=2048 -DEXPRECISION -m128bit-long-double -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=22 -DMAX_PARALLEL_NUMBER=1 -DBUILD_DOUBLE=1 -DVERSION=\"0.3.31\" -msse3 -mssse3 -msse4.1 -UASMNAME -UASMFNAME -UNAME -UCNAME -UCHAR_NAME -UCHAR_CNAME -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I..  -w -o linktest linktest.c ../libopenblas_nehalemp-r0.3.31.so -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../..  -lgfortran -lm -lquadmath -lm -lc  && echo OK.
/usr/bin/ld: ../libopenblas_nehalemp-r0.3.31.so: undefined reference to `snrm2_'
/usr/bin/ld: ../libopenblas_nehalemp-r0.3.31.so: undefined reference to `slaed4_'
/usr/bin/ld: ../libopenblas_nehalemp-r0.3.31.so: undefined reference to `slacpy_'
/usr/bin/ld: ../libopenblas_nehalemp-r0.3.31.so: undefined reference to `sgemm_'
/usr/bin/ld: ../libopenblas_nehalemp-r0.3.31.so: undefined reference to `scopy_'
/usr/bin/ld: ../libopenblas_nehalemp-r0.3.31.so: undefined reference to `slaset_'
...

With DYNAMIC_ARCH=1

...
cc -c -O2 -DSMALL_MATRIX_OPT -DMAX_STACK_ALLOC=2048 -DEXPRECISION -m128bit-long-double -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DDYNAMIC_ARCH -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=22 -DMAX_PARALLEL_NUMBER=1 -DBUILD_DOUBLE=1 -DVERSION=\"0.3.31\" -UASMNAME -UASMFNAME -UNAME -UCNAME -UCHAR_NAME -UCHAR_CNAME -DASMNAME=sgetrf_parallel -DASMFNAME=sgetrf_parallel_ -DNAME=sgetrf_parallel_ -DCNAME=sgetrf_parallel -DCHAR_NAME=\"sgetrf_parallel_\" -DCHAR_CNAME=\"sgetrf_parallel\" -DNO_AFFINITY -I../.. -UDOUBLE  -UCOMPLEX -UDOUBLE -UCOMPLEX -DUNIT getrf_parallel.c -o sgetrf_parallel.o
In file included from ../../common_macro.h:46,
                 from ../../common.h:854,
                 from getrf_parallel.c:40:
getrf_parallel.c: In function 'inner_basic_thread':
../../common_s.h:321:45: error: 'gotoblas_t' has no member named 'slaswp_ncopy'; did you mean 'dlaswp_ncopy'?
  321 | #define SLASWP_NCOPY            gotoblas -> slaswp_ncopy
      |                                             ^~~~~~~~~~~~
../../common_macro.h:3108:25: note: in expansion of macro 'SLASWP_NCOPY'
 3108 | #define LASWP_NCOPY     SLASWP_NCOPY
      |                         ^~~~~~~~~~~~
getrf_parallel.c:140:9: note: in expansion of macro 'LASWP_NCOPY'
  140 |         LASWP_NCOPY(min_jj, off + 1, off + k,
      |         ^~~~~~~~~~~
getrf_parallel.c: In function 'inner_advanced_thread':
../../common_s.h:321:45: error: 'gotoblas_t' has no member named 'slaswp_ncopy'; did you mean 'dlaswp_ncopy'?
  321 | #define SLASWP_NCOPY            gotoblas -> slaswp_ncopy
      |                                             ^~~~~~~~~~~~
../../common_macro.h:3108:25: note: in expansion of macro 'SLASWP_NCOPY'
 3108 | #define LASWP_NCOPY     SLASWP_NCOPY
      |                         ^~~~~~~~~~~~
getrf_parallel.c:280:9: note: in expansion of macro 'LASWP_NCOPY'
  280 |         LASWP_NCOPY(min_jj, off + 1, off + k,
      |         ^~~~~~~~~~~
...

Repro Dockerfile

FROM ubuntu:24.04

# Avoid prompts from apt
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    gcc \
    g++ \
    gfortran \
    make \
    git \
    && rm -rf /var/lib/apt/lists/*

# Get the latest OpenBLAS and build it
RUN git clone --depth 1 --branch v0.3.31 https://github.com/OpenMathLib/OpenBLAS.git \
    && cd OpenBLAS \
    && make_flags="DYNAMIC_ARCH=1 FC=gfortran TARGET=NEHALEM BUILD_DOUBLE=1 -j$(nproc)" \
    && make $make_flags \
    && make $make_flags install \
    && cd .. \
    && rm -rf OpenBLAS

Looks a bit like #3910

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions