i386 bsp issues

lange92 at 2067.resnet.uni.edu lange92 at 2067.resnet.uni.edu
Thu Aug 2 11:02:07 UTC 2001



On 2 Aug 2001, Ralf Corsepius wrote:

> Am 02 Aug 2001 04:04:38 -0500 schrieb lange92 at 2067.resnet.uni.edu:
> >
> >
> > On Thu, 2 Aug 2001, Joel Sherrill wrote:
> >
> > > > ../rtems-4.5.0/configure --target=i386-rtems --enable-posix
> > > > --enable-rtemsbsp="pc386"
> > > > --prefix=/users/lange92/illinoiscentral/build-i386-coff-rtems
> > > >
> > > > compiles further now, but then it bombs out with the following errors:
> >
> > > > ../../../../../../pc386/lib/librtemsall.a(bootcard.o): In function `boot_card':
> > > > bootcard.c:108: undefined reference to `bsp_start'
> >
> > > Look in startup/Makefile* and remove the -DUSE_INIT_FINI
> >
> > This error still remains after making the change. Any ideas on this one?
>
> Could it be possible that you are mixing coff and elf?
>
> --target=i386-rtems => elf
> --prefix=../build-i386-coff-rtems ????

I should have examined the included text more closely. Joel had suggested
that, so I built i386-rtemscoff:

../rtems-4.5.0/configure --target=i386-rtemscoff --enable-posix
--enable-rtemsbsp="pc386"
--prefix=/users/lange92/illinoiscentral/rtems-4.5.0-gnat-3.12p-gcc-2.8.1-rtemscoff-noinitfini

Currently I'm sitting on about 6 different build directories, and each one
complains about the line "bsp_start();" in bootcard.c:108.



I tried it on rtems-4.0.0:

../rtems-4.0.0/configure --target=i386-rtemscoff --enable-posix
--enable-rtemsbsp="pc386"
--prefix=/users/lange92/illinoiscentral/rtems-4.0.0-gnat-3.12p-gcc-2.8.1-rtemscoff

rtems-4.0.0 compiles for a while, then fails:
<rtems-4.0.0>
In file included from: ../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/gethostbydns.c:78:
../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/res_config.h:17:
conflicting types for `gethostname'
/users/lange92/illinoiscentral/rtems-gnat-3.12p-gcc-2.8.1-i386-rtemscoff/i386-rtemscoff/include/sys/unistd.h:87:
previous declaration of `gethostname'
../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/gethostbydns.c:
In function `gethostanswer':
../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/gethostbydns.c:322:
warning: implicit declaration of function `strcasecomp'
../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/gethostbydns.c:405:
warning: implicit declaration of function `bcopy'
../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/gethostbydns.c:
In function `_gethostbydnsaddr':
../../../../../../rtems-4.0.0/c/src/lib/libnetworking/libc/gethostbydns.c:616:
warning: implicit declaration of function `bcmp'
make[5]: *** [o-pc386/gethostbydns.o] Error 1
</rtems-4.0.0>

Actually, I'm pretty sure I'm mixing COFF and ELF here--I was attempting
an rtems-4.0.0 build after the bsp_specs file appeared to be something
similar to the changes I made to 4.5.0 to make it work COFF-style.

My understanding is that i386 is ELF, but Joel pointed out that I need
COFF for gnat-3.12p and gcc-2.8.1.

But I think I got way off on a tangent here. I'm trying to build
rtems-4.5.0; I did the 4.0.0 build only as a quick test.
But the error that I'm staring at is:

<rtems-4.5.0>
../../../../../../pc386/lib/librtemsall.a(bootcard.o): In function `boot_card':
bootcard.c:108: undefined reference to `bsp_start'

Logically, I don't see how any build could succeed here, because there are
no bspstart.h files! Thus there cannot be a "#include <bspstart.h>" or
anything similar... But I don't claim to understand how this all works.

On the other hand, if the bootcard.c can see symbols from bspstart.c
somehow, then perhaps it's the issue about how the compiler is
descriminating between `bsp_start();' and the weak alias `void
bsp_start ( void )' (which I find in i386/pc386/startup/bspstart.c:215).

But again, I'm only guessing. If someone knows the real problem, I'd be
happy to hear it.

Thanks again.

DanL




More information about the users mailing list