build system cannot find defs of L4_Notify() and L4_WaitNotify()

2 messages Options
Embed this post
Permalink
Sergio Ruocco

build system cannot find defs of L4_Notify() and L4_WaitNotify()

Reply Threaded More More options
Print post
Permalink

I am adapting an old (pre-1.0) Iguana application which uses L4_Notify()
and L4_WaitNotify().

When I build my project for gumstix (ARM-based) platform using:

$ tools/build.py machine=gumstix project=iguana PYFREEZE=False
example=demotr-hg

the OKL4 v3.0 build system complains that it cannot find the definitions
of the two functions anywhere:

....
        iguana/example/demotr-hg/src/action.c:370: undefined reference to
`L4_Notify'
        iguana/example/demotr-hg/src/strategist.h:76: undefined reference to
`L4_WaitNotify'
....


Thus, in the relevant source file(s) of my project I included a
subset/all of these:

#include <l4/ipc.h>
#include <l4/thread.h>
#include <syscalls.h>
#include <arch/syscalls.h>
#include <l4/arch/syscalls.h>

which refer directly or indirectly to:

        arch/arm/libs/l4/include/syscalls.h

where the two "missing" functions are declared, but the build still
fails with the errors above.

Any suggestions ?

Thanks,

                Sergio



_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Sergio Ruocco

Re: build system cannot find defs of L4_Notify() and L4_WaitNotify() -- short term fix found

Reply Threaded More More options
Print post
Permalink

I found a short-term fix: I ripped out some python code from:

        okl4_3.0/libs/okl4/SConscript

which adds the relevant "okl4_3.0/arch/..." directories to the source
path sued to build my own Iguana 'example' application, as it is shown
below:


#-------------- this is my foobar app SConscript ------------

Import("*")

#-------------- start ripped code
import os

# Get SRC directory
src_root = Dir('#').srcnode().abspath

# Check architecture exists
arch = env.machine.arch
arch_path = os.path.join('arch', arch, args['package'])

possible_arch_path = os.path.join("cust", args["cust"], "arch", arch,
args["package"])
if os.path.exists(os.path.join(src_root, possible_arch_path)):
    arch_path = possible_arch_path

if not os.path.exists(os.path.join(src_root, arch_path)):
    print "demotr: architecture %s is not yet supported by libokl4." %
(arch)
arch_path = "#" + arch_path

source = [ arch_path + "/src/*.c", arch_path + "/src/*.spp" ]
#-------------- end ripped code

obj = env.KengeProgram("foobar", source=source, LIBS=["mutex", "c",
"iguana", "gcc"])
cell.add_program(obj)
env.expect_test_data = []
Return("obj")
#--------------

and now the build finds the two functions (although it breaks shortly
afterward because other 'missing' functions, but that should be fixable
in a similar way...).


Anyway, I think that the two L4 functions:

        L4_Notify() and L4_WaitNotify()

should be made available to normal programs even without specifying the
machine-specific "arch/" include directory in the build script.

        Sergio


Sergio Ruocco wrote:

> I am adapting an old (pre-1.0) Iguana application which uses L4_Notify()
> and L4_WaitNotify().
>
> When I build my project for gumstix (ARM-based) platform using:
>
> $ tools/build.py machine=gumstix project=iguana PYFREEZE=False
> example=demotr-hg
>
> the OKL4 v3.0 build system complains that it cannot find the definitions
> of the two functions anywhere:
>
> ....
> iguana/example/demotr-hg/src/action.c:370: undefined reference to
> `L4_Notify'
> iguana/example/demotr-hg/src/strategist.h:76: undefined reference to
> `L4_WaitNotify'
> ....
>
>
> Thus, in the relevant source file(s) of my project I included a
> subset/all of these:
>
> #include <l4/ipc.h>
> #include <l4/thread.h>
> #include <syscalls.h>
> #include <arch/syscalls.h>
> #include <l4/arch/syscalls.h>
>
> which refer directly or indirectly to:
>
> arch/arm/libs/l4/include/syscalls.h
>
> where the two "missing" functions are declared, but the build still
> fails with the errors above.
>
> Any suggestions ?
>
> Thanks,
>
> Sergio
>
>
>


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer