No subject


Tue Feb 23 11:03:59 CST 2010


Winelib, there are frequent cases when builded dll.so

 - only imports symbols through PE
 - exports symbols only through ELF
 - does not export PE symbols

At present, for such a scenario, one have to always provide empty .spec
file for every .dll.so, but this contrasts with mingw, where -shared
works even without .def file, just like

    # on Linux
    $ i586-mingw32msvc-gcc -shared -o x.dll x.c

and

    # on Windows
    $ gcc -shared -o x.dll x.c

So maybe like with PE EXE let's do not require .spec file when building
dll?
---
 tools/winebuild/main.c  |    1 -
 tools/winegcc/winegcc.c |    2 --
 2 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c
index d2ec943..0e662f8 100644
--- a/tools/winebuild/main.c
+++ b/tools/winebuild/main.c
@@ -621,7 +621,6 @@ int main(int argc, char **argv)
     case MODE_DLL:
         if (spec->subsystem != IMAGE_SUBSYSTEM_NATIVE)
             spec->characteristics |= IMAGE_FILE_DLL;
-        if (!spec_file_name) fatal_error( "missing .spec file\n" );
         /* fall through */
     case MODE_EXE:
         load_resources( argv, spec );
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index 48f39bc..b7c0f91 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -674,8 +674,6 @@ static void build(struct options* opts)
 	else if (file[1] == 'x')
 	    lang = file;
     }
-    if (opts->shared && !spec_file)
-	error("A spec file is currently needed in shared mode\n");
 
     /* building for Windows is completely different */
 
-- 
1.7.1.rc2.12.g3a006




More information about the wine-patches mailing list