[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby 1.8.3 preview1 Build Error on AIX 5.2

Philippe Lucas

6/27/2005 5:29:00 PM

Hello,

I've found other errors on AIX 5.2 with gcc 3.4.4 :

-A) Configuration error :

The configure script don't choose the right install program. It chooses the
../install-sh.
In the /usr/bin directory, there are 2 install program (install and
installbsd). The script must choose "/usr/sbin/installbsd -c"

For instance, one can add the following lines after line 3803 of configure :
...
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" ; then
# AIX install. (AIX >= 4 can have install and installbsd)
# First assure that we have AIX
# Then we have installbsd program
ac_prog=installbsd
if test -x "$as_dir/$ac_prog$ac_exec_ext"; then
# # AIX install with installbsd
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
# AIX install. It has an incompatible calling convention.
elif test $ac_prog = install &&
...


-B) Can't build the socket extension for 2 reasons :

-B1) The t_open function is in the libxti. So you have to change the
extconf.rb. Probably one can write something like :
when /powerpc-aix[45].*/
test_func = "socket"
have_library("xti", "t_open")
have_library("c","socket")
else
...

-B2) The configuration fails with an IPV6 test. But, i don't use IPV6.
So I have no idea about this error. In the attached file, you will find
mkmf.log.
On the screen i have the following messages :

RUBY_PLATFORM => [powerpc-aix5.2.0.0]
checking for t_open() in -lxti... yes
checking for socket() in -lc... yes
checking for ipv6... yes
checking for struct sockaddr_in.sin_len... yes
checking for struct sockaddr_storage.ss_family... no
checking for struct sockaddr_storage.ss_family... yes
checking for struct sockaddr.sa_len... yes
checking for netinet/tcp.h... yes
checking for netinet/udp.h... yes
checking for sendmsg()... yes
checking for recvmsg()... yes
checking for struct msghdr.msg_control... yes
checking for struct msghdr.msg_accrights... no
checking for wide getaddrinfo... no

Fatal: --enable-ipv6 is specified, and your OS seems to support IPv6
feature.
But your getaddrinfo() and getnameinfo() are appeared to be broken. Sorry,
you cannot compile IPv6 socket classes with broken these functions.
You can try --enable-wide-getaddrinfo.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
--with-opt-dir
--with-opt-include=${opt-dir}/include
--with-opt-lib=${opt-dir}/lib
--with-make-prog=make
--srcdir=.
--curdir=/usr11/home/phil/RUBY/ruby-1.8.3/UNIX_SHARED/PB_SOCKET
--ruby=/usr/local/ruby-183/bin/ruby
--with-xtilib=xti
--with-clib=c
--enable-ipv6
--disable-ipv6
--with-ipv6-lib
--with-ipv6-libdir
--enable-wide-getaddrinfo
--disable-wide-getaddrinfo

Any body has an idea ?

Philippe Lucas
4 Answers

Nakada, Nobuyoshi

6/28/2005 3:45:00 AM

0

Hi,

At Tue, 28 Jun 2005 02:29:11 +0900,
Philippe Lucas wrote in [ruby-talk:146569]:
> -A) Configuration error :
>
> The configure script don't choose the right install program. It chooses the
> ../install-sh.
> In the /usr/bin directory, there are 2 install program (install and
> installbsd). The script must choose "/usr/sbin/installbsd -c"

It is not a stuff of ruby, you should claim it to autoconf
developers instead. If it is incorporated to newer autoconf,
the problem will be solved.

Or this doesn't work?

configure INSTALL="/usr/sbin/installbsd -c"

> -B) Can't build the socket extension for 2 reasons :
>
> -B1) The t_open function is in the libxti. So you have to change the
> extconf.rb. Probably one can write something like :
> when /powerpc-aix[45].*/
> test_func = "socket"
> have_library("xti", "t_open")
> have_library("c","socket")

Thank you the info.

> -B2) The configuration fails with an IPV6 test. But, i don't use IPV6.
> So I have no idea about this error. In the attached file, you will find
> mkmf.log.
> On the screen i have the following messages :
(snip)
> Fatal: --enable-ipv6 is specified, and your OS seems to support IPv6
> feature.
> But your getaddrinfo() and getnameinfo() are appeared to be broken. Sorry,
> you cannot compile IPv6 socket classes with broken these functions.
> You can try --enable-wide-getaddrinfo.

Have you tried `configure' with the above option, or
--disable-ipv6?

--
Nobu Nakada


Philippe Lucas

6/28/2005 10:37:00 AM

0

Hi,

>> -A) Configuration error :
>>
>> The script must choose "/usr/sbin/installbsd -c"
>
> It is not a stuff of ruby, you should claim it to autoconf
> developers instead. If it is incorporated to newer autoconf,
> the problem will be solved.

OK, I 'll do that.
It would be interesting for people using ruby on AIX to know that !.


> Or this doesn't work?
>
> configure INSTALL="/usr/sbin/installbsd -c"

Yes, It works.



>> -B) Can't build the socket extension for 2 reasons :

>> -B2) The configuration fails with an IPV6 test.
>> You can try --enable-wide-getaddrinfo.
>
> Have you tried `configure' with the above option, or
> --disable-ipv6?

Yes, it works with --enable-wide-getaddrinfo and also with --disable-ipv6.
But, I have an AIX installed by IBM. So, because extconf.rb detects that
IPV6 libraries exists, why it fails on a getaddrinfo function ?. Is it an
AIX bug or a Ruby extension configuration bug ? That's the question ?.
Perhaps, anybody using Ruby on AIX have an idea about that.

How can I give (pass on) atomaticaly somes parameters as --disable-ipv6, to
an extension module (socket) from the main Makefile ?
Is it possible ?

Thanks.

Philippe Lucas.




nobu.nokada

6/28/2005 1:53:00 PM

0

Hi,

At Tue, 28 Jun 2005 19:36:32 +0900,
Philippe Lucas wrote in [ruby-talk:146635]:
> >> -B) Can't build the socket extension for 2 reasons :
>
> >> -B2) The configuration fails with an IPV6 test.
> >> You can try --enable-wide-getaddrinfo.
> >
> > Have you tried `configure' with the above option, or
> > --disable-ipv6?
>
> Yes, it works with --enable-wide-getaddrinfo and also with --disable-ipv6.
> But, I have an AIX installed by IBM. So, because extconf.rb detects that
> IPV6 libraries exists, why it fails on a getaddrinfo function ?. Is it an
> AIX bug or a Ruby extension configuration bug ? That's the question ?.
> Perhaps, anybody using Ruby on AIX have an idea about that.

Can't you show the mkmf.log file?

> How can I give (pass on) atomaticaly somes parameters as --disable-ipv6, to
> an extension module (socket) from the main Makefile ?
> Is it possible ?

$ configure --disable-ipv6

or

$ make configure_args='--disable-ipv6'

would work.

--
Nobu Nakada


KUBO Takehiro

6/29/2005 2:00:00 PM

0

Hi,

"Philippe Lucas" <philippe.lucas@technologies-gid.com> writes:

>>> -B2) The configuration fails with an IPV6 test.
>>> You can try --enable-wide-getaddrinfo.
>>
>> Have you tried `configure' with the above option, or
>> --disable-ipv6?
>
> Yes, it works with --enable-wide-getaddrinfo and also with --disable-ipv6.
> But, I have an AIX installed by IBM. So, because extconf.rb detects that
> IPV6 libraries exists, why it fails on a getaddrinfo function ?. Is it an
> AIX bug or a Ruby extension configuration bug ? That's the question ?.
> Perhaps, anybody using Ruby on AIX have an idea about that.

How about 'patch2' of ruby-talk:142201, which is already commited to
the CVS repository
http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-t...

--
KUBO Takehiro
email: kubo@jiubao.org
web: http://www....
GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262