[97657] trunk/dports/lang
Jeremy Huddleston Sequoia
jeremyhu at macports.org
Thu Sep 13 22:39:14 PDT 2012
On Sep 11, 2012, at 13:37, Dan Ports <dports at macports.org> wrote:
> On Tue, Sep 11, 2012 at 03:32:04PM -0400, Michael Dickens wrote:
>> I've already had folks writing me that octave (via octave-devel) is now
>> broken during build, because the linked libstdc++ does not contain
>> certain symbols. I cannot fix this issue since it requires the correct
>> libstdc++ for the given GCC. I would -highly- advise reverting this
>> change for the time being. - MLD
>
> I haven't run into that, but what I'm seeing is that my octave that was
> linked against gcc45's libstdc++ now fails at runtime:
>
> octave(24531) malloc: *** error for object 0x7fff76cc2860: pointer being freed was not allocated
> *** set a breakpoint in malloc_error_break to debug
> zsh: abort (core dumped) octave
>
> I assume this is because gcc45 is (regrettably) built with
> --enable-fully-dynamic-string, which makes its libstdc++
> binary-incompatible with the system's, at least for C++ programs that
> use the standard string class.
It's not using the system libstdc++, but
Thanks for pointing out that --enable-fully-dynamic-string issue. It's not actually the case that you think (incompatibility with the host). The problem seems to be that some of MacPorts' gcc compilers have been built with --enable-fully-dynamic-string and others haven't. gcc44 and gcc45 are built with --enable-fully-dynamic-string and gcc46, gcc47, and gcc48 aren't, so gcc44 and gcc45 aren't compatible with the libstdcxx that is built from gcc47 because of this difference.
I think we should try having users experiencing issues with octave-devel using gcc44 and gcc45 rebuild the compiler without --enable-fully-dynamic-string to see if that solves that particular issue...
More information about the macports-dev
mailing list