~vcs-imports/libiconv/trunk

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Bruno Haible
  • Date: 2023-09-06 16:08:35 UTC
  • Revision ID: git-v1:bacf33185644481aced2d0c6c57f466b8267a3cb
Don't export symbols from static MSVC .obj files.

Suggested by Dmitry Bely <dmitry.bely@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-08/msg00002.html>.

* include/export.h: Add a copyright notice. Set LIBICONV_DLL_EXPORTED to
empty on MSVC when DLL_EXPORT is not defined.
* Makefile.devel (include/iconv.h.build.in): Filter out the second
copyright notice.
* configure.ac (DLL_VARIABLE): Test DLL_EXPORT, not _DLL.
* lib/relocatable.h: From gnulib:
(RELOCATABLE_DLL_EXPORTED): Don't use __declspec(dllexport) when
creating static .obj files with MSVC.
* libcharset/include/export.h: Add a copyright notice. Set
LIBCHARSET_DLL_EXPORTED to empty on MSVC when DLL_EXPORT is not defined.
* libcharset/Makefile.devel (include/libcharset.h.build.in,
include/localcharset.h.build.in): Filter out the second copyright
notice.

Show diffs side-by-side

added added

removed removed

Lines of Context:
170
170
dnl because
171
171
dnl 1. when we install a shared library, we must arrange to export
172
172
dnl    auxiliary pointer variables for every exported variable,
173
 
dnl 2. when we install a shared library and a static library simultaneously,
 
173
dnl 2. when we install a shared library and a static library simultaneously
 
174
dnl    (e.g. when the user overrides the 'disable-static' default above by
 
175
dnl    passing the configure options --enable-shared --enable-static),
174
176
dnl    the include file specifies __declspec(dllimport) and therefore we
175
177
dnl    must arrange to define the auxiliary pointer variables for the
176
178
dnl    exported variables _also_ in the static library.
192
194
AC_SUBST([DLL_VARIABLE])
193
195
 
194
196
AH_BOTTOM([
195
 
/* On Windows, variables that may be in a DLL must be marked specially.  */
196
 
#if defined _MSC_VER && defined _DLL
 
197
/* On Windows, variables that may be in a DLL must be marked specially.
 
198
   The symbols marked with DLL_VARIABLE should be exported if and only if the
 
199
   object file gets included in a DLL.  Libtool, on Windows platforms, defines
 
200
   the C macro DLL_EXPORT (together with PIC) when compiling for a DLL
 
201
   and does not define it when compiling an object file meant to be linked
 
202
   statically into some executable.  */
 
203
#if defined _MSC_VER && defined DLL_EXPORT
197
204
# define DLL_VARIABLE __declspec (dllimport)
198
205
#else
199
206
# define DLL_VARIABLE