From: "Kurt M. Dresner" Date: 2003-09-01T01:49:02+09:00 Subject: Re: errors compiling Ruby under Solaris --dDRMvlgZJXvWKvBx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Here it is. On Mon, Sep 01, 2003 at 01:35:18AM +0900, ts wrote: > >>>>> "K" == Kurt M Dresner writes: > > K> Yeah. I downloaded 1.8.0 from ruby-lang.org and did ./configure ; make > > Can you post the file > > ruby-1.8.0/ext/socket/mkmf.log > > > > Guy Decoux > >======= End of Original Message =======< --dDRMvlgZJXvWKvBx Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="mkmf.log" have_library: checking for t_open() in -lnsl... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lruby-static -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { t_open(); return 0; } /* end */ -------------------- yes have_library: checking for socket() in -lsocket... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { socket(); return 0; } /* end */ -------------------- yes gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/sys/socket.h:203, from conftest.c:2: /usr/include/sys/stream.h:307: parse error before "projid_t" checked program was: /* begin */ #include #include main() { socket(AF_INET6, SOCK_STREAM, 0); } /* end */ gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/netdb.h:96, from conftest.c:6: /usr/include/sys/stream.h:307: parse error before "projid_t" conftest.c: In function `main': conftest.c:16: structure has no member named `sin_len' checked program was: /* begin */ #ifdef _WIN32 # include # include #else # include # include # include # include # include #endif int main() { struct sockaddr_in sin; sin.sin_len; return 0; } /* end */ gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/netdb.h:96, from conftest.c:6: /usr/include/sys/stream.h:307: parse error before "projid_t" checked program was: /* begin */ #ifdef _WIN32 # include # include #else # include # include # include # include #endif int main() { struct sockaddr_storage ss; ss.ss_family; return 0; } /* end */ gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/netdb.h:96, from conftest.c:6: /usr/include/sys/stream.h:307: parse error before "projid_t" checked program was: /* begin */ #ifdef _WIN32 # include # include #else # include # include # include # include #endif int main() { struct sockaddr_storage ss; ss.ss_family; return 0; } /* end */ gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/netdb.h:96, from conftest.c:2: /usr/include/sys/stream.h:307: parse error before "projid_t" conftest.c: In function `main': conftest.c:11: structure has no member named `sa_len' checked program was: /* begin */ #include #include #include #include #include int main() { struct sockaddr sa; sa.sa_len; return 0; } /* end */ have_header: checking for netinet/tcp.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes have_header: checking for netinet/udp.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes have_func: checking for sendmsg()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { sendmsg(); return 0; } /* end */ -------------------- yes have_struct_member: checking for struct msghdr.msg_control... -------------------- gcc -c -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 conftest.c In file included from /usr/include/netinet/in.h:41, from /usr/include/sys/socket.h:203, from conftest.c:3: /usr/include/sys/stream.h:307: parse error before "projid_t" conftest.c:6: structure has no member named `msg_control' checked program was: /* begin */ #include #include int main() { return 0; } int s = (char *)&((struct msghdr*)0)->msg_control - (char *)0; /* end */ -------------------- no have_struct_member: checking for struct msghdr.msg_accrights... -------------------- gcc -c -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 conftest.c In file included from /usr/include/netinet/in.h:41, from /usr/include/sys/socket.h:203, from conftest.c:3: /usr/include/sys/stream.h:307: parse error before "projid_t" checked program was: /* begin */ #include #include int main() { return 0; } int s = (char *)&((struct msghdr*)0)->msg_accrights - (char *)0; /* end */ -------------------- no gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/netdb.h:96, from conftest.c:2: /usr/include/sys/stream.h:307: parse error before "projid_t" checked program was: /* begin */ #include #include #include #include #include #ifndef AF_LOCAL #define AF_LOCAL AF_UNIX #endif main() { int passive, gaierr, inet4 = 0, inet6 = 0; struct addrinfo hints, *ai, *aitop; char straddr[INET6_ADDRSTRLEN], strport[16]; for (passive = 0; passive <= 1; passive++) { memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_protocol = IPPROTO_TCP; hints.ai_flags = passive ? AI_PASSIVE : 0; hints.ai_socktype = SOCK_STREAM; if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) { (void)gai_strerror(gaierr); goto bad; } for (ai = aitop; ai; ai = ai->ai_next) { if (ai->ai_family == AF_LOCAL) continue; if (ai->ai_addr == NULL || ai->ai_addrlen == 0 || getnameinfo(ai->ai_addr, ai->ai_addrlen, straddr, sizeof(straddr), strport, sizeof(strport), NI_NUMERICHOST|NI_NUMERICSERV) != 0) { goto bad; } if (strcmp(strport, "54321") != 0) { goto bad; } switch (ai->ai_family) { case AF_INET: if (passive) { if (strcmp(straddr, "0.0.0.0") != 0) { goto bad; } } else { if (strcmp(straddr, "127.0.0.1") != 0) { goto bad; } } inet4++; break; case AF_INET6: if (passive) { if (strcmp(straddr, "::") != 0) { goto bad; } } else { if (strcmp(straddr, "::1") != 0) { goto bad; } } inet6++; break; case AF_UNSPEC: goto bad; break; default: /* another family support? */ break; } } } if (!(inet4 == 0 || inet4 == 2)) goto bad; if (!(inet6 == 0 || inet6 == 2)) goto bad; if (aitop) freeaddrinfo(aitop); exit(0); bad: if (aitop) freeaddrinfo(aitop); exit(1); } /* end */ have_func: checking for inet_ntop()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { inet_ntop(); return 0; } /* end */ -------------------- yes have_func: checking for inet_pton()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { inet_pton(); return 0; } /* end */ -------------------- yes have_func: checking for getservbyport()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { getservbyport(); return 0; } /* end */ -------------------- yes have_header: checking for arpa/inet.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes have_header: checking for arpa/nameser.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes have_header: checking for resolv.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -ldl -lcrypt -lm -lc In file included from /usr/include/netinet/in.h:41, from /usr/include/netdb.h:96, from conftest.c:2: /usr/include/sys/stream.h:307: parse error before "projid_t" checked program was: /* begin */ #include #include #include #include #include int main() { socklen_t len; return 0; } /* end */ have_header: checking for sys/un.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -Dsocklen_t=int -I. -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes have_header: checking for sys/uio.h... -------------------- gcc -E -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -Dsocklen_t=int -I. -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ -------------------- yes have_func: checking for socket()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -Dsocklen_t=int -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { socket(); return 0; } /* end */ -------------------- yes have_func: checking for hsterror()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -Dsocklen_t=int -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc /var/tmp/ccWFI45y.o: In function `t': /stage/public/solaris/ruby/ext/socket/conftest.c:3: undefined reference to `hsterror' collect2: ld returned 1 exit status checked program was: /* begin */ int main() { return 0; } int t() { hsterror(); return 0; } /* end */ gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -Dsocklen_t=int -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc conftest.c: In function `t': conftest.c:4: `hsterror' undeclared (first use in this function) conftest.c:4: (Each undeclared identifier is reported only once conftest.c:4: for each function it appears in.) checked program was: /* begin */ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))hsterror; return 0; } /* end */ -------------------- no have_func: checking for gethostname()... -------------------- gcc -o conftest -I/stage/public/solaris/ruby -I/stage/public/solaris/ruby -Dss_family=__ss_family -Dss_len=__ss_len -Dsocklen_t=int -I. -g -O2 conftest.c -L/stage/public/solaris/ruby -L/usr/local/lib -lsocket -lnsl -lruby-static -lsocket -lnsl -ldl -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { gethostname(); return 0; } /* end */ -------------------- yes --dDRMvlgZJXvWKvBx--