From 41a64fcd236c1d1a3e9b52b19eab9e2bbc08043c Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Thu, 26 Nov 2009 14:21:17 +0530 Subject: [PATCH] Independent compilation of libl4 and libmem working fine. --- conts/libl4/SConscript | 2 -- conts/libl4/SConstruct | 8 ++++++-- conts/libl4/src/thread.c | 2 ++ conts/libmem/SConstruct | 25 +++++++++++++------------ 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/conts/libl4/SConscript b/conts/libl4/SConscript index e30695c..f2490ba 100644 --- a/conts/libl4/SConscript +++ b/conts/libl4/SConscript @@ -54,8 +54,6 @@ def create_symlinks(arch): print cmd os.system(cmd) -# TODO: There are errors in this code that -Werror gives problems with. - #create_symlinks(arch) objects = env.StaticObject(Glob('src/*.c') + Glob('src/' + arch + '/*.[cS]')) library = env.StaticLibrary('l4', objects) diff --git a/conts/libl4/SConstruct b/conts/libl4/SConstruct index e378e5a..8356194 100644 --- a/conts/libl4/SConstruct +++ b/conts/libl4/SConstruct @@ -16,13 +16,17 @@ from config.configuration import * config = configuration_retrieve() arch = config.arch +LIBMEM_RELDIR = 'conts/libmem' +LIBMEM_DIR = join(PROJROOT, LIBMEM_RELDIR) + env = Environment(CC = config.user_toolchain + 'gcc', - CCFLAGS = ['-std=gnu99', '-g', '-nostdlib', '-ffreestanding'], + CCFLAGS = ['-std=gnu99', '-g', '-nostdlib', '-ffreestanding', '-Werror'], LINKFLAGS = ['-nostdlib'], ASFLAGS = ['-D__ASSEMBLY__'], ENV = {'PATH' : os.environ['PATH']}, LIBS = 'gcc', - CPPPATH = ['#include', '#include/l4lib/arch', join(PROJROOT,'include')]) + CPPPATH = ['#include', '#include/l4lib/arch', join(PROJROOT,'include'), \ + LIBMEM_DIR]) # TODO: There are errors in this code that -Werror gives problems with. diff --git a/conts/libl4/src/thread.c b/conts/libl4/src/thread.c index 78ee0ba..256589d 100644 --- a/conts/libl4/src/thread.c +++ b/conts/libl4/src/thread.c @@ -22,6 +22,8 @@ extern unsigned long lib_utcb_range_size; /* Static variable definitions */ struct l4_mutex lib_mutex; +extern void global_add_task(struct l4lib_tcb *task); + /* Function definitions */ int l4_thread_create(struct task_ids *ids, unsigned int flags, int (*func)(void *), void *arg) diff --git a/conts/libmem/SConstruct b/conts/libmem/SConstruct index f6b5732..7636a63 100644 --- a/conts/libmem/SConstruct +++ b/conts/libmem/SConstruct @@ -2,23 +2,19 @@ # Copyright (C) 2007 Bahadir Balban # -import os -import glob -import sys +import os, glob, sys from os.path import join from string import split -from configure import * +PROJRELROOT = '../..' +sys.path.append(PROJRELROOT) + +from configure import * config = configuration_retrieve() -project_root = "../.." -headers_root = join(project_root, "include/l4") +headers_root = join(PROJRELROOT, "include/l4") config_h = join(headers_root, "config.h") -#libl4 paths -libl4_headers = join(project_root, "tasks/libl4/include") -libl4_libpath = join(project_root, "tasks/libl4") - mm = "mm" kmalloc = "kmalloc" memcache = "memcache" @@ -29,19 +25,24 @@ kmalloc_dir = kmalloc memcache_dir = memcache tests_dir = tests +LIBL4_RELDIR = 'conts/libl4' +LIBL4_DIR = join(PROJROOT, LIBL4_RELDIR) +LIBL4_INCLUDE = join(LIBL4_DIR, 'include') +LIBL4_LIBPATH = join(BUILDDIR, LIBL4_RELDIR) + test_env = Environment(CC = 'gcc -m32', CCFLAGS = ['-g', '-std=gnu99', '-Wall', '-Werror'], ENV = {'PATH' : os.environ['PATH']}, LIBS = ['gcc', 'mm', 'km', 'mc'], LIBPATH = ['#'], - CPPPATH = ['#include', join(project_root, "include"), "#", libl4_headers]) + CPPPATH = ['#include', join(PROJRELROOT, "include"), "#", LIBL4_INCLUDE]) env = Environment(CC = config.user_toolchain + 'gcc', CCFLAGS = ['-g', '-nostdlib', '-Wall', '-Werror', '-ffreestanding', '-std=gnu99'], LINKFLAGS = ['-nostdlib'], ENV = {'PATH' : os.environ['PATH']}, LIBS = 'gcc', - CPPPATH = [join(project_root, "include"), "#", libl4_headers]) + CPPPATH = [join(PROJRELROOT, "include"), "#", LIBL4_INCLUDE]) if os.path.exists(config_h) is False: print "\nThis build requires a valid kernel configuration header."