Mercurial > flash_v2
diff packages/services/loader/current/cdl/loader.cdl @ 184:022f1e506033
Merge from eCos master repository on 2001-10-02-17:59:22-BST
| author | jlarmour |
|---|---|
| date | Tue, 02 Oct 2001 18:28:24 +0000 |
| parents | |
| children | e0c0827131d1 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/services/loader/current/cdl/loader.cdl @@ -0,0 +1,236 @@ +# ==================================================================== +# +# loader.cdl +# +# Dynamic loader configuration data +# +# ==================================================================== +#####COPYRIGHTBEGIN#### +# +# ------------------------------------------- +# The contents of this file are subject to the Red Hat eCos Public License +# Version 1.1 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.redhat.com/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations under +# the License. +# +# The Original Code is eCos - Embedded Configurable Operating System, +# released September 30, 1998. +# +# The Initial Developer of the Original Code is Red Hat. +# Portions created by Red Hat are +# Copyright (C) 1998, 1999, 2000 Red Hat, Inc. +# All Rights Reserved. +# ------------------------------------------- +# +#####COPYRIGHTEND#### +# ==================================================================== +######DESCRIPTIONBEGIN#### +# +# Author(s): nickg +# Contributors: +# Date: 2000-11-20 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + +cdl_package CYGPKG_LOADER { + display "Dynamic loader" + description " + This package provides support for dynamic code loading." + include_dir cyg/loader + compile loader.cxx dload.cxx + + requires { CYGBLD_ISO_DLFCN_HEADER == "<cyg/loader/dlfcn.h>" } + implements CYGINT_ISO_DLFCN + +# ==================================================================== + + cdl_component CYGPKG_LOADER_OPTIONS { + display "Common memory allocator package build options" + flavor none + no_define + description " + Package specific build options including control over + compiler flags used only in building this package, + and details of which tests are built." + + cdl_option CYGPKG_LOADER_CFLAGS_ADD { + display "Additional compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building this package. These flags are used in addition + to the set of global flags." + } + + cdl_option CYGPKG_LOADER_CFLAGS_REMOVE { + display "Suppressed compiler flags" + flavor data + no_define + default_value { "-O2 -fvtable-gc" } + description " + This option modifies the set of compiler flags for + building this package. These flags are removed from + the set of global flags if present." + } + + cdl_option CYGPKG_LOADER_LDFLAGS_ADD { + display "Additional compiler flags" + flavor data + no_define +# default_value { "-L$(PREFIX)/lib -ldlforce" } + default_value { "" } + description " + This option modifies the set of compiler flags for + building this package. These flags are used in addition + to the set of global flags." + } + + cdl_option CYGPKG_LOADER_LDFLAGS_REMOVE { + display "Suppressed compiler flags" + flavor data + no_define + default_value { "-Wl,-static -Wl,--gc-sections" } + description " + This option modifies the set of compiler flags for + building this package. These flags are removed from + the set of global flags if present." + } + + } + +# ==================================================================== +# Dynamic library build options + + cdl_option CYGBLD_LOADER_DYNAMIC_LD { + display "Build linker script for dynamic libraries" + flavor bool + default_value 1 + description "Build a linker script for creating dynamic libraries" + + make -priority 50 { + <PREFIX>/lib/dynamic.ld: <PACKAGE>/src/dynamic.ld + $(CC) -E -P -Wp,-MD,dynamic.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) $(CFLAGS) -o $@ $< + @echo $@ ": \\" > $(notdir $@).deps + @tail +2 dynamic.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm dynamic.tmp + + } + } + + cdl_option CYGBLD_LOADER_CRTBEGINS { + display "Build special crtbeginS.o for dynamic libraries" + flavor bool + default_value 1 + + make -priority 110 { + <PREFIX>/lib/crtbeginS.o : <PACKAGE>/src/crtbeginS.c + $(CC) -Wp,-MD,crtbeginS.tmp $(INCLUDE_PATH) -g0 -Wall -finhibit-size-directive -fno-inline-functions -fno-exceptions -c -o $@ $< + @echo $@ ": \\" > $(notdir $@).deps + @tail +2 crtbeginS.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm crtbeginS.tmp + } + } + + cdl_option CYGBLD_LOADER_CRTENDS { + display "Build special crtendS.o for dynamic libraries" + flavor bool + default_value 1 + + make -priority 110 { + <PREFIX>/lib/crtendS.o : <PACKAGE>/src/crtendS.c + $(CC) -Wp,-MD,crtendS.tmp $(INCLUDE_PATH) -g0 -Wall -finhibit-size-directive -fno-inline-functions -fno-exceptions -c -o $@ $< + @echo $@ ": \\" > $(notdir $@).deps + @tail +2 crtendS.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm crtendS.tmp + } + } + + cdl_option CYGBLD_LOADER_DLFORCE_LIB { + display "Build dynamic load library" + flavor bool + default_value 1 + description "Build a shared library that is to be linked with the executable + to force it to be built in such a way that it is suitable for + having some other shared library load against it. This is the + most portable way of achieving this." + + make -priority 160 { + <PREFIX>/lib/libdlforce.so : <PACKAGE>/src/dlforce.c + $(CC) $(CFLAGS) -Wp,-MD,dlforce.tmp $(INCLUDE_PATH) -shared -c -o src/dlforce.o $< + $(CC) -g -nostdlib -L$(PREFIX)/lib -shared -Tdynamic.ld -o $@ $(PREFIX)/lib/crtbeginS.o src/dlforce.o $(PREFIX)/lib/crtendS.o + @echo $@ ": \\" > $(notdir $@).deps + @tail +2 dlforce.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm dlforce.tmp + } + } + +# ==================================================================== +# Tests + + + cdl_option CYGBLD_LOADER_TEST_FOO_LIB { + display "Build a dynamic load library" + flavor bool + default_value 1 + description "Build a shared library for testing." + + make { + tests/libfoo.so : <PACKAGE>/tests/foo.c + mkdir -p tests + $(CC) $(CFLAGS) -Wp,-MD,foo.tmp $(INCLUDE_PATH) -shared -c -o tests/foo.o $< + $(CC) $(LDFLAGS) -L$(PREFIX)/lib -shared -Tdynamic.ld -o $@ $(PREFIX)/lib/crtbeginS.o tests/foo.o $(PREFIX)/lib/crtendS.o + @echo $@ ": \\" > $(notdir $@).deps + @tail +2 foo.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm foo.tmp + cc -o entable $(REPOSITORY)/$(PACKAGE)/tests/entable.c + ./entable libfoo <tests/libfoo.so >tests/libfoo.so.c + } + } + + cdl_option CYGBLD_LOADER_TEST_LOADFOO { + display "Build library load test program" + flavor bool + default_value 1 + description "Build a test program that will load the test shared library" + + make { + <PREFIX>/tests/services/loader/current/tests/loadfoo : <PACKAGE>/tests/loadfoo.cxx + mkdir -p $(PREFIX)/tests/services/loader/current/tests + $(CC) $(CFLAGS) -Wp,-MD,loadfoo.tmp $(INCLUDE_PATH) -c -o tests/loadfoo.o $< +# $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -ldlforce -o $@ $(PREFIX)/lib/crtbeginS.o tests/loadfoo.o $(PREFIX)/lib/crtendS.o + $(CC) $(LDFLAGS) -Wl,-E -L$(PREFIX)/lib -Ttarget.ld -ldlforce -o $@ tests/loadfoo.o + @echo $@ ": \\" > $(notdir $@).deps + @tail +2 loadfoo.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm loadfoo.tmp + + } + } + +# cdl_option CYGPKG_LOADER_TESTS { +# display "Tests" +# flavor data +# no_define +# calculated { "tests/loadfoo" } +# description " +# This option specifies the set of tests for this package." +# } + +} + +# ==================================================================== +# EOF loader.cdl
