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' >