Diagnosing build errors
Ralf Corsepius
ralf.corsepius at rtems.org
Tue Apr 15 04:32:02 UTC 2008
On Tue, 2008-04-15 at 16:16 +1200, Nigel Spon wrote:
> On 15/04/2008, at 3:50 PM, Ralf Corsepius wrote:
> > This breakdown very likely is a followup to something having gone
> > wrong
> > before. Check your build log for why "run" doesn't seem to have been
> > built.
> >
>
> Aha. Psim failed to link with an undefined symbol
> "_libintl_dgettext".
OK, your system is lacking dgettext in its libintl, or might be even be
lacking libintl.
I don't know how MacOSX is packaged, but this could be a missing
dependency. On Linux you'd have to install the corresponding development
package (libintl-devel and/or gettext-devel or similar)
The easy work-around is to disable internationalization, by adding to
your call to configure
configure .... --disable-nls
I do so for all of my rpms, because a cross-gdb, cross-binutils and
cross-gcc's i18n support files clash with their native i18n support
files.
> The moral is to always search the log for *** and
> find the first error, not the last one.
Exactly.
> I expected it to stop at the
> first failure.
>
> On looking for that symbol, I find this rather curious thing in
> libintl.h
>
> #ifdef _INTL_REDIRECT_MACROS
> # define dgettext libintl_dgettext
> #endif
>
> That space between the # and the define looks like a mistake to me.
No. The "# define" is a perfectly legal construct.
Some very old (>>10 years old) compilers barf on it, but nowadays, this
is legal "C".
Ralf
More information about the users
mailing list