Module: wine Branch: master Commit: 51ffea5a3940bdc74b44b9303c4574dfb156efc0 URL: https://source.winehq.org/git/wine.git/?a=commit;h=51ffea5a3940bdc74b44b9303...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Dec 18 21:05:44 2019 +0100
winegcc: Use winebuild to set the builtin flag.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
tools/winegcc/winegcc.c | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-)
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 939c1e5c91..7f32a38788 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -524,28 +524,6 @@ static int check_platform( struct options *opts, const char *file ) return ret; }
-static void make_wine_builtin( const char *file ) -{ - static const char wine_magic[32] = "Wine builtin DLL"; - int fd; - struct - { - unsigned short e_magic; - unsigned short unused[29]; - unsigned int e_lfanew; - } header; - - if ((fd = open( file, O_RDWR | O_BINARY )) == -1) error( "Failed to add signature to %s\n", file ); - - if (read( fd, &header, sizeof(header) ) == sizeof(header) && !memcmp( &header.e_magic, "MZ", 2 )) - { - if (header.e_lfanew < sizeof(header) + sizeof(wine_magic)) - error( "Not enough space (%x) for Wine signature\n", header.e_lfanew ); - write( fd, wine_magic, sizeof(wine_magic) ); - } - close( fd ); -} - static const char *get_multiarch_dir( enum target_cpu cpu ) { switch(cpu) @@ -882,6 +860,16 @@ static strarray *get_winebuild_args(struct options *opts) return spec_args; }
+static void make_wine_builtin( struct options *opts, const char *file ) +{ + strarray *args = get_winebuild_args( opts ); + + strarray_add( args, "--builtin" ); + strarray_add( args, file ); + spawn( opts->prefix, args, 0 ); + strarray_free( args ); +} + /* check if there is a static lib associated to a given dll */ static char *find_static_lib( const char *dll ) { @@ -1267,7 +1255,7 @@ static void build(struct options* opts) spawn(opts->prefix, link_args, 0); strarray_free (link_args);
- if (is_pe && opts->wine_builtin) make_wine_builtin( output_path ); + if (is_pe && opts->wine_builtin) make_wine_builtin( opts, output_path );
/* set the base address with prelink if linker support is not present */ if (opts->prelink && !opts->target)