misc/90680: make thinks "^.for.o:" is a directive (".for something in ...")

Andreas Haakh bugReporter at ib-haakh.de
Tue Dec 20 05:20:03 PST 2005


>Number:         90680
>Category:       misc
>Synopsis:       make thinks "^.for.o:" is a directive (".for something in ...")
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 20 13:20:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Andreas Haakh
>Release:        6.0-CURRENT
>Organization:
Ingenieurbüro Haakh
>Environment:
FreeBSD Crabberio.Haakh.de 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Mon Dec 12 14:23:15 CET 2005     root at Crabberio.Haakh.de:/usr/obj/usr/src/sys/CRABBERIO  amd64

>Description:
              Make interprets a rule like ".for.o:" as a ".for"-directive.
>How-To-Repeat:
Create a Makefile containing
.SUFFIXES: .for
.for.o:

and run make.
>Fix:
Following patch solves the problem for me but if a suffix equals any other directive, the same error will probably show up.
--- make/for.c  Tue May 10 14:02:15 2005
+++ makeX/for.c Tue Dec 20 13:37:23 2005
@@ -101,6 +101,12 @@
        ptr = line;

        /*
+        * for is only valid if a space-character comes next
+        */
+       if (!isspace((u_char)*ptr))
+           return (FALSE);
+
+       /*
         * Skip space between for and the variable.
         */
        for (ptr++; *ptr && isspace((u_char)*ptr); ptr++)

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list