This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Why was this necessary:
<libjava/libltdl> * ltdl.c (DLL_EXPORT): Rename to LIBLTDL_DLL_EXPORT. * ltdl.h (DLL_EXPORT): Rename to LIBLTDL_DLL_EXPORT.
AFAIK, this new symbol LIBLDL_DLLEXPORT, is never defined by libtool, even when building libjava shared. So the symbols decorated with LT_SCOPE will never get the __declspec(dllexport) annotation.
Or was that the intention, in order to work around the issue where ld disables its default auto-export behavior, when it sees ANY symbol explicitly marked as __declspec(dllexport)?
If so, then the comment:
+# ifdef LIBLTDL_DLL_EXPORT /* defined by libtool (if required) */
is wrong; it should be something like
/* !not! 'DLL_EXPORT'; we don't want libtool to
automatically decorate just these exports without
also decorating every other libjava export
*/
But finally, there's one last issue: I thought one of the gcc guidelines going forward with respect to autotools was to NOT modify imported files. These changes will be lost every time somebody resyncs with upstream libtool...
Wouldn't it make more sense, until there are proper __declspec() markings/macros on all desired libjava exports, to leave these source files alone and just explicitly use -Wl,--enable-auto-export when linking the libjava DLL on mingw/cygwin?
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |