[gccsdk] C++ exceptions not working with GCCSDK 4.7

Lee Noar 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++
>> exceptions
>>  > > when compiled with GCCSDK 4.7.
>>  >
> [snip]
>
>> 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
>    make
>    ./install-env
>
> 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.

Lee.





More information about the gcc mailing list