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) 2005-2009 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:
// Name : backend.mmp
// Part of : backend specific include MMP file
// This is a project specific include file for building the
// backend library.
//
// Modified to build stem_backend.dll to break dependency on bluetooth.dll
// Assumes that the sf/os/ossrv package is accessible, and adjusts the paths
// to refer back to /sf/os/ossrv/genericopenlibs/openenvcore/backend where needed
TARGET stem_backend.dll
TARGETTYPE dll
UID 0x1000008d 0x102828D5
NOEXPORTLIBRARY
LANG SC
CAPABILITY ALL -TCB
VENDORID 0x70000001
VERSION 1.1
// Macro defs
#include "/sf/os/ossrv/genericopenlibs/openenvcore/libc/group/libcflags.mmpi"
#ifdef GCCXML
MACRO __wchar_t_defined
#endif //GCCXML
USERINCLUDE /sf/os/ossrv/genericopenlibs/openenvcore/backend/inc
USERINCLUDE /sf/os/ossrv/genericopenlibs/openenvcore/libc/inc
USERINCLUDE /sf/os/ossrv/genericopenlibs/openenvcore/ewsd/inc
USERINCLUDE /sf/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipccli/inc
USERINCLUDE /sf/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipcsrv/inc
// Illegal dependancy on tz.h in MW layer. Needs fixing
MW_LAYER_SYSTEMINCLUDE_SYMBIAN
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
OS_LAYER_LIBC_SYSTEMINCLUDE
//backend without signals and librt support
#ifndef SYMBIAN_OE_POSIX_SIGNALS
#error We are not going to bother with this scenario
#ifdef WINSCW
DEFFILE /sf/os/ossrv/genericopenlibs/openenvcore/backend/bwins/old_backend.def
#else
DEFFILE /sf/os/ossrv/genericopenlibs/openenvcore/backend/eabi/old_backend.def
#endif
#endif
//backend without librt support
#if (defined SYMBIAN_OE_POSIX_SIGNALS && !defined SYMBIAN_OE_LIBRT)
#error We are not going to bother with this scenario either
#ifdef WINSCW
DEFFILE /sf/os/ossrv/genericopenlibs/openenvcore/backend/bwins/backendwolibrt.def
#else
DEFFILE /sf/os/ossrv/genericopenlibs/openenvcore/backend/eabi/backendwolibrt.def
#endif
#endif
DEFFILE /sf/os/ossrv/genericopenlibs/openenvcore/backend/~/backend.def
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/inc
DOCUMENT base.dosc
DOCUMENT consolestream.dosc
DOCUMENT fdesc.dosc
DOCUMENT fdtransfermsg.dosc
DOCUMENT fdtransfer_cli.dosc
DOCUMENT fdtransfer_srv.dosc
DOCUMENT filestream.dosc
DOCUMENT link.dosc
DOCUMENT lposix.dosc
DOCUMENT ltime.dosc
DOCUMENT netdb_r.dosc
DOCUMENT readrequesthandler.dosc
DOCUMENT serialstream.dosc
DOCUMENT shutdown.dosc
DOCUMENT spawn_r.dosc
DOCUMENT stdioclient.dosc
DOCUMENT stdioserver.dosc
DOCUMENT stdiosession.dosc
DOCUMENT streambase.dosc
DOCUMENT sysif.dosc
DOCUMENT sysreent.dosc
DOCUMENT systemspecialfilercg.dosc
DOCUMENT mmap.dosc
DOCUMENT mmapcontrollernode.dosc
DOCUMENT mmapmemorynode.dosc
DOCUMENT stdio_r.dosc
DOCUMENT stdlib_r.dosc
DOCUMENT sysusrinclude.dosc
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipccli/inc
DOCUMENT ipcclient.dosc
#ifndef WINSCW
EPOCALLOWDLLDATA
#endif //WINSCW
//Main Backend codes
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/src/corebackend
SOURCE localif.cpp posixfs.cpp
SOURCE ftable.cpp fdesc.cpp uconsole.cpp
SOURCEPATH .
SOURCE usocket.cpp
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/src/corebackend
SOURCE userial.cpp upipedesc.cpp uredirdesc.cpp udirectorydesc.cpp
SOURCE utilityfuns.cpp systemspecialfilercg.cpp conv.cpp
SOURCE fdtransfer_srv.cpp fdtransfer_cli.cpp
SOURCE ufilesocket.cpp
SOURCE usocketbase.cpp
//Syscall code
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/src/syscall
SOURCE handlefms.cpp handlenms.cpp handlepms.cpp
#ifdef SYMBIAN_OE_POSIX_SIGNALS
SOURCE handlesms.cpp
#endif
SOURCE handleipc.cpp handlemmap.cpp
SOURCE mmapcontroller.cpp mmapmemorynode.cpp
SOURCE handlestringfuncs.cpp
//ipcserver-client code
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipccli/src
SOURCE ipcclient.cpp
//StdioServer-Client Code
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/src/StdioRedir/Client
SOURCE StdioClient.cpp
#ifdef SYMBIAN_OE_POSIX_SIGNALS
//signal server client code
SOURCEPATH /sf/os/ossrv/genericopenlibs/openenvcore/backend/src/signalserver/client
SOURCE signalclient.cpp
#endif
//Backend dependent Libraries
LIBRARY euser.lib
LIBRARY commdb.lib
LIBRARY efsrv.lib
LIBRARY esock.lib
LIBRARY c32.lib
LIBRARY insock.lib
LIBRARY rpipe.lib
LIBRARY charconv.lib
LIBRARY estor.lib
LIBRARY tzclient.lib
#ifdef WINSCW
//wsd solution
LIBRARY ewsd.lib
#endif
PAGED
// End of File
SMPSAFE