From: Alan W. I. <ir...@be...> - 2003-03-26 03:06:27
|
On Wed, 26 Mar 2003, Joao Cardoso wrote: > > Joao, do you have > > any OSF1 results for using the > > > > ./get-drv-info xwin > > > > command in the drivers directory? > > Yes, it is OK: > > bash-2.01$ ./get-drv-info gd > Could not open driver module gd > bash-2.01$ ./get-drv-info ps > ps:PostScript File (monochrome):0:ps:29:psm > psc:PostScript File (color):0:ps:30:pscbash-2.01$ > bash-2.01$ ./get-drv-info xwin > xwin:X-Window (Xlib):1:xwin:5:xwbash-2.01$ Thanks for that additional information. > > command which generates the following messages: > > > > ld: warning: cannot find entry symbol _start; defaulting to 00014d98 > > plplot_octave.o: In function `str_vec_compare(void const *, void const *)': > > plplot_octave.o(.text+0x1aa4): undefined reference to `basic_string<char, > > string_char_traits<char>, __default_alloc_template<false, 0> > > >::compare(basic_string<char, string_char_traits<char>, > > __default_alloc_template<false, 0> > const &, unsigned long, unsigned long) > > const' plplot_octave.o: In function `_arraylen(octave_value const &)': > > plplot_octave.o(.text+0x1b00): undefined reference to `umul' > > plplot_octave.o: In function `_wrap_pl_setcontlabelformat(octave_value_list > > const &, int)': plplot_octave.o(.text+0x1e30): undefined reference to > > `octave_value::octave_value(void)' > > This looks like a libstdc question? Or a static Octave? Is Octave compiled > with shared libs? What do > > ldd `which octave` > > reports? Does liboctinterp/liboctave/libcruft appears? > > ... > liboctinterp.so.2.1.36 => /usr/local/lib/octave-2.1.36/liboctinterp.so.2.1.36 > liboctave.so.2.1.36 => /usr/local/lib/octave-2.1.36/liboctave.so.2.1.36 > libcruft.so.2.1.36 => /usr/local/lib/octave-2.1.36/libcruft.so.2.1.36 ldd `which octave` /usr/pkg/bin/octave: -loctinterp.2 => /usr/pkg/lib/liboctinterp.so.2 -loctave.2 => /usr/pkg/lib/liboctave.so.2 -lcruft.2 => /usr/pkg/lib/libcruft.so.2 -lreadline.4 => /usr/pkg/lib/libreadline.so.4 -lcurses.5 => /usr/lib/libcurses.so.5 -lz.0 => /usr/lib/libz.so.0 -lg2c.1 => /usr/lib/libg2c.so.1 -lstdc++.4 => /usr/lib/libstdc++.so.4 -lm.0 => /usr/lib/libm.so.0 -lc.12 => /usr/lib/libc.so.12 Thanks for that suggestion (which I should have thought of myself). It appears that octave is dynamically linked to all these libraries (including libcruft) and they are all present on the netbsd system. Inspired by your question and these results, I did a lot of experimentation and finally found that if ld -o plplot_octave.oct plplot_octave.o -L../../src/.libs -lplplotd is replaced by g++ -shared -o plplot_octave.oct plplot_octave.o -L../../src/.libs -lplplotd then all the linking problems disappear! So clearly, the netbsd version of mkoctfile is set up improperly for that system: i.e., grep SH_LD `which mkoctfile` |grep '=' : ${SH_LD="ld"} : ${SH_LDFLAGS=""} When it should have been the Linux result: grep SH_LD `which mkoctfile` | grep '=' : ${SH_LD="/usr/bin/g++"} : ${SH_LDFLAGS="-shared"} Have you been able to build octave on your OSF1 system? I am trying to get some idea (2 data points are more statistically significant than 1 ...;-)) whether this is just a netbsd problem with mkoctfile or are we going to have consistent problems when we use mkoctfile on any Unix system other than Linux? Alan __________________________ Alan W. Irwin email: ir...@be... phone: 250-727-2902 Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the Canadian Centre for Climate Modelling and Analysis (www.cccma.bc.ec.gc.ca) and the PLplot scientific plotting software package (plplot.org). __________________________ Linux-powered Science __________________________ |