linux-kernel.vger.kernel.org archive mirror
 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 related	[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).