Submitter | Chao Fan |
---|---|
Date | Nov. 14, 2018, 6:12 a.m. |
Message ID | <20181114061215.GC2875@localhost.localdomain> |
Download | mbox | patch |
Permalink | /patch/656205/ |
State | New |
Headers | show |
Comments
On Wed, Nov 14, 2018 at 02:12:16PM +0800, Chao Fan wrote: > But isdigit() would be redefine, so: > > diff --git a/include/linux/ctype.h b/include/linux/ctype.h > index 363b004426db..aba01c385232 100644 > --- a/include/linux/ctype.h > +++ b/include/linux/ctype.h > @@ -23,10 +23,12 @@ extern const unsigned char _ctype[]; > #define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0) > #define isalpha(c) ((__ismask(c)&(_U|_L)) != 0) > #define iscntrl(c) ((__ismask(c)&(_C)) != 0) > +#ifndef BOOT_STRING > static inline int isdigit(int c) > { > return '0' <= c && c <= '9'; > } > +#endif > #define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0) > #define islower(c) ((__ismask(c)&(_L)) != 0) > #define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0) > > Now I can make it. > I wonder whether this is OK to cover isdigit() with 'BOOT_STRING' tag. See the beginning of arch/x86/boot/compressed/kaslr.c for a possible way to disable boot/ctype.h
Patch
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index 8dd1d5ccae58..714b05b65a33 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c @@ -426,3 +426,7 @@ void fortify_panic(const char *name) { error("detected buffer overflow"); } + +#ifdef BOOT_STRING +#include "../../../../lib/kstrtox.c" +#endif And define it in misc.h: diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h index 4a3645fda0ed..98e28c4281ee 100644 --- a/arch/x86/boot/compressed/misc.h +++ b/arch/x86/boot/compressed/misc.h @@ -131,3 +131,5 @@ int num_immovable_mem; void get_immovable_mem(void); #endif #endif +#define BOOT_STRING +extern int kstrtoull(const char *s, unsigned int base, unsigned long long *res); But isdigit() would be redefine, so: diff --git a/include/linux/ctype.h b/include/linux/ctype.h index 363b004426db..aba01c385232 100644 --- a/include/linux/ctype.h +++ b/include/linux/ctype.h @@ -23,10 +23,12 @@ extern const unsigned char _ctype[]; #define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0) #define isalpha(c) ((__ismask(c)&(_U|_L)) != 0) #define iscntrl(c) ((__ismask(c)&(_C)) != 0) +#ifndef BOOT_STRING static inline int isdigit(int c) { return '0' <= c && c <= '9'; } +#endif #define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0) #define islower(c) ((__ismask(c)&(_L)) != 0) #define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)