compiling CVS on 4.25N --

hello all,

i’m trying to get cvs to work on a qnx 4.25n box. i’ve installed the binary gcc 2.8.1/2.7.2 egcs1.1.2, which works…

i’ve extracted the tarball for the latest stable cvs sources [cvs-1.12.4].

running the ./configure script works! i used these flags:

./configure --prefix=/usr/local \ --disable-nls \ --disable-server \ --enable-rootcommit \ --with-tmpdir=/tmp

now, running make i get an assembler error… to whit:

/* snipped the stuff that worked... */ Making all in diff make[2]: Entering directory `/proj/gnu/cvs-1.12.4/diff' source='diff.c' object='diff.o' libtool=no \ depfile='.deps/diff.Po' tmpdepfile='.deps/diff.TPo' \ depmode=gcc /bin/bash //7/proj/gnu/cvs-1.12.4/depcomp \ gcc -DHAVE_CONFIG_H -I. -I//7/proj/gnu/cvs-1.12.4/diff -I.. -I//7/proj/gnu/cvs-1.12.4/lib -Ino/include -g -O2 -c `test -f 'diff.c' || echo '//7/proj/gnu/cvs-1.12.4/diff/'`diff.c /tmp/ccCDAAH7.s: Assembler messages: /tmp/ccCDAAH7.s:3505: Error: Attempt to get value of unresolved symbol callbacks_arg:V157 /tmp/ccCDAAH7.s:3505: Error: Attempt to get value of unresolved symbol make[2]: *** [diff.o] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 make[2]: Leaving directory `/proj/gnu/cvs-1.12.4/diff' make[1]: Leaving directory `/proj/gnu/cvs-1.12.4'

could this be too high a level of optimization? according to the gcc binary distro i installed, -O and it’s ilk use a lot of memory…

the machine i’m on has 128mb o’ ram…

any insights appreciated - pax –

It has been a while, but I know I had compiled cvs with watcom in the past. I wouldn’t necessarily expect configure to get it right - it tends to leap onto the fact you have gcc (assuming you have it installed). You could try forcing configure to use watcom and see where that leads you. It is doable if knowing that is any help. :slight_smile:

i hadn’t considered that… i’ll give it a go and see what happens.

if anything good comes of it, i’ll post something here.

thanks for the feedback –

success!

there were a few hurdles to overcome, however… here’s how i got it working:

CC=/usr/watcom/10.6/bin/cc \ LD=/usr/watcom/10.6/bin/wlib \ LDFLAGS=" -mf -4 -fpi87 -fp3 -T0 -w4 " \ ./configure --prefix=/proj/gnu \ --disable-nls \ --enable-rootcommit \ --with-tmpdir=/tmp

this creates a Makefile and a config.h. i typed ‘make’ and watched watcom begin building the program. there were a few typecasting problems between the two compilers [gcc and watcom] that had to be hand-edited to get them to compile, but they are minor.

at the end, however, the make failed. it turns out that the ./configure script could not detect my system’s readlink function. to fix this, i hacked the config.h file and added these lines:

#define HAVE_READLINK 1 #include <unistd.h>

after this, everything linked and binaries got built. ‘make install’ put them in my PATH, then i tested the new cvs with my company’s CVS server.

this binary works like a champ! i’ve checked out our ‘trivial’ project, made a modification, listed the updates and diffs, then committed the changes to the archive.

thanks for the support - if anyone would like further explanation about the porting process, just post to this forum.

pax –

Glad to hear it. Porting most C programs aren’t really a problem - C++ is a different issue.