[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] Gcc 3.3.6 v 4.0.1



Vincent Rivière wrote:
Mark Duckworth wrote:
I'm stuck on gmp right now. We can get past it by disabling gmp's use of obstack_vprintf

I tried to cross-build libgmp with my latest GCC 4.3.3 on Cygwin, it has built fine. I have tricked the Makefiles to cross-build the tests (without running them), then I ran them on ARAnyM. (I don't know why but the C++ tests don't seem to have been built).

Most of the test have passed without intervention.
I had to adjust the stack for three of them:
stack -S 256K t-fdiv
stack -S 256K t-tdiv
stack -S 256K reuse
After that, they ran fine.

Then I went to the t-printf test.
I guess I got the same output as you:
gmp_obstack_vprintf wrong
  fmt      |%Md|
  got      ||
  want     |0|
  got_len  -1
  ob_len   0
  want_len 1

The test calls gmp_obstack_vprintf(), then it turns to call the MiNTLib in obstack_vprintf() then vprintf().

vfprintf() returns -1, it means failure.
Look at the MiNTLib sources at mintlib/stdio/vfprintf.c
http://sparemint.org/cgi-bin/cvsweb/mintlib/stdio/vfprintf.c?rev=1.5

That source is quite horrible and not debugger friendly :-(
It seems that it fails very soon due to the macro ARGCHECK() (maybe because a bad FILE status ??)

So maybe gmp tries to use an unsupported feature of the MiNTLib, or there is a bug in the MiNTLib, or something totally different.

But I'm too tired for continuing now.

LOL,

I didn't even manage to trace it into the mintlib. It seemed to be failing for me during gmp_allocate() which calls malloc(). It sounds more likely though that you're on the right track moreso than I was. I am not an expert debugger of this stuff ;)

Thanks,
Makr