Michael Ost most@museresearch.com writes:
The winebuild step triggered by wineg++ is not generating __wine_spec_init or __wine_dll_register entry points. These entry points *are* made if there are exports in the shared library's spec file. The entry points should be pulled in with libwinecrt0.a, since they are defined there. But they are not and I can't figure out why.
The problem is that they resolve to the same symbols in the dll. Something like this should fix it:
Index: dlls/winecrt0/crt0_private.h =================================================================== RCS file: /opt/cvs-commit/wine/dlls/winecrt0/crt0_private.h,v retrieving revision 1.3 diff -u -p -r1.3 crt0_private.h --- dlls/winecrt0/crt0_private.h 2 Sep 2005 14:43:03 -0000 1.3 +++ dlls/winecrt0/crt0_private.h 12 Oct 2005 14:02:15 -0000 @@ -36,6 +36,6 @@ enum init_state CONSTRUCTORS_DONE /* the constructors have been run (implies dll registered too) */ };
-extern enum init_state __wine_spec_init_state; +extern enum init_state __wine_spec_init_state __attribute__((visibility ("hidden")));
#endif /* __WINE_CRT0_PRIVATE_H__ */