[Freedos-kernel] Use of DJGPP under FreeDOS
Some time ago I submitted am error report for DOSEMU about problems running DJGPP port of GNU SED from configure scripts http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447 and also tracker for FreeDOS. It took me some time to build working FreeDOS kernel from CVS sources under DosEMU-1.4.0. The problem when GNU SED writes output file up to 2GB (when DOSEMU quits) now seems to be fixed. There is however another problems. touch.exe (from DJGPP fileutils) fails with an error message: touch: setting times of `foo': Input or output error (EIO) I don't however know whether it is a problem of FreeDOS kernel or one of it's interaction with DOSEMU-1.4.0. Andris - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ Freedos-kernel mailing list Freedos-kernel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Use of DJGPP under FreeDOS
Hi Andris, I think Bart Oldeman recently fixed the GNU SED problem... Some time ago I submitted am error report for DOSEMU about problems running DJGPP port of GNU SED from configure scripts http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447 and also tracker for FreeDOS. It took me some time to build working FreeDOS kernel from CVS sources under DosEMU-1.4.0. Do you want to say that the CVS sources have a bug in the build scripts and you had to repair them first? Please explain. The problem when GNU SED writes output file up to 2GB (when DOSEMU quits) now seems to be fixed. I assume this is due to the fix by Bart :-). So does the old kernel www.coli.uni-saarland.de/~eric/stuff/soft/by-others/kernel2036-binary.zip have the SED problem and the CVS one fixes it? Please compare. touch.exe (from DJGPP fileutils) fails with an error message: touch: setting times of `foo': Input or output error (EIO) Please compare two cases: A Linux directory simulating a drive in DOSEMU and a diskimage simulating a drive in DOSEMU. There might also be a long file name problem, try $_lfn_support=(0) in your DOSEMU configuration file, and try touch FOO instead of touch foo... :-). Thanks! Eric - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ Freedos-kernel mailing list Freedos-kernel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Use of DJGPP under FreeDOS
Eric Auer wrote: Hi Andris, I think Bart Oldeman recently fixed the GNU SED problem... Some time ago I submitted am error report for DOSEMU about problems running DJGPP port of GNU SED from configure scripts http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447 and also tracker for FreeDOS. It took me some time to build working FreeDOS kernel from CVS sources under DosEMU-1.4.0. Do you want to say that the CVS sources have a bug in the build scripts and you had to repair them first? Please explain. kernel/int2f.asm generates reference to _nlsInfo which remains unresolved. I had to rename it to NLSINFO there for linker to succeed. 2007/05/01 CVS version did not compiled out of box. So this problem has appeared after that. The problem when GNU SED writes output file up to 2GB (when DOSEMU quits) now seems to be fixed. I assume this is due to the fix by Bart :-). So does the old kernel www.coli.uni-saarland.de/~eric/stuff/soft/by-others/kernel2036-binary.zip have the SED problem and the CVS one fixes it? Please compare. Yes, it is fixed between May 1st and current CVS versions. touch.exe (from DJGPP fileutils) fails with an error message: touch: setting times of `foo': Input or output error (EIO) Please compare two cases: A Linux directory simulating a drive in DOSEMU and a diskimage simulating a drive in DOSEMU. There might also be a long file name problem, try $_lfn_support=(0) in your DOSEMU configuration file, and try touch FOO instead of touch foo... :-). Thanks! Without LFN there is not such problem. I am however I myself am interested only on system which support LFN. 'touch FOO' fails in exactly the same way. As far as debugging showed it is DJGPP's utime() (or more exactly DOS Fn 0x5705, which fails). I'm going to test under VMWare Server-1.0.2. It is perhaps more clean environment rather than DOSEMU in case when Linux directory is used for simulating drive. I'm not going however to install FreeDOS in real partition on HDD. Andris - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ Freedos-kernel mailing list Freedos-kernel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Use of DJGPP under FreeDOS
Andris Pavenis wrote: Eric Auer wrote: Hi Andris, I think Bart Oldeman recently fixed the GNU SED problem... Some time ago I submitted am error report for DOSEMU about problems running DJGPP port of GNU SED from configure scripts http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447 and also tracker for FreeDOS. It took me some time to build working FreeDOS kernel from CVS sources under DosEMU-1.4.0. Do you want to say that the CVS sources have a bug in the build scripts and you had to repair them first? Please explain. kernel/int2f.asm generates reference to _nlsInfo which remains unresolved. I had to rename it to NLSINFO there for linker to succeed. 2007/05/01 CVS version did not compiled out of box. So this problem Sorry, I though 'did compile out of box' ... has appeared after that. - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ Freedos-kernel mailing list Freedos-kernel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Use of DJGPP under FreeDOS
On 6/3/07, Andris Pavenis [EMAIL PROTECTED] wrote: kernel/int2f.asm generates reference to _nlsInfo which remains unresolved. I had to rename it to NLSINFO there for linker to succeed. 2007/05/01 CVS version did not compiled out of box. So this problem has appeared after that. This problem was fixed in SVN last weekend, not in CVS anymore. It only happens with Borland compilers though, not with Open Watcom, which is why it was there unnoticed. Without LFN there is not such problem. I am however I myself am interested only on system which support LFN. 'touch FOO' fails in exactly the same way. As far as debugging showed it is DJGPP's utime() (or more exactly DOS Fn 0x5705, which fails). Yes exactly, it is DOSEMU not implementing 0x5705 (and al=4,6,7). So last time you reported the GNU sed bug at the wrong place, and now this bug again :) Anyway, I attached a quick dirty DOSEMU patch (probably applies to all fairly recent sources incl 1.4.0) that works around it. It does not actually modify the access time (that is more work, as DOSEMU will need to get code to associate the DOS handle with an SFT, and then look up an index into a file descriptor array in that SFT if DOSEMU owns it; I'll do that later) -- it just pretends the call succeeds. Bart Index: src/dosext/mfs/lfn.c === --- src/dosext/mfs/lfn.c (revision 1815) +++ src/dosext/mfs/lfn.c (working copy) @@ -803,6 +803,18 @@ d_printf(LFN: doing LFN!, AX=%x DL=%x\n, _AX, _DL); NOCARRY; + + if (_AH == 0x57) { + switch (_AL) { + case 0x04: + case 0x05: + case 0x06: + case 0x07: + return 1; + } + return 0; + } + /* else _AH == 0x71 */ switch (_AL) { case 0x0D: /* reset drive, nothing to do */ break; Index: src/base/async/int.c === --- src/base/async/int.c (revision 1819) +++ src/base/async/int.c (working copy) @@ -1143,7 +1143,7 @@ static int int21lfnhook(void) { - if (HI(ax) != 0x71 || !mfs_lfn()) + if (!(HI(ax) == 0x71 || HI(ax) == 0x57) || !mfs_lfn()) fake_int_to(int21seg, int21off); return 1; } - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/___ Freedos-kernel mailing list Freedos-kernel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-kernel