[gccsdk] C++ exceptions not working with GCCSDK 4.7
leenoar at sky.com
Fri Aug 29 10:08:34 PDT 2014
On 29/08/14 13:02, Alan Buckley wrote:
>> Lee Noar wrote on Thursday, August 28, 2014 6:41 PM:
> On 18/08/14 08:44, alan buckley wrote:
>> > On Sat, 16 Aug 2014 14:25:24 +0100 Lee Noar wrote:
>> > On 15/08/14 14:59, Alan Buckley wrote:
>> > > I seem to be having a problem with programs not catching C++
>> > > when compiled with GCCSDK 4.7.
>> Turned out to be a 26/32bit problem, hence why it works in RISC OS 5,
>> but not 4. The PSR bits were being interpreted as part of an address
>> when searching for exception handlers.
>> Should be fixed with r6737.
> It didn't seem to work for me. I may not have rebuilt it correctly though.
> I did:
> svn update
> deleted buildstepsdir/cross-gcc-built
> Is there anything else I should do?
I think you may also have to delete buildstepsdir/src-gcc-copied to
force the patches to be reapplied.
You don't usually need to do install-env if you've already got a
previous build, but you do need to 'make install' after make to copy
all the components to '~/gccsdk/cross'.
> I got new gcc and g++ files where I excepted them
The changed components are libstdc++ and libgcc. For statically built
programs, you'll have to relink with these libraries to benefit from
the fixes. For dynamically linked programs, the libstdc++ and libgcc
shared libraries should be copied to '!SharedLibs.lib.abi-2.0' on the
RISC OS side.
> and the output from the version commands was:
> ~/gccsdk/cross/bin/arm-unknown-riscos-g++ --version
> arm-unknown-riscos-g++ (GCCSDK GCC 4.7.4 Release 1 Development) 4.7.4
> 20140527 (
> prerelease) [gcc-4_7-branch revision 210956]
> Copyright (C) 2012 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I was going to say that I would expect to see a more recent date than
20140527, but having tried the same here, I don't get a date at all.
Even so, I think you're still looking at the old versions here;
'make install' should fix that.
More information about the gcc