Messages in this thread | | | Date | Sat, 03 May 2008 22:58:04 -0500 | From | Timur Tabi <> | Subject | mconf.c and bindtextdomain() -- warnings while cross-compiling on OS X |
| |
I'm cross-compiling the kernel on an OS X system, and when I run "make menuconfig", I get this warning:
HOSTCC scripts/kconfig/mconf.o scripts/kconfig/mconf.c: In function ‘main’: scripts/kconfig/mconf.c:871: warning: statement with no effect scripts/kconfig/mconf.c:872: warning: statement with no effect
Here is the code in question:
int main(int ac, char **av) { int saved_x, saved_y; char *mode; int res;
setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); <--- line 871 textdomain(PACKAGE);
I believe the warnings are from this code in lkc.h:
#ifndef KBUILD_NO_NLS # include <libintl.h> #else # define gettext(Msgid) ((const char *) (Msgid)) # define textdomain(Domainname) ((const char *) (Domainname)) # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) #endif
Can someone explain to me why this macros are defined in this way? Every place where textdomain() and bindtext() are used, they are used like this:
bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE);
In other words, the return value from these macros is never used, so the warning is inevitable.
I think the code in lkc.h should be changed to:
# define textdomain(Domainname) do {} while(0) # define bindtextdomain(Domainname, Dirname) do {} while(0)
I can't say for certain whether this is a good idea, though, because I'm not at all familiar with this code. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |