Bug 673 - gprof build errors with --disable-nls, libintl symbols defined
Summary: gprof build errors with --disable-nls, libintl symbols defined
Status: RESOLVED INVALID
Alias: None
Product: binutils
Classification: Unclassified
Component: binutils (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-16 09:42 UTC by Hans-Peter Nilsson
Modified: 2009-10-14 04:48 UTC (History)
1 user (show)

See Also:
Host: sparc-sun-solaris2.8
Target: sparc-sun-solaris2.8
Build: sparc-sun-solaris2.8
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hans-Peter Nilsson 2005-01-16 09:42:22 UTC
Building a combined tree of CVS binutils and gcc configured with
--disable-nls, I get this build error in gprof, cutnpasted
(gcc is gcc-2.95.2):

make[4]: Entering directory `/tmp/hptmp/obj/gprof'
gcc -DHAVE_CONFIG_H -I. -I/tmp/hptmp/combined/gprof -I. -D_GNU_SOURCE -DDEBUG
-I../bfd -I/tmp/hptmp/combined/gprof/../include -I/\
tmp/hptmp/combined/gprof/../bfd -I/tmp/hptmp/combined/gprof/../intl -I../intl
-I. -DLOCALEDIR="\"/usr/local/share/locale\""   -W \
-Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2  -c
/tmp/hptmp/combined/gprof/basic_blocks.c
In file included from /tmp/hptmp/combined/gprof/basic_blocks.c:24:
/tmp/hptmp/combined/gprof/../include/libiberty.h:80: warning: function
declaration isn't a prototype
In file included from /usr/include/locale.h:51,
                 from /tmp/hptmp/combined/gprof/gprof.h:62,
                 from /tmp/hptmp/combined/gprof/basic_blocks.c:25:
/usr/include/libintl.h:31: parse error before `const'
/usr/include/libintl.h:32: parse error before `const'
/usr/include/libintl.h:33: parse error before `const'
/usr/include/libintl.h:34: parse error before `while'
/usr/include/libintl.h:35: parse error before `while'
make[4]: *** [basic_blocks.o] Error 1
make[4]: Leaving directory `/tmp/hptmp/obj/gprof'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/hptmp/obj/gprof'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/hptmp/obj/gprof'
make[1]: *** [all-gprof] Error 2
make[1]: Leaving directory `/tmp/hptmp/obj'
make: *** [bootstrap] Error 2

Lines 31..35 of /usr/include/libintl.h look like this (cat -n):
    28  #define TEXTDOMAINMAX   256
    29  
    30  #ifdef __STDC__
    31  extern char *dcgettext(const char *, const char *, const int);
    32  extern char *dgettext(const char *, const char *);
    33  extern char *gettext(const char *);
    34  extern char *textdomain(const char *);
    35  extern char *bindtextdomain(const char *, const char *);
    36  

Questions arise:
Why is libintl.h included despite --disable-nls?
Why isn't the just-built gcc used?
Why did I use --disable-nls?

Oh, that last one's for me.  It's because the build fails earlier otherwise.
(I guess that means I should enter a PR for that too.)
PS. new bugzilla component needed: gprof
Comment 1 Alan Modra 2009-10-14 03:13:50 UTC
> Why is libintl.h included despite --disable-nls?
Because that's what your /usr/include/locale.h says to do?  But see gas/asintl.h
and ld/ld.h.  I'm sure you can come up with a patch so we can close this old bug..

> Why isn't the just-built gcc used?
This may have been fixed with Ralf's 2009-08-22 makefile changes, or perhaps
even earlier.
Comment 2 Hans-Peter Nilsson 2009-10-14 04:48:33 UTC
Wow.  That system got retired in the meantime, so I suggest let's just close
this.  I'm missing a resolution TIMEDOUT, let's try INVALID.