[OpenBIOS] fword and feval

Blue Swirl blauwirbel at gmail.com
Thu Aug 19 20:41:11 CEST 2010


On Thu, Aug 19, 2010 at 4:52 PM, Programmingkid
<programmingkidx at gmail.com> wrote:
> I am trying to use the fword and feval functions in the file "kernel/forth.c". I know the header file for these functions are located in "include/libopenbios/bindings.h". I used this code to include the bindings.h file:
>
> #include "libopenbios/bindings.h"
>
> For some reason, I still see these errors:
>
> Building OpenBIOS for x86
> Building...error:
>  HOSTCC host/kernel/bootstrap.o
>  HOSTCC host/kernel/dict.o
>  HOSTCC host/kernel/primitives.o
>  HOSTCC host/kernel/stack.o
>  HOSTCC forthstrap
> host/kernel/primitives.o: In function `setupLocalDictionary':
> /home/user/Development/openbios-devel/obj-x86/../kernel/forth.c:1035: undefined reference to `_fword'
> /home/user/Development/openbios-devel/obj-x86/../kernel/forth.c:1037: undefined reference to `_fword'
> /home/user/Development/openbios-devel/obj-x86/../kernel/forth.c:1044: undefined reference to `feval'
> /home/user/Development/openbios-devel/obj-x86/../kernel/forth.c:1045: undefined reference to `feval'
> host/kernel/primitives.o: In function `loadLocalVariable':
> /home/user/Development/openbios-devel/obj-x86/../kernel/forth.c:1072: undefined reference to `feval'
> collect2: ld returned 1 exit status
> make[1]: *** [forthstrap] Error 1
> make[1]: Leaving directory `/home/user/Development/openbios-devel/obj-x86'
> make: *** [build] Error 1
>
>
> This is a simple function someone could use as an example to be used in the file forth.c
>
> static void test(void)
> {
>        feval("banner");
> }
>
> Anyone know what I am doing wrong or how to solve this problem?

You are using the bootstrap compiler, which has only very limited set
of basic Forth words defined and actually even some of those will not
work during bootstrap time.

Full set of words like 'feval' is available when the library compiled
by bootstrap compiler is loaded into non-bootstrap kernel. Your
example should compile in arch/x86/openbios.c or arch/unix/unix.c.



More information about the OpenBIOS mailing list