check for HAVE_VISIBILITY first when setting WXIMPORT/WXEXPORT; only set it on platforms where it makes sense

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2007-08-13 18:36:14 +00:00
parent 8105182945
commit b9d4eff64f
3 changed files with 16 additions and 6 deletions

View File

@@ -43,7 +43,12 @@ AC_DEFUN([WX_VISIBILITY],
#if defined(__GNUC__) && __GNUC__ < 4
error this gcc is too old;
#endif
/* visibility only makes sense for ELF shared libs: */
#if !defined(__ELF__) && !defined(__APPLE__)
error this platform has no visibility;
#endif
extern __attribute__((__visibility__("hidden"))) int hiddenvar;
extern __attribute__((__visibility__("default"))) int exportedvar;
extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);

7
configure vendored
View File

@@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Id: configure.in 47919 2007-08-07 01:38:18Z VZ .
# From configure.in Id: configure.in 47942 2007-08-07 22:29:07Z VZ .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0.
#
@@ -36143,6 +36143,11 @@ cat >>conftest.$ac_ext <<_ACEOF
error this gcc is too old;
#endif
/* visibility only makes sense for ELF shared libs: */
#if !defined(__ELF__) && !defined(__APPLE__)
error this platform has no visibility;
#endif
extern __attribute__((__visibility__("hidden"))) int hiddenvar;
extern __attribute__((__visibility__("default"))) int exportedvar;
extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);

View File

@@ -16,7 +16,10 @@
#ifndef _WX_DLIMPEXP_H_
#define _WX_DLIMPEXP_H_
#if defined(__WINDOWS__)
#if defined(HAVE_VISIBILITY)
# define WXEXPORT __attribute__ ((visibility("default")))
# define WXIMPORT __attribute__ ((visibility("default")))
#elif defined(__WINDOWS__)
/*
__declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well
as VC++ and gcc
@@ -51,9 +54,6 @@
#elif defined(__CYGWIN__)
# define WXEXPORT __declspec(dllexport)
# define WXIMPORT __declspec(dllimport)
#elif defined(HAVE_VISIBILITY)
# define WXEXPORT __attribute__ ((visibility("default")))
# define WXIMPORT __attribute__ ((visibility("default")))
#endif
/* for other platforms/compilers we don't anything */