Yes, of course I checked. If any winelib apps break, then they are broken and need fixing.+ Remove . from default library search path
This may break Winelib apps. Did you check that MinGW does not search . for libs?
When using winegcc to build bits of wine itself you cannot rely on the installed location to even exist yet. So you must tell winegcc/winewrap where to find libwine.so using -L. Here is the relevant bit in the patch:+ -lwine needs passed in -L paths
What do you mean by this?
@@ -376,7 +393,8 @@ strarray_add(wspec_args, strmake("%s.exe", base_name)); strarray_add(wspec_args, gui_mode ? "-mgui" : "-mcui"); strarray_add(wspec_args, wrap_o_name); - strarray_add(wspec_args, "-L" DLLDIR); + for (i = 0; i < llib_paths->size; i++) + strarray_add(wspec_args, llib_paths->base[i]); strarray_add(wspec_args, "-lkernel32"); strarray_add(wspec_args, NULL);
@@ -407,6 +425,8 @@ strarray_add(wlink_args, strmake("%s.exe.so", base_file)); 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);
Yes of course.
- strarray_add(lib_files, strmake("-l%s", library)); + /* Probably one of: + * .def - which winebuild won't find + * .so - which winebuild doesn't support + * .a - which gcc won't find + */ + fprintf(stderr, "Ignoring library %s\n", library);
We need to pass .a files to gcc, otherwise Winelib apps break.
> What do you mean "won't find"?
This comment refers to the ones that couldn't be found in the library search path. Maybe I should give up putting comments in ;-}
And we should pass .so libs to gcc as well.Sorry - s/winebuild/gcc/ - of course at the moment winegcc doesn't recognize them.
-- Richard