[PATCH 6/9] string: turn SUSv3 legacy macros into inline functions.

Rich Felker dalias at aerifal.cx
Sun Nov 18 14:41:18 UTC 2012


On Sun, Nov 18, 2012 at 05:20:49AM -0500, Mike Frysinger wrote:
> On Friday 21 September 2012 11:29:16 Florian Fainelli wrote:
> > From: Felix Fietkau <nbd at openwrt.org>
> > 
> > Avoids crazy build breakages in multiple packages.
> 
> like what ?  i've never noticed a problem w/Gentoo, nor has anyone reported an 
> issue ...
> -mike

The change is worse. Before, it's at least mostly conforming to the
old standard; the only problem is missing declarations and definitions
of the functions if an application undefines the macros. After the
change, the functions are declared with non-conforming linkage, so
that a program which declares them correctly itself (this is a valid
thing to do) will fail to compile.

Either use static inlines by a different name (__-prefixed) and
#define the public names to the namespace-safe names, or use extern
inlines (but then an actual definition would need to exist somewhere
in case the compiler decides not to inline it).

Rich


More information about the uClibc mailing list