diff --git a/.gitignore b/.gitignore index d377210664dd..9fdd7ca231e5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ _mac-build *.exe *.dll *.mdb +*.pdb bin obj packages diff --git a/.gitmodules b/.gitmodules index 59a025aaefa7..a6248ec20879 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "external/mono"] path = external/mono url = ../../mono/mono.git - branch = mono-4.6.0-branch + branch = 2017-02 [submodule "external/fsharp"] path = external/fsharp url = ../../fsharp/fsharp.git @@ -29,3 +29,6 @@ [submodule "external/guiunit"] path = external/guiunit url = ../../mono/guiunit.git +[submodule "external/linker"] + path = external/linker + url = ../../mono/linker.git diff --git a/Make.config b/Make.config index 8d8ee5109682..32afa575f8ac 100644 --- a/Make.config +++ b/Make.config @@ -53,9 +53,9 @@ XCODE_URL=http://xamarin-storage/bot-provisioning/Xcode_8.3.xip XCODE_DEVELOPER_ROOT=/Applications/Xcode83.app/Contents/Developer # Minimum Mono version -MIN_MONO_VERSION=4.8.0.269 -MAX_MONO_VERSION=4.8.99 -MIN_MONO_URL=http://bosstoragemirror.blob.core.windows.net/wrench/mono-4.8.0/e5/e51aa0a7043a8185e264d6332ac7bc1f8f87cd39/MonoFramework-MDK-4.8.0.269.macos10.xamarin.universal.pkg +MIN_MONO_VERSION=5.0.0.18 +MAX_MONO_VERSION=5.0.99 +MIN_MONO_URL=https://bosstoragemirror.blob.core.windows.net/wrench/mono-2017-02/9e/9ed0907eea13005d4e93b9c5f42c5c3015eba409/MonoFramework-MDK-5.0.0.18.macos10.xamarin.universal.pkg # Minimum Xamarin Studio version MIN_XAMARIN_STUDIO_URL=https://bosstoragemirror.blob.core.windows.net/wrench/monodevelop-lion-master/a0/a04f5191c0d91121215fbbaa866f9d420521b6ee/XamarinStudio-6.4.0.5.dmg @@ -228,6 +228,7 @@ OPENTK_PATH=$(TOP)/external/opentk XAMARIN_MACDEV_PATH=$(TOP)/external/Xamarin.MacDev GUI_UNIT_PATH=$(TOP)/external/guiunit MACCORE_PATH=$(TOP)/../maccore +LINKER_TOOLS_PATH=$(TOP)/external/linker MONO_PREFIX ?= /Library/Frameworks/Mono.framework/Versions/Current SYSTEM_MCS=$(MONO_PREFIX)/bin/mcs @@ -269,8 +270,6 @@ MAC_PACKAGE_DMG_DIRNAME="$(MAC_PACKAGE_TITLE)" MAC_PACKAGE_UTI=com.$(MAC_PACKAGE_NAME_LOWER).pkg MAC_PACKAGE_INSTALL_LOCATION=$(MAC_FRAMEWORK_VERSIONED_DIR) -MDB_REBASE_EXE = $(abspath $(MONO_PATH))/mcs/class/lib/net_4_x/mdbrebase.exe -MDB_REBASE = MONO_PATH=$(dir $(MDB_REBASE_EXE)) $(TOP)/builds/install/tools64/bin/mono --debug $(MDB_REBASE_EXE) TT = $(SYSTEM_MONO) "/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/MonoDevelop.TextTemplating/TextTransform.exe" PRODUCT_KEY_PATH?=$(TOP)/product.snk @@ -279,6 +278,12 @@ include $(TOP)/mk/quiet.mk MDTOOL?=DYLD_FALLBACK_LIBRARY_PATH=$(HOME)/lib:/usr/local/lib:/lib:/usr/lib:/Library/Frameworks/Mono.framework/Versions/Current/lib $(SYSTEM_MONO) "/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/mdtool.exe" $(MDTOOL_VERBOSITY) +ifneq ($(BUILD_REVISION),) +# wrench build only +IOS_MCS_FLAGS=-pathmap:$(abspath $(MONO_PATH))/=$(IOS_FRAMEWORK_DIR)/Versions/$(IOS_PACKAGE_VERSION)/src/mono/ +MAC_MCS_FLAGS=-pathmap:$(abspath $(MONO_PATH))/=$(MAC_FRAMEWORK_DIR)/Versions/$(MAC_PACKAGE_VERSION)/src/mono/ +endif + ifdef ENABLE_XAMARIN -include $(MACCORE_PATH)/Make.config endif diff --git a/builds/Makefile b/builds/Makefile index de01daa18e52..540b18b4f0af 100644 --- a/builds/Makefile +++ b/builds/Makefile @@ -140,11 +140,11 @@ MAC_4_5_ASSEMBLY_NAMES = $(MAC_ASSEMBLY_NAMES) $(MAC_4_5_ADDITIONAL_ASSEMBLY_NAM MAC_4_5_FACADE_ASSEMBLY_NAMES = $(xammac_net_4_5_PARALLEL_SUBDIRS) $(xammac_net_4_5_SUBDIRS) -MAC_ASSEMBLIES = $(addsuffix .dll,$(MAC_ASSEMBLY_NAMES)) -MAC_FACADE_ASSEMBLIES = $(addsuffix .dll,$(MAC_FACADE_ASSEMBLY_NAMES)) -MAC_NO_MDB_ASSEMBLIES = System.Windows.dll System.Xml.Serialization.dll -MAC_4_5_ASSEMBLIES = $(addsuffix .dll,$(MAC_4_5_ASSEMBLY_NAMES)) -MAC_4_5_FACADE_ASSEMBLIES = $(addsuffix .dll,$(MAC_4_5_FACADE_ASSEMBLY_NAMES)) +MAC_ASSEMBLIES = $(MAC_ASSEMBLY_NAMES) +MAC_FACADE_ASSEMBLIES = $(MAC_FACADE_ASSEMBLY_NAMES) +MAC_NO_MDB_ASSEMBLIES = System.Windows System.Xml.Serialization +MAC_4_5_ASSEMBLIES = $(MAC_4_5_ASSEMBLY_NAMES) +MAC_4_5_FACADE_ASSEMBLIES = $(MAC_4_5_FACADE_ASSEMBLY_NAMES) MAC_DIRECTORIES = \ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin \ @@ -158,12 +158,12 @@ MAC_DIRECTORIES = \ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/assemblies/System \ MAC_BCL_TARGETS = \ - $(foreach file,$(MAC_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/$(file)) \ - $(foreach file,$(filter-out $(MAC_NO_MDB_ASSEMBLIES),$(MAC_ASSEMBLIES)),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/$(file).mdb) \ - $(foreach file,$(MAC_FACADE_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades/$(file)) \ - $(foreach file,$(MAC_4_5_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/$(file)) \ - $(foreach file,$(filter-out $(MAC_NO_MDB_ASSEMBLIES),$(MAC_4_5_ASSEMBLIES)),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/$(file).mdb) \ - $(foreach file,$(MAC_4_5_FACADE_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/Facades/$(file)) \ + $(foreach file,$(MAC_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/$(file).dll) \ + $(foreach file,$(filter-out $(MAC_NO_MDB_ASSEMBLIES),$(MAC_ASSEMBLIES)),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/$(file).pdb) \ + $(foreach file,$(MAC_FACADE_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades/$(file).dll) \ + $(foreach file,$(MAC_4_5_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/$(file).dll) \ + $(foreach file,$(filter-out $(MAC_NO_MDB_ASSEMBLIES),$(MAC_4_5_ASSEMBLIES)),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/$(file).pdb) \ + $(foreach file,$(MAC_4_5_FACADE_ASSEMBLIES),$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/Facades/$(file).dll) \ MAC_TARGETS = \ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/libmono-profiler-log.a \ @@ -236,7 +236,7 @@ MAC_DIRECTORIES += \ $$(BUILD_DESTDIR)/mac/$(2)/bcl/Facades \ $$(BUILD_DESTDIR)/mac/$(2)/bcl \ -# copy to temporary directory before signing / mdb-rebasing, +# copy to temporary directory before signing, # otherwise we end up re-signing if installing into a different directory. $$(BUILD_DESTDIR)/mac/$(2)/bcl/Facades/%.dll: $$(MONO_PATH)/mcs/class/lib/$(2)/Facades/%.dll | $$(BUILD_DESTDIR)/mac/$(2)/bcl/Facades @# sign the Facade assembly @@ -248,17 +248,14 @@ $$(BUILD_DESTDIR)/mac/$(2)/bcl/%.dll: $$(MONO_PATH)/mcs/class/lib/$(2)/%.dll | $ $$(Q) cp $$< $$@ $$(Q_SN) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $$@ $$(PRODUCT_KEY_PATH) -$$(BUILD_DESTDIR)/mac/$(2)/bcl/%.mdb: $$(MONO_PATH)/mcs/class/lib/$(2)/%.mdb .stamp-build-tools64 | $$(BUILD_DESTDIR)/mac/$(2)/bcl - @# mdb-rebase the mdb +$$(BUILD_DESTDIR)/mac/$(2)/bcl/%.pdb: $$(MONO_PATH)/mcs/class/lib/$(2)/%.pdb .stamp-build-tools64 | $$(BUILD_DESTDIR)/mac/$(2)/bcl $$(Q) cp $$< $$@ $$(MAC_DESTDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/$(1)/%.dll: $$(BUILD_DESTDIR)/mac/$(2)/bcl/%.dll | $$(MAC_DESTDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/$(1)/Facades $$(Q) install -m 0755 $$< $$@ -$$(MAC_DESTDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/$(1)/%.mdb: $$(BUILD_DESTDIR)/mac/$(2)/bcl/%.mdb | $$(MAC_DESTDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/$(1)/Facades +$$(MAC_DESTDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/$(1)/%.pdb: $$(BUILD_DESTDIR)/mac/$(2)/bcl/%.pdb | $$(MAC_DESTDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/$(1)/Facades $$(Q) install -m 0644 $$< $$@ - $$(Q_MDB) $$(MDB_REBASE) -q -i $$(abspath $$(MONO_PATH))/ -o $$(MAC_TARGETDIR)$$(MAC_FRAMEWORK_CURRENT_DIR)/src/mono/ $$@ - $$(Q) chmod 0644 $$@ endef $(eval $(call MacInstallBclTemplate,Xamarin.Mac,xammac)) @@ -270,7 +267,7 @@ $(MAC_DIRECTORIES) $(BUILD_DESTDIR): mac-facade-check: $(Q) rm -f .$@* $(Q) echo $(MAC_4_5_FACADE_ASSEMBLIES) | tr ' ' '\n' | sort > .$@1 - $(Q) ls -1 $(MONO_PATH)/mcs/class/lib/xammac_net_4_5/Facades | grep dll$$ | sort > .$@2 + $(Q) ls -1 $(MONO_PATH)/mcs/class/lib/xammac_net_4_5/Facades | grep dll$$ | sed 's/[.]dll//' | sort > .$@2 $(Q) if ! diff -u .$@1 .$@2; then echo "\n*** There are Facade assemblies in "$(MONO_PATH)/mcs/class/lib/xammac_net_4_5/Facades " not defined in "$(FACADE_SUBDIRS_MK)" ***\n"; exit 1; fi $(Q) rm -f .$@* @@ -395,9 +392,7 @@ TOOLS64_CONFIGURE_FLAGS= --build=x86_64-apple-darwin10 \ --cache-file=../tools64.config.cache \ --with-glib=embedded \ --enable-minimal=com \ - --with-profile2=no \ - --with-profile4=no \ - --with-profile4_5=yes \ + --with-profile4_x=no \ --with-monotouch=yes \ --with-xammac=yes \ --with-mcs-docs=no \ @@ -447,7 +442,7 @@ build-tools-bcl: build-tools64 build-tools: build-tools64 .stamp-build-tools64: .stamp-configure-tools64 - $(MAKE) -C tools64 all EXTERNAL_MCS=$(SYSTEM_MCS) EXTERNAL_RUNTIME=$(SYSTEM_MONO) + $(MAKE) -C tools64 all EXTERNAL_MCS=$(SYSTEM_MCS) EXTERNAL_RUNTIME=$(SYSTEM_MONO) MONOTOUCH_MCS_FLAGS=$(IOS_MCS_FLAGS) XAMMAC_MCS_FLAGS=$(MAC_MCS_FLAGS) # NO_INSTALL is defined in mono/mcs/build/profiles except for net_4_5. If we don't have it, then it attempts to install into a gac, and sometimes fail NO_INSTALL=1 $(MAKE) -C tools64 -j 1 install EXTERNAL_MCS=$(SYSTEM_MCS) EXTERNAL_RUNTIME=$(SYSTEM_MONO) @touch .stamp-build-tools64 @@ -569,7 +564,7 @@ IOS_ASSEMBLIES = I18N.CJK I18N.MidEast I18N.Other I18N.Rare I18N.West I18N Mono. System.Net.Http.WinHttpHandler \ System.Numerics.Vectors System.Reflection.Context System.Reflection.DispatchProxy \ System.Runtime.InteropServices.RuntimeInformation System.Security System.Xml.XPath.XmlDocument \ - System.Windows System.Xml.Serialization System.Net Mono.Dynamic.Interpreter \ + System.Windows System.Xml.Serialization System.Net \ Microsoft.CSharp Mono.CSharp IOS_REPL_ASSEMBLIES = mscorlib System System.Core System.Xml Mono.CSharp @@ -639,17 +634,17 @@ TVOS_BCL_TARGETS_DIRS += \ IOS_BCL_TARGETS += \ $(foreach file,$(IOS_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/$(file).dll) \ - $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(IOS_ASSEMBLIES)),$(PREFIX)/lib/mono/2.1/$(file).dll.mdb) \ + $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(IOS_ASSEMBLIES)),$(PREFIX)/lib/mono/2.1/$(file).pdb) \ $(foreach file,$(IOS_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/$(file).dll) \ - $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(IOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.iOS/$(file).dll.mdb) \ + $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(IOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.iOS/$(file).pdb) \ $(PREFIX)/lib/mono/Xamarin.iOS/mscorlib.dll \ $(PREFIX)/lib/mono/2.1/mscorlib.dll \ $(foreach file,$(IOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/Facades/$(file).dll) \ $(foreach file,$(IOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/Facades/$(file).dll) \ $(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/repl/$(file).dll) \ - $(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/repl/$(file).dll.mdb) \ + $(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/repl/$(file).pdb) \ $(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/repl/$(file).dll) \ - $(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/repl/$(file).dll.mdb) \ + $(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/repl/$(file).pdb) \ ifndef IKVM IOS_BCL_TARGETS += $(PREFIX)/bin/btouch-mono @@ -657,11 +652,11 @@ endif WATCH_BCL_TARGETS += \ $(foreach file,$(WATCHOS_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/$(file).dll) \ - $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(WATCHOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.WatchOS/$(file).dll.mdb) \ + $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(WATCHOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.WatchOS/$(file).pdb) \ $(PREFIX)/lib/mono/Xamarin.WatchOS/mscorlib.dll \ $(foreach file,$(WATCHOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/Facades/$(file).dll) \ $(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/repl/$(file).dll) \ - $(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/repl/$(file).dll.mdb) \ + $(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/repl/$(file).pdb) \ ifndef IKVM WATCH_BCL_TARGETS += $(PREFIX)/bin/bwatch-mono @@ -669,20 +664,18 @@ endif TVOS_BCL_TARGETS += \ $(foreach file,$(TVOS_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/$(file).dll) \ - $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(TVOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.TVOS/$(file).dll.mdb) \ + $(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(TVOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.TVOS/$(file).pdb) \ $(PREFIX)/lib/mono/Xamarin.TVOS/mscorlib.dll \ $(foreach file,$(TVOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/Facades/$(file).dll) \ $(foreach file,$(TVOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/repl/$(file).dll) \ - $(foreach file,$(TVOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/repl/$(file).dll.mdb) \ + $(foreach file,$(TVOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/repl/$(file).pdb) \ ifndef IKVM TVOS_BCL_TARGETS += $(PREFIX)/bin/btv-mono endif -$(PREFIX)/lib/mono/Xamarin.iOS/%.mdb: $(BUILD_DESTDIR)/ios/bcl/%.mdb | $(PREFIX)/lib/mono/Xamarin.iOS $(PREFIX)/lib/mono/Xamarin.iOS/repl +$(PREFIX)/lib/mono/Xamarin.iOS/%.pdb: $(BUILD_DESTDIR)/ios/bcl/%.pdb | $(PREFIX)/lib/mono/Xamarin.iOS $(PREFIX)/lib/mono/Xamarin.iOS/repl $(Q) install -m 0644 $< $@ - $(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ - $(Q) chmod 0644 $@ $(PREFIX)/lib/mono/Xamarin.iOS/Facades/%.dll: $(BUILD_DESTDIR)/ios/bcl/Facades/%.dll | $(PREFIX)/lib/mono/Xamarin.iOS/Facades $(Q) install -m 0755 $< $@ @@ -699,10 +692,8 @@ $(PREFIX)/lib/mono/2.1/Facades/%.dll: $(BUILD_DESTDIR)/ios/bcl/Facades/%.dll | $ $(PREFIX)/lib/mono/2.1/%.dll: $(BUILD_DESTDIR)/ios/bcl/%.dll | $(PREFIX)/lib/mono/2.1 $(PREFIX)/lib/mono/2.1/repl $(Q) install -m 0755 $< $@ -$(PREFIX)/lib/mono/2.1/%.mdb: $(BUILD_DESTDIR)/ios/bcl/%.mdb | $(PREFIX)/lib/mono/2.1 $(PREFIX)/lib/mono/2.1/repl +$(PREFIX)/lib/mono/2.1/%.pdb: $(BUILD_DESTDIR)/ios/bcl/%.pdb | $(PREFIX)/lib/mono/2.1 $(PREFIX)/lib/mono/2.1/repl $(Q) install -m 0644 $< $@ - $(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ - $(Q) chmod 0644 $@ ifndef IKVM $(PREFIX)/bin/btouch-mono: $(BUILD_DESTDIR)/tools64/bin/mono | $(PREFIX)/bin @@ -715,10 +706,8 @@ $(PREFIX)/lib/mono/Xamarin.WatchOS/Facades/%.dll: $(BUILD_DESTDIR)/watchos/bcl/F $(PREFIX)/lib/mono/Xamarin.WatchOS/%.dll: $(BUILD_DESTDIR)/watchos/bcl/%.dll | $(PREFIX)/lib/mono/Xamarin.WatchOS $(PREFIX)/lib/mono/Xamarin.WatchOS/repl $(Q) install -m 0755 $< $@ -$(PREFIX)/lib/mono/Xamarin.WatchOS/%.mdb: $(BUILD_DESTDIR)/watchos/bcl/%.mdb | $(PREFIX)/lib/mono/Xamarin.WatchOS $(PREFIX)/lib/mono/Xamarin.WatchOS/repl +$(PREFIX)/lib/mono/Xamarin.WatchOS/%.pdb: $(BUILD_DESTDIR)/watchos/bcl/%.pdb | $(PREFIX)/lib/mono/Xamarin.WatchOS $(PREFIX)/lib/mono/Xamarin.WatchOS/repl $(Q) install -m 0644 $< $@ - $(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ - $(Q) chmod 0644 $@ $(PREFIX)/lib/mono/Xamarin.TVOS/Facades/%.dll: $(BUILD_DESTDIR)/tvos/bcl/Facades/%.dll | $(PREFIX)/lib/mono/Xamarin.TVOS/Facades $(Q) install -m 0755 $< $@ @@ -726,10 +715,8 @@ $(PREFIX)/lib/mono/Xamarin.TVOS/Facades/%.dll: $(BUILD_DESTDIR)/tvos/bcl/Facades $(PREFIX)/lib/mono/Xamarin.TVOS/%.dll: $(BUILD_DESTDIR)/tvos/bcl/%.dll | $(PREFIX)/lib/mono/Xamarin.TVOS $(PREFIX)/lib/mono/Xamarin.TVOS/repl $(Q) install -m 0755 $< $@ -$(PREFIX)/lib/mono/Xamarin.TVOS/%.mdb: $(BUILD_DESTDIR)/tvos/bcl/%.mdb | $(PREFIX)/lib/mono/Xamarin.TVOS $(PREFIX)/lib/mono/Xamarin.TVOS/repl +$(PREFIX)/lib/mono/Xamarin.TVOS/%.pdb: $(BUILD_DESTDIR)/tvos/bcl/%.pdb | $(PREFIX)/lib/mono/Xamarin.TVOS $(PREFIX)/lib/mono/Xamarin.TVOS/repl $(Q) install -m 0644 $< $@ - $(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ - $(Q) chmod 0644 $@ ifndef IKVM $(PREFIX)/bin/btv-mono: $(BUILD_DESTDIR)/tools64/bin/mono | $(PREFIX)/bin @@ -743,7 +730,7 @@ endif $(Q) install -s -m 0755 $< $@ endif -# copy to temporary directory before signing / mdb-rebasing, +# copy to temporary directory before signing # otherwise we end up re-signing if installing into a different directory. $(BUILD_DESTDIR)/ios/bcl/Facades/%.dll: $(MONO_PATH)/mcs/class/lib/monotouch/Facades/%.dll | $(BUILD_DESTDIR)/ios/bcl/Facades @# sign the Facade assembly @@ -760,12 +747,10 @@ $(BUILD_DESTDIR)/ios/bcl/repl/%.dll: $(MONO_PATH)/mcs/class/lib/monotouch_runtim $(Q) cp $< $@ $(Q_SN) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) -$(BUILD_DESTDIR)/ios/bcl/%.mdb: $(MONO_PATH)/mcs/class/lib/monotouch/%.mdb .stamp-build-tools64 | $(BUILD_DESTDIR)/ios/bcl - @# mdb-rebase the mdb +$(BUILD_DESTDIR)/ios/bcl/%.pdb: $(MONO_PATH)/mcs/class/lib/monotouch/%.pdb .stamp-build-tools64 | $(BUILD_DESTDIR)/ios/bcl $(Q) cp $< $@ -$(BUILD_DESTDIR)/ios/bcl/repl/%.mdb: $(MONO_PATH)/mcs/class/lib/monotouch_runtime/%.mdb .stamp-build-tools64 | $(BUILD_DESTDIR)/ios/bcl/repl - @# mdb-rebase the mdb +$(BUILD_DESTDIR)/ios/bcl/repl/%.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_runtime/%.pdb .stamp-build-tools64 | $(BUILD_DESTDIR)/ios/bcl/repl $(Q) cp $< $@ $(BUILD_DESTDIR)/watchos/bcl/Facades/%.dll: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/Facades/%.dll | $(BUILD_DESTDIR)/watchos/bcl/Facades @@ -783,12 +768,10 @@ $(BUILD_DESTDIR)/watchos/bcl/repl/%.dll: $(WATCH_MONO_PATH)/mcs/class/lib/monoto $(Q) cp $< $@ $(Q_SN) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) -$(BUILD_DESTDIR)/watchos/bcl/%.mdb: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/%.mdb .stamp-build-watchbcl .stamp-build-tools64 | $(BUILD_DESTDIR)/watchos/bcl - @# mdb-rebase the mdb +$(BUILD_DESTDIR)/watchos/bcl/%.pdb: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/%.pdb .stamp-build-watchbcl .stamp-build-tools64 | $(BUILD_DESTDIR)/watchos/bcl $(Q) cp $< $@ -$(BUILD_DESTDIR)/watchos/bcl/repl/%.mdb: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch_runtime/%.mdb .stamp-build-watchbcl .stamp-build-tools64 | $(BUILD_DESTDIR)/watchos/bcl/repl - @# mdb-rebase the mdb +$(BUILD_DESTDIR)/watchos/bcl/repl/%.pdb: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch_runtime/%.pdb .stamp-build-watchbcl .stamp-build-tools64 | $(BUILD_DESTDIR)/watchos/bcl/repl $(Q) cp $< $@ $(BUILD_DESTDIR)/tvos/bcl/Facades/%.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/Facades/%.dll | $(BUILD_DESTDIR)/tvos/bcl/Facades @@ -806,37 +789,35 @@ $(BUILD_DESTDIR)/tvos/bcl/repl/%.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv_ru $(Q) cp $< $@ $(Q_SN) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) -$(BUILD_DESTDIR)/tvos/bcl/%.mdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%.mdb .stamp-build-tools64 | $(BUILD_DESTDIR)/tvos/bcl - @# mdb-rebase the mdb +$(BUILD_DESTDIR)/tvos/bcl/%.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%.pdb .stamp-build-tools64 | $(BUILD_DESTDIR)/tvos/bcl $(Q) cp $< $@ -$(BUILD_DESTDIR)/tvos/bcl/repl/%.mdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv_runtime/%.mdb .stamp-build-tools64 | $(BUILD_DESTDIR)/tvos/bcl/repl - @# mdb-rebase the repl mdb +$(BUILD_DESTDIR)/tvos/bcl/repl/%.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv_runtime/%.pdb .stamp-build-tools64 | $(BUILD_DESTDIR)/tvos/bcl/repl $(Q) cp $< $@ $(IOS_BCL_TARGETS_DIRS) $(WATCH_BCL_TARGETS_DIRS) $(TVOS_BCL_TARGETS_DIRS): $(Q) mkdir -p $@ -.SECONDARY: $(foreach file,$(IOS_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/ios/bcl/Facades/$(file).dll) $(foreach file,$(IOS_ASSEMBLIES),$(BUILD_DESTDIR)/ios/bcl/$(file).dll.mdb) $(foreach file,$(IOS_ASSEMBLIES),$(BUILD_DESTDIR)/ios/bcl/$(file).dll) +.SECONDARY: $(foreach file,$(IOS_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/ios/bcl/Facades/$(file).dll) $(foreach file,$(IOS_ASSEMBLIES),$(BUILD_DESTDIR)/ios/bcl/$(file).pdb) $(foreach file,$(IOS_ASSEMBLIES),$(BUILD_DESTDIR)/ios/bcl/$(file).dll) .SECONDARY: \ - $(foreach file,$(MAC_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/mac/xammac/bcl/Facades/$(file)) \ - $(foreach file,$(MAC_ASSEMBLIES),$(BUILD_DESTDIR)/mac/xammac/bcl/$(file).mdb) \ - $(foreach file,$(MAC_ASSEMBLIES),$(BUILD_DESTDIR)/mac/xammac/bcl/$(file)) \ - $(foreach file,$(MAC_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/mac/net_4_5/bcl/Facades/$(file)) \ - $(foreach file,$(MAC_4_5_ASSEMBLIES),$(BUILD_DESTDIR)/mac/net_4_5/bcl/$(file).mdb) \ - $(foreach file,$(MAC_4_5_ASSEMBLIES),$(BUILD_DESTDIR)/mac/net_4_5/bcl/$(file)) \ + $(foreach file,$(MAC_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/mac/xammac/bcl/Facades/$(file).dll) \ + $(foreach file,$(MAC_ASSEMBLIES),$(BUILD_DESTDIR)/mac/xammac/bcl/$(file).pdb) \ + $(foreach file,$(MAC_ASSEMBLIES),$(BUILD_DESTDIR)/mac/xammac/bcl/$(file).dll) \ + $(foreach file,$(MAC_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/mac/net_4_5/bcl/Facades/$(file).dll) \ + $(foreach file,$(MAC_4_5_ASSEMBLIES),$(BUILD_DESTDIR)/mac/net_4_5/bcl/$(file).pdb) \ + $(foreach file,$(MAC_4_5_ASSEMBLIES),$(BUILD_DESTDIR)/mac/net_4_5/bcl/$(file).dll) \ .SECONDARY: \ $(foreach file,$(WATCHOS_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/Facades/$(file).dll) \ - $(foreach file,$(WATCHOS_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/$(file).dll.mdb) \ + $(foreach file,$(WATCHOS_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/$(file).pdb) \ $(foreach file,$(WATCHOS_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/$(file).dll) \ $(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/repl/$(file).dll) \ - $(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/repl/$(file).dll.mdb) \ + $(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(BUILD_DESTDIR)/watchos/bcl/repl/$(file).pdb) \ $(foreach file,$(TVOS_FACADE_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/Facades/$(file).dll) \ - $(foreach file,$(TVOS_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/$(file).dll.mdb) \ + $(foreach file,$(TVOS_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/$(file).pdb) \ $(foreach file,$(TVOS_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/$(file).dll) \ $(foreach file,$(TVOS_REPL_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/repl/$(file).dll) \ - $(foreach file,$(TVOS_REPL_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/repl/$(file).dll.mdb) \ + $(foreach file,$(TVOS_REPL_ASSEMBLIES),$(BUILD_DESTDIR)/tvos/bcl/repl/$(file).pdb) \ install-tools-tvos: $(TVOS_BCL_TARGETS) $(Q) $(MAKE) tvos-facade-check diff --git a/external/linker b/external/linker new file mode 160000 index 000000000000..76eefca920b5 --- /dev/null +++ b/external/linker @@ -0,0 +1 @@ +Subproject commit 76eefca920b5c303ec6f56f85a03a4b11a663384 diff --git a/external/mono b/external/mono index e464ddae64cd..5a3b524b608b 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit e464ddae64cd181c360d4cf93d087db79c4fb192 +Subproject commit 5a3b524b608ba4c3b2e21d3f3832b2e149f41d90 diff --git a/mk/versions.mk b/mk/versions.mk index 740df731cc8c..43be932b0504 100644 --- a/mk/versions.mk +++ b/mk/versions.mk @@ -65,6 +65,7 @@ $(eval $(call CheckSubmoduleTemplate,Touch.Unit,TOUCH_UNIT)) $(eval $(call CheckSubmoduleTemplate,opentk,OPENTK)) $(eval $(call CheckSubmoduleTemplate,Xamarin.MacDev,XAMARIN_MACDEV)) $(eval $(call CheckSubmoduleTemplate,guiunit,GUI_UNIT)) +$(eval $(call CheckSubmoduleTemplate,linker,LINKER_TOOLS)) include $(TOP)/mk/xamarin.mk diff --git a/mono/4.5/machine.config b/mono/4.5/machine.config index b5448818bdb1..e1438984d066 100644 --- a/mono/4.5/machine.config +++ b/mono/4.5/machine.config @@ -12,6 +12,8 @@ + + \ No newline at end of file diff --git a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.props b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.props index 70873a278b12..f6e972664e1a 100644 --- a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.props +++ b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.props @@ -34,7 +34,8 @@ Copyright (C) 2013-2014 Xamarin. All rights reserved. $(AllowedReferenceRelatedFileExtensions); .dll.mdb; - .exe.mdb + .exe.mdb; + .pdb diff --git a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.FSharp.targets b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.FSharp.targets index 2feeb99a6e4f..f81bd323e688 100644 --- a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.FSharp.targets +++ b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.FSharp.targets @@ -14,11 +14,6 @@ v4.5 - $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets - $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets - $(MSBuildFrameworkToolsPath32)\Microsoft.FSharp.Targets - $(MSBuildBinPath)\Microsoft.FSharp.Targets - @@ -26,7 +21,18 @@ <_DebugFileExt Condition="'$(_DebugFileExt)' == ''">.mdb - + + + + + + + + $(AllowedReferenceRelatedFileExtensions); .dll.mdb; - .exe.mdb + .exe.mdb; + .pdb diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.AppExtension.CSharp.targets b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.AppExtension.CSharp.targets index 2f7c443ca832..109461f1dd95 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.AppExtension.CSharp.targets +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.AppExtension.CSharp.targets @@ -21,13 +21,6 @@ Copyright (C) 2014-2016 Xamarin. All rights reserved. Xamarin.iOS v1.0 - $(MD_MTOUCH_SDK_ROOT)/bin - $(MD_MTOUCH_SDK_ROOT)/usr/bin - /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin - /Developer/MonoTouch/usr/bin - smcs - - .mdb __UNIFIED__;__MOBILE__;__IOS__;$(DefineConstants) diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.CSharp.targets b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.CSharp.targets index e859d9a7833b..a150dea59a7c 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.CSharp.targets +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.CSharp.targets @@ -21,14 +21,6 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved. Xamarin.iOS v1.0 - $(MD_MTOUCH_SDK_ROOT)/bin - $(MD_MTOUCH_SDK_ROOT)/usr/bin - /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin - /Developer/MonoTouch/usr/bin - smcs - /Library/Frameworks/Mono.framework/Commands/mcs - - .mdb __UNIFIED__;__MOBILE__;__IOS__;$(DefineConstants) diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.props b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.props index 1b4115af9640..574efad90d8b 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.props +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.props @@ -29,7 +29,8 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved. $(AllowedReferenceRelatedFileExtensions); .dll.mdb; - .exe.mdb + .exe.mdb; + .pdb diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.CSharp.props b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.CSharp.props index 19343a15024e..fb3fea8a721e 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.CSharp.props +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.CSharp.props @@ -31,17 +31,6 @@ Copyright (C) 2013-2016 Xamarin Inc. All rights reserved. Xamarin.iOS v1.0 - $(MonoTouchSdkRoot)/bin - $(MonoTouchSdkRoot)/usr/bin - /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin - /Developer/MonoTouch/usr/bin - /Library/Frameworks/Mono.framework/Commands/mcs - /Library/Frameworks/Mono.framework/Commands/mcs - smcs - - .mdb - $(MonoTouchSdkRoot)/lib/mono/Xamarin.iOS/Xamarin.iOS.dll $(MSBuildExtensionsPath)\Xamarin\DontKnowWhereYet\Xamarin.iOS.dll $(MonoTouchSdkRoot)/bin/ diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.Common.props b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.Common.props index 62b4981933b2..b869b0b7f953 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.Common.props +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding.Common.props @@ -35,7 +35,8 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved. $(AllowedReferenceRelatedFileExtensions); .dll.mdb; - .exe.mdb + .exe.mdb; + .pdb diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.WatchApp.CSharp.targets b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.WatchApp.CSharp.targets index 3ff366893c50..d9f9bb08f701 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.WatchApp.CSharp.targets +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.WatchApp.CSharp.targets @@ -21,13 +21,6 @@ Copyright (C) 2015-2016 Xamarin. All rights reserved. Xamarin.iOS v1.0 - $(MD_MTOUCH_SDK_ROOT)/bin - $(MD_MTOUCH_SDK_ROOT)/usr/bin - /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin - /Developer/MonoTouch/usr/bin - smcs - - .mdb __UNIFIED__;__MOBILE__;__IOS__;$(DefineConstants) diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs index 10bd96f6008f..2b2560b97b83 100644 --- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs +++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs @@ -66,23 +66,21 @@ string[] ExpectedExecutableFiles { "MonoTouchDebugConfiguration.txt", "Info.plist", Path.Combine ("Settings.bundle", "Root.plist"), - "Mono.Dynamic.Interpreter.dll", - "Mono.Dynamic.Interpreter.dll.mdb", "MyLibrary.dll", - "MyLibrary.dll.mdb", + "MyLibrary.pdb", "MySingleView", "MySingleView.exe", - "MySingleView.exe.mdb", + "MySingleView.pdb", "System.Core.dll", - "System.Core.dll.mdb", + "System.Core.pdb", "System.Xml.dll", - "System.Xml.dll.mdb", + "System.Xml.pdb", "System.dll", - "System.dll.mdb", + "System.pdb", "Xamarin.iOS.dll", "Xamarin.iOS.dll.mdb", "mscorlib.dll", - "mscorlib.dll.mdb", + "mscorlib.pdb", "runtime-options.plist", }; @@ -371,7 +369,7 @@ void BuildLibraryCore (string[] expectedResources) var entries = Directory.GetFileSystemEntries (LibraryProjectBinPath); Assert.AreEqual (2, entries.Length, "#1"); Assert.IsTrue (File.Exists (library), "#2"); - Assert.IsTrue (File.Exists (library + ".mdb"), "#3"); + Assert.IsTrue (File.Exists (Path.ChangeExtension (library, ".pdb")), "#3"); var assemblyDef = AssemblyDefinition.ReadAssembly (library); var actualResources = assemblyDef.MainModule.Resources.Select (n => n.Name).ToList (); diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs index c29e485be0ac..d1babb5d5dc6 100644 --- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs +++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs @@ -49,11 +49,11 @@ public string[] GetCoreAppFiles (string platform, string config, string managedE coreFiles.Add ("mscorlib.dll"); if (config == "Debug") - coreFiles.Add ("mscorlib.dll.mdb"); + coreFiles.Add ("mscorlib.pdb"); coreFiles.Add (managedExe); if (config == "Debug") - coreFiles.Add (managedExe + ".mdb"); + coreFiles.Add (Path.ChangeExtension (managedExe, ".pdb")); coreFiles.Add (nativeExe); diff --git a/src/Makefile b/src/Makefile index 0a4bd18dab9e..fadb595884c6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -125,6 +125,7 @@ define IOS_GENERATOR_template $(IOS_BUILD_DIR)/$(1)/core.dll: $$(IOS_PMCS) $$(IOS_CORE_SOURCES) frameworks.sources @mkdir -p $(IOS_BUILD_DIR)/$(1) $$(call Q_PROF_PMCS,ios/$(1)) PMCS_PROFILE=$(3) $$(IOS_PMCS) -out:$$@ -target:library -debug -unsafe \ + -r:$(IOS_LIBDIR)/Mono.Security.dll \ -nowarn:219,618,114,414,1635,3021,$$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \ -define:COREBUILD $$(IOS_DEFINES) \ $$(IOS_CORE_SOURCES) @@ -171,6 +172,7 @@ IOS_VARIANTS_TARGETS += $(IOS_BUILD_DIR)/$(1)/$(3) $(IOS_BUILD_DIR)/$(1)/$(3): $$(IOS_SOURCES) $(IOS_BUILD_DIR)/$(4)/generated_sources $(PRODUCT_KEY_PATH) @mkdir -p $(IOS_BUILD_DIR)/$(1) $$(call Q_PROF_PMCS,ios/$(1)) PMCS_PROFILE=$(5) $$(IOS_PMCS) -out:$$@ -target:library -debug -unsafe -optimize \ + -r:$(IOS_LIBDIR)/Mono.Security.dll \ -keyfile:$(PRODUCT_KEY_PATH) $$(IOS_DEFINES) \ -nowarn:219,618,114,414,1635,3021,$$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \ $$(IOS_SOURCES) @$(IOS_BUILD_DIR)/$(4)/generated_sources @@ -236,7 +238,7 @@ $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll.mdb: $(IOS_BUILD_DIR)/reference/Xamar $(Q) cp $< $<.mdb . # -# System.Drawing.Primitives special handling as it has dependency on monotouch.dll/Xamarin.iOS.dll +# Assemblies which require special handling as they have dependency on monotouch.dll/Xamarin.iOS.dll # hence we cannot built it as part of Mono BCL # @@ -251,7 +253,14 @@ $(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/System.Drawing.Primitives $(IOS_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%_Facades/System.Drawing.Primitives.dll | $(IOS_BUILD_DIR)/compat/Facades $(IOS_BUILD_DIR)/reference/Facades $(Q) cp $< $@ -.SECONDARY: $(IOS_BUILD_DIR)/reference/Facades/System.Drawing.Primitives.dll $(IOS_BUILD_DIR)/compat/Facades/System.Drawing.Primitives.dll +$(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/netstandard.dll: $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll $(IOS_BUILD_DIR)/reference/OpenTK-1.0.dll + $(call Q_PROF_MCS,ios/unified) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/Facades/netstandard PROFILE=monotouch LIBRARY_SUBDIR=reference_Facades MONOTOUCH_MCS_FLAGS="-r:$(abspath $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll),$(abspath $(IOS_BUILD_DIR)/reference/OpenTK-1.0.dll)" + @touch $@ + +$(IOS_BUILD_DIR)/reference/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/netstandard.dll | $(IOS_BUILD_DIR)/reference/Facades + $(Q) cp $< $@ + +.SECONDARY: $(IOS_BUILD_DIR)/reference/Facades/System.Drawing.Primitives.dll $(IOS_BUILD_DIR)/compat/Facades/System.Drawing.Primitives.dll $(IOS_BUILD_DIR)/reference/Facades/netstandard.dll # # System.Net.Http is special @@ -277,11 +286,11 @@ IOS_EXTRA_SYSTEM_NET_HTTP_FILES = \ # build (into custom LIBRARY_SUBDIR) $(MONO_PATH)/mcs/class/lib/monotouch/compat/System.Net.Http.dll: $(IOS_EXTRA_SYSTEM_NET_HTTP_FILES) $(MONO_PATH)/mcs/class/lib/monotouch/System.Net.Http.dll $(IOS_BUILD_DIR)/compat/monotouch.dll - $(call Q_PROF_MCS,ios/compat) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch LIBRARY_SUBDIR=compat EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(IOS_BUILD_DIR)/compat/monotouch.dll) $(IOS_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMARIN_MODERN -d:SYSTEM_NET_HTTP" + $(call Q_PROF_MCS,ios/compat) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch LIBRARY_SUBDIR=compat MONOTOUCH_MCS_FLAGS=$(IOS_MCS_FLAGS) EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(IOS_BUILD_DIR)/compat/monotouch.dll) $(IOS_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMARIN_MODERN -d:SYSTEM_NET_HTTP" $(Q) touch $@ $(MONO_PATH)/mcs/class/lib/monotouch/reference/System.Net.Http.dll: $(IOS_EXTRA_SYSTEM_NET_HTTP_FILES) $(MONO_PATH)/mcs/class/lib/monotouch/System.Net.Http.dll $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll - $(call Q_PROF_MCS,ios/unified) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch LIBRARY_SUBDIR=reference EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll) $(IOS_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMCORE_2_0 -D:XAMARIN_MODERN -D:SYSTEM_NET_HTTP -D:UNIFIED -D:__UNIFIED__" + $(call Q_PROF_MCS,ios/unified) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch LIBRARY_SUBDIR=reference MONOTOUCH_MCS_FLAGS=$(IOS_MCS_FLAGS) EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll) $(IOS_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMCORE_2_0 -D:XAMARIN_MODERN -D:SYSTEM_NET_HTTP -D:UNIFIED -D:__UNIFIED__" $(Q) touch $@ $(MONO_PATH)/mcs/class/lib/monotouch/reference/System.Net.Http.dll.mdb: $(MONO_PATH)/mcs/class/lib/monotouch/reference/System.Net.Http.dll @@ -295,11 +304,9 @@ $(IOS_BUILD_DIR)/%/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%/S $(Q) cp $< $@ $(call Q_PROF_SN,ios/$@) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) -# mdb rebase (one target for both compat+reference) +# (one target for both compat+reference) $(IOS_BUILD_DIR)/%/System.Net.Http.dll.mdb: $(MONO_PATH)/mcs/class/lib/monotouch/%/System.Net.Http.dll.mdb | $(IOS_BUILD_DIR)/compat $(IOS_BUILD_DIR)/reference - @# mdb-rebase the mdb $(Q) cp $< $@ - $(call Q_PROF_GEN,ios/$*) $(MDB_REBASE) -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ .SECONDARY: $(IOS_BUILD_DIR)/reference/System.Net.Http.dll $(IOS_BUILD_DIR)/compat/System.Net.Http.dll @@ -356,6 +363,7 @@ IOS_TARGETS += \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/OpenTK-1.0.dll.config \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/System.Net.Http.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/System.Net.Http.dll.mdb \ + $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/Facades/netstandard.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/32bits/Xamarin.iOS.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/32bits/Xamarin.iOS.dll.mdb \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/64bits/Xamarin.iOS.dll \ @@ -559,6 +567,7 @@ $(MAC_BUILD_DIR)/$(1)/$(2): $(MAC_BUILD_DIR)/$(3)/generated-sources $(MAC_SOURCE $$(call Q_PROF_PMCS,mac/$(1)) PMCS_PROFILE=$(5) $(MAC_BUILD_DIR)/$(3)/pmcs \ -out:$$@ -target:library -debug -unsafe \ $$(MAC_COMMON_DEFINES),OBJECT_REF_TRACKING \ + -r:Mono.Security.dll \ -keyfile:$(SN_KEY) \ -nowarn:3021,1635,612,618,0219,0414,$(MAC_WARNINGS_TO_FIX) \ $(4) \ @@ -586,7 +595,14 @@ $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/System.Drawing.Primitives.dl $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/System.Drawing.Primitives.dll $(MAC_BUILD_DIR)/mobile/Facades $(Q) cp $< $@ -.SECONDARY: $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll +$(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/netstandard.dll: $(MAC_BUILD_DIR)/mobile-reference/Xamarin.Mac.dll $(MAC_BUILD_DIR)/mobile-reference/OpenTK.dll + $(call Q_PROF_MCS,xammac) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/Facades/netstandard PROFILE=xammac LIBRARY_SUBDIR=reference_Facades XAMMAC_MCS_FLAGS="-r:$(abspath $(MAC_BUILD_DIR)/mobile-reference/Xamarin.Mac.dll),$(abspath $(MAC_BUILD_DIR)/mobile-reference/OpenTK.dll)" + @touch $@ + +$(MAC_BUILD_DIR)/mobile/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/netstandard.dll $(MAC_BUILD_DIR)/mobile/Facades + $(Q) cp $< $@ + +.SECONDARY: $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll $(MAC_BUILD_DIR)/mobile/Facades/netstandard.dll $(MAC_BUILD_DIR)/compat/XamMac.CFNetwork.dll: $(MAC_CFNETWORK_SOURCES) $(MAC_BUILD_DIR)/compat/XamMac.dll $(SN_KEY) @@ -607,6 +623,7 @@ MAC_VARIANTS_TARGETS = \ $(MAC_BUILD_DIR)/mobile-reference/Xamarin.Mac.dll \ $(MAC_BUILD_DIR)/full-reference/Xamarin.Mac.dll \ $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll \ + $(MAC_BUILD_DIR)/mobile/Facades/netstandard.dll \ $(MAC_BUILD_DIR)/compat/XamMac.CFNetwork.dll INSTALL_TARGETS+=install-mac @@ -654,10 +671,14 @@ MAC_TARGETS += \ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/Version \ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/pkgconfig/xammac.pc \ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades/System.Drawing.Primitives.dll \ + $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades/netstandard.dll $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades/System.Drawing.Primitives.dll: $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades $(Q) install -m 0755 $< $@ +$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades/netstandard.dll: $(MAC_BUILD_DIR)/mobile/Facades/netstandard.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/Facades + $(Q) install -m 0755 $< $@ + $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/XamMac.dll: $(MAC_BUILD_DIR)/compat/XamMac.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono $(Q) install -m 0755 $< $@ $(Q) install -m 0644 $<.mdb $@.mdb @@ -843,6 +864,15 @@ $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite.dll: $(WATCHOS_TOUCHUNIT_SOURCE $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite.dll.mdb: $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite.dll @touch $@ +$(MONO_PATH)/mcs/class/lib/monotouch_watch/reference_Facades/netstandard.dll: $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll + $(call Q_PROF_MCS,watch) $(MAKE) $(if $(V),,-s) -C $(WATCH_MONO_PATH)/mcs/class/Facades/netstandard PROFILE=monotouch_watch LIBRARY_SUBDIR=reference_Facades MONOTOUCH_MCS_FLAGS="-r:$(abspath $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll)" + @touch $@ + +$(WATCH_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/%_Facades/netstandard.dll | $(WATCH_BUILD_DIR)/reference/Facades + $(Q) cp $< $@ + +.SECONDARY: $(WATCH_BUILD_DIR)/reference/Facades/netstandard.dll + # System.Net.Http.dll is special. See comment in src/Makefile WATCH_EXTRA_SYSTEM_NET_HTTP_FILES = \ @@ -852,7 +882,7 @@ WATCH_EXTRA_SYSTEM_NET_HTTP_FILES = \ # build (into custom LIBRARY_SUBDIR) $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.dll: $(WATCH_EXTRA_SYSTEM_NET_HTTP_FILES) $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/System.Net.Http.dll $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll - $(call Q_PROF_MCS,watch) $(MAKE) $(if $(V),,-s) -C $(WATCH_MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch_watch LIBRARY_SUBDIR=reference EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll) $(WATCH_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMCORE_2_0 -D:XAMCORE_3_0 -D:XAMARIN_MODERN -D:SYSTEM_NET_HTTP -D:UNIFIED -D:__UNIFIED__" + $(call Q_PROF_MCS,watch) $(MAKE) $(if $(V),,-s) -C $(WATCH_MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch_watch LIBRARY_SUBDIR=reference MONOTOUCH_MCS_FLAGS=$(IOS_MCS_FLAGS) EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll) $(WATCH_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMCORE_2_0 -D:XAMCORE_3_0 -D:XAMARIN_MODERN -D:SYSTEM_NET_HTTP -D:UNIFIED -D:__UNIFIED__" $(Q) touch $@ $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.dll.mdb: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.dll @@ -863,11 +893,8 @@ $(WATCH_BUILD_DIR)/reference/System.Net.Http.dll: $(WATCH_MONO_PATH)/mcs/class/l $(Q) cp $< $@ $(call Q_PROF_SN,watch) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) -# mdb rebase $(WATCH_BUILD_DIR)/reference/System.Net.Http.dll.mdb: $(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.dll.mdb - @# mdb-rebase the mdb $(Q) cp $< $@ - $(call Q_PROF_GEN,watch) $(MDB_REBASE) -i $(abspath $(WATCH_MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ .SECONDARY: $(WATCH_BUILD_DIR)/reference/System.Net.Http.dll @@ -888,6 +915,7 @@ WATCH_TARGETS_DIRS += \ $(WATCH_BUILD_DIR)/watch \ $(WATCH_BUILD_DIR)/watch-32 \ $(WATCH_BUILD_DIR)/reference \ + $(WATCH_BUILD_DIR)/reference/Facades \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/share/doc/Xamarin.WatchOS\ @@ -898,6 +926,7 @@ WATCH_TARGETS += \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/Xamarin.WatchOS.dll.mdb \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/32bits/Xamarin.WatchOS.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/32bits/Xamarin.WatchOS.dll.mdb \ + $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/Facades/netstandard.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/System.Net.Http.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/System.Net.Http.dll.mdb \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/MonoTouch.NUnitLite.dll \ @@ -907,6 +936,9 @@ WATCH_TARGETS += \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/%.dll: $(WATCH_BUILD_DIR)/reference/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS $(Q) install -m 0755 $< $@ +$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/Facades/%.dll: $(WATCH_BUILD_DIR)/reference/Facades/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/Facades + $(Q) install -m 0755 $< $@ + $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/%.mdb: $(WATCH_BUILD_DIR)/reference/%.mdb | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS $(Q) install -m 0644 $< $@ @@ -1022,6 +1054,7 @@ $(TVOS_BUILD_DIR)/tvos/generated_sources: $(TVOS_GENERATOR) $(TVOS_APIS) $(TVOS_ $(TVOS_BUILD_DIR)/tvos-64/Xamarin.TVOS.dll: $(TVOS_SOURCES) $(TVOS_BUILD_DIR)/tvos/generated_sources $(PRODUCT_KEY_PATH) | $(TVOS_BUILD_DIR)/tvos-64 $(call Q_PROF_PMCS,tvos) PMCS_PROFILE=tvos-64 $(TVOS_PMCS) -out:$@ -target:library -debug -unsafe -optimize \ -keyfile:$(PRODUCT_KEY_PATH) $(TVOS_DEFINES) \ + -r:$(TVOS_LIBDIR)/Mono.Security.dll \ -nowarn:219,618,114,414,1635,3021,$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \ $(TVOS_SOURCES) @$(TVOS_BUILD_DIR)/tvos/generated_sources @@ -1064,7 +1097,14 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference_Facades/System.Drawing.Primiti $(TVOS_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%_Facades/System.Drawing.Primitives.dll | $(TVOS_BUILD_DIR)/reference/Facades $(Q) cp $< $@ -.SECONDARY: $(IOS_BUILD_DIR)/reference/Facades/System.Drawing.Primitives.dll +$(MONO_PATH)/mcs/class/lib/monotouch_tv/reference_Facades/netstandard.dll: $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll $(TVOS_BUILD_DIR)/reference/OpenTK-1.0.dll + $(call Q_PROF_MCS,tvos) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/Facades/netstandard PROFILE=monotouch_tv LIBRARY_SUBDIR=reference_Facades MONOTOUCH_MCS_FLAGS="-r:$(abspath $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll),$(abspath $(TVOS_BUILD_DIR)/reference/OpenTK-1.0.dll)" + @touch $@ + +$(TVOS_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%_Facades/netstandard.dll | $(TVOS_BUILD_DIR)/reference/Facades + $(Q) cp $< $@ + +.SECONDARY: $(IOS_BUILD_DIR)/reference/Facades/System.Drawing.Primitives.dll $(IOS_BUILD_DIR)/reference/Facades/netstandard.dll # System.Net.Http.dll is special. See comment in src/Makefile @@ -1077,7 +1117,7 @@ TVOS_EXTRA_SYSTEM_NET_HTTP_FILES = \ # build (into custom LIBRARY_SUBDIR) $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.dll: $(TVOS_EXTRA_SYSTEM_NET_HTTP_FILES) $(MONO_PATH)/mcs/class/lib/monotouch_tv/System.Net.Http.dll $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll - $(call Q_PROF_MCS,tvos) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch_tv LIBRARY_SUBDIR=reference EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll) $(TVOS_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMCORE_2_0 -D:XAMCORE_3_0 -D:XAMARIN_MODERN -D:SYSTEM_NET_HTTP -D:UNIFIED -D:__UNIFIED__" + $(call Q_PROF_MCS,tvos) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/System.Net.Http PROFILE=monotouch_tv LIBRARY_SUBDIR=reference MONOTOUCH_MCS_FLAGS=$(IOS_MCS_FLAGS) EXTRA_LIB_MCS_FLAGS="-r:$(abspath $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll) $(TVOS_EXTRA_SYSTEM_NET_HTTP_FILES) -D:XAMCORE_2_0 -D:XAMCORE_3_0 -D:XAMARIN_MODERN -D:SYSTEM_NET_HTTP -D:UNIFIED -D:__UNIFIED__" $(Q) touch $@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.dll.mdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.dll @@ -1088,11 +1128,8 @@ $(TVOS_BUILD_DIR)/reference/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/mono $(Q) cp $< $@ $(call Q_PROF_SN,tvos) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) -# mdb rebase $(TVOS_BUILD_DIR)/reference/System.Net.Http.dll.mdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.dll.mdb - @# mdb-rebase the mdb $(Q) cp $< $@ - $(call Q_PROF_GEN,tvos) $(MDB_REBASE) -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@ .SECONDARY: $(TVOS_BUILD_DIR)/reference/System.Net.Http.dll @@ -1136,6 +1173,7 @@ TVOS_TARGETS += \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll.mdb \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll.config \ + $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/Facades/netstandard.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.Dialog-1.dll \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.Dialog-1.dll.mdb \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.NUnitLite.dll \ diff --git a/src/ObjCRuntime/Runtime.cs b/src/ObjCRuntime/Runtime.cs index f9a8e68230f2..5778dbb26a02 100644 --- a/src/ObjCRuntime/Runtime.cs +++ b/src/ObjCRuntime/Runtime.cs @@ -200,10 +200,6 @@ unsafe static void Initialize (InitializationOptions* options) Class.Initialize (options); InitializePlatform (options); -#if !COREBUILD && (XAMARIN_APPLETLS || XAMARIN_NO_TLS) - MonoTlsProviderFactory._PrivateFactoryDelegate = TlsProviderFactoryCallback; -#endif - #if !XAMMAC_SYSTEM_MONO UseAutoreleasePoolInThreadPool = true; #endif @@ -293,13 +289,6 @@ static MarshalManagedExceptionMode OnMarshalManagedException (int exception_hand return managed_exception_mode; } -#if !COREBUILD && (XAMARIN_APPLETLS || XAMARIN_NO_TLS) - static MonoTlsProvider TlsProviderFactoryCallback () - { - return new AppleTlsProvider (); - } -#endif - static IntPtr GetFunctionPointer (Delegate d) { delegates.Add (d); diff --git a/src/xammac.tmpl.csproj b/src/xammac.tmpl.csproj index 2825c53f7407..df4895e4a03c 100644 --- a/src/xammac.tmpl.csproj +++ b/src/xammac.tmpl.csproj @@ -33,6 +33,7 @@ + diff --git a/tests/common/mac/MacTestMain.cs b/tests/common/mac/MacTestMain.cs index aae4d58e66f8..c04f3b3f46af 100644 --- a/tests/common/mac/MacTestMain.cs +++ b/tests/common/mac/MacTestMain.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.InteropServices; #if XAMCORE_2_0 using AppKit; using Foundation; @@ -51,6 +52,9 @@ static void RunTests () #endif } + [DllImport ("/usr/lib/libSystem.dylib")] + static extern void _exit (int exit_code); + #if !NO_GUI_TESTING class NSRunLoopIntegration : NSObject, IMainLoopIntegration { @@ -70,7 +74,7 @@ public void InvokeOnMainLoop (InvokerHelper helper) public void Shutdown () { - Environment.Exit (TestRunner.ExitCode); + _exit (TestRunner.ExitCode); } } #else @@ -91,7 +95,7 @@ public void InvokeOnMainLoop (InvokerHelper helper) public void Shutdown () { - Environment.Exit (TestRunner.ExitCode); + _exit (TestRunner.ExitCode); } } #endif diff --git a/tests/linker-ios/dont link/CanaryTest.cs b/tests/linker-ios/dont link/CanaryTest.cs deleted file mode 100644 index d66b5cee8e69..000000000000 --- a/tests/linker-ios/dont link/CanaryTest.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Reflection; -using NUnit.Framework; - -namespace DontLink { - - [TestFixture] - public class CanaryTest { - - static void AssertCallStaticReturnBool (Type t, string method, bool expected) - { - AssertCallStaticReturnBool (t, method, null, expected); - } - - static void AssertCallStaticReturnBool (Type t, string method, object [] parameters, bool expected) - { - var m = t.GetMethod (method, BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); - Assert.NotNull (m, $"{t.Name}::{method} is missing"); - var result = (bool)m.Invoke (null, parameters); - Assert.That (result, Is.EqualTo (expected), $"{t.Name}::{method} returned `{result}` not the expected `{expected}`"); - } - - [Test] - public void Mscorlib () - { - // type is internal - but we need to ensure it does not change the value it returns (without a corresponding update to InlinerSubStep.cs) - var bc = Type.GetType ("System.Runtime.Versioning.BinaryCompatibility, mscorlib"); - Assert.IsNotNull (bc, "BinaryCompatibility"); - AssertCallStaticReturnBool (bc, "get_TargetsAtLeast_Desktop_V4_5", true); - AssertCallStaticReturnBool (bc, "get_TargetsAtLeast_Desktop_V4_5_1", false); - } - } -} diff --git a/tests/linker-ios/dont link/dont link.csproj b/tests/linker-ios/dont link/dont link.csproj index 5b5abaeed9e9..6b30d76bd7da 100644 --- a/tests/linker-ios/dont link/dont link.csproj +++ b/tests/linker-ios/dont link/dont link.csproj @@ -150,7 +150,6 @@ - diff --git a/tests/linker-ios/link all/LinkAllTest.cs b/tests/linker-ios/link all/LinkAllTest.cs index d494ba8e6302..914177993848 100644 --- a/tests/linker-ios/link all/LinkAllTest.cs +++ b/tests/linker-ios/link all/LinkAllTest.cs @@ -446,9 +446,12 @@ public void Bug20363 () string GetField (object o, string s) { - var f = o.GetType ().GetField (s, BindingFlags.Instance | BindingFlags.NonPublic); - if (f == null) + var type = o.GetType (); + var f1 = type.GetField (s, BindingFlags.Instance | BindingFlags.NonPublic); + var f2 = type.GetField (s + "i__Field", BindingFlags.Instance | BindingFlags.NonPublic); + if (f1 == null && f2 == null) return s; + //Console.WriteLine (f.GetValue (o)); return null; } @@ -526,11 +529,7 @@ public void AppleTls () { // make test work for classic (monotouch) and unified (iOS, tvOS and watchOS) var fqn = typeof (NSObject).AssemblyQualifiedName.Replace ("Foundation.NSObject", "Security.Tls.AppleTlsProvider"); -#if __WATCHOS__ Assert.Null (Type.GetType (fqn), "Should NOT be included (no SslStream or Socket support)"); -#else - Assert.NotNull (Type.GetType (fqn), "Should be included"); -#endif } } } diff --git a/tests/linker-ios/link sdk/CanaryTest.cs b/tests/linker-ios/link sdk/CanaryTest.cs index 56121cf34c64..ecf00f336dd7 100644 --- a/tests/linker-ios/link sdk/CanaryTest.cs +++ b/tests/linker-ios/link sdk/CanaryTest.cs @@ -29,7 +29,6 @@ public void Mscorlib () { // Not critical (on failure) but not optimal - the linker should be able to remove those types entirely AssertAbsentType ("System.Security.SecurityManager, mscorlib"); - AssertAbsentType ("System.Runtime.Versioning.BinaryCompatibility, mscorlib"); } } } diff --git a/tests/linker-ios/link sdk/LinkSdkRegressionTest.cs b/tests/linker-ios/link sdk/LinkSdkRegressionTest.cs index d1de3b70062e..48c4c62e0e73 100644 --- a/tests/linker-ios/link sdk/LinkSdkRegressionTest.cs +++ b/tests/linker-ios/link sdk/LinkSdkRegressionTest.cs @@ -1041,14 +1041,12 @@ public void OldTlsProvider_LinkedOut () Assert.Null (Type.GetType (fqn), "Should not be included"); } -#if !__WATCHOS__ [Test] public void AppleTls_Default () { // make test work for classic (monotouch) and unified (iOS, tvOS and watchOS) var fqn = typeof (NSObject).AssemblyQualifiedName.Replace ("Foundation.NSObject", "Security.Tls.AppleTlsProvider"); - Assert.NotNull (Type.GetType (fqn), "Should be included"); + Assert.Null (Type.GetType (fqn), "Should be included"); } -#endif // !__WATCHOS__ } } \ No newline at end of file diff --git a/tests/linker-ios/link sdk/OptimizeGeneratedCodeTest.cs b/tests/linker-ios/link sdk/OptimizeGeneratedCodeTest.cs index 9d72ed6882ac..7dd54a95d53d 100644 --- a/tests/linker-ios/link sdk/OptimizeGeneratedCodeTest.cs +++ b/tests/linker-ios/link sdk/OptimizeGeneratedCodeTest.cs @@ -184,8 +184,13 @@ public void IntPtrSizeOptimization () } // the optimization is turned off in case of fat apps (32/64 bits) - if (IsMainExecutableDual ()) + if (IsMainExecutableDual ()) { +#if DEBUG + Assert.Inconclusive ("debug IL code"); +#else Assert.IsFalse (contains11 && contains22, "neither instructions removed"); +#endif + } // even if disabled this condition remains Assert.IsFalse (!contains11 && !contains22, "both instructions removed"); } diff --git a/tests/linker-ios/link sdk/link sdk.csproj b/tests/linker-ios/link sdk/link sdk.csproj index d107be0c23bd..1eeeb4b4d140 100644 --- a/tests/linker-ios/link sdk/link sdk.csproj +++ b/tests/linker-ios/link sdk/link sdk.csproj @@ -134,6 +134,7 @@ + diff --git a/tests/mtouch/MTouch.cs b/tests/mtouch/MTouch.cs index ad0168da95a0..471cfa3f1995 100644 --- a/tests/mtouch/MTouch.cs +++ b/tests/mtouch/MTouch.cs @@ -354,9 +354,9 @@ public void SymbolicationData (Target target, Config configuration, PackageMdb p var msymDir = appDir + ".mSYM"; var is_dual_asm = !is_sim && extra_mtouch_args.Contains ("--abi") && extra_mtouch_args.Contains (","); if (!is_dual_asm) { - Assert.AreEqual (has_mdb, File.Exists (Path.Combine (appDir, "mscorlib.dll.mdb")), "#mdb"); + Assert.AreEqual (has_mdb, File.Exists (Path.Combine (appDir, "mscorlib.pdb")), "#pdb"); } else { - Assert.AreEqual (has_mdb, File.Exists (Path.Combine (appDir, ".monotouch-32", "mscorlib.dll.mdb")), "#mdb"); + Assert.AreEqual (has_mdb, File.Exists (Path.Combine (appDir, ".monotouch-32", "mscorlib.pdb")), "#pdb"); } if (has_msym) { @@ -870,7 +870,6 @@ public void MT0105 () mtouch.AssertError (105, "No assembly build target was specified for 'System'."); mtouch.AssertError (105, "No assembly build target was specified for 'System.Xml'."); mtouch.AssertError (105, "No assembly build target was specified for 'System.Core'."); - mtouch.AssertError (105, "No assembly build target was specified for 'Mono.Dynamic.Interpreter'."); mtouch.AssertError (105, "No assembly build target was specified for 'Xamarin.iOS'."); } } diff --git a/tools/common/StaticRegistrar.cs b/tools/common/StaticRegistrar.cs index 4a072a0b0c16..8da2a2118199 100644 --- a/tools/common/StaticRegistrar.cs +++ b/tools/common/StaticRegistrar.cs @@ -853,7 +853,7 @@ protected override TypeReference GetSystemVoidType () } if (corlib == null) { - corlib = first.MainModule.AssemblyResolver.Resolve (AssemblyNameReference.Parse ("mscorlib")); + corlib = first.MainModule.AssemblyResolver.Resolve (AssemblyNameReference.Parse ("mscorlib"), new ReaderParameters ()); } foreach (var type in corlib.MainModule.Types) { if (type.Namespace == "System" && type.Name == "Void") diff --git a/tools/linker/MobileProfile.cs b/tools/linker/MobileProfile.cs index 986d9f7647b1..31814dd49dde 100644 --- a/tools/linker/MobileProfile.cs +++ b/tools/linker/MobileProfile.cs @@ -171,6 +171,7 @@ public abstract class MobileProfile : BaseProfile { "System.Threading.ThreadPool", "System.Threading.Timer", "System.Threading", + "System.ValueTuple", "System.Xml.ReaderWriter", "System.Xml.XDocument", "System.Xml.XPath.XDocument", @@ -178,6 +179,7 @@ public abstract class MobileProfile : BaseProfile { "System.Xml.XmlDocument", "System.Xml.XmlSerializer", "System.Xml.Xsl.Primitives", + "netstandard" }; protected override bool IsSdk (string assemblyName) diff --git a/tools/linker/MobileSweepStep.cs b/tools/linker/MobileSweepStep.cs index cc71d7953256..1583a93d41ee 100644 --- a/tools/linker/MobileSweepStep.cs +++ b/tools/linker/MobileSweepStep.cs @@ -13,6 +13,11 @@ namespace Xamarin.Linker { // would produce invalid assemblies public class MobileSweepStep : SweepStep { + public MobileSweepStep (bool sweepSymbols) + : base (sweepSymbols) + { + } + public AssemblyAction CurrentAction { get; private set; } protected override void Process () diff --git a/tools/linker/MonoTouch.Tuner/InlinerSubStep.cs b/tools/linker/MonoTouch.Tuner/InlinerSubStep.cs index f6a76a04f369..128b831d27b5 100644 --- a/tools/linker/MonoTouch.Tuner/InlinerSubStep.cs +++ b/tools/linker/MonoTouch.Tuner/InlinerSubStep.cs @@ -53,17 +53,6 @@ protected override void Process (MethodDefinition method) break; } } - // this removes System.Runtime.Versioning's BinaryCompatibility / BinaryCompatibilityMap / CompatibilitySwitch / TargetFrameworkId - if (!mr.HasParameters && mr.DeclaringType.Is ("System.Runtime.Versioning", "BinaryCompatibility")) { - switch (mr.Name) { - case "get_TargetsAtLeast_Desktop_V4_5": - il.OpCode = OpCodes.Ldc_I4_1; - break; - case "get_TargetsAtLeast_Desktop_V4_5_1": - il.OpCode = OpCodes.Ldc_I4_0; - break; - } - } } } } diff --git a/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs b/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs index 9c0d7db90dd3..d01a56b04178 100644 --- a/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs +++ b/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs @@ -142,16 +142,18 @@ void ProcessSystemCore (TypeDefinition type) case "System.Linq.Expressions": switch (type.Name) { case "LambdaExpression": - var expr_t = type.Module.GetType ("System.Linq.Expressions.Expression`1"); - if (expr_t != null) - MarkNamedMethod (expr_t, "Create"); + var expr_t = type.Module.GetType ("System.Linq.Expressions.ExpressionCreator`1"); + if (expr_t != null) { + MarkNamedMethod (expr_t, "CreateExpressionFunc"); + } break; } break; - case "System.Linq.Expressions.Compiler": + case "System.Linq.Expressions.Interpreter": switch (type.Name) { - case "LambdaCompiler": - MarkMethods (GetType ("Mono.Dynamic.Interpreter", "Microsoft.Scripting.Interpreter.LightLambda")); + case "LightDelegateCreator": + // TODO: Should be more selective + MarkMethods (type.Module.GetType ("System.Linq.Expressions.Interpreter.LightLambda")); break; } break; diff --git a/tools/linker/MonoTouch.Tuner/MonoTouchSweepStep.cs b/tools/linker/MonoTouch.Tuner/MonoTouchSweepStep.cs index 0b53441034f1..f659c9aacb86 100644 --- a/tools/linker/MonoTouch.Tuner/MonoTouchSweepStep.cs +++ b/tools/linker/MonoTouch.Tuner/MonoTouchSweepStep.cs @@ -10,6 +10,11 @@ namespace MonoTouch.Tuner { public class MonoTouchSweepStep : MobileSweepStep { + public MonoTouchSweepStep (LinkerOptions options) + : base (options.LinkSymbols) + { + } + protected override void SweepAssembly (AssemblyDefinition assembly) { base.SweepAssembly (assembly); diff --git a/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs b/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs index b582eb8c2a3d..764fa9ecb65e 100644 --- a/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs +++ b/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs @@ -135,7 +135,7 @@ void ProcessCalls (MethodDefinition caller, int i) if (!mr.DeclaringType.Is ("System", "IntPtr")) return; - if (ins.Next.OpCode != OpCodes.Ldc_I4_8 || ins.Next.Next.OpCode != OpCodes.Bne_Un) + if (!(ins.Next.OpCode == OpCodes.Ldc_I4_8 && (ins.Next.Next.OpCode == OpCodes.Bne_Un || ins.Next.Next.OpCode == OpCodes.Bne_Un_S))) return; #if DEBUG Console.WriteLine ("\t{0} get_Size {1} bits", caller, Arch * 8); diff --git a/tools/mmp/Makefile b/tools/mmp/Makefile index bb4fbe8785a0..6965c58b90b4 100644 --- a/tools/mmp/Makefile +++ b/tools/mmp/Makefile @@ -16,9 +16,8 @@ $(MONO_CECIL_MDB_DLL): $(MONO_CECIL_DLL) $(CECIL_PATH)/symbols/mdb/Mono.Cecil.Md BCL_LOCATION=$(MONO_PATH)/mcs/class/lib/xammac_net_4_5 -TOOLS_DIR=$(MONO_PATH)/mcs/tools -LINKER_DIR=$(TOOLS_DIR)/linker -TUNER_DIR=$(TOOLS_DIR)/tuner +LINKER_DIR=$(LINKER_TOOLS_PATH)/linker +TUNER_DIR=$(LINKER_TOOLS_PATH)/tuner linker_sources = \ $(LINKER_DIR)/Mono.Linker/Pipeline.cs \ @@ -134,6 +133,7 @@ LOCAL_MMP = \ mmp.exe: Makefile $(MONO_CECIL_DLL) $(MONO_CECIL_MDB_DLL) $(mmp_sources) config config_mobile Info.plist.tmpl $(tuner_sources) $(linker_resources) $(Q_MCS) $(SYSTEM_MCS) -unsafe -out:mmp.exe $(DEFINES) -r:$(MONO_CECIL_DLL) -r:$(MONO_CECIL_MDB_DLL) -r:Mono.Security.dll -resource:config -resource:config_mobile -resource:machine.4_5.config -resource:Info.plist.tmpl $(linker_resources:%=-resource:%) $(tuner_sources) $(mmp_sources) + $(Q) cp $(MONO_CECIL_DLL) $(MONO_CECIL_MDB_DLL) . Mono.Cecil.dll: $(MONO_CECIL_DLL) $(Q) cp $<* $(dir $@) @@ -172,7 +172,7 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp/Xamarin.Mac.registrar.%.a: Xa $(MMP_DIRECTORIES): $(Q) mkdir -p $@ -GENERATE_PART_REGISTRAR = $(Q_GEN) $(SYSTEM_MONO) --debug mmp.exe --xamarin-framework-directory=$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR) -q --runregistrar:$(abspath $@) --sdkroot $(XCODE_DEVELOPER_ROOT) --sdk $(OSX_SDK_VERSION) $< --registrar:static +GENERATE_PART_REGISTRAR = $(Q_GEN) $(SYSTEM_MONO) --debug mmp.exe --xamarin-framework-directory=$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR) -q --runregistrar:$(abspath $@) --sdkroot $(XCODE_DEVELOPER_ROOT) --sdk $(OSX_SDK_VERSION) $< --registrar:static Xamarin.Mac.registrar.mobile.i386.m: $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/i386/mobile/Xamarin.Mac.dll $(LOCAL_MMP) $(GENERATE_PART_REGISTRAR) --target-framework Xamarin.Mac,v1.0 --arch=i386 diff --git a/tools/mmp/Tuning.cs b/tools/mmp/Tuning.cs index 49a47744c463..be3412d8850d 100644 --- a/tools/mmp/Tuning.cs +++ b/tools/mmp/Tuning.cs @@ -163,7 +163,7 @@ static Pipeline CreatePipeline (LinkerOptions options) pipeline.AppendStep (new MonoMacMarkStep ()); pipeline.AppendStep (new MacRemoveResources (options)); - pipeline.AppendStep (new MobileSweepStep ()); + pipeline.AppendStep (new MobileSweepStep (options.LinkSymbols)); pipeline.AppendStep (new CleanStep ()); pipeline.AppendStep (new MonoMacNamespaces ()); diff --git a/tools/mmp/mmp.csproj b/tools/mmp/mmp.csproj index 6dd3e44c92a0..aa1d39968b48 100644 --- a/tools/mmp/mmp.csproj +++ b/tools/mmp/mmp.csproj @@ -61,115 +61,115 @@ - + Mono.Tuner\ApplyPreserveAttributeBase.cs - + Mono.Tuner\CecilRocks.cs - + Mono.Tuner\CustomizeActions.cs - + Mono.Tuner\Dispatcher.cs - + Mono.Tuner\Extensions.cs - + Mono.Tuner\PreserveCrypto.cs - + Mono.Tuner\PreserveSoapHttpClients.cs - + Mono.Tuner\RemoveAttributesBase.cs - + Mono.Tuner\RemoveResources.cs - + Mono.Tuner\RemoveSecurity.cs - + Mono.Tuner\TunerAnnotations.cs - + Mono.Linker\Annotations.cs - + Mono.Linker\AssemblyAction.cs - + Mono.Linker\AssemblyResolver.cs - + Mono.Linker\I18nAssemblies.cs - + Mono.Linker\IXApiVisitor.cs - + Mono.Linker\LinkContext.cs - + Mono.Linker\MethodAction.cs - + Mono.Linker\Pipeline.cs - + Mono.Linker\TypePreserve.cs - + Mono.Linker\XApiReader.cs - + Mono.Linker.Steps\BaseStep.cs - + Mono.Linker.Steps\BlacklistStep.cs - + Mono.Linker.Steps\CleanStep.cs - + Mono.Linker.Steps\IStep.cs - + Mono.Linker.Steps\LoadI18nAssemblies.cs - + Mono.Linker.Steps\LoadReferencesStep.cs - + Mono.Linker.Steps\MarkStep.cs - + Mono.Linker.Steps\OutputStep.cs - + Mono.Linker.Steps\RegenerateGuidStep.cs - + Mono.Linker.Steps\ResolveFromAssemblyStep.cs - + Mono.Linker.Steps\ResolveFromXApiStep.cs - + Mono.Linker.Steps\ResolveFromXmlStep.cs - + Mono.Linker.Steps\ResolveStep.cs - + Mono.Linker.Steps\SweepStep.cs - + Mono.Linker.Steps\TypeMapStep.cs - + Mono.Tuner\Profile.cs diff --git a/tools/mtouch/Assembly.cs b/tools/mtouch/Assembly.cs index 7fb7542dded3..b5f442a6fbea 100644 --- a/tools/mtouch/Assembly.cs +++ b/tools/mtouch/Assembly.cs @@ -116,9 +116,15 @@ public bool CopyAssembly (string source, string target, bool copy_mdb = true, bo Driver.Log (3, "Target '{0}' is up-to-date.", target); } - // Update the mdb even if the assembly didn't change. - if (copy_mdb && File.Exists (source + ".mdb")) - Application.UpdateFile (source + ".mdb", target + ".mdb", true); + // Update the debug symbols file even if the assembly didn't change. + if (copy_mdb) { + if (File.Exists (source + ".mdb")) + Application.UpdateFile (source + ".mdb", target + ".mdb", true); + + var spdb = Path.ChangeExtension (source, "pdb"); + if (File.Exists (spdb)) + Application.UpdateFile (spdb, Path.ChangeExtension (target, "pdb"), true); + } CopyConfigToDirectory (Path.GetDirectoryName (target)); } catch (Exception e) { @@ -135,6 +141,10 @@ public void CopyMdbToDirectory (string directory) string mdb_target = Path.Combine (directory, FileName + ".mdb"); Application.UpdateFile (mdb_src, mdb_target); } + + var spdb = Path.ChangeExtension (FullPath, "pdb"); + if (File.Exists (spdb)) + Application.UpdateFile (spdb, Path.Combine (directory, Path.ChangeExtension (FileName, "pdb")), true); } public void CopyMSymToDirectory (string directory) diff --git a/tools/mtouch/Makefile b/tools/mtouch/Makefile index 651f8ad6791b..f4e528490866 100644 --- a/tools/mtouch/Makefile +++ b/tools/mtouch/Makefile @@ -11,9 +11,8 @@ CECIL_PATH=$(MONO_PATH)/external/cecil MONO_CECIL_FILES = $(wildcard $(CECIL_PATH)/*.cs) $(wildcard $(CECIL_PATH)/*/*.cs) $(wildcard $(CECIL_PATH)/*/*/*.cs) $(wildcard $(CECIL_PATH)/*/*/*/*.cs) $(wildcard $(CECIL_PATH)/*/*/*/*/*.cs) MONO_DIR=$(MONO_PATH) -MCS_TOOLS_DIR=$(MONO_DIR)/mcs/tools -MONOLINKER=$(MCS_TOOLS_DIR)/linker -MONO_TUNER=$(MCS_TOOLS_DIR)/tuner +MONOLINKER=$(LINKER_TOOLS_PATH)/linker +MONO_TUNER=$(LINKER_TOOLS_PATH)/tuner LINKER_RESOURCES = \ $(LINKER_DIR)/Descriptors/mscorlib.xml diff --git a/tools/mtouch/Target.cs b/tools/mtouch/Target.cs index 42caa4e26752..2ad0fd595405 100644 --- a/tools/mtouch/Target.cs +++ b/tools/mtouch/Target.cs @@ -630,6 +630,11 @@ public void ManagedLink () inputs.Add (input + ".mdb"); outputs.Add (output + ".mdb"); } + var pdb = Path.ChangeExtension (input, "pdb"); + if (File.Exists (pdb)) { + inputs.Add (pdb); + outputs.Add (Path.ChangeExtension (output, "pdb")); + } if (File.Exists (input + ".config")) { // If a config file changes, then the AOT-compiled output can be different, // so make sure to take config files into account as well. @@ -762,6 +767,9 @@ public void ManagedLink () Driver.Touch (a.FullPath); if (File.Exists (a.FullPath + ".mdb")) Driver.Touch (a.FullPath + ".mdb"); + var pdb = Path.ChangeExtension (a.FullPath, "pdb"); + if (File.Exists (pdb)) + Driver.Touch (pdb); } // Now copy to the build directory diff --git a/tools/mtouch/Tuning.cs b/tools/mtouch/Tuning.cs index ca4e87fcf54e..89891112ab5b 100644 --- a/tools/mtouch/Tuning.cs +++ b/tools/mtouch/Tuning.cs @@ -172,7 +172,7 @@ static Pipeline CreatePipeline (LinkerOptions options) pipeline.AppendStep (new RemoveResources (options.I18nAssemblies)); // remove collation tables pipeline.AppendStep (new MonoTouchMarkStep ()); - pipeline.AppendStep (new MonoTouchSweepStep ()); + pipeline.AppendStep (new MonoTouchSweepStep (options)); pipeline.AppendStep (new CleanStep ()); if (!options.DebugBuild) diff --git a/tools/mtouch/mtouch.cs b/tools/mtouch/mtouch.cs index cf503806dc77..c921b69b1b68 100644 --- a/tools/mtouch/mtouch.cs +++ b/tools/mtouch/mtouch.cs @@ -755,6 +755,14 @@ public static void CopyAssembly (string source, string target, string target_dir string sdebug = source + ".mdb"; if (File.Exists (sdebug)) File.Copy (sdebug, tdebug); + + string tpdb = Path.ChangeExtension (target, "pdb"); + if (File.Exists (tpdb)) + File.Delete (tpdb); + + string spdb = Path.ChangeExtension (source, "pdb"); + if (File.Exists (spdb)) + File.Copy (spdb, tpdb); } public static bool SymlinkAssembly (Application app, string source, string target, string target_dir) @@ -785,6 +793,15 @@ public static bool SymlinkAssembly (Application app, string source, string targe string sdebug = source + ".mdb"; if (File.Exists (sdebug)) Symlink (sdebug, tdebug); + + string tpdb = Path.ChangeExtension (target, "pdb"); + if (File.Exists (tpdb)) + File.Delete (tpdb); + + string spdb = Path.ChangeExtension (source, "pdb"); + if (File.Exists (spdb)) + Symlink (spdb, tpdb); + return true; } diff --git a/tools/mtouch/mtouch.csproj b/tools/mtouch/mtouch.csproj index 484b3c7e7bb2..87ca7b20ebf5 100644 --- a/tools/mtouch/mtouch.csproj +++ b/tools/mtouch/mtouch.csproj @@ -80,106 +80,106 @@ MonoTouch.Tuner\MonoTouchTypeMap.cs - + Mono.Linker\XApiReader.cs - + Mono.Linker\Annotations.cs - + Mono.Linker\LinkContext.cs - + Mono.Linker\Pipeline.cs - + Mono.Linker\AssemblyResolver.cs - + Mono.Linker\IXApiVisitor.cs - + Mono.Linker\I18nAssemblies.cs - + Mono.Linker\AssemblyAction.cs - + Mono.Linker\TypePreserve.cs - + Mono.Linker\MethodAction.cs - + Mono.Linker.Steps\BaseStep.cs - + Mono.Linker.Steps\BlacklistStep.cs - + Mono.Linker.Steps\CleanStep.cs - + Mono.Linker.Steps\IStep.cs - + Mono.Linker.Steps\LoadI18nAssemblies.cs - + Mono.Linker.Steps\LoadReferencesStep.cs - + Mono.Linker.Steps\MarkStep.cs - + Mono.Linker.Steps\OutputStep.cs - + Mono.Linker.Steps\ResolveFromAssemblyStep.cs - + Mono.Linker.Steps\ResolveFromXApiStep.cs - + Mono.Linker.Steps\ResolveFromXmlStep.cs - + Mono.Linker.Steps\ResolveStep.cs - + Mono.Linker.Steps\SweepStep.cs - + Mono.Linker.Steps\TypeMapStep.cs - + Mono.Tuner\ApplyPreserveAttributeBase.cs - + Mono.Tuner\RemoveAttributesBase.cs - + Mono.Tuner\PreserveSoapHttpClients.cs - + Mono.Tuner\Profile.cs - + Mono.Tuner\CustomizeActions.cs - + Mono.Tuner\RemoveResources.cs - + Mono.Tuner\RemoveSecurity.cs - + Mono.Tuner\Extensions.cs - + Mono.Tuner\FixModuleFlags.cs - + Mono.Tuner\Dispatcher.cs @@ -188,7 +188,7 @@ MonoTouch.Tuner\ProcessExportedFields.cs - + Mono.Tuner\CecilRocks.cs