From 054406f78c4acfcee39d8ee07510b66863c8e3bf Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 30 Dec 2009 12:50:17 +0100 Subject: [PATCH] winebuild: Don't output private symbols at all when building an import library. --- tools/winebuild/build.h | 2 +- tools/winebuild/import.c | 2 +- tools/winebuild/main.c | 2 +- tools/winebuild/spec32.c | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h index 0543eb1d3a..8e21a45f55 100644 --- a/tools/winebuild/build.h +++ b/tools/winebuild/build.h @@ -257,6 +257,7 @@ extern int load_res32_file( const char *name, DLLSPEC *spec ); extern void output_resources( DLLSPEC *spec ); extern void output_bin_resources( DLLSPEC *spec, unsigned int start_rva ); extern void output_fake_module( DLLSPEC *spec ); +extern void output_def_file( DLLSPEC *spec, int include_private ); extern void load_res16_file( const char *name, DLLSPEC *spec ); extern void output_res16_data( DLLSPEC *spec ); extern void output_bin_res16_data( DLLSPEC *spec ); @@ -270,7 +271,6 @@ extern void BuildRelays16(void); extern void BuildRelays32(void); extern void BuildSpec16File( DLLSPEC *spec ); extern void BuildSpec32File( DLLSPEC *spec ); -extern void BuildDef32File( DLLSPEC *spec ); extern void add_16bit_exports( DLLSPEC *spec32, DLLSPEC *spec16 ); extern int parse_spec_file( FILE *file, DLLSPEC *spec ); diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c index 648d29f71b..a81d564e0b 100644 --- a/tools/winebuild/import.c +++ b/tools/winebuild/import.c @@ -1319,7 +1319,7 @@ void output_import_lib( DLLSPEC *spec, char **argv ) fclose( output_file ); if (!(output_file = fopen( def_file, "w" ))) fatal_error( "Unable to create output file '%s'\n", def_file ); - BuildDef32File( spec ); + output_def_file( spec, 0 ); fclose( output_file ); output_file = NULL; diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c index 138ec68c39..d04d2769f8 100644 --- a/tools/winebuild/main.c +++ b/tools/winebuild/main.c @@ -667,7 +667,7 @@ int main(int argc, char **argv) if (argv[0]) fatal_error( "file argument '%s' not allowed in this mode\n", argv[0] ); if (!spec_file_name) fatal_error( "missing .spec file\n" ); if (!parse_input_file( spec )) break; - BuildDef32File( spec ); + output_def_file( spec, 1 ); break; case MODE_IMPLIB: if (!spec_file_name) fatal_error( "missing .spec file\n" ); diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c index 08703a234d..a594deb000 100644 --- a/tools/winebuild/spec32.c +++ b/tools/winebuild/spec32.c @@ -762,11 +762,11 @@ void output_fake_module( DLLSPEC *spec ) /******************************************************************* - * BuildDef32File + * output_def_file * * Build a Win32 def file from a spec file. */ -void BuildDef32File( DLLSPEC *spec ) +void output_def_file( DLLSPEC *spec, int include_private ) { DLLSPEC *spec32 = NULL; const char *name; @@ -802,6 +802,7 @@ void BuildDef32File( DLLSPEC *spec ) else continue; if (!(odp->flags & FLAG_PRIVATE)) total++; + else if (!include_private) continue; if (odp->type == TYPE_STUB) continue;