Bug#306210: acknowledged by developer (libstdc++: Big file support not working with Debian mingw32 package (OK with upstream native binaries))

2006-02-24 Thread Ron
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.

Would you like to hear the most amusing irony about this that I've seen
to date?

While poking about to fix some different problems, I just happened to
notice that upstream DID apply your patch to the current release.

I guess you should update the other reports to concur that it in fact
does not work for you either...  ;-)




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#306210: acknowledged by developer (libstdc++: Big file support not working with Debian mingw32 package (OK with upstream native binaries))

2006-02-24 Thread Richard Atterer
On Sat, Feb 25, 2006 at 01:04:32AM +1030, Ron wrote:
 Would you like to hear the most amusing irony about this that I've seen
 to date?

 While poking about to fix some different problems, I just happened to
 notice that upstream DID apply your patch to the current release.

Whoa, interesting!
I tested your mingw32 3.4.5.20060117.1-1 package without success - was this
built using the current release you refer to?? If yes, I will have to 
check once more where the problem is.

 I guess you should update the other reports to concur that it in fact
 does not work for you either...  ;-)

My patch works with mingw32 3.4.2.20040916.1-2 - does the timestamp in the
version number refer to the GCC release? A lot can happen in 1.5 years. :-|

Cheers,

  Richard

-- 
  __   _
  |_) /|  Richard Atterer
  | \/¯|  http://atterer.net
  ¯ '` ¯



Bug#306210: acknowledged by developer (libstdc++: Big file support not working with Debian mingw32 package (OK with upstream native binaries))

2006-02-08 Thread Ron
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]



Bug#306210: acknowledged by developer (libstdc++: Big file support not working with Debian mingw32 package (OK with upstream native binaries))

2006-02-07 Thread Richard Atterer
reopen 306210
thanks

On Fri, Feb 03, 2006 at 07:48:53AM -0800, Debian Bug Tracking System wrote:
 I'm going to tentatively close this bug in the belief that it
 is fixed in the current unstable packages.

I'm sorry, I've just tested it and it still doesn't work. :-/ I compiled my 
example program using mingw 3.4.5.20060117.1-1, mingw32-binutils 
2.16.91-20060119.1-1 and mingw32-runtime 3.9-3, then ran it on an NTFS 
partition on a Windows XP system.

The program wrote 4294963200 bytes of data (that's 0xF000), then exited 
with:
-1
strerror: no space left on device

Did you actually apply my patch? Unfortunately, upstream seems to ignore my 
bug report (no followups on
http://sourceforge.net/tracker/index.php?func=detailaid=1235337group_id=2435atid=102435),
maybe you could prod them about it?

BTW, this bug should probably be reassigned to mingw and not libstdc++, 
because according to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22388#c3 
the respective bug is in mingw-specific modifications to the standard 
libstdc++.

 The test case you posted, when run under wine, writes out a file
 of 4294971402 bytes -- and though the output there is still not
 correct

I don't think wine is a good test platform for this kind of thing. :-/

Cheers,

  Richard

-- 
  __   _
  |_) /|  Richard Atterer |  GnuPG key: 0x888354F7
  | \/¯|  http://atterer.net  |  08A9 7B7D 3D13 3EF2 3D25  D157 79E6 F6DC 8883 
54F7
  ¯ '` ¯



Bug#306210: acknowledged by developer (libstdc++: Big file support not working with Debian mingw32 package (OK with upstream native binaries))

2006-02-07 Thread Ron
forwarded 306210 
http://sourceforge.net/tracker/index.php?func=detailaid=1235337group_id=2435atid=102435
thanks

On Tue, Feb 07, 2006 at 11:49:26AM +0100, Richard Atterer wrote:
 I'm sorry, I've just tested it and it still doesn't work. :-/ I compiled my 
 example program using mingw 3.4.5.20060117.1-1, mingw32-binutils 
 2.16.91-20060119.1-1 and mingw32-runtime 3.9-3, then ran it on an NTFS 
 partition on a Windows XP system.
 
 The program wrote 4294963200 bytes of data (that's 0xF000), then exited 
 with:
 -1
 strerror: no space left on device

Gack.  Ok, I figured wine was right with either one or the other.
The file (size) written must have been a figment of its imagination.

 Did you actually apply my patch?

No.  You also filed it upstream, so I deferred it to whatever their
solution would be.  I was running a bunch of test cases on the new
release, including yours -- which wasn't clear whether it succeeded
or failed.  I figured you'd get the memo and if need be, we'd reopen,
lather, repeat, as required.  Like this ;-)

 Unfortunately, upstream seems to ignore my 
 bug report (no followups on
 http://sourceforge.net/tracker/index.php?func=detailaid=1235337group_id=2435atid=102435),
 maybe you could prod them about it?

I've got a couple of other bugs on the roll there for w32api,
I'll see what I can learn.

 BTW, this bug should probably be reassigned to mingw and not libstdc++, 
 because according to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22388#c3 
 the respective bug is in mingw-specific modifications to the standard 
 libstdc++.

How many places did you spray this report?  Looking at this one
you just answered your own question (and mine) from above:
(thanks ;-)

 --- Comment #1 From Danny Smith  2005-07-09 23:11  [reply] ---

 mingw runtime does not have struct stat64 or fstat64(), so this define
 is not correct.  In fact the native build of libstdc++ fails the
 _GLIBCXX_USE_LFS configure test. 

 (mingwt does have struct _stati64 and _fstati64() which would work in 
 __basic_filechar::showmanyc)

 Danny 


Which doesn't look to me like ignoring it at all.  He simply claims
it is wrong.  Which fairly simply convinces me not to apply it.
Did you ask him about what the correct solution might be?
Proof by Works For Me is not sufficient here.  I think the onus
to learn more is back on you in the light of this...

  The test case you posted, when run under wine, writes out a file
  of 4294971402 bytes -- and though the output there is still not
  correct
 
 I don't think wine is a good test platform for this kind of thing. :-/

No.  But it is all I have in front of me.  And its been a reasonable
bet that things which _do_ work properly on it, also work ok elsewhere.
In this case, it seems (postmortem) to have more or less done the right
thing on both sides of the fence (written a large file to linux, and
failed to read it in the (PE) process).  I needed someone to cross check
that to put the result I had in perspective.

Sorry its still not fixed -- but I think you are going to have to
look a bit harder for a more suitable fix.  I'm pretty sure Danny
might know about some code paths you haven't chosen to look down
yet, so if he has doubts, I certainly share them.  To convince me,
you'll have to convince him.

I'm going to mark this one forwarded, Danny appears to have taken
responsibility for it and left it open, so I can only assume he
plans to fix it properly some day when he has time.  The best way
to accelerate that is probably ask what needs to be done and promptly
do it.  Prodding busy people doesn't make them go faster.  But giving
them what they need, when they need it, clearly does.

Thanks!
Ron

 (who'll probably otherwise keep pinging you on the status of
  new uploads while wine is indecisive  ...)



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]