[net.unix-wizards] HELP!!! Can't Compile Netnews Code

guest@proper.UUCP (guest account) (01/18/85)

I am having problems getting the Netnews software up and running
on my system.  I am using a Zilog System 8000.  The problem
code appears to be located in 'readr.c', 'visual.c' and 'expire.c'
this prevents me from being able to compile the critical
program 'readnews'.  Apparently, there aren't very many
people out their running System III, and my newsfeed group,
'philabs' hasn't been able to help me.  They've never seen
the problems I'm having before.

There is an include file 'setjmp.h' which my system doesn't
have.  Following is a typical error.

Script started on Wed Jan 18 10:30:10 1984

#1 make install

        cc -s -i  readnews.o rfuncs.o rfuncs2.o rextern.o readr.o  
process.o rpathinit.o digest.o funcs.o funcs2.o getdate.o header.o 
ndir.o ftime.o -o readnews 

_strchr  ld: /lib/libc.a(strchr.o): - warning: symbol redefined in archive
_strrchr ld: /lib/libc.a(strrchr.o): - warning: symbol redefined in archive
_ftime   ld: /lib/libc.a(ftime.o): - warning: symbol redefined in archive
Undefined:
_setjmp
_opendir
_readdir
_closedir
_longjmp
_end
*** Error code 1

Stop.
#2 
script done on Wed Jan 18 10:32:41 1984

I cannot find setjmp and longjmp defined anywhere.  

Thanks in advance for any help.

                                  Brian Day

UUCP:  philabs!exquisit!brian

guy@rlgvax.UUCP (Guy Harris) (01/21/85)

> I am having problems getting the Netnews software up and running
> on my system.  I am using a Zilog System 8000.  The problem
> code appears to be located in 'readr.c', 'visual.c' and 'expire.c'
> this prevents me from being able to compile the critical
> program 'readnews'.  Apparently, there aren't very many
> people out their running System III, and my newsfeed group,
> 'philabs' hasn't been able to help me.  They've never seen
> the problems I'm having before.
> 
> There is an include file 'setjmp.h' which my system doesn't
> have.  Following is a typical error.

This problem has nothing whatsoever to do with System III.  It has to
do with the fact that the calling sequence used by Zilog makes "setjmp/longjmp"
have problems with register variables when used in the routine that calls
"setjmp".  They renamed "setjmp" to "setret" and "longjmp" to "longret";
you have to include "setret.h" (this is as of a couple of years ago; the
names may have changed).

If I remember the problem correctly, though, the same problem exists in all
other machines where the calling sequence 1) saves a variable number of
registers on the stack and 2) doesn't save anything on the stack indicating
which registers were saved.  The calling sequence used by most 68000 machines
has the same problem (why waste cycles pushing a mask onto the stack when
it wouldn't be used 99.44% of the time?).  As such, I don't know whether
Zilog really should have bothered fiddling "setjmp".

(By the way, this probably should have been posted to net.news.b, not
net.unix-wizards, as it's a problem with "news" not UNIX.)

	Guy Harris
	{seismo,ihnp4,allegra}!rlgvax!guy