On 2005-03-22 08:48-0400 Thomas J. Duck wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>>> I just tried to build PLplot from CVS and have the following error:
>>> ../tcl/.libs/libplplottcltkd.so: undefined reference to `c_plrgbhls'
>>> ../tcl/.libs/libplplottcltkd.so: undefined reference to `c_plhlsrgb'
>>> collect2: ld returned 1 exit status
>>> make: *** [plserver] Error 1
>>> Can someone confirm that the build is broken? I did a "make distclean",
>>> "cf/bootstrap.sh", etc first, and so didn't expect this problem.
>> IIRC, the same thing happened to me. Here is what I did to work around it.
>> I removed my installed tree and started from a fresh checkout. If that also
>> works for you, then obviously either "make distclean" did not remove enough
>> and/or there is some configuration mistake in bindings/tcl/Makefile.am that
>> allows the new build to use the old installed libplplot to attempt to
>> resolve references (which would not have c_plrgbhls and c_plhlsrgb defined).
> Thanks Alan. I didn't need to start from a fresh cvs, but I did need
> to clean out /usr/local/lib/. So, as you say, there is likely some
> configuration mistake in bindings/tcl/Makefile.am.
That's really interesting. I have always suspected interactions with the
installed version, but my experience and yours seems to be direct
confirmation there is a problem with that. IIRC what happened in my case
was I just tried an ordinary make after the addition of c_plrgbhls and
c_plhlsrgb, and when that didn't work (as above), I tried make distclean;
cf/bootstrap.sh; ./configure which also didn't work. Then I did a complete
restart from fresh checkout and nothing in $prefix. (I use a prefix of
/usr/local/plplot so I can remove everything from it easily without
interfering with anything else.) And now you have established that the
removal of the installed version is the essential step here.
Rafael, I compared the bindings/tcl/Makefile.am libplplot logic with several
other Makefile.am files in bindings/*, and as far as I can see they all link
to libplplot the same way.
Rafael, if you agree with that assessment, does this mean they are all
wrong? The general scenario is you add some API to libplplot (such as
c_plrgbhls), but you get errors like above even if you execute "make
distclean; cf/bootstrap.sh; ./configure" unless you remove the old installed
Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the
Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project