TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: all
from: Ronald Van Iwaarden
date: 1994-12-05 19:39:44
subject: 2 EMX 0.9a patch/change list, p1 of 2

- emxomf no longer creates groups for sets (such as __CTOR__LIST__).
  In consequence, executables become smaller and use less memory as
  sets are no longer put into objects of their own, unless the
  executable is linked with at least one module which has groups for
  sets.  The -g option can be used to get the old behavior, that is,
  groups will be created for sets

- Command line options for emxomf can now be set in the EMXOMFOPT
  environment variable

- Several bugs fixed


emximp
------

- emximp can now read multiple .def files

- display warning message when the input .lib file contains static
  code or data


emxload
-------

- emxload now selects the root directory as current directory.  In
  consequence, directories are no longer locked from renaming and
  deleting

- emxload -l now lists the time-out as minutes:seconds

- The emxload server sets its priority to `foreground server'


GCC

- Fix bug in -Xlinker (which has been introduced by adding -Zlinker)

- The -Zwait option has been removed

- New -Zmap option: write map file (passed down to ld or emxomfld)

- If no output file name is given and the link step is not suppressed,
  an .exe file (or .dll file if -Zdll is given) will be created
  instead of `a.out'.  The base name is taken from the first input
  file.  Example:

        gcc sample.c utils.c

  creates sample.exe

- New -Zbsd-signals and -Zsysv-signals options for selecting signal
  processing model

- New -Zbin-files option for linking with binmode.o, selecting binary mode
  as default for fopen(), open(), etc.

- New -Zmt option for compiling multithread programs.  The -Zmt
  option does not select static vs. dynamic linking

- New -Zcrtdll option for dynamic linking.  The -Zcrtdll option does
  not select compiling and linking single-thread vs. multithread
  programs.  Zmtd is an abbreviation for -Zmt -Zcrtdll

- New -Zso and -Zno-rte options for creating stand-alone DLLs and DLLs
  without runtime environment

- Reject incompatible options

- This port of GCC no longer works with GAS 1.38


GAS

- The -w option has been removed

- New -Zomf option: call emxomf to create .obj file

- New -Zstrip option: pass the -s option (omit debugging information)
  to emxomf


GNU ld
------

- Fix two bugs in processing of set vectors (used for constructors,
  destructors, import method (I1) and for graph.a).  IMPORTANT: You
  have to use the new GNU ld for linking with graph.a

- New -Zmap option: write map file (passed down to emxbind)

- New -Zno-demangle option: don't demangle C++ symbols in error
  messages

- New -Zdemangle-proto options: include parameters and qualifiers in
  demangled C++ symbols in error messages

- Use a new version of the C++ demangler


GNU ar
------

- New J option for removing directories from filenames added to the
  archive


GNU info
--------

- Try to fix problem with `dir' and info files in text format (CR/LF)


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

- os2emx.h: Add spooler functions (PMSPL.DLL) and some Workplace Shell
  functions. Add structure tags to make C++ modules compiled with
  os2emx.h linkable with C++ modules compiled with the Toolkit headers

- Workplace Shell sample program added: Flag (see
  /emx/samples/makefile for details)

- REXX sample added: regexx.dll and rgrep.cmd

- New sample programs: redir and rmdirs

- emxcat: sort input files by name to get identical results when using
  wildcards, independent of the file system type (FAT vs. HPFS) and
  the order of the files in the directory

- emxomfld: add -Zmap option and no longer automatically recognize
  .map files

- os2emx.h: Add INCL_FONTFILEFORMAT

- GPPDEMID.DLL: fix a problem with templates, use a new version of the
  C++ demangler

- The OS/2 error code ERROR_INVALID_PATH is now mapped to ENOENT
  instead of EINVAL


0.8h (14-Dec-1993)
==================

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

- The emxdoc.ndx file has been renamed emxbook.ndx.  You should set
  the EMXBOOK environment variable instead of EMXDOC.  Replace EMXDOC
  with EMXBOOK in the HELPNDX environent variable.  If you're using
  GNU Emacs, don't forget to update the value of the `os2help'
  variable

- Each thread now has its own set of signal handlers.  raise() raises
  a signal in the current thread, kill() can be used to send a signal
  to the main thread (thread 1)

- The `lib' prefix has been removed from the file names of the
  libraries.  The -l option of GNU ld and emxomfld no longer prepends
  `lib' to the library name.  Now you should use -lcurses (instead of
  -lcurse) and -ltermcap (instead of -ltermc)

- The default stack size for -Zomf has been increased to 0x8000 bytes

- The address of the emx-list mailing list has changed, see readme.doc

- The iostream classes are no longer in libg++.  Use libiostream
  instead (replace -lgpp with -liostream)


Highlights
----------

- GPPDEMID.DLL has been provided to let LINK386 demangle C++ symbols
  in error messages

- The new emxload utility speeds up compiling by keeping the compiler
  passes in memory.  Use

    SET GCCLOAD=5

  to keep the compiler in memory for 5 minutes

- emxomf now generates HLL version 3 debugging information for IPMD of
  the C/C++ Tools 2.0 package, including C++

- emxomf has been enhanced to support creation of dynamic link
  libraries with both instance data and private data

- Exceptions are now mapped to SIGFPE, SIGILL and SIGSEGV signals.
  SIGTERM is now supported under OS/2

- New emxexp utility to simplify creating C++ dynamic link libraries

- New versions of GNU programs have been ported: GCC 2.5.7 (see
  \emx\doc\NEWS.GCC), GDB 4.11, libg++ 2.5.2 and libiostream 0.62.
  Linking with the GNU C++ iostream library doesn't put your program
  under GPL (see \emx\doc\COPYING.IOS for details)

- Static constructors and destructors in dynamic link libraries are
  now supported officially

- Support for creating custom C run-time DLLs added (cdllobj.lib).
  Support for creating resource DLLs added (res0.obj)

- A REXX procedure (emxinst.cmd) for creating a documentation folder
  is now included


emx for OS/2
------------

- __signal() did not return the previous signal handler if emx.dll was
  used

- Don't crash if a signal is received in 16-bit code of the operating
  system

- The stack object of an executable with preloaded data (-c option of
  emxbind) was omitted from core dumps.  This has been fixed (revision
  index 14 of emx.dll)

- Bug in __clock() fixed: the return values were not monotonous


emx for DOS
-----------

- emxl.exe now runs rsx.exe (a DPMI-compliant DOS extender by Rainer
  Schnittker which implements a subset of the emx system calls)
  instead of emx.exe if a DPMI server, but no VCPI server is found.
  In that case, the RSX environment variable will be used instead of
  EMX

- emx no longer displays a register dump if a protection violation has
  been detected.  A core dump file is written instead

- __spawnve() now supports P_NOWAIT.  However, the process will be run
  synchronously.  You can now use wait() with the spawn*() functions
  if you use P_NOWAIT.  SIGCLD is raised before continuing the parent
  process

- __memaccess() bug fixed.  For _memaccess (0, n*4095-1, 0), page 0 was
  mapped n times and the other pages were not mapped

- __select() now returns EINTR when interrupted by a signal

- __select() no longer returns EINVAL for nearly all non-zero values
  of tv_usec


emxbind
-------

- A bug has been removed which caused a corrupt fixup page table in
  rare cases

- Speed up processing programs which import many symbols

- New -E option for renaming emx.dll

- emxbind now supports import by name when using method (I2)


emximp
------

- emximp now can directly convert a .def file to a .lib file, without
  having to create an intermediate .imp file

- emximp now supports import by name when writing an .a file for
  method (I2)


emxomf
------

- Write IDMDLL record.  The name of the identifier manipulation DLL
  can be changed with the -I command line option

- Generate HLL version 3 debugging information for IPMD of the C/C++
  Tools 2.0 package

- New -D option for renaming the data segment.  This can be used for
  creating dynamic link libraries which have both instance data and
  shared data

- The default stack size for modules translated with the -m option has
  been increased to 0x8000 bytes

- Support import by name

- The -l option now takes an option argument, the entry symbol


emxomfld
--------

- New -O option for passing options to LINK386

- New -Zdll option to tell emxomfld that a DLL is being built

- Pass /base:0x10000 to LINK386 unless a DLL is built or the -T option
  is specified

- The -l option no longer prepends `lib' to the name of the library

- The directories set by -L options are now inserted at the start of
  the LIB environment variable


listomf
-------

- List HLL version 3 debugging information.  Older versions of HLL
  debugging information are no longer supported

- Now lists more OMF record types in human-readable form


GCC

- Version 2.5.7 has been ported to emx.  See \emx\doc\NEWS.GCC for
  details

- Under OS/2, GCC now supports -pipe

- GCCLOAD and GCCOPT environment variables added

- New -Zlinker option to pass options to LINK386

- Pass -Zdll option to emxomfld


GNU ld
------

- Use new C++ demangler

- The -l option no longer prepends `lib' to the name of the library


GNU nm
------

- Use new C++ demangler


Libraries
---------

- os2emx.h: Rename CPSZ to PCSZ, CPCH to PCCH

- Definition of HUGE and HUGE_VAL changed

- The type of the fields of struct tms (sys/times.h) has been changed
  from time_t to clock_t

- All the libraries have been renamed to remove the `lib' prefix

- Each thread now has its own set of signal handlers.  raise() raises
  a signal in the current thread, kill() can be used to send a signal
  to the main thread (thread 1)

- access(): Directories on a CDROM are not writable

- _msize() now returns 0 if the argument is NULL

- _fnexplode(): No longer crashes when applied to an empty directory

- open() etc.: Move to the end of the file when opening a file for
  appending.  This is required for passing the handle to a child
  process

- popen() and system(): The COMSPEC environment variable can now be
  overriden with the EMXSHELL environment variable

- popen() and system(): Use -c instead of /c unless COMPSPEC (or
  EMXSHELL) points to cmd.exe, 4os2.exe, command.com or 4dos.com

- printf(), scanf() etc. and strtod() have been rewritten.  Several
  small bugs have been removed (and replaced by new ones :-)

- rand() is now thread-safe when using the multithread libraries

- Various small bugs in strtol() and strtoul() fixed

- Bug in memcmp() and strcmp() fixed (wrong sign)

- _threadstore() and _threadid added

- _osminor and _osmajor fixed for -Zsys

- open() and fopen() etc. didn't update the time stamp of a file when
  opening an existing file of size 0 for writing

- open() and fopen() etc. now remove the final Ctrl-Z when opening a
  file for appending in write-only mode.  Previously, this was done
  only in read/write mode.  Note that this requires opening the file
  in read/write mode, temporarily

- _execname() added (not yet implemented under DOS)

- _envargs() added

- Functions which support the `long double' format have been added

- You can now build DLLs with -Zomf and -Zsys.  There was a bug in the
  startup code of the emx 0.8g C library

- The `load' sample program has been replaced with the `emxload' tool

- Library functions for keeping OS/2 programs in memory added:
  _emxload_env() etc.

- System call library (-Zsys): Decommit pages when shrinking the size
  of the heap with brk() or sbrk()

- System call library (-Zsys): waitpid() waits for any child process
  if PID is -1

- wait(): Set errno to ECHILD (not ESRCH) if there are no child processes

- Functions __ctordtorInit() and __ctordtorTerm() for calling static
  constructors and destructors, respectively, in dynamic link
  libraries have been added

- Add _errno() function for creating libraries that can be used for
  single-thread and multithread programs

- New library for reading module definition files: moddef (see
  _md_open() for details)


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

- The supplemental files for patching the GNU programs have been moved
  from \emx\gnu to \emx\gnu\patches

- bsddev.doc is now available as OS/2 on-line book


0.8g (13-Jul-1993)
==================

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

- IMPORTANT: The -Zmt GCC option has been renamed -Zmtd.  If GCC
  complains about an unknown -Zmt option, use -Zmtd instead (unless
  you want to use static linking).  Most existing makefiles use -Zmt
  for dynamic linking

- The emx runtime is now available in a separate package: emxrt.zip.
  user.doc has been renamed emxrt.doc and improved.  See also
  emxrt.inf


Highlights
----------

- You can now statically link multithread programs

- emxomf now converts debugging information suitable for IBM's IPMD
  debugger

- os2emx.h enhanced

- New versions of GNU programs have been ported: GCC 2.4.5 (see
  \emx\doc\NEWS.GCC), GDB 4.9 (including DUEL and REXX) and texinfo 3.1

- Source code for emxomf, emxomfar and emxomfld is now available

- Dynamic link library for the 32-bit wrappers for 16-bit OS/2 API
  functions

- Hypertext documentation in OS/2 .inf format (on-line books)


emx

- SIGUSR1 and SIGUSR2 added

- umask() fixed


emx for OS/2
------------

- waitpid() returned an incorrect termination status

- termio keyboard buffer size increased (1024 characters now, was 256)

- Decommit pages when shrinking the size of the heap with brk() or
  sbrk().  This saves memory (swap space) when using a malloc()
  package which can shrink the size of the heap

- __spawnve() now does special argument quoting for CMD.EXE and
  4OS2.EXE.  Note that this may break existing programs such as MAKE.
  If you have trouble with an emx port of MAKE, get the latest version
  of that port -- the problem has probably been fixed in the
  meantime

- P_PM and P_NOSESSION implemented for spawn*()

- Core dumps caused by signals and _core() improved, EIP is now in the
  function which called __raise() or __core().  This simplifies post
  mortem debugging after abort() has been called as GDB's backtrace
  command will work properly

- Thunks to both _pascal and _cdecl functions can be built


emx for DOS
-----------

- Using emxl.exe no longer reduces the maximum length of the command
  line

- Several emx options are now local to the process for which they have
  been given (by emxbind)

- Options set by emxbind are now honored by emx programs started by
  emx programs

- Nearly asynchronous handling of Ctrl-Break

- Additional interrupts supported: VESA functions of INT 10H, mouse
  interface via INT 33H

- Bug in emxl.exe fixed: now you no longer have to sort the PATH
  directories by length

- Bug fixed: debuggers couldn't access the initial argv[] and envp[]
  arrays and strings

- __spawnve() now does special argument quoting for COMMAND.COM and
  4DOS.COM


emxbind
-------

- Derive the module name from the output file name

- Reduce the alignment of the DOS stub

- The value of the STACKSIZE statement was rounded slightly
  incorrectly

- The -h# and -k# options now accept octal and hexadecimal numbers

TTYL,

=--Ron  TeamOS2

Fidonet:  Ronald Van Iwaarden 1:104/338{at}fidonet.org
OS2net:   Ronald Van Iwaarden 81:313/1{at}os2net.ftn
Internet: rvaniwaa{at}carbon.denver.colorado.edu

---
---
---
---
--- timEd/2-B9

* Origin: The OS/2 Source BBS (303)744-0373 (1:104/338)
SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413
SEEN-BY: 711/430 807 808 809 934 942 949 712/353 623 713/888 800/1
@PATH: 104/338 730 1 3615/50 229/2 12/2442 711/409 54/54 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.