On 01/10/2013 10:26 PM, Paul Eggert wrote:
From 78fa262b57217575265948c07c116d4be957e14c Mon Sep 17 00:00:00 2001
From: Paul Eggert<egg...@cs.ucla.edu>
Date: Thu, 10 Jan 2013 13:24:13 -0800
Subject: [PATCH] locale: port to Solaris 2.6 and 7 + GNU gettext
* lib/locale.in.h: Just include_next<locale.h> when
being invoked recursively. This prevents problems on Solaris 2.6 and 7
when combining the localename module with GNU gettext 0.18.2.
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00084.html>.
It works, thank you.
I applied it also to the gnulib copies in gettext 0.18.2 and it builds now.
For Solaris 2.6 the timestruc_t problem remains and I will look at that
next.
Further there are some build issues in the testsuite on both Solaris 2.6
& 7.
depbase=`echo test-net_if.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -DGNULIB_STRICT_CHECKING=1
-I. -I. -I.. -I./.. -I../gllib -I./../gllib -I/usr/tgcware/include
-D_REENTRANT -g -O2 -MT test-net_if.o -MD -MP -MF $depbase.Tpo -c -o
test-net_if.o test-net_if.c &&\
mv -f $depbase.Tpo $depbase.Po
test-net_if.c:29: error: `if_freenameindex' undeclared here (not in a
function)
test-net_if.c:30: error: `if_indextoname' undeclared here (not in a
function)
test-net_if.c:31: error: `if_nameindex' undeclared here (not in a function)
test-net_if.c:32: error: `if_nametoindex' undeclared here (not in a
function)
test-net_if.c: In function `main':
test-net_if.c:44: warning: implicit declaration of function `if_nameindex'
test-net_if.c:44: warning: assignment makes pointer from integer without
a cast
test-net_if.c:51: error: dereferencing pointer to incomplete type
test-net_if.c:54: error: `IF_NAMESIZE' undeclared (first use in this
function)
test-net_if.c:54: error: (Each undeclared identifier is reported only once
test-net_if.c:54: error: for each function it appears in.)
test-net_if.c:58: error: dereferencing pointer to incomplete type
test-net_if.c:58: error: dereferencing pointer to incomplete type
test-net_if.c:60: warning: implicit declaration of function `if_nametoindex'
test-net_if.c:60: error: dereferencing pointer to incomplete type
test-net_if.c:61: error: dereferencing pointer to incomplete type
test-net_if.c:64: error: dereferencing pointer to incomplete type
test-net_if.c:64: error: dereferencing pointer to incomplete type
test-net_if.c:68: warning: implicit declaration of function `if_indextoname'
test-net_if.c:68: error: dereferencing pointer to incomplete type
test-net_if.c:68: warning: assignment makes pointer from integer without
a cast
test-net_if.c:71: error: dereferencing pointer to incomplete type
test-net_if.c:77: error: dereferencing pointer to incomplete type
test-net_if.c:80: error: dereferencing pointer to incomplete type
test-net_if.c:82: error: dereferencing pointer to incomplete type
test-net_if.c:86: error: increment of pointer to unknown structure
test-net_if.c:86: error: arithmetic on pointer to an incomplete type
test-net_if.c:89: warning: implicit declaration of function
`if_freenameindex'
test-net_if.c:92: error: invalid use of undefined type `struct if_nameindex'
test-net_if.c:92: error: invalid use of undefined type `struct if_nameindex'
test-net_if.c: At top level:
test-net_if.c:23: error: storage size of `ni' isn't known
make[4]: *** [test-net_if.o] Error 1
It's documented that gnulib does not implement the missing functionality
but I think the test still needs to be buildable.
There is a related error on Solaris 8 & 9:
gcc -std=gnu99 -g -O2 -o test-net_if test-net_if.o ../gllib/libgnu.a
-lm -lm -lm -lm -lm -
lm
Undefined first referenced
symbol in file
if_indextoname test-net_if.o
if_nameindex test-net_if.o
if_nametoindex test-net_if.o
if_freenameindex test-net_if.o
ld: fatal: Symbol referencing errors. No output written to test-net_if
collect2: ld returned 1 exit status
make[4]: *** [test-net_if] Error 1
For Solaris 8 & 9 it needs to link with libsocket to get these functions
(they're wrongly documented in the system manpages as being in libxnet).
There are some link errors related to a missing gettext symbol, some
modules are missing an LDADD for LIBINTL.
gcc -std=gnu99 -g -O2 -L/usr/tgcware/lib -Wl,-R,/usr/tgcware/lib -o
test-c-xvasprintf test-c-xvasprintf.o ../gllib/libgnu.a -lm -lm
-lm -lm -lm -lm
Undefined first referenced
symbol in file
libintl_gettext ../gllib/libgnu.a(xalloc-die.o)
ld: fatal: Symbol referencing errors. No output written to test-c-xvasprintf
collect2: ld returned 1 exit status
make[4]: *** [test-c-xvasprintf] Error 1
gcc -std=gnu99 -g -O2 -L/usr/tgcware/lib -Wl,-R,/usr/tgcware/lib -o
test-futimens test-futimens.o ../gllib/libgnu.a -lrt -lm -lm -lm
-lm -lm -lm
Undefined first referenced
symbol in file
libintl_gettext ../gllib/libgnu.a(openat-die.o)
ld: fatal: Symbol referencing errors. No output written to test-futimens
collect2: ld returned 1 exit status
make[4]: *** [test-futimens] Error 1
gcc -std=gnu99 -g -O2 -L/usr/tgcware/lib -Wl,-R,/usr/tgcware/lib -o
test-readtokens test-readtokens.o ../gllib/libgnu.a -lm -lm -lm
-lm -lm -lm
Undefined first referenced
symbol in file
libintl_gettext ../gllib/libgnu.a(closeout.o)
ld: fatal: Symbol referencing errors. No output written to test-readtokens
collect2: ld returned 1 exit status
make[4]: *** [test-readtokens] Error 1
gcc -std=gnu99 -g -O2 -L/usr/tgcware/lib -Wl,-R,/usr/tgcware/lib -o
test-utimens test-utimens.o ../gllib/libgnu.a -lrt -lm -lm -lm
-lm -lm -lm
Undefined first referenced
symbol in file
libintl_gettext ../gllib/libgnu.a(openat-die.o)
ld: fatal: Symbol referencing errors. No output written to test-utimens
collect2: ld returned 1 exit status
make[4]: *** [test-utimens] Error 1
Additionally another undef seems to be necessary for
test-system-quote-child:
gcc -std=gnu99 -g -O2 -L/usr/tgcware/lib -Wl,-R,/usr/tgcware/lib -o
test-system-quote-child test-system-quote-child.o -lm -lm -lm
-lm -lm -lm
Undefined first referenced
symbol in file
rpl_fopen test-system-quote-child.o
ld: fatal: Symbol referencing errors. No output written to
test-system-quote-child
collect2: ld returned 1 exit status
make[4]: *** [test-system-quote-child] Error 1
-tgc