[gccsdk] [Bug 208] Stack trace running !PDF after building with HEAD revision of GCCSDK
bugzilla-daemon at riscos.info
bugzilla-daemon at riscos.info
Sun Jun 27 03:24:49 PDT 2010
http://www.riscos.info/bugzilla3/show_bug.cgi?id=208
John Tytgat <John.Tytgat at aaug.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
--- Comment #3 from John Tytgat <John.Tytgat at aaug.net> 2010-06-27 03:24:48 ---
The -O2 optimization was the detail I was missing in order to reproduce this.
The test case can be further minimized to:
--8<--
#include <fstream>
#include <cassert>
static char buf[128];
int
main(int argc, char *argv[])
{
assert(argc == 2);
std::ifstream in(argv[1]);
assert(!!in);
in.getline(buf, sizeof(buf));
return 0;
}
--8<--
The cause of this problem is not one of the very recent changes (like r4656 -
Lee's arm_leaf_function_p() change, nor r4657/r4658 - static object
initialisation/finalisation routine rework, nor r4659 - my recent cleanup of
our ARM target patches), but adding the support for C++ & SCL.
The issue is that libstdc++-v3 only has one set of config files (inside
include/arm-unknown-riscos/bits) describing the target's support for threads,
math, etc. And thread support is different between UnixLib and SCL runtime
library so at compile time can be have a mismatch between what the libstdc++-v3
headers are saying and the multilib built binary we're using for linking.
So it looks like we have to teach the libstdc++-v3 headers to be multilib aware
(and gcc to make use of this).
--
Configure bugmail: http://www.riscos.info/bugzilla3/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the gcc
mailing list