Message-Id: <202003102022.02AKMQT1004791@delorie.com> Date: Tue, 10 Mar 2020 21:15:24 +0100 From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: Bug fix update of some DJGPP ports uploaded. Content-Type: text/plain; charset=ISO-8859-15; format=flowed Reply-To: djgpp AT delorie DOT com Lately I have observed that it is impossible to configure and compile GNU packages on plain DOS. With plain DOS I mean MS-DOS 6.22 and minor versions and FreeDOS; both with and without DOSLFN as LFN driver. The reason for this is a bug in utime introduced with the support to change also the access time of a file. It is tried to change the access time after having succesfully changed the creation time of the file. On plain DOS changing the access time is not possible thus programs like sed, touch, tar and others fail with an error like EIO or similar although the creation time has successfully been changed. If the calling context of these programs, like a configure script or a makefile, honor the return code of them then those programs make the scripts or makefile abort. I have fixed the issue by checking the OS type and the OS version before executing the code segment that tries to change the acces time of the file. The access time is now only changed for OS of the type NTVDM and MSDOS 7.NN but never for FreeDOS nor MS-DOS 6.22 or minor versions no matter if a LFN driver is loaded or not. At least DOSLFN 0.41c does not provide function 0x5705 and thus it is pointless to try to change access time of files when LFN support is available. With this change, utime works again for plain DOS as it has done in DJGPP 2.03. I have commited this fix a in the middle of january into the DJGPP repository and rebuild some programs. With these new versions of the programs I was able to configure and build them on MS-DOS 6.22. This was impossible before. There may be some more plain DOS issues introduced with the implementation of LFN and NTVDM support. I will try to fix them without breaking neither LFN nor NTVDM support as soon as I discover them. There may also be more programs that use utime and that may not work correctly on plain DOS. I will recompile them when they pop-up with such an issue. Even with this fix there is no guarantee at all that it may be possible to build major GNU packages like gcc or others on plain DOS. Because the previous versions of these ports must be considered as broken I have deleted them and replaced by these new ones. BTW, sed and make have already been compiled with the fixed version of the library by using the CVS repository code. The following ports have been produced using djdev205 (CVS repository code) and can be downloaded from ftp.delorie.com and mirrors as (time stamp 2020-01-16): GNU tar 1.12a binary, info amd man format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/fil41br3.zip GNU fileutils 4.1 binary, info amd man format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/fil41br3.zip GNU textutils 2.0 binary, info amd man documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/txt20br3.zip GNU shellutils 2.0.11 binary, info amd man documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/shl2011br3.zip GNU Bash 4.1.17 binary, info and man format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4117br3.zip Enjoy. Guerrero, Juan Manuel