home *** CD-ROM | disk | FTP | other *** search
- Attention:
-
- Starting with ixemul.library version 42.0 the ssystem() function is no longer
- supported. The only application that uses this function (to my knowledge)
- is 'gcc'. Using 'gcc' with the current library will put up a requester telling
- you that ssystem() is no longer available.
-
- Fortunately, every gcc-distribution also contained a gccv executable.
- Delete your 'gcc' executable and rename 'gccv' to 'gcc'. This version is
- completely identical to 'gcc', but it doesn't use ssystem(). Better, this
- version supports the -pipe option.
-
- Future gcc-versions (hopefully starting from version 2.7.2) will no longer
- make use of the ssystem() function, and the separate 'gccv' executable will
- disappear.
-
- Why was ssystem() removed? This function was a precursor to the standard Unix
- vfork()/execve() function pair. Both spawn a new process (for example,
- 'gcc' starts 'cpp', followed by 'cc1', followed by 'as'), but the
- vfork()/execve() method integrates seamlessly with the ixemul.library (to
- be more specific, the new process is within the same process group), while
- ssystem() uses the Amiga kernel function RunCommand(), which runs the new
- process outside the parent's process group. Usually this is no problem, but
- once you break a make-run using Ctrl-C, the library kills all processes
- within the same process group. Because ssystem() puts the new process outside
- the current process group, this will lead to a situation where the parent
- has been killed, but the child (the new process created with RunCommand) lives
- on. Once the child dies, it is without a parent, which most probably leads to a
- crash.
-
- Due to the fact that 1) hardly anyone knew about this function, and 2) it
- is a dangerous function to use since vfork()/execve() does a much better
- job, I have decided to remove it from the library.
-
- If it turns out that there are many more programs that use ssystem()
- (besides gcc), then I might reconsider this decision. But for now it is no
- longer supported in the interest of stability.
-
- Hans Verkuil (hans@wyst.hobby.nl)
-