m4: define yylex based on __DragonFly_version
authorJohn Marino <draco@marino.st>
Sat, 19 Jan 2013 16:32:39 +0000 (17:32 +0100)
committerJohn Marino <draco@marino.st>
Sat, 19 Jan 2013 18:15:41 +0000 (19:15 +0100)
The old lex wants it and emits errors if it's not there.
The new lex doesn't want it, and emits warnings if it is there.
On gcc44, the build breaks on an error.
To make both happy, switch it on based on recent __DragonFly_version bump.

Bump __DragonFly_version to be 100% everyone can upgrade

sys/sys/param.h
usr.bin/m4/parser.y
usr.bin/m4/tokenizer.l

index d0903d3..846fdf3 100644 (file)
  * 300300 - 3.3 master
  * 300301 - Add eaccess syscall
  * 300302 - fpsave changes - ucontext_t, mcontext_t, sigcontext, sigframe
+ * 300303 - Demarcation of old m4/flex with new m4/flex
 */
 #undef __DragonFly_version
-#define __DragonFly_version 300302     /* propagated to newvers */
+#define __DragonFly_version 300303     /* propagated to newvers */
 
 #include <sys/_null.h>
 
index bbb2195..4b51ee1 100644 (file)
@@ -22,6 +22,7 @@
 #include <stddef.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <sys/param.h>
 
 #include "mdef.h"
 #include "extern.h"
@@ -29,6 +30,9 @@
 #define        YYSTYPE int32_t
 
 extern int yylex(void);
+#if __DragonFly_version < 300303
+extern int yyparse(void);
+#endif
 extern int yyerror(const char *);
 %}
 %token NUMBER
index a32cfca..451eae7 100644 (file)
 #include <errno.h>
 #include <stdint.h>
 #include <limits.h>
+#include <sys/param.h>
 
 extern int mimic_gnu;
 extern int32_t yylval;
 
 int32_t number(void);
 int32_t parse_radix(void);
+#if __DragonFly_version < 300303
+extern int yylex(void);
+#endif
 %}
 
 delim  [ \t\n]