diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2021-07-07 13:51:55 +0200 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2021-07-07 13:51:55 +0200 |
commit | f07afc65d018b3dc3f33e28223ba53ddf4682bbc (patch) | |
tree | 0da8a08a250c77b28d6719236ad35325e7d8bbbe /bfd | |
parent | b737d3047cc56b5e2fbb5c8390c4ed031eaf5ec0 (diff) | |
download | gdb-f07afc65d018b3dc3f33e28223ba53ddf4682bbc.zip gdb-f07afc65d018b3dc3f33e28223ba53ddf4682bbc.tar.gz gdb-f07afc65d018b3dc3f33e28223ba53ddf4682bbc.tar.bz2 |
Fix Solaris gprof build with --disable-nls
gprof fails to compile on Solaris 10 and 11.3 with --disable-nls:
In file included from /vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/gprof.h:33,
from /vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/basic_blocks.c:24:
/usr/include/libintl.h:45:14: error: expected identifier or '(' before 'const'
45 | extern char *dcgettext(const char *, const char *, const int);
| ^~~~~~~~~
/usr/include/libintl.h:46:14: error: expected identifier or '(' before 'const'
46 | extern char *dgettext(const char *, const char *);
| ^~~~~~~~
/usr/include/libintl.h:47:14: error: expected identifier or '(' before 'const'
47 | extern char *gettext(const char *);
| ^~~~~~~
/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:165:33:
error: expected identifier or '(' before 'do'
165 | # define textdomain(Domainname) do {} while (0)
| ^~
/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:165:39:
error: expected identifier or '(' before 'while'
165 | # define textdomain(Domainname) do {} while (0)
| ^~~~~
/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:166:46:
error: expected identifier or '(' before 'do'
166 | # define bindtextdomain(Domainname, Dirname) do {} while (0)
| ^~
/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:166:52:
error: expected identifier or '(' before 'while'
166 | # define bindtextdomain(Domainname, Dirname) do {} while (0)
| ^~~~~
/usr/include/libintl.h:55:14: error: expected identifier or '(' before 'unsigned'
55 | extern char *dcngettext(const char *, const char *,
| ^~~~~~~~~~
/usr/include/libintl.h:57:14: error: expected identifier or '(' before 'unsigned'
57 | extern char *dngettext(const char *, const char *,
| ^~~~~~~~~
/usr/include/libintl.h:59:14: error: expected identifier or '(' before 'unsigned'
59 | extern char *ngettext(const char *, const char *, unsigned long int);
| ^~~~~~~~
This is a known issue already partially fixed in binutils/sysdep.h. For
gprof, the same fix needs to be applied in bfd/sysdep.h, as the
following patch does. Tested on i386-pc-solaris2.10 and
i386-pc-solaris2.11.
2021-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
bfd:
* sysdep.h [!ENABLE_NLS]: Prevent inclusion of <libintl.h> on
Solaris.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/sysdep.h | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d96cc78..e0cb2bf 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2021-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + * sysdep.h [!ENABLE_NLS]: Prevent inclusion of <libintl.h> on + Solaris. + +2021-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + * configure.ac: Check for strnlen declaration. * configure, config.in: Regenerate. diff --git a/bfd/sysdep.h b/bfd/sysdep.h index aa6b095..8919e76 100644 --- a/bfd/sysdep.h +++ b/bfd/sysdep.h @@ -126,6 +126,17 @@ extern int fseeko64 (FILE *stream, off64_t offset, int whence); #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #endif +#ifndef ENABLE_NLS + /* The Solaris version of locale.h always includes libintl.h. If we have + been configured with --disable-nls then ENABLE_NLS will not be defined + and the dummy definitions of bindtextdomain (et al) below will conflict + with the defintions in libintl.h. So we define these values to prevent + the bogus inclusion of libintl.h. */ +# define _LIBINTL_H +# define _LIBGETTEXT_H +#endif +#include <locale.h> + #ifdef ENABLE_NLS # include <libintl.h> /* Note the redefinition of gettext and ngettext here to use PACKAGE. |