On 11/13/13 8:17 AM, Alexander Hansen wrote: > On 11/10/13 2:34 PM, Dominique Dhumieres wrote: >> >>> Try editing /sw/bin/mkoctfile-3.6.4 as a superuser and change all of the >>> instances of oct-cc to /sw/var/lib/fink/path-prefix-clang/cc and those >>> of oct-cxx to /sw/var/lib/fink/path-prefix-clang/c++ . >> >> Thanks for the tip. I had to edit /sw64/bin/mkoctfile also and >> /sw64/var/lib/fink/path-prefix-clang did not exist (I copied the one >> from 10.8. I am now stuck with the following failures >> >> ans = >> /sw64/src/fink.build/miscellaneous-oct364-1.2.0-3/bld/share/octave/3.6.4/packages >> >> mkdir (/var/tmp/oct-Eeuiaz) >> untar (./miscellaneous-1.2.0.tar, /var/tmp/oct-Eeuiaz) >> Undefined symbols for architecture x86_64: >> "check_version(std::string const&, std::string const&)", referenced >> from: >> _Gcell2cell in cell2cell.o >> "octave_dld_function::create(octave_value_list >> (*)(octave_value_list const&, int), octave_shlib const&, std::string >> const&, std::string const&)", referenced from: >> _Gcell2cell in cell2cell.o >> "std::string::_Rep::_M_destroy(std::allocator<char> const&)", >> referenced from: >> _Gcell2cell in cell2cell.o >> Fcell2cell(octave_value_list const&, int) in cell2cell.o >> Array<std::string>::ArrayRep::~ArrayRep() in cell2cell.o >> "std::string::_Rep::_M_dispose(std::allocator<char> const&)", >> referenced from: >> _Gcell2cell in cell2cell.o >> Fcell2cell(octave_value_list const&, int) in cell2cell.o >> "std::string::_Rep::_S_empty_rep_storage", referenced from: >> _Gcell2cell in cell2cell.o >> Fcell2cell(octave_value_list const&, int) in cell2cell.o >> Array<std::string>::ArrayRep::~ArrayRep() in cell2cell.o >> "std::basic_string<char, std::char_traits<char>, >> std::allocator<char> >::basic_string(char const*, std::allocator<char> >> const&)", referenced from: >> _Gcell2cell in cell2cell.o >> Fcell2cell(octave_value_list const&, int) in cell2cell.o >> "std::ios_base::Init::Init()", referenced from: >> __GLOBAL__sub_I_cell2cell.cc in cell2cell.o >> "std::ios_base::Init::~Init()", referenced from: >> __GLOBAL__sub_I_cell2cell.cc in cell2cell.o >> ld: symbol(s) not found for architecture x86_64 >> clang: error: linker command failed with exit code 1 (use -v to see >> invocation) >> make: *** [cell2cell.oct] Error 1 >> 'make' returned the following error: mkoctfile -Wall cell2cell.cc >> error: called from 'pkg>configure_make' in file >> /sw64/share/octave/3.6.4/m/pkg/pkg.m near line 1385, column 9 >> error: called from: >> error: /sw64/share/octave/3.6.4/m/pkg/pkg.m at line 827, column 5 >> error: /sw64/share/octave/3.6.4/m/pkg/pkg.m at line 383, column 9 >> error: >> /sw64/src/fink.build/miscellaneous-oct364-1.2.0-3/bld/octave-forge-comp at >> line 4, column 1 >> ### execution of /tmp/fink.0wN0_ failed, exit code 1 >> Removing runtime build-lock... >> Removing build-lock package... >> /sw64/bin/dpkg-lockwait -r fink-buildlock-miscellaneous-oct364-1.2.0-3 >> (Reading database ... 186574 files and directories currently installed.) >> Removing fink-buildlock-miscellaneous-oct364-1.2.0-3 ... >> Failed: phase compiling: miscellaneous-oct364-1.2.0-3 failed >> >> and >> > > I've made a little bit of progress on this, at to the extent of being > able to identify the problem if not yet the solution: > > On 10.9 the symbol definitely isn't matching up: > $ nm -o /sw/lib/octave/3.6.4/*.dylib | grep check_version | c++filt > /sw/lib/octave/3.6.4/liboctinterp.1.dylib: U > _H5check_version > /sw/lib/octave/3.6.4/liboctinterp.1.dylib: 0000000000084a60 T > check_version(std::__1::basic_string<char, std::__1::char_traits<char>, > std::__1::allocator<char> > const&, std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> > const&) > /sw/lib/octave/3.6.4/liboctinterp.dylib: U > _H5check_version > /sw/lib/octave/3.6.4/liboctinterp.dylib: 0000000000084a60 T > check_version(std::__1::basic_string<char, std::__1::char_traits<char>, > std::__1::allocator<char> > const&, std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> > const&) > > On 10.8, in contrast: > $ nm -o /sw/lib/octave/3.6.4/*.dylib | grep check_version | c++filt > /sw/lib/octave/3.6.4/liboctinterp.1.dylib: U > _H5check_version > /sw/lib/octave/3.6.4/liboctinterp.1.dylib: 0000000000087c20 T > check_version(std::string const&, std::string const&) > /sw/lib/octave/3.6.4/liboctinterp.dylib: U > _H5check_version > /sw/lib/octave/3.6.4/liboctinterp.dylib: 0000000000087c20 T > check_version(std::string const&, std::string const&)
It turns out that I filed a bug report on this in Februrary. :-) There hasn't been a release of miscellaneous since then. The problem was that I had been using gcc48 for the build, because one of the other functions in this package, part_array(), won't build with clang. Since Octave is built with libc++ on 10.9, whereas gcc48 expects stdlibc++, things aren't mixing well. Upstream has deprecated the part_array() function, and it has been removed from the SVN version of miscellaneous: http://savannah.gnu.org/bugs/?38339 I've gone ahead and removed part_array from revision 4 and switched it to use clang. -- Alexander Hansen, Ph.D. Fink User Liaison My package updates: http://finkakh.wordpress.com/ ------------------------------------------------------------------------------ DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk _______________________________________________ Fink-users mailing list Fink-users@lists.sourceforge.net List archive: http://news.gmane.org/gmane.os.macosx.fink.user Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-users