Messages in this thread | | | Date | Tue, 24 Jun 2014 22:13:52 +0200 | Subject | Re: [RFC PATCH 1/3] init.h: Add __init_str / __exit_str macros | From | Mathias Krause <> |
| |
On 24 June 2014 21:43, Joe Perches <joe@perches.com> wrote: > On Mon, 2014-06-23 at 00:46 +0200, Mathias Krause wrote: >> Add macros to be able to mark string literals used in __init / __exit >> functions. > [] >> diff --git a/include/linux/init.h b/include/linux/init.h > [] >> +#define __init_str(str) __mark_str(str, __UNIQUE_ID(_init_str_), __initconst) >> +#define __exit_str(str) __mark_str(str, __UNIQUE_ID(_exit_str_), __exitdata) >> +#define __mark_str(str, var, __section) \ >> + ({ static const char var[] __section __aligned(1) = str; var; }) >> + > > You probably want to make these strings vanish > completely when !CONFIG_PRINTK. > > As is, they will always exist in the image.
They will not. They are vanished as printk() is an empty static inline function for the !CONFIG_PRINTK case. gcc is clever enough to optimize the variables away in this case.
Thanks, Mathias
| |