Hi,
For the last couple of weeks I spent some time doing porting Wine to NetBSD (there used to be a port but was too out of date). After applying patches my own, it has been successfully compiled and started running.
The most serious problem occurs, however, whenever I try to run a Windows binary with it:
$ wine c:\windows\sol.exe No built-in EXE module loaded! Did you create a .spec file?
Obviously sol.exe doesn't need a .spec file to run. When/Why do I get such an error?
Jun-Young
-- Bang Jun-Young bjy@mogua.org
Bang Jun-Young wrote:
Hi,
For the last couple of weeks I spent some time doing porting Wine to NetBSD (there used to be a port but was too out of date). After applying patches my own, it has been successfully compiled and started running.
The most serious problem occurs, however, whenever I try to run a Windows binary with it:
$ wine c:\\windows\\sol.exe No built-in EXE module loaded! Did you create a .spec file?
Obviously sol.exe doesn't need a .spec file to run. When/Why do I get such an error?
No, a native program doesn't need a .spec file. However, it rather seems that the native modules don't get registered, hence the error. you should check that __wine_dll_register gets actually called (I bet it isn't). And, in your case the .spec for the emulator (wine.spec) is not registered, hence the error. It's likely to be a loader issue. Look in the .spec.c files with the __asm__dummy_dll_init and __wine_spec_wine_init functions. The first one is put in the .init section so that the loader executes every function from this section when the module (wine in this case) is loaded into memory. It's very likely this doesn't happen in your case.
A+
eric pouech wrote:
No, a native program doesn't need a .spec file. However, it rather seems that the native modules don't get registered, hence the error. you should check that __wine_dll_register gets actually called (I bet it isn't). And, in your case the .spec for the emulator (wine.spec) is not registered, hence the error. It's likely to be a loader issue. Look in the .spec.c files with the __asm__dummy_dll_init and __wine_spec_wine_init functions. The first one is put in the .init section so that the loader executes every function from this section when the module (wine in this case) is loaded into memory. It's very likely this doesn't happen in your case.
Thanks for giving the explaination(!). I'm going to examine the code soon.
Jun-Young
-- Bang Jun-Young bjy@mogua.org
On Tue, 1 May 2001, Bang Jun-Young wrote:
Hi,
For the last couple of weeks I spent some time doing porting Wine to NetBSD (there used to be a port but was too out of date). After applying patches my own, it has been successfully compiled and started running.
The most serious problem occurs, however, whenever I try to run a Windows binary with it:
$ wine c:\windows\sol.exe No built-in EXE module loaded! Did you create a .spec file?
Obviously sol.exe doesn't need a .spec file to run. When/Why do I get such an error?
Maybe you already fixed that but... In configure.in there's a NetBSD section that seems incomplete wrt. how one links a builtin dll. And this might be related to your problem. See thos lines:
if test "$ac_cv_c_dll_netbsd" = "yes" then LDSHARED="$(CC) -Wl,-Bshareable,-Bforcearchive" LDDLLFLAGS="" #FIXME <--- doesn't look good fi
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ The greatest programming project of all took six days; on the seventh day the programmer rested. We've been trying to debug the *&^%$#@ thing ever since. Resume: design before you implement.
Francois Gouget wrote:
Maybe you already fixed that but... In configure.in there's a NetBSD section that seems incomplete wrt. how one links a builtin dll. And this might be related to your problem. See thos lines:
if test "$ac_cv_c_dll_netbsd" = "yes" then LDSHARED="\$(CC) -Wl,-Bshareable,-Bforcearchive" LDDLLFLAGS="" #FIXME <--- doesn't look good fi
Starting from release 1.5, NetBSD has completely switched its native binary format to ELF, so the current gcc(egcs)/binutils toolchain is almost same as those being used on Linux or FreeBSD. What you pointed out is relevant to 1.4 and earlier versions. I'm not sure Wine is able to be compiled on such releases.
Anyway, we need to correct some configure messages to have clearer meanings (i.e. Linux dll -> (Linux-style) ELF dll or Linux/FreeBSD/NetBSD dll, NetBSD dll -> NetBSD a.out dll, etc.).
Jun-Young
-- Bang Jun-Young bjy@mogua.org