mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-04-01 05:13:06 +02:00
Simplify G_HAVE_GNUC_VISIBILITY definition
There is no need of compiler checks, GNUC visibility should be used when __GNUC__ >= 4 but not on Windows.
This commit is contained in:
parent
c16f524034
commit
d40459c280
@ -129,7 +129,6 @@ typedef unsigned @glib_intptr_type_define@ guintptr;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#mesondefine G_HAVE_GROWING_STACK
|
#mesondefine G_HAVE_GROWING_STACK
|
||||||
#mesondefine G_HAVE_GNUC_VISIBILITY
|
|
||||||
|
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
# define G_HAVE_GNUC_VARARGS 1
|
# define G_HAVE_GNUC_VARARGS 1
|
||||||
|
@ -1190,6 +1190,10 @@
|
|||||||
#define G_UNLIKELY(expr) (expr)
|
#define G_UNLIKELY(expr) (expr)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ >= 4 && !defined(_WIN32) && !defined(__CYGWIN__)
|
||||||
|
#define G_HAVE_GNUC_VISIBILITY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* GLIB_CANNOT_IGNORE_DEPRECATIONS is defined above for compilers that do not
|
/* GLIB_CANNOT_IGNORE_DEPRECATIONS is defined above for compilers that do not
|
||||||
* have a way to temporarily suppress deprecation warnings. In these cases,
|
* have a way to temporarily suppress deprecation warnings. In these cases,
|
||||||
* suppress the deprecated attribute altogether (otherwise a simple #include
|
* suppress the deprecated attribute altogether (otherwise a simple #include
|
||||||
|
35
meson.build
35
meson.build
@ -210,41 +210,6 @@ if host_system == 'windows' and cc.get_id() != 'msvc' and cc.get_id() != 'clang-
|
|||||||
glib_conf.set('_FILE_OFFSET_BITS', 64)
|
glib_conf.set('_FILE_OFFSET_BITS', 64)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Check for GNU visibility attributes
|
|
||||||
g_have_gnuc_visibility = cc.compiles('''
|
|
||||||
void
|
|
||||||
__attribute__ ((visibility ("hidden")))
|
|
||||||
f_hidden (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void
|
|
||||||
__attribute__ ((visibility ("internal")))
|
|
||||||
f_internal (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void
|
|
||||||
__attribute__ ((visibility ("default")))
|
|
||||||
f_default (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
int main (void)
|
|
||||||
{
|
|
||||||
f_hidden();
|
|
||||||
f_internal();
|
|
||||||
f_default();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
''',
|
|
||||||
# Not supported by MSVC, but MSVC also won't support visibility,
|
|
||||||
# so it's OK to pass -Werror explicitly. Replace with
|
|
||||||
# override_options : 'werror=true' once that is supported
|
|
||||||
args: ['-Werror'],
|
|
||||||
name : 'GNU C visibility attributes test')
|
|
||||||
|
|
||||||
if g_have_gnuc_visibility
|
|
||||||
glibconfig_conf.set('G_HAVE_GNUC_VISIBILITY', '1')
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Detect and set symbol visibility
|
# Detect and set symbol visibility
|
||||||
glib_hidden_visibility_args = []
|
glib_hidden_visibility_args = []
|
||||||
if get_option('default_library') != 'static'
|
if get_option('default_library') != 'static'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user