DJGPP gpp 4.4.1 and 4.4.2 fail under dosemu 1.4.0+svn.1828-2ubuntu2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dosemu (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: dosemu
Trying to compile a trivial hello world C++ program using DJGPP's gpp (g++) version 4.4.1 or 4.4.2 fails under dosemu 1.4.0+svn.
The issue is not reproducible with svn r. 1998, so it was probably fixed upstream already.
Maybe it has to do with the CPU emu used by DOSEMU on x86_86?
Release: Ubuntu 9.10 karmic
Package: 1.4.0+svn.
CPU: Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz
kernel: Linux 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 17:01:44 UTC 2009 x86_64 GNU/Linux
To trigger the bug: Install DJGPP with GPP 4.4.2 or 4.4.1 (you only need bnu219b.zip djdev203.zip gcc442b.zip gpp442b.zip), set up DJGPP environment as mentioned in DJGPP readme. Create a simple C++ source -- including iostream is enough:
#incluide <iostream>
Then try to compile it inside DOSEMU: gpp test.cc
You get a host of complaints about stdlib headers:
In file included from c:/djgpp/
c:/djgpp/
...
but the issue is not really caused by the headers, because:
1) it works with different versions of DOSEMU (e.g. DOSEMU svn rev. 1998) and the same version of DJGPP GPP
2) if you add an "#error blah" somewhere to the top of include/
I tracked the issue down in the upstream svn. It was fixed in change 1897. The log entry says:
r1897 | bartoldeman | 2009-07-12 23:44:28 +0200 | 3 lines src/dosext/ mfs/mangle. c src/dosext/ mfs/mangle. h
Changed paths:
M /trunk/
M /trunk/
Use a base-43 instead of a base-36 hash, like Samba does since version 2.0.4.
This reduces the collision chance by a factor 1.43.
Not sure how is this change relevant, but I was able to reproduce the bug in revisions <= 1896, while the bug doesn't manifest in revisions >= 1897.