Problem building 5.2 for m68k-elf on Solaris

Rude, Randy [Cont]
Mon Jun 10 14:02:00 GMT 2002

> Has anyone else seen this?
> $ ../gdb-5.2/config.guess
> sparc-sun-solaris2.8
> $ ../gdb-5.2/configure --target=m68k-elf
> [snip]
> $ make
> [snip]
> gcc -c -g -O2  -I/usr/include/v9  -I. -I../../gdb-5.2/gdb
> -I../../gdb-5.2/gdb/config -DHAVE_CONFIG_H
> -I../../gdb-5.2/gdb/../include/opcode 
> -I../../gdb-5.2/gdb/../readline/..
> -I../bfd -I../../gdb-5.2/gdb/../bfd  -I../../gdb-5.2/gdb/../include
> -I../intl -I../../gdb-5.2/gdb/../intl  -DMI_OUT=1 -DUI_OUT=1 
> -Wimplicit
> -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses 
> -Wpointer-arith
> -Wuninitialized  ../../gdb-5.2/gdb/ser-unix.c
> In file included from /usr/include/netinet/in.h:41,
>                  from /usr/include/sys/socket.h:200,
>                  from ../../gdb-5.2/gdb/ser-unix.c:29:
> /usr/include/sys/stream.h:327: redefinition of `struct bcache'
> gmake[1]: *** [ser-unix.o] Error 1
> Randy

This is a namespace conflict.  The Solaris stream.h defines struct bcache
which is also defined by GDB in bcache.h; the latter is being included
unnecessarily in the files ser-unix.c, ser-pipe.c, and ser-tcp.c.

I was able to get the m68k-elf target to build by adding:

#define BCACHE_H 1

at the top of each of these files.  Not that I'd submit that as a patch ;-)
but this allows me to build native Solaris and m68k-elf targets.

Hopefully someone more familiar with the code can come up with a more
elegant solution?


More information about the Gdb mailing list