[Scons-users] Building Linux Kernel Loadable Modules

Enrique Herrera enriqueh73 at gmail.com
Wed Jan 14 15:42:32 EST 2015


I have a legacy Linux embedded application, that uses Scons has its build
tool. The project only consists of an SConstruct file. I do not have the
luxury of having SConfig.py and Sconscript files within this project. I
have been trying to add a new env.Environment() that will build an
external loadable module of a Linux Kernel 2.4.x driver.

Basically, this is what I need to do this to build the driver:

gcc -Wall -D__KERNEL__ -DMODULE -I/<kernel path>/linux/include
-fno-strict-aliasing -O2 -c -o foo.o foo.c
gcc -Wall -D__KERNEL__ -DMODULE -I/<kernel path>/linux/include
-fno-strict-aliasing -O2 -c -o bar.o bar.c

ld -r foo.o bar.o -o foobar.o


So far, this is what I have in SConstruct to build this driver:

kflags = '-Wall -D__KERNEL__ -DMODULE -I/<kernel path>/linux/include
-fno-strict-aliasing -O2 '
driver_srouce = Split("""
$SRC/driver/foo.c
$SRC/driver/bar.c
""")

env_driver = Environment(CC='gcc',
                         CXX='g++',
                         LD='ld',
                         AR='ar',
                         SRC='/<src path>'
                         )

env_driver.MergeFlags(kflags)
env_driver.VariantDir('build/target','.',duplicate=0)


I do not know what to do after this. I tried to use
env_driver.StaticLibrary().  But i got :

=== Running SCons at 1/14/15 1:22 PM ====
Command line: /usr/local/python/bin/scons-2.3.4 -u --jobs=16
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build/target
gcc -o build/target/foo.o -c -Wall -fno-strict-aliasing -O2 -D__KERNEL__
-DMODULE -I/<path>/<kerne>/<src>/linux/include driver/foo.c
gcc -o build/target/bar.o -c -Wall -fno-strict-aliasing -O2 -D__KERNEL__
-DMODULE -I/<path>/<kerne>/<src>/linux/include driver/bar.c
ar rc "build/target/libfoobar.o " build/target/foo.o build/target/bar.o
ranlib "build/target/libmfoobar.o "
scons: done building targets.
Duration 1127 ms.


That's not what I really want to do. I just need to link the two object
files together. I really do not know how.

I would appreciate any help you might have.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150114/7b7c2d96/attachment.html>


More information about the Scons-users mailing list