dictate the code style on all platforms. This is unacceptable.
- Use the GNU ld --enable-auto-import option. It is the default on Cygwin
- since July 2005. But it three fatal drawbacks:
+ since July 2005. But it has three fatal drawbacks:
- It produces executables and shared libraries with relocations in the
.text segment, defeating the principles of virtual memory.
- For some constructs such as
-# woe32-dll.m4 serial 1
-dnl Copyright (C) 2005 Free Software Foundation, Inc.
+# woe32-dll.m4 serial 2
+dnl Copyright (C) 2005-2006 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Add --disable-auto-import to the LDFLAGS if the linker supports it.
# GNU ld has an --enable-auto-import option, and it is the default on Cygwin
-# since July 2005. But it two fatal drawbacks:
+# since July 2005. But it has three fatal drawbacks:
# - It produces executables and shared libraries with relocations in the
# .text segment, defeating the principles of virtual memory.
# - For some constructs such as
# extern int var;
# int * const b = &var;
-# it creates an executable that will give an error at runtime, rather than
-# either a compile-time or link-time error or a working executable.
-# (This is with both gcc and g++.) Whereas this code, not relying on auto-
-# import:
+# it creates an executable that will give an error at runtime, rather
+# than either a compile-time or link-time error or a working executable.
+# (This is with both gcc and g++.) Whereas this code, not relying on
+# auto-import:
# extern __declspec (dllimport) int var;
# int * const b = &var;
# gives a compile-time error with gcc and works with g++.
+# - It doesn't work in some cases (references to a member field of an
+# exported struct variable, or to a particular element of an exported
+# array variable), requiring code modifications. One platform
+# dictates code modifications on all platforms.
AC_DEFUN([gl_WOE32_DLL],
[
AC_REQUIRE([AC_CANONICAL_HOST])