On Nov 26, 2014, at 7:09 PM, Marius Schamschula <address@hidden> wrote:
Ben,
On Nov 26, 2014, at 6:02 PM, Ben Abbott <address@hidden> wrote:
On Nov 26, 2014, at 7:02 PM, Marius Schamschula <address@hidden> wrote:
Ben,
On Nov 26, 2014, at 3:45 PM, Ben Abbott <address@hidden> wrote:
I’ve managed to build Octave on Yosemite using Fink for dependencies. I essentially copied the process developed by Alexander Hansen who maintains Octave for Fink.
For those interested, I’m attached two scripts. One is needed to patch Octave (a link to the patch is found in the patch script), and the second is needed to build.
To manage a build,
(1) fink install bison
(2) fink install octave-atlas-qtmac-dev
(3) From the Octave’s build directory (you’ll need to clone the sources)
(4) run patch_octave.sh
(5) run configure_octave.sh
(6) make
(7) ./run_octave
Don't run the install as it will install into Fink's directory structure.
Ben
<patch_octave.sh><configure_octave.sh>
I adapted the Fink patches to MacPorts, and now I no longer see the Abort Trap 6 crash when exiting.
Great. So far I haven’t been successful with adapting them to macports.
Can you attached the scripts you used?
Ben
Here are the patches:
<Portfile-octave.diff>
<octave-3.8.2-clang-libcxx.patch>
Note: I edited the libcxx patch, rather than using a different patch strip number.
Thanks.
If you or anyone else manages to build from a cloned repository, please let me know. I’m seeing errors like the one below.
In file included from
octave.cc:53:
In file included from corefcn/defun.h:30:
In file included from corefcn/defun-int.h:28:
In file included from ./octave-value/ov-builtin.h:28:
In file included from ./octave-value/ov-fcn.h:35:
In file included from corefcn/symtab.h:29:
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:967:50: error: no viable conversion from 'const_iterator' (aka '__tree_const_iterator<value_type, __node_pointer, difference_type>') to
'const_iterator' (aka '__map_const_iterator<typename __base::const_iterator>')
const_iterator end() const _NOEXCEPT {return __tree_.end();}
^~~~~~~~~~~~~
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:878:37: note: in instantiation of member function 'std::__1::map<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> >,
std::__1::less<cdef_class>, std::__1::allocator<std::__1::pair<const cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > > > >::end' requested here
insert(__m.begin(), __m.end());
^
./octave-value/ov-classdef.h:455:46: note: in instantiation of member function 'std::__1::map<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> >, std::__1::less<cdef_class>,
std::__1::allocator<std::__1::pair<const cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > > > >::map' requested here
: cdef_object_base (obj), map (obj.map), ctor_list (obj.ctor_list) { }
^
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:713:29: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const_iterator' (aka
'__tree_const_iterator<value_type, __node_pointer, difference_type>') to 'const std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<cdef_class,
std::__1::list<cdef_class, std::__1::allocator<cdef_class> > >, std::__1::__tree_node<std::__1::__value_type<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > >, void *>
*, long> > &' for 1st argument
class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator
^
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:739:5: note: candidate constructor not viable: no known conversion from 'const_iterator' (aka '__tree_const_iterator<value_type, __node_pointer,
difference_type>') to '__map_iterator<typename __tree_const_iterator<__value_type<cdef_class, list<cdef_class, allocator<cdef_class> > >, __tree_node<__value_type<cdef_class, list<cdef_class,
allocator<cdef_class> > >, void *> *, long>::__non_const_iterator>' for 1st argument
__map_const_iterator(
^
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:984:51: error: member function 'end' not viable: 'this' argument has type 'const std::__1::map<cdef_class, std::__1::list<cdef_class,
std::__1::allocator<cdef_class> >, std::__1::less<cdef_class>, std::__1::allocator<std::__1::pair<const cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > > > >', but
function is not marked const
const_iterator cend() const _NOEXCEPT {return end();}
^~~
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:1052:39: note: in instantiation of member function 'std::__1::map<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> >,
std::__1::less<cdef_class>, std::__1::allocator<std::__1::pair<const cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > > > >::cend' requested here
for (const_iterator __e = cend(); __f != __l; ++__f)
^
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:878:13: note: in instantiation of function template specialization 'std::__1::map<cdef_class, std::__1::list<cdef_class,
std::__1::allocator<cdef_class> >, std::__1::less<cdef_class>, std::__1::allocator<std::__1::pair<const cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > > >
::insert<std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > >,
std::__1::__tree_node<std::__1::__value_type<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > >, void *> *, long> > >' requested here
insert(__m.begin(), __m.end());
^
./octave-value/ov-classdef.h:455:46: note: in instantiation of member function 'std::__1::map<cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> >, std::__1::less<cdef_class>,
std::__1::allocator<std::__1::pair<const cdef_class, std::__1::list<cdef_class, std::__1::allocator<cdef_class> > > > >::map' requested here
: cdef_object_base (obj), map (obj.map), ctor_list (obj.ctor_list) { }
^
/opt/local/libexec/llvm-3.4/bin/../include/c++/v1/map:965:20: note: 'end' declared here
iterator end() _NOEXCEPT {return __tree_.end();}
^
Ben