iLCSoft / iLCInstall

Python scripts to install iLCSoft software and dependencies
GNU General Public License v3.0
4 stars 26 forks source link

Undefined symbol _ZN17siscone_spherical11CSphsiscone12_banner_ostrE #128

Closed GarcaHec closed 2 years ago

GarcaHec commented 3 years ago

I am sorry if this is not the right repository to open the issue.

I installed the version v02.02 of ILCSoft with the install script only changing the path to install the software. First the external packages and then the ilcsoft release without any complaints from the compiler or the linker. However, when I run Marlin and it tries to load the default shared libraries I get the following error:

<!-- ERROR loading shared library : /home/hectorgc/ILCSoft/v02-02/MarlinFastJet/v00-05-02/lib/libMarlinFastJet.so -> /home/hectorgc/ILCSoft/v02-02/FastJet/3.2.1/lib/libfastjetplugins.so.0: undefined symbol: _ZN17siscone_spherical11CSphsiscone12_banner_ostrE -->

using the nm command I found that indeed the libfastjetplugins.so.0 has that undefined symbol and I found that it is defined in libsiscone_spherical.so.0. Using ldd I see that those two libraries are not linked and I don't know if they should, I just want to use the FastJet Processor.

rete commented 3 years ago

Hi @GarcaHec , thanks for reporting this issue.This is probably the correct place to open this issue indeed. Can you provide more details about your setup? OS, compiler(s), etc... Thank you

GarcaHec commented 3 years ago

When I run the ilcsoft-install I get the following setup:

`GCC 7.5.0 /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/ gcc75_64bit_ub1804 75

Do you need anything else?

Zehvogel commented 2 years ago

I just ran into this with

reichenl@flc03:~$ . /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/v02-02-02/init_ilcsoft.sh 
reichenl@flc03:~$ Marlin
[snip]
<!-- Loading shared library : /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/v02-02-02/MarlinFastJet/v00-05-02/lib/libMarlinFastJet.so.0.5.2 (libMarlinFastJet.so)-->

<!-- ERROR loading shared library : /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/v02-02-02/MarlinFastJet/v00-05-02/lib/libMarlinFastJet.so
    ->    /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/v02-02-02/FastJet/3.2.1/lib/libfastjetplugins.so.0: undefined symbol: _ZN17siscone_spherical11CSphsiscone12_banner_ostrE -->
[snip]
dudarboh commented 2 years ago

Previously I ran into the same error with v02-02:

<!-- ERROR loading shared library : /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/v02-02/MarlinFastJet/v00-05-02/lib/libMarlinFastJet.so
    ->    /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/v02-02/FastJet/3.2.1/lib/libfastjetplugins.so.0: undefined symbol: _ZN17siscone_spherical11CSphsiscone12_banner_ostrE -->

few comments which we with @tmadlener discovered:

  1. I think FastJet loads just fine with zsh shell, but not bash. So if one really needs FastJet one can try this.
  2. afs/desy.de/project/ilcsoft/sw/x86_64_gcc54_ub1604/v02-00/ does work as well, because it doesn't load MarlinFastJet at all.

These might be useful @Zehvogel, if you need this to work on Ubuntu asap, while people look for the fix

tmadlener commented 2 years ago

This is a slightly weird one, and I am not entirely sure what is going wrong (and where). On the centos7 builds libMarlinFastJet.so actually links against libsiscone_spherical.os, and things work there. However, on Ubuntu the situation is slightly different and libMarlinFastJet.so does actually not explicitly link against the libsiscone libraries, leading to the missing symbol.

I don't know which of the two situations is the expected one. Naively, I would say libfastjet.so should be linked against libsiscone_spherical.so if it uses symbols from there, but that would mean that the problem is actually in libfastjet.so because that links only against "the basics".

As a workaround, if you don't need FastJet, you should be able to drop it from MARLIN_DLL to make things work for the moment.

Zehvogel commented 2 years ago

Dropping libMarlinFastJet.so from MARLIN_DLL works as expected and is good enough for me.

Quite a weird bug indeed. I am a bit puzzled on how this situation can even arise. Shouldn't there already occur a missing reference error or something similar at link time?

tmadlener commented 2 years ago

Quite a weird bug indeed. I am a bit puzzled on how this situation can even arise. Shouldn't there already occur a missing reference error or something similar at link time?

Naively, I would also have expected that.

GarcaHec commented 2 years ago

Indeed dropping FastJet form MARLIN_DLL works fine but in my case I need it for my analysis. I've been forced to work remotely in a centos7 machine.


De: Thomas Madlener @.***> Enviado: sábado, 30 de octubre de 2021 16:34:16 Para: iLCSoft/iLCInstall Cc: Garcia Cabrera, Hector; Mention Asunto: Re: [iLCSoft/iLCInstall] Undefined symbol _ZN17siscone_spherical11CSphsiscone12_banner_ostrE (#128)

Quite a weird bug indeed. I am a bit puzzled on how this situation can even arise. Shouldn't there already occur a missing reference error or something similar at link time?

Naively, I would also have expected that.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/iLCSoft/iLCInstall/issues/128#issuecomment-955243311, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKM7KGAJDWP4XO46QP6MVHTUJQF7RANCNFSM4UCG34BQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

tmadlener commented 2 years ago

I have written a small utility that removes MarlinFastJet from MARLIN_DLL. It is automatically used when setting up the x86_64_gcc75_ub1804/v02-02-02 release, but not for any of the others. To use it for another release, simply do:

. /afs/desy.de/project/ilcsoft/sw/x86_64_gcc75_ub1804/remove_marlinfastjet.sh

I will try to have a look into this and see what is actually going on.