home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / unix / emx / doc / history.doc < prev    next >
Text File  |  1993-01-03  |  27KB  |  1,073 lines

  1. ===============================================================================
  2. history.doc       emx 0.8f     HISTORY                              03-Jan-1993
  3. ===============================================================================
  4.                                      Copyright (c) 1990-1993 by Eberhard Mattes
  5.  
  6. 0.8f (03-Jan-1993)
  7. ==================
  8.  
  9. Important notes
  10. ---------------
  11.  
  12. - IMPORTANT: You have to rewrite the initialization code of dynamic
  13.   link libraries created with emx: main() has been replaced with
  14.   _DLL_InitTerm()
  15.  
  16. - IMPORTANT: mkdir() now has two arguments.  Before linking, change
  17.   and recompile all modules that use mkdir()
  18.  
  19.  
  20. Highlights
  21. ----------
  22.  
  23. - New versions of GNU programs have been ported: GCC 2.3.3, GDB 4.7
  24.  
  25. - _DLL_InitTerm(), _CRT_init() and _CRT_term() for dynamic link
  26.   libraries
  27.  
  28. - (Awkward) support for calling 16-bit OS/2 API functions
  29.  
  30. - Keyboard (Kbd), Mouse (Mou) and Video (Vio) subsystems can now be
  31.   used under OS/2
  32.  
  33. - A simple graphics library has been added (320x200x256 mode only)
  34.  
  35. - A text-mode video library has been added
  36.  
  37. - Functions for reading and writing extended attributes have been
  38.   added
  39.  
  40.  
  41. emx
  42. ---
  43.  
  44. - New system call for __read_kbd(); some but not all _read_kbd() bugs fixed
  45.  
  46. - New system calls: __sleep2(), __waitpid()
  47.  
  48. - File name truncation (SET EMXOPT=-t) fixed
  49.  
  50.  
  51. emx for OS/2
  52. ------------
  53.  
  54. - emxio.dll: the functions didn't save the EBX register
  55.  
  56. - fork() fixed: fork() didn't work before a call to malloc()
  57.  
  58. - FIONREAD also works if ICANON is set for the handle
  59.  
  60. - _outps8() fixed
  61.  
  62. - _syserrno() now returns the last error code for the current thread
  63.  
  64. - If the size of the stack object is 16 KB or smaller, emx.dll creates
  65.   a new object for the stack and expands the stack as needed using a
  66.   guard page and an exception handler.  (emx.dll 0.8e and older always
  67.   do this, independently of the size of the stack object.)  If the
  68.   size of the stack object is greater than 16 KB, the stack is not
  69.   changed, that is, the stack object is used for the stack.  Programs
  70.   that use emx.dll and are linked with LINK386 and need more stack
  71.   space than declared in the .EXE file and the stack size declared in
  72.   the .EXE file is 16 KB or less, don't work with emx 0.8f and later.
  73.   The default stack size (defined by emxomf) is 8 KB.  Therefore
  74.   programs are unaffected unless they use more stack than declared by
  75.   the STACKSIZE statement or the /STACK option of LINK386 or by the
  76.   .STACK segment in an OBJ file and that stack size is 16 KB or
  77.   smaller.  No real programs should be affected.  Note that the
  78.   (obsolete) Limited Availability release of OS/2 allocates space in
  79.   SWAPPER.DAT for all pages of the stack object.  Therefore, you
  80.   should use a stack size of 16 KB or smaller and the -mprobe option
  81.   of GCC if compatibility to the Limited Availability release of OS/2
  82.   is essential.  If your program uses DosSetPriority and the stack
  83.   size is set to 16 KB or smaller, you have to rename DosSetPriority
  84.   to DosTrueSetPriority in /emx/lib/os2/dos.imp, assemble
  85.   /emx/lib/os2/code1.s, rebuild libos2.a and put code1.o into
  86.   libos2.a.  This is only required if you re-link your program, it
  87.   isn't required for existing executables
  88.  
  89. - An import library for emxio.dll is now available; _outp8() etc. are
  90.   supported when linking with LINK386 or when using emxlibc.dll
  91.  
  92. - longjmp() now works with user-installed exception handlers
  93.  
  94.  
  95. emx for DOS
  96. -----------
  97.  
  98. - New emx option: -ac (data and stack executable)
  99.  
  100. - New emx option: -C# (commit memory)
  101.  
  102. - Bug fixed: -c didn't work
  103.  
  104. - Access to ports 0 through 0xffff can be enabled by _portaccess().
  105.   Previous versions restricted access to ports 0 through 0x3ff
  106.  
  107. - FIONREAD works for all types of handles
  108.  
  109. - select() has been implemented
  110.  
  111. - Additional debugger commands: VP and VX; page table dump changed
  112.  
  113.  
  114. emxbind
  115. -------
  116.  
  117. - TERMGLOBAL and TERMINSTANCE module definition file statements now
  118.   supported
  119.  
  120. - Option for setting the heap size: -h#
  121.  
  122. - Option for setting the OS/2 stack size: -k#
  123.  
  124. - The STACKSIZE statement can be used for setting the OS/2 stack size
  125.  
  126. - By default, a 16 MB stack object for OS/2 is now put into the .EXE
  127.   file
  128.  
  129.  
  130. emxomf
  131. ------
  132.  
  133. - Convert (I2) import records to (I3) import records
  134.  
  135. - Convert line number information unless -s is used.  This feature
  136.   enables limited debugging with IBM's IPMD debugger
  137.  
  138. - No longer requests emx.lib to be linked
  139.  
  140.  
  141. emxomfld
  142. --------
  143.  
  144. - Call RC to handle .res file
  145.  
  146. - Bug fixed: LIB environment variable not correctly set
  147.  
  148. - Use /debug option of LINK386 unless -s or -S are used
  149.  
  150.  
  151. touch
  152. -----
  153.  
  154. - New -c option: don't create files
  155.  
  156.  
  157. GCC
  158. ---
  159.  
  160. - #pragma pack implemented for C++
  161.  
  162. - The -s option is passed to emxomf
  163.  
  164. - The -mnoprobe option has been renamed -mno-probe
  165.  
  166. - -mno-probe is now default.  If you create threads with
  167.   DosCreateThread and don't set bit 1 of the flags argument, you have
  168.   to use -mprobe.  -mprobe is also required if you want to trap stack
  169.   overflow
  170.  
  171. - GCC now passes libemx1 and libemx2 instead of libemx (and emx.lib)
  172.   to the linker
  173.  
  174. - As emxomfld now knows about .res files, you can use .res files on
  175.   the GCC command line even when using -Zomf
  176.  
  177. - After all the other libraries but before -lemx2, -los2 is passed to
  178.   the linker.  Therefore, you no longer have to use -los2.  Using -los2
  179.   (in old makefiles, for instant) doesn't hurt
  180.  
  181.  
  182. GDB
  183. ---
  184.  
  185. - `info float' command fixed
  186.  
  187. - Switch to debuggee session only on CALL instructions
  188.  
  189. - Redirection supported by `set arg'
  190.  
  191.  
  192. GNU ld
  193. ------
  194.  
  195. - The -R option is no longer automatically turned on for import
  196.   libraries of type (I1)
  197.  
  198. - `.o' is appended to the symbol indicating the start of the text
  199.   segment of a module unless the symbol starts with `-l' or already
  200.   ends with `.o'.  This is required to make GDB work with GCC's
  201.   MKTEMP_EACH_FILE `feature'
  202.  
  203.  
  204. GNU nm
  205. ------
  206.  
  207. - New -d option: don't demangle C++ symbols
  208.  
  209.  
  210. Header files and libraries
  211. --------------------------
  212.  
  213. - Header files adapted for -traditional and C++
  214.  
  215. - Value of HZ (defined in sys/param.h) fixed
  216.  
  217. - Prototypes added to curses.h
  218.  
  219. - New header files: conio.h, sys/utsname.h, sys/wait.h
  220.  
  221. - S_ISCHR etc. defined in sys/stat.h
  222.  
  223. - There are now two emx syscall libraries: libemx.a has been replaced
  224.   with libemx1.a and libemx2.a, libemx.lib and emx.lib have been
  225.   replaced with libemx1.lib and libemx2.lib.  libemx1 contains the
  226.   syscall interface to emx.dll, libemx2 is the import library for
  227.   emx.dll
  228.  
  229. - New functions: ffs(), uname(), waitpid(), _dt_*(), _ea*(),
  230.   _getname(), _inps16(), _inps32(), _int86(), _memdif(), _outps8dac(),
  231.   _outps16(), _outps32(), _sleep2(), _splitargs(), _wait*()
  232.  
  233. - _read_kbd() now available with -Zsys
  234.  
  235. - The sign of the number returned by _fncmp() is now significant
  236.  
  237. - pclose() now uses waitpid()
  238.  
  239. - popen() now parses the command line correctly
  240.  
  241. - emxlibc.dll now supports 256 file handles and 256 streams
  242.  
  243. - malloc() and friends in emxlibc.dll are thread-save now
  244.  
  245. - tempnam() return value fixed; avoid infinite loop for invalid PREFIX
  246.  
  247. - nls_init() fixed
  248.  
  249. - frexp() fixed
  250.  
  251. - popen() improved
  252.  
  253. - open() and sopen(): errno fixed for O_CREAT
  254.  
  255. - mkdir(): now sets errno to EEXIST if directory already exists
  256.  
  257. - scanf(): bugs fixed
  258.  
  259. - mktime(): the argument is interpreted as local time
  260.  
  261. - wait(): use errno of system call
  262.  
  263. - memcmp() return value fixed (sign was wrong)
  264.  
  265. - strstr (s, "") should return s
  266.  
  267. - _flush() writes a linefeed immediately in _IOLBF mode
  268.  
  269. - index(), rindex(), strchr(), strcmp() and strrchr() coded in
  270.   assembly language
  271.  
  272. - Bug fixed: strtol ("0", whatever, 0) didn't work
  273.  
  274. - printf() no longer prints "-#NAN".  "#NAN" is printed instead
  275.  
  276. - SOM added to libos2
  277.  
  278.  
  279. Sample and test programs
  280. ------------------------
  281.  
  282. - New sample programs: eatool, graph, wm_demo and wm_hello
  283.  
  284. - align.c renamed pack.c
  285.  
  286.  
  287. 0.8e (13-Sep-1992)
  288. ==================
  289.  
  290. Important notes
  291. ---------------
  292.  
  293. - IMPORTANT: Recompilation of all source files is required due to
  294.   changes in the header files and the C library.  All .o and .a files
  295.   must be recreated from the source
  296.  
  297. - If the linker complains about `_streams' undefined, you haven't
  298.   recompiled all source files
  299.     
  300. - IMPORTANT: the -s emxbind option has been renamed -i
  301.  
  302. - When using GNU Emacs 18.58.3 for OS/2 2.0 with emx.dll 0.8e, you
  303.   have to replace the string
  304.  
  305.     "/s /c"
  306.  
  307.   with the two strings
  308.  
  309.     "/s" "/c"
  310.  
  311.   in compile.el, shell.el and simple.el.  Also replace
  312.  
  313.     "/q /s"
  314.  
  315.   with
  316.  
  317.     "/q" "/s"
  318.  
  319.   and byte-compile compile.el, shell.el and simple.el.  Then, run
  320.   dump-emacs.cmd.
  321.  
  322. - When recompiling GNU Emacs 18.58.3 for OS/2 2.0 using emx 0.8e, you
  323.   should put the line
  324.  
  325.     (setq completion-ignore-case t)
  326.  
  327.   into the .emacs file as readdir() no longer turns all file names
  328.   into lower case
  329.  
  330.  
  331. Highlights
  332. ----------
  333.  
  334. - C++
  335.  
  336. - LINK386 can be used for linking
  337.  
  338. - fork()
  339.  
  340. - New versions of GNU programs have been ported: GCC 2.2.2, GDB 4.6
  341.  
  342. - C library in dynamic link library
  343.  
  344. - Create `native' OS/2 programs that don't need emx.dll
  345.  
  346.  
  347. emx
  348. ---
  349.  
  350. - New system calls: __stat(), __fstat(), __utimes(), __filesys(),
  351.   __chsize(), __ftime(), __getppid(), __nls_memupr(), __clock(),
  352.   __fork(), __open(), __newthread(), __endthread()
  353.  
  354. - Changed system calls: __ftruncate(), __umask(), __memaccess(),
  355.   __open()
  356.  
  357. - Removed system calls: __creat(); still supported for old programs
  358.  
  359.  
  360. emx for OS/2
  361. ------------
  362.  
  363. - REXX-callable entry point for getting the revision number
  364.  
  365. - emxio.dll
  366.  
  367. - MKS-ksh-style argument passing under OS/2
  368.  
  369. - System calls are now (almost) reentrant
  370.  
  371. - New scan codes for C-SPACE, A-SPACE and C-INSERT
  372.  
  373. - New system call: __brk()
  374.  
  375. - Bug fixed: argument quoting on the command line
  376.  
  377. - Bug fixed: scan code of Ctrl-Break (OS/2 full screen)
  378.  
  379. - Bug fixed: __sbrk() didn't work currectly for small arguments
  380.  
  381.  
  382. emx for DOS
  383. -----------
  384.  
  385. - _scrsize() fixed for DOS
  386.  
  387. - Bug fixed: __spawnve() didn't close the file handle when calling a DOS
  388.   program
  389.  
  390. - If a memory manager provides both DPMI and VCPI, use VCPI instead of
  391.   giving up
  392.  
  393. - termio bug fixed (`New' extended scan codes)
  394.  
  395.  
  396. emxbind
  397. -------
  398.  
  399. - The -s option has been renamed -i
  400.  
  401. - Option for stripping the symbol table
  402.  
  403. - Automatically seeks emxl.exe
  404.  
  405. - Support for new method of importing (I2)
  406.  
  407. - Support for creating dynamic link libraries
  408.  
  409.  
  410. emximp
  411. ------
  412.  
  413. - Automatically call assembler
  414.  
  415. - Automatically generate output file names
  416.  
  417. - Additional conversions: .lib -> .imp, .imp -> .def, .lib -> .a
  418.  
  419.  
  420. GCC
  421. ---
  422.  
  423. - GCC 2.2.2
  424.  
  425. - Expansion of wildcards on the command line
  426.  
  427. - The preprocessor macro `unix' is no longer defined
  428.  
  429. - The preprocessor macro `__32BIT__ is defined
  430.  
  431. - New -Zdll option for creating dynamic link libraries
  432.  
  433. - New -Zomf option for creating .OBJ files
  434.  
  435.  
  436. GDB
  437. ---
  438.  
  439. - GDB 4.6
  440.  
  441. - Bug fixed: global variables can now be viewed
  442.  
  443. - Forward slashes must be used instead of backward slashes in path names
  444.  
  445.  
  446. GAS
  447. ---
  448.  
  449. - wait instructions are no longer inserted automatically unless -w given
  450.  
  451.  
  452. GNU ld
  453. ------
  454.  
  455. - New ld option: -R (automatically set when creating a .dll file or
  456.   using a special class of import libraries)
  457.  
  458. - Pass on module definition file name and resource file name to
  459.   emxbind
  460.  
  461.  
  462. GNU ar
  463. ------
  464.  
  465. - Expansion of wildcards on the command line
  466.  
  467. - Extension of the temporary file shortened for FAT file systems
  468.  
  469.  
  470. Header files and C library
  471. --------------------------
  472.  
  473. - New include files: malloc.h, sys/hw.h, sys/kbdscan.h
  474.  
  475. - float.h fixed
  476.  
  477. - min() and max() removed from stdlib.h
  478.  
  479. - HT_DEV_KBD (sys/ioctl.h) has been replaced with HT_DEV_CON;
  480.   HT_DEV_VIO has been removed -- it was never returned
  481.  
  482. - time_t changed to unsigned long (was long), timezone declared long
  483.   (was time_t)
  484.  
  485. - Support for long long
  486.  
  487. - Functions renamed: itoa() -> _itoa(), ltoa() -> _ltoa(), ultoa() ->
  488.   _ultoa(), rmtmp() -> _rmtmp()
  489.  
  490. - _memaccess() and _portaccess() now documented.  Note the changed
  491.   argument list if you've already used _memaccess(): You have to
  492.   change and recompile programs that use _memaccess()
  493.  
  494. - spawn*() now quotes arguments if required
  495.  
  496. - system() now obeys quoting when parsing the command
  497.  
  498. - Timezones are implemented, without day light saving (summer time)
  499.  
  500. - malloc() etc.: the memory blocks are now properly aligned
  501.  
  502. - Math functions now do argument and result checking and set errno
  503.  
  504. - stat() now returns time stamps for directories
  505.  
  506. - stat() now sets the X bit for .exe, .com, .bat and .cmd files
  507.  
  508. - stat() now sets the st_dev always to 0
  509.  
  510. - utime() and utimes() fixed
  511.  
  512. - Bug fixed: buffer for stdout
  513.  
  514. - Dummy libm.a
  515.  
  516. - open(): use SH_DENYNO sharing mode
  517.  
  518. - fseek(): improved to not always flush the buffer
  519.  
  520. - New functions: fmod(), frexp(), hypot(), cbrt(), rint(), trunc(), swab(),
  521.   _memswap(), _nls_strlwr(), _fnlwr(), getwd(), _getext(), _remext(),
  522.   strtoul(), _atoll(), _splitpath(), strftime(), fork(), getppid(), ftw(),
  523.   sopen(), _fsopen(), getw(), putw(), _filesys(), chsize(), v*scanf(),
  524.   _beginthread(), _endthread()
  525.  
  526. - Function versions of isalpha() etc.
  527.  
  528. - Function versions of abs() and labs()
  529.  
  530. - qsort() is now reentrant
  531.  
  532. - readdir() also returns system files
  533.  
  534. - readdir() and _wildcard() now use _fnlwr() instead of strlwr()
  535.  
  536. - _wildcard() no longer omits directories
  537.  
  538. - truncate() and ftruncate() can no longer increase the size of a
  539.   file.  See chsize()
  540.  
  541. - Bug fixed: fread() and fwrite() should not return -1 on error
  542.  
  543. - Memory and string functions improved
  544.  
  545. - Bug fixed: umask() semantic was wrong (including documentation)
  546.  
  547. - Bug fixed: strncat() should not pad the destination string
  548.  
  549. - Bug fixed: times() return value
  550.  
  551. - Bug fixed: fclose() didn't delete temporary files
  552.  
  553. - setbuffer() now uses setvbuf()
  554.  
  555. - _abspath() now preserves a trailing slash
  556.  
  557. - All members of the exec*() family implemented
  558.  
  559. - pipe() now sets both handles to text mode
  560.  
  561.  
  562. Sample and test programs
  563. ------------------------
  564.  
  565. - New sample programs: calc
  566.  
  567. - stdio renamed stdiotst
  568.  
  569. - Bug fixed: `sieve' didn't work when compiled with -DBITS
  570.  
  571.  
  572. New emx tools
  573. -------------
  574.  
  575. - touch  (set time stamp of a file)
  576.  
  577. - emxrev (display revision number of emx DLLs)
  578.  
  579. - texi2dvi (typeset texinfo file)
  580.  
  581. - updt (copy file if changed or if newer)
  582.  
  583. - emxcat (concatenate source files)
  584.  
  585. - emxomf (convert a.out to OMF)
  586.  
  587. - emxomfld (front end for LINK386)
  588.  
  589. - emxomfar (librarian for OMF libraries)
  590.  
  591.  
  592. New GNU programs
  593. ----------------
  594.  
  595. - info (the GNU info browser)
  596.  
  597. - makeinfo (convert texinfo to info)
  598.  
  599. - texindex (prepare index for TeX)
  600.  
  601.  
  602. New BSD libraries
  603. -----------------
  604.  
  605. - curses
  606.  
  607. - libbsd: random()
  608.  
  609.  
  610. Other changes
  611. -------------
  612.  
  613. - develop.doc split into emxdev.doc and gnudev.doc
  614.  
  615. - More OS/2 API calls prepared
  616.  
  617. - termcap.dat improved
  618.  
  619. - Library sources spread over more directories
  620.  
  621. - bind.cmd and bind.bat have been removed.  Use emxbind instead
  622.  
  623. - unzip is now required for unpacking, PKUNZIP doesn't work
  624.  
  625. - emximp moved from emxlib.zip to emxdev.zip
  626.  
  627. - gccsrc3.zip merged into gccsrc2.zip
  628.  
  629. - upda no longer available because `ar' can process wildcards now
  630.  
  631.  
  632. 0.8d (03-May-1992)
  633. ==================
  634.  
  635. - The default value of the -f# emx option is now 0.  If a program
  636.   compiled with GCC 1.4 experiences stack exceptions, you should use
  637.   emxbind to add an appropriate -f# option to the .exe file
  638.  
  639. - a core dump file is now written if a protection violation occurs
  640.   under OS/2 unless the -c option is used
  641.  
  642. - Core dumps on SIGKILL are not disabled by the -c option
  643.  
  644. - Don't lose characters if SIGALRM interrupts termio read().  If ECHO
  645.   is on, the characters will be echoed again.  In ICANON mode, the
  646.   keyboard buffer is still flushed
  647.  
  648. - termio/SIGALRM problem fixed (OS/2)
  649.  
  650. - __cgets() bug fixed (OS/2)
  651.  
  652. - make.cmd and make.bat renamed omake.cmd and omake.bat
  653.  
  654. - omake.cmd, omake.bat, makebin.cmd, makebin.bat, makebin1.cmd and
  655.   makebin1.bat were missing by accident
  656.  
  657. - Terminals added to termcap.dat: rmono, ansi-color-2, ansi-color-3
  658.  
  659. - GDB now uses _isterm() instead of isatty() to make it work properly
  660.   via pipes (GNU Emacs!)
  661.  
  662. - GDB reopens the CON device for the debuggee
  663.  
  664. - GDB changed to use ; instead of : for sending the current line to
  665.   GNU Emacs
  666.  
  667. - GDB: the debuggee window stays open after the process ended, "set
  668.   close" command added
  669.  
  670. - GCC changed to use semicolon instead of colon as directory separator
  671.   in environment variables.  You now can use C_INCLUDE_PATH and
  672.   LIBRARY_PATH to load GCC etc. from another drive.  Example:
  673.  
  674.      set C_INCLUDE_PATH=c:/emx/include
  675.      set LIBRARY_PATH=c:/emx/lib
  676.  
  677. - ar: append "$!" instead of "_supersede" to temporary file name
  678.  
  679. - #pragma pack() in os2.h fixed
  680.  
  681. - const pointers in os2.h fixed
  682.  
  683. - os2.h: second argument of window procedure function changed from USHORT to
  684.   ULONG
  685.  
  686. - dup2() now available -- does not work correctly under DOS
  687.  
  688. - kill (pid, 0) implemented
  689.  
  690. - kill() and raise() set errno
  691.  
  692. - kill (pid, sig) for pid < -1 (process group) implemented for direct
  693.   children of the calling process (OS/2 only)
  694.  
  695. - select() implemented for pipes created by emx and for termio input
  696.   (OS/2 only)
  697.  
  698. - gettimeofday() implemented
  699.  
  700. - tempnam() fixed
  701.  
  702. - filelength(), tell() and eof() no longer reset the F_EOF bit
  703.   (Ctrl-Z)
  704.  
  705. - read() now converts CR/LF to LF instead of discarding CR in text
  706.   mode.  Ctrl-Z is ignored if it is the last character of a file
  707.  
  708. - O_NDELAY and FIONREAD now work for pipes created by pipe() of emx,
  709.   but not for pipes created by CMD.EXE, for instance
  710.  
  711. - Additional spawn() modes (OS/2 only)
  712.  
  713. - ioctl (FGETHTYPE) added
  714.  
  715. - Initialization of file handles and streams by _startup() improved
  716.  
  717. - signal (SIGKILL, ...) is invalid
  718.  
  719. - SIGCLD implemented (OS/2 only)
  720.  
  721. - wait() return value fixed (OS/2)
  722.  
  723. - _abspath() function added to library
  724.  
  725. - _syserrno() added
  726.  
  727. - rand() fixed
  728.  
  729.  
  730.  
  731. 0.8c (19-Mar-1992)
  732. ==================
  733.  
  734. Important notes
  735. ---------------
  736.  
  737. - *** YOU SHOULD RECOMPILE ALL YOUR PROGRAMS *** because the header
  738.   files and the library have changed.  If you can't recompile a
  739.   program (due to lacking sources, for instance), use
  740.  
  741.     emxbind -u \emx\bin\emxl myprog
  742.  
  743.   to update emx in the .exe file
  744.  
  745.   *** DO NOT RE-LINK A PROGRAM WITHOUT RECOMPILING ALL ITS MODULES ***
  746.   As several definitions in stdio.h and fcntl.h have been changed,
  747.   just linking with the new library without compiling with the new
  748.   include files won't work.  Really.  We apologize for the
  749.   inconvenience
  750.  
  751.  
  752. emx
  753. ---
  754.  
  755. - The -f# option will be removed for emx 0.8f, better recompile *now*
  756.   programs which require -f#
  757.  
  758. - New emx option -h# to set the number of file handles
  759.  
  760. - New emx option -c to disable core dumps caused by signals
  761.  
  762. - The -r emx option is not applied if the file name starts with
  763.   /pipe/
  764.  
  765. - Signal numbers reassigned
  766.  
  767. - System calls added: __ftruncate(), __fcntl(), __pipe()
  768.  
  769. - Message for SIGABRT changed.  Return code for default processing of
  770.   signals under OS/2 changed to 3
  771.  
  772. - termio: ICANON and IDEFAULT moved from c_iflag to c_lflag
  773.  
  774. - termio: IDELETE
  775.  
  776. - _ulimit3() system call replaced with __ulimit() system call
  777.  
  778. - emx.dll: __ptrace(8) improved, this improves the behaviour of GDB
  779.   when the debugee terminates
  780.  
  781. - emx.dll: __ptrace(9) no longer steps into emx_syscall of emx.dll
  782.  
  783. - __dup() syscall implemented for OS/2
  784.  
  785. - __fsync() syscall implemented for OS/2
  786.  
  787. - __scrsize() syscall implemented (not yet implemented correctly for
  788.   DOS)
  789.  
  790. - __dup2(n,n) fixed for DOS: don't close the file
  791.  
  792. - __spawnve(): maximum size of arguments increased to 4096, E2BIG is
  793.   returned if the limit is exceeded
  794.  
  795. - __spawnve(): if P_DEBUG is used, the child process will be started
  796.   in a separate session unless the -E option is used
  797.  
  798. - __ioctl2(): FIONREAD, TCFLSH, TCSETAF
  799.  
  800. - __ptrace(): PTRACE_SESSION
  801.  
  802. - The following signals now cause a core dump unless catched or
  803.   ignored: SIGQUIT, SIGILL, SIGTRAP, SIGEMT, SIGFPE, SIGBUS, SIGSEGV
  804.   and SIGSYS
  805.  
  806. - emx under DOS now uses BIOS instead of DOS calls for termio
  807.  
  808.  
  809. emxbind
  810. -------
  811.  
  812. - emxbind: -e and -u commands added (set application type, update
  813.   emx)
  814.  
  815. - emxbind: -f, -p and -w options added (application type)
  816.  
  817. - emxbind: -r option added (add resources)
  818.  
  819. - emxbind now sets the "no internal fixups" module flag
  820.  
  821.  
  822. GCC
  823. ---
  824.  
  825. - GCC 2.1
  826.  
  827. - GCC now requires a math coprocessor (80387)
  828.  
  829. - GCC: temporary files are created in the current working directory if
  830.   TMPDIR is not set.  TMPDIR may end with a backslash
  831.  
  832. - Stack probes implemented in GCC.  -mprobe enables stack probes,
  833.   -mnoprobe disables stack probes.  By default, stack probes are
  834.   enabled.  Programs compiled with -mprobe can be used with the -f0
  835.   emx option
  836.  
  837. - GCC fixed: -B was ignored; PATH was used for seeking cpp, cc1, as
  838.   and ld.  Older versions of emx didn't use .exe files, therefore .exe
  839.   wasn't appended in gcc.c when seeking a program
  840.  
  841.  
  842. GAS
  843. ---
  844.  
  845. - gas 1.38.1
  846.  
  847. - gas: signal problem fixed
  848.  
  849. - makebin: gas argument replaced with as
  850.  
  851.  
  852. GDB
  853. ---
  854.  
  855. - GDB 4.4
  856.  
  857. - GDB no longer adds the .exe default extension
  858.  
  859. - The debuggee is now started in a separate session
  860.  
  861. - "set switch" and "show switch" commands added
  862.  
  863. - GDB now can debug Presentation Manager applications
  864.  
  865.  
  866. Header files and C library
  867. --------------------------
  868.  
  869. - Type of count parameter for memcpy etc. and return value of strlen
  870.   changed from int to size_t
  871.  
  872. - size_t changed from "unsigned int" to "unsigned long"
  873.  
  874. - bcmp, bcopy, bzero, memcmp, memcpy, memmove, memset, strcat, strcpy
  875.   and strlen coded in assembly language
  876.  
  877. - Number of streams increased from 20 to 40
  878.  
  879. - open() didn't return EMFILE if the operating system ran out of file
  880.   handles
  881.  
  882. - chmod() didn't return 0 on success
  883.  
  884. - closedir() now returns an int
  885.  
  886. - div() and ldiv() now perform a signed division
  887.  
  888. - Bug in exp() fixed
  889.  
  890. - Bug in utime() fixed
  891.  
  892. - Return value of acos() now between 0 and pi (was: -pi/2 and pi/2)
  893.  
  894. - putenv() return value fixed
  895.  
  896. - abort() declared volatile
  897.  
  898. - sscanf() whitespace bug fixed
  899.  
  900. - printf ("%%") bug fixed
  901.  
  902. - struct _dtd (sys/emx.h) changed to include hundredths of a second
  903.  
  904. - float.h now available (it's somewhat inaccurate because printf() and
  905.   strtod() are somewhat incaccurate)
  906.  
  907. - unistd.h now available (well, some bits of it)
  908.  
  909. - Signal numbers reassigned, SIGEMT declared
  910.  
  911. - I/O flag bits reassigned (see stdio.h, sys/fcntl.h, sys/emx.h)
  912.  
  913. - Link with /emx/lib/binmode.o for setting the default open mode to
  914.   binary
  915.  
  916. - Some helper functions moved from libc.a (crt0.s) to libgcc.a
  917.  
  918. - __main() put into libgcc.a for GCC 2.x.  Currently, this function
  919.   does nothing as C++ is not yet supported
  920.  
  921. - Obsolete functions removed from C library and include files: prtc(),
  922.   prti(), prts().  Test programs changed to not use these functions
  923.  
  924. - _exit(): The return code will be replaced with 255 if it is greater
  925.   than 255
  926.  
  927. - exit() now uses _cleanup()
  928.  
  929. - abort() now uses _cleanup() and "raise (SIGABRT)"
  930.  
  931. - fcntl() now exists, F_GETFL and F_SETFL partially implemented
  932.   (O_APPEND should work, O_NDELAY is implemented for termio).  F_GETFD
  933.   and F_SETFD implemented for OS/2 only
  934.  
  935. - ioctl(): FIONREAD implemented for handle 0 if IDEFAULT and ICANON
  936.   are not set
  937.  
  938. - ioctl(): TCFLSH implemented for the keyboard
  939.  
  940. - ioctl(): TCSETAF now flushes the keyboard buffer
  941.  
  942. - termio: ICANON and IDEFAULT moved from c_iflag to c_lflag
  943.  
  944. - termio: IDELETE in c_iflag
  945.  
  946. - getcwd() return value fixed
  947.  
  948. - sys/emx.h now included
  949.  
  950. - _seek_hdr() and _fseek_hdr() now work relative to the current
  951.   position of the file pointer
  952.  
  953. - scanf(): %X implemented
  954.  
  955. - MAXNAMLEN and MAXPATHLEN changed to 260
  956.  
  957. - P_tmpdir in stdio.h changed to ".".  This affects tmpnam(),
  958.   tempnam() and tmpfile()
  959.  
  960. - _ulimit3() system call replaced with __ulimit() system call
  961.  
  962. - bsearch() fixed: comparison was reversed
  963.  
  964. - stdarg.h improved for types with sizeof(type) < 4.  There's still a
  965.   problem with float promoted to double
  966.  
  967. - varargs.h improved(?)
  968.  
  969. - The names of all the syscall functions now start with two
  970.   underscores, all the syscalls are now interfaced by a library
  971.   function
  972.  
  973. - tempnam() fixed for NULL passed to DIR argument
  974.  
  975. - tempnam() fixed for trailing backslash in DIR argument or TMP
  976.   environment variable
  977.  
  978. - tempnam() now returns an absolute path name
  979.  
  980. - Check for emx version in _startup()
  981.  
  982. - fclose() return value fixed
  983.  
  984. - Global variable _osmode (which contains DOS_MODE or OS2_MODE)
  985.   implemented
  986.  
  987. - New library functions: spawnl(), spawnle(), spawnlp() and
  988.   spawnlpe()
  989.  
  990. - New library functions: pipe(), pclose() and popen().  Implemented
  991.   for OS/2, only
  992.  
  993. - New library funtions: _isterm(), _swchar(), _chdir2(), _fullpath(),
  994.   _fngetdrive(), _getcwd1(), _getcwd2(), _getdrive(), _memcount(),
  995.   _fsetmode(), _scrsize()
  996.  
  997. - ftime() implemented, see sys/timeb.h.  Timezones are still not
  998.   implemented
  999.  
  1000. - dup() fixed: copy _files[] entry
  1001.  
  1002. - _ftime() syscall renamed __filetime()
  1003.  
  1004. - fopen() fixed: return value
  1005.  
  1006. - eof() fixed: use tell(), not fseek()
  1007.  
  1008. - access() fixed: directories accessible, use (mode & 2) instead of
  1009.   (mode == 2), fix errno values
  1010.  
  1011. - printf ("%04d", -1) fixed, put zeros after sign
  1012.  
  1013.  
  1014. OS/2 API
  1015. --------
  1016.  
  1017. - OS/2 API calls added: DosFreeModule, DosLoadModule,
  1018.   DosQueryProcAddr, DosSetFileInfo, DosSetPathInfo, DosQueryPathInfo,
  1019.   DosQueryCurrentDisk, DosQueryFSAttach, DosQueryDBCSEnv,
  1020.   DosSetProcessCp, DosQueryModuleName, DosQueryModuleHandle,
  1021.   DosQueryProcType, DosError, DosErrClass, DosDebug
  1022.  
  1023. - OS/2 semaphore API calls added
  1024.  
  1025. - OS/2 tasking API calls added
  1026.  
  1027. - OS/2 named pipe API calls added
  1028.  
  1029. - OS/2 queue API calls added
  1030.  
  1031. - OS/2 exception API calls added
  1032.  
  1033. - OS/2 session manager API calls added
  1034.  
  1035. - Some Presentation Manager calls added
  1036.  
  1037.  
  1038. Sample and test programs
  1039. ------------------------
  1040.  
  1041. - sieve.c fixed: 3rd argument of memset() was wrong
  1042.  
  1043. - /emx/test/makefile updated
  1044.  
  1045. - Obsolete test programs deleted
  1046.  
  1047.  
  1048. Other changes
  1049. -------------
  1050.  
  1051. - Directory structure changed, all GNU programs are now under
  1052.   /emx/gnu
  1053.  
  1054. - GCC documentation now included (TeX)
  1055.  
  1056. - upda.exe now included.  This utility is required for building the C
  1057.   library
  1058.  
  1059. - New utility: updt.exe.  Used for building GCC
  1060.  
  1061. - emximp bug fixed: list of libraries wasn't cleared when starting a
  1062.   new output file
  1063.  
  1064. - emximp: -p command line option
  1065.  
  1066.  
  1067. 0.8b (18-Feb-1992)
  1068. ==================
  1069.  
  1070. - See emx.chg for changes to versions older than 0.8b
  1071.  
  1072. --------------------------- END OF HISTORY.DOC ------------------------------
  1073.