On Thu, 26 Mar 2015 14:58:40 -0700 Joe Perches <j...@perches.com> wrote:
> > I'd have thought that a function-wide > > __attribute__((__string_section__(foo)) > > wouldn't be a ton of work to implement. > > Maybe not. > > Could some future version of gcc move string constants > in a function to a specific section marked in a manner > similar to what Andrew described above? One thing which might complexicate this is void foo() { p("bar"); } void __attribute__((__string_section__(.init.rodata)) zot() { p("bar"); } It would be silly to create two instances of "bar". Change it thusly: #define __mark_str(str) \ ({ static const char var[] __attribute__((__section__(".init.string"))) = str; var; }) void foo() { p("bar"); } void zot() { p(__mark_str("bar")); } and we indeed get two copies of "bar". It would be nice not to do that, but I guess that losing this optimization is a reasonable compromise. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/