projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[llvm] Add support for building with more recent versions of the mono llvm branch...
[mono.git]
/
mono
/
mini
/
main.c
diff --git
a/mono/mini/main.c
b/mono/mini/main.c
index 6149ca75fa0996be2da5c08a5ed076fd8685a539..bd4f6674dfbc0d82273461ef9aabab9b56689604 100644
(file)
--- a/
mono/mini/main.c
+++ b/
mono/mini/main.c
@@
-1,5
+1,6
@@
-/*
- * main.c: The main entry point for the mono executable
+/**
+ * \file
+ * The main entry point for the mono executable
*
* The main entry point does a few things:
*
*
* The main entry point does a few things:
*
@@
-135,7
+136,7
@@
static GSList *bundle_library_paths;
static char *bundled_dylibrary_directory;
static void
static char *bundled_dylibrary_directory;
static void
-delete_bundled_libraries ()
+delete_bundled_libraries (
void
)
{
GSList *list;
{
GSList *list;
@@
-146,10
+147,10
@@
delete_bundled_libraries ()
}
static void
}
static void
-bundle_save_library_initialize ()
+bundle_save_library_initialize (
void
)
{
bundle_save_library_initialized = 1;
{
bundle_save_library_initialized = 1;
- char *path = g_build_filename (g_get_tmp_dir (), "mono-bundle-XXXXXX");
+ char *path = g_build_filename (g_get_tmp_dir (), "mono-bundle-XXXXXX"
, NULL
);
bundled_dylibrary_directory = g_mkdtemp (path);
g_free (path);
if (bundled_dylibrary_directory == NULL)
bundled_dylibrary_directory = g_mkdtemp (path);
g_free (path);
if (bundled_dylibrary_directory == NULL)
@@
-161,19
+162,23
@@
static void
save_library (int fd, uint64_t offset, uint64_t size, const char *destfname)
{
MonoDl *lib;
save_library (int fd, uint64_t offset, uint64_t size, const char *destfname)
{
MonoDl *lib;
- char *file, *buffer, *err;
+ char *file, *buffer, *err
, *internal_path
;
if (!bundle_save_library_initialized)
bundle_save_library_initialize ();
if (!bundle_save_library_initialized)
bundle_save_library_initialize ();
- file = g_build_filename (bundled_dylibrary_directory, destfname);
+ file = g_build_filename (bundled_dylibrary_directory, destfname
, NULL
);
buffer = load_from_region (fd, offset, size);
g_file_set_contents (file, buffer, size, NULL);
buffer = load_from_region (fd, offset, size);
g_file_set_contents (file, buffer, size, NULL);
+
lib = mono_dl_open (file, MONO_DL_LAZY, &err);
lib = mono_dl_open (file, MONO_DL_LAZY, &err);
- if (
err !
= NULL){
- fprintf (stderr, "Error loading shared library: %s
\n", file
);
+ if (
lib =
= NULL){
+ fprintf (stderr, "Error loading shared library: %s
%s\n", file, err
);
exit (1);
}
exit (1);
}
- mono_loader_register_module (destfname, lib);
+ // Register the name with "." as this is how it will be found when embedded
+ internal_path = g_build_filename (".", destfname, NULL);
+ mono_loader_register_module (internal_path, lib);
+ g_free (internal_path);
bundle_library_paths = g_slist_append (bundle_library_paths, file);
g_free (buffer);
bundle_library_paths = g_slist_append (bundle_library_paths, file);
g_free (buffer);
@@
-276,9
+281,10
@@
probe_embedded (const char *program, int *ref_argc, char **ref_argv [])
mono_register_bundled_assemblies ((const MonoBundledAssembly **) assemblies->data);
new_argv = g_new (char *, (*ref_argc)+1);
mono_register_bundled_assemblies ((const MonoBundledAssembly **) assemblies->data);
new_argv = g_new (char *, (*ref_argc)+1);
- for (j = 0; j < *ref_argc; j++)
- new_argv [j] = (*ref_argv)[j];
- new_argv [j] = entry_point;
+ new_argv [0] = (*ref_argv)[0];
+ new_argv [1] = entry_point;
+ for (j = 1; j < *ref_argc; j++)
+ new_argv [j+1] = (*ref_argv)[j];
*ref_argv = new_argv;
(*ref_argc)++;
*ref_argv = new_argv;
(*ref_argc)++;