From: <lan...@qw...> - 2006-03-28 10:00:21
|
NOOB ALERT Attempting to install on OS X 10.4.5 and had a problem. Here are the last few lines from the "make" and "make install" lines which might be helpful. (Also, the make install command (earlier, not here) failed on Line 1 apparently because there was a space in a path name. Specifically, my path contained the string "Plotting Stuff" which I replaced with "Plotting_Stuff".) This happens a lot with Unix scripts running on Mac systems--a bit of a culture clash.) Here's the last few lines of output, but maybe the problem was earlier: Jerry ld: Undefined symbols: .objc_class_name_NSAutoreleasePool .objc_class_name_NSConstantString .objc_class_name_NSMutableAttributedString .objc_class_name_NSNumber .objc_class_name_NSString __NSConstantStringClassReference /usr/bin/libtool: internal link edit command failed make[2]: *** [libplplotd.la] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 [AlBook:Programming/Plotting Stuff/plplot-5.5.3] me% make install Making install in drivers make[2]: Nothing to be done for `install-exec-am'. test -z "/usr/local/share/doc/plplot" || /Applications/Programming/ Plotting_Stuff/plplot-5.5.3/cf/install-sh -d "/usr/local/share/doc/ plplot" mkdir: /usr/local/share/doc: Permission denied make[2]: *** [install-docDATA] Error 1 make[1]: *** [install-am] Error 2 make: *** [install-recursive] Error 1 [AlBook:Programming/Plotting Stuff/plplot-5.5.3] me% |
From: <lan...@qw...> - 2006-03-28 21:25:22
|
> lan...@qw... wrote: > >> NOOB ALERT >> >> Attempting to install on OS X 10.4.5 and had a problem. Here are >> the last few lines from the "make" and "make install" lines which >> might be helpful. >> >> (Also, the make install command (earlier, not here) failed on Line >> 1 apparently because there was a space in a path name. >> Specifically, my path contained the string "Plotting Stuff" which >> I replaced with "Plotting_Stuff".) This happens a lot with Unix >> scripts running on Mac systems--a bit of a culture clash.) >> > Did you rerun the configure script? (Spaces in directory names are > a nuisance, as spaces are also used > to separate commands and their arguments in scripts ...) Yes--I ran these commands twice, once with the space and once without the space: ./configure --disable-dyndrivers --disable-f77 make make install The options for configure are as directed in README.release when compiling for the AquaTerm driver on OS X. Can I re-run these commands without worry, and without deleting the files that they create? > >> >> ld: Undefined symbols: >> .objc_class_name_NSAutoreleasePool >> .objc_class_name_NSConstantString >> .objc_class_name_NSMutableAttributedString >> .objc_class_name_NSNumber >> .objc_class_name_NSString >> __NSConstantStringClassReference >> /usr/bin/libtool: internal link edit command failed > > It is clear that something is missing, but the names shown here are > new to me. > Perhaps this has to do with the compiler you are using? Identifier names beginning with NS, on OS X, are usually part of the API. "NS" is a carryover from NextStep. So words such as NSAutoreleasePool, for example, are easily found in Apple's docs. Looking at the documentation for NSAutoreleasePool reveals that it is in the Foundation framework. Doing nm Foundation turns up 42 lines containing the string NSAutoreleasePool, one of which is 00000000 A .objc_class_name_NSAutoreleasePool So it looks to me like the linker isn't seeing the Foundation framework. ... a bit later ... I just re-built but with this configure command: ./configure --disable-f77 That is, I omitted the --disable-dyndrivers option. The problem with undefined symbols at this stage has disappeared. Here is the result of make, after the above configure command: [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% make make all-recursive Making all in libltdl make all-am /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c -o ltdl.lo ltdl.c gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -fno-common -DPIC - o .libs/ltdl.o gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -o ltdl.o >/dev/null 2>&1 /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o libltdlc.la ltdl.lo -ldl rm -fr .libs/libltdlc.a .libs/libltdlc.la ar cru .libs/libltdlc.a .libs/ltdl.o ranlib .libs/libltdlc.a creating libltdlc.la (cd .libs && rm -f libltdlc.la && ln -s ../libltdlc.la libltdlc.la) Making all in fonts make[2]: Nothing to be done for `all'. Making all in lib Making all in csa make[3]: Nothing to be done for `all'. make[3]: Nothing to be done for `all-am'. Making all in include make all-am Making all in src make[2]: Nothing to be done for `all'. Making all in data make[2]: Nothing to be done for `all'. Making all in bindings Making all in c++ /bin/sh ../../libtool --tag=CXX --mode=link g++ -g -O2 -o libplplotcxxd.la -rpath /usr/local/lib -version-info 11:0:2 -rpath / usr/local/lib -no-undefined ../../src/libplplotd.la plstream.lo -lm rm -fr .libs/libplplotcxxd.9.2.0.dylib g++ -dynamiclib -single_module -o .libs/libplplotcxxd. 9.2.0.dylib .libs/plstream.o ../../src/.libs/libplplotd.dylib / Applications/Programming/Plotting_Stuff/plplot-5.5.3/lib/csa/.libs/ libcsirocsa.dylib -lm -install_name /usr/local/lib/libplplotcxxd. 9.dylib -compatibility_version 12 -current_version 12.0 g++: installation problem, cannot exec `c++filt3': No such file or directory make[3]: *** [libplplotcxxd.la] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 I have seen this problem with c++filt3 before (not with PLplot) and I have seen others discuss it in other contexts, but I still don't know how to fix it. I believe that it might be a problem created by Apple. Indeed, there is no c++filt3 on my computer, but there is a /usr/bin/c ++filt; the manpage for c++filt says "Demangle C++ and Java symbols." Continuing anyway, here is the result of make install: [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% make install Making install in libltdl test -z "/usr/local/lib" || /Applications/Programming/Plotting_Stuff/ plplot-5.5.3/libltdl/install-sh -d "/usr/local/lib" test -z "/usr/local/include" || /Applications/Programming/ Plotting_Stuff/plplot-5.5.3/libltdl/install-sh -d "/usr/local/include" Making install in fonts make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. Making install in lib Making install in csa test -z "/usr/local/lib" || /Applications/Programming/Plotting_Stuff/ plplot-5.5.3/cf/install-sh -d "/usr/local/lib" /bin/sh ../../libtool --mode=install /usr/bin/install -c 'libcsirocsa.la' '/usr/local/lib/libcsirocsa.la' /usr/bin/install -c .libs/libcsirocsa.0.0.1.dylib /usr/local/lib/ libcsirocsa.0.0.1.dylib install: /usr/local/lib/libcsirocsa.0.0.1.dylib: Permission denied make[3]: *** [install-libLTLIBRARIES] Error 71 make[2]: *** [install-am] Error 2 make[1]: *** [install-recursive] Error 1 make: *** [install-recursive] Error 1 [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% Ideas? Has anyone recently built for OS X? Jerry > > Regards, > > Arjen |
From: <hba...@ma...> - 2006-03-29 01:46:38
|
On Mar 28, 2006, at 4:25 PM, lan...@qw... wrote: > > Yes--I ran these commands twice, once with the space and once > without the space: > ./configure --disable-dyndrivers --disable-f77 > make > make install This *should* work (for 10.4 as well as 10.3) if modify your make command to: make LIBS="-Wl,-framework -Wl,Foundation" (note that it is a "l" not a "1", see the INSTALL file) I think the problem with the above is that if you disable dyn-drivers then the compiler needs to be able to find these libraries in order to statically link them. > /bin/sh ../../libtool --tag=CXX --mode=link g++ -g -O2 -o > libplplotcxxd.la -rpath /usr/local/lib -version-info 11:0:2 -rpath / > usr/local/lib -no-undefined ../../src/libplplotd.la plstream.lo -lm > rm -fr .libs/libplplotcxxd.9.2.0.dylib > g++ -dynamiclib -single_module -o .libs/libplplotcxxd. > 9.2.0.dylib .libs/plstream.o ../../src/.libs/libplplotd.dylib / > Applications/Programming/Plotting_Stuff/plplot-5.5.3/lib/csa/.libs/ > libcsirocsa.dylib -lm -install_name /usr/local/lib/libplplotcxxd. > 9.dylib -compatibility_version 12 -current_version 12.0 > g++: installation problem, cannot exec `c++filt3': No such file or > directory > make[3]: *** [libplplotcxxd.la] Error 1 > make[2]: *** [all-recursive] Error 1 > make[1]: *** [all-recursive] Error 1 > make: *** [all] Error 2 > > > I have seen this problem with c++filt3 before (not with PLplot) and > I have seen others discuss it in other contexts, but I still don't > know how to fix it. I believe that it might be a problem created by > Apple. Indeed, there is no c++filt3 on my computer, but there is a / > usr/bin/c++filt; the manpage for c++filt says "Demangle C++ and > Java symbols." I'm not able to reproduce this one, though I've seen it in the past in the context of a problem with g77. You could try making a copy of c ++filt & naming it c++filt3, or creating a symbolic link. One thing that is often useful for remote debugging is the last few lines of your configure, i.e. these lines: command: ./configure --disable-f77 --enable-ltdl-convenience host: powerpc-apple-darwin8.5.0 have_x: yes prefix: /usr/local CC: gcc CXX: g++ LIB_TAG: d devices: aqt hp7470 hp7580 lj_hpgl mem null pbm plmeta ps psc pstex xfig xwin Available device drivers: static: dynamic: aqt.la hpgl.la mem.la null.la pbm.la plmeta.la ps.la pstex.la xfig.la xwin.la Compilation options: with_debug: no Library options: enable_shared: yes enable_static: yes with_rpath: yes with_double: yes Optional libraries: with_qhull: no with_csa: yes with_freetype: no with_pthreads: no Language Bindings: enable_tcl: no enable_itcl: no enable_cxx: yes enable_f77: no enable_java: no enable_python: no enable_octave: no enable_pdl: no Also, which versions of gcc & g++ do you have (gcc -v, g++ -v)? I've got 4.0.0 for both. best, -Hazen |
From: <lan...@qw...> - 2006-03-29 03:07:22
|
>> >> Yes--I ran these commands twice, once with the space and once >> without the space: >> ./configure --disable-dyndrivers --disable-f77 >> make >> make install > > This *should* work (for 10.4 as well as 10.3) if modify your make > command to: > make LIBS="-Wl,-framework -Wl,Foundation" (note that it is a "l" > not a "1", see the INSTALL file) > > I think the problem with the above is that if you disable dyn- > drivers then the compiler needs to be able to find these libraries > in order to statically link them. > >> /bin/sh ../../libtool --tag=CXX --mode=link g++ -g -O2 -o >> libplplotcxxd.la -rpath /usr/local/lib -version-info 11:0:2 - >> rpath /usr/local/lib -no-undefined ../../src/libplplotd.la >> plstream.lo -lm >> rm -fr .libs/libplplotcxxd.9.2.0.dylib >> g++ -dynamiclib -single_module -o .libs/libplplotcxxd. >> 9.2.0.dylib .libs/plstream.o ../../src/.libs/libplplotd.dylib / >> Applications/Programming/Plotting_Stuff/plplot-5.5.3/lib/csa/.libs/ >> libcsirocsa.dylib -lm -install_name /usr/local/lib/libplplotcxxd. >> 9.dylib -compatibility_version 12 -current_version 12.0 >> g++: installation problem, cannot exec `c++filt3': No such file or >> directory >> make[3]: *** [libplplotcxxd.la] Error 1 >> make[2]: *** [all-recursive] Error 1 >> make[1]: *** [all-recursive] Error 1 >> make: *** [all] Error 2 >> >> >> I have seen this problem with c++filt3 before (not with PLplot) >> and I have seen others discuss it in other contexts, but I still >> don't know how to fix it. I believe that it might be a problem >> created by Apple. Indeed, there is no c++filt3 on my computer, but >> there is a /usr/bin/c++filt; the manpage for c++filt says >> "Demangle C++ and Java symbols." > > I'm not able to reproduce this one, though I've seen it in the past > in the context of a problem with g77. You could try making a copy > of c++filt & naming it c++filt3, or creating a symbolic link. Now done. > > > One thing that is often useful for remote debugging is the last few > lines of your configure, i.e. these lines: > <snip> Here they are command: ./configure --disable-dyndrivers --disable-f77 host: powerpc-apple-darwin8.5.0 have_x: yes prefix: /usr/local CC: gcc CXX: g++ LIB_TAG: d devices: aqt hp7470 hp7580 lj_hpgl mem null pbm plmeta ps psc pstex xfig xwin Available device drivers: static: aqt.lo hpgl.lo mem.lo null.lo pbm.lo plmeta.lo ps.lo pstex.lo xfig.lo xwin.lo dynamic: Compilation options: with_debug: no Library options: enable_shared: yes enable_static: yes with_rpath: yes with_double: yes Optional libraries: with_qhull: no with_csa: yes with_freetype: no with_pthreads: no Language Bindings: enable_tcl: no enable_itcl: no enable_cxx: yes enable_f77: no enable_java: no enable_python: no enable_octave: yes enable_pdl: no Then the make modified as you suggested: make LIBS="-Wl,-framework -Wl,Foundation" ---- many delete lines, then: ld: warning multiple definitions of symbol _xerbla_ /usr/local/lib/octave-2.1.71/liboctinterp.dylib(single module) definition of _xerbla_ /usr/local/lib/octave-2.1.71/libcruft.dylib(single module) definition of _xerbla_ /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/ vecLib.framework/Versions/A/libBLAS.dylib(single module) definition of _xerbla_ ld: Undefined symbols: _plparseopts make[4]: *** [plplot_octave.oct] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 There seem to be two Octave libraries which are interfering with the Accelerate.framework. Can I exclude the Octave stuff using additional options to make? If I do, will Octave still be able to use PLplot? (Octave is not my highest priority now, but it would be nice.) Then there's this: [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% make install Making install in drivers make[2]: Nothing to be done for `install-exec-am'. test -z "/usr/local/share/doc/plplot" || /Applications/Programming/ Plotting_Stuff/plplot-5.5.3/cf/install-sh -d "/usr/local/share/doc/ plplot" mkdir: /usr/local/share/doc: Permission denied make[2]: *** [install-docDATA] Error 1 make[1]: *** [install-am] Error 2 make: *** [install-recursive] Error 1 > Also, which versions of gcc & g++ do you have (gcc -v, g++ -v)? > I've got 4.0.0 for both. gcc -v gives: Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs Thread model: posix gcc version 3.3 20040913 (GNAT for Mac OS X build 1650) g++ -v gives: Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs Thread model: posix gcc version 3.3 20030304 (Apple Computer, Inc. build 1809) I'm not comfortable moving to 4.0 yet because the Ada and Pascal compilers (or their OS X integration) that I use are still being tweaked. Thanks, Jerry > > best, > -Hazen > > |
From: Hazen B. <hba...@ma...> - 2006-03-29 03:33:13
|
> > ld: warning multiple definitions of symbol _xerbla_ > /usr/local/lib/octave-2.1.71/liboctinterp.dylib(single module) > definition of _xerbla_ > /usr/local/lib/octave-2.1.71/libcruft.dylib(single module) > definition of _xerbla_ > /System/Library/Frameworks/Accelerate.framework/Versions/A/ > Frameworks/vecLib.framework/Versions/A/libBLAS.dylib(single module) > definition of _xerbla_ > ld: Undefined symbols: > _plparseopts > make[4]: *** [plplot_octave.oct] Error 1 > make[3]: *** [all-recursive] Error 1 > make[2]: *** [all-recursive] Error 1 > make[1]: *** [all-recursive] Error 1 > make: *** [all] Error 2 You need to run ./configure with --disable-octave & then hopefully you'll be in the clear. The error "undefined symbol _plparseopts" has been a long standing problem with Octave on OS-X. It has been fixed in the cvs version, but there haven't been any releases in a while. Ideally we'll have new a release in a month or so and you can grab that and use plplot with octave. best, -Hazen |
From: <lan...@qw...> - 2006-03-29 04:00:12
|
Getting closer 8^) > You need to run ./configure with --disable-octave & then hopefully > you'll be in the clear. The error "undefined symbol _plparseopts" > has been a long standing problem with Octave on OS-X. It has been > fixed in the cvs version, but there haven't been any releases in a > while. Ideally we'll have new a release in a month or so and you > can grab that and use plplot with octave. > > best, > -Hazen > Configure results: command: ./configure --disable-dyndrivers --disable-f77 -- disable-octave host: powerpc-apple-darwin8.5.0 have_x: yes prefix: /usr/local CC: gcc CXX: g++ LIB_TAG: d devices: aqt hp7470 hp7580 lj_hpgl mem null pbm plmeta ps psc pstex xfig xwin Available device drivers: static: aqt.lo hpgl.lo mem.lo null.lo pbm.lo plmeta.lo ps.lo pstex.lo xfig.lo xwin.lo dynamic: Compilation options: with_debug: no Library options: enable_shared: yes enable_static: yes with_rpath: yes with_double: yes Optional libraries: with_qhull: no with_csa: yes with_freetype: no with_pthreads: no Language Bindings: enable_tcl: no enable_itcl: no enable_cxx: yes enable_f77: no enable_java: no enable_python: no enable_octave: no enable_pdl: no make LIBS="-Wl,-framework -Wl,Foundation" No errors reported. This time "make" ran quickly compared to previous runs. But now: [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% make install Making install in drivers make[2]: Nothing to be done for `install-exec-am'. test -z "/usr/local/share/doc/plplot" || /Applications/Programming/ Plotting_Stuff/plplot-5.5.3/cf/install-sh -d "/usr/local/share/doc/ plplot" mkdir: /usr/local/share/doc: Permission denied make[2]: *** [install-docDATA] Error 1 make[1]: *** [install-am] Error 2 make: *** [install-recursive] Error 1 The only thing at /usr/local/share/ is .DS_Store emacs gnuplot octave i.e., no docs/ Jerry |
From: Hazen B. <hba...@ma...> - 2006-03-29 04:23:19
|
On Mar 28, 2006, at 11:00 PM, lan...@qw... wrote: > Getting closer 8^) Yep, I'd say that you've almost got it now. > mkdir: /usr/local/share/doc: Permission denied It looks like you don't have necessary permissions to create the directory "/usr/local/share/doc", which is probably true since, at least on my mac, the parent directory ("/usr/local/share") is owned by root & only root has write permission. I'd suggest running "make install" as super-user, i.e. try "sudo make install". This should give you the necessary permissions to finish the install. best, -Hazen |
From: <lan...@qw...> - 2006-03-29 04:57:23
|
On Mar 28, 2006, at 9:22 PM, Hazen Babcock wrote: > > On Mar 28, 2006, at 11:00 PM, lan...@qw... wrote: > >> Getting closer 8^) > > Yep, I'd say that you've almost got it now. > >> mkdir: /usr/local/share/doc: Permission denied > > It looks like you don't have necessary permissions to create the > directory "/usr/local/share/doc", which is probably true since, at > least on my mac, the parent directory ("/usr/local/share") is owned > by root & only root has write permission. I'd suggest running "make > install" as super-user, i.e. try "sudo make install". This should > give you the necessary permissions to finish the install. > > best, > -Hazen > D'oh! I did sudo make install and no errors are reported. Now all I have to to is figure out how to test it. So here are the steps that worked for me: Make a copy of /usr/bin/c++filt and call it /usr/bin/c++filt3 Then run these commands: ./configure --disable-dyndrivers --disable-f77 --disable-octave make LIBS="-Wl,-framework -Wl,Foundation" sudo make install Many thanks, Jerry |
From: Hazen B. <hba...@ma...> - 2006-03-29 05:21:09
|
> > I did sudo make install and no errors are reported. Now all I have > to to is figure out how to test it. Good to hear that you got it to work! A good way to test things is to first run "make check" to compile the examples & then run them (C examples can be found in ./examples/c in your plplot directory). (You shouldn't need to run make or make install again). best, -Hazen |