libctf, binutils: initial work towards libctf gettextization
We gettextize under our package name, which we change to a more reasonable 'libctf'. Our internationalization support is mostly provided by ctf-intl.h, which is a copy of opcodes/opintl.h with the non-gettext_noop N_() expansion debracketed to avoid pedantic compiler warnings. The libctf error strings returned by ctf_errmsg are marked up for internationalization. (We also adjust binutils's Makefile a tiny bit to allow for the fact that libctf now uses functions from libintl.) binutils/ChangeLog 2020-08-27 Nick Alcock <nick.alcock@oracle.com> * Makefile.am (readelf_LDADD): Move $(LIBINTL) after $(LIBCTF_NOBFD). * Makefile.in: Regenerated. libctf/ChangeLog 2020-08-27 Nick Alcock <nick.alcock@oracle.com> * configure.ac: Adjust package name to simply 'libctf': arbitrarily declare this to be version 1.2.0. * Makefile.am (AM_CPPFLAGS): Add @INCINTL@. * Makefile.in: Regenerated. * configure: Regenerated. * ctf-intl.h: New file, lightly modified from opcodes/opintl.h. * ctf-impl.h: Include it. * ctf-error.r (_ctf_errlist_t): Mark strings as noop-translatable. (ctf_errmsg): Actually translate them.
This commit is contained in:
parent
514b4e191d
commit
987cf30ad8
11 changed files with 107 additions and 21 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2020-08-27 Nick Alcock <nick.alcock@oracle.com>
|
||||||
|
|
||||||
|
* Makefile.am (readelf_LDADD): Move $(LIBINTL) after $(LIBCTF_NOBFD).
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
2020-08-26 Nick Clifton <nickc@redhat.com>
|
2020-08-26 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 26405
|
PR 26405
|
||||||
|
|
|
@ -253,7 +253,7 @@ objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
|
||||||
strings_SOURCES = strings.c $(BULIBS)
|
strings_SOURCES = strings.c $(BULIBS)
|
||||||
|
|
||||||
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS)
|
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS)
|
||||||
readelf_LDADD = $(LIBINTL) $(LIBCTF_NOBFD) $(LIBIBERTY) $(ZLIB) $(DEBUGINFOD_LIBS)
|
readelf_LDADD = $(LIBCTF_NOBFD) $(LIBINTL) $(LIBIBERTY) $(ZLIB) $(DEBUGINFOD_LIBS)
|
||||||
|
|
||||||
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
|
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
|
||||||
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
|
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
|
||||||
|
|
|
@ -720,7 +720,7 @@ size_SOURCES = size.c $(BULIBS)
|
||||||
objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
|
objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
|
||||||
strings_SOURCES = strings.c $(BULIBS)
|
strings_SOURCES = strings.c $(BULIBS)
|
||||||
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS)
|
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS)
|
||||||
readelf_LDADD = $(LIBINTL) $(LIBCTF_NOBFD) $(LIBIBERTY) $(ZLIB) $(DEBUGINFOD_LIBS)
|
readelf_LDADD = $(LIBCTF_NOBFD) $(LIBINTL) $(LIBIBERTY) $(ZLIB) $(DEBUGINFOD_LIBS)
|
||||||
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
|
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
|
||||||
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
|
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
|
||||||
strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
|
strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
2020-08-27 Nick Alcock <nick.alcock@oracle.com>
|
||||||
|
|
||||||
|
* configure.ac: Adjust package name to simply 'libctf': arbitrarily
|
||||||
|
declare this to be version 1.2.0.
|
||||||
|
* Makefile.am (AM_CPPFLAGS): Add @INCINTL@.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
* configure: Regenerated.
|
||||||
|
* ctf-intl.h: New file, lightly modified from opcodes/opintl.h.
|
||||||
|
* ctf-impl.h: Include it.
|
||||||
|
* ctf-error.r (_ctf_errlist_t): Mark strings as noop-translatable.
|
||||||
|
(ctf_errmsg): Actually translate them.
|
||||||
|
|
||||||
2020-07-26 Eli Zaretskii <eliz@gnu.org>
|
2020-07-26 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
PR binutils/25155:
|
PR binutils/25155:
|
||||||
|
|
|
@ -28,7 +28,7 @@ ZLIB = @zlibdir@ -lz
|
||||||
ZLIBINC = @zlibinc@
|
ZLIBINC = @zlibinc@
|
||||||
|
|
||||||
INCDIR = $(srcdir)/../include
|
INCDIR = $(srcdir)/../include
|
||||||
AM_CPPFLAGS = -D_GNU_SOURCE -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../bfd -I../bfd
|
AM_CPPFLAGS = -D_GNU_SOURCE -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../bfd -I../bfd @INCINTL@
|
||||||
AM_CFLAGS = -std=gnu99 @ac_libctf_warn_cflags@ @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@ $(ZLIBINC)
|
AM_CFLAGS = -std=gnu99 @ac_libctf_warn_cflags@ @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@ $(ZLIBINC)
|
||||||
|
|
||||||
if INSTALL_LIBBFD
|
if INSTALL_LIBBFD
|
||||||
|
|
|
@ -447,7 +447,7 @@ AUTOMAKE_OPTIONS = foreign no-texinfo.tex
|
||||||
ZLIB = @zlibdir@ -lz
|
ZLIB = @zlibdir@ -lz
|
||||||
ZLIBINC = @zlibinc@
|
ZLIBINC = @zlibinc@
|
||||||
INCDIR = $(srcdir)/../include
|
INCDIR = $(srcdir)/../include
|
||||||
AM_CPPFLAGS = -D_GNU_SOURCE -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../bfd -I../bfd
|
AM_CPPFLAGS = -D_GNU_SOURCE -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../bfd -I../bfd @INCINTL@
|
||||||
AM_CFLAGS = -std=gnu99 @ac_libctf_warn_cflags@ @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@ $(ZLIBINC)
|
AM_CFLAGS = -std=gnu99 @ac_libctf_warn_cflags@ @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@ $(ZLIBINC)
|
||||||
@INSTALL_LIBBFD_TRUE@lib_LTLIBRARIES = libctf.la libctf-nobfd.la
|
@INSTALL_LIBBFD_TRUE@lib_LTLIBRARIES = libctf.la libctf-nobfd.la
|
||||||
@INSTALL_LIBBFD_FALSE@include_HEADERS =
|
@INSTALL_LIBBFD_FALSE@include_HEADERS =
|
||||||
|
|
28
libctf/configure
vendored
28
libctf/configure
vendored
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for libctf library 1.2.0-pre.
|
# Generated by GNU Autoconf 2.69 for libctf 1.2.0.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
|
@ -585,10 +585,10 @@ MFLAGS=
|
||||||
MAKEFLAGS=
|
MAKEFLAGS=
|
||||||
|
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='libctf library'
|
PACKAGE_NAME='libctf'
|
||||||
PACKAGE_TARNAME='libctf-library'
|
PACKAGE_TARNAME='libctf'
|
||||||
PACKAGE_VERSION='1.2.0-pre'
|
PACKAGE_VERSION='1.2.0'
|
||||||
PACKAGE_STRING='libctf library 1.2.0-pre'
|
PACKAGE_STRING='libctf 1.2.0'
|
||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
|
@ -1349,7 +1349,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures libctf library 1.2.0-pre to adapt to many kinds of systems.
|
\`configure' configures libctf 1.2.0 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
@ -1397,7 +1397,7 @@ Fine tuning of the installation directories:
|
||||||
--infodir=DIR info documentation [DATAROOTDIR/info]
|
--infodir=DIR info documentation [DATAROOTDIR/info]
|
||||||
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
|
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
|
||||||
--mandir=DIR man documentation [DATAROOTDIR/man]
|
--mandir=DIR man documentation [DATAROOTDIR/man]
|
||||||
--docdir=DIR documentation root [DATAROOTDIR/doc/libctf-library]
|
--docdir=DIR documentation root [DATAROOTDIR/doc/libctf]
|
||||||
--htmldir=DIR html documentation [DOCDIR]
|
--htmldir=DIR html documentation [DOCDIR]
|
||||||
--dvidir=DIR dvi documentation [DOCDIR]
|
--dvidir=DIR dvi documentation [DOCDIR]
|
||||||
--pdfdir=DIR pdf documentation [DOCDIR]
|
--pdfdir=DIR pdf documentation [DOCDIR]
|
||||||
|
@ -1419,7 +1419,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of libctf library 1.2.0-pre:";;
|
short | recursive ) echo "Configuration of libctf 1.2.0:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
@ -1532,7 +1532,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
libctf library configure 1.2.0-pre
|
libctf configure 1.2.0
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
@ -1943,7 +1943,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by libctf library $as_me 1.2.0-pre, which was
|
It was created by libctf $as_me 1.2.0, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
@ -4185,8 +4185,8 @@ fi
|
||||||
|
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='libctf-library'
|
PACKAGE='libctf'
|
||||||
VERSION='1.2.0-pre'
|
VERSION='1.2.0'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
@ -13944,7 +13944,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by libctf library $as_me 1.2.0-pre, which was
|
This file was extended by libctf $as_me 1.2.0, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
@ -14010,7 +14010,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
libctf library config.status 1.2.0-pre
|
libctf config.status 1.2.0
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ dnl <http://www.gnu.org/licenses/>.
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_PREREQ(2.64)
|
AC_PREREQ(2.64)
|
||||||
AC_INIT([libctf library], 1.2.0-pre)
|
AC_INIT([libctf], 1.2.0)
|
||||||
AC_CONFIG_SRCDIR(ctf-impl.h)
|
AC_CONFIG_SRCDIR(ctf-impl.h)
|
||||||
AC_CONFIG_MACRO_DIR(../config)
|
AC_CONFIG_MACRO_DIR(../config)
|
||||||
AC_CONFIG_MACRO_DIR(../bfd)
|
AC_CONFIG_MACRO_DIR(../bfd)
|
||||||
|
|
|
@ -45,7 +45,7 @@ static const union _ctf_errlist_t
|
||||||
} _ctf_errlist =
|
} _ctf_errlist =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
#define _CTF_STR(n, s) s,
|
#define _CTF_STR(n, s) N_(s),
|
||||||
#include "ctf-error.h"
|
#include "ctf-error.h"
|
||||||
#undef _CTF_STR
|
#undef _CTF_STR
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ ctf_errmsg (int error)
|
||||||
else
|
else
|
||||||
str = (const char *) strerror (error);
|
str = (const char *) strerror (error);
|
||||||
|
|
||||||
return (str ? str : "Unknown error");
|
return (str ? gettext (str) : _("Unknown error"));
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <elf.h>
|
#include <elf.h>
|
||||||
#include <bfd.h>
|
#include <bfd.h>
|
||||||
#include "hashtab.h"
|
#include "hashtab.h"
|
||||||
|
#include "ctf-intl.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
|
|
68
libctf/ctf-intl.h
Normal file
68
libctf/ctf-intl.h
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
/* ctf-intl.h - libctf specific header for gettext code.
|
||||||
|
Copyright (C) 1998-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
Written by Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
This file is part of libctf.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
It is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this file; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
|
||||||
|
MA 02110-1301, USA. */
|
||||||
|
|
||||||
|
#ifndef _CTF_INTL_H
|
||||||
|
#define _CTF_INTL_H
|
||||||
|
|
||||||
|
#ifdef ENABLE_NLS
|
||||||
|
# include <libintl.h>
|
||||||
|
/* Note the redefinition of gettext and ngettext here to use PACKAGE.
|
||||||
|
|
||||||
|
This is because the code in this directory is used to build a
|
||||||
|
library which will be linked with code in other directories to form
|
||||||
|
programs. We want to maintain a separate translation file for this
|
||||||
|
directory however, rather than being forced to merge it with that
|
||||||
|
of any program linked to libopcodes. This is a library, so it
|
||||||
|
cannot depend on the catalog currently loaded.
|
||||||
|
|
||||||
|
In order to do this, we have to make sure that when we extract
|
||||||
|
messages we use the LIBCTF domain rather than the domain of the
|
||||||
|
program that included the opcodes library, (eg OBJDUMP). Hence we
|
||||||
|
use dgettext (PACKAGE, String) and define PACKAGE to be 'libctf'.
|
||||||
|
(See the code in configure). */
|
||||||
|
# undef gettext
|
||||||
|
# define gettext(Msgid) dgettext (PACKAGE, Msgid)
|
||||||
|
# undef ngettext
|
||||||
|
# define ngettext(Msgid1, Msgid2, n) dngettext (PACKAGE, Msgid1, Msgid2, n)
|
||||||
|
# define _(String) gettext (String)
|
||||||
|
# ifdef gettext_noop
|
||||||
|
# define N_(String) gettext_noop (String)
|
||||||
|
# else
|
||||||
|
# define N_(String) String
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define gettext(Msgid) (Msgid)
|
||||||
|
# define dgettext(Domainname, Msgid) (Msgid)
|
||||||
|
# define dcgettext(Domainname, Msgid, Category) (Msgid)
|
||||||
|
# define ngettext(Msgid1, Msgid2, n) \
|
||||||
|
(n == 1 ? Msgid1 : Msgid2)
|
||||||
|
# define dngettext(Domainname, Msgid1, Msgid2, n) \
|
||||||
|
(n == 1 ? Msgid1 : Msgid2)
|
||||||
|
# define dcngettext(Domainname, Msgid1, Msgid2, n, Category) \
|
||||||
|
(n == 1 ? Msgid1 : Msgid2)
|
||||||
|
# define textdomain(Domainname) do {} while (0)
|
||||||
|
# define bindtextdomain(Domainname, Dirname) do {} while (0)
|
||||||
|
# define _(String) (String)
|
||||||
|
# define N_(String) String
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _CTF_INTL_H */
|
Loading…
Add table
Add a link
Reference in a new issue