catchup wip
authortimothy.murphy@nokia.com
Mon, 14 Dec 2009 21:32:28 +0000
branchwip
changeset 96 15b4e4d9cd81
parent 95 c2eb160d064a (current diff)
parent 84 203efe4f6b60 (diff)
child 99 7204b1c9d0e8
catchup
--- a/sbsv2/raptor/RELEASE-NOTES.txt	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt	Mon Dec 14 21:32:28 2009 +0000
@@ -5,7 +5,7 @@
 
 Other Changes:
 Combine Linking and Postlinking into a single step
-
+New 'Patchable Constants' target type: TARGETTYPE pdll
 
 version 2.11.2
 
--- a/sbsv2/raptor/lib/config/interfaces.xml	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/config/interfaces.xml	Mon Dec 14 21:32:28 2009 +0000
@@ -5,12 +5,13 @@
 	<var name="default.interfaces">
 		<!-- interfaces corresponding to target types -->
 
-		<set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin textnotifier2 implib var var2 exexp kexe kdll kext klib ldd pdd pdl fsy resource none stringtable bitmap"/>
+		<set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/>
 		<set name="INTERFACE.exe" value="Symbian.exe"/>
 		<set name="INTERFACE.stdexe" value="Symbian.stdexe"/>
 		<set name="INTERFACE.stddll" value="Symbian.stddll"/>
 		<set name="INTERFACE.stdlib" value="Symbian.stdlib"/>
 		<set name="INTERFACE.dll" value="Symbian.dll"/>
+		<set name="INTERFACE.pdll" value="Symbian.pdll"/>
 		<set name="INTERFACE.lib" value="Symbian.lib"/>
 		<set name="INTERFACE.ani" value="Symbian.ani"/>
 		<set name="INTERFACE.plugin" value="Symbian.plugin"/>
--- a/sbsv2/raptor/lib/config/winscw.xml	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/config/winscw.xml	Mon Dec 14 21:32:28 2009 +0000
@@ -26,6 +26,7 @@
 		<set name="INTERFACE.exe" value="Emulator.exe"/>
 		<set name="INTERFACE.stdexe" value="Emulator.stdexe"/>
 		<set name="INTERFACE.dll" value="Emulator.dll"/>
+		<set name="INTERFACE.pdll" value="Emulator.pdll"/>
 		<set name="INTERFACE.stddll" value="Emulator.stddll"/>
 		<set name="INTERFACE.exexp" value="Emulator.exexp"/>
 		<set name="INTERFACE.fsy" value="Emulator.fsy"/>
--- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	Mon Dec 14 21:32:28 2009 +0000
@@ -59,7 +59,7 @@
 	LINKER_ENTRYPOINT_ADORNMENT:=(uc_exe_.o)
   endif
 
-  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin fsy pdl dll),1)
+  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin fsy pdl dll pdll),1)
 	LINKER_ENTRYPOINT_ADORNMENT:=(uc_dll_.o)
   endif
 
--- a/sbsv2/raptor/lib/flm/e32abiv2dll.flm	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2dll.flm	Mon Dec 14 21:32:28 2009 +0000
@@ -55,6 +55,6 @@
 $(call vrestore)
 
 else
-$(error $e32abiv2dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
+$(error e32abiv2dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
 endif
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2pdll.flm	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,61 @@
+# Copyright (c) 2009 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:
+# ARMv5 PDLL ABIv2 Function Like Makefile (FLM)
+# Build an e32 PDLL (Patchable constants DLL)
+# 
+#
+
+ifeq ($(TARGETTYPE),pdll)
+include $(FLMHOME)/e32abiv2defaults.mk
+
+# What we need to build a DLL
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+
+# Default Linker settings for this target type
+LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+
+ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
+endif
+
+LINKER_STUB_LIBRARY:=$(STATIC_RUNTIME_DIR)/edllstub.lib
+STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
+
+
+# Default Postlinker settings
+CANHAVEEXPORTS:=1
+POSTLINKTARGETTYPE:=DLL
+POSTLINKFILETYPE:=dll
+DOPOSTLINK:=1
+CANIGNORENONCALLABLE:=1
+
+# Use the general EABI FLM 
+# We are appending to CDEFS but we don't want this to affect
+# other invocations so we are going to save it on a stack
+# and restore it afterwards
+$(call vsave,CDEFS)
+CDEFS:=$(CDEFS) __DLL__
+include $(FLMHOME)/e32abiv2.flm
+$(call vrestore)
+
+else
+$(error e32abiv2pdll.flm called with wrong TARGETTYPE (should be 'pdll' but is '$(TARGETTYPE)'))
+endif
+
+
--- a/sbsv2/raptor/lib/flm/emulator.xml	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/flm/emulator.xml	Mon Dec 14 21:32:28 2009 +0000
@@ -151,6 +151,23 @@
 		<param name='MAKEDEF'/>
 	</interface>
 
+	<interface name="Emulator.pdll" extends="Emulator.win32" flm="win32pdll.flm">
+		<param name='CHECKLIB' default=''/>
+		<param name='LD'/>
+		<param name='LFLAGS_INFGEN'/>
+		<param name='OPT.CHECKLIB.STDCPP'/>
+		<param name='OPT.CHECKLIB.SYMCPP'/>
+		<param name='OPT.CHECKLIB.WIN32'/>
+		<param name='OPT.HEAPCOMMIT'/>
+		<param name='OPT.HEAPRESERVE'/>
+		<param name='OPT.IMAGEBASE'/>
+		<param name='OPT.IMPLIB'/>
+		<param name='OPT.LIBFILE'/>
+		<param name='OPT.LIBPATH'/>
+		<param name='OPT.NOIMPLIB'/>
+		<param name='MAKEDEF'/>
+	</interface>
+
 	<interface name="Emulator.stddll" extends="Emulator.dll" flm="win32stddll.flm">
 		<param name='LFLAGS_SYMGEN'/>
 		<param name='SYMLOOKUPUTIL'/>
--- a/sbsv2/raptor/lib/flm/standard.xml	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml	Mon Dec 14 21:32:28 2009 +0000
@@ -212,6 +212,10 @@
 		<param name='TARGETTYPE' default="dll"/>
 		<param name='UID1' default="10000079"/>
 	</interface>
+	<interface name="Symbian.pdll" extends="Symbian.e32abiv2" flm="e32abiv2pdll.flm">
+		<param name='TARGETTYPE' default="pdll"/>
+		<param name='UID1' default="10000079"/>
+	</interface>
 	<interface name="Symbian.stddll" extends="Symbian.e32abiv2" flm="e32abiv2stddll.flm">
 		<param name='TARGETTYPE' default="stddll"/>
 		<param name='UID1' default="10000079"/>
--- a/sbsv2/raptor/lib/flm/win32dll.flm	Sun Dec 13 11:27:30 2009 +0000
+++ b/sbsv2/raptor/lib/flm/win32dll.flm	Mon Dec 14 21:32:28 2009 +0000
@@ -30,5 +30,5 @@
 include $(FLMHOME)/win32.flm
 
 else
-$(error $win32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
+$(error win32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
 endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/lib/flm/win32pdll.flm	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,34 @@
+# Copyright (c) 2009 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:
+# WINSCW PDLL Function Like Makefile (FLM)
+# Build an emulator PDLL
+# 
+#
+
+ifeq ($(TARGETTYPE),pdll)
+
+BASE_TYPE:=dll
+CW_STATIC_RUNTIME:=1
+FIRST_STATLIB:=
+FIXED_EXPORT:=
+SUPPORTS_IMPORT_LIBRARY:=1
+SYSTEM_TARGET:=0
+UID2_DEFAULT:=
+
+# Use the general win32 FLM 
+include $(FLMHOME)/win32.flm
+
+else
+$(error $winp32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/pdll_arm.py	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,121 @@
+#
+# Copyright (c) 2009 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: 
+#
+
+from raptor_tests import AntiTargetSmokeTest
+
+def run():
+	t = AntiTargetSmokeTest()
+	t.usebash = True
+	
+	command = "sbs -b smoke_suite/test_resources/simple_dll/pbld.inf -c %s -f -"
+	maintargets = [
+		"$(EPOCROOT)/epoc32/release/%s/udeb/createstaticpdll.dll.sym",
+		"$(EPOCROOT)/epoc32/release/%s/urel/createstaticpdll.dll.sym",
+		"$(EPOCROOT)/epoc32/release/%s/udeb/createstaticpdll.dll",
+		"$(EPOCROOT)/epoc32/release/%s/urel/createstaticpdll.dll"
+		]
+	armv5targets = [
+		"$(EPOCROOT)/epoc32/release/%s/lib/createstaticpdll.dso",
+		"$(EPOCROOT)/epoc32/release/%s/lib/createstaticpdll{000a0000}.dso"
+		]
+	abiv1libtargets = [
+		"$(EPOCROOT)/epoc32/release/%s/lib/createstaticpdll.lib",
+		"$(EPOCROOT)/epoc32/release/%s/lib/createstaticpdll{000a0000}.lib"
+		]
+	buildtargets =  [
+		"createstaticpdll_dll/%s/udeb/CreateStaticDLL.o",
+		"createstaticpdll_dll/%s/urel/CreateStaticDLL.o"
+		]
+	mustmatch = [
+		r".*\busrt\d_\d\.lib\b.*",
+		r".*\bscppnwdl\.dso\b.*"
+		]
+	mustnotmatch = [
+		".*ksrt.*"
+		]
+	
+	# Note that ABIv1 import libraries are only generated for RVCT-based armv5
+	# builds on Windows
+	
+	t.id = "0104a"
+	t.name = "pdll_armv5_rvct"
+	t.command = command % "armv5"
+	t.targets = map(lambda p: p % "armv5", maintargets + armv5targets)[:]	# Shallow, as we optionally extend later and then re-use
+	t.addbuildtargets('smoke_suite/test_resources/simple_dll/pbld.inf', map(lambda p: p % "armv5", buildtargets))
+	t.mustmatch = mustmatch
+	t.mustnotmatch = mustnotmatch
+	t.run("linux")
+	if t.result == AntiTargetSmokeTest.SKIP:
+		t.targets.extend(map(lambda x: x % "armv5", abiv1libtargets))
+		t.run("windows")
+		
+	t.id = "0104b"
+	t.name = "pdll_armv5_clean"
+	t.command = command % "armv5" + " clean"
+	t.targets = []
+	t.mustmatch = []
+	t.mustnotmatch = []
+	t.run()
+	
+	t.id = "0104c"
+	t.name = "pdll_armv5_gcce"
+	t.command = command % "gcce_armv5"
+	t.targets = map(lambda p: p % "armv5", maintargets + armv5targets)
+	t.antitargets = map(lambda p: p % "armv5", abiv1libtargets)
+	t.addbuildtargets('smoke_suite/test_resources/simple_dll/pbld.inf', map(lambda p: p % "armv5", buildtargets))
+	t.mustmatch = mustmatch
+	t.mustnotmatch = mustnotmatch
+	t.run()
+
+	t.id = "0104d"
+	t.name = "pdll_armv5_gcce_clean"
+	t.command = command % "gcce_armv5" + " clean"
+	t.targets = []
+	t.mustmatch = []
+	t.mustnotmatch = []
+	t.run()
+
+	t.id = "0104e"
+	t.name = "pdll_armv7_rvct"
+	t.command = command % "armv7"
+	t.targets = map(lambda p: p % "armv7", maintargets)[:]	# Shallow, as we optionally extend later and then re-use
+	t.addbuildtargets('smoke_suite/test_resources/simple_dll/pbld.inf', map(lambda p: p % "armv7", buildtargets))
+	t.mustmatch = mustmatch
+	t.mustnotmatch = mustnotmatch
+	t.run()
+	
+	t.id = "0104f"
+	t.name = "pdll_armv7_clean"
+	t.command = command % "armv7" + " clean"
+	t.targets = []
+	t.mustmatch = []
+	t.mustnotmatch = []
+	t.run()
+	
+	t.id = "0104g"
+	t.name = "pdll_armv7_gcce"
+	t.command = command % "arm.v7.udeb.gcce4_3_2 -c arm.v7.urel.gcce4_3_2"
+	t.targets = map(lambda p: p % "armv7", maintargets)
+	t.antitargets = map(lambda p: p % "armv7", abiv1libtargets)
+	t.addbuildtargets('smoke_suite/test_resources/simple_dll/pbld.inf', map(lambda p: p % "armv7", buildtargets))
+	t.mustmatch = mustmatch
+	t.mustnotmatch = mustnotmatch
+	t.run()
+
+	t.id = "104"
+	t.name = "pdll_arm"
+	t.print_result()
+	return t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/pdll_winscw.py	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2009 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: 
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+	t = SmokeTest()
+	t.id = "105"
+	t.name = "pdll_winscw"
+	t.command = "sbs -b smoke_suite/test_resources/simple_dll/pbld.inf -c winscw"
+	t.targets = [
+		"$(EPOCROOT)/epoc32/release/winscw/udeb/createstaticpdll.lib",
+		"$(EPOCROOT)/epoc32/release/winscw/udeb/createstaticpdll.dll",
+		"$(EPOCROOT)/epoc32/release/winscw/urel/createstaticpdll.dll",
+		"$(EPOCROOT)/epoc32/release/winscw/urel/createstaticpdll.dll.map"
+		]
+	t.addbuildtargets('smoke_suite/test_resources/simple_dll/pbld.inf', [
+		"createstaticpdll_dll/winscw/udeb/CreateStaticDLL.o",
+		"createstaticpdll_dll/winscw/udeb/createstaticpdll.UID.CPP",
+		"createstaticpdll_dll/winscw/udeb/createstaticpdll_UID_.o",
+		"createstaticpdll_dll/winscw/urel/CreateStaticDLL.o",
+		"createstaticpdll_dll/winscw/urel/createstaticpdll.UID.CPP",
+		"createstaticpdll_dll/winscw/urel/createstaticpdll_UID_.o"
+	])
+	t.run()
+	return t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_dll/CREATESTATICPDLLARM.def	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,6 @@
+EXPORTS
+	_ZN10CMessenger11ShowMessageEv @ 1 NONAME
+	_ZN10CMessenger5NewLCER12CConsoleBaseRK7TDesC16 @ 2 NONAME
+	_ZTI10CMessenger @ 3 NONAME
+	_ZTV10CMessenger @ 4 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_dll/CREATESTATICPDLLWINS.def	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,4 @@
+EXPORTS
+	?ShowMessage@CMessenger@@QAEXXZ @ 1 NONAME ; ?ShowMessage@CMessenger@@QAEXXZ
+	?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @ 2 NONAME ; ?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_dll/CreateStaticPDLL.mmp	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2000-2009 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: 
+*
+*/
+
+TARGET        createstaticpdll.dll
+TARGETTYPE    pdll
+
+UID             0xE800004C
+CAPABILITY   All -TCB
+
+
+VENDORID 0x70000001
+
+SOURCEPATH    .
+SOURCE        CreateStaticDLL.cpp
+
+#ifdef ARMV6
+SOURCE        armv6_specific.cpp
+#endif
+#ifdef ARMV7
+SOURCE        armv7_specific.cpp
+#endif
+
+USERINCLUDE   .
+SYSTEMINCLUDE /epoc32/include
+
+LIBRARY       euser.lib
+
+#if defined(WINS)
+    deffile ./CREATESTATICPDLLWINS.def
+#elif defined(MARM)
+    deffile ./CREATESTATICPDLLARM.def
+#endif
+nostrictdef
+
+#include "../inc/macrotests.mmh"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_dll/pbld.inf	Mon Dec 14 21:32:28 2009 +0000
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2000-2009 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: 
+* Component description file
+*
+*/
+
+
+PRJ_PLATFORMS
+ARMV5 ARMV6 ARMV7 ARMV5SMP WINSCW
+
+PRJ_MMPFILES
+
+CreateStaticPDLL.mmp