Add support for "slim", which is "stem" + removal of some exports and checking of import details
For this to work, the static_dependencies.txt file needs to contain the augmented dependency information.
To help with this, it can now consume a mixture of both rom_content.csv lines and static_dependencies.txt lines: the
best way to update the information would be something like
(edit rom_content.csv to add "slim" to XXX.dll)
findstr /i "xxx.dll" rom_content.csv > slim.txt
findstr /i "xxx.dll" static_dependencies.txt >> slim.txt
perl ..\tools\static_dependencies.pl -u static_dependencies.txt slim.txt > new_dependencies.txt
This will notice the "slim" marking for xxx.dll, and record the detailed import and export lists for
xxx.dll and everything which links to it. The new information will look something like
sys\bin\xxx.dll /epoc32/release/armv5/urel/stem_xxx.dll exports=1-98.100-102:euser[100039e5].dll
sys\bin\yyy.dll /epoc32/release/armv5/urel/yyy.dll euser[100039e5].dll:xxx[102750c7].dll@2.4-5.77.104-106:scppnwdl.dll
sys\bin\zzz.dll /epoc32/release/armv5/urel/zzz.dll euser[100039e5].dll:xxx[102750c7].dll@23.25.74-77:scppnwdl.dll
Only executables for which there is a "slim" marking will have this level of detail.
The filtering script now does the detailed cross-checking of imports to exports for "slim" executables.
In this case, it will observe the stem_xxx.dll does not export ordinal 104, and so the filtering will include
deleting sys\bin\yyy.dll (xxx.dll Missing ordinal 104)
sys\bin\zzz.dll will be acceptable, because it only uses ordinals which are still present in stem_xxx.dll
/*
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "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: This mmp file generates makefile for SVG Engine
*
*/
// Modified to build stem_SVGEngine.dll to break dependency on mediaclientaudio.dll
// Assumes that the sf/mw/svgt package is accessible and adjusts the paths
// to refer back to /sf/mw/svgt/svgtopt/SVG/(SVGEngine or SVGImpl) where needed
#include <platform_paths.hrh>
ALWAYS_BUILD_AS_ARM
OPTION_REPLACE ARMCC --cpu 5T -O3 -Otime
TARGET stem_SVGEngine.dll
TARGETTYPE dll
VENDORID VID_DEFAULT
UID 0x1000008D 0x101F856E
NOEXPORTLIBRARY
#if defined( EABI )
deffile /sf/mw/svgt/svgtopt/SVG/SVGEngine/eabi/SVGENGINE-OpenVG.def
#elif defined( WINSCW )
deffile /sf/mw/svgt/svgtopt/SVG/SVGEngine/BWINSCW/SVGENGINE-OpenVG.def
#elif defined( WINS )
deffile ../bwins/SVGENGINE-OpenVG.def
#else
deffile ../bmarm/SVGENGINE-OpenVG.def
#endif
CAPABILITY CAP_GENERAL_DLL DRM
SOURCEPATH .
SOURCE SVGEngineImpl.cpp
SOURCE Svgdecoder.cpp
SOURCE SVGDocumentImpl.cpp
SOURCEPATH /sf/mw/svgt/svgtopt/SVG/SVGEngine/src
//SOURCE SVGEngineMain.cpp
SOURCE SVGEngineInterfaceImpl.cpp
SOURCE SVGTimer.cpp
SOURCE SVGEventHandler.cpp
SOURCE SVGEvent.cpp
SOURCE SVGContentHandler.cpp
SOURCE SvgBitmapFontProvider.cpp
//SOURCE SVGXmlParser.cpp
SOURCE SVGAttributeVerifier.cpp
SOURCE SVGErrorImpl.cpp
SOURCE SVGFourPointRect.cpp
SOURCEPATH /sf/mw/svgt/svgtopt/SVG/SVGImpl/src
SOURCE SVGElementImpl.cpp
SOURCE SVGDOMImplementationImpl.cpp
// Structure Elements
SOURCE Svgsvgelementimpl.cpp
SOURCE SVGGElementImpl.cpp
SOURCE SVGUseElementImpl.cpp
SOURCE SVGStyleElementImpl.cpp
SOURCE SVGForeignObjectElementImpl.cpp
SOURCE SVGTitleElementImpl.cpp
SOURCE SVGMetadataElementImpl.cpp
SOURCE SVGDefsElementImpl.cpp
SOURCE SVGDescElementImpl.cpp
// Hyper linking
SOURCE SVGAElementImpl.cpp
SOURCE SVGUriReferenceImpl.cpp
// Basic Shape Elements
SOURCE SVGLineElementImpl.cpp
SOURCE SVGRectElementImpl.cpp
SOURCE SVGCircleElementImpl.cpp
SOURCE SVGEllipseElementImpl.cpp
SOURCE SVGPolylineElementImpl.cpp
SOURCE SVGPathElementImpl.cpp
SOURCE SVGMpathElementImpl.cpp
// Text and Image Elements
SOURCE SVGTextElementImpl.cpp
SOURCE SVGTextAreaElementImpl.cpp
SOURCE SVGImageElementImpl.cpp
//Font Elements
SOURCE SVGFontElementImpl.cpp
SOURCE SVGFontFaceElementImpl.cpp
SOURCE SVGGlyphElementImpl.cpp
SOURCE SVGMissingGlyphElementImpl.cpp
SOURCE SvgHkernelementimpl.cpp
// Animation Elements
SOURCE SVGAnimationBase.cpp
SOURCE SVGSetElementImpl.cpp
SOURCE SVGAnimateElementImpl.cpp
SOURCE SVGAnimateTransformElementImpl.cpp
SOURCE SVGAnimateMotionElementImpl.cpp
SOURCE SVGDiscardElementImpl.cpp
SOURCE SVGAnimationElementImpl.cpp
// Gradient Elements
SOURCE SVGLinearGradientElementImpl.cpp
SOURCE SVGGradientElementImpl.cpp
SOURCE SVGRadialGradientElementImpl.cpp
SOURCE SVGStopElementImpl.cpp
SOURCE SVGSolidColorElementImpl.cpp
SOURCE SVGScriptElementImpl.cpp
// CSS Classes
SOURCE SVGClrCssValueImpl.cpp
SOURCE SVGPaintCssValueImpl.cpp
SOURCE SVGIntCssValueImpl.cpp
SOURCE SVGFloatCssValueImpl.cpp
SOURCE SVGStrCssValueImpl.cpp
SOURCE SVGVectorCssValueImpl.cpp
//SOURCE SVGCssStyleDeclarationImpl.cpp
SOURCE SVGEventAttributes.cpp
// Transform Classes
SOURCE SVGTransformListImpl.cpp
SOURCE SVGTransformableImpl.cpp
// Switch Related Classes
SOURCE SVGTestsImpl.cpp
// XML Language Space Class
SOURCE SVGLangSpaceImpl.cpp
// Viewbox Classes
SOURCE SVGFitToViewBoxImpl.cpp
SOURCE SVGPreserveAspectRatioImpl.cpp
// Utility Classes
SOURCE SVGPointLexer.cpp
SOURCE SVGSchemaData.cpp
SOURCE SVGPathDataParser.cpp
SOURCE SVGAnimTimeController.cpp
SOURCE SVGStringTokenizer.cpp
SOURCE SVGRelToAbsPath.cpp
SOURCE SVGAnimTimingParser.cpp
SOURCE SVGImageHashMap.cpp
SOURCE SVGFontHashMap.cpp
SOURCE SVGMemoryManager.cpp
SOURCE SVGColor.cpp
SOURCE SVGTokenizer.cpp
// Media Element Classes
SOURCE SVGMediaAnimationElementImpl.cpp
SOURCE SVGMediaElementBase.cpp
SOURCE SVGTimeContainer.cpp
SOURCE SVGLockedRealTimeEntity.cpp
SOURCEPATH /sf/mw/svgt/svgtopt/SVG/Xmldomimpl/src
SOURCE SVGXmlElementImpl.cpp
USERINCLUDE /sf/mw/svgt/svgtopt/SVG/SVGEngine/inc
USERINCLUDE /sf/mw/svgt/svgtopt/SVG/Xmldomimpl/inc
USERINCLUDE /sf/mw/svgt/svgtopt/SVG/SVGImpl/inc/SVGDOM
USERINCLUDE /sf/mw/svgt/svgtopt/SVG/SVGImpl/inc
USERINCLUDE /sf/mw/svgt/svgtopt/VGRenderer/inc
// This is a SYSTEMINCLUDE macro containing the middleware
// layer specific include directories
MW_LAYER_SYSTEMINCLUDE
SYSTEMINCLUDE /epoc32/include/libc
APP_LAYER_SYSTEMINCLUDE
LIBRARY cone.lib
LIBRARY euser.lib
LIBRARY bafl.lib
LIBRARY efsrv.lib
LIBRARY fbscli.lib
LIBRARY estor.lib
LIBRARY gdi.lib
// Library for image converter utilities
//LIBRARY MediaClientImage.lib
LIBRARY ImageConversion.lib
// Library for XML Parser utilities
LIBRARY XMLINTERFACE.lib
// CXML parser
//LIBRARY CXMLParser.lib
// For CnvUtfConverter class
LIBRARY charconv.lib
//#include <oem/DRM.mmp>
//#if !defined(__DRM_FULL)
//LIBRARY DrmParsers.lib DrmDcf.lib DrmRights.lib DrmServerInterfaces.lib
//LIBRARY DRMCommon.lib
LIBRARY estlib.lib
//#endif
// Base64 Encoding
LIBRARY imut.lib
// GZip library
LIBRARY EZLib.lib
// CAF library: for DRM
LIBRARY caf.lib
// Added for localized bidirectional textArea wrapping support
LIBRARY avkon.lib
//--------------------------------------------
// Graphics library Information--------
//LIBRARY Gfx2D.lib
//--------------------------------------------
SOURCEPATH /sf/mw/svgt/svgtopt/gfx2d/src
SOURCE GfxMath.c
SOURCE GfxFloatFixPt.cpp
SOURCE Gfxtrignometric.cpp
/* this file is needed for ADS, RVCT, or GCC builds (mem operation wrappers) */
SOURCE RastSymbianWrapper.cpp
// GFXGC source files
SOURCEPATH /sf/mw/svgt/svgtopt/gfx2d/src/GfxGc
SOURCE GfxStroke.cpp
SOURCE GfxColor.cpp
SOURCE GfxRenderingHints.cpp
SOURCE GfxGradientPaint.cpp
SOURCE Gfx2dGcOpenVG.cpp
SOURCE Gfx2dGc.cpp
// GFXGEOM source files
SOURCEPATH /sf/mw/svgt/svgtopt/gfx2d/src/GfxGeom
SOURCE GfxEllipse2D.cpp
SOURCE GfxEllipseIteratorP.cpp
SOURCE GfxFlatteningPathIterator.cpp
SOURCE GfxGeneralPath.cpp
SOURCE GfxGeneralPathIteratorP.cpp
SOURCE GfxRectangle2D.cpp
SOURCE GfxRectangleIteratorP.cpp
SOURCE GfxRectangularShape.cpp
SOURCE GfxRoundRectangle2D.cpp
SOURCE GfxRoundRectangleIteratorP.cpp
SOURCE GfxLine2D.cpp
SOURCE GfxLineIteratorP.cpp
SOURCE GfxAffineTransform.cpp
SOURCE GfxPoint2D.cpp
// GFXIMAGE source files
SOURCEPATH /sf/mw/svgt/svgtopt/gfx2d/src/GfxImage
SOURCE GfxImageTransformer.cpp
// Internal Rendering Engine source files
SOURCEPATH /sf/mw/svgt/svgtopt/gfx2d/src/GfxRenderer
SOURCE GfxRendererInfoP.cpp
USERINCLUDE /sf/mw/svgt/svgtopt/gfx2d/inc
LIBRARY VGRenderer.lib
LIBRARY eikcore.lib
LIBRARY bitgdi.lib
LIBRARY hal.lib
//--------------------------------------------
// End of Graphics library Information--------
//--------------------------------------------