widl: Always generate files for the target platform only.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
2cba0ed944
commit
f67301e9ec
|
@ -627,26 +627,6 @@ void write_client(const statement_list_t *stmts)
|
||||||
if (!client)
|
if (!client)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (do_win32 && do_win64)
|
write_client_routines( stmts );
|
||||||
{
|
|
||||||
fprintf(client, "#ifndef _WIN64\n\n");
|
|
||||||
pointer_size = 4;
|
|
||||||
write_client_routines( stmts );
|
|
||||||
fprintf(client, "\n#else /* _WIN64 */\n\n");
|
|
||||||
pointer_size = 8;
|
|
||||||
write_client_routines( stmts );
|
|
||||||
fprintf(client, "\n#endif /* _WIN64 */\n");
|
|
||||||
}
|
|
||||||
else if (do_win32)
|
|
||||||
{
|
|
||||||
pointer_size = 4;
|
|
||||||
write_client_routines( stmts );
|
|
||||||
}
|
|
||||||
else if (do_win64)
|
|
||||||
{
|
|
||||||
pointer_size = 8;
|
|
||||||
write_client_routines( stmts );
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(client);
|
fclose(client);
|
||||||
}
|
}
|
||||||
|
|
|
@ -942,7 +942,7 @@ static void write_proxy_routines(const statement_list_t *stmts)
|
||||||
write_stubdesc(expr_eval_routines);
|
write_stubdesc(expr_eval_routines);
|
||||||
|
|
||||||
print_proxy( "#if !defined(__RPC_WIN%u__)\n", pointer_size == 8 ? 64 : 32);
|
print_proxy( "#if !defined(__RPC_WIN%u__)\n", pointer_size == 8 ? 64 : 32);
|
||||||
print_proxy( "#error Currently only Wine and WIN32 are supported.\n");
|
print_proxy( "#error Invalid build platform for this proxy.\n");
|
||||||
print_proxy( "#endif\n");
|
print_proxy( "#endif\n");
|
||||||
print_proxy( "\n");
|
print_proxy( "\n");
|
||||||
write_procformatstring(proxy, stmts, need_proxy);
|
write_procformatstring(proxy, stmts, need_proxy);
|
||||||
|
@ -1053,26 +1053,6 @@ void write_proxies(const statement_list_t *stmts)
|
||||||
init_proxy(stmts);
|
init_proxy(stmts);
|
||||||
if(!proxy) return;
|
if(!proxy) return;
|
||||||
|
|
||||||
if (do_win32 && do_win64)
|
write_proxy_routines( stmts );
|
||||||
{
|
|
||||||
fprintf(proxy, "\n#ifndef _WIN64\n\n");
|
|
||||||
pointer_size = 4;
|
|
||||||
write_proxy_routines( stmts );
|
|
||||||
fprintf(proxy, "\n#else /* _WIN64 */\n\n");
|
|
||||||
pointer_size = 8;
|
|
||||||
write_proxy_routines( stmts );
|
|
||||||
fprintf(proxy, "\n#endif /* _WIN64 */\n");
|
|
||||||
}
|
|
||||||
else if (do_win32)
|
|
||||||
{
|
|
||||||
pointer_size = 4;
|
|
||||||
write_proxy_routines( stmts );
|
|
||||||
}
|
|
||||||
else if (do_win64)
|
|
||||||
{
|
|
||||||
pointer_size = 8;
|
|
||||||
write_proxy_routines( stmts );
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(proxy);
|
fclose(proxy);
|
||||||
}
|
}
|
||||||
|
|
|
@ -325,7 +325,7 @@ void output_typelib_regscript( const typelib_t *typelib )
|
||||||
sprintf(resname, "%s\\%d", typelib_name, expr->cval);
|
sprintf(resname, "%s\\%d", typelib_name, expr->cval);
|
||||||
}
|
}
|
||||||
put_str( indent, "'%x' { %s = s '%%MODULE%%%s' }\n",
|
put_str( indent, "'%x' { %s = s '%%MODULE%%%s' }\n",
|
||||||
lcid_expr ? lcid_expr->cval : 0, typelib_kind == SYS_WIN64 ? "win64" : "win32", id_part );
|
lcid_expr ? lcid_expr->cval : 0, pointer_size == 8 ? "win64" : "win32", id_part );
|
||||||
put_str( indent, "FLAGS = s '%u'\n", flags );
|
put_str( indent, "FLAGS = s '%u'\n", flags );
|
||||||
put_str( --indent, "}\n" );
|
put_str( --indent, "}\n" );
|
||||||
put_str( --indent, "}\n" );
|
put_str( --indent, "}\n" );
|
||||||
|
|
|
@ -544,26 +544,6 @@ void write_server(const statement_list_t *stmts)
|
||||||
if (!server)
|
if (!server)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (do_win32 && do_win64)
|
write_server_routines( stmts );
|
||||||
{
|
|
||||||
fprintf(server, "#ifndef _WIN64\n\n");
|
|
||||||
pointer_size = 4;
|
|
||||||
write_server_routines( stmts );
|
|
||||||
fprintf(server, "\n#else /* _WIN64 */\n\n");
|
|
||||||
pointer_size = 8;
|
|
||||||
write_server_routines( stmts );
|
|
||||||
fprintf(server, "\n#endif /* _WIN64 */\n");
|
|
||||||
}
|
|
||||||
else if (do_win32)
|
|
||||||
{
|
|
||||||
pointer_size = 4;
|
|
||||||
write_server_routines( stmts );
|
|
||||||
}
|
|
||||||
else if (do_win64)
|
|
||||||
{
|
|
||||||
pointer_size = 8;
|
|
||||||
write_server_routines( stmts );
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(server);
|
fclose(server);
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ unsigned short get_type_vt(type_t *t)
|
||||||
else
|
else
|
||||||
return VT_I8;
|
return VT_I8;
|
||||||
case TYPE_BASIC_INT3264:
|
case TYPE_BASIC_INT3264:
|
||||||
if (typelib_kind == SYS_WIN64)
|
if (pointer_size == 8)
|
||||||
{
|
{
|
||||||
if (type_basic_get_sign(t) > 0)
|
if (type_basic_get_sign(t) > 0)
|
||||||
return VT_UI8;
|
return VT_UI8;
|
||||||
|
|
|
@ -43,11 +43,6 @@
|
||||||
#include "wine/wpp.h"
|
#include "wine/wpp.h"
|
||||||
#include "header.h"
|
#include "header.h"
|
||||||
|
|
||||||
/* future options to reserve characters for: */
|
|
||||||
/* A = ACF input filename */
|
|
||||||
/* J = do not search standard include path */
|
|
||||||
/* w = select win16/win32 output (?) */
|
|
||||||
|
|
||||||
static const char usage[] =
|
static const char usage[] =
|
||||||
"Usage: widl [options...] infile.idl\n"
|
"Usage: widl [options...] infile.idl\n"
|
||||||
" or: widl [options...] --dlldata-only name1 [name2...]\n"
|
" or: widl [options...] --dlldata-only name1 [name2...]\n"
|
||||||
|
@ -63,7 +58,7 @@ static const char usage[] =
|
||||||
" -H file Name of header file (default is infile.h)\n"
|
" -H file Name of header file (default is infile.h)\n"
|
||||||
" -I path Set include search dir to path (multiple -I allowed)\n"
|
" -I path Set include search dir to path (multiple -I allowed)\n"
|
||||||
" --local-stubs=file Write empty stubs for call_as/local methods to file\n"
|
" --local-stubs=file Write empty stubs for call_as/local methods to file\n"
|
||||||
" -m32, -m64 Set the kind of typelib to build (Win32 or Win64)\n"
|
" -m32, -m64 Set the target architecture (Win32 or Win64)\n"
|
||||||
" -N Do not preprocess input\n"
|
" -N Do not preprocess input\n"
|
||||||
" --oldnames Use old naming conventions\n"
|
" --oldnames Use old naming conventions\n"
|
||||||
" -o, --output=NAME Set the output file name\n"
|
" -o, --output=NAME Set the output file name\n"
|
||||||
|
@ -81,8 +76,7 @@ static const char usage[] =
|
||||||
" -u Generate interface identifiers file\n"
|
" -u Generate interface identifiers file\n"
|
||||||
" -V Print version and exit\n"
|
" -V Print version and exit\n"
|
||||||
" -W Enable pedantic warnings\n"
|
" -W Enable pedantic warnings\n"
|
||||||
" --win32 Only generate 32-bit code\n"
|
" --win32, --win64 Set the target architecture (Win32 or Win64)\n"
|
||||||
" --win64 Only generate 64-bit code\n"
|
|
||||||
" --win32-align n Set win32 structure alignment to 'n'\n"
|
" --win32-align n Set win32 structure alignment to 'n'\n"
|
||||||
" --win64-align n Set win64 structure alignment to 'n'\n"
|
" --win64-align n Set win64 structure alignment to 'n'\n"
|
||||||
"Debug level 'n' is a bitmask with following meaning:\n"
|
"Debug level 'n' is a bitmask with following meaning:\n"
|
||||||
|
@ -97,6 +91,20 @@ static const char usage[] =
|
||||||
static const char version_string[] = "Wine IDL Compiler version " PACKAGE_VERSION "\n"
|
static const char version_string[] = "Wine IDL Compiler version " PACKAGE_VERSION "\n"
|
||||||
"Copyright 2002 Ove Kaaven\n";
|
"Copyright 2002 Ove Kaaven\n";
|
||||||
|
|
||||||
|
#ifdef __i386__
|
||||||
|
enum target_cpu target_cpu = CPU_x86;
|
||||||
|
#elif defined(__x86_64__)
|
||||||
|
enum target_cpu target_cpu = CPU_x86_64;
|
||||||
|
#elif defined(__powerpc__)
|
||||||
|
enum target_cpu target_cpu = CPU_POWERPC;
|
||||||
|
#elif defined(__arm__)
|
||||||
|
enum target_cpu target_cpu = CPU_ARM;
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
enum target_cpu target_cpu = CPU_ARM64;
|
||||||
|
#else
|
||||||
|
#error Unsupported CPU
|
||||||
|
#endif
|
||||||
|
|
||||||
int debuglevel = DEBUGLEVEL_NONE;
|
int debuglevel = DEBUGLEVEL_NONE;
|
||||||
int parser_debug, yy_flex_debug;
|
int parser_debug, yy_flex_debug;
|
||||||
|
|
||||||
|
@ -113,8 +121,6 @@ int do_idfile = 0;
|
||||||
int do_dlldata = 0;
|
int do_dlldata = 0;
|
||||||
static int no_preprocess = 0;
|
static int no_preprocess = 0;
|
||||||
int old_names = 0;
|
int old_names = 0;
|
||||||
int do_win32 = 1;
|
|
||||||
int do_win64 = 1;
|
|
||||||
int win32_packing = 8;
|
int win32_packing = 8;
|
||||||
int win64_packing = 8;
|
int win64_packing = 8;
|
||||||
int winrt_mode = 0;
|
int winrt_mode = 0;
|
||||||
|
@ -147,7 +153,6 @@ int line_number = 1;
|
||||||
static FILE *idfile;
|
static FILE *idfile;
|
||||||
|
|
||||||
unsigned int pointer_size = 0;
|
unsigned int pointer_size = 0;
|
||||||
syskind_t typelib_kind = sizeof(void*) == 8 ? SYS_WIN64 : SYS_WIN32;
|
|
||||||
|
|
||||||
time_t now;
|
time_t now;
|
||||||
|
|
||||||
|
@ -187,6 +192,7 @@ static const struct option long_options[] = {
|
||||||
{ "prefix-client", 1, NULL, PREFIX_CLIENT_OPTION },
|
{ "prefix-client", 1, NULL, PREFIX_CLIENT_OPTION },
|
||||||
{ "prefix-server", 1, NULL, PREFIX_SERVER_OPTION },
|
{ "prefix-server", 1, NULL, PREFIX_SERVER_OPTION },
|
||||||
{ "robust", 0, NULL, ROBUST_OPTION },
|
{ "robust", 0, NULL, ROBUST_OPTION },
|
||||||
|
{ "target", 0, NULL, 'b' },
|
||||||
{ "winrt", 0, NULL, RT_OPTION },
|
{ "winrt", 0, NULL, RT_OPTION },
|
||||||
{ "win32", 0, NULL, WIN32_OPTION },
|
{ "win32", 0, NULL, WIN32_OPTION },
|
||||||
{ "win64", 0, NULL, WIN64_OPTION },
|
{ "win64", 0, NULL, WIN64_OPTION },
|
||||||
|
@ -268,20 +274,24 @@ static void set_target( const char *target )
|
||||||
{
|
{
|
||||||
static const struct
|
static const struct
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
syskind_t kind;
|
enum target_cpu cpu;
|
||||||
} cpu_names[] =
|
} cpu_names[] =
|
||||||
{
|
{
|
||||||
{ "i386", SYS_WIN32 },
|
{ "i386", CPU_x86 },
|
||||||
{ "i486", SYS_WIN32 },
|
{ "i486", CPU_x86 },
|
||||||
{ "i586", SYS_WIN32 },
|
{ "i586", CPU_x86 },
|
||||||
{ "i686", SYS_WIN32 },
|
{ "i686", CPU_x86 },
|
||||||
{ "i786", SYS_WIN32 },
|
{ "i786", CPU_x86 },
|
||||||
{ "amd64", SYS_WIN64 },
|
{ "amd64", CPU_x86_64 },
|
||||||
{ "x86_64", SYS_WIN64 },
|
{ "x86_64", CPU_x86_64 },
|
||||||
{ "powerpc", SYS_WIN32 },
|
{ "powerpc", CPU_POWERPC },
|
||||||
{ "arm", SYS_WIN32 },
|
{ "arm", CPU_ARM },
|
||||||
{ "aarch64", SYS_WIN64 }
|
{ "armv5", CPU_ARM },
|
||||||
|
{ "armv6", CPU_ARM },
|
||||||
|
{ "armv7", CPU_ARM },
|
||||||
|
{ "arm64", CPU_ARM64 },
|
||||||
|
{ "aarch64", CPU_ARM64 },
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -295,7 +305,7 @@ static void set_target( const char *target )
|
||||||
{
|
{
|
||||||
if (!strcmp( cpu_names[i].name, spec ))
|
if (!strcmp( cpu_names[i].name, spec ))
|
||||||
{
|
{
|
||||||
typelib_kind = cpu_names[i].kind;
|
target_cpu = cpu_names[i].cpu;
|
||||||
free( spec );
|
free( spec );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -605,12 +615,10 @@ int main(int argc,char *argv[])
|
||||||
use_abi_namespace = 1;
|
use_abi_namespace = 1;
|
||||||
break;
|
break;
|
||||||
case WIN32_OPTION:
|
case WIN32_OPTION:
|
||||||
do_win32 = 1;
|
pointer_size = 4;
|
||||||
do_win64 = 0;
|
|
||||||
break;
|
break;
|
||||||
case WIN64_OPTION:
|
case WIN64_OPTION:
|
||||||
do_win32 = 0;
|
pointer_size = 8;
|
||||||
do_win64 = 1;
|
|
||||||
break;
|
break;
|
||||||
case WIN32_ALIGN_OPTION:
|
case WIN32_ALIGN_OPTION:
|
||||||
win32_packing = strtol(optarg, NULL, 0);
|
win32_packing = strtol(optarg, NULL, 0);
|
||||||
|
@ -663,8 +671,8 @@ int main(int argc,char *argv[])
|
||||||
wpp_add_include_path(optarg);
|
wpp_add_include_path(optarg);
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
if (!strcmp( optarg, "32" )) typelib_kind = SYS_WIN32;
|
if (!strcmp( optarg, "32" )) pointer_size = 4;
|
||||||
else if (!strcmp( optarg, "64" )) typelib_kind = SYS_WIN64;
|
else if (!strcmp( optarg, "64" )) pointer_size = 8;
|
||||||
break;
|
break;
|
||||||
case 'N':
|
case 'N':
|
||||||
no_preprocess = 1;
|
no_preprocess = 1;
|
||||||
|
@ -728,6 +736,26 @@ int main(int argc,char *argv[])
|
||||||
wpp_add_include_path(DEFAULT_INCLUDE_DIR);
|
wpp_add_include_path(DEFAULT_INCLUDE_DIR);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
switch (target_cpu)
|
||||||
|
{
|
||||||
|
case CPU_x86:
|
||||||
|
if (pointer_size == 8) target_cpu = CPU_x86_64;
|
||||||
|
else pointer_size = 4;
|
||||||
|
break;
|
||||||
|
case CPU_x86_64:
|
||||||
|
if (pointer_size == 4) target_cpu = CPU_x86;
|
||||||
|
else pointer_size = 8;
|
||||||
|
break;
|
||||||
|
case CPU_ARM64:
|
||||||
|
if (pointer_size == 4) error( "Cannot build 32-bit code for this CPU\n" );
|
||||||
|
pointer_size = 8;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (pointer_size == 8) error( "Cannot build 64-bit code for this CPU\n" );
|
||||||
|
pointer_size = 4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* if nothing specified, try to guess output type from the output file name */
|
/* if nothing specified, try to guess output type from the output file name */
|
||||||
if (output_name && do_everything && !do_header && !do_typelib && !do_proxies &&
|
if (output_name && do_everything && !do_header && !do_typelib && !do_proxies &&
|
||||||
!do_client && !do_server && !do_regscript && !do_idfile && !do_dlldata)
|
!do_client && !do_server && !do_regscript && !do_idfile && !do_dlldata)
|
||||||
|
|
|
@ -45,8 +45,6 @@ extern int do_regscript;
|
||||||
extern int do_idfile;
|
extern int do_idfile;
|
||||||
extern int do_dlldata;
|
extern int do_dlldata;
|
||||||
extern int old_names;
|
extern int old_names;
|
||||||
extern int do_win32;
|
|
||||||
extern int do_win64;
|
|
||||||
extern int win32_packing;
|
extern int win32_packing;
|
||||||
extern int win64_packing;
|
extern int win64_packing;
|
||||||
extern int winrt_mode;
|
extern int winrt_mode;
|
||||||
|
@ -76,6 +74,13 @@ extern time_t now;
|
||||||
extern int line_number;
|
extern int line_number;
|
||||||
extern int char_number;
|
extern int char_number;
|
||||||
|
|
||||||
|
enum target_cpu
|
||||||
|
{
|
||||||
|
CPU_x86, CPU_x86_64, CPU_POWERPC, CPU_ARM, CPU_ARM64, CPU_LAST = CPU_ARM64
|
||||||
|
};
|
||||||
|
|
||||||
|
extern enum target_cpu target_cpu;
|
||||||
|
|
||||||
enum stub_mode
|
enum stub_mode
|
||||||
{
|
{
|
||||||
MODE_Os, /* inline stubs */
|
MODE_Os, /* inline stubs */
|
||||||
|
|
|
@ -35,10 +35,12 @@ Set the name of the output file. When generating multiple output
|
||||||
files, this sets only the base name of the file; the respective output
|
files, this sets only the base name of the file; the respective output
|
||||||
files are then named \fIname\fR.h, \fIname\fR_p.c, etc. If a full
|
files are then named \fIname\fR.h, \fIname\fR_p.c, etc. If a full
|
||||||
file name with extension is specified, only that file is generated.
|
file name with extension is specified, only that file is generated.
|
||||||
.IP "\fB-b \fIcpu-manufacturer\fR[\fB-\fIkernel\fR]\fB-\fIos\fR"
|
.IP "\fB-b, --target=\fIcpu-manufacturer\fR[\fI-kernel\fR]\fI-os\fR"
|
||||||
Set the target architecture when cross-compiling. The target
|
Set the target architecture when cross-compiling. The target
|
||||||
specification is in the standard autoconf format as returned by
|
specification is in the standard autoconf format as returned by
|
||||||
\fBconfig.sub\fR.
|
\fBconfig.sub\fR.
|
||||||
|
.IP "\fB-m32, -m64, --win32, --win64\fR"
|
||||||
|
Force the target architecture to 32-bit or 64-bit.
|
||||||
.PP
|
.PP
|
||||||
.B Header options:
|
.B Header options:
|
||||||
.IP "\fB-h\fR"
|
.IP "\fB-h\fR"
|
||||||
|
@ -51,8 +53,6 @@ Use old naming conventions.
|
||||||
Generate a type library. The default output filename is
|
Generate a type library. The default output filename is
|
||||||
\fIinfile\fB.tlb\fR. If the output file name ends in \fB.res\fR, a
|
\fIinfile\fB.tlb\fR. If the output file name ends in \fB.res\fR, a
|
||||||
binary resource file containing the type library is generated instead.
|
binary resource file containing the type library is generated instead.
|
||||||
.IP "\fB-m32, -m64\fR"
|
|
||||||
Generate a Win32 or Win64 type library respectively.
|
|
||||||
.PP
|
.PP
|
||||||
.B UUID file options:
|
.B UUID file options:
|
||||||
.IP "\fB-u\fR"
|
.IP "\fB-u\fR"
|
||||||
|
@ -78,10 +78,6 @@ Prefix to put on the name of server stubs.
|
||||||
.IP "\fB-s\fR"
|
.IP "\fB-s\fR"
|
||||||
Generate a server stub file. The default output filename is
|
Generate a server stub file. The default output filename is
|
||||||
\fIinfile\fB_s.c\fR.
|
\fIinfile\fB_s.c\fR.
|
||||||
.IP "\fB--win32\fR, \fB--win64\fR"
|
|
||||||
Only generate 32-bit or 64-bit code respectively (the default is to
|
|
||||||
generate both 32-bit and 64-bit versions into the same destination
|
|
||||||
file).
|
|
||||||
.PP
|
.PP
|
||||||
.IP "\fB--winrt\fR"
|
.IP "\fB--winrt\fR"
|
||||||
Enable Windows Runtime mode.
|
Enable Windows Runtime mode.
|
||||||
|
|
|
@ -553,7 +553,6 @@ typedef enum {
|
||||||
SYS_WIN64
|
SYS_WIN64
|
||||||
} syskind_t;
|
} syskind_t;
|
||||||
|
|
||||||
extern syskind_t typelib_kind;
|
|
||||||
extern user_type_list_t user_type_list;
|
extern user_type_list_t user_type_list;
|
||||||
extern context_handle_list_t context_handle_list;
|
extern context_handle_list_t context_handle_list;
|
||||||
extern generic_handle_list_t generic_handle_list;
|
extern generic_handle_list_t generic_handle_list;
|
||||||
|
|
|
@ -2653,8 +2653,6 @@ int create_msft_typelib(typelib_t *typelib)
|
||||||
GUID midl_info_guid = {0xde77ba65,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}};
|
GUID midl_info_guid = {0xde77ba65,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}};
|
||||||
char info_string[128];
|
char info_string[128];
|
||||||
|
|
||||||
pointer_size = (typelib_kind == SYS_WIN64) ? 8 : 4;
|
|
||||||
|
|
||||||
msft = xmalloc(sizeof(*msft));
|
msft = xmalloc(sizeof(*msft));
|
||||||
memset(msft, 0, sizeof(*msft));
|
memset(msft, 0, sizeof(*msft));
|
||||||
msft->typelib = typelib;
|
msft->typelib = typelib;
|
||||||
|
@ -2662,7 +2660,7 @@ int create_msft_typelib(typelib_t *typelib)
|
||||||
ctl2_init_header(msft);
|
ctl2_init_header(msft);
|
||||||
ctl2_init_segdir(msft);
|
ctl2_init_segdir(msft);
|
||||||
|
|
||||||
msft->typelib_header.varflags |= typelib_kind;
|
msft->typelib_header.varflags |= (pointer_size == 8) ? SYS_WIN64 : SYS_WIN32;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following two calls return an offset or -1 if out of memory. We
|
* The following two calls return an offset or -1 if out of memory. We
|
||||||
|
|
Loading…
Reference in New Issue