Commit 866f52bc authored by Alexandre Julliard's avatar Alexandre Julliard

Ignore prelink failures.

parent 0cdb3c97
...@@ -279,7 +279,7 @@ file_type get_lib_type(strarray* path, const char* library, char** file) ...@@ -279,7 +279,7 @@ file_type get_lib_type(strarray* path, const char* library, char** file)
return file_na; return file_na;
} }
void spawn(const strarray* prefix, const strarray* args) void spawn(const strarray* prefix, const strarray* args, int ignore_errors)
{ {
int i, status; int i, status;
strarray* arr = strarray_dup(args); strarray* arr = strarray_dup(args);
...@@ -316,7 +316,7 @@ void spawn(const strarray* prefix, const strarray* args) ...@@ -316,7 +316,7 @@ void spawn(const strarray* prefix, const strarray* args)
printf("\n"); printf("\n");
} }
if ((status = spawnvp( _P_WAIT, argv[0], argv))) if ((status = spawnvp( _P_WAIT, argv[0], argv)) && !ignore_errors)
{ {
if (status > 0) error("%s failed.", argv[0]); if (status > 0) error("%s failed.", argv[0]);
else perror("winegcc"); else perror("winegcc");
......
...@@ -62,6 +62,6 @@ char* get_basename(const char* file); ...@@ -62,6 +62,6 @@ char* get_basename(const char* file);
void create_file(const char* name, int mode, const char* fmt, ...); void create_file(const char* name, int mode, const char* fmt, ...);
file_type get_file_type(const char* filename); file_type get_file_type(const char* filename);
file_type get_lib_type(strarray* path, const char* library, char** file); file_type get_lib_type(strarray* path, const char* library, char** file);
void spawn(const strarray* prefix, const strarray* arr); void spawn(const strarray* prefix, const strarray* arr, int ignore_errors);
extern int verbose; extern int verbose;
...@@ -341,7 +341,7 @@ static void compile(struct options* opts, const char* lang) ...@@ -341,7 +341,7 @@ static void compile(struct options* opts, const char* lang)
} }
#undef SYS_INCLUDE #undef SYS_INCLUDE
spawn(opts->prefix, comp_args); spawn(opts->prefix, comp_args, 0);
} }
static const char* compile_to_object(struct options* opts, const char* file, const char* lang) static const char* compile_to_object(struct options* opts, const char* file, const char* lang)
...@@ -576,7 +576,7 @@ static void build(struct options* opts) ...@@ -576,7 +576,7 @@ static void build(struct options* opts)
} }
} }
spawn(opts->prefix, spec_args); spawn(opts->prefix, spec_args, 0);
/* compile the .spec.c file into a .spec.o file */ /* compile the .spec.c file into a .spec.o file */
old_processor = opts->processor; old_processor = opts->processor;
...@@ -624,7 +624,7 @@ static void build(struct options* opts) ...@@ -624,7 +624,7 @@ static void build(struct options* opts)
strarray_add(link_args, "-lc"); strarray_add(link_args, "-lc");
} }
spawn(opts->prefix, link_args); spawn(opts->prefix, link_args, 0);
/* set the base address */ /* set the base address */
if (opts->image_base) if (opts->image_base)
...@@ -637,7 +637,7 @@ static void build(struct options* opts) ...@@ -637,7 +637,7 @@ static void build(struct options* opts)
strarray_add(prelink_args, "--reloc-only"); strarray_add(prelink_args, "--reloc-only");
strarray_add(prelink_args, opts->image_base); strarray_add(prelink_args, opts->image_base);
strarray_add(prelink_args, strmake("%s.so", output_file)); strarray_add(prelink_args, strmake("%s.so", output_file));
spawn(opts->prefix, prelink_args); spawn(opts->prefix, prelink_args, 1);
strarray_free(prelink_args); strarray_free(prelink_args);
} }
} }
...@@ -661,7 +661,7 @@ static void forward(int argc, char **argv, struct options* opts) ...@@ -661,7 +661,7 @@ static void forward(int argc, char **argv, struct options* opts)
for( j = 1; j < argc; j++ ) for( j = 1; j < argc; j++ )
strarray_add(args, argv[j]); strarray_add(args, argv[j]);
spawn(opts->prefix, args); spawn(opts->prefix, args, 0);
} }
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment