Category : C Source Code
Archive   : EMXDEV8C.ZIP
Filename : HISTORY.DOC

 
Output of file : HISTORY.DOC contained in archive : EMXDEV8C.ZIP
===============================================================================
history.doc emx 0.8c HISTORY 08-Apr-1992
===============================================================================

0.8c (19-Mar-1992)
==================

Important notes
---------------

- *** YOU SHOULD RECOMPILE ALL YOUR PROGRAMS ***
because the header files and the library have changed. If you can't
recompile a program (due to lacking sources, for instance), use

emxbind -u \emx\bin\emxl myprog

to update emx in the .exe file.

*** DO NOT RELINK A PROGRAM WITHOUT RECOMPILING ALL ITS MODULES ***
As several definitions in stdio.h and fcntl.h have been changed, just
linking with the new library without compiling with the new include
files won't work. Really. We apologize for the inconvenience.


emx
---

- The -f# option will be removed for emx 0.8d, better recompile *now*
programs which require -f#.

- New emx option -h# to set the number of file handles.

- New emx option -c to disable core dumps caused by signals.

- The -r emx option is not applied if the file name starts with /pipe/.

- Signal numbers reassigned

- System calls added: __ftruncate(), __fcntl(), __pipe()

- Message for SIGABRT changed. Return code for default processing of signals
under OS/2 changed to 3.

- termio: ICANON and IDEFAULT moved from c_iflag to c_lflag.

- termio: IDELETE.

- _ulimit3() system call replaced with __ulimit() system call.

- emx.dll: __ptrace(8) improved, this improves the behaviour of gdb when
the debugee terminates.

- emx.dll: __ptrace(9) no longer steps into emx_syscall of emx.dll.

- __dup() syscall implemented for OS/2.

- __fsync() syscall implemented for OS/2.

- __scrsize() syscall implemented (not yet implemented correctly for MS-DOS).

- __dup2(n,n) fixed for MS-DOS: don't close the file.

- __spawnve(): maximum size of arguments increased to 4096, E2BIG is returned
if the limit is exceeded.

- __spawnve(): if P_DEBUG is used, the child process will be started in a
separate session unless the -E option is used

- __ioctl2(): FIONREAD, TCFLSH, TCSETAF

- __ptrace(): PTRACE_SESSION

- The following signals now cause a core dump unless catched or ignored:
SIGQUIT, SIGILL, SIGTRAP, SIGEMT, SIGFPE, SIGBUS, SIGSEGV and SIGSYS.

- emx under MS-DOS now uses BIOS instead of DOS calls for termio.


emxbind
-------

- emxbind: -e and -u commands added (set application type, update emx).

- emxbind: -f, -p and -w options added (application type).

- emxbind: -r option added (add resources).

- emxbind now sets the "no internal fixups" module flag.


gcc
---

- gcc 2.1

- gcc now requires a math coprocessor (80387).

- gcc: temporary files are created in the current working directory if
TMPDIR is not set. TMPDIR may end with a backslash.

- Stack probes implemented in gcc. -mprobe enables stack probes, -mnoprobe
disables stack probes. By default, stack probes are enabled. Programs
compiled with -mprobe can be used with the -f0 emx option.

- gcc fixed: -B was ignored; PATH was used for seeking cpp, cc1, as and ld.
Older versions of emx didn't use .exe files, therefore .exe wasn't
appended in gcc.c when seeking a program.


gas
---

- gas 1.38.1

- gas: signal problem fixed.

- makebin: gas argument replaced with as.


gdb
---

- gdb 4.4.

- gdb no longer adds the .exe default extension.

- The debuggee is now started in a separate session.

- "set switch" and "show switch" commands added.

- gdb now can debug Presentation Manager applications.


Header files and C library
--------------------------

- Type of count parameter for memcpy etc. and return value of strlen changed
from int to size_t.

- size_t changed from "unsigned int" to "unsigned long".

- bcmp, bcopy, bzero, memcmp, memcpy, memmove, memset, strcat, strcpy and
strlen coded in assembly language.

- Number of streams increased from 20 to 40.

- open() didn't return EMFILE if the operating system ran out of file
handles.

- chmod() didn't return 0 on success.

- closedir() now returns an int.

- div() and ldiv() now perform a signed division.

- Bug in exp() fixed.

- Bug in utime() fixed.

- Return value of acos() now between 0 and pi (was: -pi/2 and pi/2).

- putenv() return value fixed.

- abort() declared volatile.

- sscanf() whitespace bug fixed.

- printf ("%%") bug fixed.

- struct _dtd (sys/emx.h) changed to include hundredths of a second.

- float.h now available (it's somewhat inaccurate because printf() and
strtod() are somewhat incaccurate).

- unistd.h now available (well, some bits of it).

- Signal numbers reassigned, SIGEMT declared.

- I/O flag bits reassigned (see stdio.h, sys/fcntl.h, sys/emx.h).

- Link with /emx/lib/binmode.o for setting the default open mode to binary.

- Some helper functions moved from libc.a (crt0.s) to libgcc.a.

- __main() put into libgcc.a for gcc 2.x. Currently, this function does
nothing as C++ is not yet supported.

- Obsolete functions removed from C library and include files: prtc(),
prti(), prts(). Test programs changed to not use these functions.

- _exit(): The return code will be replaced with 255 if it is greater than
255.

- exit() now uses _cleanup().

- abort() now uses _cleanup() and "raise (SIGABRT)".

- fcntl() now exists, F_GETFL and F_SETFL partially implemented (O_APPEND
should work, O_NDELAY is implemented for termio). F_GETFD and F_SETFD
implemented for OS/2 only.

- ioctl(): FIONREAD implemented for handle 0 if IDEFAULT and ICANON are
not set.

- ioctl(): TCFLSH implemented for the keyboard.

- ioctl(): TCSETAF now flushes the keyboard buffer.

- termio: ICANON and IDEFAULT moved from c_iflag to c_lflag.

- termio: IDELETE in c_iflag.

- getcwd() return value fixed.

- sys/emx.h now included.

- _seek_hdr() and _fseek_hdr() now work relative to the current position
of the file pointer.

- scanf(): %X implemented.

- MAXNAMLEN and MAXPATHLEN changed to 260.

- P_tmpdir in stdio.h changed to ".". This affects tmpnam(), tempnam() and
tmpfile().

- _ulimit3() system call replaced with __ulimit() system call.

- bsearch() fixed: comparison was reversed.

- stdarg.h improved for types with sizeof(type) < 4. There's still a
problem with float promoted to double.

- varargs.h improved(?).

- The names of all the syscall functions now start with two underscores,
all the syscalls are now interfaced by a library function.

- tempnam() fixed for NULL passed to DIR argument.

- tempnam() fixed for trailing backslash in DIR argument or TMP environment
variable.

- tempnam() now returns an absolute path name.

- Check for emx version in _startup().

- fclose() return value fixed.

- Global variable _osmode (which contains DOS_MODE or OS2_MODE) implemented.

- New library functions: spawnl(), spawnle(), spawnlp() and spawnlpe().

- New library functions: pipe(), pclose() and popen(). Implemented for OS/2,
only.

- New library funtions: _isterm(), _swchar(), _chdir2(), _fullpath(),
_fngetdrive(), _getcwd1(), _getcwd2(), _getdrive(), _memcount(),
_fsetmode(), _scrsize().

- ftime() implemented, see sys/timeb.h. Timezones are still not implemented.

- dup() fixed: copy _files[] entry.

- _ftime() syscall renamed __filetime().

- fopen() fixed: return value.

- eof() fixed: use tell(), not fseek().

- access() fixed: directories accessible, use (mode & 2) instead of
(mode == 2), fix errno values.

- printf ("%04d", -1) fixed, put zeros after sign.


OS/2 API
--------

- OS/2 API calls added: DosFreeModule, DosLoadModule, DosQueryProcAddr,
DosSetFileInfo, DosSetPathInfo, DosQueryPathInfo, DosQueryCurrentDisk,
DosQueryFSAttach, DosQueryDBCSEnv, DosSetProcessCp, DosQueryModuleName,
DosQueryModuleHandle, DosQueryProcType, DosError, DosErrClass, DosDebug.

- OS/2 semaphore API calls added.

- OS/2 tasking API calls added.

- OS/2 named pipe API calls added.

- OS/2 queue API calls added.

- OS/2 exception API calls added.

- OS/2 session manager API calls added.

- Some Presentation Manager calls added.


Sample and test programs
------------------------

- sieve.c fixed: 3rd argument of memset() was wrong.

- /emx/test/makefile updated.

- Obsolete test programs deleted.


Other changes
-------------

- Directory structure changed, all GNU programs are now under /emx/gnu.

- gcc documentation now included (TeX).

- upda.exe now included. This utility is required for building the
C library.

- New utility: updt.exe. Used for building gcc.

- emximp bug fixed: list of libraries wasn't cleared when starting a new
output file.

- emximp: -p command line option.


0.8b (18-Feb-1992)
==================

- See emx.chg for changes to versions older than 0.8b.

--------------------------- END OF HISTORY.DOC ------------------------------


  3 Responses to “Category : C Source Code
Archive   : EMXDEV8C.ZIP
Filename : HISTORY.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/