forked from mirrors/linux
		
	 4f20b7471c
			
		
	
	
		4f20b7471c
		
	
	
	
	
		
			
			With W=1 on platforms that use the generic gcc library routines
(csky/loongarch/mips/riscv/sh/xtensa):
    lib/ashldi3.c:9:19: warning: no previous prototype for '__ashldi3' [-Wmissing-prototypes]
	9 | long long notrace __ashldi3(long long u, word_type b)
	  |                   ^~~~~~~~~
      CC      lib/ashrdi3.o
    lib/ashrdi3.c:9:19: warning: no previous prototype for '__ashrdi3' [-Wmissing-prototypes]
	9 | long long notrace __ashrdi3(long long u, word_type b)
	  |                   ^~~~~~~~~
      CC      lib/cmpdi2.o
    lib/cmpdi2.c:9:19: warning: no previous prototype for '__cmpdi2' [-Wmissing-prototypes]
	9 | word_type notrace __cmpdi2(long long a, long long b)
	  |                   ^~~~~~~~
      CC      lib/lshrdi3.o
    lib/lshrdi3.c:9:19: warning: no previous prototype for '__lshrdi3' [-Wmissing-prototypes]
	9 | long long notrace __lshrdi3(long long u, word_type b)
	  |                   ^~~~~~~~~
      CC      lib/muldi3.o
    lib/muldi3.c:49:19: warning: no previous prototype for '__muldi3' [-Wmissing-prototypes]
       49 | long long notrace __muldi3(long long u, long long v)
	  |                   ^~~~~~~~
      CC      lib/ucmpdi2.o
    lib/ucmpdi2.c:8:19: warning: no previous prototype for '__ucmpdi2' [-Wmissing-prototypes]
	8 | word_type notrace __ucmpdi2(unsigned long long a, unsigned long long b)
	  |                   ^~~~~~~~~
Fix this by adding forward declarations to the common libgcc header
file.
Link: https://lkml.kernel.org/r/5cdbe08296693dd53849f199c3933e16e97b33c1.1682088593.git.geert+renesas@glider.be
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reported-by: kernel test robot <lkp@intel.com>
  Link: https://lore.kernel.org/oe-kbuild-all/202303272214.RxzpA6bP-lkp@intel.com/
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Chris Zankel <chris@zankel.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
		
	
			
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			810 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			810 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-or-later */
 | |
| /*
 | |
|  * include/lib/libgcc.h
 | |
|  */
 | |
| 
 | |
| #ifndef __LIB_LIBGCC_H
 | |
| #define __LIB_LIBGCC_H
 | |
| 
 | |
| #include <asm/byteorder.h>
 | |
| 
 | |
| typedef int word_type __attribute__ ((mode (__word__)));
 | |
| 
 | |
| #ifdef __BIG_ENDIAN
 | |
| struct DWstruct {
 | |
| 	int high, low;
 | |
| };
 | |
| #elif defined(__LITTLE_ENDIAN)
 | |
| struct DWstruct {
 | |
| 	int low, high;
 | |
| };
 | |
| #else
 | |
| #error I feel sick.
 | |
| #endif
 | |
| 
 | |
| typedef union {
 | |
| 	struct DWstruct s;
 | |
| 	long long ll;
 | |
| } DWunion;
 | |
| 
 | |
| long long notrace __ashldi3(long long u, word_type b);
 | |
| long long notrace __ashrdi3(long long u, word_type b);
 | |
| word_type notrace __cmpdi2(long long a, long long b);
 | |
| long long notrace __lshrdi3(long long u, word_type b);
 | |
| long long notrace __muldi3(long long u, long long v);
 | |
| word_type notrace __ucmpdi2(unsigned long long a, unsigned long long b);
 | |
| 
 | |
| #endif /* __ASM_LIBGCC_H */
 |