Bad install instructions: libxsmm -- should fetch exact version, not clone

git clone GitHub - libxsmm/libxsmm: Library for specialized dense and sparse matrix operations, and deep learning primitives.
cd libxsmm
make -j4 STATIC=0 BLAS=0

-gnu/bin/ld: /usr/lib/x86_64-linux-gnu/libopen-pal.so.40: undefined reference to `__isoc23_sscanf@GLIBC_2.38’
collect2: error: ld returned 1 exit status
make: *** [Makefile:826: bin/libxsmm_binaryexport_generator] Error 1

Aside from the fact that the build from latest source failed, the clone took a very long time.

Both of these issues could be resolved by making the install instruction say which version to specify and how and to merely fetch that version – not the entire development history of one of the most active projects.

There is no suitable released version of libxsmm. The latest release is v1.17 from 2021 which does not include the APIs we need. Once libxsmm v2 is released we will update the instructions accordingly but at the moment there is no alternative other than to clone the repository.

Regarding the build error this is likely environment related (I would suspect an outdated version of glibc), but you’ll need to follow up with the libxsmm developers there.

Regards, Freddie.

I needed to:

sudo apt install glibc-source

Can you confirm your exact distribution? The install instructions are quite well tested on Ubuntu and macOS and we’ve not seen errors like this before.

Regards, Freddie.

Perhaps I didn’t make it clear that once I installed the glibc-source for ubuntu it compiled. But in any event, its now giving me an error “Allocation too large for normal backend” and I have 96GB of RAM.

My system info:

System Details Report


Report details

  • Date generated: 2025-07-28 15:12:48

Hardware Information:

  • Hardware Model: ASUSTeK COMPUTER INC. PRIME X570-P
  • Memory: 96.0 GiB
  • Processor: AMD Ryzen™ 9 5900X × 24
  • Graphics: NVIDIA GeForce RTX™ 3070 Ti
  • Disk Capacity: 4.0 TB

Software Information:

  • Firmware Version: 4002
  • OS Name: Ubuntu 24.04.2 LTS
  • OS Build: (null)
  • OS Type: 64-bit
  • GNOME Version: 46
  • Windowing System: X11
  • Kernel Version: Linux 6.8.0-48-generic

So installing the glibc-source on its own really should not have impacted the issue you were having (unless it brought in or upgraded some other package).

In terms of the memory model error, from the user guide:

the solution is to set:

[backend]
memory-model = large

With that said I have never seen a simulation actually require this option. (It is unlikely that any simulation which requires this option to run will ever finish in a sensible amount of time if it runs at all — you may simply encounter an out-of-memory error before it starts.)

Regards, Freddie.

When cloning libxsmm (or any other repo), if you are doing it purely to build a dependency, then you might consider:

$ git clone --depth=1 some/jazzy/repo.git

Though I think we should avoid having overly verbose instructions for how to build a dependency, instead, we should clearly point users to the instruction page of the dependency and list any hard requirements on that dependency that we might have. Otherwise, we have to maintain a duplicate set of instructions.