Welcome, Guest
Username: Password: Remember me

TOPIC: Compilation failed with Ubuntu 24.04

Compilation failed with Ubuntu 24.04 1 day 7 hours ago #46036

Hello,
Currently I am using the following system:
Ubuntu: 24.04
python: 3.12.3
numpy: 1.26.4
meson: 1.6.1

Referring to similar problems due to f2py on the forum and GitLab, I tried Telemac V9.0 which should solve this problem. But it still did not succeed in compiling, and it report:
Building the Python API
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~> Wrap_api built
~> Generating the API Python wrapper
~> First part of F2PY passed
Traceback (most recent call last):
File "/home/ed/Telemac/v9.0/scripts/python3/compilation/compil_tools.py", line 993, in compile_api_f2py
output = check_output(cmd, shell=True, stderr=STDOUT)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'f2py --quiet -c /home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/lib/api.pyf --opt="" -I/home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/include -L/home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/lib -lapi -ltelemac3d4api -ltelemac2d4api -lgaia4api -lnestor4api -ltomawac4api -lartemis4api -lkhione4api -lwaqtel4api -lgretel4api -lpartel4api -lbief4api -lparallel4api -lhermes4api -ldamocles4api -lspecial4api -lmascaret -L$MUMPSHOME -ldmumps -lmumps_common -lpord -L$BLASHOME -lopenblas -lblas -L$SCALAPACKHOME -lscalapack-openmpi -L$HDF5HOME/lib -lhdf5 -ldl -lstdc++ -lz -L$MEDHOME/lib -lmed -L$METISHOME/lib -lmetis -L$MPIHOME/lib -lmpi_mpifh -lmpi --build-dir tmp_f2py' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/ed/Telemac/v9.0/scripts/python3/compile_telemac.py", line 138, in <module>
sys.exit(main())
^^^^^^
File "/home/ed/Telemac/v9.0/scripts/python3/compile_telemac.py", line 130, in main
compile_api_files(silent=not options.verbose,
File "/home/ed/Telemac/v9.0/scripts/python3/compilation/compil_tools.py", line 1047, in compile_api_files
compile_api_f2py('api', api_dir, source_api, skip_source, ld_flags,
File "/home/ed/Telemac/v9.0/scripts/python3/compilation/compil_tools.py", line 995, in compile_api_f2py
raise TelemacException(\
utils.exceptions.TelemacException: Error during the second part of F2PY: 1
Cannot use distutils backend with Python>=3.12, using meson backend instead.
Ignoring -m untitled.
/home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/lib/api.pyf defines _api to be the modulename.
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '40'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '200'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '40'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '200'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '40'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '200'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '40'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '200'}, 'attrspec': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '32'}, 'attrspec': [], 'dimension': }
getstrlength:intent(hide): expected a string with defined length but got: {'typespec': 'character', 'charselector': {'*': '(*)'}, 'attrspec': [], 'intent': }
getstrlength:intent(hide): expected a string with defined length but got: {'typespec': 'character', 'charselector': {'*': '(*)'}, 'attrspec': [], 'intent': }
getstrlength:intent(hide): expected a string with defined length but got: {'typespec': 'character', 'charselector': {'*': '(*)'}, 'attrspec': [], 'intent': }
getstrlength:intent(hide): expected a string with defined length but got: {'typespec': 'character', 'charselector': {'*': '(*)'}, 'attrspec': [], 'intent': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '40'}, 'attrspec': [], 'intent': , 'dimension': }
getstrlength: expected a signature of a string but got: {'typespec': 'character', 'charselector': {'len': '200'}, 'attrspec': [], 'intent': , 'dimension': }
The Meson build system
Version: 1.6.1
Source dir: /home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/lib/tmp_f2py
Build dir: /home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/lib/tmp_f2py/bbdir
Build type: native build

meson.build:57:0: ERROR: Assignment target must be an id.
scalapack-openmpi = declare_dependency(link_args : )
^

A full log can be found at /home/ed/Telemac/v9.0/builds/gfortranHPC/wrap_api/lib/tmp_f2py/bbdir/meson-logs/meson-log.txt
Traceback (most recent call last):
File "/home/ed/.local/bin/f2py", line 8, in <module>
sys.exit(main())
^^^^^^
File "/home/ed/.local/share/pipx/venvs/numpy/lib/python3.12/site-packages/numpy/f2py/f2py2e.py", line 781, in main
run_compile()
File "/home/ed/.local/share/pipx/venvs/numpy/lib/python3.12/site-packages/numpy/f2py/f2py2e.py", line 753, in run_compile
builder.compile()
File "/home/ed/.local/share/pipx/venvs/numpy/lib/python3.12/site-packages/numpy/f2py/_backends/_meson.py", line 192, in compile
self.run_meson(self.build_dir)
File "/home/ed/.local/share/pipx/venvs/numpy/lib/python3.12/site-packages/numpy/f2py/_backends/_meson.py", line 185, in run_meson
self._run_subprocess_command(setup_command, build_dir)
File "/home/ed/.local/share/pipx/venvs/numpy/lib/python3.12/site-packages/numpy/f2py/_backends/_meson.py", line 181, in _run_subprocess_command
subprocess.run(command, cwd=cwd, check=True)
File "/usr/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '' returned non-zero exit status 1.

I also tried the compil_tools.py on
otm/telemac-mascaret#946
Yet it raised similar error.

You may find in the attachment the systel.cfg

File Attachment:

File Name: systel.cfg
File Size: 2 KB
I used.

Thanks!
Edouard
The administrator has disabled public write access.

Compilation failed with Ubuntu 24.04 7 hours 5 minutes ago #46038

B) Hello friends,

I have been testing on this issue and finally found the solution. The version v9.0 is fine and it is all because the systel parameters.

The old systel.cfg has been used from v8p3 to v8p5 and it was fine.

Under the new version of numpy and python, the following lines should be modified:
f2py_name:     f2py3 ⟶ f2py_name:     f2py
-L$SCALAPACKHOME -lscalapack-openmpi ⟶ -L$SCALAPACKHOME -Lscalapack-openmpi
-L$HDF5HOME/lib -lhdf5 -ldl -lstdc++ -lz ⟶ -L$HDF5HOME/lib -lhdf5 -ldl -Lstdc++ -lz

Then the API compilation should pass.

Regards,

Edouard
The administrator has disabled public write access.
Moderators: borisb

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.