On Wed, Feb 08, 2006 at 05:21:38PM +0100, Richard Atterer wrote: > Some more info: > > I went through the whole libstdc++ build process before coming up with my > patch. IIRC, some configure tests are not executed when cross-compiling, > which results in something like __USE_LARGEFILE64 and friends (or similar, > I don't remember the details) not being set up correctly.
Obviously you can't test for runtime features on the host when you are cross compiling. That isn't an easy problem to solve if there is no static test that would be equivalent. And libstdc++ itself building ok is no guarantee that any of its functions will actually work when called. If you don't call them you will never know. > It's true that the native build does not define _GLIBCXX_USE_LFS. ISTR > the reason I chose it was that with it, all the "dependent" defines like > __USE_LARGEFILE64 were set up by the libstdc++ header files. I'm guessing you are talking about _LARGEFILE{,64}_SOURCE -- which seems to have some mentions in a couple of places, but grep doesn't seem to find it in much code... > Unfortunately, it's been a while and I will have to go through the build > process again to find an alternative solution. I don't think going through the build process is going to help you. You are going to need to use the Source. Since _GLIBCXX_USE_LFS isn't used in very many places either -- and if you look at them, you'll probably see that in most places, the required code for billware is entirely absent and there are no magic guards marking all the places it might need to be. So your mission, should you choose to accept it, would seem to be: a) Identify all the code paths affected by this change, b) Write portable test cases that exercise them to prove your changes and guard against regressions (if they don't already exist in the gcc test suite). c) Fix the code for mingw (and/or gcc ;) that breaks the test cases. If you were to "prod" upstream with a report on that work you might have a bit more luck at catching their attention to incorporate it. Reproducible results are much better than a blank claim that something is "fully tested". And if you leave half that work for someone else to do, then you'll have to be patient while they find time to do the rest. But every little bit helps if it builds a better picture for the next player. I don't think there is a magic bullet here which will let us just turn this on with the flip of a switch. I don't know why your native billware "works", perhaps that version has better posix emulation or something, because at a quick glance, it looks to me like there is glue missing if you need to call the functions that Danny pointed at. Someone will have to implement (most of the rest of) that. It looks like someone made a start, then left it disabled behind _GLIBCXX_USE_LFS && __MINGW__. hth get you a bit further. best, Ron -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]