#139 closed defect (fixed)
WHIZARD does not work with NAG 5.2 32bit compiler
Reported by: | Juergen Reuter | Owned by: | kilian |
---|---|---|---|
Priority: | P1 | Milestone: | |
Component: | omega | Version: | 2.0.0beta |
Severity: | blocker | Keywords: | linker problem |
Cc: |
Description
Here, make check etc. do not work because of unresolved or not found symbols in the O'Mega library. This is a typical error message:
NAG Fortran Compiler Release 5.2(686) Option warning: Unrecognised option -shared passed to loader libtool: link: (cd ".libs" && rm -f "processes.so.0" && ln -s "processes.so.0.0.0" "processes.so.0") libtool: link: (cd ".libs" && rm -f "processes.so" && ln -s "processes.so.0.0.0" "processes.so") libtool: link: ar cru .libs/processes.a zh.o ww.o processes.o libtool: link: ranlib .libs/processes.a libtool: link: ( cd ".libs" && rm -f "processes.la" && ln -s "../processes.la" "processes.la" ) | Loading process library 'processes' *** Fatal error: /afs/physik.uni-freiburg.de/home/reuter/Physik/progs/omwhiz/svn/trunk/src/.libs/libomega.so.0: undefined symbol: exit_ WHIZARD run aborted.
Change History (5)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Just reproduced it. It's not specific to 32bit. And it appeared very recently.
I'd also guess that this is the 3SHL stuff.
(Without blaming anyone, I'd recommend to disable this for RC1 if the issue is not easily solved.)
comment:3 Changed 15 years ago by
Owner: | changed from ALL to kilian |
---|---|
Status: | new → assigned |
I have a workaround almost ready -- (early tomorow)
comment:4 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
OK, I'm dreadfully sorry, my bad, I am using exit in my 3SHL library as part of the error handling system (although the code will never be called when used within WHIZARD), and forgot that this is nonstandard - NAG is the first compiler I meet that doesn't know it. Therefore, the symbol is unresolved when using NAG, and it then depends on the interpretation of the "1" in dlopen (see #136) whether this triggers an error - for example, I couldn't reproduce it myself with NAG. I checked in a fix which makes the unresolved symbol vanish, and ldd shows that it is indeed gone. Sorry again for the trouble.
I reproduced this with the newer NAG version 717. Still the same. Here is the output from nm libomega.so.0:
It appears together with file_utils.free_unit. Does this come from the 3SHL model and its Fortran modules? Cyclic dependencies? libomega -> libwhizard -> libomega