Ruby language port

I’ve been able to compile ruby http://helium.ruby-lang.org/en/
using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695

nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
< char *pat;
< char *string;

const char *pat;
const char *string;

…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I’ll try to put together a package to upload somewhere.


David L. Hawley D.L. Hawley and Associates

“David Hawley” <David.L.Hawley@computer.org> wrote

I’ve been able to compile ruby > http://helium.ruby-lang.org/en/

Nice to see someone else digging in the ruby mine. I’m really beginning to
like the language.

using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695
nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
char *pat;
char *string;

const char *pat;
const char *string;


…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I used the snapshot from 2001-05-02 (ruby 1.6.4) and QNX patch B. I had to
make some additional modifications:

io.c:

Added (somewhere at the top):

#ifdef QNXNTO
#include “unix.h”
#endif

This is needed to define NOFILES.


signal.c:

Signal handlers are not properly set if SA_RESTART is used (“make test”
fails).
Added #ifndef QNXNTO near line 292:

#ifdef SA_RESTART
#ifndef QNXNTO
sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
#endif
#endif


ext/socket.c

line 1517:

#if !defined(NT) && !defined(BEOS) && !defined(EMX) &&
!defined(QNXNTO)

socket.c compiles but fails to load because socketpair() is not yet
supported.


Roland

Hello,

what version of QNX 6 are you using? 6.1?

Armin


David Hawley wrote:

I’ve been able to compile ruby > http://helium.ruby-lang.org/en/
using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695
nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
char *pat;
char *string;

const char *pat;
const char *string;

…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I’ll try to put together a package to upload somewhere.


David L. Hawley D.L. Hawley and Associates

Roland Priem wrote:

“David Hawley” <> David.L.Hawley@computer.org> > wrote

I’ve been able to compile ruby > http://helium.ruby-lang.org/en/

Nice to see someone else digging in the ruby mine. I’m really beginning to
like the language.

using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695
nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
char *pat;
char *string;

const char *pat;
const char *string;


…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I used the snapshot from 2001-05-02 (ruby 1.6.4) and QNX patch B. I had to
make some additional modifications:

io.c:

Added (somewhere at the top):

#ifdef QNXNTO
#include “unix.h”
#endif

This is needed to define NOFILES.

signal.c:

Signal handlers are not properly set if SA_RESTART is used (“make test”
fails).
Added #ifndef QNXNTO near line 292:

#ifdef SA_RESTART
#ifndef QNXNTO
sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
#endif
#endif

ext/socket.c

line 1517:

#if !defined(NT) && !defined(BEOS) && !defined(EMX) &&
!defined(QNXNTO)

socket.c compiles but fails to load because socketpair() is not yet
supported.

I posted several monthes ago a working wrapper …

Armin



Roland

Armin,

I wrote tis back when 6.0 was the only option. In fact I hadn’t gotten a
good compile with 6.1 - it kept faulting on me. I’ll look for yout
socket-pair code and give it another try.

Dave

Armin Steinhoff wrote:

Roland Priem wrote:

“David Hawley” <> David.L.Hawley@computer.org> > wrote


I’ve been able to compile ruby > http://helium.ruby-lang.org/en/

Nice to see someone else digging in the ruby mine. I’m really beginning to
like the language.


using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695

nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
char *pat;
char *string;

const char *pat;
const char *string;


…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I used the snapshot from 2001-05-02 (ruby 1.6.4) and QNX patch B. I had to
make some additional modifications:

io.c:

Added (somewhere at the top):

#ifdef QNXNTO
#include “unix.h”
#endif

This is needed to define NOFILES.

signal.c:

Signal handlers are not properly set if SA_RESTART is used (“make test”
fails).
Added #ifndef QNXNTO near line 292:

#ifdef SA_RESTART
#ifndef QNXNTO
sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
#endif
#endif

ext/socket.c

line 1517:

#if !defined(NT) && !defined(BEOS) && !defined(EMX) &&
!defined(QNXNTO)

socket.c compiles but fails to load because socketpair() is not yet
supported.


I posted several monthes ago a working wrapper …

Armin




Roland

Armin,

What did you do about

…/io.c:183: undefined reference to `ReadDataPending’

There’s some stuff near the top starting with:

#ifdef _STDIO_USES_IOSTREAM

where ReadDataPending is defined.

Armin Steinhoff wrote:

Roland Priem wrote:

“David Hawley” <> David.L.Hawley@computer.org> > wrote


I’ve been able to compile ruby > http://helium.ruby-lang.org/en/

Nice to see someone else digging in the ruby mine. I’m really beginning to
like the language.


using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695

nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
char *pat;
char *string;

const char *pat;
const char *string;


…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I used the snapshot from 2001-05-02 (ruby 1.6.4) and QNX patch B. I had to
make some additional modifications:

io.c:

Added (somewhere at the top):

#ifdef QNXNTO
#include “unix.h”
#endif

This is needed to define NOFILES.

signal.c:

Signal handlers are not properly set if SA_RESTART is used (“make test”
fails).
Added #ifndef QNXNTO near line 292:

#ifdef SA_RESTART
#ifndef QNXNTO
sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
#endif
#endif

ext/socket.c

line 1517:

#if !defined(NT) && !defined(BEOS) && !defined(EMX) &&
!defined(QNXNTO)

socket.c compiles but fails to load because socketpair() is not yet
supported.


I posted several monthes ago a working wrapper …

Armin




Roland

David Hawley wrote:

Armin,

What did you do about

…/io.c:183: undefined reference to `ReadDataPending’

There’s some stuff near the top starting with:

#ifdef _STDIO_USES_IOSTREAM

where ReadDataPending is defined.

I think that I have a workable solution - I added:

#elif defined QNXNTO

define READ_DATA_PENDING(fp) (fp->_Next < fp->_Rend)

before the final #else in this sequence.

Dave

David Hawley <david.l.hawley@computer.org> wrote:

Armin,

I wrote tis back when 6.0 was the only option. In fact I hadn’t gotten a
good compile with 6.1 - it kept faulting on me. I’ll look for yout
socket-pair code and give it another try.

The good news is that using the big stack with 6.1.1 you should
be able to use socketpair().

Thomas

Armin Steinhoff wrote:

Roland Priem wrote:

“David Hawley” <> David.L.Hawley@computer.org> > wrote


I’ve been able to compile ruby > http://helium.ruby-lang.org/en/

Nice to see someone else digging in the ruby mine. I’m really beginning to
like the language.


using the following:

download stable-snapshot.tar.gz
zcat stable-snapshot.tar.gz | pax -r
cd ruby
mkdir x86-pc-nto-qnx

modify configure with
4693a4694,4695

nto-qnx*) LDSHARED=“qcc -shared”
rb_cv_dlopen=yes ;;

modify dir.c with

137,138c137,138
char *pat;
char *string;

const char *pat;
const char *string;


…/configure --prefix=/opt --srcdir=… --host=x86-pc-nto-qnx
–enable-shared

make

make install

I used the snapshot from 2001-05-02 (ruby 1.6.4) and QNX patch B. I had to
make some additional modifications:

io.c:

Added (somewhere at the top):

#ifdef QNXNTO
#include “unix.h”
#endif

This is needed to define NOFILES.

signal.c:

Signal handlers are not properly set if SA_RESTART is used (“make test”
fails).
Added #ifndef QNXNTO near line 292:

#ifdef SA_RESTART
#ifndef QNXNTO
sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
#endif
#endif

ext/socket.c

line 1517:

#if !defined(NT) && !defined(BEOS) && !defined(EMX) &&
!defined(QNXNTO)

socket.c compiles but fails to load because socketpair() is not yet
supported.


I posted several monthes ago a working wrapper …

Armin




Roland

Thomas (toe-mah) Fletcher QNX Software Systems
thomasf@qnx.com Core OS Technology Group
(613)-591-0931 http://www.qnx.com/

David Hawley wrote:

David Hawley wrote:

Armin,

What did you do about

I gave up at an earlier stage … because I couldn’t spend
much time.


…/io.c:183: undefined reference to `ReadDataPending’

There’s some stuff near the top starting with:

#ifdef _STDIO_USES_IOSTREAM

where ReadDataPending is defined.

In the attachment is a socketpair hack from the LINUX scene :slight_smile:

Armin


I think that I have a workable solution - I added:

#elif defined QNXNTO

define READ_DATA_PENDING(fp) (fp->_Next < fp->_Rend)

before the final #else in this sequence.

Dave