tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Changing make(1) behavior: overriding suffix rule selection



>While the behavior is historical, it can also lead to problems if
>the user is expecting POSIX compliant or gmake compatible behavior.
>A consensus on how make should work in this case is needed.

As someone else pointed out in the earlier thread we have

.POSIX:

as a means of indicating a desire for POSIX behavior.

Right now it only affects the makefiles themselves (by setting %POSIX)
but make itself can also take note and use it to enable any 
"strict POSIX" behavior that might break compatability.

This is what I did in the patch I have.
The unit tests which rely on the new behavior 
have .POSIX:  at their start and thus behave as desired.
The imsrc-compat one I posted the other day does not, and so behaves in
the old way.

Since I put the white-space handling into that bucket, I just did

diff -r 60c0e077d44f bmake/parse.c
--- a/bmake/parse.c     Sat Aug 30 16:06:21 2014 -0700
+++ b/bmake/parse.c     Thu Sep 04 13:29:50 2014 -0700
@@ -1566,6 +1566,7 @@
 #ifdef POSIX
             case Posix:
                 Var_Set("%POSIX", "1003.2", VAR_GLOBAL, 0);
+                posix_strict = 1;       /* we need to know now */
                 break;
 #endif

The number of places that 'posix_strict' needs to be tested is low
(about 6 in my patch).



Home | Main Index | Thread Index | Old Index