[ncl-install] Mysterious missing symbol error in NCL libraries

Cook, Rich cook47 at llnl.gov
Mon May 11 10:26:13 MDT 2015


Hello,
I'm sorry if this is a known issue;  I am the maintainer of our cluster installation of NCAR on our machines.  A user recently complained to me that he is having linker errors when trying build against ncar:

// -------------------------------------------------------------------------
ifort     shok3.o /usr/local/lib/libmbase.a /usr/local/tools/ncar-intel-6.3.0/lib/libncarg.a /usr/local/tools/ncar-intel-6.3.0/lib/libncarg_gks.a /usr/local/tools/ncar-intel-6.3.0/lib/libncarg_c.a /usr/local/tools/ncar-intel-6.3.0/lib/libcgm.a /usr/lib64/libX11.so -o shok3
/usr/local/tools/ncar-intel-6.3.0/lib/libncarg_gks.a(gziqwk.o): In function `gziqwk_':
gziqwk.f:(.text+0x123): undefined reference to `ggkwdr_'
/usr/local/tools/ncar-intel-6.3.0/lib/libncarg_gks.a(gztowk.o): In function `gztowk_':
gztowk.f:(.text+0x2ce): undefined reference to `ggkwdr_'
gztowk.f:(.text+0x5a2): undefined reference to `ggkwdr_'
gztowk.f:(.text+0x984): undefined reference to `ggkwdr_'
make: *** [shok3] Error 1
// -------------------------------------------------------------------------

Naturally I googled to find a solution but none of the postings I found seemed relevant to me -- they all referenced some w_char problem from ages past, which I don't see any hint of in my build logs.

If the user tries building against our 6.0.0 build, he does not have this problem -- nm reveals that the symbol lives in libncarg_c.a
I looked and ggkwdr() is a function from file fort_c.c
When I compared the build logs of the two versions, I see that in 6.0.0, fort_c.o gets archived into libncarg_c.a, which then gets installed into the INSTALL_DIR/lib:

// -------------------------------------------------------------------------
ar vru ../libncarg_gks.a fort_c.o gksc.o transform.o gksP.o gks_device.o ctxt_device.o ctxt.o ctxt_conv.o xdevice.o font.o text.o x_conv.o xattribute.o xcontrol.o xinquiry.o xoutput.o psdevice.o ps.o ps_conv.o psfill.o pdf.o pdfdevice.o pdf_conv.o pdffill.o pixcontrol.o     pixoutput.o pixdevice.o   pix_conv.o       pixattribute.o  pixinquiry.o pixwrite_xwd.o
....
intel: ranlib libncarg_gks.a
intel: Installing libncarg_gks.a
intel: ranlib /usr/local/tools/ncar-intel-6.3.0/lib/libncarg_gks.a
// -------------------------------------------------------------------------

But in the build log for version 6.3.0, fort_c.o gets stuffed into a library called libbasegks.a, and this library never seems to be installed anywhere or used:

// -------------------------------------------------------------------------
intel: ar vru ../libbasegks.a fort_c.o gksc.o transform.o gksP.o argb.o
....
(no more mention of libbasegks.a in the build log from here)
// -------------------------------------------------------------------------

Can someone help me understand what's wrong with my build process?
I'm building them both identically, using the config/LINUX.INTEL configuration.

Thanks!

--
✐Richard Cook
✇ Lawrence Livermore National Laboratory
Bldg-453 Rm-4024, Mail Stop L-557
7000 East Avenue,  Livermore, CA, 94550, USA
☎ (office) (925) 423-9605
☎ (fax) (925) 423-6961
---
Information Management & Graphics Grp., Services & Development Div., Integrated Computing & Communications Dept.
(opinions expressed herein are mine and not those of LLNL)



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-install/attachments/20150511/03ae3562/attachment.html 


More information about the ncl-install mailing list