Date: Sun, 7 Aug 94 10:46:10 -0400 From: dj AT ctron DOT com (DJ Delorie) To: djgpp-announce AT sun DOT soe DOT clarkson DOT edu Subject: djgpp 1.12 is on it's way Well, after a week of network and modem difficutlies, 1.12 is finally on it's way to simtel. Official announcements will be posted to simtel's usual mailing lists and newsgroups when it's finally available in oak.oakland.edu:pub/msdos/djgpp. Attached is new112.doc. The only remaining known bug is one that came up after I started the transfer sequence, which has to do with movedata() not masking off the high four bits of _go32_info_block.linear_address_of_transfer_buffer like dosmem*() does. Oh well, you can't win them all. DJ -- 1.12 happened mostly to reduce the overhead of maintaining and installing 1.11's maintainence releases. There is new functionality as well. Note that the new command-line quote handler will not be used with programs using old stubs. Your programs will still work the way they used to work. The new stub passes an extra parameter to go32 that allows go32 to properly parse the command line in a more unix-like way. To switch to a new stub, use "exe2coff prog.exe" and then "coff2exe prog". Also note that the keepmem value in the stubinfo structure is now used by go32 to reduce paging when spawning when not in DPMI mode. Gcc and make are set to not swap when they use less than 1M of extended or expanded memory. DOS memory is still swapped out, but this is usually only around 24K. djgpp 1.12 no longer contains Info-Zip's sources, since Info-Zip distributes djgpp binaries of their programs already. djgpp.env: new file; contains environment docs/djgpp/libc*: switch to more maintainable format docs/djgpp/makefile: new, builds info files from sources docs/djgpp/makeref.cc: new, program to build texinfo files docs/djgpp/overview.tex: new, common library overview docs/djgpp/readme.doc: explain environment go32/control.c: load environment from file go32/control.c: switch to unix-style globbing go32/control.c: handle 1r2 and 2r1 at the file level with dup2 go32/control.c: don't copy environment variables that don't have `=' in them. go32/dalloc.c: write helpful message to first block of paging file (type pgXXXXXX.tmp gives info) go32/dpmi.c: fixed bug in stack switching that caused had NT to break go32/exphdlr.c: generic ints (no pointers) don't modify top 16 bits of esi/edi go32/exphdlr.c: set *stat() blocksize to 4096 in all cases go32/exphdlr.c: remove 1r2 and 2r1 handling (now in control.c) go32/exphdlr.c: return djgpp EEXIST (36) for dos EEXIST (35) in turbo_assist(). go32/exphdlr.c: clear EOF flag in _openfd[] on lseek go32/exphdlr.c: allow DPMI calls 0x060* and 0x070*. They don't actually do anything, though. go32/glob.[ch]: new file; common command-line and environment handling (gcc-rm.exe uses it also) go32/mswitch.asm: optimized TSS flag setting in _go32() go32/paging.c: if we've allocated less 32-bit memory than stub says, don't page out on spawn go32/stubinfo.h: change rev to 1.12 go32/tables.asm: optimized ivec table size go32/tables.asm: REMOVED entry for exception 17. That's the BIOS equipment call. include/bios.h: add new functions include/ctype.h: don't include stdio.h include/errno.h: add EFAULT include/fnmatch.h: new (POSIX.2) taken from unistd.h and std.h include/locale.h: minimal locale support include/stddef.h: set NULL to 0 not (void *)0 include/stdio.h: clean up include/stdio.h: define FILENAME_MAX, FOPEN_MAX, and TMP_MAX include/stdlib.h: minimal locale support include/sys/signal.h: add SIGUSR1 and SIGUSR2 include/sys/time.h: add gettimeofday prototype libsrc/c/bios/bioscom.c: new libsrc/c/bios/biosdisk.c: new libsrc/c/bios/biostime.c: new libsrc/c/io/doprnt.c: minimal locale support libsrc/c/locale/*.*: minimal locale support libsrc/c/maketmpl: minimal locale support libsrc/c/dos/dir.c: readdir() doesn't change errno at end of list libsrc/c/dos/fnsplit.c: handle both slashes properly libsrc/c/gen/fixpath.c: reduce file to what DOS sees (fixes stat problem) libsrc/c/gen/fnmatch.c: change return value to be POSIX.2 compliant libsrc/c/io/popen.c: allow "rb" and "wb" modes libsrc/c/lib/itoa.c: new file for itoa() libsrc/c/lib/malloc.c: initialize final op->ov_next in morecore libsrc/c/sys/disable.c: return previos interrupt status libsrc/c/sys/enable.c: return previos interrupt status libsrc/c/sys/gettimeo*.*: handle minwest and DST flags libsrc/c/sys/mkdir.s: return EEXIST instead of EACCESS libsrc/c/sys/stat.s: set blocksize to 4096 in remaining cases libsrc/c/sys/unlink.s: remove file even if read-only (posix compatible) libsrc/c/sys/utime.c: handle years before 1980 libsrc/m/src/tan.s: prevent underflow on exception libsrc/m/src/tanh.s: prevent overflow or underflow utils/djtarx.c: always make sure directories are created utils/echo.c: allow "-o " and "-a " for makefiles -- About Globbing -- Command line expansion now understand wildcards like */*.[ch]. See the libc.a info page of fnmatch() for details. Also, quoting has been fixed but if your application uses a pre-1.12 stub, you won't see the fixes. -- About Environments -- If you set the DJGPP environment variable to point to a file, that file will be used to load the environment. See the file docs/djgpp/readme.doc for more details. -- About documentation -- The texinfo files in docs/djgpp have been restructured to be more maintainable. Please be sure to include documentation changes for any library changes you submit for djgpp. The files you should change are the two-letter files in the library-named subdirectory off docs/djgpp. Use the file that matches the first two characters of the function name (stripping any leading underscores). The @node lines are reformatted by the scanner; you should type in the node name and the functional group name. Entries are automatically sorted alphabetically.