home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 11 / CDACTUAL11.iso / cdactual / demobin / share / os2 / EMX / DOC / EMXFIX05.DOC < prev    next >
Encoding:
Text File  |  1996-05-24  |  9.8 KB  |  295 lines

  1. ===============================================================================
  2. emxfix05.doc      emx 0.9b     FIX 05                               24-May-1996
  3. ===============================================================================
  4.                                      Copyright (c) 1995-1996 by Eberhard Mattes
  5.  
  6. Introduction
  7. ------------
  8.  
  9. emxfix05.zip is a fix package for emx 0.9b.  It contains all fixes and
  10. new features of emxfix01.zip through emxfix04.zip, and new fixes.
  11.  
  12. If you are a programmer who uses emx for creating applications,
  13. install emxfix05.zip.  If you just use applications which use emx,
  14. install the emxrt.zip corresponding to emxfix05.zip (see the ZIP
  15. comment).  You don't have to install both.
  16.  
  17.  
  18. License
  19. -------
  20.  
  21. emx is free software; you can redistribute it and/or modify it
  22. under the terms of the GNU General Public License as published by
  23. the Free Software Foundation; either version 2, or (at your option)
  24. any later version.
  25.  
  26. emx is distributed in the hope that it will be useful,
  27. but WITHOUT ANY WARRANTY; without even the implied warranty of
  28. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  29. GNU General Public License for more details.
  30.  
  31. You should have received a copy of the GNU General Public License
  32. along with emx; see the file COPYING.  If not, write to
  33. the Free Software Foundation, 59 Temple Place - Suite 330,
  34. Boston, MA 02111-1307, USA.
  35.  
  36. See \emx\doc\COPYING.EMX and \emx\doc\COPYING for details.
  37.  
  38. In consequence, emxfix05.zip can be distributed only if distributed
  39. with emxsrcr.zip, gbinusrc.zip and gppsrc.zip.
  40.  
  41.  
  42. Caveat
  43. ------
  44.  
  45. Do not install this fix package unless you have installed emx 0.9b.
  46. It does not work with any other release of emx.  Do not install
  47. emxfix05.zip if you have already installed a later fix package.
  48.  
  49.  
  50. Important notice for XFreeOS2 3.1.2D users
  51. ------------------------------------------
  52.  
  53. One of the bug fixes of emxfix04 for emx.dll breaks XFreeOS2 3.1.2D
  54. due to a bug in XFreeOS2 3.1.2D: you have to move the mouse to make
  55. XFreeOS2 work properly.  To work around the problem, upgrade to
  56. XFreeOS2 3.1.2E or disable the bug fix by putting the -!512 option
  57. into the EMXOPT environment variable:
  58.  
  59.     set emxopt=-!512
  60.  
  61. If you already have an EMXOPT environment variable, please add -!512
  62. to the current value.  If you already have a -! option in EMXOPT, add
  63. 512 to the old value.
  64.  
  65.  
  66. Problems solved by this fix package
  67. -----------------------------------
  68.  
  69. [emxfix05.zip]
  70.  
  71. o    Sometimes select() on an NP_ACCESS_DUPLEX named pipe caused a
  72.      tight loop
  73.  
  74. [emxfix04.zip]
  75.  
  76. o    mktime() interpreted the structure pointed to by its argument in
  77.      GMT instead of local time
  78.  
  79. o    select() now clears all bits in the file descriptor sets if the
  80.      requested timed out (return value 0).  This bug fix can be
  81.      disabled with the -!512 option
  82.  
  83. o    select() under OS/2 now considers file descriptors of types
  84.      unsupported by select() to be always ready.  Under DOS, select()
  85.      still reports regular files to be ready for reading unless
  86.      positioned at EOF (subject to DOS bugs); this will probably
  87.      change in emx 0.9c
  88.  
  89. o    select() did not wake up when the TTY side of a PTY got ready for
  90.      reading
  91.  
  92. o    select() now works properly for NP_ACCESS_DUPLEX named pipes
  93.  
  94. o    The OS/2 error code ERROR_PIPE_NOT_CONNECTED is now mapped to the
  95.      errno value ENOTCONN
  96.  
  97. o    realloc() no longer tries to expand down the block -- that was
  98.      way too slow
  99.  
  100. o    Definition of MB_CUR_MAX in <stdlib.h> fixed
  101.  
  102. [emxfix03.zip]
  103.  
  104. o    emxfix02.zip did not contain the updated ld.exe
  105.  
  106. o    emxfix02.zip did not contain the updated header files of
  107.      emx\include\cpp\std
  108.  
  109. o    _threadid() did not work in C++
  110.  
  111. o    wchar_t was not defined in <stddef.h>
  112.  
  113. o    Under extremely rare circumstances, realloc() could corrupt the
  114.      heap
  115.  
  116. [emxfix02.zip]
  117.  
  118. o    Processes were not continued after catching SIGTERM
  119.  
  120. o    emx\include\cpp\std\cmath.h, emx\include\cpp\std\stddef.h, and
  121.      emx\include\cpp\std\complext.h used long file names
  122.  
  123. o    fnmatch() did not properly handle inverted sets like [^ab]
  124.  
  125. o    glob() did not work with drive letters and UNC path names
  126.  
  127. o    Creating custom C runtime DLLs with -Zomf -Zsys failed because
  128.      _settimeofday was not marked {EMX} in \emx\lib\cdll.def (test
  129.      case: dll7)
  130.  
  131. o    GNU linker (ld.exe): Aliases didn't work for references from the
  132.      data section ("gcc -Zcrtdll calc.c" failed with import _trunc
  133.      undefined)
  134.  
  135. o    utimes() changed the creation time and date to 00:00 31-Dec-1979;
  136.      emx.dll and sys.lib now work around this bug of LAN Server or
  137.      HPFS386
  138.  
  139. o    \emx\lib\omflibs.cmd didn't set the time stamps of newly created
  140.      .lib files
  141.  
  142. o    ios::app of the standard C++ library did not work correctly
  143.  
  144. o    emxload lost its children after 10 minutes
  145.  
  146. o    putenv() would delete the environment if realloc() failed
  147.  
  148. o    <stdarg.h> and <varargs.h> did not work with -fbounds-checking
  149.  
  150. [emxfix01.zip]
  151.  
  152. o    db.a was incomplete: dbopen() was not defined.  This problem was
  153.      caused by too fast a computer, finishing compilation of the files
  154.      in a subdirectory of /emx/bsd/db in the same pair of seconds in
  155.      which db.a was updated for the previous subdirectory
  156.  
  157.  
  158. Features added by this fix package
  159. ----------------------------------
  160.  
  161. [emxfix04.zip]
  162.  
  163. o    New sample program checkemx.c which shows how to check the emx
  164.      revision index
  165.  
  166. o    New program emxupd.exe for replacing DLLs which are in use
  167.  
  168. o    termio/termios are now supported for PTYs
  169.  
  170. o    select() now polls if sockets are involved (previously, IBM's
  171.      select() was called, which seems to poll, too)
  172.  
  173. [emxfix03.zip]
  174.  
  175. o    If a signal handler is installed for SIGABRT and SIGABRT is not
  176.      blocked, abort() will call the signal handler *before* cleaning
  177.      up the C library.  Otherwise, or if the signal catching function
  178.      returns, the signal action of SIGABRT is set to SIG_DFL and
  179.      SIGABRT is raised again
  180.  
  181. [emxfix02.zip]
  182.  
  183. o    GNU linker (ld.exe): Now includes Rainer Schnitker's RSXNT
  184.      patches
  185.  
  186.  
  187. Documentation updates
  188. ---------------------
  189.  
  190. [emxfix02.zip]
  191.  
  192. o   emxlib.doc and emxlib.inf:
  193.  
  194.     The getcwd() function is a POSIX.1 function, not ANSI.
  195.  
  196. o   build.doc:
  197.  
  198.     A Unix-style shell is required for building stdcpp.a.
  199.  
  200. [emxfix01.zip]
  201.  
  202. o   Add this to the `Restrictions:' section of fsync() in emxlib.doc
  203.     (emxlib.src):
  204.  
  205.     Due to a bug in HPFS.IFS, calling fsync() can be quite dangerous.
  206.     If HPFS.IFS has the bug, and fsync() (i.e., DosResetBuffer) is
  207.     called after writing to a file, and Ctrl+Alt+Del is pressed while
  208.     the file is still open, HPFS.IFS will corrupt the allocation
  209.     bitmap of the partition containing that file.  This may damange
  210.     existing and future files and directories.  The bug is present in
  211.     all HPFS.IFS versions of (at least) OS/2 2.0 through OS/2 Warp
  212.     3.0, red box of 1994.  That HPFS.IFS bug seems to be fixed in
  213.     FixPak XR_W005 and later.  Performing a system shutdown instead of
  214.     pressing Ctrl+Alt+Del causes the same problem if the process that
  215.     wrote to the file and called fsync() or DosResetBuffer cannot be
  216.     killed.  As you cannot assume that the user of your application
  217.     has a working HPFS.IFS, better don't call fsync() and
  218.     DosResetBuffer.
  219.  
  220.  
  221. Revision indexes
  222. ----------------
  223.  
  224.     emx.dll         43
  225.     emx.exe         42
  226.     emxio.dll       40
  227.     emxlibc.dll     40
  228.     emxlibcm.dll    43
  229.     emxlibcs.dll    43
  230.     emxwrap.dll     40
  231.  
  232.  
  233. Installing this fix package
  234. ---------------------------
  235.  
  236. 1.  Stop all processes which use emxlibcm.dll or emxlibcs.dll.  Use
  237.  
  238.         emxload -qw
  239.  
  240.     to stop preloaded programs under OS/2.
  241.  
  242. 2.  Unpack emxfix05.zip or emxrt.zip (see introduction) in the root
  243.     directory of the drive where you have installed emx:
  244.  
  245.         cd \
  246.         unzip -o emxfix05               (or `unzip -o emxrt')
  247.  
  248.     Do not use the -f and -u options of unzip -- the time stamp of
  249.     header files has not been updated.
  250.  
  251.     If you get an error message such as
  252.  
  253.         error:  cannot create emx/dll/emx.dll
  254.  
  255.     about not being able to create a DLL file, create a temporary
  256.     directory and run emxuzdll.cmd in that directory, giving the path
  257.     name of emxfix05.zip or emxrt.zip and the path name of the emx DLL
  258.     directory on the command line:
  259.  
  260.         mkdir \emxtmp
  261.         chdir \emxtmp
  262.         emxuzdll a:\emxfix05.zip c:\emx\dll
  263.         chdir ..
  264.         rmdir emxtmp
  265.  
  266.     This will replace the DLLs in c:\emx\dll with the DLLs in
  267.     emxfix05.zip even if the DLLs are in use.  The new versions of the
  268.     DLLs become active as soon as the last process referencing them is
  269.     terminated, or on the next reboot.  Therefore, you should reboot
  270.     after running emxuzdll, otherwise you won't know if and when the
  271.     new versions become active.  (Actually, you don't need a temporary
  272.     directory, any directory not containing any DLL files will do.)
  273.  
  274.     If you unpack emxfix05.zip to a partition which does not support
  275.     long file names and `+' characters, unzip will complain about not
  276.     being able to process emx/gnu/libg++-2.7.1/libio/filebuf.cc.
  277.     Ignore this error message.  If you need filebuf.cc, type
  278.  
  279.         cd \target                      (directory for filebuf.cc)
  280.         unzip -j emxfix05 emx/gnu/libg++-2.7.1/libio/filebuf.cc
  281.  
  282. 3.  After unpacking emxfix05.zip, type (or cut and paste) the
  283.     following commands to rebuild the OMF-style libraries (you don't
  284.     need this step under DOS):
  285.  
  286.         cd \emx\lib
  287.         fix
  288.  
  289. To take advantage of the library fixes, relink your programs.
  290.  
  291. You should keep the file \emx\doc\emxfix05.doc as it shows what fixes
  292. you have installed.
  293.  
  294. --------------------------- END OF EMXFIX05.DOC ------------------------------
  295.