From: Gian Paolo Marra Date: 2002-09-17T02:51:46+09:00 Subject: Re: Ruby on Compaq Tur64unix 5.1a Javier Fontan wrote: > > Hello, > > I've compiled it in Tru64 5.1a. I had some problems with network libraries > bit I solved it adding some parameters to the compilation ( > -DHAVE_SOCKADDR_STORAGE or something like this, I don't remember). If I > have time I'll try to recompile again and I'll tell you exactly how I did > it. Ok! I've compiled on my Comapq Tru64Unix 5.1a system (Cluster version)! - My system is: TruCluster Server (Clusters for Tru64 UNIX) ver. 5.1a Alpha EV6-7 $uname -svrm OSF1 V5.1 1885 alpha - My compiler is: $cc -V Compaq C V6.4-009 on Compaq Tru64 UNIX V5.1A (Rev. 1885) Compiler Driver V6.4-008 (sys) cc Driver - My GNU Make is: $make -v GNU Make version 3.79, by Richard Stallman and Roland McGrath. Built for alphaev67-dec-osf5.1 ----------------------------------------------- Step for compiling ruby-1.6.7 on Tru64Unix 5.1a ----------------------------------------------- 1) Download ruby-1.6.7.tar.gz and decompress file 2) Run ./configure ruby-1.6.7$./configure (Note: ./configure --without-gcc if there is gcc compiler on the system. I have gcc 3.2) (Note: After run ./configure, in ruby-1.6.7/ext/socket, there isn't Makefile) 3) Run make ruby-1.6.7$make 4) Wait until socket.c error... (compiling socket) This is the output of the error: ################################### cc -ieee -g -oldc -std -Dsocklen_t=int -I. -I/zeus/gpmarra/ruby-1.6.7 -I/zeus/gpmarra/ruby-1.6.7 -I/usr/local/include -DHAVE_NETINET_TCP_H -DHAVE_NETINET_UDP_H -DHAVE_INET_NTOP -DHAVE_INET_PTON -DHAVE_GETSERVBYPORT -DHAVE_ARPA_INET_H -DHAVE_ARPA_NAMESER_H -DHAVE_RESOLV_H -DHAVE_SYS_UN_H -DHAVE_SOCKET -DHAVE_GETHOSTNAME -Dss_family=__ss_family -Dss_len=__ss_len -c socket.c cc: Warning: addrinfo.h, line 65: The redefinition of the macro "getaddrinfo" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) #define getaddrinfo getaddrinfo__compat --------------------^ cc: Warning: socket.c, line 93: The redefinition of the macro "_SS_ALIGNSIZE" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) #define _SS_ALIGNSIZE (sizeof(double)) -------------------------------^ cc: Warning: socket.c, line 94: The redefinition of the macro "_SS_PAD1SIZE" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(unsigned char) * 2) -----------------------------------------------^ cc: Warning: socket.c, line 95: The redefinition of the macro "_SS_PAD2SIZE" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) #define _SS_PAD2SIZE (_SS_MAXSIZE - sizeof(unsigned char) * 2 - \ ---------------------------------------^ cc: Error: socket.c, line 98: In this declaration, the struct "sockaddr_storage" is redefined. (redefstruct) struct sockaddr_storage { ^ *** Exit 1 Stop. ################################### 5) Now I start from the hit of Javier (Thanks Javier!!!). ;-))) 6) Go to ruby-1.6.7/ext/socket directory and modify Makefile. Add in CPPFLAGS -DHAVE_SOCKADDR_STORAGE and remove -Dss_family=__ss_family Original CCPLAGS line: CPPFLAGS = -I$(topdir) -I$(hdrdir) -I${prefix}/include -DHAVE_NETINET_TCP_H -DHAVE_NETINET_UDP_H -DHAVE_INET_NTOP -DHAVE_INET_PTON -DHAVE_GETSERVBYPORT -DHAVE_ARPA_INET_H -DHAVE_ARPA_NAMESER_H -DHAVE_RESOLV_H -DHAVE_SYS_UN_H -DHAVE_SOCKET -DHAVE_GETHOSTNAME -Dss_family=__ss_family -Dss_len=__ss_len Modify CCPLAGS line: CPPFLAGS = -I$(topdir) -I$(hdrdir) -I${prefix}/include -DHAVE_SOCKADDR_STORAGE -DHAVE_NETINET_TCP_H -DHAVE_NETINET_UDP_H -DHAVE_INET_NTOP -DHAVE_INET_PTON -DHAVE_GETSERVBYPORT -DHAVE_ARPA_INET_H -DHAVE_ARPA_NAMESER_H -DHAVE_RESOLV_H -DHAVE_SYS_UN_H -DHAVE_SOCKET -DHAVE_GETHOSTNAME -Dss_len=__ss_len 7) Go to ruby-1.6.7 and run again make to finish compling Ruby. ruby-1.6.7$make 8) Test the compiled Ruby. ruby-1.6.7$make test test succeeded 9) Install on the system.... ruby-1.6.7$make install 10) run!! $ruby -v ruby 1.6.7 (2002-03-01) [alphaev67-osf5.1] :-)))))) Final note. Also, I've compiled Ruby -1.6.7 on my Comapq Tru64Unix 5.1a system successfully (same step) with gcc 3.2!! $gcc -v Reading specs from /usr/local/lib/gcc-lib/alphaev67-dec-osf5.1/3.2/specs Configured with: ./configure Thread model: single gcc version 3.2 gp- =========================================================== Gian Paolo Marra CNR - National Council of Research ISAC - Institute of Atmospheric and Climate Sciences 73100 Lecce - Italy ===========================================================