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