LKML Archive on lore.kernel.org help / color / mirror / Atom feed
* [PATCH] kernel.h: Remove ancient __FUNCTION__ hack @ 2015-02-04 9:48 Rasmus Villemoes 2015-02-04 19:06 ` Joe Perches 0 siblings, 1 reply; 9+ messages in thread From: Rasmus Villemoes @ 2015-02-04 9:48 UTC (permalink / raw) To: Andrew Morton, Michal Nazarewicz; +Cc: Rasmus Villemoes, linux-kernel __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so this only helps people who only test-compile using 3.3 (compiler-gcc3.h barks at anything older than that). Besides, there are almost no occurrences of __FUNCTION__ left in the tree. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> --- include/linux/kernel.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 5449d2f4a1ef..76773be3e725 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -799,9 +799,6 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) -/* Trap pasters of __FUNCTION__ at compile-time */ -#define __FUNCTION__ (__func__) - /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */ #ifdef CONFIG_FTRACE_MCOUNT_RECORD # define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD -- 2.1.3 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 9:48 [PATCH] kernel.h: Remove ancient __FUNCTION__ hack Rasmus Villemoes @ 2015-02-04 19:06 ` Joe Perches 2015-02-04 20:55 ` Rasmus Villemoes 0 siblings, 1 reply; 9+ messages in thread From: Joe Perches @ 2015-02-04 19:06 UTC (permalink / raw) To: Rasmus Villemoes; +Cc: Andrew Morton, Michal Nazarewicz, linux-kernel On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: > __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so > this only helps people who only test-compile using 3.3 > (compiler-gcc3.h barks at anything older than that). Besides, there > are almost no occurrences of __FUNCTION__ left in the tree. The remaining uses of __FUNCTION__ need converting first. arch/x86/kernel/hpet.c: _hpet_print_config(__FUNCTION__, __LINE__); arch/x86/kernel/rtc.c: __FUNCTION__, retval); arch/x86/kernel/rtc.c: __FUNCTION__, nowtime); https://lkml.org/lkml/2014/3/25/406 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 19:06 ` Joe Perches @ 2015-02-04 20:55 ` Rasmus Villemoes 2015-02-04 21:03 ` Joe Perches 0 siblings, 1 reply; 9+ messages in thread From: Rasmus Villemoes @ 2015-02-04 20:55 UTC (permalink / raw) To: Joe Perches; +Cc: Andrew Morton, Michal Nazarewicz, linux-kernel On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: >> __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so >> this only helps people who only test-compile using 3.3 >> (compiler-gcc3.h barks at anything older than that). Besides, there >> are almost no occurrences of __FUNCTION__ left in the tree. > > The remaining uses of __FUNCTION__ need converting first. Why? __FUNCTION__ is recognized just fine by gcc as an alias for __func__. Rasmus ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 20:55 ` Rasmus Villemoes @ 2015-02-04 21:03 ` Joe Perches 2015-02-04 22:01 ` Rasmus Villemoes 0 siblings, 1 reply; 9+ messages in thread From: Joe Perches @ 2015-02-04 21:03 UTC (permalink / raw) To: Rasmus Villemoes; +Cc: Andrew Morton, Michal Nazarewicz, linux-kernel On Wed, 2015-02-04 at 21:55 +0100, Rasmus Villemoes wrote: > On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > > > On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: > >> __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so > >> this only helps people who only test-compile using 3.3 > >> (compiler-gcc3.h barks at anything older than that). Besides, there > >> are almost no occurrences of __FUNCTION__ left in the tree. > > > > The remaining uses of __FUNCTION__ need converting first. > > Why? __FUNCTION__ is recognized just fine by gcc as an alias for __func__. And icc and clang and ...? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 21:03 ` Joe Perches @ 2015-02-04 22:01 ` Rasmus Villemoes 2015-02-04 22:05 ` Joe Perches 0 siblings, 1 reply; 9+ messages in thread From: Rasmus Villemoes @ 2015-02-04 22:01 UTC (permalink / raw) To: Joe Perches; +Cc: Andrew Morton, Michal Nazarewicz, linux-kernel On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > On Wed, 2015-02-04 at 21:55 +0100, Rasmus Villemoes wrote: >> On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: >> >> > On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: >> >> __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so >> >> this only helps people who only test-compile using 3.3 >> >> (compiler-gcc3.h barks at anything older than that). Besides, there >> >> are almost no occurrences of __FUNCTION__ left in the tree. >> > >> > The remaining uses of __FUNCTION__ need converting first. >> >> Why? __FUNCTION__ is recognized just fine by gcc as an alias for __func__. > > And icc and clang and ...? clang yes, icc probably (from quick googling). ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 22:01 ` Rasmus Villemoes @ 2015-02-04 22:05 ` Joe Perches 2015-02-04 22:35 ` Andrew Morton 0 siblings, 1 reply; 9+ messages in thread From: Joe Perches @ 2015-02-04 22:05 UTC (permalink / raw) To: Rasmus Villemoes; +Cc: Andrew Morton, Michal Nazarewicz, linux-kernel On Wed, 2015-02-04 at 23:01 +0100, Rasmus Villemoes wrote: > On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > > > On Wed, 2015-02-04 at 21:55 +0100, Rasmus Villemoes wrote: > >> On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > >> > >> > On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: > >> >> __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so > >> >> this only helps people who only test-compile using 3.3 > >> >> (compiler-gcc3.h barks at anything older than that). Besides, there > >> >> are almost no occurrences of __FUNCTION__ left in the tree. > >> > > >> > The remaining uses of __FUNCTION__ need converting first. > >> > >> Why? __FUNCTION__ is recognized just fine by gcc as an alias for __func__. > > > > And icc and clang and ...? > > clang yes, icc probably (from quick googling). Cool, but it does seem safer/more conservative to me to convert the last 3 uses before doing this. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 22:05 ` Joe Perches @ 2015-02-04 22:35 ` Andrew Morton 2015-02-04 22:49 ` Joe Perches 0 siblings, 1 reply; 9+ messages in thread From: Andrew Morton @ 2015-02-04 22:35 UTC (permalink / raw) To: Joe Perches; +Cc: Rasmus Villemoes, Michal Nazarewicz, linux-kernel On Wed, 04 Feb 2015 14:05:15 -0800 Joe Perches <joe@perches.com> wrote: > On Wed, 2015-02-04 at 23:01 +0100, Rasmus Villemoes wrote: > > On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > > > > > On Wed, 2015-02-04 at 21:55 +0100, Rasmus Villemoes wrote: > > >> On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > > >> > > >> > On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: > > >> >> __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so > > >> >> this only helps people who only test-compile using 3.3 > > >> >> (compiler-gcc3.h barks at anything older than that). Besides, there > > >> >> are almost no occurrences of __FUNCTION__ left in the tree. > > >> > > > >> > The remaining uses of __FUNCTION__ need converting first. > > >> > > >> Why? __FUNCTION__ is recognized just fine by gcc as an alias for __func__. > > > > > > And icc and clang and ...? > > > > clang yes, icc probably (from quick googling). > > Cool, but it does seem safer/more conservative to me to > convert the last 3 uses before doing this. arch/x86/kernel/hpet.c | 2 +- arch/x86/kernel/rtc.c | 4 ++-- arch/x86/platform/intel-mid/intel_mid_vrtc.c | 2 +- drivers/acpi/acpica/utdebug.c | 4 ++-- drivers/block/xen-blkfront.c | 2 +- include/acpi/acoutput.h | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff -puN include/linux/kernel.h~kernelh-remove-ancient-__function__-hack-fix include/linux/kernel.h diff -puN arch/x86/kernel/hpet.c~kernelh-remove-ancient-__function__-hack-fix arch/x86/kernel/hpet.c --- a/arch/x86/kernel/hpet.c~kernelh-remove-ancient-__function__-hack-fix +++ a/arch/x86/kernel/hpet.c @@ -168,7 +168,7 @@ static void _hpet_print_config(const cha #define hpet_print_config() \ do { \ if (hpet_verbose) \ - _hpet_print_config(__FUNCTION__, __LINE__); \ + _hpet_print_config(__func__, __LINE__); \ } while (0) /* diff -puN arch/x86/kernel/rtc.c~kernelh-remove-ancient-__function__-hack-fix arch/x86/kernel/rtc.c --- a/arch/x86/kernel/rtc.c~kernelh-remove-ancient-__function__-hack-fix +++ a/arch/x86/kernel/rtc.c @@ -49,11 +49,11 @@ int mach_set_rtc_mmss(const struct times retval = set_rtc_time(&tm); if (retval) printk(KERN_ERR "%s: RTC write failed with error %d\n", - __FUNCTION__, retval); + __func__, retval); } else { printk(KERN_ERR "%s: Invalid RTC value: write of %lx to RTC failed\n", - __FUNCTION__, nowtime); + __func__, nowtime); retval = -EINVAL; } return retval; diff -puN arch/x86/platform/intel-mid/intel_mid_vrtc.c~kernelh-remove-ancient-__function__-hack-fix arch/x86/platform/intel-mid/intel_mid_vrtc.c --- a/arch/x86/platform/intel-mid/intel_mid_vrtc.c~kernelh-remove-ancient-__function__-hack-fix +++ a/arch/x86/platform/intel-mid/intel_mid_vrtc.c @@ -110,7 +110,7 @@ int vrtc_set_mmss(const struct timespec spin_unlock_irqrestore(&rtc_lock, flags); } else { pr_err("%s: Invalid vRTC value: write of %lx to vRTC failed\n", - __FUNCTION__, now->tv_sec); + __func__, now->tv_sec); retval = -EINVAL; } return retval; diff -puN drivers/block/xen-blkfront.c~kernelh-remove-ancient-__function__-hack-fix drivers/block/xen-blkfront.c --- a/drivers/block/xen-blkfront.c~kernelh-remove-ancient-__function__-hack-fix +++ a/drivers/block/xen-blkfront.c @@ -1391,7 +1391,7 @@ static int blkfront_probe(struct xenbus_ if (major != XENVBD_MAJOR) { printk(KERN_INFO "%s: HVM does not support vbd %d as xen block device\n", - __FUNCTION__, vdevice); + __func__, vdevice); return -ENODEV; } } diff -puN include/acpi/acoutput.h~kernelh-remove-ancient-__function__-hack-fix include/acpi/acoutput.h --- a/include/acpi/acoutput.h~kernelh-remove-ancient-__function__-hack-fix +++ a/include/acpi/acoutput.h @@ -240,7 +240,7 @@ /* * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header, * define it now. This is the case where there the compiler does not support - * a __FUNCTION__ macro or equivalent. + * a __func__ macro or equivalent. */ #ifndef ACPI_GET_FUNCTION_NAME #define ACPI_GET_FUNCTION_NAME _acpi_function_name @@ -249,12 +249,12 @@ * The Name parameter should be the procedure name as a quoted string. * The function name is also used by the function exit macros below. * Note: (const char) is used to be compatible with the debug interfaces - * and macros such as __FUNCTION__. + * and macros such as __func__. */ #define ACPI_FUNCTION_NAME(name) static const char _acpi_function_name[] = #name; #else -/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */ +/* Compiler supports __func__ (or equivalent) -- Ignore this macro */ #define ACPI_FUNCTION_NAME(name) #endif /* ACPI_GET_FUNCTION_NAME */ diff -puN drivers/acpi/acpica/utdebug.c~kernelh-remove-ancient-__function__-hack-fix drivers/acpi/acpica/utdebug.c --- a/drivers/acpi/acpica/utdebug.c~kernelh-remove-ancient-__function__-hack-fix +++ a/drivers/acpi/acpica/utdebug.c @@ -111,8 +111,8 @@ void acpi_ut_track_stack_ptr(void) * RETURN: Updated pointer to the function name * * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present. - * This allows compiler macros such as __FUNCTION__ to be used - * with no change to the debug output. + * This allows compiler macros such as __func__ to be used with no + * change to the debug output. * ******************************************************************************/ _ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 22:35 ` Andrew Morton @ 2015-02-04 22:49 ` Joe Perches 2015-02-04 23:05 ` Andrew Morton 0 siblings, 1 reply; 9+ messages in thread From: Joe Perches @ 2015-02-04 22:49 UTC (permalink / raw) To: Andrew Morton; +Cc: Rasmus Villemoes, Michal Nazarewicz, linux-kernel On Wed, 2015-02-04 at 14:35 -0800, Andrew Morton wrote: > On Wed, 04 Feb 2015 14:05:15 -0800 Joe Perches <joe@perches.com> wrote: > > On Wed, 2015-02-04 at 23:01 +0100, Rasmus Villemoes wrote: > > > On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > > > > On Wed, 2015-02-04 at 21:55 +0100, Rasmus Villemoes wrote: > > > >> On Wed, Feb 04 2015, Joe Perches <joe@perches.com> wrote: > > > >> > On Wed, 2015-02-04 at 10:48 +0100, Rasmus Villemoes wrote: > > > >> >> __FUNCTION__ hasn't been treated as a string literal since gcc 3.4, so > > > >> >> this only helps people who only test-compile using 3.3 > > > >> >> (compiler-gcc3.h barks at anything older than that). Besides, there > > > >> >> are almost no occurrences of __FUNCTION__ left in the tree. > > > >> > The remaining uses of __FUNCTION__ need converting first. > > > >> Why? __FUNCTION__ is recognized just fine by gcc as an alias for __func__. > > > > And icc and clang and ...? > > > clang yes, icc probably (from quick googling). > > Cool, but it does seem safer/more conservative to me to > > convert the last 3 uses before doing this. [] > arch/x86/kernel/hpet.c | 2 +- > arch/x86/kernel/rtc.c | 4 ++-- > arch/x86/platform/intel-mid/intel_mid_vrtc.c | 2 +- > drivers/acpi/acpica/utdebug.c | 4 ++-- > drivers/block/xen-blkfront.c | 2 +- > include/acpi/acoutput.h | 6 +++--- > 6 files changed, 10 insertions(+), 10 deletions(-) Thanks. I had submitted patches for all the actual code uses (but not the comments) awhile ago. trivia about macros vs c99 predefined identifiers below: > diff -puN include/acpi/acoutput.h~kernelh-remove-ancient-__function__-hack-fix include/acpi/acoutput.h [] > @@ -240,7 +240,7 @@ > /* > * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header, > * define it now. This is the case where there the compiler does not support > - * a __FUNCTION__ macro or equivalent. > + * a __func__ macro or equivalent. Do these still make sense? __func__ isn't a macro. > @@ -249,12 +249,12 @@ [] > - * and macros such as __FUNCTION__. > + * and macros such as __func__. [] > -/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */ > +/* Compiler supports __func__ (or equivalent) -- Ignore this macro */ [] > diff -puN drivers/acpi/acpica/utdebug.c~kernelh-remove-ancient-__function__-hack-fix drivers/acpi/acpica/utdebug.c > @@ -111,8 +111,8 @@ void acpi_ut_track_stack_ptr(void) [] > - * This allows compiler macros such as __FUNCTION__ to be used > - * with no change to the debug output. > + * This allows compiler macros such as __func__ to be used with no > + * change to the debug output. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] kernel.h: Remove ancient __FUNCTION__ hack 2015-02-04 22:49 ` Joe Perches @ 2015-02-04 23:05 ` Andrew Morton 0 siblings, 0 replies; 9+ messages in thread From: Andrew Morton @ 2015-02-04 23:05 UTC (permalink / raw) To: Joe Perches; +Cc: Rasmus Villemoes, Michal Nazarewicz, linux-kernel On Wed, 04 Feb 2015 14:49:17 -0800 Joe Perches <joe@perches.com> wrote: > trivia about macros vs c99 predefined identifiers below: > > > diff -puN include/acpi/acoutput.h~kernelh-remove-ancient-__function__-hack-fix include/acpi/acoutput.h > [] > > @@ -240,7 +240,7 @@ > > /* > > * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header, > > * define it now. This is the case where there the compiler does not support > > - * a __FUNCTION__ macro or equivalent. > > + * a __func__ macro or equivalent. > > Do these still make sense? __func__ isn't a macro. Yeah, but I was too lazy to think up more appropriate text. Hey, it's only ACPI :) ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-02-04 23:05 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-02-04 9:48 [PATCH] kernel.h: Remove ancient __FUNCTION__ hack Rasmus Villemoes 2015-02-04 19:06 ` Joe Perches 2015-02-04 20:55 ` Rasmus Villemoes 2015-02-04 21:03 ` Joe Perches 2015-02-04 22:01 ` Rasmus Villemoes 2015-02-04 22:05 ` Joe Perches 2015-02-04 22:35 ` Andrew Morton 2015-02-04 22:49 ` Joe Perches 2015-02-04 23:05 ` Andrew Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).