Skip to contentSkip to conversation

kbuild: simpler generation of constants for assembly

PATCH Superseded Alexey Dobriyan 2 participants 3 messages May 20, 2016 – Jun 10, 2016 Kbuild

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kbuild: simpler generation of constants for assembly

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.

---

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(-)
Kbuild +1 -11
@@ -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
 
arch/ia64/kernel/Makefile +1 -7
@@ -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
 
include/linux/kbuild.h +1 -1
@@ -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->" : : )
 
scripts/mod/Makefile +1 -10
@@ -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
 
#1 lore raw
Quoted 7 lines · On Sat, 21 May 2016 01:27:36 +0300 Alexey Dobriyan <[email protected]> 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.

Quoted 7 lines

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

---

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

#2 lore raw
Quoted 19 lines · Andrew Morton
Quoted 7 lines · On Sat, 21 May 2016 01:27:36 +0300 Alexey Dobriyan <[email protected]> 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.

Quoted 7 lines

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

---

NOT compile tested on ia64.
Compile tested on arm.

I tried ia64 defconfig and it exploded.

Quoted 8 lines

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