[comp.soft-sys.andrew] Still no luck trying to make Andrew under SunOS 4.1

sbc@informatics.wustl.edu (Steve Cousins) (09/28/90)

Help!

After a full week of trying, I'm still not able to get Andrew to build
under SunOS 4.1 (and as of yesterday, neither had tom@icase.edu, who
has also been posting to this list about this).  We have one report of
it building on a Sun 4/260 under 4.1, from cameron@cs.flinders.oz.au,
but using his config files, we had no success.

We tried re-building the exact code that worked on SunOS 4.0.3
previously with the same config parameters, and that failed.  We tried
loading andrew  from scratch from the tapes on wuarchive, including
applying the paches 1-6.  We also thought it might be the compiler, but
couldn't get it to work using either bundled cc from Sun or gcc.

Cameron mentioned that he had to get fresh copies of config/ImakeMacros.d
and config/andrew.rls from ITC, and the only thing I have left to try is
to get these files from him and see if they have an impact on the compile.

Does anyone have any other suggestions?  Should the install/upgrade of
ANY software be this hard?

Thanks

Steve Cousins			sbc@informatics.wustl.edu
Medical Informatics Lab.	314-362-4322
Washington University

jis@mtgzx.att.com (J Mukerji) (09/29/90)

Ahh.. my favorite subject for the week!

I have finally been able to build Andrew PL6 and PL7 under SunOS4.1,
with a little finagling. The stuff in atk/ness/doc failed to build
because nessrun coredumped in PL7 and for a slightly different reason in
PL6. So I temporarily hacked the Imakefile in atk/ness to avoid building
atk/ness/doc at all. The rest built and installed fine. But then the fun
began.

(1) First, when I tried to crank up runapp it crashed, I mean the whole
darned workstation went south on a panic trap. I saved the core and am
waiting for expert advice from our friendly Sun PAL. In my opinion
nothing that a mere application does should cause the kernel to go
south. this happens in about 50% of my attempts to start up an Andrew
application out of my .xinitrc file, and about 25% of the time when
starting an Andrew application from an xterm window. It never happens
when starting an Andrew application from gdb.

(2) Next Ez under certain circumstances started to core dump. In
particular this happens when you try to create a new window using ^X2.
Took a look at what is happening using gdb. It seems to be crapping out
at some inoccuous assignment statement in frame_InitializeObject.

(3) Messages failed to come up. That one seems to be trapping at some
inoccuous assignment statement in site.c, which compiles and works fine
on 4.0.3.

All this leads me to start suspecting the sanity of the 4.1 C
compiler/loader. Will continue investigating and keep you all posted.
                            Jishnu Mukerji,  
                           jis@mtgzx.att.com, 
                           +1 201 957 5986,  
                        AT&T Bell Laboratories, 
                      MT 3K-423, 200 Laurel Ave., 
                           Middletown NJ 07748

wjh+@ANDREW.CMU.EDU (Fred Hansen) (09/29/90)

Excerpts from internet.info-andrew: 28-Sep-90 Re: Still no luck trying
to.. J Mukerji@mtgzx.att.com (1627+0)

> The stuff in atk/ness/doc failed to build because nessrun coredumped in
> PL7 and for a slightly different reason in PL6. So I temporarily hacked
> the Imakefile in atk/ness to avoid building atk/ness/doc at all. The
> rest built and installed fine. But then the fun began.

> (1) First, when I tried to crank up runapp it crashed, 

This is not too surprising because nessrun now uses runapp, so if runapp
is going to die, so will nessrun.  This is not a bug in ness (as far as
I can see) but a reflection of the fact that ness/doc is the first time
in the build process where runapp actually gets executed.

Fred Hansen

pive@BANRUC01.BITNET (10/01/90)

Hmm... sounds familiar to me.
I tried to install Andrew PL7 on SS1+ sunos4.1 if I tried to compile
andrew with RESOLVER_ENV defined, I couldn't build the system (if
RESOLVLIB is empty, then some symbols aren't defined, if RESOLVLIB =
/usr/lib/resolvlib.a then dofix fails in atkams/messages/lib...).
So I tried to install andrew with RESOLVER_ENV undefined: building was
succesfull except in atk/ness/doc where I got a core dump. But when I
started testing the new release, some applications won't work (e.g.
messages, vui, cui, ness, console and maybe some others) ez worked fine
with some insets I tried (clock, zip, raster).
I even tried to build the system with RESOLVER_ENV undefined and with
CDEBUGFLAGS=-g but with the same result.

Can someone HELP me please ???????????????? (or have I to abandon andrew ?)

Thanx




P. Verhaeghe
University of Antwerp, RUCA
Algebra / Geometry
Groenenborgerlaan 171
B-2020 Antwerpen, Belgium

Tel: +32 3 2180308
Fax: +32 3 2180217
Telex: RUCABI 33362

E-mail: pive@banruc01.bitnet (or pive@ccu.uia.ac.be)

gk5g+@ANDREW.CMU.EDU (Gary Keim) (10/04/90)

There is a bug with Ness on Suns due to yacc differences among platforms.  

Keep the resolver turned on.

Remove references to RESOLVLIB in:
	andrew/atk/help/src/Imakefile
	andrew/atk/console/cmd/Imakefile
	andrew/atkams/messages/lib/Imakefile

Add these lines to you andrew/config/site.mcr file:
        CDEBUGFLAGS = -g -Bstatic
        MAKEDOFLAGS = -g -d ${BASEDIR}/lib -b ${BASEDIR}/bin

Go to the root of the Andrew sources and rebuild.

% imake -I. -I./config -Timake.tmpl -s Makefile -DTOPDIR=.
% make World

If anyone can tell me if the -Bstatic compiler flag is necessary, and
why, I'd be very appreciative.

Gary Keim
ATK Group

mayer@gmdzi.gmd.de (Hans Mayer) (10/04/90)

From article <4b2Zzam00VsWM5Kkhn@andrew.cmu.edu>, by gk5g+@ANDREW.CMU.EDU (Gary Keim):
> [...some lines deleted] 
> If anyone can tell me if the -Bstatic compiler flag is necessary, and
> why, I'd be very appreciative.

From the manual:

     -Bbinding Specify whether bindings of libraries for  linking
               are   static   or   dynamic,   indicating  whether
               libraries are non-shared or shared, respectively.

As Andrew uses its own dynamic loading you'll get into great trouble if
another dynamic loader gets in your way.

- Hans

-- 
Hans J. Mayer, mayer@gmdzi.gmd.de (or mayer@ddagmd11.BITNET)
 German National Research Center for Computer Science (GMD)

wjh+@ANDREW.CMU.EDU (Fred Hansen) (10/05/90)

Excerpts from internet.info-andrew: 29-Sep-90 Re: Still no luck trying
to.. Fred Hansen (725+0)

> Excerpts from internet.info-andrew: 28-Sep-90 Re: Still no luck trying
> to.. J Mukerji@mtgzx.att.com (1627+0)

>> The stuff in atk/ness/doc failed to build because nessrun coredumped in
>> PL7 and for a slightly different reason in PL6. So I temporarily hacked
>> the Imakefile in atk/ness to avoid building atk/ness/doc at all. The
>> rest built and installed fine. But then the fun began.

>> (1) First, when I tried to crank up runapp it crashed, 

> This is not too surprising because nessrun now uses runapp, so if runapp
> is going to die, so will nessrun.  This is not a bug in ness (as far as
> I can see) but a reflection of the fact that ness/doc is the first time
> in the build process where runapp actually gets executed.

> Fred Hansen

Although a true statement, my comment is sort of silly.  The real
problem turns out to be that /usr/lib/yaccpar differs on different
machines so the state saving code in Ness cannot do recursive
compilations.  A recursive compilation is required in present.n, the
ness program that is run as part of the build process.

One workaround is to install the Ness documents without processing them.

Another workaround is to comment out two lines in present.n so they become:

--	printline("sorting index")
--	index := sort_records_per_flags("", base(index), "fd")

I'll be working on a fix to the yaccpar problem and will release it in a
forthcoming patch.

Fred Hansen

wjh+@ANDREW.CMU.EDU (Fred Hansen) (10/05/90)

Excerpts from mail: 4-Oct-90 Re: Still no luck trying to.. =>
Info-Andrew@andrew.cm (1486+0)


> Another workaround is to comment out two lines in present.n so they become:

> --	printline("sorting index")
> --	index := sort_records_per_flags("", base(index), "fd")

Nope.  The truth is Ness will not compile at all on these platforms
until I fix the problem.  Sigh.

Fred Hansen

pive@BANRUC01.BITNET (10/05/90)

Excerpts from software: 3-Oct-90 Re: Still no luck tryingto.. Gary
Keim@andrew.cmu.edu (649)

> There is a bug with Ness on Suns due to yacc differences amongplatforms.

> Keep the resolver turned on.

> Remove references to RESOLVLIB in:
>     andrew/atk/help/src/Imakefile
>     andrew/atk/console/cmd/Imakefile
>     andrew/atkams/messages/lib/Imakefile

> Add these lines to you andrew/config/site.mcr file:
>         CDEBUGFLAGS = -g -Bstatic
>         MAKEDOFLAGS = -g -d ${BASEDIR}/lib -b ${BASEDIR}/bin

> Go to the root of the Andrew sources and rebuild.

> % imake -I. -I./config -Timake.tmpl -s Makefile -DTOPDIR=.
> % make World

I did this, first with RESOLVLIB empty but then this happens:

    cc -c -I. -I/usr/andrew/include/ams -g
    -Bstatic-I/usr/andrew/include/atk -I/usr/andrew/include
    -I//usr/include/X11   stubs.c
    /usr/andrew/bin/makedo -g -d /usr/andrew/lib -b /usr/andrew/bin
    -o amsn.do amsn.o stubs.o  /usr/andrew/lib/libcui.a
    /usr/andrew/lib/libcuin.a /usr/andrew/lib/libmssrv.a 
    /usr/andrew/lib/libeli.a /usr/andrew/lib/librxp.a
    /usr/andrew/lib/libmsshr.a 
    /usr/andrew/lib/libmail.a/usr/andrew/lib/liberrors.a 
    /usr/andrew/lib/libutil.a
    dofix:  Undefined:  _res_search
    dofix:  Undefined:  _dn_skipname
    dofix:  Undefined:  _dn_skipname
    dofix:  Undefined:  _dn_expand
    ....
    doload:  Errors while processing
    doindex: indexing amsn.do ...doload:  Undefined symbol: _res_search
    doload:  Undefined symbol: _dn_skipname
    doload:  Undefined symbol: _dn_expand
    doload:  Undefined symbol: __res
    doload:  Undefined symbol: _res_init
    doload:  Errors while processing
    doindex: NULL entrypoint from amsn.do...program terminated!
    *** Error code 1
    make: Fatal error: Command failed for target `amsn.do'
    Current working
    directory/home/share/src/X11R4/contrib/toolkits/andrew/atkams/mes
    sages/lib

next I defined RESOLVLIB = /usr/lib/libresolv.a but...

    cc -c -I. -I/usr/andrew/include/ams -g
    -Bstatic-I/usr/andrew/include/atk -I/usr/andrew/include
    -I//usr/include/X11   stubs.c
    /usr/andrew/bin/makedo -g -d /usr/andrew/lib -b /usr/andrew/bin
    -o amsn.do amsn.o stubs.o  /usr/andrew/lib/libcui.a
    /usr/andrew/lib/libcuin.a /usr/andrew/lib/libmssrv.a 
    /usr/andrew/lib/libeli.a /usr/andrew/lib/librxp.a
    /usr/andrew/lib/libmsshr.a 
    /usr/andrew/lib/libmail.a/usr/andrew/lib/liberrors.a 
    /usr/andrew/lib/libutil.a /usr/lib/libresolv.a
    dofix:  Relocatable symbol value (send.o = 675216, type 4)
    dofix:  Relocatable symbol value (send.o = 675216, type 4)
    dofix:  Relocatable symbol value (send.o = 675216, type 4)
    dofix:  Relocatable symbol value (send.o = 675216, type 4)
    dofix:  Relocatable symbol value (_MS_PrefetchMessage = 202968, type 4)
    dofix:  Relocatable symbol value (_MS_PrefetchMessage = 202968, type 4)
    dofix:  Relocatable symbol value (_amsn__CUI_RewriteHeaderLine =
    3028, type 4)
    dofix:  Relocatable symbol value (_MS_GetSearchPathEntry =
    107312, type 4)
    dofix:  Relocatable symbol value (_MS_PrefetchMessage = 202968, type 4)
    dofix:  Relocatable symbol value (_MS_PrefetchMessage = 202968, type 4)
    dofix:  Relocatable symbol value (_amsn__CUI_RewriteHeaderLine =
    3028, type 4)
    dofix:  Relocatable symbol value (/usr/lib/libresolv.a.L309 =
    827966, type 6)
    dofix:  Relocatable symbol value (/usr/lib/libresolv.a.L309 =
    827966, type 6)
    dofix:  Relocatable symbol value (_MS_PrefetchMessage = 202968, type 4)
    ...
    dofix:  Relocatable symbol value (_eliyybgin = 792892, type 6)
    doload:  Errors while processing
    doindex: indexing amsn.do ...Segmentation fault (core dumped)
    *** Error code 11
    make: Fatal error: Command failed for target `amsn.do'
    Current working
    directory/home/share/src/X11R4/contrib/toolkits/andrew/atkams/mes
    sages/lib


but then I tried to undefine RESOLVER_ENV and RESOLVLIBempty...

    cc -g -Bstatic -I/usr/andrew/include/atk
    -I/usr/andrew/include-I//usr/include/X11   -o cuin  cui.o
    cuifns.o unixmach.o morprntf.o /usr/andrew/lib/libcui.a
    /usr/andrew/lib/libcuin.a /usr/andrew/lib/libmssrv.a
    /usr/andrew/lib/libmsshr.a /usr/andrew/lib/libeli.a
    /usr/andrew/lib/librxp.a 
    /usr/andrew/lib/libmail.a/usr/andrew/lib/liberrors.a 
    /usr/andrew/lib/libmalloc.a/usr/andrew/lib/libutil.a
    Undefined
    _dn_expand
    _res_init
    __res
    _dn_skipname
    _res_search
    /lib/libc.a(stricmp.o): _strnicmp: multiply defined
    *** Error code 2
    make: Fatal error: Command failed for target `cuin'
    Current working
    directory/home/share/src/X11R4/contrib/toolkits/andrew/ams/msclie
    nts/cui

Please can someone give me another hint? (configuration: SS1+
sunos4.1X11R4PL14 andrewPL7)

Thanks




P. Verhaeghe
University of Antwerp, RUCA
Algebra / Geometry
Groenenborgerlaan 171
B-2020 Antwerpen, Belgium


Tel: +32 3 2180308
Fax: +32 3 2180217
Telex: RUCABI 33362

E-mail: pive@banruc01.bitnet (or pive@ccu.uia.ac.be)

chet@GNU.INS.CWRU.EDU (Chet Ramey) (10/05/90)

> Although a true statement, my comment is sort of silly.  The real
> problem turns out to be that /usr/lib/yaccpar differs on different
> machines so the state saving code in Ness cannot do recursive
> compilations.  A recursive compilation is required in present.n, the
> ness program that is run as part of the build process.

I ran into the problem of yacc not generating reentrant parsers when
fixing several recursive parsing problems with bash (the Gnu Bourne-Again
SHell).

This is a generic problem with the version of yacc present in the System V.3
release.  Vendors that have simply picked up this version of yacc, like Sun
for SunOS 4.x, have the same problem.  Some vendors, HP for instance, have
fixed their versions and made yacc reentrant once again.  4.2 BSD and 4.3 BSD
yaccs do not have this problem.  Bison does not have this problem.  I haven't
yet checked out byacc (I use Bison), but it may well allow recursive parses
too.

Chet Ramey

--
Chet Ramey			``As I recall, Doug was keen on boxing.  But
Network Services Group		  when he learned to walk, he took up puttin'
Case Western Reserve University	  the boot in the groin.''
chet@ins.CWRU.Edu

guy@auspex.auspex.com (Guy Harris) (10/13/90)

>As Andrew uses its own dynamic loading you'll get into great trouble if
>another dynamic loader gets in your way.

Gee, I've been able to run Andrew applications linked dynamically not
only against "libc" but against "libX11" as well.

The two dynamic loaders don't have to get in each other's way (although
a version of the "class" dynamic loader for 4.1 that uses "dlopen()",
"dlsym()", etc. would be useful - and would probably get you 99% or more
of the way towards one for System V Release 4, and obviate the need to
crack ELF files).

gk5g+@ANDREW.CMU.EDU (Gary Keim) (10/24/90)

Excerpts from internet.info-andrew: 5-Oct-90 Re: Still no luck trying
to.. pive%BANRUC01.BITNET@vma (4797+0)

> but then I tried to undefine RESOLVER_ENV and RESOLVLIB empty...

>     cc -g -Bstatic -I/usr/andrew/include/atk -I/usr/andrew/include
>     -I//usr/include/X11   -o cuin  cui.o cuifns.o unixmach.o
>     morprntf.o  /usr/andrew/lib/libcui.a /usr/andrew/lib/libcuin.a 
>     /usr/andrew/lib/libmssrv.a /usr/andrew/lib/libmsshr.a 
>     /usr/andrew/lib/libeli.a /usr/andrew/lib/librxp.a 
>     /usr/andrew/lib/libmail.a /usr/andrew/lib/liberrors.a 
>     /usr/andrew/lib/libmalloc.a /usr/andrew/lib/libutil.a
>     Undefined
>     _dn_expand
>     _res_init
>     __res
>     _dn_skipname
>     _res_search
>     /lib/libc.a(stricmp.o): _strnicmp: multiply defined
>     *** Error code 2
>     make: Fatal error: Command failed for target `cuin'

I have no idea what the problem is with linking against libresolv.a
under SunOS4.1.  Some people can do it, other can't.  The failure with
makedo reporting that there are "relocatable symbols" is beyond me. 
It's a mystery.  

The above problem I can handle.  Undefine RESOLVER_ENV in site.h.  In
site.mcr set RESOLVLIB to the empty string.   Clean the Andrew tree
(make Clean).  Start the build process over.  It appears from the errors
above that the libmail.a used was the one linked against libresolv.a. If
this problem reccurs, find out what module has the undefined symbols by
running nm(1).  

Gary Keim
ATK Group

pive@BANRUC01.BITNET (10/24/90)

Still problems...
This is what I did (configuration: SS1+ sunos 4.1 X11R4.14-andrew.7):
    cd ..../andrew
    make Clean
    imake  -I.  -I./config  -Timake.tmpl  -s Makefile  -DTOPDIR=.
    make Makefiles
    vi andrew/atk/ness/Makefile  (hacked it is so make doesn't make demos)
    make dependInstall

with the following site.* files:
    /* Empty site.h file.  Use this file to hold all */
    /* your site's changes to allsys.h and system.h. */
    #define CONTRIB_ENV     1
    #define MK_BASIC_UTILS  1
    #define MK_AUX_UTILS    1
    #define MK_AUX_INSETS   1
    #define MK_AUTHORING    1
    #undef  LINKINSTALL_ENV
    #undef    RESOLVER_ENV

    /* Empty site.mcr file.  Use this file to hold all */
    /* your site's changes to allsys.mcr and system.mcr. */
    XUTILDIR = /usr/bin/X11
    /*RESOLVLIB = /usr/lib/libresolv.a*/
    CDEBUGFLAGS=-g -Bstatic
    MAKEDOFLAGS = -g -d ${BASEDIR}/lib -b ${BASEDIR}/bin

but this is what I get:
    cc -g -Bstatic -I/usr/andrew/include/atk
    -I/usr/andrew/include-I//usr/include/X11   -o cuin  cui.o cuifns.o
    unixmach.o morprntf.o /usr/andrew/lib/libcui.a
    /usr/andrew/lib/libcuin.a /usr/andrew/lib/libmssrv.a
    /usr/andrew/lib/libmsshr.a /usr/andrew/lib/libeli.a
    /usr/andrew/lib/librxp.a 
    /usr/andrew/lib/libmail.a/usr/andrew/lib/liberrors.a 
    /usr/andrew/lib/libmalloc.a/usr/andrew/lib/libutil.a
    ld: /lib/libc.a(stricmp.o): _strnicmp: multiply defined
    *** Error code 2
    make: Fatal error: Command failed for target `cuin'
    Current working
    directory/home/share/src/X11R4/contrib/toolkits/andrew/ams/msclients/
    cui

I used nm in *.o files end _strnicmp is defined in cui.o and cuifns.o,
butsince I don't know how to fix this problem, can someone help met
please?

Thank you


P. Verhaeghe
University of Antwerp, RUCA
Algebra / Geometry
Groenenborgerlaan 171
B-2020 Antwerpen, Belgium


Tel: +32 3 2180308
Fax: +32 3 2180217
Telex: RUCABI 33362

E-mail: pive@banruc01.bitnet (or pive@ccu.uia.ac.be)

ghoti+@ANDREW.CMU.EDU (Adam Stoller) (10/24/90)

I have no idea what the strnicmp function in your libc is supposed to do
- but looking at the function in ams/msclients/cui/cuifns.c - it appears
to be one of several of the attempts in the toolkit to do a
case-insensitive string comparison.

If your system's strnicmp function does this too - and accepts three
arguments: char *s1, char *s2, int len -- then I suggest you try
commenting out the function in cuifns.c -- something like:

#ifndef SS1_ENV /* I don't know what your sys-flags are - this is ONLY
an EXAMPLE */
strnicmp(s1, s2, len)
char *s1, *s2;
int len;
{
.....
}
#endif

And then try to recompile.

IF THIS WORKS -- send mail to info-andrew-bugs@andrew.cmu.edu to let
them know (a) that it is needed, and (b) what sys-type flag needs to be
used. (Alternatively, on this end - a different function name could be
used - especially if the function already exists in libutil.a -- i.e.
lc_strncmp)

IF THIS DOES NOT WORK -- post again with an update of the problems.


Hope this helps....


--fish