[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] xen/Kconfig: Fix -Wformat-security when compiling with Clang


  • To: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Wed, 26 Jun 2019 18:36:15 +0100
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@xxxxxxxxxx; spf=Pass smtp.mailfrom=Andrew.Cooper3@xxxxxxxxxx; spf=None smtp.helo=postmaster@xxxxxxxxxxxxxxx
  • Delivery-date: Wed, 26 Jun 2019 17:36:39 +0000
  • Ironport-sdr: vkZ5ZHuKiMLCdDWxdsSiRqsVbqYkRZoomVFUjkqowE25rG6LWBxBJg6+Cy1zIIzLwmZEyF73ig OremPQsmOKgXYyaNA5sXv/oxeneXVAGH8reReevnY+mTyRAHnUOUuu0XpGlXkqSzhwgKXKnSU5 m4MpfxreVdmdeRL7YWN3viVzmPJexWVUAn5CYMXvoNgPlO2imPZAPrPxNN5CpFSmJ1MrfosIJ1 K3uQSvcBxh5kUyx/sLan+p9QWwrq479QIVNm00Ro+D7DxyBlKylnSyk4Ywo9i9xUlQ50+7fbhI s4Q=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Clang observes:

tools/kconfig/conf.c:77:10:
warning: format string is not a string literal (potentially insecure)
      [-Wformat-security]
                printf(_("aborted!\n\n"));
                       ^~~~~~~~~~~~~~~~~

And it is absolutely correct.  gettext() can easily return a string with a %
in.

This could be fixed by switching to using printf("%s", _(...)), or by
switching to puts() (as there is no formatting going on), but the better
option is follow Linux and remove localisation support.

Linux changeset: 694c49a7c01cc87194be40cb26404b58b68c291c
Author: Sam Ravnborg <sam@xxxxxxxxxxxx>
Date:   Tue May 22 20:36:12 2018

kconfig: drop localization support

The localization support is broken and appears unused.
There is no google hits on the update-po-config target.
And there is no recent (5 years) activity related to the localization.

So lets just drop this as it is no longer used.

Suggested-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>
Suggested-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>

[Ported to Xen]
Reported-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Doug Goldstein <cardoe@xxxxxxxxxx>
---
 xen/tools/kconfig/.gitignore           |   4 -
 xen/tools/kconfig/Makefile             |  39 +-----
 xen/tools/kconfig/POTFILES.in          |  12 --
 xen/tools/kconfig/check.sh             |  13 --
 xen/tools/kconfig/conf.c               |  57 ++++----
 xen/tools/kconfig/confdata.c           |   4 +-
 xen/tools/kconfig/gconf.c              |  46 +++----
 xen/tools/kconfig/kxgettext.c          | 235 ---------------------------------
 xen/tools/kconfig/lkc.h                |  14 --
 xen/tools/kconfig/lxdialog/checklist.c |   4 +-
 xen/tools/kconfig/lxdialog/dialog.h    |   6 -
 xen/tools/kconfig/lxdialog/inputbox.c  |   4 +-
 xen/tools/kconfig/lxdialog/menubox.c   |  10 +-
 xen/tools/kconfig/lxdialog/textbox.c   |   2 +-
 xen/tools/kconfig/lxdialog/yesno.c     |   4 +-
 xen/tools/kconfig/mconf.c              | 141 ++++++++++----------
 xen/tools/kconfig/menu.c               |  18 +--
 xen/tools/kconfig/nconf.c              | 148 ++++++++++-----------
 xen/tools/kconfig/nconf.h              |   1 -
 xen/tools/kconfig/qconf.cc             | 112 +++++++---------
 xen/tools/kconfig/zconf.tab.c_shipped  |   2 +-
 xen/tools/kconfig/zconf.y              |   2 +-
 22 files changed, 265 insertions(+), 613 deletions(-)
 delete mode 100644 xen/tools/kconfig/POTFILES.in
 delete mode 100755 xen/tools/kconfig/check.sh
 delete mode 100644 xen/tools/kconfig/kxgettext.c

diff --git a/xen/tools/kconfig/.gitignore b/xen/tools/kconfig/.gitignore
index be603c4fef..ca38e983d6 100644
--- a/xen/tools/kconfig/.gitignore
+++ b/xen/tools/kconfig/.gitignore
@@ -7,9 +7,6 @@ config*
 *.tab.h
 zconf.hash.c
 *.moc
-gconf.glade.h
-*.pot
-*.mo
 
 #
 # configuration programs
@@ -19,4 +16,3 @@ mconf
 nconf
 qconf
 gconf
-kxgettext
diff --git a/xen/tools/kconfig/Makefile b/xen/tools/kconfig/Makefile
index aceaaed098..c8ad69501c 100644
--- a/xen/tools/kconfig/Makefile
+++ b/xen/tools/kconfig/Makefile
@@ -2,7 +2,7 @@
 # Kernel configuration targets
 # These targets are used from top-level makefile
 
-PHONY += xconfig gconfig menuconfig config silentoldconfig update-po-config \
+PHONY += xconfig gconfig menuconfig config silentoldconfig \
        localmodconfig localyesconfig
 
 ifdef KBUILD_KCONFIG
@@ -52,29 +52,6 @@ localyesconfig localmodconfig: $(obj)/streamline_config.pl 
$(obj)/conf
        fi
        $(Q)rm -f .tmp.config
 
-# Create new linux.pot file
-# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
-update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
-       $(Q)$(kecho) "  GEN     config.pot"
-       $(Q)xgettext --default-domain=linux                         \
-           --add-comments --keyword=_ --keyword=N_                 \
-           --from-code=UTF-8                                       \
-           --files-from=$(srctree)/scripts/kconfig/POTFILES.in     \
-           --directory=$(srctree) --directory=$(objtree)           \
-           --output $(obj)/config.pot
-       $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
-       $(Q)(for i in `ls $(srctree)/arch/*/Kconfig      \
-           $(srctree)/arch/*/um/Kconfig`;               \
-           do                                           \
-               $(kecho) "  GEN     $$i";                    \
-               $(obj)/kxgettext $$i                     \
-                    >> $(obj)/config.pot;               \
-           done )
-       $(Q)$(kecho) "  GEN     linux.pot"
-       $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
-           --output $(obj)/linux.pot
-       $(Q)rm -f $(obj)/config.pot
-
 # These targets map 1:1 to the commandline options of 'conf'
 simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
        alldefconfig randconfig listnewconfig olddefconfig
@@ -176,16 +153,14 @@ lxdialog += lxdialog/textbox.o lxdialog/yesno.o 
lxdialog/menubox.o
 conf-objs      := conf.o  zconf.tab.o
 mconf-objs     := mconf.o zconf.tab.o $(lxdialog)
 nconf-objs     := nconf.o zconf.tab.o nconf.gui.o
-kxgettext-objs := kxgettext.o zconf.tab.o
 qconf-cxxobjs  := qconf.o
 qconf-objs     := zconf.tab.o
 gconf-objs     := gconf.o zconf.tab.o
 
-hostprogs-y := conf nconf mconf kxgettext qconf gconf
+hostprogs-y := conf nconf mconf qconf gconf
 
 clean-files    := qconf.moc .tmp_qtcheck .tmp_gtkcheck
-clean-files    += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
-clean-files     += config.pot linux.pot
+clean-files    += zconf.tab.c zconf.lex.c zconf.hash.c
 
 # Check that we have the required ncurses stuff installed for lxdialog 
(menuconfig)
 PHONY += $(obj)/dochecklxdialog
@@ -195,9 +170,6 @@ $(obj)/dochecklxdialog:
 
 always := dochecklxdialog
 
-# Add environment specific flags
-HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh 
$(HOSTCC) $(HOSTCFLAGS))
-
 # generated files seem to need this to find local include files
 HOSTCFLAGS_zconf.lex.o := -I$(src)
 HOSTCFLAGS_zconf.tab.o := -I$(src)
@@ -310,8 +282,3 @@ quiet_cmd_moc = MOC     $@
 
 $(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck
        $(call cmd,moc)
-
-# Extract gconf menu items for i18n support
-$(obj)/gconf.glade.h: $(obj)/gconf.glade
-       $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
-       $(obj)/gconf.glade
diff --git a/xen/tools/kconfig/POTFILES.in b/xen/tools/kconfig/POTFILES.in
deleted file mode 100644
index 9674573969..0000000000
--- a/xen/tools/kconfig/POTFILES.in
+++ /dev/null
@@ -1,12 +0,0 @@
-scripts/kconfig/lxdialog/checklist.c
-scripts/kconfig/lxdialog/inputbox.c
-scripts/kconfig/lxdialog/menubox.c
-scripts/kconfig/lxdialog/textbox.c
-scripts/kconfig/lxdialog/util.c
-scripts/kconfig/lxdialog/yesno.c
-scripts/kconfig/mconf.c
-scripts/kconfig/conf.c
-scripts/kconfig/confdata.c
-scripts/kconfig/gconf.c
-scripts/kconfig/gconf.glade.h
-scripts/kconfig/qconf.cc
diff --git a/xen/tools/kconfig/check.sh b/xen/tools/kconfig/check.sh
deleted file mode 100755
index 55b79ba1ba..0000000000
--- a/xen/tools/kconfig/check.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-# Needed for systems without gettext
-$* -x c -o /dev/null - > /dev/null 2>&1 << EOF
-#include <libintl.h>
-int main()
-{
-       gettext("");
-       return 0;
-}
-EOF
-if [ ! "$?" -eq "0"  ]; then
-       echo -DKBUILD_NO_NLS;
-fi
diff --git a/xen/tools/kconfig/conf.c b/xen/tools/kconfig/conf.c
index 6c204318bc..d986f44098 100644
--- a/xen/tools/kconfig/conf.c
+++ b/xen/tools/kconfig/conf.c
@@ -3,7 +3,6 @@
  * Released under the terms of the GNU GPL v2.0.
  */
 
-#include <locale.h>
 #include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -74,9 +73,9 @@ static void strip(char *str)
 static void check_stdin(void)
 {
        if (!valid_stdin) {
-               printf(_("aborted!\n\n"));
-               printf(_("Console input/output is redirected. "));
-               printf(_("Run 'make oldconfig' to update configuration.\n\n"));
+               printf("aborted!\n\n");
+               printf("Console input/output is redirected. ");
+               printf("Run 'make oldconfig' to update configuration.\n\n");
                exit(1);
        }
 }
@@ -86,7 +85,7 @@ static int conf_askvalue(struct symbol *sym, const char *def)
        enum symbol_type type = sym_get_type(sym);
 
        if (!sym_has_value(sym))
-               printf(_("(NEW) "));
+               printf("(NEW) ");
 
        line[0] = '\n';
        line[1] = 0;
@@ -136,7 +135,7 @@ static int conf_string(struct menu *menu)
        const char *def;
 
        while (1) {
-               printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
+               printf("%*s%s ", indent - 1, "", menu->prompt->text);
                printf("(%s) ", sym->name);
                def = sym_get_string_value(sym);
                if (sym_get_string_value(sym))
@@ -169,7 +168,7 @@ static int conf_sym(struct menu *menu)
        tristate oldval, newval;
 
        while (1) {
-               printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
+               printf("%*s%s ", indent - 1, "", menu->prompt->text);
                if (sym->name)
                        printf("(%s) ", sym->name);
                putchar('[');
@@ -256,7 +255,7 @@ static int conf_choice(struct menu *menu)
                case no:
                        return 1;
                case mod:
-                       printf("%*s%s\n", indent - 1, "", 
_(menu_get_prompt(menu)));
+                       printf("%*s%s\n", indent - 1, "", 
menu_get_prompt(menu));
                        return 0;
                case yes:
                        break;
@@ -266,7 +265,7 @@ static int conf_choice(struct menu *menu)
        while (1) {
                int cnt, def;
 
-               printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
+               printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
                def_sym = sym_get_choice_value(sym);
                cnt = def = 0;
                line[0] = 0;
@@ -274,7 +273,7 @@ static int conf_choice(struct menu *menu)
                        if (!menu_is_visible(child))
                                continue;
                        if (!child->sym) {
-                               printf("%*c %s\n", indent, '*', 
_(menu_get_prompt(child)));
+                               printf("%*c %s\n", indent, '*', 
menu_get_prompt(child));
                                continue;
                        }
                        cnt++;
@@ -283,14 +282,14 @@ static int conf_choice(struct menu *menu)
                                printf("%*c", indent, '>');
                        } else
                                printf("%*c", indent, ' ');
-                       printf(" %d. %s", cnt, _(menu_get_prompt(child)));
+                       printf(" %d. %s", cnt, menu_get_prompt(child));
                        if (child->sym->name)
                                printf(" (%s)", child->sym->name);
                        if (!sym_has_value(child->sym))
-                               printf(_(" (NEW)"));
+                               printf(" (NEW)");
                        printf("\n");
                }
-               printf(_("%*schoice"), indent - 1, "");
+               printf("%*schoice", indent - 1, "");
                if (cnt == 1) {
                        printf("[1]: 1\n");
                        goto conf_childs;
@@ -380,7 +379,7 @@ static void conf(struct menu *menu)
                        if (prompt)
                                printf("%*c\n%*c %s\n%*c\n",
                                        indent, '*',
-                                       indent, '*', _(prompt),
+                                       indent, '*', prompt,
                                        indent, '*');
                default:
                        ;
@@ -435,7 +434,7 @@ static void check_conf(struct menu *menu)
                                }
                        } else if (input_mode != olddefconfig) {
                                if (!conf_cnt++)
-                                       printf(_("*\n* Restart 
config...\n*\n"));
+                                       printf("*\n* Restart config...\n*\n");
                                rootEntry = menu_get_parent_menu(menu);
                                conf(rootEntry);
                        }
@@ -495,10 +494,6 @@ int main(int ac, char **av)
        const char *name, *defconfig_file = NULL /* gcc uninit */;
        struct stat tmpstat;
 
-       setlocale(LC_ALL, "");
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       textdomain(PACKAGE);
-
        tty_stdio = isatty(0) && isatty(1) && isatty(2);
 
        while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) {
@@ -556,7 +551,7 @@ int main(int ac, char **av)
                }
        }
        if (ac == optind) {
-               printf(_("%s: Kconfig file missing\n"), av[0]);
+               printf("%s: Kconfig file missing\n", av[0]);
                conf_usage(progname);
                exit(1);
        }
@@ -566,12 +561,12 @@ int main(int ac, char **av)
        if (sync_kconfig) {
                name = conf_get_configname();
                if (stat(name, &tmpstat)) {
-                       fprintf(stderr, _("***\n"
+                       fprintf(stderr, "***\n"
                                "*** Configuration file \"%s\" not found!\n"
                                "***\n"
                                "*** Please run some configurator (e.g. \"make 
oldconfig\" or\n"
                                "*** \"make menuconfig\" or \"make 
xconfig\").\n"
-                               "***\n"), name);
+                               "***\n", name);
                        exit(1);
                }
        }
@@ -581,9 +576,9 @@ int main(int ac, char **av)
                if (!defconfig_file)
                        defconfig_file = conf_get_default_confname();
                if (conf_read(defconfig_file)) {
-                       printf(_("***\n"
+                       printf("***\n"
                                "*** Can't find default configuration \"%s\"!\n"
-                               "***\n"), defconfig_file);
+                               "***\n", defconfig_file);
                        exit(1);
                }
                break;
@@ -606,7 +601,7 @@ int main(int ac, char **av)
                if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) {
                        if (conf_read_simple(name, S_DEF_USER)) {
                                fprintf(stderr,
-                                       _("*** Can't read seed configuration 
\"%s\"!\n"),
+                                       "*** Can't read seed configuration 
\"%s\"!\n",
                                        name);
                                exit(1);
                        }
@@ -623,7 +618,7 @@ int main(int ac, char **av)
                if (conf_read_simple(name, S_DEF_USER) &&
                    conf_read_simple("all.config", S_DEF_USER)) {
                        fprintf(stderr,
-                               _("*** KCONFIG_ALLCONFIG set, but no \"%s\" or 
\"all.config\" file found\n"),
+                               "*** KCONFIG_ALLCONFIG set, but no \"%s\" or 
\"all.config\" file found\n",
                                name);
                        exit(1);
                }
@@ -637,7 +632,7 @@ int main(int ac, char **av)
                        name = getenv("KCONFIG_NOSILENTUPDATE");
                        if (name && *name) {
                                fprintf(stderr,
-                                       _("\n*** The configuration requires 
explicit update.\n\n"));
+                                       "\n*** The configuration requires 
explicit update.\n\n");
                                return 1;
                        }
                }
@@ -690,22 +685,22 @@ int main(int ac, char **av)
                 * All other commands are only used to generate a config.
                 */
                if (conf_get_changed() && conf_write(NULL)) {
-                       fprintf(stderr, _("\n*** Error during writing of the 
configuration.\n\n"));
+                       fprintf(stderr, "\n*** Error during writing of the 
configuration.\n\n");
                        exit(1);
                }
                if (conf_write_autoconf()) {
-                       fprintf(stderr, _("\n*** Error during update of the 
configuration.\n\n"));
+                       fprintf(stderr, "\n*** Error during update of the 
configuration.\n\n");
                        return 1;
                }
        } else if (input_mode == savedefconfig) {
                if (conf_write_defconfig(defconfig_file)) {
-                       fprintf(stderr, _("n*** Error while saving defconfig 
to: %s\n\n"),
+                       fprintf(stderr, "n*** Error while saving defconfig to: 
%s\n\n",
                                defconfig_file);
                        return 1;
                }
        } else if (input_mode != listnewconfig) {
                if (conf_write(NULL)) {
-                       fprintf(stderr, _("\n*** Error during writing of the 
configuration.\n\n"));
+                       fprintf(stderr, "\n*** Error during writing of the 
configuration.\n\n");
                        exit(1);
                }
        }
diff --git a/xen/tools/kconfig/confdata.c b/xen/tools/kconfig/confdata.c
index 0b7dc2fd7b..7d38d87a2e 100644
--- a/xen/tools/kconfig/confdata.c
+++ b/xen/tools/kconfig/confdata.c
@@ -279,7 +279,7 @@ int conf_read_simple(const char *name, int def)
                        name = conf_expand_value(prop->expr->left.sym->name);
                        in = zconf_fopen(name);
                        if (in) {
-                               conf_message(_("using defaults found in %s"),
+                               conf_message("using defaults found in %s",
                                         name);
                                goto load;
                        }
@@ -828,7 +828,7 @@ int conf_write(const char *name)
                        return 1;
        }
 
-       conf_message(_("configuration written to %s"), newname);
+       conf_message("configuration written to %s", newname);
 
        sym_set_change_count(0);
 
diff --git a/xen/tools/kconfig/gconf.c b/xen/tools/kconfig/gconf.c
index 26d208b435..4051787691 100644
--- a/xen/tools/kconfig/gconf.c
+++ b/xen/tools/kconfig/gconf.c
@@ -137,7 +137,7 @@ void init_main_window(const gchar * glade_file)
 
        xml = glade_xml_new(glade_file, "window1", NULL);
        if (!xml)
-               g_error(_("GUI loading failed !\n"));
+               g_error("GUI loading failed !\n");
        glade_xml_signal_autoconnect(xml);
 
        main_wnd = glade_xml_get_widget(xml, "window1");
@@ -233,7 +233,7 @@ void init_left_tree(void)
 
        column = gtk_tree_view_column_new();
        gtk_tree_view_append_column(view, column);
-       gtk_tree_view_column_set_title(column, _("Options"));
+       gtk_tree_view_column_set_title(column, "Options");
 
        renderer = gtk_cell_renderer_toggle_new();
        gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
@@ -276,7 +276,7 @@ void init_right_tree(void)
 
        column = gtk_tree_view_column_new();
        gtk_tree_view_append_column(view, column);
-       gtk_tree_view_column_set_title(column, _("Options"));
+       gtk_tree_view_column_set_title(column, "Options");
 
        renderer = gtk_cell_renderer_pixbuf_new();
        gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
@@ -305,7 +305,7 @@ void init_right_tree(void)
 
        renderer = gtk_cell_renderer_text_new();
        gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   _("Name"), renderer,
+                                                   "Name", renderer,
                                                    "text", COL_NAME,
                                                    "foreground-gdk",
                                                    COL_COLOR, NULL);
@@ -329,7 +329,7 @@ void init_right_tree(void)
                                                    COL_COLOR, NULL);
        renderer = gtk_cell_renderer_text_new();
        gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   _("Value"), renderer,
+                                                   "Value", renderer,
                                                    "text", COL_VALUE,
                                                    "editable",
                                                    COL_EDIT,
@@ -368,7 +368,7 @@ static void text_insert_help(struct menu *menu)
 {
        GtkTextBuffer *buffer;
        GtkTextIter start, end;
-       const char *prompt = _(menu_get_prompt(menu));
+       const char *prompt = menu_get_prompt(menu);
        struct gstr help = str_new();
 
        menu_get_ext_help(menu, &help);
@@ -422,7 +422,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, 
GdkEvent * event,
        if (!conf_get_changed())
                return FALSE;
 
-       dialog = gtk_dialog_new_with_buttons(_("Warning !"),
+       dialog = gtk_dialog_new_with_buttons("Warning !",
                                             GTK_WINDOW(main_wnd),
                                             (GtkDialogFlags)
                                             (GTK_DIALOG_MODAL |
@@ -436,7 +436,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, 
GdkEvent * event,
        gtk_dialog_set_default_response(GTK_DIALOG(dialog),
                                        GTK_RESPONSE_CANCEL);
 
-       label = gtk_label_new(_("\nSave configuration ?\n"));
+       label = gtk_label_new("\nSave configuration ?\n");
        gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
        gtk_widget_show(label);
 
@@ -496,7 +496,7 @@ load_filename(GtkFileSelection * file_selector, gpointer 
user_data)
                                             (user_data));
 
        if (conf_read(fn))
-               text_insert_msg(_("Error"), _("Unable to load configuration 
!"));
+               text_insert_msg("Error", "Unable to load configuration !");
        else
                display_tree(&rootmenu);
 }
@@ -505,7 +505,7 @@ void on_load1_activate(GtkMenuItem * menuitem, gpointer 
user_data)
 {
        GtkWidget *fs;
 
-       fs = gtk_file_selection_new(_("Load file..."));
+       fs = gtk_file_selection_new("Load file...");
        g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
                         "clicked",
                         G_CALLBACK(load_filename), (gpointer) fs);
@@ -524,7 +524,7 @@ void on_load1_activate(GtkMenuItem * menuitem, gpointer 
user_data)
 void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
        if (conf_write(NULL))
-               text_insert_msg(_("Error"), _("Unable to save configuration 
!"));
+               text_insert_msg("Error", "Unable to save configuration !");
 }
 
 
@@ -537,7 +537,7 @@ store_filename(GtkFileSelection * file_selector, gpointer 
user_data)
                                             (user_data));
 
        if (conf_write(fn))
-               text_insert_msg(_("Error"), _("Unable to save configuration 
!"));
+               text_insert_msg("Error", "Unable to save configuration !");
 
        gtk_widget_destroy(GTK_WIDGET(user_data));
 }
@@ -546,7 +546,7 @@ void on_save_as1_activate(GtkMenuItem * menuitem, gpointer 
user_data)
 {
        GtkWidget *fs;
 
-       fs = gtk_file_selection_new(_("Save file as..."));
+       fs = gtk_file_selection_new("Save file as...");
        g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
                         "clicked",
                         G_CALLBACK(store_filename), (gpointer) fs);
@@ -639,7 +639,7 @@ on_set_option_mode3_activate(GtkMenuItem *menuitem, 
gpointer user_data)
 void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
        GtkWidget *dialog;
-       const gchar *intro_text = _(
+       const gchar *intro_text = 
            "Welcome to gkc, the GTK+ graphical configuration tool\n"
            "For each option, a blank box indicates the feature is disabled, 
a\n"
            "check indicates it is enabled, and a dot indicates that it is to\n"
@@ -654,7 +654,7 @@ void on_introduction1_activate(GtkMenuItem * menuitem, 
gpointer user_data)
            "option.\n"
            "\n"
            "Toggling Show Debug Info under the Options menu will show \n"
-           "the dependencies, which you can then match by examining other 
options.");
+           "the dependencies, which you can then match by examining other 
options.";
 
        dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
                                        GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -671,8 +671,8 @@ void on_about1_activate(GtkMenuItem * menuitem, gpointer 
user_data)
 {
        GtkWidget *dialog;
        const gchar *about_text =
-           _("gkc is copyright (c) 2002 Romain Lievin <roms@xxxxxxxxxxxxxx>.\n"
-             "Based on the source code from Roman Zippel.\n");
+           "gkc is copyright (c) 2002 Romain Lievin <roms@xxxxxxxxxxxxxx>.\n"
+             "Based on the source code from Roman Zippel.\n";
 
        dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
                                        GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -689,9 +689,9 @@ void on_license1_activate(GtkMenuItem * menuitem, gpointer 
user_data)
 {
        GtkWidget *dialog;
        const gchar *license_text =
-           _("gkc is released under the terms of the GNU GPL v2.\n"
+           "gkc is released under the terms of the GNU GPL v2.\n"
              "For more information, please see the source code or\n"
-             "visit http://www.fsf.org/licenses/licenses.html\n";);
+             "visit http://www.fsf.org/licenses/licenses.html\n";;
 
        dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
                                        GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -1049,7 +1049,7 @@ static gchar **fill_row(struct menu *menu)
        bzero(row, sizeof(row));
 
        row[COL_OPTION] =
-           g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
+           g_strdup_printf("%s %s", menu_get_prompt(menu),
                            sym && !sym_has_value(sym) ? "(NEW)" : "");
 
        if (opt_mode == OPT_ALL && !menu_is_visible(menu))
@@ -1102,7 +1102,7 @@ static gchar **fill_row(struct menu *menu)
 
                if (def_menu)
                        row[COL_VALUE] =
-                           g_strdup(_(menu_get_prompt(def_menu)));
+                           g_strdup(menu_get_prompt(def_menu));
        }
        if (sym->flags & SYMBOL_CHOICEVAL)
                row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
@@ -1447,10 +1447,6 @@ int main(int ac, char *av[])
        char *env;
        gchar *glade_file;
 
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       bind_textdomain_codeset(PACKAGE, "UTF-8");
-       textdomain(PACKAGE);
-
        /* GTK stuffs */
        gtk_set_locale();
        gtk_init(&ac, &av);
diff --git a/xen/tools/kconfig/kxgettext.c b/xen/tools/kconfig/kxgettext.c
deleted file mode 100644
index 2858738b22..0000000000
--- a/xen/tools/kconfig/kxgettext.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>, 2005
- *
- * Released under the terms of the GNU GPL v2.0
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "lkc.h"
-
-static char *escape(const char* text, char *bf, int len)
-{
-       char *bfp = bf;
-       int multiline = strchr(text, '\n') != NULL;
-       int eol = 0;
-       int textlen = strlen(text);
-
-       if ((textlen > 0) && (text[textlen-1] == '\n'))
-               eol = 1;
-
-       *bfp++ = '"';
-       --len;
-
-       if (multiline) {
-               *bfp++ = '"';
-               *bfp++ = '\n';
-               *bfp++ = '"';
-               len -= 3;
-       }
-
-       while (*text != '\0' && len > 1) {
-               if (*text == '"')
-                       *bfp++ = '\\';
-               else if (*text == '\n') {
-                       *bfp++ = '\\';
-                       *bfp++ = 'n';
-                       *bfp++ = '"';
-                       *bfp++ = '\n';
-                       *bfp++ = '"';
-                       len -= 5;
-                       ++text;
-                       goto next;
-               }
-               else if (*text == '\\') {
-                       *bfp++ = '\\';
-                       len--;
-               }
-               *bfp++ = *text++;
-next:
-               --len;
-       }
-
-       if (multiline && eol)
-               bfp -= 3;
-
-       *bfp++ = '"';
-       *bfp = '\0';
-
-       return bf;
-}
-
-struct file_line {
-       struct file_line *next;
-       const char *file;
-       int lineno;
-};
-
-static struct file_line *file_line__new(const char *file, int lineno)
-{
-       struct file_line *self = malloc(sizeof(*self));
-
-       if (self == NULL)
-               goto out;
-
-       self->file   = file;
-       self->lineno = lineno;
-       self->next   = NULL;
-out:
-       return self;
-}
-
-struct message {
-       const char       *msg;
-       const char       *option;
-       struct message   *next;
-       struct file_line *files;
-};
-
-static struct message *message__list;
-
-static struct message *message__new(const char *msg, char *option,
-                                   const char *file, int lineno)
-{
-       struct message *self = malloc(sizeof(*self));
-
-       if (self == NULL)
-               goto out;
-
-       self->files = file_line__new(file, lineno);
-       if (self->files == NULL)
-               goto out_fail;
-
-       self->msg = strdup(msg);
-       if (self->msg == NULL)
-               goto out_fail_msg;
-
-       self->option = option;
-       self->next = NULL;
-out:
-       return self;
-out_fail_msg:
-       free(self->files);
-out_fail:
-       free(self);
-       self = NULL;
-       goto out;
-}
-
-static struct message *mesage__find(const char *msg)
-{
-       struct message *m = message__list;
-
-       while (m != NULL) {
-               if (strcmp(m->msg, msg) == 0)
-                       break;
-               m = m->next;
-       }
-
-       return m;
-}
-
-static int message__add_file_line(struct message *self, const char *file,
-                                 int lineno)
-{
-       int rc = -1;
-       struct file_line *fl = file_line__new(file, lineno);
-
-       if (fl == NULL)
-               goto out;
-
-       fl->next    = self->files;
-       self->files = fl;
-       rc = 0;
-out:
-       return rc;
-}
-
-static int message__add(const char *msg, char *option, const char *file,
-                       int lineno)
-{
-       int rc = 0;
-       char bf[16384];
-       char *escaped = escape(msg, bf, sizeof(bf));
-       struct message *m = mesage__find(escaped);
-
-       if (m != NULL)
-               rc = message__add_file_line(m, file, lineno);
-       else {
-               m = message__new(escaped, option, file, lineno);
-
-               if (m != NULL) {
-                       m->next       = message__list;
-                       message__list = m;
-               } else
-                       rc = -1;
-       }
-       return rc;
-}
-
-static void menu_build_message_list(struct menu *menu)
-{
-       struct menu *child;
-
-       message__add(menu_get_prompt(menu), NULL,
-                    menu->file == NULL ? "Root Menu" : menu->file->name,
-                    menu->lineno);
-
-       if (menu->sym != NULL && menu_has_help(menu))
-               message__add(menu_get_help(menu), menu->sym->name,
-                            menu->file == NULL ? "Root Menu" : 
menu->file->name,
-                            menu->lineno);
-
-       for (child = menu->list; child != NULL; child = child->next)
-               if (child->prompt != NULL)
-                       menu_build_message_list(child);
-}
-
-static void message__print_file_lineno(struct message *self)
-{
-       struct file_line *fl = self->files;
-
-       putchar('\n');
-       if (self->option != NULL)
-               printf("# %s:00000\n", self->option);
-
-       printf("#: %s:%d", fl->file, fl->lineno);
-       fl = fl->next;
-
-       while (fl != NULL) {
-               printf(", %s:%d", fl->file, fl->lineno);
-               fl = fl->next;
-       }
-
-       putchar('\n');
-}
-
-static void message__print_gettext_msgid_msgstr(struct message *self)
-{
-       message__print_file_lineno(self);
-
-       printf("msgid %s\n"
-              "msgstr \"\"\n", self->msg);
-}
-
-static void menu__xgettext(void)
-{
-       struct message *m = message__list;
-
-       while (m != NULL) {
-               /* skip empty lines ("") */
-               if (strlen(m->msg) > sizeof("\"\""))
-                       message__print_gettext_msgid_msgstr(m);
-               m = m->next;
-       }
-}
-
-int main(int ac, char **av)
-{
-       conf_parse(av[1]);
-
-       menu_build_message_list(menu_get_root_menu(NULL));
-       menu__xgettext();
-       return 0;
-}
diff --git a/xen/tools/kconfig/lkc.h b/xen/tools/kconfig/lkc.h
index 91ca126ea0..bbc850cee1 100644
--- a/xen/tools/kconfig/lkc.h
+++ b/xen/tools/kconfig/lkc.h
@@ -8,15 +8,6 @@
 
 #include "expr.h"
 
-#ifndef KBUILD_NO_NLS
-# include <libintl.h>
-#else
-static inline const char *gettext(const char *txt) { return txt; }
-static inline void textdomain(const char *domainname) {}
-static inline void bindtextdomain(const char *name, const char *dir) {}
-static inline char *bind_textdomain_codeset(const char *dn, char *c) { return 
c; }
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -29,11 +20,6 @@ extern "C" {
 #define PACKAGE "linux"
 #endif
 
-#define LOCALEDIR "/usr/share/locale"
-
-#define _(text) gettext(text)
-#define N_(text) (text)
-
 #ifndef CONFIG_
 #define CONFIG_ "CONFIG_"
 #endif
diff --git a/xen/tools/kconfig/lxdialog/checklist.c 
b/xen/tools/kconfig/lxdialog/checklist.c
index 8d016faa28..2e96323ad1 100644
--- a/xen/tools/kconfig/lxdialog/checklist.c
+++ b/xen/tools/kconfig/lxdialog/checklist.c
@@ -103,8 +103,8 @@ static void print_buttons(WINDOW * dialog, int height, int 
width, int selected)
        int x = width / 2 - 11;
        int y = height - 2;
 
-       print_button(dialog, gettext("Select"), y, x, selected == 0);
-       print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
+       print_button(dialog, "Select", y, x, selected == 0);
+       print_button(dialog, " Help ", y, x + 14, selected == 1);
 
        wmove(dialog, y, x + 1 + 14 * selected);
        wrefresh(dialog);
diff --git a/xen/tools/kconfig/lxdialog/dialog.h 
b/xen/tools/kconfig/lxdialog/dialog.h
index fcffd5b41f..cc22e5a90e 100644
--- a/xen/tools/kconfig/lxdialog/dialog.h
+++ b/xen/tools/kconfig/lxdialog/dialog.h
@@ -26,12 +26,6 @@
 #include <string.h>
 #include <stdbool.h>
 
-#ifndef KBUILD_NO_NLS
-# include <libintl.h>
-#else
-# define gettext(Msgid) ((const char *) (Msgid))
-#endif
-
 #ifdef __sun__
 #define CURS_MACROS
 #endif
diff --git a/xen/tools/kconfig/lxdialog/inputbox.c 
b/xen/tools/kconfig/lxdialog/inputbox.c
index d58de1dc53..fe82ff6d74 100644
--- a/xen/tools/kconfig/lxdialog/inputbox.c
+++ b/xen/tools/kconfig/lxdialog/inputbox.c
@@ -31,8 +31,8 @@ static void print_buttons(WINDOW * dialog, int height, int 
width, int selected)
        int x = width / 2 - 11;
        int y = height - 2;
 
-       print_button(dialog, gettext("  Ok  "), y, x, selected == 0);
-       print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
+       print_button(dialog, "  Ok  ", y, x, selected == 0);
+       print_button(dialog, " Help ", y, x + 14, selected == 1);
 
        wmove(dialog, y, x + 1 + 14 * selected);
        wrefresh(dialog);
diff --git a/xen/tools/kconfig/lxdialog/menubox.c 
b/xen/tools/kconfig/lxdialog/menubox.c
index 11ae9ad7ac..d70cab3613 100644
--- a/xen/tools/kconfig/lxdialog/menubox.c
+++ b/xen/tools/kconfig/lxdialog/menubox.c
@@ -157,11 +157,11 @@ static void print_buttons(WINDOW * win, int height, int 
width, int selected)
        int x = width / 2 - 28;
        int y = height - 2;
 
-       print_button(win, gettext("Select"), y, x, selected == 0);
-       print_button(win, gettext(" Exit "), y, x + 12, selected == 1);
-       print_button(win, gettext(" Help "), y, x + 24, selected == 2);
-       print_button(win, gettext(" Save "), y, x + 36, selected == 3);
-       print_button(win, gettext(" Load "), y, x + 48, selected == 4);
+       print_button(win, "Select", y, x, selected == 0);
+       print_button(win, " Exit ", y, x + 12, selected == 1);
+       print_button(win, " Help ", y, x + 24, selected == 2);
+       print_button(win, " Save ", y, x + 36, selected == 3);
+       print_button(win, " Load ", y, x + 48, selected == 4);
 
        wmove(win, y, x + 1 + 12 * selected);
        wrefresh(win);
diff --git a/xen/tools/kconfig/lxdialog/textbox.c 
b/xen/tools/kconfig/lxdialog/textbox.c
index 1773319b95..88d2818ed9 100644
--- a/xen/tools/kconfig/lxdialog/textbox.c
+++ b/xen/tools/kconfig/lxdialog/textbox.c
@@ -129,7 +129,7 @@ int dialog_textbox(const char *title, char *tbuf, int 
initial_height,
 
        print_title(dialog, title, width);
 
-       print_button(dialog, gettext(" Exit "), height - 2, width / 2 - 4, 
TRUE);
+       print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
        wnoutrefresh(dialog);
        getyx(dialog, cur_y, cur_x);    /* Save cursor position */
 
diff --git a/xen/tools/kconfig/lxdialog/yesno.c 
b/xen/tools/kconfig/lxdialog/yesno.c
index 676fb2f824..cd1223c903 100644
--- a/xen/tools/kconfig/lxdialog/yesno.c
+++ b/xen/tools/kconfig/lxdialog/yesno.c
@@ -29,8 +29,8 @@ static void print_buttons(WINDOW * dialog, int height, int 
width, int selected)
        int x = width / 2 - 10;
        int y = height - 2;
 
-       print_button(dialog, gettext(" Yes "), y, x, selected == 0);
-       print_button(dialog, gettext("  No  "), y, x + 13, selected == 1);
+       print_button(dialog, " Yes ", y, x, selected == 0);
+       print_button(dialog, "  No  ", y, x + 13, selected == 1);
 
        wmove(dialog, y, x + 1 + 13 * selected);
        wrefresh(dialog);
diff --git a/xen/tools/kconfig/mconf.c b/xen/tools/kconfig/mconf.c
index 315ce2c7cb..2489af60b9 100644
--- a/xen/tools/kconfig/mconf.c
+++ b/xen/tools/kconfig/mconf.c
@@ -17,12 +17,11 @@
 #include <string.h>
 #include <signal.h>
 #include <unistd.h>
-#include <locale.h>
 
 #include "lkc.h"
 #include "lxdialog/dialog.h"
 
-static const char mconf_readme[] = N_(
+static const char mconf_readme[] =
 "Overview\n"
 "--------\n"
 "This interface lets you select features and parameters for the build.\n"
@@ -171,37 +170,37 @@ static const char mconf_readme[] = N_(
 " blackbg    => selects a color scheme with black background\n"
 " classic    => theme with blue background. The classic look\n"
 " bluetitle  => an LCD friendly version of classic. (default)\n"
-"\n"),
-menu_instructions[] = N_(
+"\n",
+menu_instructions[] =
        "Arrow keys navigate the menu.  "
        "<Enter> selects submenus ---> (or empty submenus ----).  "
        "Highlighted letters are hotkeys.  "
        "Pressing <Y> includes, <N> excludes, <M> modularizes features.  "
        "Press <Esc><Esc> to exit, <?> for Help, </> for Search.  "
-       "Legend: [*] built-in  [ ] excluded  <M> module  < > module capable"),
-radiolist_instructions[] = N_(
+       "Legend: [*] built-in  [ ] excluded  <M> module  < > module capable",
+radiolist_instructions[] =
        "Use the arrow keys to navigate this window or "
        "press the hotkey of the item you wish to select "
        "followed by the <SPACE BAR>. "
-       "Press <?> for additional information about this option."),
-inputbox_instructions_int[] = N_(
+       "Press <?> for additional information about this option.",
+inputbox_instructions_int[] =
        "Please enter a decimal value. "
        "Fractions will not be accepted.  "
-       "Use the <TAB> key to move from the input field to the buttons below 
it."),
-inputbox_instructions_hex[] = N_(
+       "Use the <TAB> key to move from the input field to the buttons below 
it.",
+inputbox_instructions_hex[] =
        "Please enter a hexadecimal value. "
-       "Use the <TAB> key to move from the input field to the buttons below 
it."),
-inputbox_instructions_string[] = N_(
+       "Use the <TAB> key to move from the input field to the buttons below 
it.",
+inputbox_instructions_string[] =
        "Please enter a string value. "
-       "Use the <TAB> key to move from the input field to the buttons below 
it."),
-setmod_text[] = N_(
+       "Use the <TAB> key to move from the input field to the buttons below 
it.",
+setmod_text[] =
        "This feature depends on another which has been configured as a 
module.\n"
-       "As a result, this feature will be built as a module."),
-load_config_text[] = N_(
+       "As a result, this feature will be built as a module.",
+load_config_text[] =
        "Enter the name of the configuration file you wish to load.  "
        "Accept the name shown to restore the configuration you "
-       "last retrieved.  Leave blank to abort."),
-load_config_help[] = N_(
+       "last retrieved.  Leave blank to abort.",
+load_config_help[] =
        "\n"
        "For various reasons, one may wish to keep several different\n"
        "configurations available on a single machine.\n"
@@ -211,11 +210,11 @@ load_config_help[] = N_(
        "configuration.\n"
        "\n"
        "If you are uncertain, then you have probably never used alternate\n"
-       "configuration files. You should therefore leave this blank to 
abort.\n"),
-save_config_text[] = N_(
+       "configuration files. You should therefore leave this blank to 
abort.\n",
+save_config_text[] =
        "Enter a filename to which this configuration should be saved "
-       "as an alternate.  Leave blank to abort."),
-save_config_help[] = N_(
+       "as an alternate.  Leave blank to abort.",
+save_config_help[] =
        "\n"
        "For various reasons, one may wish to keep different configurations\n"
        "available on a single machine.\n"
@@ -225,8 +224,8 @@ save_config_help[] = N_(
        "configuration options you have selected at that time.\n"
        "\n"
        "If you are uncertain what all this means then you should probably\n"
-       "leave this blank.\n"),
-search_help[] = N_(
+       "leave this blank.\n",
+search_help[] =
        "\n"
        "Search for symbols and display their relations.\n"
        "Regular expressions are allowed.\n"
@@ -271,7 +270,7 @@ search_help[] = N_(
        "Examples: USB  => find all symbols containing USB\n"
        "          ^USB => find all symbols starting with USB\n"
        "          USB$ => find all symbols ending with USB\n"
-       "\n");
+       "\n";
 
 static int indent;
 static struct menu *current_menu;
@@ -400,19 +399,19 @@ static void search_conf(void)
        struct subtitle_part stpart;
 
        title = str_new();
-       str_printf( &title, _("Enter (sub)string or regexp to search for "
-                             "(with or without \"%s\")"), CONFIG_);
+       str_printf( &title, "Enter (sub)string or regexp to search for "
+                             "(with or without \"%s\")", CONFIG_);
 
 again:
        dialog_clear();
-       dres = dialog_inputbox(_("Search Configuration Parameter"),
+       dres = dialog_inputbox("Search Configuration Parameter",
                              str_get(&title),
                              10, 75, "");
        switch (dres) {
        case 0:
                break;
        case 1:
-               show_helptext(_("Search Configuration"), search_help);
+               show_helptext("Search Configuration", search_help);
                goto again;
        default:
                str_free(&title);
@@ -443,7 +442,7 @@ static void search_conf(void)
 
                res = get_relations_str(sym_arr, &head);
                set_subtitle();
-               dres = show_textbox_ext(_("Search Results"), (char *)
+               dres = show_textbox_ext("Search Results", (char *)
                                        str_get(&res), 0, 0, keys, &vscroll,
                                        &hscroll, &update_text, (void *)
                                        &data);
@@ -491,7 +490,7 @@ static void build_conf(struct menu *menu)
                        switch (prop->type) {
                        case P_MENU:
                                child_count++;
-                               prompt = _(prompt);
+                               prompt = prompt;
                                if (single_menu_mode) {
                                        item_make("%s%*c%s",
                                                  menu->data ? "-->" : "++>",
@@ -508,7 +507,7 @@ static void build_conf(struct menu *menu)
                        case P_COMMENT:
                                if (prompt) {
                                        child_count++;
-                                       item_make("   %*c*** %s ***", indent + 
1, ' ', _(prompt));
+                                       item_make("   %*c*** %s ***", indent + 
1, ' ', prompt);
                                        item_set_tag(':');
                                        item_set_data(menu);
                                }
@@ -516,7 +515,7 @@ static void build_conf(struct menu *menu)
                        default:
                                if (prompt) {
                                        child_count++;
-                                       item_make("---%*c%s", indent + 1, ' ', 
_(prompt));
+                                       item_make("---%*c%s", indent + 1, ' ', 
prompt);
                                        item_set_tag(':');
                                        item_set_data(menu);
                                }
@@ -560,10 +559,10 @@ static void build_conf(struct menu *menu)
                        item_set_data(menu);
                }
 
-               item_add_str("%*c%s", indent + 1, ' ', 
_(menu_get_prompt(menu)));
+               item_add_str("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
                if (val == yes) {
                        if (def_menu) {
-                               item_add_str(" (%s)", 
_(menu_get_prompt(def_menu)));
+                               item_add_str(" (%s)", 
menu_get_prompt(def_menu));
                                item_add_str("  --->");
                                if (def_menu->list) {
                                        indent += 2;
@@ -575,7 +574,7 @@ static void build_conf(struct menu *menu)
                }
        } else {
                if (menu == current_menu) {
-                       item_make("---%*c%s", indent + 1, ' ', 
_(menu_get_prompt(menu)));
+                       item_make("---%*c%s", indent + 1, ' ', 
menu_get_prompt(menu));
                        item_set_tag(':');
                        item_set_data(menu);
                        goto conf_childs;
@@ -618,17 +617,17 @@ static void build_conf(struct menu *menu)
                                tmp = indent - tmp + 4;
                                if (tmp < 0)
                                        tmp = 0;
-                               item_add_str("%*c%s%s", tmp, ' ', 
_(menu_get_prompt(menu)),
+                               item_add_str("%*c%s%s", tmp, ' ', 
menu_get_prompt(menu),
                                             (sym_has_value(sym) || 
!sym_is_changable(sym)) ?
-                                            "" : _(" (NEW)"));
+                                            "" : " (NEW)");
                                item_set_tag('s');
                                item_set_data(menu);
                                goto conf_childs;
                        }
                }
-               item_add_str("%*c%s%s", indent + 1, ' ', 
_(menu_get_prompt(menu)),
+               item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
                          (sym_has_value(sym) || !sym_is_changable(sym)) ?
-                         "" : _(" (NEW)"));
+                         "" : " (NEW)");
                if (menu->prompt->type == P_MENU) {
                        item_add_str("  %s", menu_is_empty(menu) ? "----" : 
"--->");
                        return;
@@ -665,8 +664,8 @@ static void conf(struct menu *menu, struct menu 
*active_menu)
                        break;
                set_subtitle();
                dialog_clear();
-               res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
-                                 _(menu_instructions),
+               res = dialog_menu(prompt ? prompt : "Main Menu",
+                                 menu_instructions,
                                  active_menu, &s_scroll);
                if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
                        break;
@@ -708,7 +707,7 @@ static void conf(struct menu *menu, struct menu 
*active_menu)
                                show_help(submenu);
                        else {
                                reset_subtitle();
-                               show_helptext(_("README"), _(mconf_readme));
+                               show_helptext("README", mconf_readme);
                        }
                        break;
                case 3:
@@ -793,13 +792,13 @@ static void show_help(struct menu *menu)
        help.max_width = getmaxx(stdscr) - 10;
        menu_get_ext_help(menu, &help);
 
-       show_helptext(_(menu_get_prompt(menu)), str_get(&help));
+       show_helptext(menu_get_prompt(menu), str_get(&help));
        str_free(&help);
 }
 
 static void conf_choice(struct menu *menu)
 {
-       const char *prompt = _(menu_get_prompt(menu));
+       const char *prompt = menu_get_prompt(menu);
        struct menu *child;
        struct symbol *active;
 
@@ -814,9 +813,9 @@ static void conf_choice(struct menu *menu)
                        if (!menu_is_visible(child))
                                continue;
                        if (child->sym)
-                               item_make("%s", _(menu_get_prompt(child)));
+                               item_make("%s", menu_get_prompt(child));
                        else {
-                               item_make("*** %s ***", 
_(menu_get_prompt(child)));
+                               item_make("*** %s ***", menu_get_prompt(child));
                                item_set_tag(':');
                        }
                        item_set_data(child);
@@ -826,8 +825,8 @@ static void conf_choice(struct menu *menu)
                                item_set_tag('X');
                }
                dialog_clear();
-               res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
-                                       _(radiolist_instructions),
+               res = dialog_checklist(prompt ? prompt : "Main Menu",
+                                       radiolist_instructions,
                                        MENUBOX_HEIGTH_MIN,
                                        MENUBOX_WIDTH_MIN,
                                        CHECKLIST_HEIGTH_MIN);
@@ -868,26 +867,26 @@ static void conf_string(struct menu *menu)
 
                switch (sym_get_type(menu->sym)) {
                case S_INT:
-                       heading = _(inputbox_instructions_int);
+                       heading = inputbox_instructions_int;
                        break;
                case S_HEX:
-                       heading = _(inputbox_instructions_hex);
+                       heading = inputbox_instructions_hex;
                        break;
                case S_STRING:
-                       heading = _(inputbox_instructions_string);
+                       heading = inputbox_instructions_string;
                        break;
                default:
-                       heading = _("Internal mconf error!");
+                       heading = "Internal mconf error!";
                }
                dialog_clear();
-               res = dialog_inputbox(prompt ? _(prompt) : _("Main Menu"),
+               res = dialog_inputbox(prompt ? prompt : "Main Menu",
                                      heading, 10, 75,
                                      sym_get_string_value(menu->sym));
                switch (res) {
                case 0:
                        if (sym_set_string_value(menu->sym, 
dialog_input_result))
                                return;
-                       show_textbox(NULL, _("You have made an invalid 
entry."), 5, 43);
+                       show_textbox(NULL, "You have made an invalid entry.", 
5, 43);
                        break;
                case 1:
                        show_help(menu);
@@ -915,10 +914,10 @@ static void conf_load(void)
                                sym_set_change_count(1);
                                return;
                        }
-                       show_textbox(NULL, _("File does not exist!"), 5, 38);
+                       show_textbox(NULL, "File does not exist!", 5, 38);
                        break;
                case 1:
-                       show_helptext(_("Load Alternate Configuration"), 
load_config_help);
+                       show_helptext("Load Alternate Configuration", 
load_config_help);
                        break;
                case KEY_ESC:
                        return;
@@ -941,10 +940,10 @@ static void conf_save(void)
                                set_config_filename(dialog_input_result);
                                return;
                        }
-                       show_textbox(NULL, _("Can't create file!  Probably a 
nonexistent directory."), 5, 60);
+                       show_textbox(NULL, "Can't create file!  Probably a 
nonexistent directory.", 5, 60);
                        break;
                case 1:
-                       show_helptext(_("Save Alternate Configuration"), 
save_config_help);
+                       show_helptext("Save Alternate Configuration", 
save_config_help);
                        break;
                case KEY_ESC:
                        return;
@@ -961,8 +960,8 @@ static int handle_exit(void)
        dialog_clear();
        if (conf_get_changed())
                res = dialog_yesno(NULL,
-                                  _("Do you wish to save your new 
configuration?\n"
-                                    "(Press <ESC><ESC> to continue kernel 
configuration.)"),
+                                  "Do you wish to save your new 
configuration?\n"
+                                    "(Press <ESC><ESC> to continue kernel 
configuration.)",
                                   6, 60);
        else
                res = -1;
@@ -972,26 +971,26 @@ static int handle_exit(void)
        switch (res) {
        case 0:
                if (conf_write(filename)) {
-                       fprintf(stderr, _("\n\n"
+                       fprintf(stderr, "\n\n"
                                          "Error while writing of the 
configuration.\n"
                                          "Your configuration changes were NOT 
saved."
-                                         "\n\n"));
+                                         "\n\n");
                        return 1;
                }
                /* fall through */
        case -1:
                if (!silent)
-                       printf(_("\n\n"
+                       printf("\n\n"
                                 "*** End of the configuration.\n"
                                 "*** Execute 'make' to start the build or try 
'make help'."
-                                "\n\n"));
+                                "\n\n");
                res = 0;
                break;
        default:
                if (!silent)
-                       fprintf(stderr, _("\n\n"
+                       fprintf(stderr, "\n\n"
                                          "Your configuration changes were NOT 
saved."
-                                         "\n\n"));
+                                         "\n\n");
                if (res != KEY_ESC)
                        res = 0;
        }
@@ -1009,10 +1008,6 @@ int main(int ac, char **av)
        char *mode;
        int res;
 
-       setlocale(LC_ALL, "");
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       textdomain(PACKAGE);
-
        signal(SIGINT, sig_handler);
 
        if (ac > 1 && strcmp(av[1], "-s") == 0) {
@@ -1031,8 +1026,8 @@ int main(int ac, char **av)
        }
 
        if (init_dialog(NULL)) {
-               fprintf(stderr, N_("Your display is too small to run 
Menuconfig!\n"));
-               fprintf(stderr, N_("It must be at least 19 lines by 80 
columns.\n"));
+               fprintf(stderr, "Your display is too small to run 
Menuconfig!\n");
+               fprintf(stderr, "It must be at least 19 lines by 80 
columns.\n");
                return 1;
        }
 
diff --git a/xen/tools/kconfig/menu.c b/xen/tools/kconfig/menu.c
index b05cc3d4a9..71d31f2bf6 100644
--- a/xen/tools/kconfig/menu.c
+++ b/xen/tools/kconfig/menu.c
@@ -550,7 +550,7 @@ static void get_prompt_str(struct gstr *r, struct property 
*prop,
        struct menu *submenu[8], *menu, *location = NULL;
        struct jump_key *jump = NULL;
 
-       str_printf(r, _("Prompt: %s\n"), _(prop->text));
+       str_printf(r, "Prompt: %s\n", prop->text);
        menu = prop->menu->parent;
        for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
                bool accessible = menu_is_visible(menu);
@@ -583,16 +583,16 @@ static void get_prompt_str(struct gstr *r, struct 
property *prop,
        }
 
        if (i > 0) {
-               str_printf(r, _("  Location:\n"));
+               str_printf(r, "  Location:\n");
                for (j = 4; --i >= 0; j += 2) {
                        menu = submenu[i];
                        if (jump && menu == location)
                                jump->offset = strlen(r->s);
                        str_printf(r, "%*c-> %s", j, ' ',
-                                  _(menu_get_prompt(menu)));
+                                  menu_get_prompt(menu));
                        if (menu->sym) {
                                str_printf(r, " (%s [=%s])", menu->sym->name ?
-                                       menu->sym->name : _("<choice>"),
+                                       menu->sym->name : "<choice>",
                                        sym_get_string_value(menu->sym));
                        }
                        str_append(r, "\n");
@@ -639,10 +639,10 @@ static void get_symbol_str(struct gstr *r, struct symbol 
*sym,
 
        prop = get_symbol_prop(sym);
        if (prop) {
-               str_printf(r, _("  Defined at %s:%d\n"), prop->menu->file->name,
+               str_printf(r, "  Defined at %s:%d\n", prop->menu->file->name,
                        prop->menu->lineno);
                if (!expr_is_yes(prop->visible.expr)) {
-                       str_append(r, _("  Depends on: "));
+                       str_append(r, "  Depends on: ");
                        expr_gstr_print(prop->visible.expr, r);
                        str_append(r, "\n");
                }
@@ -660,7 +660,7 @@ static void get_symbol_str(struct gstr *r, struct symbol 
*sym,
        if (hit)
                str_append(r, "\n");
        if (sym->rev_dep.expr) {
-               str_append(r, _("  Selected by: "));
+               str_append(r, "  Selected by: ");
                expr_gstr_print(sym->rev_dep.expr, r);
                str_append(r, "\n");
        }
@@ -676,7 +676,7 @@ struct gstr get_relations_str(struct symbol **sym_arr, 
struct list_head *head)
        for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
                get_symbol_str(&res, sym, head);
        if (!i)
-               str_append(&res, _("No matches found.\n"));
+               str_append(&res, "No matches found.\n");
        return res;
 }
 
@@ -691,7 +691,7 @@ void menu_get_ext_help(struct menu *menu, struct gstr *help)
                        str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
                help_text = menu_get_help(menu);
        }
-       str_printf(help, "%s\n", _(help_text));
+       str_printf(help, "%s\n", help_text);
        if (sym)
                get_symbol_str(help, sym, NULL);
 }
diff --git a/xen/tools/kconfig/nconf.c b/xen/tools/kconfig/nconf.c
index d42d534a66..b6e44cbe59 100644
--- a/xen/tools/kconfig/nconf.c
+++ b/xen/tools/kconfig/nconf.c
@@ -13,7 +13,7 @@
 #include "nconf.h"
 #include <ctype.h>
 
-static const char nconf_global_help[] = N_(
+static const char nconf_global_help[] =
 "Help windows\n"
 "------------\n"
 "o  Global help:  Unless in a data entry window, pressing <F1> will give \n"
@@ -128,8 +128,8 @@ static const char nconf_global_help[] = N_(
 "\n"
 "Note that this mode can eventually be a little more CPU expensive than\n"
 "the default mode, especially with a larger number of unfolded submenus.\n"
-"\n"),
-menu_no_f_instructions[] = N_(
+"\n",
+menu_no_f_instructions[] =
 "Legend:  [*] built-in  [ ] excluded  <M> module  < > module capable.\n"
 "Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
 "\n"
@@ -145,8 +145,8 @@ menu_no_f_instructions[] = N_(
 "You do not have function keys support.\n"
 "Press <1> instead of <F1>, <2> instead of <F2>, etc.\n"
 "For verbose global help use key <1>.\n"
-"For help related to the current menu entry press <?> or <h>.\n"),
-menu_instructions[] = N_(
+"For help related to the current menu entry press <?> or <h>.\n",
+menu_instructions[] =
 "Legend:  [*] built-in  [ ] excluded  <M> module  < > module capable.\n"
 "Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
 "\n"
@@ -161,30 +161,30 @@ menu_instructions[] = N_(
 "\n"
 "Pressing <1> may be used instead of <F1>, <2> instead of <F2>, etc.\n"
 "For verbose global help press <F1>.\n"
-"For help related to the current menu entry press <?> or <h>.\n"),
-radiolist_instructions[] = N_(
+"For help related to the current menu entry press <?> or <h>.\n",
+radiolist_instructions[] =
 "Press <Up>, <Down>, <Home> or <End> to navigate a radiolist, select\n"
 "with <Space>.\n"
 "For help related to the current entry press <?> or <h>.\n"
-"For global help press <F1>.\n"),
-inputbox_instructions_int[] = N_(
+"For global help press <F1>.\n",
+inputbox_instructions_int[] =
 "Please enter a decimal value.\n"
 "Fractions will not be accepted.\n"
-"Press <Enter> to apply, <Esc> to cancel."),
-inputbox_instructions_hex[] = N_(
+"Press <Enter> to apply, <Esc> to cancel.",
+inputbox_instructions_hex[] =
 "Please enter a hexadecimal value.\n"
-"Press <Enter> to apply, <Esc> to cancel."),
-inputbox_instructions_string[] = N_(
+"Press <Enter> to apply, <Esc> to cancel.",
+inputbox_instructions_string[] =
 "Please enter a string value.\n"
-"Press <Enter> to apply, <Esc> to cancel."),
-setmod_text[] = N_(
+"Press <Enter> to apply, <Esc> to cancel.",
+setmod_text[] =
 "This feature depends on another feature which has been configured as a\n"
-"module.  As a result, the current feature will be built as a module too."),
-load_config_text[] = N_(
+"module.  As a result, the current feature will be built as a module too.",
+load_config_text[] =
 "Enter the name of the configuration file you wish to load.\n"
 "Accept the name shown to restore the configuration you last\n"
-"retrieved.  Leave empty to abort."),
-load_config_help[] = N_(
+"retrieved.  Leave empty to abort.",
+load_config_help[] =
 "For various reasons, one may wish to keep several different\n"
 "configurations available on a single machine.\n"
 "\n"
@@ -192,11 +192,11 @@ load_config_help[] = N_(
 "default one, entering its name here will allow you to load and modify\n"
 "that configuration.\n"
 "\n"
-"Leave empty to abort.\n"),
-save_config_text[] = N_(
+"Leave empty to abort.\n",
+save_config_text[] =
 "Enter a filename to which this configuration should be saved\n"
-"as an alternate.  Leave empty to abort."),
-save_config_help[] = N_(
+"as an alternate.  Leave empty to abort.",
+save_config_help[] =
 "For various reasons, one may wish to keep several different\n"
 "configurations available on a single machine.\n"
 "\n"
@@ -204,8 +204,8 @@ save_config_help[] = N_(
 "and use the current configuration as an alternate to whatever\n"
 "configuration options you have selected at that time.\n"
 "\n"
-"Leave empty to abort.\n"),
-search_help[] = N_(
+"Leave empty to abort.\n",
+search_help[] =
 "Search for symbols (configuration variable names CONFIG_*) and display\n"
 "their relations.  Regular expressions are supported.\n"
 "Example:  Search for \"^FOO\".\n"
@@ -242,7 +242,7 @@ search_help[] = N_(
 "USB  => find all symbols containing USB\n"
 "^USB => find all symbols starting with USB\n"
 "USB$ => find all symbols ending with USB\n"
-"\n");
+"\n";
 
 struct mitem {
        char str[256];
@@ -386,7 +386,7 @@ static void print_function_line(void)
 static void handle_f1(int *key, struct menu *current_item)
 {
        show_scroll_win(main_window,
-                       _("Global help"), _(nconf_global_help));
+                       "Global help", nconf_global_help);
        return;
 }
 
@@ -401,8 +401,8 @@ static void handle_f2(int *key, struct menu *current_item)
 static void handle_f3(int *key, struct menu *current_item)
 {
        show_scroll_win(main_window,
-                       _("Short help"),
-                       _(current_instructions));
+                       "Short help",
+                       current_instructions);
        return;
 }
 
@@ -410,7 +410,7 @@ static void handle_f3(int *key, struct menu *current_item)
 static void handle_f4(int *key, struct menu *current_item)
 {
        int res = btn_dialog(main_window,
-                       _("Show all symbols?"),
+                       "Show all symbols?",
                        2,
                        "   <Show All>   ",
                        "<Don't show all>");
@@ -651,8 +651,8 @@ static int do_exit(void)
                return 0;
        }
        res = btn_dialog(main_window,
-                       _("Do you wish to save your new configuration?\n"
-                               "<ESC> to cancel and resume nconfig."),
+                       "Do you wish to save your new configuration?\n"
+                               "<ESC> to cancel and resume nconfig.",
                        2,
                        "   <save>   ",
                        "<don't save>");
@@ -668,15 +668,15 @@ static int do_exit(void)
                if (res)
                        btn_dialog(
                                main_window,
-                               _("Error during writing of configuration.\n"
-                                 "Your configuration changes were NOT saved."),
+                               "Error during writing of configuration.\n"
+                                 "Your configuration changes were NOT saved.",
                                  1,
                                  "<OK>");
                break;
        default:
                btn_dialog(
                        main_window,
-                       _("Your configuration changes were NOT saved."),
+                       "Your configuration changes were NOT saved.",
                        1,
                        "<OK>");
                break;
@@ -695,12 +695,12 @@ static void search_conf(void)
        int dres;
 
        title = str_new();
-       str_printf( &title, _("Enter (sub)string or regexp to search for "
-                             "(with or without \"%s\")"), CONFIG_);
+       str_printf( &title, "Enter (sub)string or regexp to search for "
+                             "(with or without \"%s\")", CONFIG_);
 
 again:
        dres = dialog_inputbox(main_window,
-                       _("Search Configuration Parameter"),
+                       "Search Configuration Parameter",
                        str_get(&title),
                        "", &dialog_input_result, &dialog_input_result_len);
        switch (dres) {
@@ -708,7 +708,7 @@ static void search_conf(void)
                break;
        case 1:
                show_scroll_win(main_window,
-                               _("Search Configuration"), search_help);
+                               "Search Configuration", search_help);
                goto again;
        default:
                str_free(&title);
@@ -724,7 +724,7 @@ static void search_conf(void)
        res = get_relations_str(sym_arr, NULL);
        free(sym_arr);
        show_scroll_win(main_window,
-                       _("Search Results"), str_get(&res));
+                       "Search Results", str_get(&res));
        str_free(&res);
        str_free(&title);
 }
@@ -752,7 +752,7 @@ static void build_conf(struct menu *menu)
                        switch (ptype) {
                        case P_MENU:
                                child_count++;
-                               prompt = _(prompt);
+                               prompt = prompt;
                                if (single_menu_mode) {
                                        item_make(menu, 'm',
                                                "%s%*c%s",
@@ -773,7 +773,7 @@ static void build_conf(struct menu *menu)
                                        item_make(menu, ':',
                                                "   %*c*** %s ***",
                                                indent + 1, ' ',
-                                               _(prompt));
+                                               prompt);
                                }
                                break;
                        default:
@@ -781,7 +781,7 @@ static void build_conf(struct menu *menu)
                                        child_count++;
                                        item_make(menu, ':', "---%*c%s",
                                                indent + 1, ' ',
-                                               _(prompt));
+                                               prompt);
                                }
                        }
                } else
@@ -827,11 +827,11 @@ static void build_conf(struct menu *menu)
                }
 
                item_add_str("%*c%s", indent + 1,
-                               ' ', _(menu_get_prompt(menu)));
+                               ' ', menu_get_prompt(menu));
                if (val == yes) {
                        if (def_menu) {
                                item_add_str(" (%s)",
-                                       _(menu_get_prompt(def_menu)));
+                                       menu_get_prompt(def_menu));
                                item_add_str("  --->");
                                if (def_menu->list) {
                                        indent += 2;
@@ -845,7 +845,7 @@ static void build_conf(struct menu *menu)
                if (menu == current_menu) {
                        item_make(menu, ':',
                                "---%*c%s", indent + 1,
-                               ' ', _(menu_get_prompt(menu)));
+                               ' ', menu_get_prompt(menu));
                        goto conf_childs;
                }
                child_count++;
@@ -892,17 +892,17 @@ static void build_conf(struct menu *menu)
                                if (tmp < 0)
                                        tmp = 0;
                                item_add_str("%*c%s%s", tmp, ' ',
-                                               _(menu_get_prompt(menu)),
+                                               menu_get_prompt(menu),
                                                (sym_has_value(sym) ||
                                                 !sym_is_changable(sym)) ? "" :
-                                               _(" (NEW)"));
+                                               " (NEW)");
                                goto conf_childs;
                        }
                }
                item_add_str("%*c%s%s", indent + 1, ' ',
-                               _(menu_get_prompt(menu)),
+                               menu_get_prompt(menu),
                                (sym_has_value(sym) || !sym_is_changable(sym)) ?
-                               "" : _(" (NEW)"));
+                               "" : " (NEW)");
                if (menu->prompt && menu->prompt->type == P_MENU) {
                        item_add_str("  %s", menu_is_empty(menu) ? "----" : 
"--->");
                        return;
@@ -1084,8 +1084,8 @@ static void conf(struct menu *menu)
                if (!child_count)
                        break;
 
-               show_menu(prompt ? _(prompt) : _("Main Menu"),
-                               _(menu_instructions),
+               show_menu(prompt ? prompt : "Main Menu",
+                               menu_instructions,
                                current_index, &last_top_row);
                keypad((menu_win(curses_menu)), TRUE);
                while (!global_exit) {
@@ -1225,13 +1225,13 @@ static void show_help(struct menu *menu)
 
        help = str_new();
        menu_get_ext_help(menu, &help);
-       show_scroll_win(main_window, _(menu_get_prompt(menu)), str_get(&help));
+       show_scroll_win(main_window, menu_get_prompt(menu), str_get(&help));
        str_free(&help);
 }
 
 static void conf_choice(struct menu *menu)
 {
-       const char *prompt = _(menu_get_prompt(menu));
+       const char *prompt = menu_get_prompt(menu);
        struct menu *child = 0;
        struct symbol *active;
        int selected_index = 0;
@@ -1254,13 +1254,13 @@ static void conf_choice(struct menu *menu)
 
                        if (child->sym == sym_get_choice_value(menu->sym))
                                item_make(child, ':', "<X> %s",
-                                               _(menu_get_prompt(child)));
+                                               menu_get_prompt(child));
                        else if (child->sym)
                                item_make(child, ':', "    %s",
-                                               _(menu_get_prompt(child)));
+                                               menu_get_prompt(child));
                        else
                                item_make(child, ':', "*** %s ***",
-                                               _(menu_get_prompt(child)));
+                                               menu_get_prompt(child));
 
                        if (child->sym == active){
                                last_top_row = top_row(curses_menu);
@@ -1268,8 +1268,8 @@ static void conf_choice(struct menu *menu)
                        }
                        i++;
                }
-               show_menu(prompt ? _(prompt) : _("Choice Menu"),
-                               _(radiolist_instructions),
+               show_menu(prompt ? prompt : "Choice Menu",
+                               radiolist_instructions,
                                selected_index,
                                &last_top_row);
                while (!global_exit) {
@@ -1356,19 +1356,19 @@ static void conf_string(struct menu *menu)
 
                switch (sym_get_type(menu->sym)) {
                case S_INT:
-                       heading = _(inputbox_instructions_int);
+                       heading = inputbox_instructions_int;
                        break;
                case S_HEX:
-                       heading = _(inputbox_instructions_hex);
+                       heading = inputbox_instructions_hex;
                        break;
                case S_STRING:
-                       heading = _(inputbox_instructions_string);
+                       heading = inputbox_instructions_string;
                        break;
                default:
-                       heading = _("Internal nconf error!");
+                       heading = "Internal nconf error!";
                }
                res = dialog_inputbox(main_window,
-                               prompt ? _(prompt) : _("Main Menu"),
+                               prompt ? prompt : "Main Menu",
                                heading,
                                sym_get_string_value(menu->sym),
                                &dialog_input_result,
@@ -1379,7 +1379,7 @@ static void conf_string(struct menu *menu)
                                                dialog_input_result))
                                return;
                        btn_dialog(main_window,
-                               _("You have made an invalid entry."), 0);
+                               "You have made an invalid entry.", 0);
                        break;
                case 1:
                        show_help(menu);
@@ -1408,11 +1408,11 @@ static void conf_load(void)
                                sym_set_change_count(1);
                                return;
                        }
-                       btn_dialog(main_window, _("File does not exist!"), 0);
+                       btn_dialog(main_window, "File does not exist!", 0);
                        break;
                case 1:
                        show_scroll_win(main_window,
-                                       _("Load Alternate Configuration"),
+                                       "Load Alternate Configuration",
                                        load_config_help);
                        break;
                case KEY_EXIT:
@@ -1439,13 +1439,13 @@ static void conf_save(void)
                                set_config_filename(dialog_input_result);
                                return;
                        }
-                       btn_dialog(main_window, _("Can't create file! "
-                               "Probably a nonexistent directory."),
+                       btn_dialog(main_window, "Can't create file! "
+                               "Probably a nonexistent directory.",
                                1, "<OK>");
                        break;
                case 1:
                        show_scroll_win(main_window,
-                               _("Save Alternate Configuration"),
+                               "Save Alternate Configuration",
                                save_config_help);
                        break;
                case KEY_EXIT:
@@ -1478,10 +1478,6 @@ int main(int ac, char **av)
        int lines, columns;
        char *mode;
 
-       setlocale(LC_ALL, "");
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       textdomain(PACKAGE);
-
        if (ac > 1 && strcmp(av[1], "-s") == 0) {
                /* Silence conf_read() until the real callback is set up */
                conf_set_message_callback(NULL);
@@ -1539,8 +1535,8 @@ int main(int ac, char **av)
        /* check for KEY_FUNC(1) */
        if (has_key(KEY_F(1)) == FALSE) {
                show_scroll_win(main_window,
-                               _("Instructions"),
-                               _(menu_no_f_instructions));
+                               "Instructions",
+                               menu_no_f_instructions);
        }
 
        conf_set_message_callback(conf_message_callback);
diff --git a/xen/tools/kconfig/nconf.h b/xen/tools/kconfig/nconf.h
index 0d5261705e..5e968163a4 100644
--- a/xen/tools/kconfig/nconf.h
+++ b/xen/tools/kconfig/nconf.h
@@ -14,7 +14,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <locale.h>
 #include <curses.h>
 #include <menu.h>
 #include <panel.h>
diff --git a/xen/tools/kconfig/qconf.cc b/xen/tools/kconfig/qconf.cc
index c3bb7fe8df..e140ab00ab 100644
--- a/xen/tools/kconfig/qconf.cc
+++ b/xen/tools/kconfig/qconf.cc
@@ -49,10 +49,6 @@
 #include "qconf.moc"
 #include "images.c"
 
-#ifdef _
-# undef _
-# define _ qgettext
-#endif
 
 static QApplication *configApp;
 static ConfigSettings *configSettings;
@@ -61,12 +57,7 @@ Q3Action *ConfigMainWindow::saveAction;
 
 static inline QString qgettext(const char* str)
 {
-       return QString::fromLocal8Bit(gettext(str));
-}
-
-static inline QString qgettext(const QString& str)
-{
-       return QString::fromLocal8Bit(gettext(str.latin1()));
+       return QString::fromLocal8Bit(str);
 }
 
 ConfigSettings::ConfigSettings()
@@ -135,7 +126,7 @@ void ConfigItem::updateMenu(void)
 
        sym = menu->sym;
        prop = menu->prompt;
-       prompt = _(menu_get_prompt(menu));
+       prompt = qgettext(menu_get_prompt(menu));
 
        if (prop) switch (prop->type) {
        case P_MENU:
@@ -227,7 +218,7 @@ void ConfigItem::updateMenu(void)
                break;
        }
        if (!sym_has_value(sym) && visible)
-               prompt += _(" (NEW)");
+               prompt += " (NEW)";
 set_prompt:
        setText(promptColIdx, prompt);
 }
@@ -365,7 +356,7 @@ ConfigList::ConfigList(ConfigView* p, const char *name)
 
        for (i = 0; i < colNr; i++)
                colMap[i] = colRevMap[i] = -1;
-       addColumn(promptColIdx, _("Option"));
+       addColumn(promptColIdx, "Option");
 
        reinit();
 }
@@ -390,14 +381,14 @@ void ConfigList::reinit(void)
        removeColumn(nameColIdx);
 
        if (showName)
-               addColumn(nameColIdx, _("Name"));
+               addColumn(nameColIdx, "Name");
        if (showRange) {
                addColumn(noColIdx, "N");
                addColumn(modColIdx, "M");
                addColumn(yesColIdx, "Y");
        }
        if (showData)
-               addColumn(dataColIdx, _("Value"));
+               addColumn(dataColIdx, "Value");
 
        updateListAll();
 }
@@ -831,7 +822,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
                        Q3Action *action;
 
                        headerPopup = new Q3PopupMenu(this);
-                       action = new Q3Action(NULL, _("Show Name"), 0, this);
+                       action = new Q3Action(NULL, "Show Name", 0, this);
                          action->setToggleAction(TRUE);
                          connect(action, SIGNAL(toggled(bool)),
                                  parent(), SLOT(setShowName(bool)));
@@ -839,7 +830,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
                                  action, SLOT(setOn(bool)));
                          action->setOn(showName);
                          action->addTo(headerPopup);
-                       action = new Q3Action(NULL, _("Show Range"), 0, this);
+                       action = new Q3Action(NULL, "Show Range", 0, this);
                          action->setToggleAction(TRUE);
                          connect(action, SIGNAL(toggled(bool)),
                                  parent(), SLOT(setShowRange(bool)));
@@ -847,7 +838,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
                                  action, SLOT(setOn(bool)));
                          action->setOn(showRange);
                          action->addTo(headerPopup);
-                       action = new Q3Action(NULL, _("Show Data"), 0, this);
+                       action = new Q3Action(NULL, "Show Data", 0, this);
                          action->setToggleAction(TRUE);
                          connect(action, SIGNAL(toggled(bool)),
                                  parent(), SLOT(setShowData(bool)));
@@ -1022,7 +1013,7 @@ void ConfigInfoView::menuInfo(void)
        if (sym) {
                if (_menu->prompt) {
                        head += "<big><b>";
-                       head += print_filter(_(_menu->prompt->text));
+                       head += print_filter(_menu->prompt->text);
                        head += "</b></big>";
                        if (sym->name) {
                                head += " (";
@@ -1053,7 +1044,7 @@ void ConfigInfoView::menuInfo(void)
                str_free(&help_gstr);
        } else if (_menu->prompt) {
                head += "<big><b>";
-               head += print_filter(_(_menu->prompt->text));
+               head += print_filter(_menu->prompt->text);
                head += "</b></big><br><br>";
                if (showDebug()) {
                        if (_menu->prompt->visible.expr) {
@@ -1088,7 +1079,7 @@ QString ConfigInfoView::debug_info(struct symbol *sym)
                case P_PROMPT:
                case P_MENU:
                        debug += QString().sprintf("prompt: <a href=\"m%p\">", 
prop->menu);
-                       debug += print_filter(_(prop->text));
+                       debug += print_filter(prop->text);
                        debug += "</a><br>";
                        break;
                case P_DEFAULT:
@@ -1170,7 +1161,7 @@ void ConfigInfoView::expr_print_help(void *data, struct 
symbol *sym, const char
 Q3PopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
 {
        Q3PopupMenu* popup = Parent::createPopupMenu(pos);
-       Q3Action* action = new Q3Action(NULL, _("Show Debug Info"), 0, popup);
+       Q3Action* action = new Q3Action(NULL, "Show Debug Info", 0, popup);
          action->setToggleAction(TRUE);
          connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
          connect(this, SIGNAL(showDebugChanged(bool)), action, 
SLOT(setOn(bool)));
@@ -1192,11 +1183,11 @@ 
ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent, const char *nam
 
        QVBoxLayout* layout1 = new QVBoxLayout(this, 11, 6);
        QHBoxLayout* layout2 = new QHBoxLayout(0, 0, 6);
-       layout2->addWidget(new QLabel(_("Find:"), this));
+       layout2->addWidget(new QLabel("Find:", this));
        editField = new QLineEdit(this);
        connect(editField, SIGNAL(returnPressed()), SLOT(search()));
        layout2->addWidget(editField);
-       searchButton = new QPushButton(_("Search"), this);
+       searchButton = new QPushButton("Search", this);
        searchButton->setAutoDefault(FALSE);
        connect(searchButton, SIGNAL(clicked()), SLOT(search()));
        layout2->addWidget(searchButton);
@@ -1322,40 +1313,40 @@ ConfigMainWindow::ConfigMainWindow(void)
        menu = menuBar();
        toolBar = new Q3ToolBar("Tools", this);
 
-       backAction = new Q3Action("Back", QPixmap(xpm_back), _("Back"), 0, 
this);
+       backAction = new Q3Action("Back", QPixmap(xpm_back), "Back", 0, this);
          connect(backAction, SIGNAL(activated()), SLOT(goBack()));
          backAction->setEnabled(FALSE);
-       Q3Action *quitAction = new Q3Action("Quit", _("&Quit"), Qt::CTRL + 
Qt::Key_Q, this);
+       Q3Action *quitAction = new Q3Action("Quit", "&Quit", Qt::CTRL + 
Qt::Key_Q, this);
          connect(quitAction, SIGNAL(activated()), SLOT(close()));
-       Q3Action *loadAction = new Q3Action("Load", QPixmap(xpm_load), 
_("&Load"), Qt::CTRL + Qt::Key_L, this);
+       Q3Action *loadAction = new Q3Action("Load", QPixmap(xpm_load), "&Load", 
Qt::CTRL + Qt::Key_L, this);
          connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
-       saveAction = new Q3Action("Save", QPixmap(xpm_save), _("&Save"), 
Qt::CTRL + Qt::Key_S, this);
+       saveAction = new Q3Action("Save", QPixmap(xpm_save), "&Save", Qt::CTRL 
+ Qt::Key_S, this);
          connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
        conf_set_changed_callback(conf_changed);
        // Set saveAction's initial state
        conf_changed();
-       Q3Action *saveAsAction = new Q3Action("Save As...", _("Save &As..."), 
0, this);
+       Q3Action *saveAsAction = new Q3Action("Save As...", "Save &As...", 0, 
this);
          connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
-       Q3Action *searchAction = new Q3Action("Find", _("&Find"), Qt::CTRL + 
Qt::Key_F, this);
+       Q3Action *searchAction = new Q3Action("Find", "&Find", Qt::CTRL + 
Qt::Key_F, this);
          connect(searchAction, SIGNAL(activated()), SLOT(searchConfig()));
-       Q3Action *singleViewAction = new Q3Action("Single View", 
QPixmap(xpm_single_view), _("Single View"), 0, this);
+       Q3Action *singleViewAction = new Q3Action("Single View", 
QPixmap(xpm_single_view), "Single View", 0, this);
          connect(singleViewAction, SIGNAL(activated()), 
SLOT(showSingleView()));
-       Q3Action *splitViewAction = new Q3Action("Split View", 
QPixmap(xpm_split_view), _("Split View"), 0, this);
+       Q3Action *splitViewAction = new Q3Action("Split View", 
QPixmap(xpm_split_view), "Split View", 0, this);
          connect(splitViewAction, SIGNAL(activated()), SLOT(showSplitView()));
-       Q3Action *fullViewAction = new Q3Action("Full View", 
QPixmap(xpm_tree_view), _("Full View"), 0, this);
+       Q3Action *fullViewAction = new Q3Action("Full View", 
QPixmap(xpm_tree_view), "Full View", 0, this);
          connect(fullViewAction, SIGNAL(activated()), SLOT(showFullView()));
 
-       Q3Action *showNameAction = new Q3Action(NULL, _("Show Name"), 0, this);
+       Q3Action *showNameAction = new Q3Action(NULL, "Show Name", 0, this);
          showNameAction->setToggleAction(TRUE);
          connect(showNameAction, SIGNAL(toggled(bool)), configView, 
SLOT(setShowName(bool)));
          connect(configView, SIGNAL(showNameChanged(bool)), showNameAction, 
SLOT(setOn(bool)));
          showNameAction->setOn(configView->showName());
-       Q3Action *showRangeAction = new Q3Action(NULL, _("Show Range"), 0, 
this);
+       Q3Action *showRangeAction = new Q3Action(NULL, "Show Range", 0, this);
          showRangeAction->setToggleAction(TRUE);
          connect(showRangeAction, SIGNAL(toggled(bool)), configView, 
SLOT(setShowRange(bool)));
          connect(configView, SIGNAL(showRangeChanged(bool)), showRangeAction, 
SLOT(setOn(bool)));
          showRangeAction->setOn(configList->showRange);
-       Q3Action *showDataAction = new Q3Action(NULL, _("Show Data"), 0, this);
+       Q3Action *showDataAction = new Q3Action(NULL, "Show Data", 0, this);
          showDataAction->setToggleAction(TRUE);
          connect(showDataAction, SIGNAL(toggled(bool)), configView, 
SLOT(setShowData(bool)));
          connect(configView, SIGNAL(showDataChanged(bool)), showDataAction, 
SLOT(setOn(bool)));
@@ -1369,13 +1360,13 @@ ConfigMainWindow::ConfigMainWindow(void)
                SLOT(setOptionMode(QAction *)));
 
 #if QT_VERSION >= 0x040000
-       configView->showNormalAction = new QAction(_("Show Normal Options"), 
optGroup);
-       configView->showAllAction = new QAction(_("Show All Options"), 
optGroup);
-       configView->showPromptAction = new QAction(_("Show Prompt Options"), 
optGroup);
+       configView->showNormalAction = new QAction("Show Normal Options", 
optGroup);
+       configView->showAllAction = new QAction("Show All Options", optGroup);
+       configView->showPromptAction = new QAction("Show Prompt Options", 
optGroup);
 #else
-       configView->showNormalAction = new QAction(_("Show Normal Options"), 0, 
optGroup);
-       configView->showAllAction = new QAction(_("Show All Options"), 0, 
optGroup);
-       configView->showPromptAction = new QAction(_("Show Prompt Options"), 0, 
optGroup);
+       configView->showNormalAction = new QAction("Show Normal Options", 0, 
optGroup);
+       configView->showAllAction = new QAction("Show All Options", 0, 
optGroup);
+       configView->showPromptAction = new QAction("Show Prompt Options", 0, 
optGroup);
 #endif
        configView->showNormalAction->setToggleAction(TRUE);
        configView->showNormalAction->setOn(configList->optMode == normalOpt);
@@ -1384,15 +1375,15 @@ ConfigMainWindow::ConfigMainWindow(void)
        configView->showPromptAction->setToggleAction(TRUE);
        configView->showPromptAction->setOn(configList->optMode == promptOpt);
 
-       Q3Action *showDebugAction = new Q3Action(NULL, _("Show Debug Info"), 0, 
this);
+       Q3Action *showDebugAction = new Q3Action(NULL, "Show Debug Info", 0, 
this);
          showDebugAction->setToggleAction(TRUE);
          connect(showDebugAction, SIGNAL(toggled(bool)), helpText, 
SLOT(setShowDebug(bool)));
          connect(helpText, SIGNAL(showDebugChanged(bool)), showDebugAction, 
SLOT(setOn(bool)));
          showDebugAction->setOn(helpText->showDebug());
 
-       Q3Action *showIntroAction = new Q3Action(NULL, _("Introduction"), 0, 
this);
+       Q3Action *showIntroAction = new Q3Action(NULL, "Introduction", 0, this);
          connect(showIntroAction, SIGNAL(activated()), SLOT(showIntro()));
-       Q3Action *showAboutAction = new Q3Action(NULL, _("About"), 0, this);
+       Q3Action *showAboutAction = new Q3Action(NULL, "About", 0, this);
          connect(showAboutAction, SIGNAL(activated()), SLOT(showAbout()));
 
        // init tool bar
@@ -1407,7 +1398,7 @@ ConfigMainWindow::ConfigMainWindow(void)
 
        // create config menu
        Q3PopupMenu* config = new Q3PopupMenu(this);
-       menu->insertItem(_("&File"), config);
+       menu->insertItem("&File", config);
        loadAction->addTo(config);
        saveAction->addTo(config);
        saveAsAction->addTo(config);
@@ -1416,12 +1407,12 @@ ConfigMainWindow::ConfigMainWindow(void)
 
        // create edit menu
        Q3PopupMenu* editMenu = new Q3PopupMenu(this);
-       menu->insertItem(_("&Edit"), editMenu);
+       menu->insertItem("&Edit", editMenu);
        searchAction->addTo(editMenu);
 
        // create options menu
        Q3PopupMenu* optionMenu = new Q3PopupMenu(this);
-       menu->insertItem(_("&Option"), optionMenu);
+       menu->insertItem("&Option", optionMenu);
        showNameAction->addTo(optionMenu);
        showRangeAction->addTo(optionMenu);
        showDataAction->addTo(optionMenu);
@@ -1432,7 +1423,7 @@ ConfigMainWindow::ConfigMainWindow(void)
        // create help menu
        Q3PopupMenu* helpMenu = new Q3PopupMenu(this);
        menu->insertSeparator();
-       menu->insertItem(_("&Help"), helpMenu);
+       menu->insertItem("&Help", helpMenu);
        showIntroAction->addTo(helpMenu);
        showAboutAction->addTo(helpMenu);
 
@@ -1480,14 +1471,14 @@ void ConfigMainWindow::loadConfig(void)
        if (s.isNull())
                return;
        if (conf_read(QFile::encodeName(s)))
-               QMessageBox::information(this, "qconf", _("Unable to load 
configuration!"));
+               QMessageBox::information(this, "qconf", "Unable to load 
configuration!");
        ConfigView::updateListAll();
 }
 
 bool ConfigMainWindow::saveConfig(void)
 {
        if (conf_write(NULL)) {
-               QMessageBox::information(this, "qconf", _("Unable to save 
configuration!"));
+               QMessageBox::information(this, "qconf", "Unable to save 
configuration!");
                return false;
        }
        return true;
@@ -1644,11 +1635,11 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
                e->accept();
                return;
        }
-       QMessageBox mb("qconf", _("Save configuration?"), QMessageBox::Warning,
+       QMessageBox mb("qconf", "Save configuration?", QMessageBox::Warning,
                        QMessageBox::Yes | QMessageBox::Default, 
QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape);
-       mb.setButtonText(QMessageBox::Yes, _("&Save Changes"));
-       mb.setButtonText(QMessageBox::No, _("&Discard Changes"));
-       mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
+       mb.setButtonText(QMessageBox::Yes, "&Save Changes");
+       mb.setButtonText(QMessageBox::No, "&Discard Changes");
+       mb.setButtonText(QMessageBox::Cancel, "Cancel Exit");
        switch (mb.exec()) {
        case QMessageBox::Yes:
                if (saveConfig())
@@ -1667,7 +1658,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
 
 void ConfigMainWindow::showIntro(void)
 {
-       static const QString str = _("Welcome to the qconf graphical 
configuration tool.\n\n"
+       static const QString str = "Welcome to the qconf graphical 
configuration tool.\n\n"
                "For each option, a blank box indicates the feature is 
disabled, a check\n"
                "indicates it is enabled, and a dot indicates that it is to be 
compiled\n"
                "as a module.  Clicking on the box will cycle through the three 
states.\n\n"
@@ -1684,8 +1675,8 @@ void ConfigMainWindow::showIntro(void)
 
 void ConfigMainWindow::showAbout(void)
 {
-       static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel 
<zippel@xxxxxxxxxxxxxx>.\n\n"
-               "Bug reports and feature request can also be entered at 
http://bugzilla.kernel.org/\n";);
+       static const QString str = "qconf is Copyright (C) 2002 Roman Zippel 
<zippel@xxxxxxxxxxxxxx>.\n\n"
+               "Bug reports and feature request can also be entered at 
http://bugzilla.kernel.org/\n";;
 
        QMessageBox::information(this, "qconf", str);
 }
@@ -1746,7 +1737,7 @@ static const char *progname;
 
 static void usage(void)
 {
-       printf(_("%s [-s] <config>\n"), progname);
+       printf("%s [-s] <config>\n", progname);
        exit(0);
 }
 
@@ -1755,9 +1746,6 @@ int main(int ac, char** av)
        ConfigMainWindow* v;
        const char *name;
 
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       textdomain(PACKAGE);
-
        progname = av[0];
        configApp = new QApplication(ac, av);
        if (ac > 1 && av[1][0] == '-') {
diff --git a/xen/tools/kconfig/zconf.tab.c_shipped 
b/xen/tools/kconfig/zconf.tab.c_shipped
index 7a4d658c20..0f1661d7b8 100644
--- a/xen/tools/kconfig/zconf.tab.c_shipped
+++ b/xen/tools/kconfig/zconf.tab.c_shipped
@@ -2349,7 +2349,7 @@ void conf_parse(const char *name)
        if (!modules_sym)
                modules_sym = sym_find( "n" );
 
-       rootmenu.prompt->text = _(rootmenu.prompt->text);
+       rootmenu.prompt->text = rootmenu.prompt->text;
        rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
 
        menu_finalize(&rootmenu);
diff --git a/xen/tools/kconfig/zconf.y b/xen/tools/kconfig/zconf.y
index 71bf8bff69..6efcd5a363 100644
--- a/xen/tools/kconfig/zconf.y
+++ b/xen/tools/kconfig/zconf.y
@@ -512,7 +512,7 @@ void conf_parse(const char *name)
        if (!modules_sym)
                modules_sym = sym_find( "n" );
 
-       rootmenu.prompt->text = _(rootmenu.prompt->text);
+       rootmenu.prompt->text = rootmenu.prompt->text;
        rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
 
        menu_finalize(&rootmenu);
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.