# HG changeset patch # User Daniel Jacobs # Date 1270115416 -3600 # Node ID 0c3dbdc03f47648a104ba39796ba2944a0ca8a73 # Parent 28f0ff4c401c99f950db927f77aa84a561503642 Application of review comments. diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/lib/config/rvct.xml --- a/sbsv2/raptor/lib/config/rvct.xml Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/lib/config/rvct.xml Thu Apr 01 10:50:16 2010 +0100 @@ -101,6 +101,6 @@ - + diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/lib/config/variants.xml --- a/sbsv2/raptor/lib/config/variants.xml Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/lib/config/variants.xml Thu Apr 01 10:50:16 2010 +0100 @@ -139,7 +139,7 @@ - + diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/lib/flm/e32abiv2.flm --- a/sbsv2/raptor/lib/flm/e32abiv2.flm Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Thu Apr 01 10:50:16 2010 +0100 @@ -798,7 +798,7 @@ $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(1).d)) \ $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ $(if $(MULTIFILE_ENABLED),--multifile $(OUTPUT_OPTION) $(MULTIFILEOBJECT) \ - --via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<)) $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + --via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<)) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(call endrule,compile) ifeq ($(NO_DEPEND_GENERATE),) @@ -857,7 +857,7 @@ $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ $(if $(NOHIDEALL),--no_hide_all,) \ - $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(call endrule,e32cpponly) CLEANTARGETS:=$$(CLEANTARGETS) $(CPPONLYTARGET) @@ -892,7 +892,7 @@ $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ $(if $(NOHIDEALL),--no_hide_all,) \ $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \ - $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(call endrule,e32listing) CLEANTARGETS:=$$(CLEANTARGETS) $(LISTINGTARGET) @@ -987,7 +987,7 @@ $(call makemacrodef,-D,$(COMPILER_INTERWORK_DEFINES) $(CDEFS) $(CIADEFS)) $(CPP_LANG_OPTION) \ $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(USERINCLUDE))) \ $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(SYSTEMINCLUDE))) \ - $$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + $$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(call endrule,cia2cpp2o) @@ -1013,7 +1013,7 @@ $(e32abiv2_PREFILE): $1 $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) $(call startrule,cia2cpp,,$1) \ $(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \ - $(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + $(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(if $(NO_DEPEND_GENERATE),,&& $(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d)) \ $(call endrule,cia2cpp) @@ -1058,12 +1058,12 @@ $(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \ $(CC) $(e32abiv2_asm_OPTIONS) \ $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \ - $$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + $$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(call endrule,asmcompile) ifeq ($(NO_DEPEND_GENERATE),) $(call startrule,asmdependencies) \ $(CC) -M $(subst --no_rtti,,$(e32abiv2_asm_OPTIONS)) --depend_format=unix \ - $(OUTPUT_OPTION) $$@ $$(call dblquote,$2) > $(call dblquote,$(DEPENDFILENAME)) $(if $(USE_RVCT22_DELETE_HACK),$(RVCT22_DELETE_HACK)) \ + $(OUTPUT_OPTION) $$@ $$(call dblquote,$2) > $(call dblquote,$(DEPENDFILENAME)) $(if $(USE_RVCT22_DELETE_WORKAROUND),$(RVCT22_DELETE_WORKAROUND)) \ $(call endrule,asmdependencies) endif diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/lib/flm/globals.mk --- a/sbsv2/raptor/lib/flm/globals.mk Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/lib/flm/globals.mk Thu Apr 01 10:50:16 2010 +0100 @@ -54,7 +54,7 @@ # Enable DELETE_ON_FAILED_COMPILE work around for failed RVCT 2.2 compiles ifneq ($(DELETE_ON_FAILED_COMPILE),) -RVCT22_DELETE_HACK:=|| ($$(GNURM) $$@; exit 1;) +RVCT22_DELETE_WORKAROUND:=|| { $$(GNURM) $$@; exit 1; } endif # ifneq ($(DELETE_ON_FAILED_COMPILE),) ALLTARGET:=ALL diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/lib/flm/standard.xml --- a/sbsv2/raptor/lib/flm/standard.xml Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/lib/flm/standard.xml Thu Apr 01 10:50:16 2010 +0100 @@ -74,7 +74,7 @@ - + diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/python/raptor_make.py --- a/sbsv2/raptor/python/raptor_make.py Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/python/raptor_make.py Thu Apr 01 10:50:16 2010 +0100 @@ -118,7 +118,7 @@ self.talontimeout = str(evaluator.Get("TALON_TIMEOUT")) self.talonretries = str(evaluator.Get("TALON_RETRIES")) - # Get the #################################### + # work around for RVCT 2.2 failed compiles delete_on_failed_compile_s = evaluator.Get("DELETE_ON_FAILED_COMPILE") self.delete_on_failed_compile = "" if delete_on_failed_compile_s is not None and delete_on_failed_compile_s != "": diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/test/smoke_suite/delete_on_failed_compile.py --- a/sbsv2/raptor/test/smoke_suite/delete_on_failed_compile.py Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/test/smoke_suite/delete_on_failed_compile.py Thu Apr 01 10:50:16 2010 +0100 @@ -55,7 +55,8 @@ "test_/armv5/urel/test5.o", "test_/armv5/urel/test6.o" ]) sbshome = os.environ["SBS_HOME"].replace("\\","/").rstrip("/") - t.command = base_command.replace("armv5", "armv5.fake_compiler") + " --configpath=%s/test/smoke_suite/test_resources/simple/makevariants" % sbshome + t.command = base_command.replace("armv5", "armv5.fake_compiler") + \ + " --configpath=%s/test/smoke_suite/test_resources/simple/compilervariants" % sbshome t.run() t.id = "116c" @@ -66,6 +67,42 @@ t.command = base_command + " reallyclean" t.run() + t.id = "116d" # Use a redefined make_engine variant - object files *should* be present + t.name = "delete_on_failed_compile_build_redefined_make_engine" + t.errors = 0 + t.returncode = 1 + t.antitargets = [] # Remove the list of anti-targets + # All of these files should be present + t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', + [ "test_/armv5/udeb/test.o", + "test_/armv5/udeb/test1.o", + "test_/armv5/udeb/test2.o", + "test_/armv5/udeb/test3.o", + "test_/armv5/udeb/test4.o", + "test_/armv5/udeb/test5.o", + "test_/armv5/udeb/test6.o", + "test_/armv5/urel/test.o", + "test_/armv5/urel/test1.o", + "test_/armv5/urel/test2.o", + "test_/armv5/urel/test3.o", + "test_/armv5/urel/test4.o", + "test_/armv5/urel/test5.o", + "test_/armv5/urel/test6.o" ]) + + t.command = base_command.replace("armv5", "armv5.fake_compiler") + " -e make_test " \ + + " --configpath=%s/test/smoke_suite/test_resources/simple/compilervariants " % sbshome \ + + " --configpath=%s/test/smoke_suite/test_resources/simple/makevariants" % sbshome + t.run() + + t.id = "116e" + t.name = "delete_on_failed_compile_reallyclean_03" + t.errors = 0 + t.returncode = 0 + t.antitargets = [] # Remove the list of anti-targets + t.targets = [] # Remove the list of targets + t.command = base_command + " reallyclean" + t.run() + t.id = "116" t.name = "delete_on_failed_compile" t.print_result() diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/test/smoke_suite/test_resources/scripts/delete_on_failed_compile.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv2/raptor/test/smoke_suite/test_resources/scripts/delete_on_failed_compile.py Thu Apr 01 10:50:16 2010 +0100 @@ -0,0 +1,55 @@ +# +# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# delete_on_failed_compile.py +# This is a test module for verifying the delete on failed compile +# work around for RVCT 2.2. It creates a dummy object file and +# exits with an error code which should result in object files being deleted. +# It takes the same arguments as armcc, but ignores them all apart from -o. +# + +import sys +import os +import re + +# Parse for -o argument. +objectfile_re = re.compile(".*-o\s(\S*\.(o|pre))\s.*", re.I) +res = objectfile_re.match(" ".join(sys.argv[1:])) + +if res: + objectpath = res.group(1) + print "Found object file %s" % objectpath + objectdirectory = os.path.dirname(objectpath) + + # Make the directory if it doesn't exist + if not os.path.isdir(objectdirectory): + try: + os.makedirs(objectdirectory) + except: + print "Not making directory %s" % objectdirectory + + # Try to write something to the .o file + try: + fh = open(objectpath, "w") + fh.write("Fake object file for delete on failed compile test\n") + fh.close() + except Exception as error: + print "Failed to created object file %s; error was: %s" % (objectfile, str(error)) +else: + print "Failed to determine object filename. Commandline used was: %s" % " ".join(sys.argv[1:]) + +# Always exit with an error +print "Exiting with non-zero exit code." +sys.exit(1) + diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/test/smoke_suite/test_resources/simple/compilervariants/delete_on_failed_compile_compiler_variants.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple/compilervariants/delete_on_failed_compile_compiler_variants.xml Thu Apr 01 10:50:16 2010 +0100 @@ -0,0 +1,8 @@ + + + + + + + + diff -r 28f0ff4c401c -r 0c3dbdc03f47 sbsv2/raptor/test/smoke_suite/test_resources/simple/makevariants/delete_on_failed_compile_make_variants.xml --- a/sbsv2/raptor/test/smoke_suite/test_resources/simple/makevariants/delete_on_failed_compile_make_variants.xml Tue Mar 30 15:34:13 2010 +0100 +++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple/makevariants/delete_on_failed_compile_make_variants.xml Thu Apr 01 10:50:16 2010 +0100 @@ -56,9 +56,5 @@ + - - - - -