Tuesday, 2 September 2014

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

Lee Noar wrote on Friday, August 29, 2014 6:08 PM:

> 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.

Thanks Lee, deleting src-gcc-copied and cross-gcc-make and redoing make
fixed the problem. make install didn't seem to do anything, but the file
dates looked OK without it.

I get the same output from g++ --version. I suspect these details must be
set by a different stage that I didn't need to rebuild.

Thanks,
Alan


_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

No comments:

Post a Comment