Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1438943 > unrolled thread

[PATCH v2] kbuild: simpler generation of assembly constants

Started byAlexey Dobriyan <adobriyan@gmail.com>
First post2016-07-07 23:50 +0200
Last post2016-07-11 13:00 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v2] kbuild: simpler generation of assembly constants Alexey Dobriyan <adobriyan@gmail.com> - 2016-07-07 23:50 +0200
    Re: [PATCH v2] kbuild: simpler generation of assembly constants kbuild test robot <lkp@intel.com> - 2016-07-11 12:50 +0200
    Re: [PATCH v2] kbuild: simpler generation of assembly constants kbuild test robot <lkp@intel.com> - 2016-07-11 13:00 +0200
    Re: [PATCH v2] kbuild: simpler generation of assembly constants kbuild test robot <lkp@intel.com> - 2016-07-11 13:00 +0200

#1438943 — [PATCH v2] kbuild: simpler generation of assembly constants

FromAlexey Dobriyan <adobriyan@gmail.com>
Date2016-07-07 23:50 +0200
Subject[PATCH v2] kbuild: simpler generation of assembly constants
Message-ID<rSplf-43R-1@gated-at.bofh.it>
gcc doesn't really look inside "asm" statements and more or less
directly emits it into assembly. So pretend "#define" is CPU
instruction.

Also, use C++ comment to block whatever garbage is put at the end of
the line by compiler.

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

 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
@@ -7,14 +7,6 @@
 # 4) Check for missing system calls
 # 5) Generate constants.py (may need bounds.h)
 
-# 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
@@ -26,9 +18,7 @@ define filechk_offsets
 	 echo " *"; \
 	 echo " * This file was generated by Kbuild"; \
 	 echo " */"; \
-	 echo ""; \
-	 sed -ne $(sed-y); \
-	 echo ""; \
+	 sed -ne '/#define/{s/\$$//;s/#//2;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/{s/\$$//;s/#//2;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 " %0 //" #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/{s/\$$//;s/#//2;p;}' $<; \
 	 echo "#endif" ) > $@
 endef
 

[toc] | [next] | [standalone]


#1440465

Fromkbuild test robot <lkp@intel.com>
Date2016-07-11 12:50 +0200
Message-ID<rTGWK-5RP-5@gated-at.bofh.it>
In reply to#1438943

[Multipart message — attachments visible in raw view] — view raw

Hi,

[auto build test ERROR on ia64/next]
[also build test ERROR on v4.7-rc7 next-20160711]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Alexey-Dobriyan/kbuild-simpler-generation-of-assembly-constants/20160708-054403
base:   https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git next
config: sparc-allmodconfig (attached as .config)
compiler: sparc-linux-gcc (GCC) 4.9.0
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=sparc 

All error/warnings (new ones prefixed by >>):

   arch/sparc/kernel/entry.S: Assembler messages:
>> arch/sparc/kernel/entry.S:889: Error: bad expression
>> arch/sparc/kernel/entry.S:889: Warning: division by zero
>> arch/sparc/kernel/entry.S:889: Error: Illegal operands
   arch/sparc/kernel/entry.S:913: Error: bad expression
   arch/sparc/kernel/entry.S:913: Warning: division by zero
   arch/sparc/kernel/entry.S:913: Error: Illegal operands
   arch/sparc/kernel/entry.S:929: Error: bad expression
   arch/sparc/kernel/entry.S:929: Warning: division by zero
   arch/sparc/kernel/entry.S:929: Error: Illegal operands

vim +889 arch/sparc/kernel/entry.S

^1da177e Linus Torvalds 2005-04-16  873  	 * XXX These three should be consolidated into mostly shared
^1da177e Linus Torvalds 2005-04-16  874  	 * XXX code just like on sparc64... -DaveM
^1da177e Linus Torvalds 2005-04-16  875  	 */
^1da177e Linus Torvalds 2005-04-16  876  	.align	4
^1da177e Linus Torvalds 2005-04-16  877  	.globl	sys_fork, flush_patch_two
^1da177e Linus Torvalds 2005-04-16  878  sys_fork:
^1da177e Linus Torvalds 2005-04-16  879  	mov	%o7, %l5
^1da177e Linus Torvalds 2005-04-16  880  flush_patch_two:
^1da177e Linus Torvalds 2005-04-16  881  	FLUSH_ALL_KERNEL_WINDOWS;
^1da177e Linus Torvalds 2005-04-16  882  	ld	[%curptr + TI_TASK], %o4
^1da177e Linus Torvalds 2005-04-16  883  	rd	%psr, %g4
^1da177e Linus Torvalds 2005-04-16  884  	WRITE_PAUSE
^1da177e Linus Torvalds 2005-04-16  885  	mov	SIGCHLD, %o0			! arg0:	clone flags
^1da177e Linus Torvalds 2005-04-16  886  	rd	%wim, %g5
^1da177e Linus Torvalds 2005-04-16  887  	WRITE_PAUSE
^1da177e Linus Torvalds 2005-04-16  888  	mov	%fp, %o1			! arg1:	usp
^1da177e Linus Torvalds 2005-04-16 @889  	std	%g4, [%o4 + AOFF_task_thread + AOFF_thread_fork_kpsr]
^1da177e Linus Torvalds 2005-04-16  890  	add	%sp, STACKFRAME_SZ, %o2		! arg2:	pt_regs ptr
^1da177e Linus Torvalds 2005-04-16  891  	mov	0, %o3
^1da177e Linus Torvalds 2005-04-16  892  	call	sparc_do_fork
^1da177e Linus Torvalds 2005-04-16  893  	 mov	%l5, %o7
^1da177e Linus Torvalds 2005-04-16  894  
^1da177e Linus Torvalds 2005-04-16  895  	/* Whee, kernel threads! */
^1da177e Linus Torvalds 2005-04-16  896  	.globl	sys_clone, flush_patch_three
^1da177e Linus Torvalds 2005-04-16  897  sys_clone:

:::::: The code at line 889 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [next] | [standalone]


#1440475

Fromkbuild test robot <lkp@intel.com>
Date2016-07-11 13:00 +0200
Message-ID<rTH6q-5VY-13@gated-at.bofh.it>
In reply to#1438943

[Multipart message — attachments visible in raw view] — view raw

Hi,

[auto build test ERROR on ia64/next]
[also build test ERROR on v4.7-rc7 next-20160711]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Alexey-Dobriyan/kbuild-simpler-generation-of-assembly-constants/20160708-054403
base:   https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git next
config: um-i386_defconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
        # save the attached .config to linux build tree
        make ARCH=um SUBARCH=i386

All error/warnings (new ones prefixed by >>):

   In file included from arch/um/kernel/skas/clone.c:11:0:
   arch/x86/um/shared/sysdep/stub_32.h: In function 'remap_stack':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
>> arch/x86/um/shared/sysdep/stub_32.h:84:35: note: in expansion of macro 'STUB_DATA'
         : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
                                      ^~~~~~~~~
   arch/um/include/shared/as-layout.h:33:56: note: each undeclared identifier is reported only once for each function it appears in
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
>> arch/x86/um/shared/sysdep/stub_32.h:84:35: note: in expansion of macro 'STUB_DATA'
         : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
                                      ^~~~~~~~~
   arch/um/kernel/skas/clone.c: In function 'stub_clone_handler':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
   arch/um/kernel/skas/clone.c:27:48: note: in expansion of macro 'STUB_DATA'
     struct stub_data *data = (struct stub_data *) STUB_DATA;
                                                   ^~~~~~~~~
--
   In file included from arch/um/os-Linux/skas/mem.c:12:0:
   arch/x86/um/shared/sysdep/stub_32.h: In function 'remap_stack':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
>> arch/x86/um/shared/sysdep/stub_32.h:84:35: note: in expansion of macro 'STUB_DATA'
         : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
                                      ^~~~~~~~~
   arch/um/include/shared/as-layout.h:33:56: note: each undeclared identifier is reported only once for each function it appears in
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
>> arch/x86/um/shared/sysdep/stub_32.h:84:35: note: in expansion of macro 'STUB_DATA'
         : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
                                      ^~~~~~~~~
   arch/um/os-Linux/skas/mem.c: In function 'do_syscall_stub':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
   arch/um/os-Linux/skas/mem.c:81:53: note: in expansion of macro 'STUB_DATA'
      data = (unsigned long *)(mm_idp->stack + offset - STUB_DATA);
                                                        ^~~~~~~~~
   arch/um/os-Linux/skas/mem.c: In function 'run_syscall_stub':
   arch/um/os-Linux/skas/mem.c:129:44: error: 'UM_KERN_PAGE_MASK' undeclared (first use in this function)
     if (!done && ((((unsigned long) stack) & ~UM_KERN_PAGE_MASK) <
                                               ^~~~~~~~~~~~~~~~~
   arch/um/os-Linux/skas/mem.c:130:8: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
           UM_KERN_PAGE_SIZE - 10 * sizeof(long))) {
           ^~~~~~~~~~~~~~~~~
   arch/um/os-Linux/skas/mem.c: In function 'syscall_stub_data':
   arch/um/os-Linux/skas/mem.c:149:34: error: 'UM_KERN_PAGE_MASK' undeclared (first use in this function)
     if ((((unsigned long) *addr) & ~UM_KERN_PAGE_MASK) >=
                                     ^~~~~~~~~~~~~~~~~
   arch/um/os-Linux/skas/mem.c:150:5: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
        UM_KERN_PAGE_SIZE - (10 + data_count) * sizeof(long)) {
        ^~~~~~~~~~~~~~~~~
   In file included from arch/x86/um/shared/sysdep/stub.h:8:0,
                    from arch/um/os-Linux/skas/mem.c:19:
   arch/um/os-Linux/skas/mem.c: In function 'map':
>> arch/x86/um/shared/sysdep/stub_32.h:13:32: error: 'UM_KERN_PAGE_SHIFT' undeclared (first use in this function)
    #define MMAP_OFFSET(o) ((o) >> UM_KERN_PAGE_SHIFT)
                                   ^
>> arch/um/os-Linux/skas/mem.c:176:6: note: in expansion of macro 'MMAP_OFFSET'
         MMAP_OFFSET(offset) };
         ^~~~~~~~~~~
--
   In file included from arch/um/os-Linux/skas/process.c:15:0:
   arch/x86/um/shared/sysdep/stub_32.h: In function 'remap_stack':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
>> arch/x86/um/shared/sysdep/stub_32.h:84:35: note: in expansion of macro 'STUB_DATA'
         : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
                                      ^~~~~~~~~
   arch/um/include/shared/as-layout.h:33:56: note: each undeclared identifier is reported only once for each function it appears in
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
>> arch/x86/um/shared/sysdep/stub_32.h:84:35: note: in expansion of macro 'STUB_DATA'
         : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
                                      ^~~~~~~~~
   arch/um/os-Linux/skas/process.c: In function 'handle_trap':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:34:18: note: in expansion of macro '_UML_AC'
    #define STUB_END _UML_AC((unsigned long), STUB_DATA + UM_KERN_PAGE_SIZE)
                     ^~~~~~~
   arch/um/include/shared/as-layout.h:28:23: note: in expansion of macro '__UML_AC'
    #define _UML_AC(X, Y) __UML_AC(X, Y)
                          ^~~~~~~~
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
   arch/um/include/shared/as-layout.h:34:43: note: in expansion of macro 'STUB_DATA'
    #define STUB_END _UML_AC((unsigned long), STUB_DATA + UM_KERN_PAGE_SIZE)
                                              ^~~~~~~~~
   arch/um/os-Linux/skas/process.c:138:54: note: in expansion of macro 'STUB_END'
     if ((UPT_IP(regs) >= STUB_START) && (UPT_IP(regs) < STUB_END))
                                                         ^~~~~~~~
   arch/um/os-Linux/skas/process.c: In function 'userspace_tramp':
   arch/um/os-Linux/skas/process.c:193:36: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
     addr = mmap64((void *) STUB_CODE, UM_KERN_PAGE_SIZE,
                                       ^~~~~~~~~~~~~~~~~
   arch/um/os-Linux/skas/process.c: In function 'start_userspace':
   arch/um/os-Linux/skas/process.c:247:21: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
     stack = mmap(NULL, UM_KERN_PAGE_SIZE,
                        ^~~~~~~~~~~~~~~~~
   In file included from arch/um/os-Linux/skas/process.c:15:0:
   arch/um/os-Linux/skas/process.c: In function 'init_thread_regs':
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
   arch/um/os-Linux/skas/process.c:425:31: note: in expansion of macro 'STUB_DATA'
     thread_regs[REGS_SP_INDEX] = STUB_DATA + UM_KERN_PAGE_SIZE -
                                  ^~~~~~~~~
   In file included from arch/x86/um/shared/sysdep/stub.h:8:0,
                    from arch/um/os-Linux/skas/process.c:23:
   arch/um/os-Linux/skas/process.c: In function 'copy_context_skas0':
>> arch/x86/um/shared/sysdep/stub_32.h:13:32: error: 'UM_KERN_PAGE_SHIFT' undeclared (first use in this function)
    #define MMAP_OFFSET(o) ((o) >> UM_KERN_PAGE_SHIFT)
                                   ^
>> arch/um/os-Linux/skas/process.c:449:14: note: in expansion of macro 'MMAP_OFFSET'
       .offset = MMAP_OFFSET(new_offset),
                 ^~~~~~~~~~~
   In file included from arch/um/os-Linux/skas/process.c:15:0:
   arch/um/include/shared/as-layout.h:33:56: error: 'UM_KERN_PAGE_SIZE' undeclared (first use in this function)
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                                                           ^
   arch/um/include/shared/as-layout.h:27:27: note: in definition of macro '__UML_AC'
    #define __UML_AC(X, Y) (X(Y))
                              ^
   arch/um/include/shared/as-layout.h:33:19: note: in expansion of macro '_UML_AC'
    #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)
                      ^~~~~~~
   arch/um/os-Linux/skas/process.c:497:25: note: in expansion of macro 'STUB_DATA'
     if (child_data->err != STUB_DATA) {
                            ^~~~~~~~~
   arch/um/os-Linux/skas/process.c: In function 'new_thread':
   arch/um/os-Linux/skas/process.c:522:44: error: 'UM_THREAD_SIZE' undeclared (first use in this function)
     (*buf)[0].JB_SP = (unsigned long) stack + UM_THREAD_SIZE -
                                               ^~~~~~~~~~~~~~
   arch/um/os-Linux/skas/process.c: In function 'start_idle_thread':
   arch/um/os-Linux/skas/process.c:563:4: error: 'UM_THREAD_SIZE' undeclared (first use in this function)
       UM_THREAD_SIZE - sizeof(void *);
       ^~~~~~~~~~~~~~

vim +/UM_KERN_PAGE_SHIFT +13 arch/x86/um/shared/sysdep/stub_32.h

d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07   7  #define __SYSDEP_STUB_H
d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07   8  
d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07   9  #include <asm/ptrace.h>
d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07  10  
d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07  11  #define STUB_SYSCALL_RET EAX
d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07  12  #define STUB_MMAP_NR __NR_mmap2
71f926f2 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2007-10-16 @13  #define MMAP_OFFSET(o) ((o) >> UM_KERN_PAGE_SHIFT)
d67b569f arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-07-07  14  
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  15  static inline long stub_syscall0(long syscall)
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  16  {
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  17  	long ret;
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  18  
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  19  	__asm__ volatile ("int $0x80" : "=a" (ret) : "0" (syscall));
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  20  
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  21  	return ret;
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  22  }
17d46971 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-11-21  23  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  24  static inline long stub_syscall1(long syscall, long arg1)
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  25  {
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  26  	long ret;
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  27  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  28  	__asm__ volatile ("int $0x80" : "=a" (ret) : "0" (syscall), "b" (arg1));
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  29  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  30  	return ret;
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  31  }
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  32  
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  33  static inline long stub_syscall2(long syscall, long arg1, long arg2)
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  34  {
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  35  	long ret;
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  36  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  37  	__asm__ volatile ("int $0x80" : "=a" (ret) : "0" (syscall), "b" (arg1),
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  38  			"c" (arg2));
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  39  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  40  	return ret;
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  41  }
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  42  
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  43  static inline long stub_syscall3(long syscall, long arg1, long arg2, long arg3)
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  44  {
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  45  	long ret;
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  46  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  47  	__asm__ volatile ("int $0x80" : "=a" (ret) : "0" (syscall), "b" (arg1),
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  48  			"c" (arg2), "d" (arg3));
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  49  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  50  	return ret;
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  51  }
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  52  
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  53  static inline long stub_syscall4(long syscall, long arg1, long arg2, long arg3,
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  54  				 long arg4)
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  55  {
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  56  	long ret;
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  57  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  58  	__asm__ volatile ("int $0x80" : "=a" (ret) : "0" (syscall), "b" (arg1),
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  59  			"c" (arg2), "d" (arg3), "S" (arg4));
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  60  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  61  	return ret;
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  62  }
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  63  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  64  static inline long stub_syscall5(long syscall, long arg1, long arg2, long arg3,
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  65  				 long arg4, long arg5)
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  66  {
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  67  	long ret;
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  68  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  69  	__asm__ volatile ("int $0x80" : "=a" (ret) : "0" (syscall), "b" (arg1),
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  70  			"c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5));
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  71  
4f027241 arch/um/include/sysdep-i386/stub.h Paolo 'Blaisorblade' Giarrusso 2005-11-07  72  	return ret;
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  73  }
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  74  
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  75  static inline void trap_myself(void)
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  76  {
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  77  	__asm("int3");
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  78  }
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  79  
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  80  static inline void remap_stack(int fd, unsigned long offset)
9786a8f3 arch/um/include/sysdep-i386/stub.h Bodo Stroesser                 2005-07-07  81  {
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  82  	__asm__ volatile ("movl %%eax,%%ebp ; movl %0,%%eax ; int $0x80 ;"
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  83  			  "movl %7, %%ebx ; movl %%eax, (%%ebx)"
54ae36f2 arch/um/include/sysdep-i386/stub.h Jeff Dike                      2007-10-16 @84  			  : : "g" (STUB_MMAP_NR), "b" (STUB_DATA),
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  85  			    "c" (UM_KERN_PAGE_SIZE),
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  86  			    "d" (PROT_READ | PROT_WRITE),
5b7b15af arch/um/include/sysdep-i386/stub.h Jeff Dike                      2005-12-18  87  			    "S" (MAP_FIXED | MAP_SHARED), "D" (fd),

:::::: The code at line 13 was first introduced by commit
:::::: 71f926f2ea61994470a53c9e11d3ef993197cada uml: stop using libc asm/page.h

:::::: TO: Jeff Dike <jdike@addtoit.com>
:::::: CC: Linus Torvalds <torvalds@woody.linux-foundation.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [next] | [standalone]


#1440479

Fromkbuild test robot <lkp@intel.com>
Date2016-07-11 13:00 +0200
Message-ID<rTH6q-5VY-9@gated-at.bofh.it>
In reply to#1438943

[Multipart message — attachments visible in raw view] — view raw

Hi,

[auto build test ERROR on ia64/next]
[also build test ERROR on v4.7-rc7 next-20160711]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Alexey-Dobriyan/kbuild-simpler-generation-of-assembly-constants/20160708-054403
base:   https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git next
config: sparc-defconfig (attached as .config)
compiler: sparc-linux-gcc (GCC) 4.9.0
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=sparc 

All error/warnings (new ones prefixed by >>):

   arch/sparc/mm/hypersparc.S: Assembler messages:
>> arch/sparc/mm/hypersparc.S:41: Error: bad expression
>> arch/sparc/mm/hypersparc.S:41: Warning: division by zero
>> arch/sparc/mm/hypersparc.S:41: Error: bad expression
>> arch/sparc/mm/hypersparc.S:41: Warning: division by zero
>> arch/sparc/mm/hypersparc.S:41: Error: bad expression
>> arch/sparc/mm/hypersparc.S:41: Warning: division by zero
>> arch/sparc/mm/hypersparc.S:41: Error: bad expression
>> arch/sparc/mm/hypersparc.S:41: Warning: division by zero
>> arch/sparc/mm/hypersparc.S:41: Error: bad expression
>> arch/sparc/mm/hypersparc.S:41: Warning: division by zero
>> arch/sparc/mm/hypersparc.S:41: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:77: Error: bad expression
   arch/sparc/mm/hypersparc.S:77: Warning: division by zero
   arch/sparc/mm/hypersparc.S:77: Error: bad expression
   arch/sparc/mm/hypersparc.S:77: Warning: division by zero
   arch/sparc/mm/hypersparc.S:77: Error: bad expression
   arch/sparc/mm/hypersparc.S:77: Warning: division by zero
   arch/sparc/mm/hypersparc.S:77: Error: bad expression
   arch/sparc/mm/hypersparc.S:77: Warning: division by zero
   arch/sparc/mm/hypersparc.S:77: Error: bad expression
   arch/sparc/mm/hypersparc.S:77: Warning: division by zero
   arch/sparc/mm/hypersparc.S:77: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:79: Error: bad expression
   arch/sparc/mm/hypersparc.S:79: Warning: division by zero
   arch/sparc/mm/hypersparc.S:79: Error: bad expression
   arch/sparc/mm/hypersparc.S:79: Warning: division by zero
   arch/sparc/mm/hypersparc.S:79: Error: bad expression
   arch/sparc/mm/hypersparc.S:79: Warning: division by zero
   arch/sparc/mm/hypersparc.S:79: Error: bad expression
   arch/sparc/mm/hypersparc.S:79: Warning: division by zero
   arch/sparc/mm/hypersparc.S:79: Error: bad expression
   arch/sparc/mm/hypersparc.S:79: Warning: division by zero
   arch/sparc/mm/hypersparc.S:79: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:125: Error: bad expression
   arch/sparc/mm/hypersparc.S:125: Warning: division by zero
   arch/sparc/mm/hypersparc.S:125: Error: bad expression
   arch/sparc/mm/hypersparc.S:125: Warning: division by zero
   arch/sparc/mm/hypersparc.S:125: Error: bad expression
   arch/sparc/mm/hypersparc.S:125: Warning: division by zero
   arch/sparc/mm/hypersparc.S:125: Error: bad expression
   arch/sparc/mm/hypersparc.S:125: Warning: division by zero
   arch/sparc/mm/hypersparc.S:125: Error: bad expression
   arch/sparc/mm/hypersparc.S:125: Warning: division by zero
   arch/sparc/mm/hypersparc.S:125: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:166: Error: bad expression
   arch/sparc/mm/hypersparc.S:166: Warning: division by zero
   arch/sparc/mm/hypersparc.S:166: Error: bad expression
   arch/sparc/mm/hypersparc.S:166: Warning: division by zero
   arch/sparc/mm/hypersparc.S:166: Error: bad expression
   arch/sparc/mm/hypersparc.S:166: Warning: division by zero
   arch/sparc/mm/hypersparc.S:166: Error: bad expression
   arch/sparc/mm/hypersparc.S:166: Warning: division by zero
   arch/sparc/mm/hypersparc.S:166: Error: bad expression
   arch/sparc/mm/hypersparc.S:166: Warning: division by zero
   arch/sparc/mm/hypersparc.S:166: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:167: Error: bad expression
   arch/sparc/mm/hypersparc.S:167: Warning: division by zero
   arch/sparc/mm/hypersparc.S:167: Error: bad expression
   arch/sparc/mm/hypersparc.S:167: Warning: division by zero
   arch/sparc/mm/hypersparc.S:167: Error: bad expression
   arch/sparc/mm/hypersparc.S:167: Warning: division by zero
   arch/sparc/mm/hypersparc.S:167: Error: bad expression
   arch/sparc/mm/hypersparc.S:167: Warning: division by zero
   arch/sparc/mm/hypersparc.S:167: Error: bad expression
   arch/sparc/mm/hypersparc.S:167: Warning: division by zero
   arch/sparc/mm/hypersparc.S:167: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:273: Error: bad expression
   arch/sparc/mm/hypersparc.S:273: Warning: division by zero
   arch/sparc/mm/hypersparc.S:273: Error: bad expression
   arch/sparc/mm/hypersparc.S:273: Warning: division by zero
   arch/sparc/mm/hypersparc.S:273: Error: bad expression
   arch/sparc/mm/hypersparc.S:273: Warning: division by zero
   arch/sparc/mm/hypersparc.S:273: Error: bad expression
   arch/sparc/mm/hypersparc.S:273: Warning: division by zero
   arch/sparc/mm/hypersparc.S:273: Error: bad expression
   arch/sparc/mm/hypersparc.S:273: Warning: division by zero
   arch/sparc/mm/hypersparc.S:273: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:287: Error: bad expression
   arch/sparc/mm/hypersparc.S:287: Warning: division by zero
   arch/sparc/mm/hypersparc.S:287: Error: bad expression
   arch/sparc/mm/hypersparc.S:287: Warning: division by zero
   arch/sparc/mm/hypersparc.S:287: Error: bad expression
   arch/sparc/mm/hypersparc.S:287: Warning: division by zero
   arch/sparc/mm/hypersparc.S:287: Error: bad expression
   arch/sparc/mm/hypersparc.S:287: Warning: division by zero
   arch/sparc/mm/hypersparc.S:287: Error: bad expression
   arch/sparc/mm/hypersparc.S:287: Warning: division by zero
   arch/sparc/mm/hypersparc.S:287: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:289: Error: bad expression
   arch/sparc/mm/hypersparc.S:289: Warning: division by zero
   arch/sparc/mm/hypersparc.S:289: Error: bad expression
   arch/sparc/mm/hypersparc.S:289: Warning: division by zero
   arch/sparc/mm/hypersparc.S:289: Error: bad expression
   arch/sparc/mm/hypersparc.S:289: Warning: division by zero
   arch/sparc/mm/hypersparc.S:289: Error: bad expression
   arch/sparc/mm/hypersparc.S:289: Warning: division by zero
   arch/sparc/mm/hypersparc.S:289: Error: bad expression
   arch/sparc/mm/hypersparc.S:289: Warning: division by zero
   arch/sparc/mm/hypersparc.S:289: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:310: Error: bad expression
   arch/sparc/mm/hypersparc.S:310: Warning: division by zero
   arch/sparc/mm/hypersparc.S:310: Error: bad expression
   arch/sparc/mm/hypersparc.S:310: Warning: division by zero
   arch/sparc/mm/hypersparc.S:310: Error: bad expression
   arch/sparc/mm/hypersparc.S:310: Warning: division by zero
   arch/sparc/mm/hypersparc.S:310: Error: bad expression
   arch/sparc/mm/hypersparc.S:310: Warning: division by zero
   arch/sparc/mm/hypersparc.S:310: Error: bad expression
   arch/sparc/mm/hypersparc.S:310: Warning: division by zero
   arch/sparc/mm/hypersparc.S:310: Error: Illegal operands
   arch/sparc/mm/hypersparc.S:312: Error: bad expression
--
   arch/sparc/mm/viking.S: Assembler messages:
>> arch/sparc/mm/viking.S:111: Error: bad expression
>> arch/sparc/mm/viking.S:111: Warning: division by zero
>> arch/sparc/mm/viking.S:111: Error: bad expression
>> arch/sparc/mm/viking.S:111: Warning: division by zero
>> arch/sparc/mm/viking.S:111: Error: bad expression
>> arch/sparc/mm/viking.S:111: Warning: division by zero
>> arch/sparc/mm/viking.S:111: Error: bad expression
>> arch/sparc/mm/viking.S:111: Warning: division by zero
>> arch/sparc/mm/viking.S:111: Error: bad expression
>> arch/sparc/mm/viking.S:111: Warning: division by zero
>> arch/sparc/mm/viking.S:111: Error: Illegal operands
   arch/sparc/mm/viking.S:115: Error: bad expression
   arch/sparc/mm/viking.S:115: Warning: division by zero
   arch/sparc/mm/viking.S:115: Error: bad expression
   arch/sparc/mm/viking.S:115: Warning: division by zero
   arch/sparc/mm/viking.S:115: Error: bad expression
   arch/sparc/mm/viking.S:115: Warning: division by zero
   arch/sparc/mm/viking.S:115: Error: bad expression
   arch/sparc/mm/viking.S:115: Warning: division by zero
   arch/sparc/mm/viking.S:115: Error: bad expression
   arch/sparc/mm/viking.S:115: Warning: division by zero
   arch/sparc/mm/viking.S:115: Error: Illegal operands
   arch/sparc/mm/viking.S:134: Error: bad expression
   arch/sparc/mm/viking.S:134: Warning: division by zero
   arch/sparc/mm/viking.S:134: Error: bad expression
   arch/sparc/mm/viking.S:134: Warning: division by zero
   arch/sparc/mm/viking.S:134: Error: bad expression
   arch/sparc/mm/viking.S:134: Warning: division by zero
   arch/sparc/mm/viking.S:134: Error: bad expression
   arch/sparc/mm/viking.S:134: Warning: division by zero
   arch/sparc/mm/viking.S:134: Error: bad expression
   arch/sparc/mm/viking.S:134: Warning: division by zero
   arch/sparc/mm/viking.S:134: Error: Illegal operands
   arch/sparc/mm/viking.S:151: Error: bad expression
   arch/sparc/mm/viking.S:151: Warning: division by zero
   arch/sparc/mm/viking.S:151: Error: bad expression
   arch/sparc/mm/viking.S:151: Warning: division by zero
   arch/sparc/mm/viking.S:151: Error: bad expression
   arch/sparc/mm/viking.S:151: Warning: division by zero
   arch/sparc/mm/viking.S:151: Error: bad expression
   arch/sparc/mm/viking.S:151: Warning: division by zero
   arch/sparc/mm/viking.S:151: Error: bad expression
   arch/sparc/mm/viking.S:151: Warning: division by zero
   arch/sparc/mm/viking.S:151: Error: Illegal operands
   arch/sparc/mm/viking.S:153: Error: bad expression
   arch/sparc/mm/viking.S:153: Warning: division by zero
   arch/sparc/mm/viking.S:153: Error: bad expression
   arch/sparc/mm/viking.S:153: Warning: division by zero
   arch/sparc/mm/viking.S:153: Error: bad expression
   arch/sparc/mm/viking.S:153: Warning: division by zero
   arch/sparc/mm/viking.S:153: Error: bad expression
   arch/sparc/mm/viking.S:153: Warning: division by zero
   arch/sparc/mm/viking.S:153: Error: bad expression
   arch/sparc/mm/viking.S:153: Warning: division by zero
   arch/sparc/mm/viking.S:153: Error: Illegal operands
   arch/sparc/mm/viking.S:176: Error: bad expression
   arch/sparc/mm/viking.S:176: Warning: division by zero
   arch/sparc/mm/viking.S:176: Error: bad expression
   arch/sparc/mm/viking.S:176: Warning: division by zero
   arch/sparc/mm/viking.S:176: Error: bad expression
   arch/sparc/mm/viking.S:176: Warning: division by zero
   arch/sparc/mm/viking.S:176: Error: bad expression
   arch/sparc/mm/viking.S:176: Warning: division by zero
   arch/sparc/mm/viking.S:176: Error: bad expression
   arch/sparc/mm/viking.S:176: Warning: division by zero
   arch/sparc/mm/viking.S:176: Error: Illegal operands
   arch/sparc/mm/viking.S:178: Error: bad expression
   arch/sparc/mm/viking.S:178: Warning: division by zero
   arch/sparc/mm/viking.S:178: Error: bad expression
   arch/sparc/mm/viking.S:178: Warning: division by zero
   arch/sparc/mm/viking.S:178: Error: bad expression
   arch/sparc/mm/viking.S:178: Warning: division by zero
   arch/sparc/mm/viking.S:178: Error: bad expression
   arch/sparc/mm/viking.S:178: Warning: division by zero
   arch/sparc/mm/viking.S:178: Error: bad expression
   arch/sparc/mm/viking.S:178: Warning: division by zero
   arch/sparc/mm/viking.S:178: Error: Illegal operands
--
   arch/sparc/mm/tsunami.S: Assembler messages:
>> arch/sparc/mm/tsunami.S:27: Error: bad expression
>> arch/sparc/mm/tsunami.S:27: Warning: division by zero
>> arch/sparc/mm/tsunami.S:27: Error: bad expression
>> arch/sparc/mm/tsunami.S:27: Warning: division by zero
>> arch/sparc/mm/tsunami.S:27: Error: bad expression
>> arch/sparc/mm/tsunami.S:27: Warning: division by zero
>> arch/sparc/mm/tsunami.S:27: Error: bad expression
>> arch/sparc/mm/tsunami.S:27: Warning: division by zero
>> arch/sparc/mm/tsunami.S:27: Error: bad expression
>> arch/sparc/mm/tsunami.S:27: Warning: division by zero
>> arch/sparc/mm/tsunami.S:27: Error: Illegal operands
   arch/sparc/mm/tsunami.S:29: Error: bad expression
   arch/sparc/mm/tsunami.S:29: Warning: division by zero
   arch/sparc/mm/tsunami.S:29: Error: bad expression
   arch/sparc/mm/tsunami.S:29: Warning: division by zero
   arch/sparc/mm/tsunami.S:29: Error: bad expression
   arch/sparc/mm/tsunami.S:29: Warning: division by zero
   arch/sparc/mm/tsunami.S:29: Error: bad expression
   arch/sparc/mm/tsunami.S:29: Warning: division by zero
   arch/sparc/mm/tsunami.S:29: Error: bad expression
   arch/sparc/mm/tsunami.S:29: Warning: division by zero
   arch/sparc/mm/tsunami.S:29: Error: Illegal operands
   arch/sparc/mm/tsunami.S:49: Error: bad expression
   arch/sparc/mm/tsunami.S:49: Warning: division by zero
   arch/sparc/mm/tsunami.S:49: Error: bad expression
   arch/sparc/mm/tsunami.S:49: Warning: division by zero
   arch/sparc/mm/tsunami.S:49: Error: bad expression
   arch/sparc/mm/tsunami.S:49: Warning: division by zero
   arch/sparc/mm/tsunami.S:49: Error: bad expression
   arch/sparc/mm/tsunami.S:49: Warning: division by zero
   arch/sparc/mm/tsunami.S:49: Error: bad expression
   arch/sparc/mm/tsunami.S:49: Warning: division by zero
   arch/sparc/mm/tsunami.S:49: Error: Illegal operands
   arch/sparc/mm/tsunami.S:51: Error: bad expression
   arch/sparc/mm/tsunami.S:51: Warning: division by zero
   arch/sparc/mm/tsunami.S:51: Error: bad expression
   arch/sparc/mm/tsunami.S:51: Warning: division by zero
   arch/sparc/mm/tsunami.S:51: Error: bad expression
   arch/sparc/mm/tsunami.S:51: Warning: division by zero
   arch/sparc/mm/tsunami.S:51: Error: bad expression
   arch/sparc/mm/tsunami.S:51: Warning: division by zero
   arch/sparc/mm/tsunami.S:51: Error: bad expression
   arch/sparc/mm/tsunami.S:51: Warning: division by zero
   arch/sparc/mm/tsunami.S:51: Error: Illegal operands
   arch/sparc/mm/tsunami.S:68: Error: bad expression
   arch/sparc/mm/tsunami.S:68: Warning: division by zero
   arch/sparc/mm/tsunami.S:68: Error: bad expression
   arch/sparc/mm/tsunami.S:68: Warning: division by zero
   arch/sparc/mm/tsunami.S:68: Error: bad expression
   arch/sparc/mm/tsunami.S:68: Warning: division by zero
   arch/sparc/mm/tsunami.S:68: Error: bad expression
   arch/sparc/mm/tsunami.S:68: Warning: division by zero
   arch/sparc/mm/tsunami.S:68: Error: bad expression
   arch/sparc/mm/tsunami.S:68: Warning: division by zero
   arch/sparc/mm/tsunami.S:68: Error: Illegal operands
   arch/sparc/mm/tsunami.S:70: Error: bad expression
   arch/sparc/mm/tsunami.S:70: Warning: division by zero
   arch/sparc/mm/tsunami.S:70: Error: bad expression
   arch/sparc/mm/tsunami.S:70: Warning: division by zero
   arch/sparc/mm/tsunami.S:70: Error: bad expression
   arch/sparc/mm/tsunami.S:70: Warning: division by zero
   arch/sparc/mm/tsunami.S:70: Error: bad expression
   arch/sparc/mm/tsunami.S:70: Warning: division by zero
   arch/sparc/mm/tsunami.S:70: Error: bad expression
   arch/sparc/mm/tsunami.S:70: Warning: division by zero
   arch/sparc/mm/tsunami.S:70: Error: Illegal operands
--
   arch/sparc/mm/swift.S: Assembler messages:
>> arch/sparc/mm/swift.S:222: Error: bad expression
>> arch/sparc/mm/swift.S:222: Warning: division by zero
>> arch/sparc/mm/swift.S:222: Error: bad expression
>> arch/sparc/mm/swift.S:222: Warning: division by zero
>> arch/sparc/mm/swift.S:222: Error: bad expression
>> arch/sparc/mm/swift.S:222: Warning: division by zero
>> arch/sparc/mm/swift.S:222: Error: bad expression
>> arch/sparc/mm/swift.S:222: Warning: division by zero
>> arch/sparc/mm/swift.S:222: Error: bad expression
>> arch/sparc/mm/swift.S:222: Warning: division by zero
>> arch/sparc/mm/swift.S:222: Error: Illegal operands
   arch/sparc/mm/swift.S:224: Error: bad expression
   arch/sparc/mm/swift.S:224: Warning: division by zero
   arch/sparc/mm/swift.S:224: Error: bad expression
   arch/sparc/mm/swift.S:224: Warning: division by zero
   arch/sparc/mm/swift.S:224: Error: bad expression
   arch/sparc/mm/swift.S:224: Warning: division by zero
   arch/sparc/mm/swift.S:224: Error: bad expression
   arch/sparc/mm/swift.S:224: Warning: division by zero
   arch/sparc/mm/swift.S:224: Error: bad expression
   arch/sparc/mm/swift.S:224: Warning: division by zero
   arch/sparc/mm/swift.S:224: Error: Illegal operands
   arch/sparc/mm/swift.S:236: Error: bad expression
   arch/sparc/mm/swift.S:236: Warning: division by zero
   arch/sparc/mm/swift.S:236: Error: bad expression
   arch/sparc/mm/swift.S:236: Warning: division by zero
   arch/sparc/mm/swift.S:236: Error: bad expression
   arch/sparc/mm/swift.S:236: Warning: division by zero
   arch/sparc/mm/swift.S:236: Error: bad expression
   arch/sparc/mm/swift.S:236: Warning: division by zero
   arch/sparc/mm/swift.S:236: Error: bad expression
   arch/sparc/mm/swift.S:236: Warning: division by zero
   arch/sparc/mm/swift.S:236: Error: Illegal operands
   arch/sparc/mm/swift.S:238: Error: bad expression
   arch/sparc/mm/swift.S:238: Warning: division by zero
   arch/sparc/mm/swift.S:238: Error: bad expression
   arch/sparc/mm/swift.S:238: Warning: division by zero
   arch/sparc/mm/swift.S:238: Error: bad expression
   arch/sparc/mm/swift.S:238: Warning: division by zero
   arch/sparc/mm/swift.S:238: Error: bad expression
   arch/sparc/mm/swift.S:238: Warning: division by zero
   arch/sparc/mm/swift.S:238: Error: bad expression
   arch/sparc/mm/swift.S:238: Warning: division by zero
   arch/sparc/mm/swift.S:238: Error: Illegal operands

vim +41 arch/sparc/mm/hypersparc.S

^1da177e Linus Torvalds 2005-04-16  25  hypersparc_flush_cache_all:
^1da177e Linus Torvalds 2005-04-16  26  	WINDOW_FLUSH(%g4, %g5)
^1da177e Linus Torvalds 2005-04-16  27  	sethi	%hi(vac_cache_size), %g4
^1da177e Linus Torvalds 2005-04-16  28  	ld	[%g4 + %lo(vac_cache_size)], %g5
^1da177e Linus Torvalds 2005-04-16  29  	sethi	%hi(vac_line_size), %g1
^1da177e Linus Torvalds 2005-04-16  30  	ld	[%g1 + %lo(vac_line_size)], %g2
^1da177e Linus Torvalds 2005-04-16  31  1:	
^1da177e Linus Torvalds 2005-04-16  32  	subcc	%g5, %g2, %g5			! hyper_flush_unconditional_combined
^1da177e Linus Torvalds 2005-04-16  33  	bne	1b
^1da177e Linus Torvalds 2005-04-16  34  	 sta	%g0, [%g5] ASI_M_FLUSH_CTX
^1da177e Linus Torvalds 2005-04-16  35  	retl
^1da177e Linus Torvalds 2005-04-16  36  	 sta	%g0, [%g0] ASI_M_FLUSH_IWHOLE	! hyper_flush_whole_icache
^1da177e Linus Torvalds 2005-04-16  37  
^1da177e Linus Torvalds 2005-04-16  38  	/* We expand the window flush to get maximum performance. */
^1da177e Linus Torvalds 2005-04-16  39  hypersparc_flush_cache_mm:
^1da177e Linus Torvalds 2005-04-16  40  #ifndef CONFIG_SMP
^1da177e Linus Torvalds 2005-04-16 @41  	ld	[%o0 + AOFF_mm_context], %g1
^1da177e Linus Torvalds 2005-04-16  42  	cmp	%g1, -1
^1da177e Linus Torvalds 2005-04-16  43  	be	hypersparc_flush_cache_mm_out
^1da177e Linus Torvalds 2005-04-16  44  #endif
^1da177e Linus Torvalds 2005-04-16  45  	WINDOW_FLUSH(%g4, %g5)
^1da177e Linus Torvalds 2005-04-16  46  
^1da177e Linus Torvalds 2005-04-16  47  	sethi	%hi(vac_line_size), %g1
^1da177e Linus Torvalds 2005-04-16  48  	ld	[%g1 + %lo(vac_line_size)], %o1
^1da177e Linus Torvalds 2005-04-16  49  	sethi	%hi(vac_cache_size), %g2

:::::: The code at line 41 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web