macs3-project/MACS

Bug: undefined symbol: __pow_finite

Opened this issue · 3 comments

Describe the bug
callpeak function fails due to old glibc version during compilation of cython code (assumption)

To Reproduce

pip install macs3=3.0.1 
macs3 callpeak -t $BAMFILE -n 8h_3utr --nomodel --extsize 200 --broad --outdir $OUTDIR

Expected behavior
calculation to terminate successfully (macs3 version 3.0.0 works)

stderr

Traceback (most recent call last):
  File "/app/macs3/3.0.1-3.12.2/bin/macs3", line 1028, in <module>
    main()
  File "/app/macs3/3.0.1-3.12.2/bin/macs3", line 48, in main
    from MACS3.Commands.callpeak_cmd import run
  File "/app/macs3/3.0.1-3.12.2/MACS3/Commands/callpeak_cmd.py", line 23, in <module>
    from MACS3.Utilities.OptValidator import opt_validate_callpeak
  File "/app/macs3/3.0.1-3.12.2/MACS3/Utilities/OptValidator.py", line 24, in <module>
    from MACS3.IO.Parser import BEDParser, ELANDResultParser, ELANDMultiParser, \
  File "MACS3/IO/Parser.pyx", line 36, in init MACS3.IO.Parser
  File "MACS3/Signal/FixWidthTrack.pyx", line 25, in init MACS3.Signal.FixWidthTrack
ImportError: /app/macs3/3.0.1-3.12.2/MACS3/Signal/SignalProcessing.cpython-312-x86_64-linux-gnu.so: undefined symbol: __pow_finite

System (please complete the following information):

  • OS: Oracle Linux 9.3
  • kernel: 5.14.0-362.24.1.el9_3.x86_64
  • clang: 16.0.6
  • Python version 3.12.2
  • Numpy version 1.26.4
  • MACS Version 3.0.1

Additional context
Add any other context about the problem here.

@jowodo What's the version of Cython?

Had the same issue, quick Fix is to rebuild without -Ofast or include -fno-finite-math-only

Running with: Cython 3.0.10
Clang 14.0.0
ldd (Ubuntu GLIBC 2.35-0ubuntu3.6) 2.35

Thanks for your report! We will switch back to -O3 in future releases, to avoid the -ffast-math optimization.