[comp.soft-sys.andrew] HELP - installation problem on DECstation 2100 - ULTRIX 4.1

henke@qt.ipa.fhg.de (Juergen Henke) (02/01/91)

Oh no !

I thought that would have gone away......

I got into the same problems when i was building ATK, Patchlevel 7, on our
DECstations. With the help from Christer Bernerus from Sweden i was able to
build ATK.

Here now my question: isn't it possible to include Christer's changes into
the ATK, so anyone can build the toolkit without fiddling around ?? Shouldn't
be impossible at all...

BTW., we still got a few (:^>) VAXstations running Ultrix, but building ATK
on this was not possible till now - o.k., i didn't invest a lot of time in
this, cause my DECstation on my desk runs fine...

Juergen.


P.S.: Any status messages about a few (former) announcements like a
      Postscriptview (using DisplayPostScript) or direct printing output
      in Postscript ?

sean@DSL.PITT.EDU (Sean McLinden) (02/01/91)

> I'm attempting to install andrew on a DECstation 2100 running ULTRIX 4.1,
> and everything seems to be going well until the build process gets to 
> processing the 'environ.*' files in the 'atk/basics/common' directory.
> 
> At which point I get the following errors:
> 
> doload:  Undefined symbol: sys_errlist
> doload:  Errors while processing
> doindex: NULL entrypoint from environ.do...program terminated!
> 
> The build stops here and I can't figure out what is wrong. I've checked
> the 'overhead/class/machdep/dec_mips/...' stuff and find that 'getlist.awk'
> is asking for the definer of sys_errlist. I've checked my libc_G0.a (I'm
> on a MIPS system) and there is NO definer of sys_errlist.
> 
> Any suggestions on where to go from here? Help would be much appreciated.
> 

When DEC decided to supply libc_G0.a they neglected to include errlst.o
in the archive for who knows what reason. You can either a) scarf it from
libc.a and rebuild libc_G0.a or b) recomp it from source (if you have it).
If you don't have it (why it shouldn't be supplied in source form is beyond
me), you can make one up by using the entries from the errno(2) man page
where each error number corresponds to the position of the error text message
in the sys_errlist[] array, like so:

char *sys_errlist = {
	"Unused",
	"Not owner",
	"No such file or directory",
	...
}

You'll also need to define the value for the int sys_nerr
(the number of errors).

Then compile this with the -G 0 option and add it to the libc_G0.a
archive. Make sure that you get the position right (check with libc.a).

This should do it.

Sean McLinden
Decision Systems Laboratory
University of Pittsburgh

ghoti+@ANDREW.CMU.EDU (Adam Stoller) (02/01/91)

My guess would be - that Ultrix 4.1 is probably ANSI compliant (finally)
and as such relies on the usage of perror and strerror, and may no
longer include the old [BSD'ish?] sys_errlist[]

The problem is apparently coming from ${ANDREWDIR}/lib/libutil.a -
primarilly from the module uerror.c

If this is the case - try the following:

1) using whatever symbol you have defined in your system.h file - copy
and edit andrew/overhead/util/lib/uerror.c and change:

    if (errorNumber < sys_nerr && errorNumber > 0) return
sys_errlist[errorNumber];

to:
#ifdef YOUR_SYSTEM_FLAG
    if (errorNumber < sys_nerr && errorNumber > 0) return
strerror(errorNumber);
#else
    if (errorNumber < sys_nerr && errorNumber > 0) return
sys_errlist[errorNumber];
#endif

(keep the copy so you can make a diff to send us - if it works, and so
that you can copy it back it place and patch it officially when your
diff gets sent out as a patch)

2) Do a 'make clean' in andrew/atk/basics/common (doload errors
sometimes produce 0-length .do files which mess things up).

3) Rebuild from "andrew" (several things in overhead may need to relink
against libutil.a - but it shouldn't take too long to get through
overhead and back to ATK - to find out if the problem still exists)

4) If the above works send us a copy of the system.h and system.mcr that
you are using for this particalur sys-type (I don't think we have it in
our lists yet) - and the diff that you used in uerror.c so that we can
apply it to our sources.

5) If this doesn't work - post again - maybe someone else will have an
idea........

Good luck,

--fish