Ruby Forum Ruby > Trouble with Readline and Building Ruby 1.9

Posted by James Herdman (biocsnerd)
on 24.12.2007 20:57
(Received via mailing list)
I'm having a little trouble building Ruby 1.9.  I'm building on
Leopard and using "--prefix=/usr/local/ruby1.9" when running config,
but I'm getting the following output after running 'make':

gcc -I. -I../../.ext/include/i686-darwin9.1.0 -I../.././include
-I../.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\"    -fno-common
-g -O2 -pipe -fno-common   -o readline.o -c readline.c
readline.c: In function 'filename_completion_proc_call':
readline.c:659: error: 'filename_completion_function' undeclared
(first use in this function)
readline.c:659: error: (Each undeclared identifier is reported only once
readline.c:659: error: for each function it appears in.)
readline.c:659: warning: assignment makes pointer from integer without a 
cast
readline.c: In function 'username_completion_proc_call':
readline.c:684: error: 'username_completion_function' undeclared
(first use in this function)
readline.c:684: warning: assignment makes pointer from integer without a 
cast
make[1]: *** [readline.o] Error 1
make: *** [all] Error 1

Any ideas on what's wrong?

James H.
Posted by Gerald Murray (Guest)
on 25.12.2007 00:40
(Received via mailing list)
On Dec 24, 1:57 pm, James Herdman <james.herd...@gmail.com> wrote:

> gcc -I. -I../../.ext/include/i686-darwin9.1.0 -I../.././include
> -I../.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\"    -fno-common

grep for the functions showed they were declared in /usr/include/
readline/readline.h (32-bit readline)
find readline.h in your computer and check for its declaration there.
If you are using packages you may need the *-dev for  readline.
The includes in the above look peculiar:  "/.ext" and "-I../.././
include"  may be typo or an indication that the includes are just
wrong ?

Gerald
Posted by Han Kessels (Guest)
on 25.12.2007 05:00
(Received via mailing list)
On Dec 25, 4:57 am, James Herdman <james.herd...@gmail.com> wrote:
> readline.c:659: error: (Each undeclared identifier is reported only once
>
> James H.

Install the latest readline (5.2) in /usr/local and rerun ./configure:
./configure --prefix=/usr/local --with-readline-dir=/usr/local

Cheers,

Han
Posted by yudi (Guest)
on 26.12.2007 08:02
(Received via mailing list)
I had exactly the same problem.installing readline with ./configure
--prefix=/usr/local --with-readline-dir=/usr/local
shows a incompatibility with dynamic library, then I followed here:
http://www.weblogs.uhi.ac.uk/sm00sm/?p=291

with make static and sudo make static-install

With readline 'properly' installed, the same error still pop up. 
(readline.o
)
I assume it's the problem with gcc ?

Yudi
Posted by Han Kessels (Guest)
on 26.12.2007 11:05
(Received via mailing list)
On Dec 26, 4:01 pm, yudi <yudi....@gmail.com> wrote:
> I assume it's the problem with gcc ?
> > > but I'm getting the following output after running 'make':
> > cast
> > > James H.
>
> > Install the latest readline (5.2) in /usr/local and rerun ./configure:
> > ./configure --prefix=/usr/local --with-readline-dir=/usr/local
>
> > Cheers,
>
> > Han
>
> --
> Do not be afraid of Change.

Building readline5.2 on Leopard is broken. It checks for the OS
explicitly, but this check does not exclude darwin9 (Leopard). It is
easily fixed though, by patching support/shobj-conf:

--- support/shobj-conf  2007-12-26 18:30:46.000000000 +0900
+++ support/shobj-conf.new  2007-12-26 18:30:39.000000000 +0900
@@ -142,7 +142,7 @@
   ;;

 # Darwin/MacOS X
-darwin8*)
+darwin89*)
   SHOBJ_STATUS=supported
   SHLIB_STATUS=supported

@@ -171,7 +171,7 @@
   SHLIB_LIBSUFF='dylib'

   case "${host_os}" in
-  darwin[78]*)  SHOBJ_LDFLAGS=''
+  darwin[789]*)  SHOBJ_LDFLAGS=''
       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -
install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$
(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
       ;;
   *)    SHOBJ_LDFLAGS='-dynamic'

Cheers,

Han
Posted by Tadatoshi Takahashi (Guest)
on 27.12.2007 03:15
(Received via mailing list)
On Dec 26, 5:00 am, Han Kessels <han.kess...@gmail.com> wrote:
> > with make static and sudo make static-install
> > > > I'm having a little trouble building Ruby 1.9. I'm building on
> > > > readline.c:659: error: for each function it appears in.)
> > > > Any ideas on what's wrong?
> > --
>
> -       darwin[78]*)    SHOBJ_LDFLAGS=''
> +       darwin[789]*)   SHOBJ_LDFLAGS=''
>                         SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -
> install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$
> (SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
>                         ;;
>         *)              SHOBJ_LDFLAGS='-dynamic'
>
> Cheers,
>
> Han

I'm having the same problem.
After I modified support/shobj-conf for readline following Han's
instruction, the problem still persists.

There is no post on this thread after Han's post.
Does it mean that everybody was able to install Ruby 1.9?
If so, could anybody post the steps to take?

Thank you in advance.
Tadatoshi
Posted by Raul Parolari (raulparolari)
on 27.12.2007 03:42
Tadatoshi Takahashi wrote:
> After I modified support/shobj-conf for readline following Han's
> instruction, the problem still persists.

There were 2 different corrections to the problem:
1) generate readline in the way indicated by Yudi (..make 
static-install) above
2) correct the test on the OS version as indicated by Han.

I am still using MacOsX 10.4.11, and I cannot confirm that the 2 actions 
fix the problem for Leopard. But they (in my case, just the first alone) 
allowed me to (finally..) generate ruby 1.9.

I wrote this just in case you overlooked the first correction.

And by the way, thanks to Yudi and Han

Raul
Posted by Tadatoshi Takahashi (Guest)
on 27.12.2007 04:00
(Received via mailing list)
On Dec 26, 9:42 pm, Raul Parolari <raulparol...@gmail.com> wrote:
> fix the problem for Leopard. But they (in my case, just the first alone)
> allowed me to (finally..) generate ruby 1.9.
>
> I wrote this just in case you overlooked the first correction.
>
> And by the way, thanks to Yudi and Han
>
> Raul
> --
> Posted viahttp://www.ruby-forum.com/.

Thank you for your reply, Raul.

Actually, just to install readline itself required the first
correction.
Then I went on to execute make for Ruby 1.9.
At that time, I got the same error as James originally posted.
So I followed Han's instruction.
But the problem still persisted.
(I'm using Mac OS X 10.5.1 Leopard.)
Posted by Han Kessels (Guest)
on 27.12.2007 10:30
(Received via mailing list)
On Dec 27, 11:57 am, Tadatoshi Takahashi <tadato...@gmail.com> wrote:
> > static-install) above
> > Raul
> But the problem still persisted.
> (I'm using Mac OS X 10.5.1 Leopard.)

Once you succeeded in installing readline in /usr/local, did you point
ruby1.9 at it?
./configure --prefix=/usr/local/ruby1.9 --with-readline-dir=/usr/local
Posted by yudi (Guest)
on 27.12.2007 16:38
(Received via mailing list)
I did, quite a few times.
Posted by Tadatoshi Takahashi (Guest)
on 27.12.2007 23:45
(Received via mailing list)
On Dec 27, 10:37 am, yudi <yudi....@gmail.com> wrote:
>
> > actions
> > > > Posted viahttp://www.ruby-forum.com/.
>
> > Once you succeeded in installing readline in /usr/local, did you point
> > ruby1.9 at it?
> > ./configure --prefix=/usr/local/ruby1.9 --with-readline-dir=/usr/local
>
> --
> Do not be afraid of Change.

Thank you for your reply, Han.

Yes, I did as well.
In my case, just like Yudi, ./configure --prefix=/usr/local --with-
readline-dir=/usr/local
Posted by Joseph Pecoraro (bogojoker)
on 28.01.2008 04:20
(Received via mailing list)
I really, really, really want to thank Han Kessels for this.  Your
solution saved me a lot of frustration and fixed a number of problems
I was having.  Thanks a ton.

- Joe P
Posted by José Ignacio (ji123)
on 18.11.2008 13:41
I have the same problems as listed here (Ruby 1.9 + Leopard). I have 
succesfully installed readline 5.2 using make static-install. But when 
compiling Ruby 1.9 I get the same result as Yudi and Tadatoshi. Did you 
finally manage to install Ruby 1.9 in Leopard?

Moreover, ruby 1.9.0-5 's configure doesn't support with-readline-dir 
option. Anyway, i tried both 1.9.0-0 (which seems to support 
with-readline-dir option) and 1.9.0-5 and I get the same result with 
both approaches:

readline.c: In function ‘filename_completion_proc_call’:
readline.c:659: error: ‘filename_completion_function’ undeclared (first 
use in this function)
readline.c:659: error: (Each undeclared identifier is reported only once
readline.c:659: error: for each function it appears in.)
readline.c:659: warning: assignment makes pointer from integer without a 
cast
readline.c: In function ‘username_completion_proc_call’:
readline.c:684: error: ‘username_completion_function’ undeclared (first 
use in this function)
readline.c:684: warning: assignment makes pointer from integer without a 
cast
Posted by José Ignacio (ji123)
on 20.11.2008 20:52
I managed to install Ruby 1.9 using MacPorts:

$ sudo ports install ruby19

For those interested, I think MacPorts uses the same procedure as shown 
here: 
http://programblings.com/2008/11/18/installing-ruby-19preview1-on-os-x-leopard/

José Ignacio wrote:
> I have the same problems as listed here (Ruby 1.9 + Leopard). I have 
> succesfully installed readline 5.2 using make static-install. But when 
> compiling Ruby 1.9 I get the same result as Yudi and Tadatoshi. Did you 
> finally manage to install Ruby 1.9 in Leopard?
> 
> Moreover, ruby 1.9.0-5 's configure doesn't support with-readline-dir 
> option. Anyway, i tried both 1.9.0-0 (which seems to support 
> with-readline-dir option) and 1.9.0-5 and I get the same result with 
> both approaches:
> 
> readline.c: In function ‘filename_completion_proc_call’:
> readline.c:659: error: ‘filename_completion_function’ undeclared (first 
> use in this function)
> readline.c:659: error: (Each undeclared identifier is reported only once
> readline.c:659: error: for each function it appears in.)
> readline.c:659: warning: assignment makes pointer from integer without a 
> cast
> readline.c: In function ‘username_completion_proc_call’:
> readline.c:684: error: ‘username_completion_function’ undeclared (first 
> use in this function)
> readline.c:684: warning: assignment makes pointer from integer without a 
> cast