Failed build on Solaris i86pc
Hi Everyone,
I'm working on Solaris 11.3, i86pc. I'm building pkg-config 0.29.2 from the release tarball.
Configure is failing with:
libtool: compile: /bin/gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../glib -I../glib -I.. "-DG_LOG_DOMAIN=\"GLib\"" -DG_DISABLE_CAST_CHECKS -DGLIB_COMPILATION -DPCRE_STATIC -I/usr/local/include -DNDEBUG -D_REENTRANT -D_PTHREADS -Wall -Wstrict-prototypes -Werror=declaration-after-statement -Werror=missing-prototypes -Werror=implicit-function-declaration -Werror=pointer-arith -Werror=init-self -Werror=format=2 -Werror=missing-include-dirs -fvisibility=hidden -g2 -O2 -m64 -march=native -fPIC -pthread -MT libglib_2_0_la-ggettext.lo -MD -MP -MF .deps/libglib_2_0_la-ggettext.Tpo -c ggettext.c -o libglib_2_0_la-ggettext.o
In file included from ggettext.c:30:0:
/usr/include/libintl.h:45:14: error: expected identifier or '(' before 'const'
extern char *dcgettext(const char *, const char *, const int);
^
/usr/include/libintl.h:46:14: error: expected identifier or '(' before 'const'
extern char *dgettext(const char *, const char *);
^
/usr/include/libintl.h:47:14: error: expected identifier or '(' before 'const'
extern char *gettext(const char *);
^
/usr/include/libintl.h:48:14: error: expected identifier or '(' before 'const'
extern char *textdomain(const char *);
^
glibintl.h:32:38: error: expected ')' before '?' token
#define textdomain(String) ((String) ? (String) : "messages")
^
/usr/include/libintl.h:49:14: error: expected identifier or '(' before 'const'
extern char *bindtextdomain(const char *, const char *);
^
/usr/include/libintl.h:57:14: error: expected identifier or '(' before 'unsigned'
extern char *dngettext(const char *, const char *,
^
glibintl.h:36:50: error: expected ')' before '==' token
#define dngettext(Domain,String1,String2,N) ((N) == 1 ? (String1) : (String2))
^
In file included from /usr/include/locale.h:12:0,
from ggettext.c:44:
/usr/include/libintl.h:60:65: error: expected identifier or '(' before ';' token
extern char *bind_textdomain_codeset(const char *, const char *);
^
In file included from ggettext.c:30:0:
ggettext.c: In function 'ensure_gettext_initialized':
glibintl.h:37:42: warning: statement with no effect [-Wunused-value]
#define bindtextdomain(Domain,Directory) (Domain)
^
ggettext.c:109:7: note: in expansion of macro 'bindtextdomain'
bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR);
^
gmake[6]: *** [libglib_2_0_la-ggettext.lo] Error 1
gmake[6]: Leaving directory `/export/home/jwalton/Build-Scripts/pkg-config-0.29.2/glib/glib'
gmake[5]: *** [all-recursive] Error 1
gmake[5]: Leaving directory `/export/home/jwalton/Build-Scripts/pkg-config-0.29.2/glib/glib'
gmake[4]: *** [all] Error 2
gmake[4]: Leaving directory `/export/home/jwalton/Build-Scripts/pkg-config-0.29.2/glib/glib'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/export/home/jwalton/Build-Scripts/pkg-config-0.29.2/glib'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/export/home/jwalton/Build-Scripts/pkg-config-0.29.2/glib'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/export/home/jwalton/Build-Scripts/pkg-config-0.29.2'
gmake: *** [all] Error 2
Here is config.log. I am not sure how helpful it is.
pkg-config is unique among packages. I've learned pkg-config is one of the critical packages needed to bootstrap things. In fact, the only package more critical is Wget because that downloads a package. Once I have a working pkg-config and Wget, I can install other packages like iConv and GetText.
Here are the non-trivial configure --help
options. I don't see an option to control the behavior.
--with-pc-path default search path for .pc files
--with-system-include-path
avoid -I flags from the given path
--with-system-library-path
avoid -L flags from the given path
--with-internal-glib use internal glib
--with-gcov gcov test coverage [default=no]
"Control the behavior" is a little vague. I need the build to succeed at any cost. I don't care about localization at this point. I can do things the right way later, once I have a working pkg-config and wget.