winewrap: fix wrapper linking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Richard,

You patch from Nov 28:
   http://www.winehq.org/hypermail/wine-cvs/2003/11/0299.html
says (among other things):
   "Compiling with -lwine needs to use the given -L paths."

In other words, it adds all the -Lxxx libs to the linking step
for the wrapper. I see no reason to do so. At the Windows/DLL
level, we only link with kernel32, and we know exactly where
it is: in DLLDIR. At the Linux/ELF level, we only link with
-lwine, and similarly, we know it resides in LIBDIR.

Anything against this patch?

ChangeLog
    Do not fail if we can't load some libs in the wrapper.
    No need to link the wrapper with all libs, we know what we need.

Index: tools/winegcc/winewrap.c
===================================================================
RCS file: /var/cvs/wine/tools/winegcc/winewrap.c,v
retrieving revision 1.11
diff -u -r1.11 winewrap.c
--- tools/winegcc/winewrap.c	3 Dec 2003 03:58:52 -0000	1.11
+++ tools/winegcc/winewrap.c	7 Jan 2004 05:22:20 -0000
@@ -187,7 +187,8 @@
     "    }\n"
     "\n"
     "    for (i = 0; i < sizeof(libs)/sizeof(libs[0]); i++) {\n"
-    "        if (!LoadLibrary(libs[i])) error(\"Could not load %%s (%%d)\", libs[i], GetLastError());\n"
+    "        if (!LoadLibrary(libs[i])) \n"
+    "            fprintf(stderr, \"Warning: Could not load %%s (%%d)\\n\", libs[i], GetLastError());\n"
     "    }\n"
     "\n"
     "    /* Load the application's module */\n"
@@ -395,8 +396,7 @@
     strarray_add(wspec_args, strmake("%s.exe", base_name));
     strarray_add(wspec_args, gui_mode ? "-mgui" : "-mcui");
     strarray_add(wspec_args, wrap_o_name);
-    for (i = 0; i < llib_paths->size; i++)
-	strarray_add(wspec_args, llib_paths->base[i]);
+    strarray_add(wspec_args, "-L" DLLDIR);
     strarray_add(wspec_args, "-lkernel32");
     strarray_add(wspec_args, NULL);
 
@@ -422,13 +422,12 @@
     strarray_add(wlink_args, "gcc");
     strarray_add(wlink_args, "-shared");
     strarray_add(wlink_args, "-Wl,-Bsymbolic,-z,defs");
-    strarray_add(wlink_args, "-lwine");
     strarray_add(wlink_args, "-o");
     strarray_add(wlink_args, strmake("%s.exe.so", base_file));
+    strarray_add(wlink_args, "-L" LIBDIR);
+    strarray_add(wlink_args, "-lwine");
     strarray_add(wlink_args, wspec_o_name);
     strarray_add(wlink_args, wrap_o_name);
-    for (i = 0; i < llib_paths->size; i++)
-	strarray_add(wlink_args, llib_paths->base[i]);
     strarray_add(wlink_args, NULL);
 
     spawn(wlink_args);


-- 
Dimi.



[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux