mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-28 20:02:17 +00:00
![Geert Uytterhoeven](/assets/img/avatar_default.png)
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 */
|