winebuild: Select all __wine_spec_exe* entry inside winebuild.
Override --entry in winegcc only when it applies to any compiler (e.g. kernel drivers or msvcrt) but leave spec details to winebuild. Forward -municode so winebuild will know which to use. Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com> Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6d829f2baf
commit
a1078d4770
|
@ -136,6 +136,7 @@ typedef struct
|
|||
int subsystem; /* subsystem id */
|
||||
int subsystem_major; /* subsystem version major number */
|
||||
int subsystem_minor; /* subsystem version minor number */
|
||||
int unicode_app; /* default to unicode entry point */
|
||||
ORDDEF *entry_points; /* dll entry points */
|
||||
ORDDEF **names; /* array of entry point names (points into entry_points) */
|
||||
ORDDEF **ordinals; /* array of dll ordinals (points into entry_points) */
|
||||
|
|
|
@ -396,8 +396,12 @@ static const char *get_default_entry_point( const DLLSPEC *spec )
|
|||
{
|
||||
if (spec->characteristics & IMAGE_FILE_DLL) return "DllMain";
|
||||
if (spec->subsystem == IMAGE_SUBSYSTEM_NATIVE) return "DriverEntry";
|
||||
if (spec->type == SPEC_WIN16) return "__wine_spec_exe16_entry";
|
||||
return "__wine_spec_exe_entry";
|
||||
if (spec->type == SPEC_WIN16)
|
||||
return "__wine_spec_exe16_entry";
|
||||
else if (spec->unicode_app)
|
||||
return "__wine_spec_exe_wentry";
|
||||
else
|
||||
return "__wine_spec_exe_entry";
|
||||
}
|
||||
|
||||
/* parse options from the argv array and remove all the recognized ones */
|
||||
|
@ -448,6 +452,7 @@ static char **parse_options( int argc, char **argv, DLLSPEC *spec )
|
|||
else if (!strcmp( optarg, "thumb" )) thumb_mode = 1;
|
||||
else if (!strcmp( optarg, "no-cygwin" )) use_msvcrt = 1;
|
||||
else if (!strcmp( optarg, "unix" )) unix_lib = 1;
|
||||
else if (!strcmp( optarg, "unicode" )) spec->unicode_app = 1;
|
||||
else if (!strncmp( optarg, "cpu=", 4 )) cpu_option = xstrdup( optarg + 4 );
|
||||
else if (!strncmp( optarg, "fpu=", 4 )) fpu_option = xstrdup( optarg + 4 );
|
||||
else if (!strncmp( optarg, "arch=", 5 )) arch_option = xstrdup( optarg + 5 );
|
||||
|
|
|
@ -1255,8 +1255,6 @@ static void build(struct options* opts)
|
|||
entry_point = (is_pe && opts->target_cpu == CPU_x86) ? "DriverEntry@8" : "DriverEntry";
|
||||
else if (opts->use_msvcrt && !opts->shared && !opts->win16_app)
|
||||
entry_point = opts->unicode_app ? "wmainCRTStartup" : "mainCRTStartup";
|
||||
else if (!is_pe && !opts->shared && opts->unicode_app)
|
||||
entry_point = "__wine_spec_exe_wentry";
|
||||
}
|
||||
else entry_point = opts->entry_point;
|
||||
|
||||
|
@ -1268,6 +1266,8 @@ static void build(struct options* opts)
|
|||
spec_o_name = get_temp_file(output_name, ".spec.o");
|
||||
if (opts->force_pointer_size)
|
||||
strarray_add(spec_args, strmake("-m%u", 8 * opts->force_pointer_size ));
|
||||
if(opts->unicode_app)
|
||||
strarray_add(spec_args, "-municode");
|
||||
strarray_add(spec_args, "-D_REENTRANT");
|
||||
if (opts->pic && !is_pe) strarray_add(spec_args, "-fPIC");
|
||||
strarray_add(spec_args, opts->shared ? "--dll" : "--exe");
|
||||
|
|
Loading…
Reference in New Issue