# HG changeset patch # User Daniel Jacobs # Date 1260288210 0 # Node ID ba3ff6a1ecabe0ab42652f9c2f9cc71cc20e45e5 # Parent d806416fc9bf98a2dbfbc88b61ac1eae7455b3f2 Experimental combined linknpostlink. diff -r d806416fc9bf -r ba3ff6a1ecab sbsv2/raptor/lib/flm/e32abiv2.flm --- a/sbsv2/raptor/lib/flm/e32abiv2.flm Fri Dec 04 17:06:01 2009 +0000 +++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Tue Dec 08 16:03:30 2009 +0000 @@ -384,7 +384,26 @@ # Generating the import library is enough if TARGETTYPE=implib ############# ifneq ($(DOPOSTLINK),) -include $(FLMHOME)/e32postlink.mk +# include $(FLMHOME)/e32postlink.mk + +# Capabilities +ADDED_CAPABILITIES:=$(subst $(CHAR_SPACE),+,$(filter-out -%,$(CAPABILITY))) +SUBTRACTED_CAPABILITIES:=$(subst $(CHAR_SPACE),,$(filter -%,$(CAPABILITY))) +FINAL_CAPABILITIES:=$(if $(ADDED_CAPABILITIES),$(ADDED_CAPABILITIES)$(SUBTRACTED_CAPABILITIES),NONE) + +# Paging options for the old postlinker +POSTLINKER_PAGEDOPTION:=--defaultpaged +ifeq ($(PAGED),1) + POSTLINKER_PAGEDOPTION:=--paged +endif +ifeq ($(PAGED),0) + POSTLINKER_PAGEDOPTION:--unpaged +endif + +CLEANTARGETS:=$(CLEANTARGETS) $(E32TARGET) +CLEANTARGETS:=$(CLEANTARGETS) $(GENERATED_DEFFILE) +CLEANTARGETS:=$(CLEANTARGETS) $(GENERATED_DSO) + endif # ifneq ($(DOPOSTLINK),) ifneq ($(TARGETTYPE),implib) @@ -592,10 +611,11 @@ # outside the relevant tags but it is also unavoidable. define linktarget_func ## The actual link target, dependencies and build step -$(LINK_TARGET): $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(escaped_e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) +$(info LINK OBJECTS are $(LINKOBJECTS)) +$(E32TARGET): $(POSTLINKDEFFILE) $(ELF2E32) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(escaped_e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) $(if $(HAVE_ORDERONLY),|,) $(EPOCROOT)/epoc32/build/TEM_LIB $(if $(MULTIFILE_ENABLED),,@echo -n "" > $(VIAFILE); $(call groupin10,$(LINKOBJECTS)) ;) - $(call startrule,link) \ + $(call startrule,linknpostlink) \ $(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \ $(if $(SUPPORTS_STDCPP_NEWLIB),$(if $(located_STATICLIBRARIES),$(CHECKLIB) $(CHECKLIB_TYPE) --elf $(call dblquote,$(located_STATICLIBRARIES)) &&,),) \ $(LD) $(LINKER_MISC_FLAGS) $(LINKER_DEFAULT_LIB_PATHS) $(SYMBIAN_LINK_FLAGS) $(if $(DEBUG_INFO),$(LINKER_DEBUG_OPTION),$(LINKER_NODEBUG_OPTION)) \ @@ -605,17 +625,56 @@ $(LINKER_ARCH_OPTION) \ $(SYMVER_OPTION) $(SO_NAME_OPTION)=$(call dblquote,$(LINKASVERSIONED)) \ $(LINKER_ENTRYPOINT_SETTING) \ - -o $$(call dblquote,$$@) \ + -o $$(call dblquote,$(LINK_TARGET)) \ $(if $(LTCG),$(LTCG_OPTION),) \ $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION)=$(call dblquote,$(MAPFILE)) \ $(LINKEROPTION) \ $(if $(MULTIFILE_ENABLED),$(call dblquote,$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS)),$(COMMANDFILE_OPTION)$(call dblquote,$(VIAFILE))) \ - $(if $(GENERATELINKERFEEDBACK),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ + $(if $(GENERATELINKERFEEDBACK),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ $(if $(LINKER_ADD_STATIC_RUNTIME),$(if $(STATIC_RUNTIME_LIB),$(LINKER_GROUP_START_OPTION) $(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB) $(LINKER_GROUP_END_OPTION),)) \ - $(quoted_e32abiv2_LIBS) $(LINKER_DEFAULT_LIBS)\ - $(call endrule,link) + $(quoted_e32abiv2_LIBS) $(LINKER_DEFAULT_LIBS) && \ + $(ELF2E32) \ + --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \ + --version=$(VERSION) \ + --capability=$(FINAL_CAPABILITIES) \ + --linkas=$(call dblquote,$(LINKASVERSIONED)) \ + --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \ + --targettype=$(POSTLINKTARGETTYPE) \ + --output=$$(call dblquote,$$@) \ + --elfinput=$(call dblquote,$(LINK_TARGET)) \ + $(if $(UID1),--uid1=0x$(UID1),) \ + $(if $(UID2),--uid2=0x$(UID2),) \ + $(if $(UID3),--uid3=0x$(UID3),) \ + $(if $(VENDORID),--vid=0x$(VENDORID),) \ + $(if $(EXPTARGET),--customdlltarget,) \ + $(if $(ARMLIBS),--excludeunwantedexports,) \ + $(if $(EPOCALLOWDLLDATA),--dlldata,) \ + $(if $(EPOCPROCESSPRIORITY),--priority=$(EPOCPROCESSPRIORITY),) \ + $(if $(EPOCSTACKSIZE),--stack=0x$(EPOCSTACKSIZE),) \ + $(if $(EPOCHEAPSIZEMIN),--heap=0x$(EPOCHEAPSIZEMIN)$(CHAR_COMMA)0x$(EPOCHEAPSIZEMAX),) \ + $(if $(EPOCFIXEDPROCESS),--fixedaddress,) \ + $(if $(EPOCDATALINKADDRESS),--datalinkaddress=$(EPOCDATALINKADDRESS),) \ + $(if $(NAMEDSYMLKUP),--namedlookup,) \ + $(if $(SMPSAFE),--smpsafe,) \ + $(if $(POSTLINKDEFFILE),--definput=$(POSTLINKDEFFILE),) \ + $(if $(EXPORTUNFROZEN),--unfrozen,) \ + $(if $(AUTOEXPORTS),--sysdef=$(call dblquote,$(AUTOEXPORTS)),) \ + $(if $(CANIGNORENONCALLABLE), \ + $(if $(IMPORTLIBRARYREQUIRED),,--ignorenoncallable),) \ + $(if $(CANHAVEEXPORTS), --defoutput=$(call dblquote,$(GENERATED_DEFFILE)) --dso=$(GENERATED_DSO)) \ + $(if $(filter $(VARIANTTYPE),$(DEBUGGABLE)),--debuggable,) \ + $(if $(POSTLINKER_SUPPORTS_WDP), \ + --codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \ + $(POSTLINKER_PAGEDOPTION)) \ + $(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; })) \ + $(call endrule,linknpostlink) -$(MAPFILE): $(LINK_TARGET) +$(MAPFILE): $(E32TARGET) endef $(eval $(linktarget_func)) diff -r d806416fc9bf -r ba3ff6a1ecab sbsv2/raptor/python/plugins/filter_terminal.py --- a/sbsv2/raptor/python/plugins/filter_terminal.py Fri Dec 04 17:06:01 2009 +0000 +++ b/sbsv2/raptor/python/plugins/filter_terminal.py Tue Dec 08 16:03:30 2009 +0000 @@ -113,6 +113,7 @@ "asmcompile" : "asmcompile" , "compile" : "compile" , "postlink" : "target", + "linknpostlink" : "linkntarget", "resourcecompile" : "resource", "genstringtable" : "strtable", "tem" : "tem",