Pierre Lebrun
2006-Jan-06 11:52 UTC
[Samba] Repost: Help - compilation of winbind_nss_solaris.c/3.0.21a/Solaris 7 and older fails
I would really appreciate help !
I did not have any reply to my two posts and I don't know what to do.
I can't build 3.0.21a and I have to migrate 54 Solaris 2.5.1 servers
from 2.2.8a to 3.0.x. I'm afraid we could not move to newer solaris
versions before 12 or 18 months.
Under is the problem description.
Thank you for your help.
Pierre
---------
SOLARIS 7
---------
On Solaris 7 problem comes from winbind_nss_solaris.c on solaris 7 witch
evolved a lot in 3.0.21
Several references are done to struct in6_addr witch are not defined on
solaris 7 and older. I didn't have any trouble with SAMBA 3.0.21rc1
Platform Solaris 7 + GCC and Solaris 2.5.1 + SUN CC.
---------------------------
Configure
./configure --with-acl-support --with-ldap=no --disable-cups
--enable-static=yes --with-included-popt
--------
$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.0.3/specs
Configured with: ../configure --with-as=/usr/local/bin/as
--with-ld=/usr/local/bin/ld
Thread model: posix
gcc version 3.0.3
-----------------------------
...
Compiling utils/eventlogadm.c
Linking bin/eventlogadm
Compiling nsswitch/wbinfo.c
Linking bin/wbinfo
Compiling nsswitch/wb_common.c with -fPIC
Compiling lib/replace1.c with -fPIC
Compiling nsswitch/winbind_nss_solaris.c with -fPIC
nsswitch/winbind_nss_solaris.c: In function `parse_response':
nsswitch/winbind_nss_solaris.c:394: sizeof applied to an incomplete type
nsswitch/winbind_nss_solaris.c:395: sizeof applied to an incomplete type
nsswitch/winbind_nss_solaris.c:397: arithmetic on pointer to an
incomplete type
nsswitch/winbind_nss_solaris.c:421: arithmetic on pointer to an
incomplete type
nsswitch/winbind_nss_solaris.c:421: dereferencing pointer to incomplete type
nsswitch/winbind_nss_solaris.c:423: `AF_INET6' undeclared (first use in
this function)
nsswitch/winbind_nss_solaris.c:423: (Each undeclared identifier is
reported only once
nsswitch/winbind_nss_solaris.c:423: for each function it appears in.)
nsswitch/winbind_nss_solaris.c:423: arithmetic on pointer to an
incomplete type
nsswitch/winbind_nss_solaris.c:423: dereferencing pointer to incomplete type
nsswitch/winbind_nss_solaris.c:433: arithmetic on pointer to an
incomplete type
nsswitch/winbind_nss_solaris.c:433: dereferencing pointer to incomplete type
nsswitch/winbind_nss_solaris.c: In function
`_nss_winbind_ipnodes_getbyname':
nsswitch/winbind_nss_solaris.c:491: `AF_INET6' undeclared (first use in
this function)
nsswitch/winbind_nss_solaris.c: In function `_nss_winbind_hosts_getbyaddr':
nsswitch/winbind_nss_solaris.c:540: `AF_INET6' undeclared (first use in
this function)
nsswitch/winbind_nss_solaris.c:546: `INET6_ADDRSTRLEN' undeclared (first
use in this function)
nsswitch/winbind_nss_solaris.c:546: warning: assignment makes pointer
from integer without a cast
make: *** [nsswitch/winbind_nss_solaris.po] Error 1
-------------
SOLARIS 2.5.1
-------------
On Solaris 2.5.1 problem comes from nsswitch/wb_common.c where socklen_t
type is not defined
artexp$ diff /smb/tmp/samba-3.0.20b/source/nsswitch/wb_common.c
/smb/tmp/samba-3.0.21a/source/nsswitch/wb_common.c
237c237,238
< int connect_errno = 0, errnosize;
---
> int connect_errno = 0;
> socklen_t errnosize;
545a547,551
>
> if ((request->extra_len != 0) &&
> (write_sock(request->extra_data, request->extra_len,
request->flags & WBFLAG_RECURSE) == -1)) {
> return NSS_STATUS_UNAVAIL;
> }
----------------------
Configure
./configure --with-acl-support --with-ldap=no --disable-cups
--enable-static=yes --with-included-popt
--------
$ cc -V
cc: WorkShop Compilers 5.0 98/12/15 C 5.0
--------
...
Compiling lib/hmacmd5.c
Compiling lib/arc4.c
Compiling lib/iconv.c
"lib/iconv.c", line 139: warning: argument #2 is incompatible with
prototype:
prototype: pointer to pointer to const char :
"/usr/local/include/iconv.h", line 82
argument : pointer to pointer to char
Compiling nsswitch/wb_client.c
Compiling nsswitch/wb_common.c
"/usr/include/netdb.h", line 195: warning: dubious tag declaration:
struct sockaddr_in
"nsswitch/wb_common.c", line 238: undefined symbol: socklen_t
"nsswitch/wb_common.c", line 238: syntax error before or at: errnosize
"nsswitch/wb_common.c", line 253: undefined symbol: errnosize
"nsswitch/wb_common.c", line 256: warning: argument #4 is incompatible
with prototype:
prototype: pointer to char : "/usr/include/sys/socket.h",
line 299
argument : pointer to int
"nsswitch/wb_common.c", line 284: cannot recover from previous errors
cc: acomp failed for nsswitch/wb_common.c
*** Error code 2
make: Fatal error: Command failed for target `nsswitch/wb_common.o'
Pierre Lebrun
2006-Feb-01 07:53 UTC
[Samba] Re: Repost: Help - compilation of winbind_nss_solaris.c/3.0.21a/Solaris 7 and older fails
Solved by 3.0.21b Many thanks to Samba Team Pierre Pierre Lebrun a ?crit :> I would really appreciate help ! > > I did not have any reply to my two posts and I don't know what to do. > I can't build 3.0.21a and I have to migrate 54 Solaris 2.5.1 servers > from 2.2.8a to 3.0.x. I'm afraid we could not move to newer solaris > versions before 12 or 18 months. > > Under is the problem description. > > Thank you for your help. > > Pierre > > --------- > SOLARIS 7 > --------- > > On Solaris 7 problem comes from winbind_nss_solaris.c on solaris 7 witch > evolved a lot in 3.0.21 > Several references are done to struct in6_addr witch are not defined on > solaris 7 and older. I didn't have any trouble with SAMBA 3.0.21rc1 > > Platform Solaris 7 + GCC and Solaris 2.5.1 + SUN CC. > > --------------------------- > Configure > > ./configure --with-acl-support --with-ldap=no --disable-cups > --enable-static=yes --with-included-popt > > -------- > $ gcc -v > Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.0.3/specs > Configured with: ../configure --with-as=/usr/local/bin/as > --with-ld=/usr/local/bin/ld > Thread model: posix > gcc version 3.0.3 > > ----------------------------- > ... > Compiling utils/eventlogadm.c > Linking bin/eventlogadm > Compiling nsswitch/wbinfo.c > Linking bin/wbinfo > Compiling nsswitch/wb_common.c with -fPIC > Compiling lib/replace1.c with -fPIC > Compiling nsswitch/winbind_nss_solaris.c with -fPIC > nsswitch/winbind_nss_solaris.c: In function `parse_response': > nsswitch/winbind_nss_solaris.c:394: sizeof applied to an incomplete type > nsswitch/winbind_nss_solaris.c:395: sizeof applied to an incomplete type > nsswitch/winbind_nss_solaris.c:397: arithmetic on pointer to an > incomplete type > nsswitch/winbind_nss_solaris.c:421: arithmetic on pointer to an > incomplete type > nsswitch/winbind_nss_solaris.c:421: dereferencing pointer to incomplete > type > nsswitch/winbind_nss_solaris.c:423: `AF_INET6' undeclared (first use in > this function) > nsswitch/winbind_nss_solaris.c:423: (Each undeclared identifier is > reported only once > nsswitch/winbind_nss_solaris.c:423: for each function it appears in.) > nsswitch/winbind_nss_solaris.c:423: arithmetic on pointer to an > incomplete type > nsswitch/winbind_nss_solaris.c:423: dereferencing pointer to incomplete > type > nsswitch/winbind_nss_solaris.c:433: arithmetic on pointer to an > incomplete type > nsswitch/winbind_nss_solaris.c:433: dereferencing pointer to incomplete > type > nsswitch/winbind_nss_solaris.c: In function > `_nss_winbind_ipnodes_getbyname': > nsswitch/winbind_nss_solaris.c:491: `AF_INET6' undeclared (first use in > this function) > nsswitch/winbind_nss_solaris.c: In function `_nss_winbind_hosts_getbyaddr': > nsswitch/winbind_nss_solaris.c:540: `AF_INET6' undeclared (first use in > this function) > nsswitch/winbind_nss_solaris.c:546: `INET6_ADDRSTRLEN' undeclared (first > use in this function) > nsswitch/winbind_nss_solaris.c:546: warning: assignment makes pointer > from integer without a cast > make: *** [nsswitch/winbind_nss_solaris.po] Error 1 > > > ------------- > SOLARIS 2.5.1 > ------------- > On Solaris 2.5.1 problem comes from nsswitch/wb_common.c where socklen_t > type is not defined > > artexp$ diff /smb/tmp/samba-3.0.20b/source/nsswitch/wb_common.c > /smb/tmp/samba-3.0.21a/source/nsswitch/wb_common.c > 237c237,238 > < int connect_errno = 0, errnosize; > --- > > int connect_errno = 0; > > socklen_t errnosize; > 545a547,551 > > > > if ((request->extra_len != 0) && > > (write_sock(request->extra_data, request->extra_len, > request->flags & WBFLAG_RECURSE) == -1)) { > > return NSS_STATUS_UNAVAIL; > > } > ---------------------- > > Configure > > ./configure --with-acl-support --with-ldap=no --disable-cups > --enable-static=yes --with-included-popt > > -------- > $ cc -V > cc: WorkShop Compilers 5.0 98/12/15 C 5.0 > > -------- > ... > Compiling lib/hmacmd5.c > Compiling lib/arc4.c > Compiling lib/iconv.c > "lib/iconv.c", line 139: warning: argument #2 is incompatible with > prototype: > prototype: pointer to pointer to const char : > "/usr/local/include/iconv.h", line 82 > argument : pointer to pointer to char > Compiling nsswitch/wb_client.c > Compiling nsswitch/wb_common.c > "/usr/include/netdb.h", line 195: warning: dubious tag declaration: > struct sockaddr_in > "nsswitch/wb_common.c", line 238: undefined symbol: socklen_t > "nsswitch/wb_common.c", line 238: syntax error before or at: errnosize > "nsswitch/wb_common.c", line 253: undefined symbol: errnosize > "nsswitch/wb_common.c", line 256: warning: argument #4 is incompatible > with prototype: > prototype: pointer to char : "/usr/include/sys/socket.h", line 299 > argument : pointer to int > "nsswitch/wb_common.c", line 284: cannot recover from previous errors > cc: acomp failed for nsswitch/wb_common.c > *** Error code 2 > make: Fatal error: Command failed for target `nsswitch/wb_common.o' >