Trouble with Readline and Building Ruby 1.9

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.

On Dec 24, 1:57 pm, James H. [email protected] 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

On Dec 25, 4:57 am, James H. [email protected] 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

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

On Dec 26, 5:00 am, Han K. [email protected] 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

On Dec 26, 4:01 pm, yudi [email protected] 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

On Dec 26, 9:42 pm, Raul P. [email protected] 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.)

On Dec 27, 11:57 am, Tadatoshi T. [email protected] 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

Tadatoshi T. 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

I did, quite a few times.

I really, really, really want to thank Han K. for this. Your
solution saved me a lot of frustration and fixed a number of problems
I was having. Thanks a ton.

  • Joe P

On Dec 27, 10:37 am, yudi [email protected] 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

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

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:

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