home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.modula3
- Path: sparky!uunet!haven.umd.edu!darwin.sura.net!rsg1.er.usgs.gov!fmsrl7!lynx.unm.edu!zia.aoc.nrao.edu!laphroaig!cflatter
- From: cflatter@nrao.edu (Chris Flatters)
- Subject: m3make relies on obsolete shell feature
- Message-ID: <1993Jan26.001352.20350@zia.aoc.nrao.edu>
- Sender: news@zia.aoc.nrao.edu
- Reply-To: cflatter@nrao.edu
- Organization: NRAO
- Date: Tue, 26 Jan 93 00:13:52 GMT
- Lines: 30
-
- Make files (.makefile) constructed by m3make from the SRC Modula 3 distribution
- contain rules like the following.
-
- c.o:
- IFS=' $(SEP)'; $(PASS1) -c $(BOOTOPT) $<
- s.o:
- IFS=' $(SEP)'; $(PASS1) -c $(BOOTOPT) $<
-
-
- These cause commands similar to the following to be passed to the shell
-
- IFS=' @'; @cc@ -c .... $<
-
- This will not work unless IFS is used for splitting all fields. This
- is traditionally the case for the Bourne shell but is not the case for
- the POSIX.2 shell: the POSIX.2 shell only performs splitting on fields
- that result from tilde expansion, parameter expansion, command
- substitution and arithmetic expansion (section 3.6). The splitting of
- other fields causes a number of problems (including some security
- holes) and has been removed from some Bourne shells (eg. 386BSD --- and
- probably other NET-2 derivatives) that do not fully conform to
- POSIX.2. m3make will not, therefore, work in its current form on
- systems that comply with POSIX.2 or have a corrected Bourne shell.
-
- Which part of the system relies on the use of a non-whitespace separator
- in the definitions of the compiler passes? Can the seperators be elided
- when creating the .makefile(s) without causing any side effects?
-
- Chris Flatters
- cflatter@nrao.edu
-