linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kbuild: simpler generation of constants for assembly
@ 2016-05-20 22:27 Alexey Dobriyan
  2016-06-02 23:24 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Dobriyan @ 2016-05-20 22:27 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel

Instead of showing how cool sed(1) invocation could be, rely on the fact
that gcc doesn't really look inside "asm" statement body and more or less
directly emits it into assembly. Pretend "#define" is an instruction.

%a prints integer as plain integer without '$' or other characters.
C++ comment takes care of trailing '#' character nobody asked for.

Remove empty lines in generated file while I'm at it.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

	NOT compile tested on ia64.
	Compile tested on arm.

 Kbuild                    |   12 +-----------
 arch/ia64/kernel/Makefile |    8 +-------
 include/linux/kbuild.h    |    2 +-
 scripts/mod/Makefile      |   11 +----------
 4 files changed, 4 insertions(+), 29 deletions(-)

--- a/Kbuild
+++ b/Kbuild
@@ -6,14 +6,6 @@
 # 3) Generate asm-offsets.h (may need bounds.h and timeconst.h)
 # 4) Check for missing system calls
 
-# Default sed regexp - multiline due to syntax constraints
-define sed-y
-	"/^->/{s:->#\(.*\):/* \1 */:; \
-	s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
-	s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
-	s:->::; p;}"
-endef
-
 # Use filechk to avoid rebuilds when a header changes, but the resulting file
 # does not
 define filechk_offsets
@@ -25,9 +17,7 @@ define filechk_offsets
 	 echo " *"; \
 	 echo " * This file was generated by Kbuild"; \
 	 echo " */"; \
-	 echo ""; \
-	 sed -ne $(sed-y); \
-	 echo ""; \
+	 sed -ne '/#define/p'; \
 	 echo "#endif" )
 endef
 
--- a/arch/ia64/kernel/Makefile
+++ b/arch/ia64/kernel/Makefile
@@ -50,10 +50,6 @@ CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31
 # The gate DSO image is built using a special linker script.
 include $(src)/Makefile.gate
 
-# Calculate NR_IRQ = max(IA64_NATIVE_NR_IRQS, XEN_NR_IRQS, ...) based on config
-define sed-y
-	"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
-endef
 quiet_cmd_nr_irqs = GEN     $@
 define cmd_nr_irqs
 	(set -e; \
@@ -65,9 +61,7 @@ define cmd_nr_irqs
 	 echo " * This file was generated by Kbuild"; \
 	 echo " *"; \
 	 echo " */"; \
-	 echo ""; \
-	 sed -ne $(sed-y) $<; \
-	 echo ""; \
+	 sed -ne '/#define/p' $<; \
 	 echo "#endif" ) > $@
 endef
 
--- a/include/linux/kbuild.h
+++ b/include/linux/kbuild.h
@@ -2,7 +2,7 @@
 #define __LINUX_KBUILD_H
 
 #define DEFINE(sym, val) \
-        asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+	asm volatile ("#define " #sym " %a0 //" #val :: "i" (val))
 
 #define BLANK() asm volatile("\n->" : : )
 
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -7,13 +7,6 @@ modpost-objs	:= modpost.o file2alias.o sumversion.o
 
 devicetable-offsets-file := devicetable-offsets.h
 
-define sed-y
-	"/^->/{s:->#\(.*\):/* \1 */:; \
-	s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
-	s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
-	s:->::; p;}"
-endef
-
 quiet_cmd_offsets = GEN     $@
 define cmd_offsets
 	(set -e; \
@@ -25,9 +18,7 @@ define cmd_offsets
 	 echo " * This file was generated by Kbuild"; \
 	 echo " *"; \
 	 echo " */"; \
-	 echo ""; \
-	 sed -ne $(sed-y) $<; \
-	 echo ""; \
+	 sed -ne '/#define/p' $<; \
 	 echo "#endif" ) > $@
 endef
 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] kbuild: simpler generation of constants for assembly
  2016-05-20 22:27 [PATCH] kbuild: simpler generation of constants for assembly Alexey Dobriyan
@ 2016-06-02 23:24 ` Andrew Morton
  2016-06-10 11:13   ` Alexey Dobriyan
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2016-06-02 23:24 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: linux-kernel

On Sat, 21 May 2016 01:27:36 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:

> Instead of showing how cool sed(1) invocation could be, rely on the fact
> that gcc doesn't really look inside "asm" statement body and more or less
> directly emits it into assembly. Pretend "#define" is an instruction.
> 
> %a prints integer as plain integer without '$' or other characters.
> C++ comment takes care of trailing '#' character nobody asked for.
> 
> Remove empty lines in generated file while I'm at it.
> 
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
> 
> 	NOT compile tested on ia64.
> 	Compile tested on arm.

I tried ia64 defconfig and it exploded.


In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_usb_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:193:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, match_flags);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:194:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, idVendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:195:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, idProduct);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:196:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bcdDevice_lo);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:197:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bDeviceClass);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:198:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bDeviceSubClass);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:199:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bDeviceProtocol);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:200:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bInterfaceClass);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:201:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bInterfaceSubClass);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:202:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bInterfaceProtocol);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:203:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bInterfaceNumber);
  ^
scripts/mod/file2alias.c: In function 'do_usb_entry_multi':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:300:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, match_flags);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:301:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, idVendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:302:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, idProduct);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:303:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bcdDevice_lo);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:304:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bcdDevice_hi);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:305:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bDeviceClass);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:306:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, usb_device_id, bInterfaceClass);
  ^
scripts/mod/file2alias.c: In function 'do_usb_table':
scripts/mod/file2alias.c:363:50: error: expected expression before ';' token
  const unsigned long id_size = SIZE_usb_device_id;
                                                  ^
scripts/mod/file2alias.c: In function 'do_of_entry_multi':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:380:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, of_device_id, name);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:381:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, of_device_id, type);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:382:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, of_device_id, compatible);
  ^
scripts/mod/file2alias.c: In function 'do_of_table':
scripts/mod/file2alias.c:406:49: error: expected expression before ';' token
  const unsigned long id_size = SIZE_of_device_id;
                                                 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_hid_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:421:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hid_device_id, bus);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:422:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hid_device_id, group);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:423:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hid_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:424:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hid_device_id, product);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:434:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("hid", hid_device_id, do_hid_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_ieee1394_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:440:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ieee1394_device_id, match_flags);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:441:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ieee1394_device_id, vendor_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:442:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ieee1394_device_id, model_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:443:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ieee1394_device_id, specifier_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:444:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ieee1394_device_id, version);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:459:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("ieee1394", ieee1394_device_id, do_ieee1394_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_pci_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:469:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pci_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:470:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pci_device_id, device);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:471:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pci_device_id, subvendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:472:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pci_device_id, subdevice);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:473:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pci_device_id, class);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:474:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pci_device_id, class_mask);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:503:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("pci", pci_device_id, do_pci_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_ccw_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:509:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ccw_device_id, match_flags);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:510:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ccw_device_id, cu_type);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:511:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ccw_device_id, cu_model);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:512:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ccw_device_id, dev_type);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:513:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ccw_device_id, dev_model);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:527:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("ccw", ccw_device_id, do_ccw_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_ap_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:533:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ap_device_id, dev_type);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:538:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("ap", ap_device_id, do_ap_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_css_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:544:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, css_device_id, type);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:549:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("css", css_device_id, do_css_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_serio_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:555:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, serio_device_id, type);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:556:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, serio_device_id, proto);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:557:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, serio_device_id, id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:558:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, serio_device_id, extra);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:569:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("serio", serio_device_id, do_serio_entry);
 ^
scripts/mod/file2alias.c: In function 'do_acpi_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:581:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, acpi_device_id, id);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:582:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, acpi_device_id, cls);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:583:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, acpi_device_id, cls_msk);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:607:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("acpi", acpi_device_id, do_acpi_entry);
 ^
scripts/mod/file2alias.c: In function 'do_pnp_device_entry':
scripts/mod/file2alias.c:613:50: error: expected expression before ';' token
  const unsigned long id_size = SIZE_pnp_device_id;
                                                  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:620:3: note: in expansion of macro 'DEF_FIELD_ADDR'
   DEF_FIELD_ADDR(symval + i*id_size, pnp_device_id, id);
   ^
scripts/mod/file2alias.c: In function 'do_pnp_card_entries':
scripts/mod/file2alias.c:639:55: error: expected expression before ';' token
  const unsigned long id_size = SIZE_pnp_card_device_id;
                                                       ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:647:3: note: in expansion of macro 'DEF_FIELD_ADDR'
   DEF_FIELD_ADDR(symval + i*id_size, pnp_card_device_id, devs);
   ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:659:5: note: in expansion of macro 'DEF_FIELD_ADDR'
     DEF_FIELD_ADDR(symval + i2*id_size, pnp_card_device_id, devs);
     ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_pcmcia_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:697:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pcmcia_device_id, match_flags);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:698:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pcmcia_device_id, manf_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:699:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pcmcia_device_id, card_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:700:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pcmcia_device_id, func_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:701:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pcmcia_device_id, function);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:702:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, pcmcia_device_id, device_no);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:703:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, pcmcia_device_id, prod_id_hash);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:728:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("pcmcia", pcmcia_device_id, do_pcmcia_entry);
 ^
scripts/mod/file2alias.c: In function 'do_vio_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:734:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, vio_device_id, type);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:735:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, vio_device_id, compat);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:748:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("vio", vio_device_id, do_vio_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_input_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:768:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, input_device_id, flags);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:769:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, input_device_id, bustype);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:770:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, input_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:771:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, input_device_id, product);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:772:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, input_device_id, version);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:773:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, evbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:774:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, keybit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:775:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, relbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:776:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, absbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:777:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, mscbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:778:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, ledbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:779:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, sndbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:780:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, ffbit);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:781:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, input_device_id, swbit);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:821:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("input", input_device_id, do_input_entry);
 ^
scripts/mod/file2alias.c: In function 'do_eisa_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:826:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, eisa_device_id, sig);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:833:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("eisa", eisa_device_id, do_eisa_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_parisc_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:839:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, parisc_device_id, hw_type);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:840:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, parisc_device_id, hversion);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:841:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, parisc_device_id, hversion_rev);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:842:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, parisc_device_id, sversion);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:853:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("parisc", parisc_device_id, do_parisc_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_sdio_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:859:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, sdio_device_id, class);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:860:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, sdio_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:861:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, sdio_device_id, device);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:870:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("sdio", sdio_device_id, do_sdio_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_ssb_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:876:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ssb_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:877:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ssb_device_id, coreid);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:878:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ssb_device_id, revision);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:887:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("ssb", ssb_device_id, do_ssb_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_bcma_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:893:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, bcma_device_id, manuf);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:894:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, bcma_device_id, id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:895:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, bcma_device_id, rev);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:896:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, bcma_device_id, class);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:906:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("bcma", bcma_device_id, do_bcma_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_virtio_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:912:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, virtio_device_id, device);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:913:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, virtio_device_id, vendor);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:922:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("virtio", virtio_device_id, do_virtio_entry);
 ^
scripts/mod/file2alias.c: In function 'do_vmbus_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:934:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, hv_vmbus_device_id, guid);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:945:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("vmbus", hv_vmbus_device_id, do_vmbus_entry);
 ^
scripts/mod/file2alias.c: In function 'do_i2c_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:951:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, i2c_device_id, name);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:956:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("i2c", i2c_device_id, do_i2c_entry);
 ^
scripts/mod/file2alias.c: In function 'do_spi_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:962:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, spi_device_id, name);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:967:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("spi", spi_device_id, do_spi_entry);
 ^
scripts/mod/file2alias.c: In function 'do_dmi_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:1003:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, dmi_system_id, matches);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1022:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("dmi", dmi_system_id, do_dmi_entry);
 ^
scripts/mod/file2alias.c: In function 'do_platform_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:1027:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, platform_device_id, name);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1031:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("platform", platform_device_id, do_platform_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_mdio_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1037:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, mdio_device_id, phy_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1038:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, mdio_device_id, phy_id_mask);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1056:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("mdio", mdio_device_id, do_mdio_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_zorro_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1062:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, zorro_device_id, id);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1067:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("zorro", zorro_device_id, do_zorro_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_isapnp_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1073:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, isapnp_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1074:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, isapnp_device_id, function);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1083:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("isapnp", isapnp_device_id, do_isapnp_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_ipack_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1089:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ipack_device_id, format);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1090:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ipack_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1091:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ipack_device_id, device);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1099:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("ipack", ipack_device_id, do_ipack_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_amba_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1154:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, amba_id, id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1155:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, amba_id, mask);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1170:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("amba", amba_id, do_amba_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_mips_cdmm_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1181:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, mips_cdmm_device_id, type);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1186:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("mipscdmm", mips_cdmm_device_id, do_mips_cdmm_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_x86cpu_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1197:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, x86_cpu_id, feature);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1198:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, x86_cpu_id, family);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1199:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, x86_cpu_id, model);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1200:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, x86_cpu_id, vendor);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1211:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("x86cpu", x86_cpu_id, do_x86cpu_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_cpu_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1216:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, cpu_feature, feature);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1221:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("cpu", cpu_feature, do_cpu_entry);
 ^
scripts/mod/file2alias.c: In function 'do_mei_entry':
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:1227:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, mei_cl_device_id, name);
  ^
scripts/mod/file2alias.c:103:62: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) *f = ((m) + OFF_##devid##_##f)
                                                              ^
scripts/mod/file2alias.c:1228:2: note: in expansion of macro 'DEF_FIELD_ADDR'
  DEF_FIELD_ADDR(symval, mei_cl_device_id, uuid);
  ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1229:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, mei_cl_device_id, version);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1240:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("mei", mei_cl_device_id, do_mei_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_rio_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1246:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, rio_device_id, did);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1247:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, rio_device_id, vid);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1248:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, rio_device_id, asm_did);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1249:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, rio_device_id, asm_vid);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1260:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("rapidio", rio_device_id, do_rio_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_ulpi_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1266:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ulpi_device_id, vendor);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1267:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, ulpi_device_id, product);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1273:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("ulpi", ulpi_device_id, do_ulpi_entry);
 ^
In file included from scripts/mod/file2alias.c:13:0:
scripts/mod/file2alias.c: In function 'do_hda_entry':
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1278:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hda_device_id, vendor_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1279:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hda_device_id, rev_id);
  ^
scripts/mod/file2alias.c:97:85: error: expected expression before ')' token
  typeof(((struct devid *)0)->f) f = TO_NATIVE(*(typeof(f) *)((m) + OFF_##devid##_##f))
                                                                                     ^
scripts/mod/modpost.h:92:23: note: in definition of macro 'TO_NATIVE'
 #define TO_NATIVE(x) (x)
                       ^
scripts/mod/file2alias.c:1280:2: note: in expansion of macro 'DEF_FIELD'
  DEF_FIELD(symval, hda_device_id, api_version);
  ^
scripts/mod/file2alias.c: At top level:
scripts/mod/file2alias.c:111:14: error: expected expression before ',' token
   SIZE_##type, (function) };    \
              ^
scripts/mod/file2alias.c:1290:1: note: in expansion of macro 'ADD_TO_DEVTABLE'
 ADD_TO_DEVTABLE("hdaudio", hda_device_id, do_hda_entry);
 ^
make[2]: *** [scripts/mod/file2alias.o] Error 1
make[1]: *** [scripts/mod] Error 2
make: *** [scripts] Error 2
make: *** Waiting for unfinished jobs....
In file included from include/linux/mm_types.h:14,
                 from include/linux/sched.h:27,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/page-flags-layout.h:14:18: error: operator '<' has no left operand
include/linux/page-flags-layout.h:16:20: error: operator '<=' has no left operand
include/linux/page-flags-layout.h:18:20: error: operator '<=' has no left operand
include/linux/page-flags-layout.h:20:20: error: operator '<=' has no left operand
include/linux/page-flags-layout.h:23:2: error: #error ZONES_SHIFT -- too many zones configured adjust calculation
include/linux/page-flags-layout.h:57:20: warning: "ZONES_SHIFT" is not defined
include/linux/page-flags-layout.h:57:75: error: operator '-' has no right operand
include/linux/page-flags-layout.h:78:20: warning: "ZONES_SHIFT" is not defined
include/linux/page-flags-layout.h:78:93: error: operator '-' has no right operand
In file included from include/linux/sched.h:27,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/mm_types.h:184:5: error: operator '>' has no left operand
In file included from include/linux/topology.h:32,
                 from include/linux/sched.h:42,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/mmzone.h:341: error: flexible array member not at end of struct
include/linux/mmzone.h:607: error: expected expression before ')' token
include/linux/mmzone.h:608: warning: no semicolon at end of struct or union
include/linux/mmzone.h:628: error: flexible array member not at end of struct
In file included from include/linux/topology.h:32,
                 from include/linux/sched.h:42,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/mmzone.h:840: error: size of array 'sysctl_lowmem_reserve_ratio' is negative
In file included from include/linux/topology.h:32,
                 from include/linux/sched.h:42,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/mmzone.h: In function 'first_zones_zonelist':
include/linux/mmzone.h:960: error: 'struct zonelist' has no member named '_zonerefs'
In file included from include/linux/sched.h:59,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/gfp.h:344:10: warning: "ZONES_SHIFT" is not defined
In file included from include/linux/sched.h:59,
                 from arch/ia64/kernel/asm-offsets.c:9:
include/linux/gfp.h: In function 'gfp_zone':
include/linux/gfp.h:381: error: 'ZONES_SHIFT' undeclared (first use in this function)
include/linux/gfp.h:381: error: (Each undeclared identifier is reported only once
include/linux/gfp.h:381: error: for each function it appears in.)
include/linux/gfp.h:414: confused by earlier errors, bailing out
make[1]: *** [arch/ia64/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] kbuild: simpler generation of constants for assembly
  2016-06-02 23:24 ` Andrew Morton
@ 2016-06-10 11:13   ` Alexey Dobriyan
  0 siblings, 0 replies; 3+ messages in thread
From: Alexey Dobriyan @ 2016-06-10 11:13 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux Kernel

On Fri, Jun 3, 2016 at 2:24 AM, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Sat, 21 May 2016 01:27:36 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
>
>> Instead of showing how cool sed(1) invocation could be, rely on the fact
>> that gcc doesn't really look inside "asm" statement body and more or less
>> directly emits it into assembly. Pretend "#define" is an instruction.
>>
>> %a prints integer as plain integer without '$' or other characters.
>> C++ comment takes care of trailing '#' character nobody asked for.
>>
>> Remove empty lines in generated file while I'm at it.
>>
>> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
>> ---
>>
>>       NOT compile tested on ia64.
>>       Compile tested on arm.
>
> I tried ia64 defconfig and it exploded.

> In file included from include/linux/mm_types.h:14,
>                  from include/linux/sched.h:27,
>                  from arch/ia64/kernel/asm-offsets.c:9:
> include/linux/page-flags-layout.h:14:18: error: operator '<' has no left operand
> include/linux/page-flags-layout.h:16:20: error: operator '<=' has no left operand
> include/linux/page-flags-layout.h:18:20: error: operator '<=' has no left operand
> include/linux/page-flags-layout.h:20:20: error: operator '<=' has no left operand
> include/linux/page-flags-layout.h:23:2: error: #error ZONES_SHIFT -- too many zones configured adjust calculation

"%0" :: "i" (x) prints number with $ sign.
"%a0" :: "i" (x) prints number without $ sign.

on ia64:
"%0: prints number without $.
"%a0" prints nothing.

I can add special case for ia64 but other archs can be inconsistent as well.

    Alexey

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-06-10 11:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-20 22:27 [PATCH] kbuild: simpler generation of constants for assembly Alexey Dobriyan
2016-06-02 23:24 ` Andrew Morton
2016-06-10 11:13   ` Alexey Dobriyan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).