You've already forked linux-packaging-mono
Imported Upstream version 5.8.0.22
Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
parent
5f4a27cc8a
commit
7d05485754
@@ -190,6 +190,7 @@ AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||
BREAKPOINT = @BREAKPOINT@
|
||||
BTLS_ARCH = @BTLS_ARCH@
|
||||
BTLS_CFLAGS = @BTLS_CFLAGS@
|
||||
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
|
||||
@@ -230,12 +231,27 @@ EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GDKX11 = @GDKX11@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GINT_TO_POINTER = @GINT_TO_POINTER@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GNUC_NORETURN = @GNUC_NORETURN@
|
||||
GNUC_PRETTY = @GNUC_PRETTY@
|
||||
GNUC_UNUSED = @GNUC_UNUSED@
|
||||
GPOINTER_TO_INT = @GPOINTER_TO_INT@
|
||||
GPOINTER_TO_UINT = @GPOINTER_TO_UINT@
|
||||
GREP = @GREP@
|
||||
GSIZE = @GSIZE@
|
||||
GSIZE_FORMAT = @GSIZE_FORMAT@
|
||||
GTKX11 = @GTKX11@
|
||||
GUINT_TO_POINTER = @GUINT_TO_POINTER@
|
||||
G_GINT32_FORMAT = @G_GINT32_FORMAT@
|
||||
G_GINT64_FORMAT = @G_GINT64_FORMAT@
|
||||
G_GUINT32_FORMAT = @G_GUINT32_FORMAT@
|
||||
G_GUINT64_FORMAT = @G_GUINT64_FORMAT@
|
||||
G_HAVE_ISO_VARARGS = @G_HAVE_ISO_VARARGS@
|
||||
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
|
||||
HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
HOST_CC = @HOST_CC@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -280,6 +296,8 @@ NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
ORDER = @ORDER@
|
||||
OS = @OS@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
@@ -289,15 +307,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATHSEP = @PATHSEP@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PIDTYPE = @PIDTYPE@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
SEARCHSEP = @SEARCHSEP@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SGEN_DEFINES = @SGEN_DEFINES@
|
||||
SHARED_CFLAGS = @SHARED_CFLAGS@
|
||||
SHELL = @SHELL@
|
||||
SIZEOF_VOID_P = @SIZEOF_VOID_P@
|
||||
SQLITE = @SQLITE@
|
||||
SQLITE3 = @SQLITE3@
|
||||
STRIP = @STRIP@
|
||||
@@ -370,6 +392,7 @@ mkdir_p = @mkdir_p@
|
||||
mono_build_root = @mono_build_root@
|
||||
mono_cfg_dir = @mono_cfg_dir@
|
||||
mono_runtime = @mono_runtime@
|
||||
ninja = @ninja@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
|
||||
@@ -130,6 +130,7 @@ AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||
BREAKPOINT = @BREAKPOINT@
|
||||
BTLS_ARCH = @BTLS_ARCH@
|
||||
BTLS_CFLAGS = @BTLS_CFLAGS@
|
||||
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
|
||||
@@ -170,12 +171,27 @@ EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GDKX11 = @GDKX11@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GINT_TO_POINTER = @GINT_TO_POINTER@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GNUC_NORETURN = @GNUC_NORETURN@
|
||||
GNUC_PRETTY = @GNUC_PRETTY@
|
||||
GNUC_UNUSED = @GNUC_UNUSED@
|
||||
GPOINTER_TO_INT = @GPOINTER_TO_INT@
|
||||
GPOINTER_TO_UINT = @GPOINTER_TO_UINT@
|
||||
GREP = @GREP@
|
||||
GSIZE = @GSIZE@
|
||||
GSIZE_FORMAT = @GSIZE_FORMAT@
|
||||
GTKX11 = @GTKX11@
|
||||
GUINT_TO_POINTER = @GUINT_TO_POINTER@
|
||||
G_GINT32_FORMAT = @G_GINT32_FORMAT@
|
||||
G_GINT64_FORMAT = @G_GINT64_FORMAT@
|
||||
G_GUINT32_FORMAT = @G_GUINT32_FORMAT@
|
||||
G_GUINT64_FORMAT = @G_GUINT64_FORMAT@
|
||||
G_HAVE_ISO_VARARGS = @G_HAVE_ISO_VARARGS@
|
||||
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
|
||||
HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
HOST_CC = @HOST_CC@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -220,6 +236,8 @@ NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
ORDER = @ORDER@
|
||||
OS = @OS@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
@@ -229,15 +247,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATHSEP = @PATHSEP@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PIDTYPE = @PIDTYPE@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
SEARCHSEP = @SEARCHSEP@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SGEN_DEFINES = @SGEN_DEFINES@
|
||||
SHARED_CFLAGS = @SHARED_CFLAGS@
|
||||
SHELL = @SHELL@
|
||||
SIZEOF_VOID_P = @SIZEOF_VOID_P@
|
||||
SQLITE = @SQLITE@
|
||||
SQLITE3 = @SQLITE3@
|
||||
STRIP = @STRIP@
|
||||
@@ -310,6 +332,7 @@ mkdir_p = @mkdir_p@
|
||||
mono_build_root = @mono_build_root@
|
||||
mono_cfg_dir = @mono_cfg_dir@
|
||||
mono_runtime = @mono_runtime@
|
||||
ninja = @ninja@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
|
||||
@@ -38,7 +38,7 @@ monograph_LDADD = \
|
||||
$(LIBICONV) \
|
||||
-lm
|
||||
|
||||
if PLATFORM_DARWIN
|
||||
if HOST_DARWIN
|
||||
monograph_LDFLAGS=-framework CoreFoundation
|
||||
endif
|
||||
|
||||
|
||||
@@ -191,6 +191,7 @@ AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||
BREAKPOINT = @BREAKPOINT@
|
||||
BTLS_ARCH = @BTLS_ARCH@
|
||||
BTLS_CFLAGS = @BTLS_CFLAGS@
|
||||
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
|
||||
@@ -231,12 +232,27 @@ EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GDKX11 = @GDKX11@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GINT_TO_POINTER = @GINT_TO_POINTER@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GNUC_NORETURN = @GNUC_NORETURN@
|
||||
GNUC_PRETTY = @GNUC_PRETTY@
|
||||
GNUC_UNUSED = @GNUC_UNUSED@
|
||||
GPOINTER_TO_INT = @GPOINTER_TO_INT@
|
||||
GPOINTER_TO_UINT = @GPOINTER_TO_UINT@
|
||||
GREP = @GREP@
|
||||
GSIZE = @GSIZE@
|
||||
GSIZE_FORMAT = @GSIZE_FORMAT@
|
||||
GTKX11 = @GTKX11@
|
||||
GUINT_TO_POINTER = @GUINT_TO_POINTER@
|
||||
G_GINT32_FORMAT = @G_GINT32_FORMAT@
|
||||
G_GINT64_FORMAT = @G_GINT64_FORMAT@
|
||||
G_GUINT32_FORMAT = @G_GUINT32_FORMAT@
|
||||
G_GUINT64_FORMAT = @G_GUINT64_FORMAT@
|
||||
G_HAVE_ISO_VARARGS = @G_HAVE_ISO_VARARGS@
|
||||
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
|
||||
HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
HOST_CC = @HOST_CC@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -281,6 +297,8 @@ NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
ORDER = @ORDER@
|
||||
OS = @OS@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
@@ -290,15 +308,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATHSEP = @PATHSEP@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PIDTYPE = @PIDTYPE@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
SEARCHSEP = @SEARCHSEP@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SGEN_DEFINES = @SGEN_DEFINES@
|
||||
SHARED_CFLAGS = @SHARED_CFLAGS@
|
||||
SHELL = @SHELL@
|
||||
SIZEOF_VOID_P = @SIZEOF_VOID_P@
|
||||
SQLITE = @SQLITE@
|
||||
SQLITE3 = @SQLITE3@
|
||||
STRIP = @STRIP@
|
||||
@@ -371,6 +393,7 @@ mkdir_p = @mkdir_p@
|
||||
mono_build_root = @mono_build_root@
|
||||
mono_cfg_dir = @mono_cfg_dir@
|
||||
mono_runtime = @mono_runtime@
|
||||
ninja = @ninja@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
@@ -409,7 +432,7 @@ monograph_LDADD = \
|
||||
$(LIBICONV) \
|
||||
-lm
|
||||
|
||||
@PLATFORM_DARWIN_TRUE@monograph_LDFLAGS = -framework CoreFoundation
|
||||
@HOST_DARWIN_TRUE@monograph_LDFLAGS = -framework CoreFoundation
|
||||
GRAPHS = System.Object System.Enum System.Attribute System.ValueType System.Reflection.MemberInfo
|
||||
OUT = $(GRAPHS:=.jpeg)
|
||||
all: all-am
|
||||
|
||||
@@ -25,6 +25,11 @@ pedump_LDADD = \
|
||||
$(GLIB_LIBS) \
|
||||
$(LIBICONV)
|
||||
|
||||
if PLATFORM_DARWIN
|
||||
if HOST_DARWIN
|
||||
pedump_LDFLAGS=-framework CoreFoundation -framework Foundation
|
||||
endif
|
||||
|
||||
#Helper target to rebuild metadata as well, it's useful when working on the verifier as its source still on metadata
|
||||
md:
|
||||
make -C ../../mono/metadata all
|
||||
make -C . all
|
||||
@@ -186,6 +186,7 @@ AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||
BREAKPOINT = @BREAKPOINT@
|
||||
BTLS_ARCH = @BTLS_ARCH@
|
||||
BTLS_CFLAGS = @BTLS_CFLAGS@
|
||||
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
|
||||
@@ -226,12 +227,27 @@ EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GDKX11 = @GDKX11@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GINT_TO_POINTER = @GINT_TO_POINTER@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GNUC_NORETURN = @GNUC_NORETURN@
|
||||
GNUC_PRETTY = @GNUC_PRETTY@
|
||||
GNUC_UNUSED = @GNUC_UNUSED@
|
||||
GPOINTER_TO_INT = @GPOINTER_TO_INT@
|
||||
GPOINTER_TO_UINT = @GPOINTER_TO_UINT@
|
||||
GREP = @GREP@
|
||||
GSIZE = @GSIZE@
|
||||
GSIZE_FORMAT = @GSIZE_FORMAT@
|
||||
GTKX11 = @GTKX11@
|
||||
GUINT_TO_POINTER = @GUINT_TO_POINTER@
|
||||
G_GINT32_FORMAT = @G_GINT32_FORMAT@
|
||||
G_GINT64_FORMAT = @G_GINT64_FORMAT@
|
||||
G_GUINT32_FORMAT = @G_GUINT32_FORMAT@
|
||||
G_GUINT64_FORMAT = @G_GUINT64_FORMAT@
|
||||
G_HAVE_ISO_VARARGS = @G_HAVE_ISO_VARARGS@
|
||||
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
|
||||
HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
HOST_CC = @HOST_CC@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -276,6 +292,8 @@ NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
ORDER = @ORDER@
|
||||
OS = @OS@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
@@ -285,15 +303,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATHSEP = @PATHSEP@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PIDTYPE = @PIDTYPE@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
SEARCHSEP = @SEARCHSEP@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SGEN_DEFINES = @SGEN_DEFINES@
|
||||
SHARED_CFLAGS = @SHARED_CFLAGS@
|
||||
SHELL = @SHELL@
|
||||
SIZEOF_VOID_P = @SIZEOF_VOID_P@
|
||||
SQLITE = @SQLITE@
|
||||
SQLITE3 = @SQLITE3@
|
||||
STRIP = @STRIP@
|
||||
@@ -366,6 +388,7 @@ mkdir_p = @mkdir_p@
|
||||
mono_build_root = @mono_build_root@
|
||||
mono_cfg_dir = @mono_cfg_dir@
|
||||
mono_runtime = @mono_runtime@
|
||||
ninja = @ninja@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
@@ -398,7 +421,7 @@ pedump_LDADD = \
|
||||
$(GLIB_LIBS) \
|
||||
$(LIBICONV)
|
||||
|
||||
@PLATFORM_DARWIN_TRUE@pedump_LDFLAGS = -framework CoreFoundation -framework Foundation
|
||||
@HOST_DARWIN_TRUE@pedump_LDFLAGS = -framework CoreFoundation -framework Foundation
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
@@ -731,6 +754,11 @@ uninstall-am: uninstall-binPROGRAMS
|
||||
tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
|
||||
|
||||
|
||||
#Helper target to rebuild metadata as well, it's useful when working on the verifier as its source still on metadata
|
||||
md:
|
||||
make -C ../../mono/metadata all
|
||||
make -C . all
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
@@ -42,6 +42,8 @@ gboolean verify_metadata = FALSE;
|
||||
gboolean verify_code = FALSE;
|
||||
gboolean verify_partial_md = FALSE;
|
||||
|
||||
static char *assembly_directory[2];
|
||||
|
||||
static MonoAssembly *pedump_preload (MonoAssemblyName *aname, gchar **assemblies_path, gpointer user_data);
|
||||
static void pedump_assembly_load_hook (MonoAssembly *assembly, gpointer user_data);
|
||||
static MonoAssembly *pedump_assembly_search_hook (MonoAssemblyName *aname, gpointer user_data);
|
||||
@@ -348,7 +350,7 @@ dump_dotnet_iinfo (MonoImage *image)
|
||||
}
|
||||
|
||||
static int
|
||||
dump_verify_info (MonoImage *image, int flags)
|
||||
dump_verify_info (MonoImage *image, int flags, gboolean valid_only)
|
||||
{
|
||||
GSList *errors, *tmp;
|
||||
int count = 0, verifiable = 0;
|
||||
@@ -387,6 +389,9 @@ dump_verify_info (MonoImage *image, int flags)
|
||||
|
||||
for (tmp = errors; tmp; tmp = tmp->next) {
|
||||
MonoVerifyInfo *info = (MonoVerifyInfo *)tmp->data;
|
||||
if (info->status == MONO_VERIFY_NOT_VERIFIABLE && valid_only)
|
||||
continue;
|
||||
|
||||
g_print ("%s: %s\n", desc [info->status], info->message);
|
||||
if (info->status == MONO_VERIFY_ERROR) {
|
||||
count++;
|
||||
@@ -426,52 +431,84 @@ verify_image_file (const char *fname)
|
||||
"Ok", "Error", "Warning", NULL, "CLS", NULL, NULL, NULL, "Not Verifiable"
|
||||
};
|
||||
|
||||
image = mono_image_open_raw (fname, &status);
|
||||
if (!image) {
|
||||
printf ("Could not open %s\n", fname);
|
||||
return 1;
|
||||
if (!strstr (fname, "mscorlib.dll")) {
|
||||
image = mono_image_open_raw (fname, &status);
|
||||
if (!image) {
|
||||
printf ("Could not open %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_pe_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
if (!mono_image_load_pe_data (image)) {
|
||||
printf ("Could not load pe data for assembly %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_cli_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
if (!mono_image_load_cli_data (image)) {
|
||||
printf ("Could not load cli data for assembly %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_table_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
mono_image_load_names (image);
|
||||
|
||||
/*fake an assembly for class loading to work*/
|
||||
assembly = g_new0 (MonoAssembly, 1);
|
||||
assembly->in_gac = FALSE;
|
||||
assembly->image = image;
|
||||
image->assembly = assembly;
|
||||
mono_assembly_fill_assembly_name (image, &assembly->aname);
|
||||
|
||||
/*Finish initializing the runtime*/
|
||||
mono_install_assembly_load_hook (pedump_assembly_load_hook, NULL);
|
||||
mono_install_assembly_search_hook (pedump_assembly_search_hook, NULL);
|
||||
|
||||
mono_init_version ("pedump", image->version);
|
||||
|
||||
mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE));
|
||||
|
||||
mono_icall_init ();
|
||||
mono_marshal_init ();
|
||||
} else {
|
||||
/*Finish initializing the runtime*/
|
||||
mono_install_assembly_load_hook (pedump_assembly_load_hook, NULL);
|
||||
mono_install_assembly_search_hook (pedump_assembly_search_hook, NULL);
|
||||
|
||||
mono_init_version ("pedump", NULL);
|
||||
|
||||
mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE));
|
||||
|
||||
mono_icall_init ();
|
||||
mono_marshal_init ();
|
||||
image = mono_get_corlib ();
|
||||
|
||||
if (!mono_verifier_verify_pe_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
if (!mono_image_load_pe_data (image)) {
|
||||
printf ("Could not load pe data for assembly %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_cli_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
if (!mono_image_load_cli_data (image)) {
|
||||
printf ("Could not load cli data for assembly %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_table_data (image, &errors))
|
||||
goto invalid_image;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_pe_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
if (!mono_image_load_pe_data (image)) {
|
||||
printf ("Could not load pe data for assembly %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_cli_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
if (!mono_image_load_cli_data (image)) {
|
||||
printf ("Could not load cli data for assembly %s\n", fname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!mono_verifier_verify_table_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
mono_image_load_names (image);
|
||||
|
||||
/*fake an assembly for class loading to work*/
|
||||
assembly = g_new0 (MonoAssembly, 1);
|
||||
assembly->in_gac = FALSE;
|
||||
assembly->image = image;
|
||||
image->assembly = assembly;
|
||||
mono_assembly_fill_assembly_name (image, &assembly->aname);
|
||||
|
||||
/*Finish initializing the runtime*/
|
||||
mono_install_assembly_load_hook (pedump_assembly_load_hook, NULL);
|
||||
mono_install_assembly_search_hook (pedump_assembly_search_hook, NULL);
|
||||
|
||||
mono_init_version ("pedump", image->version);
|
||||
|
||||
mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE));
|
||||
|
||||
mono_icall_init ();
|
||||
mono_marshal_init ();
|
||||
|
||||
|
||||
if (!verify_partial_md && !mono_verifier_verify_full_table_data (image, &errors))
|
||||
goto invalid_image;
|
||||
|
||||
@@ -488,13 +525,21 @@ verify_image_file (const char *fname)
|
||||
}
|
||||
mono_class_init (klass);
|
||||
if (mono_class_has_failure (klass)) {
|
||||
printf ("Error verifying class(0x%08x) %s.%s a type load error happened\n", token, klass->name_space, klass->name);
|
||||
MonoError type_load_error;
|
||||
error_init (&type_load_error);
|
||||
mono_error_set_for_class_failure (&type_load_error, klass);
|
||||
printf ("Could not initialize class(0x%08x) %s.%s due to %s\n", token, klass->name_space, klass->name, mono_error_get_message (&type_load_error));
|
||||
mono_error_cleanup (&type_load_error);
|
||||
++count;
|
||||
}
|
||||
|
||||
mono_class_setup_vtable (klass);
|
||||
if (mono_class_has_failure (klass)) {
|
||||
printf ("Error verifying class(0x%08x) %s.%s a type load error happened\n", token, klass->name_space, klass->name);
|
||||
MonoError type_load_error;
|
||||
error_init (&type_load_error);
|
||||
mono_error_set_for_class_failure (&type_load_error, klass);
|
||||
printf ("Could not initialize vtable of class(0x%08x) %s.%s due to %s\n", token, klass->name_space, klass->name, mono_error_get_message (&type_load_error));
|
||||
mono_error_cleanup (&type_load_error);
|
||||
++count;
|
||||
}
|
||||
}
|
||||
@@ -592,6 +637,8 @@ pedump_preload (MonoAssemblyName *aname,
|
||||
if (assemblies_path && assemblies_path [0] != NULL) {
|
||||
result = real_load (assemblies_path, aname->culture, aname->name, refonly);
|
||||
}
|
||||
if (!result)
|
||||
result = real_load (assembly_directory, aname->culture, aname->name, refonly);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -661,6 +708,12 @@ main (int argc, char *argv [])
|
||||
if (!file)
|
||||
usage ();
|
||||
|
||||
//We have to force the runtime to load the corlib under verification as its own corlib so core types are properly populated in mono_defaults.
|
||||
if (strstr (file, "mscorlib.dll"))
|
||||
g_setenv ("MONO_PATH", g_path_get_dirname (file), 1);
|
||||
assembly_directory [0] = g_path_get_dirname (file);
|
||||
assembly_directory [1] = NULL;
|
||||
|
||||
#ifndef DISABLE_PERFCOUNTERS
|
||||
mono_perfcounters_init ();
|
||||
#endif
|
||||
@@ -671,7 +724,7 @@ main (int argc, char *argv [])
|
||||
#ifndef HOST_WIN32
|
||||
mono_w32handle_init ();
|
||||
#endif
|
||||
mono_threads_runtime_init (&ticallbacks);
|
||||
mono_thread_info_runtime_init (&ticallbacks);
|
||||
|
||||
mono_metadata_init ();
|
||||
mono_images_init ();
|
||||
@@ -756,7 +809,7 @@ main (int argc, char *argv [])
|
||||
return 4;
|
||||
}
|
||||
|
||||
code_result = dump_verify_info (assembly->image, verify_flags);
|
||||
code_result = dump_verify_info (assembly->image, verify_flags, verifier_mode == MONO_VERIFIER_MODE_VALID);
|
||||
return code_result ? code_result : image_result;
|
||||
} else
|
||||
mono_image_close (image);
|
||||
|
||||
@@ -211,6 +211,7 @@ AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||
BREAKPOINT = @BREAKPOINT@
|
||||
BTLS_ARCH = @BTLS_ARCH@
|
||||
BTLS_CFLAGS = @BTLS_CFLAGS@
|
||||
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
|
||||
@@ -251,12 +252,27 @@ EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GDKX11 = @GDKX11@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GINT_TO_POINTER = @GINT_TO_POINTER@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GNUC_NORETURN = @GNUC_NORETURN@
|
||||
GNUC_PRETTY = @GNUC_PRETTY@
|
||||
GNUC_UNUSED = @GNUC_UNUSED@
|
||||
GPOINTER_TO_INT = @GPOINTER_TO_INT@
|
||||
GPOINTER_TO_UINT = @GPOINTER_TO_UINT@
|
||||
GREP = @GREP@
|
||||
GSIZE = @GSIZE@
|
||||
GSIZE_FORMAT = @GSIZE_FORMAT@
|
||||
GTKX11 = @GTKX11@
|
||||
GUINT_TO_POINTER = @GUINT_TO_POINTER@
|
||||
G_GINT32_FORMAT = @G_GINT32_FORMAT@
|
||||
G_GINT64_FORMAT = @G_GINT64_FORMAT@
|
||||
G_GUINT32_FORMAT = @G_GUINT32_FORMAT@
|
||||
G_GUINT64_FORMAT = @G_GUINT64_FORMAT@
|
||||
G_HAVE_ISO_VARARGS = @G_HAVE_ISO_VARARGS@
|
||||
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
|
||||
HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
HOST_CC = @HOST_CC@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -301,6 +317,8 @@ NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
ORDER = @ORDER@
|
||||
OS = @OS@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
@@ -310,15 +328,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATHSEP = @PATHSEP@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PIDTYPE = @PIDTYPE@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
SEARCHSEP = @SEARCHSEP@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SGEN_DEFINES = @SGEN_DEFINES@
|
||||
SHARED_CFLAGS = @SHARED_CFLAGS@
|
||||
SHELL = @SHELL@
|
||||
SIZEOF_VOID_P = @SIZEOF_VOID_P@
|
||||
SQLITE = @SQLITE@
|
||||
SQLITE3 = @SQLITE3@
|
||||
STRIP = @STRIP@
|
||||
@@ -391,6 +413,7 @@ mkdir_p = @mkdir_p@
|
||||
mono_build_root = @mono_build_root@
|
||||
mono_cfg_dir = @mono_cfg_dir@
|
||||
mono_runtime = @mono_runtime@
|
||||
ninja = @ninja@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
|
||||
Reference in New Issue
Block a user