--- a/sbsv2/raptor/RELEASE-NOTES.txt Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt Fri Nov 20 21:17:53 2009 +0000
@@ -1,6 +1,20 @@
Release Notes for Symbian Build System v2
+version 2.11.0
+
+New Features:
+Parallel parsing of meta-data
+New keyword APPLY for MMP files
+SAX filter plugin base-class
+
+Defect Fixes:
+DPDEF142895 Raptor does the wrong thing with the ARMFPU keyword
+DPDEF143020 The savespace variant overrides elf2e32's return code
+DPDEF143046 BYTEPAIRCOMPRESSTARGET and INFLATECOMPRESSTARGET not in FLM interface
+Improved error reporting for --check and --what
+
+
version 2.10.2
Defect Fixes:
--- a/sbsv2/raptor/lib/config/arm.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/arm.xml Fri Nov 20 21:17:53 2009 +0000
@@ -65,6 +65,7 @@
<set name="PLATMACROS.CONFIG" value=""/>
<set name="PLATMACROS.VAR" value=""/>
<set name="PLATMACROS.TOOLCHAIN" value=""/>
+ <set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/>
</var>
<var name="v5">
<set name="TRADITIONAL_PLATFORM" value="ARMV5"/>
@@ -72,7 +73,8 @@
<set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/>
<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV5)"/>
<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV5)"/>
- <set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
+ <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
+ <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
<set name="GENERATE_ABIV1_IMPLIBS" value="$(SUPPORTS_ABIV1_IMPLIBS)"/>
</var>
<var name="v6">
@@ -84,7 +86,8 @@
<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV6)"/>
<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV6)"/>
<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
- <set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
+ <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
+ <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
</var>
<var name="v7">
<set name="TRADITIONAL_PLATFORM" value="ARMV7"/>
@@ -94,7 +97,8 @@
<set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV7)"/>
<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV7)"/>
- <set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/>
+ <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/>
+ <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV3)"/>
</var>
<var name="9e" extends="v5">
<set name="VARIANTPLATFORM" value="arm9e"/>
--- a/sbsv2/raptor/lib/config/gcce.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/gcce.xml Fri Nov 20 21:17:53 2009 +0000
@@ -57,8 +57,8 @@
<append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __GCCE__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
<!-- Note that the intention of ABLD for CIA compilation seems to be "-S -Wa,-adln", although this doesn't work -->
<set name="COMPILER_CIA_FLAGS" value="-marm"/>
- <set name="COMPILER_DEFINES" value="-D__GCCE__"/>
- <set name="COMPILER_FPU_FLAGS" value="$(CC.OPT.SOFTVFP_MAYBE_VFPV2)$(CC.VAL.SOFTVFP_MAYBE_VFPV2)"/>
+ <set name="COMPILER_DEFINES" value="-D__GCCE__"/>
+ <set name="COMPILER_FPU_OPTION" value="-mfloat-abi="/>
<set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
<set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-I"/>
<set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
--- a/sbsv2/raptor/lib/config/rvct.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/rvct.xml Fri Nov 20 21:17:53 2009 +0000
@@ -54,7 +54,7 @@
<set name="CIADEFS" value="__CIA__"/>
<append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __ARMCC__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
<set name="COMPILER_CIA_FLAGS" value=""/>
- <set name="COMPILER_FPU_FLAGS" value="--fpu $(ARMFPU)"/>
+ <set name="COMPILER_FPU_OPTION" value="--fpu "/>
<set name="COMPILER_DEFINES" value=""/>
<set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
<set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/>
--- a/sbsv2/raptor/lib/config/variants.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/variants.xml Fri Nov 20 21:17:53 2009 +0000
@@ -86,13 +86,12 @@
<set name="STATIC_LIBS_LIST" value=""/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
<set name="ARMLIBS" value=""/>
- <set name="CC.OPT.SOFTVFP_MAYBE_VFPV2" value="-m"/>
- <set name="CC.VAL.SOFTVFP_MAYBE_VFPV2" value="soft-float"/>
+ <set name="CC.SOFTVFP_MAYBE_VFPV2" value="soft"/>
+ <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="CC.ARMV5" value="-march=armv5t"/>
<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
<set name="RVCTLIB" value=""/>
<set name="CC.NO_UNALIGNED_ACCESS" value=""/>
- <set name="CC.SOFTVFP_MAYBE_VFPV2" value=""/>
<set name="SPLIT_OPTION" value=""/>
<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
<set name="RVCTBIN" value="" />
@@ -101,29 +100,9 @@
<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
<set name="NEED_ENTRYPOINT_LIBRARY" value="" />
</var>
-
- <var name="gcce4_3_3" extends="gcce_base">
- <env name="GCCEBIN" type="path" />
- <env name="GCCEVERSION" default="$(TOOLCHAINVERSION)" />
+
+ <var name="gcce4_3_3" extends="gcce4_3_2">
<set name="TOOLCHAINVERSION" value="4.3.3" />
- <set name="OWN_LIBRARY_OPTION" value=""/>
- <set name="STATIC_LIBS_LIST" value=""/>
- <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
- <set name="ARMLIBS" value=""/>
- <set name="CC.OPT.SOFTVFP_MAYBE_VFPV2" value="-m"/>
- <set name="CC.VAL.SOFTVFP_MAYBE_VFPV2" value="soft-float"/>
- <set name="CC.ARMV5" value="-march=armv5t"/>
- <set name="RELOCATABLE_IMAGE_OPTION" value=""/>
- <set name="RVCTLIB" value=""/>
- <set name="CC.NO_UNALIGNED_ACCESS" value=""/>
- <set name="CC.SOFTVFP_MAYBE_VFPV2" value=""/>
- <set name="SPLIT_OPTION" value=""/>
- <set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
- <set name="RVCTBIN" value="" />
- <set name="RVCTINC" value="" />
- <set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
- <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
- <set name="NEED_ENTRYPOINT_LIBRARY" value="" />
</var>
<var name="gcce4_4_1" extends="gcce4_3_3">
@@ -153,6 +132,7 @@
<set name="NEED_ENTRYPOINT_LIBRARY" value="False"/>
<set name="CC.NO_UNALIGNED_ACCESS" value="--memaccess -UL41"/>
<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
+ <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="CC.ARMV5" value="--cpu 5T"/>
<set name="CC.ARMV6" value="--cpu 6"/>
</var>
@@ -179,7 +159,9 @@
<set name="NEED_ENTRYPOINT_LIBRARY" value="True"/>
<set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/>
<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
+ <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
+ <set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
<set name="CC.ARMV5" value="--cpu 5TE"/>
<set name="CC.ARMV6" value="--cpu 6"/>
<set name="CC.ARMV7" value="--cpu 7-A"/>
@@ -208,7 +190,10 @@
<set name="NEED_ENTRYPOINT_LIBRARY" value="True"/>
<set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/>
<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp+vfpv2"/>
+ <set name="PL.SOFTVFP_MAYBE_VFPV2" value="vfpv2"/>
<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp+vfpv3"/>
+ <!-- Not supported yet : <set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv3"/> -->
+ <set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv2"/>
<set name="CC.ARMV5" value="--cpu 5TE"/>
<set name="CC.ARMV6" value="--cpu 6"/>
<set name="CC.ARMV7" value="--cpu 7-A"/>
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Fri Nov 20 21:17:53 2009 +0000
@@ -644,7 +644,7 @@
$(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \
$(CPPONLYOPTION) $(INSTRUCTION_SET) \
$(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \
- $(COMPILER_FPU_FLAGS)
+ $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT))
## COMPILE CPP Files #################################################################
@@ -663,7 +663,7 @@
$(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \
$(COMPILE_ONLY_OPTION) $(INSTRUCTION_SET) \
$(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \
- $(COMPILER_FPU_FLAGS)
+ $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT))
ifeq ($(STDCPP),1)
SYSTEMINCLUDE:=$(SYSTEMINCLUDE) $(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(STDCPP_INCLUDE)))
--- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Fri Nov 20 21:17:53 2009 +0000
@@ -89,3 +89,9 @@
OPTION_COMPILER:=$(OPTION_ARMCC)
OPTION_REPLACE_COMPILER:=$(OPTION_REPLACE_ARMCC)
endif
+
+# "ARMFPU" overrides for 'fpu-ness' in compiler and postlinker calls in .mmp files are currently only
+# supported for RVCT-based builds, GCCE builds always make use of the interface defined defaults.
+ifeq ($(TOOLCHAIN),GCCE)
+ ARMFPU:=
+endif
--- a/sbsv2/raptor/lib/flm/e32postlink.mk Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32postlink.mk Fri Nov 20 21:17:53 2009 +0000
@@ -20,9 +20,11 @@
#
# Metadata supplied (or deduced from)
#
-# BYTEPAIRCOMPRESS
+# ARMFPU
+# BYTEPAIRCOMPRESSTARGET
# CAPABILITY
-# DEBUGGABLE Can be "udeb" or "urel" or "udeb urel" or ""
+# COMPRESSTARGET Not directly referenced, at least with the current approach to compression keywords
+# DEBUGGABLE Can be "udeb" or "urel" or "udeb urel" or ""
# E32TARGET
# EPOCALLOWDLLDATA
# EPOCFIXEDPROCESS
@@ -31,8 +33,8 @@
# EPOCPROCESSPRIORITY
# EPOCSTACKSIZE
# EXPORTUNFROZEN
-# INFLATECOMPRESS
-# POSTLINKFPU
+# INFLATECOMPRESSTARGET
+# NOCOMPRESSTARGET
# POSTLINKTARGETTYPE
# SID
# SMPSAFE
@@ -44,12 +46,12 @@
# Other
#
# ARMLIBS
-# AUTOEXPORTS Symbols that must be assumed to exist for this TARGETTYPE in the format: export,ordinal;export,ordinal;..
-# CANIGNORENONCALLABLE If the TARGETTYPE allows it, disregard non-callable exports (v-tables, type information, etc.)
+# AUTOEXPORTS Symbols that must be assumed to exist for this TARGETTYPE in the format: export,ordinal;export,ordinal;..
+# CANIGNORENONCALLABLE If the TARGETTYPE allows it, disregard non-callable exports (v-tables, type information, etc.)
# CANHAVEEXPORTS
# CLEANTARGETS
# ELF2E32
-# EPOCDATALINKADDRESS Redundant?
+# EPOCDATALINKADDRESS Redundant?
# EPOCROOT
# EXPTARGET
# GENERATED_DEFFILE
@@ -58,10 +60,12 @@
# IMPORTLIBRARYREQUIRED
# INTERMEDIATEPATH
# LINKASVERSIONED
-# LINK_TARGET Postlinker elf input
+# LINK_TARGET Postlinker elf input
# NAMEDSYMLKUP
# PAGEDCODE_OPTION
# POSTLINKDEFFILE
+# POSTLINKER_COMPRESSION_DEFAULT Default compression when either COMPRESSTARGET or no compression .mmp keyword is used
+# POSTLINKER_FPU_DEFAULT
# POSTLINKER_SUPPORTS_WDP
# RUNTIME_LIBS_PATH
# SAVESPACE
@@ -93,7 +97,7 @@
--version=$(VERSION) \
--capability=$(FINAL_CAPABILITIES) \
--linkas=$(call dblquote,$(LINKASVERSIONED)) \
- --fpu=$(POSTLINKFPU) \
+ --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \
--targettype=$(POSTLINKTARGETTYPE) \
--output=$$(call dblquote,$$@) \
--elfinput=$(call dblquote,$(LINK_TARGET)) \
@@ -121,11 +125,12 @@
$(if $(POSTLINKER_SUPPORTS_WDP), \
--codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \
$(POSTLINKER_PAGEDOPTION)) \
- $(if $(NOCOMPRESSTARGET), \
- --uncompressed, \
- $(if $(INFLATECOMPRESS),--compressionmethod inflate,$(if $(BYTEPAIRCOMPRESS),--compressionmethod bytepair,))) \
+ $(if $(NOCOMPRESSTARGET),--uncompressed, \
+ $(if $(INFLATECOMPRESSTARGET),--compressionmethod=inflate, \
+ $(if $(BYTEPAIRCOMPRESSTARGET),--compressionmethod=bytepair, \
+ --compressionmethod=$(POSTLINKER_COMPRESSION_DEFAULT)))) \
--libpath="$(call concat,$(PATHSEP)$(CHAR_SEMIC),$(strip $(RUNTIME_LIBS_PATH) $(STATIC_LIBS_PATH)))" \
- $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,;$(GNURM) -rf $(INTERMEDIATEPATH); true)) \
+ $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,&& { $(GNURM) -rf $(INTERMEDIATEPATH); true; })) \
$(call endrule,postlink)
endef
$(eval $(e32postlink))
--- a/sbsv2/raptor/lib/flm/standard.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml Fri Nov 20 21:17:53 2009 +0000
@@ -5,11 +5,12 @@
<param name='ALWAYS_BUILD_AS_ARM' default=''/>
<param name='SET_ARMINC' default=''/>
<param name='ARMLIBS' default=''/>
- <param name='ARMFPU' default='softvfp'/>
- <param name='POSTLINKFPU' default='softvfp'/>
+ <param name='ARMFPU' default=''/>
<param name='ARMRT' default=''/>
+ <param name='BYTEPAIRCOMPRESSTARGET' default=''/>
<param name='TESTPATH' default=''/>
<param name='CAPABILITY'/>
+ <param name='COMPRESSTARGET' default=''/>
<param name='CPPONLYOPTION' default='-E'/>
<param name='LIBRARY'/>
<param name='LIBRARY_DEBUG'/>
@@ -20,6 +21,7 @@
<param name='EXPORTUNFROZEN' default=''/>
<param name='FEEDBACK_OPTION' default='--feedback=' />
<param name='FIRSTLIB' default=''/>
+ <param name='INFLATECOMPRESSTARGET' default=''/>
<param name='LINKEROPTION_ARMCC' default=''/>
<param name='LISTING_OPTION' default='-S'/>
<param name='MMPDEFS' default=''/>
@@ -91,8 +93,9 @@
<param name='CFLAGS'/>
<param name='COMMANDFILE_OPTION'/>
<param name='COMPILE_ONLY_OPTION'/>
+ <param name='COMPILER_FPU_DEFAULT'/>
+ <param name='COMPILER_FPU_OPTION'/>
<param name='COMPILER_CIA_FLAGS'/>
- <param name='COMPILER_FPU_FLAGS'/>
<param name='COMPILER_INTERWORK_DEFINES'/>
<param name='COMPILER_SYSTEM_INCLUDE_OPTION'/>
<param name='COMPILER_THUMB_DEFINES'/>
@@ -144,6 +147,8 @@
<param name='PERL'/>
<param name='PERTURBSTARTTIME'/>
<param name='PERTURBMSECS' default='500'/>
+ <param name='POSTLINKER_COMPRESSION_DEFAULT'/>
+ <param name='POSTLINKER_FPU_DEFAULT'/>
<param name='PREPDEF'/>
<param name='PREINCLUDE'/>
<param name='PREINCLUDE_OPTION'/>
--- a/sbsv2/raptor/lib/flm/win32.flm Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/win32.flm Fri Nov 20 21:17:53 2009 +0000
@@ -243,7 +243,6 @@
ifeq ($(SUPPORTS_IMPORT_LIBRARY),1)
ifneq ($(NOEXPORTLIBRARY),1)
ifneq ($(TARGET_$(call sanitise,$(IMPORTLIBTARGET))),1)
- CLEANTARGETS:=$(CLEANTARGETS) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET))
RELEASABLES:=$(RELEASABLES) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET))
# import libraries are generated to the UDEB release directory
@@ -290,7 +289,6 @@
BINTARGETSTATICLINK:=$(BINDIRSTATICLINK)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
endif
- CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET) $(BINTARGETSTATICLINK)
RELEASABLES:=$(RELEASABLES) $(BINTARGET) $(BINTARGETSTATICLINK)
# work on a local source files list
@@ -463,7 +461,6 @@
# link map file (urel only)
ifeq ($(VARIANTTYPE),urel)
MAP:=$(OPT.MAP)$(BINTARGET).map
- CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET).map
RELEASABLES:=$(RELEASABLES) $(BINTARGET).map
endif
endif
@@ -677,12 +674,11 @@
BATCHFILE_CREATED_$(BATCHDIR)$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH):=1
TARGET_CREATED_$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)_$(TARGET):=1
RELEASABLES:=$(RELEASABLES) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
- CLEANTARGETS:=$(CLEANTARGETS) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
endif
# clean up
-$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
+$(call raptor_clean,$(CLEANTARGETS))
# make the output directories while reading makefile - some build engines prefer this
$(call makepath,$(CREATABLEPATHS))
-# for the abld -what target
-$(eval $(call whatmacro,$(RELEASABLES),WHATWINSCW))
+# for the --what option and the log file
+$(call raptor_release,$(RELEASABLES))
--- a/sbsv2/raptor/python/filter_interface.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/filter_interface.py Fri Nov 20 21:17:53 2009 +0000
@@ -33,6 +33,8 @@
def formatError(self, message):
return "sbs: error: " + message + "\n"
+ def formatWarning(self, message):
+ return "sbs: warning: " + message + "\n"
import sys
import xml.sax
--- a/sbsv2/raptor/python/mmpparser.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/mmpparser.py Fri Nov 20 21:17:53 2009 +0000
@@ -71,6 +71,7 @@
self.assignment = \
( \
Line(CaselessKeyword('ARMFPU') + String()) ^ \
+ Line(CaselessKeyword('APPLY') + String()) ^ \
Line(CaselessKeyword('ASSPLIBRARY') + StringList()) ^ \
Line(CaselessKeyword('CAPABILITY') + StringList()) ^ \
Line(CaselessKeyword('DOCUMENT') + StringList()) ^ \
--- a/sbsv2/raptor/python/plugins/filter_what.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/plugins/filter_what.py Fri Nov 20 21:17:53 2009 +0000
@@ -41,6 +41,8 @@
else:
self.outfile.write(filename+"\n")
+ self.prints += 1
+
def open(self, build_parameters):
"initialise"
@@ -78,6 +80,7 @@
"Regex for zip exports"
self.zip_export_regex = re.compile("^<member>.*")
+ self.prints = 0
self.ok = True
return self.ok
@@ -87,6 +90,17 @@
for line in text.splitlines():
line = line.rstrip()
+ # we are normally the ONLY filter running so we have to pass on
+ # any errors and warnings that emerge
+ #
+ if line.startswith("<error"):
+ sys.stderr.write(self.formatError(line))
+ self.ok = False
+ continue
+ if line.startswith("<warning"):
+ sys.stderr.write(self.formatWarning(line))
+ continue
+
if not line in self.repetitions:
self.repetitions[line] = 0
@@ -120,6 +134,17 @@
return self.ok
+ def summary(self):
+ if self.prints == 0:
+ if self.what:
+ message = "no WHAT information found"
+ else:
+ message = "no CHECK information found"
+
+ sys.stderr.write(self.formatError(message))
+ self.ok = False
+ return self.ok
+
def close(self):
if self.outfile_close:
self.outfile.close()
--- a/sbsv2/raptor/python/raptor.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/raptor.py Fri Nov 20 21:17:53 2009 +0000
@@ -1050,7 +1050,7 @@
except Exception,e:
self.out = sys.stdout # make sure that we can actually get errors out.
self.logOpen = False
- self.FatalError("<error>Unable to open the output logs: %s" % str(e))
+ self.FatalError("Unable to open the output logs: %s" % str(e))
def CloseLog(self):
if self.logOpen:
--- a/sbsv2/raptor/python/raptor_meta.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/raptor_meta.py Fri Nov 20 21:17:53 2009 +0000
@@ -1214,6 +1214,7 @@
self.__Raptor = aRaptor
self.__debug("-----+++++ %s " % aMmpfilename)
self.BuildVariant = raptor_data.Variant(name = "mmp")
+ self.ApplyVariants = []
self.ResourceVariants = []
self.BitmapVariants = []
self.StringTableVariants = []
@@ -1227,9 +1228,10 @@
self.__systeminclude = ""
self.__bitmapSourcepath = self.__sourcepath
self.__current_resource = ""
+ self.__resourceFiles = []
self.__pageConflict = []
self.__debuggable = ""
- self.__resourceFiles = []
+ self.__compressionKeyword = ""
self.sources = []
self.capabilities = []
@@ -1357,6 +1359,14 @@
elif varname == 'FEATUREVARIANT':
self.BuildVariant.AddOperation(raptor_data.Set(varname,"1"))
self.featureVariant = True
+ elif varname in ['COMPRESSTARGET', 'NOCOMPRESSTARGET', 'INFLATECOMPRESSTARGET', 'BYTEPAIRCOMPRESSTARGET']:
+ if self.__compressionKeyword:
+ self.__Raptor.Warn("%s keyword in %s overrides earlier use of %s" % (varname, self.__currentMmpFile, self.__compressionKeyword))
+ self.BuildVariant.AddOperation(raptor_data.Set(self.__compressionKeyword,""))
+ self.__debug( "Set switch " + varname + " OFF")
+ self.BuildVariant.AddOperation(raptor_data.Set(varname,"1"))
+ self.__debug( "Set switch " + varname + " ON")
+ self.__compressionKeyword = varname
else:
self.__debug( "Set switch "+toks[0]+" ON")
self.BuildVariant.AddOperation(raptor_data.Set(prefix+varname, "1"))
@@ -1537,7 +1547,8 @@
toks1 = re.sub("[,'\[\]]", "", toks1).replace("//","/")
self.__debug("Set "+toks[0]+" to " + toks1)
self.BuildVariant.AddOperation(raptor_data.Set(varname,toks1))
-
+ elif varname=='APPLY':
+ self.ApplyVariants.append(toks[1])
else:
self.__debug("Set "+toks[0]+" to " + str(toks[1]))
self.BuildVariant.AddOperation(raptor_data.Set(varname,"".join(toks[1])))
@@ -3155,6 +3166,16 @@
# now we have something worth adding to the component
mmpSpec.AddVariant(var)
componentNode.AddChild(mmpSpec)
+
+ # if there are APPLY variants then add them to the mmpSpec too
+ for applyVar in backend.ApplyVariants:
+ try:
+ mmpSpec.AddVariant(self.__Raptor.cache.FindNamedVariant(applyVar))
+ except KeyError:
+ self.__Raptor.Error("APPLY unknown variant '%s' in %s",
+ applyVar,
+ str(mmpFileEntry.filename),
+ bldinf=str(bldInfFile))
# resources, stringtables and bitmaps are sub-nodes of this project
# (do not add these for feature variant builds)
--- a/sbsv2/raptor/python/raptor_version.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/raptor_version.py Fri Nov 20 21:17:53 2009 +0000
@@ -15,7 +15,7 @@
# raptor version information module
#
-version=(2,11,0,"2009-11-16","pp-preview")
+version=(2,11,0,"2009-11-23","symbian build system")
def numericversion():
"""Raptor version string"""
--- a/sbsv2/raptor/test/common/raptor_tests.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/common/raptor_tests.py Fri Nov 20 21:17:53 2009 +0000
@@ -115,28 +115,24 @@
This method walks through epocroot and cleans every file and folder that is
not present in the manifest file
"""
+ print "Cleaning Epocroot..."
all_files = {} # dictionary to hold all files
folders = [] # holds all unique folders in manifest
+ host_platform = os.environ["HOSTPLATFORM_DIR"]
try:
mani = "./epocroot/manifest"
manifest = open(ReplaceEnvs(mani), "r")
- # This is a fast algorithm to read the manifest file
- while 1:
- # The file is close to 3000 lines.
- # If this value changes, increment the number to include all lines
- lines = manifest.readlines(3000)
- if not lines:
- break
- for line in lines:
- # Get rid of newline char and add to dictionary
- all_files[line.rstrip("\n")] = True
- # This bit makes a record of unique folders into a list
- end = 0
- while end != -1: # Look through the parent folders
- end = line.rfind("/")
- line = line[:end]
- if line not in folders:
- folders.append(line)
+ for line in manifest:
+ line = line.replace("$(HOSTPLATFORM_DIR)", host_platform)
+ # Get rid of newline char and add to dictionary
+ all_files[line.rstrip("\n")] = True
+ # This bit makes a record of unique folders into a list
+ end = 0
+ while end != -1: # Look through the parent folders
+ end = line.rfind("/")
+ line = line[:end]
+ if line not in folders:
+ folders.append(line)
# This algorithm walks through epocroot and handles files and folders
walkpath = "./epocroot"
for (root, dirs, files) in os.walk(ReplaceEnvs(walkpath), topdown =
@@ -176,6 +172,8 @@
traceback.print_tb(sys.exc_traceback)
except IOError,e:
print e
+
+ print "Epocroot Cleaned"
def fix_id(input_id):
return input_id.zfill(4)
--- a/sbsv2/raptor/test/common/run_tests.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/common/run_tests.py Fri Nov 20 21:17:53 2009 +0000
@@ -277,8 +277,18 @@
# Save start/end times and save in dictionary for TMS
start_time = datetime.datetime.now()
try:
- print "\n\nTEST " + str(test_number) + "/" + \
- str(test_total) + ":\n",
+ test_number_text = "\n\nTEST " + str(test_number) + "/" + \
+ str(test_total) + ":"
+
+ if self.fail_total > 0:
+ test_number_text += " So far " + str(self.fail_total) + \
+ " FAILED"
+ if self.exception_total > 0:
+ test_number_text += " So far " + str(self.exception_total) + \
+ " ERRONEOUS"
+
+ print test_number_text
+
test_object = test.run()
end_time = datetime.datetime.now()
@@ -330,6 +340,7 @@
traceback.print_tb(sys.exc_traceback)
self.exception_total += 1
self.error_tests.append(str(self.test_set[test_number - 1]))
+
if self.upload_location != None:
self.create_csv()
@@ -487,7 +498,7 @@
print "\n(Tests run using %s" %options_dir
# Summarise the entire test run
- if self.suitepattern and (self.test_total < 1):
+ if self.suitepattern and (len(suites) < 1):
print "\nNo suites matched specification '" + self.suitepattern + \
"'\n"
else:
--- a/sbsv2/raptor/test/smoke_suite/exe_armv5_winscw_check.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/exe_armv5_winscw_check.py Fri Nov 20 21:17:53 2009 +0000
@@ -15,6 +15,7 @@
#
from raptor_tests import CheckWhatSmokeTest
+import re
def run():
t = CheckWhatSmokeTest()
@@ -44,4 +45,32 @@
"MISSING: $(EPOCROOT)/epoc32/release/winscw/urel/test.exe.map"
]
t.run()
+
+ t.id = "6a"
+ t.name = "exe_armv5_winscw_check_error"
+ t.command = "sbs -b no/such/bld.inf --check"
+ t.targets = []
+ t.missing = 0
+ t.errors = 2
+ t.returncode = 1
+ t.regexlinefilter = re.compile("^NEVER") # no literal stdout matching
+ t.stdout = []
+ t.mustmatch = [
+ "sbs: error:.*build info file does not exist",
+ "sbs: error: no CHECK information found",
+ ]
+ t.run()
+
+ t.id = "6b"
+ t.name = "exe_armv5_winscw_what_error"
+ t.command = "sbs -b no/such/bld.inf --what"
+ t.mustmatch = [
+ "sbs: error:.*build info file does not exist",
+ "sbs: error: no WHAT information found",
+ ]
+ t.run()
+
+ t.id = "6"
+ t.name = "exe_armv5_winscw_check"
+ t.print_result()
return t
--- a/sbsv2/raptor/test/smoke_suite/mmp_keywords.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/mmp_keywords.py Fri Nov 20 21:17:53 2009 +0000
@@ -17,10 +17,10 @@
from raptor_tests import SmokeTest
def run():
- result = SmokeTest.PASS
t = SmokeTest()
t.description = "This testcase tests all mmp keywords including new implementation of 'paged/unpaged code/data'"
t.usebash = True
+
t.id = "75a"
t.name = "mmp_1"
t.command = "sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf -c armv5 -f-"
@@ -45,8 +45,6 @@
".*armlink.*--verbose.*"
]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "75b"
t.name = "mmp_2"
@@ -72,9 +70,6 @@
]
t.warnings = 2
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
-
t.id = "75c"
t.name = "mmp_3"
@@ -117,9 +112,6 @@
t.mustnotmatch = []
t.warnings = 0
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
-
t.id = "75d"
t.name = "mmp_4"
@@ -167,8 +159,6 @@
])
t.mustmatch = []
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
# Test keywords: version, firstlib, nocompresstarget
t.id = "75e"
@@ -189,8 +179,6 @@
"fuzzlib_lib/armv5/urel/uc_exe_.o",
])
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "75f"
t.name = "mmp_6"
@@ -199,15 +187,11 @@
"$(EPOCROOT)/epoc32/release/armv5/udeb/diagsuppress_test.dll",
"$(EPOCROOT)/epoc32/release/armv5/urel/diagsuppress_test.dll",
]
-
t.mustmatch = [
"--diag_suppress 6780",
"--diag_suppress 6331"
]
-
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "75g"
t.name = "mmp_7"
@@ -216,13 +200,9 @@
"$(EPOCROOT)/epoc32/release/armv5/urel/diagsuppress_noarmlibs_test.dll",
"$(EPOCROOT)/epoc32/release/armv5/udeb/diagsuppress_noarmlibs_test.dll"
]
-
t.mustmatch = ["--diag_suppress 6331"]
t.mustnotmatch = ["--diag_suppress 6780"]
-
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
# Test keyword: version
t.id = "75h"
@@ -238,13 +218,77 @@
t.mustnotmatch = []
t.warnings = 2
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
+
+ # Test keyword: armfpu softvfp|vfpv2
+ # Both armv5 RVCT (9a+b) and GCCE (10) builds, as they differ in behaviour.
+ t.id = "75i"
+ t.name = "mmp_9a"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -p armfpu_soft.mmp -c armv5_urel -f-"
+ t.targets = []
+ t.mustmatch = ["--fpu softvfp", "--fpu=softvfp"]
+ t.mustnotmatch = ["--fpu vfpv2", "--fpu=vfpv2"]
+ t.warnings = 0
+ t.run()
+
+ t.id = "75j"
+ t.name = "mmp_9b"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -c armv5_urel REALLYCLEAN &&" \
+ + " sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -p armfpu_vfpv2.mmp -c armv5_urel -f-"
+ t.mustmatch = ["--fpu vfpv2", "--fpu=vfpv2"]
+ t.mustnotmatch = ["--fpu softvfp", "--fpu=softvfp"]
+ t.run()
+
+ t.id = "75k"
+ t.name = "mmp_10"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -c armv5_urel_gcce4_3_2 REALLYCLEAN &&" \
+ + " sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -c armv5_urel_gcce4_3_2 -f-"
+ t.countmatch = [
+ ["-mfloat-abi=soft", 2],
+ ["--fpu=softvfp", 2]
+ ]
+ t.mustmatch = []
+ t.mustnotmatch = ["--fpu=vfpv2"]
+ t.run()
+
+ # Test keywords: compresstarget, nocompresstarget, bytepaircompresstarget, inflatecompresstarget
+ t.id = "75l"
+ t.name = "mmp_11"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp11/bld.inf -c armv5_urel -f-"
+ t.mustmatch_singleline = [
+ "elf2e32.*--output.*\/compress\.exe.*--compressionmethod=inflate",
+ "elf2e32.*--output.*\/nocompress\.exe.*--uncompressed",
+ "elf2e32.*--output.*\/bytepaircompress\.exe.*--compressionmethod=bytepair",
+ "elf2e32.*--output.*\/inflatecompress\.exe.*--compressionmethod=inflate",
+ "elf2e32.*--output.*\/combinedcompress\.exe.*--compressionmethod=bytepair",
+ "COMPRESSTARGET keyword in .*combinedcompresstarget.mmp overrides earlier use of NOCOMPRESSTARGET",
+ "INFLATECOMPRESSTARGET keyword in .*combinedcompresstarget.mmp overrides earlier use of COMPRESSTARGET",
+ "BYTEPAIRCOMPRESSTARGET keyword in .*combinedcompresstarget.mmp overrides earlier use of INFLATECOMPRESSTARGET"
+ ]
+ t.countmatch = []
+ t.mustnotmatch = []
+ t.warnings = 3
+ t.run()
+
+ # Test keyword: APPLY
+ t.id = "75m"
+ t.name = "apply"
+ t.command = "sbs -b smoke_suite/test_resources/mmp/apply/bld.inf -f- -k --configpath=test/config"
+ t.targets = [
+ "$(EPOCROOT)/epoc32/release/armv5/urel/test_mmp_apply.exe",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/test_mmp_apply.exe",
+ "$(EPOCROOT)/epoc32/release/winscw/urel/test_mmp_apply.exe",
+ "$(EPOCROOT)/epoc32/release/winscw/udeb/test_mmp_apply.exe"
+ ]
+ t.mustmatch_singleline = ["-DAPPLYTESTEXPORTEDVAR",
+ "-DAPPLYTESTAPPENDCDEFS"]
+ t.countmatch = [["<error.*APPLY unknown variant 'no_such_var'", 2]]
+ t.errors = 2 # no_such_var for armv5 and winscw
+ t.warnings = 0
+ t.returncode = 1
+ t.run()
t.id = "75"
t.name = "mmp_keywords"
- t.result = result
t.print_result()
return t
-
--- a/sbsv2/raptor/test/smoke_suite/user_tools.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/user_tools.py Fri Nov 20 21:17:53 2009 +0000
@@ -40,7 +40,7 @@
t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5_urel" \
+ " -n --toolcheck off -f " + t.logfile() + " -m " + t.makefile() \
- + " && $(__CYGWIN__)/bin/grep.exe -ir 'TALON_SHELL:=C:/cygwin/bin/sh.exe' " + t.makefile() + ".default"
+ + " && $(__CYGWIN__)/bin/grep.exe -ir 'TALON_SHELL:=C:/cygwin/bin/sh.exe' " + t.makefile() + "_all.default"
t.mustmatch = [
"TALON_SHELL:=C:/cygwin/bin/sh.exe"
--- a/sbsv2/raptor/util/Makefile Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/util/Makefile Fri Nov 20 21:17:53 2009 +0000
@@ -17,13 +17,6 @@
SHELL:=bash
-
-SBS_HOME=$(abspath $(dir $(word 1,$(MAKEFILE_LIST)))/..)
-export SBS_HOME
-
-$(info SBS_HOME=$(SBS_HOME))
-
-
.PHONY:: all
all::
--- a/sbsv2/raptor/util/install-linux/package_sbs.sh Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/util/install-linux/package_sbs.sh Fri Nov 20 21:17:53 2009 +0000
@@ -25,17 +25,8 @@
packtype=source
fi
-
echo "Raptor packager for Linux"
-
-
-# Calculate SBS_HOME from where this script is started
-temp=$0
-SBS_HOME=$(cd ${temp%/*} && echo $PWD)
-export SBS_HOME=${SBS_HOME%/util/install-linux}
-
-
-export PACKAGER_HOME="$SBS_HOME/util/install-linux"
+export PACKAGER_HOME="$PWD"
echo "SBS_HOME is $SBS_HOME - this is the version that will be packaged."