Opened 19 years ago
Closed 19 years ago
#34 closed defect (fixed)
Problem with messages module in ropp_io
Reported by: | Dave Offiler | Owned by: | marq |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | ropp_utils | Version: | 0.8 |
Keywords: | Cc: | dave.offiler@…, axel.vonengeln@… |
Description (last modified by )
Axel & I have both re-built ropp_tools & ropp_io, but the g95 (only) fails in the configure of ropp_io when testing the messages module from ropp_tools - fragment from config.log below.
We suspected underscores again, so explcitly added -Df2cFortran on the ropp_tools configure command, but all we got was two of them in the relevant gcc command output by (ropp_tools) make and the same ropp_io config problem.
Since the issue seems to be with the *match_ routines, wha's special about them (all 'C', for instance?). Any 'pointers'??
configure:3141: checking for message of the ropp_tools library configure:3152: g95 -o conftest -I/data/local/frdo/builds/g95/include -L/data/local/frdo/builds/g95/lib conftest.f90 -lropp_tools -lnetcdf -ludunits >&5 /data/local/frdo/builds/g95/lib/libropp_tools.a(message.o)(.data+0x0): undefined reference to `bregexp_nmatch__' /data/local/frdo/builds/g95/lib/libropp_tools.a(message.o)(.data+0x4): undefined reference to `bregexp_match__' /data/local/frdo/builds/g95/lib/libropp_tools.a(message.o)(.data+0x8): undefined reference to `eregexp_nmatch__' /data/local/frdo/builds/g95/lib/libropp_tools.a(message.o)(.data+0xc): undefined reference to `eregexp_match__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x0): undefined reference to `bregexp_nmatch__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x4): undefined reference to `bregexp_match__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x2c): undefined reference to `eregexp_nmatch__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x30): undefined reference to `eregexp_match__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x48): undefined reference to `bregexp_nmatch__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x4c): undefined reference to `bregexp_match__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x74): undefined reference to `eregexp_match__' /data/local/frdo/builds/g95/lib/libropp_tools.a(replace.o)(.data+0x78): undefined reference to `eregexp_nmatch__' configure:3158: $? = 1 configure: failed program was: | program main | call message | end program main configure:3184: result: no configure:3189: error: The ropp_tools library is required for the compilation of this library / program.
Change history (2)
comment:1 by , 19 years ago
Cc: | added |
---|---|
Description: | modified (diff) |
Status: | new → assigned |
Summary: | messages module problem configuring ropp_io → Problem with messages module in ropp_io |
comment:2 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Commented out the F77 interface lines as suggested - problem fixed.
It would seem that g95 does indeed look for delared externals, used or not, while other compilers only bother if/when they are called.
Version of strings.f90 with this section of code removed has been committed.
As a low-level policy, ROPP code should only provide routines that are actually used; we shou;d at some point (before ROPP-2) review & remove redundant elements (like I know we're usign two sets of date/time tools)
The *regexp_[n]match* routines are C routines from tools90 library; but they are not used within the ROPP... However, the strings module (strings.f90 in the strings subdirectory) is simply a copy of the respective interface file from that library. It does contain this:
So I assume that g95 doesn't like externals defined, even if they are never used:-(
I suggest I replace the strings.f90 in ROPP with a stripped down version of the original file instead of the full one.