[comp.unix.sysv386] Need Help Building gdb on SCO 3.2.2

gregk@uunet.uu.net (Greg Kincade) (06/19/91)

I ftped the gdb-3.5 from prep.ai.mit.edu and loaded it on my
Compaq 486 running SCO Unix 3.2.2. The 'README' file says to
type, "config.gdb" to get a list of valid machine types. From
that list I chose "i386-sv32".  
After typing "config.gdb i386-sv32",and after the script echoes 
"Editing Makefile", it (cpp?) responds with the following:

tmp.c(229) : error C21412: ellipsis requires three periods
tmp.c(231) : error C21412: ellipsis requires three periods
tmp.c(231) : error C21412: ellipsis requires three periods
tmp.c(267) : error C2018: unknown character '0x40'
GDB is now set up for use with a i386-sv32.

>From looking at config.gdb,it looks like tmp.c is a tmp copy 
of Makefile.dist and the line(s) that is causing my pain is
as follows:

$(CC) -E >Makefile tmp.c $(MD) "-MD_MAKEDEFINE=$(MD)"
-rm tmp.c

I tried to press on by hacking the resultant Makefile and finally
got everything to compile.Then I tried to run gdb on itself,but I
get:

Invalid symbol data: .bf/ .ef/ .bb/ .eb symbol mismatch, at symbol
12722.
Setting up the environment for debugging gdb.
Function fatal not defined.

Would someone please help? 
Thanx

rbraun@spdcc.COM (Rich Braun) (06/25/91)

I didn't have the problem you report when compiling gdb under 3.2.2,
but I did find that it requires read access to /bin/sh.  Once you've
gotten it to compile and run, you'll run into this.  A helpful followup
to my appeal for help in this newsgroup suggested the following
solution:  cp /bin/sh /usr/local/lib/gdb-sh ; chmod 755 /usr/local/lib/
gdb-sh.  Also, you have to change the shell's path name in one of the
gdb source files from /bin/sh to the new one you created.  (I put it
in /usr/local because that's an NFS-exported filesystem which any
workstation user can access.)

-rich

sef@kithrup.COM (Sean Eric Fagan) (06/26/91)

In article <8062@spdcc.SPDCC.COM> rbraun@spdcc.COM (Rich Braun) writes:
>I didn't have the problem you report when compiling gdb under 3.2.2,

The problem is that an ANSI-conformant C preprocessor (as msc has [well,
mostly 8-)]) cannot deal with a Makefile as input.  Why?  Because it is not
valid C.

In config.gdb, if it has 'cc -E', replace it with '/lib/cpp [...]'; that
should do the trick.  Or use rcc instead of cc.

Also, as was pointed out, /bin/sh (or $SHELL; I forget which one is checked
first) needs to be readable.

-- 
Sean Eric Fagan  | "What *does* that 33 do?  I have no idea."
sef@kithrup.COM  |           -- Chris Torek
-----------------+              (torek@ee.lbl.gov)
Any opinions expressed are my own, and generally unpopular with others.