blob: 45d07edfd2ca3a27fdf016f288a16972481074a7 [file] [log] [blame]
Haibo Huangfd5e81a2019-06-20 12:09:36 -07001# expatcfg-compiler-supports-visibility.m4 --
2#
3# SYNOPSIS
4#
5# EXPATCFG_COMPILER_SUPPORTS_VISIBILITY([ACTION-IF-YES],
6# [ACTION-IF-NO])
7#
8# DESCRIPTION
9#
10# Check if the selected compiler supports the "visibility" attribute
11# and set the variable "expatcfg_cv_compiler_supports_visibility"
12# accordingly to "yes" or "no".
13#
14# In addition, execute ACTION-IF-YES or ACTION-IF-NO.
15#
16# LICENSE
17#
18# Copyright (c) 2018 The Expat Authors.
19#
20# Copying and distribution of this file, with or without modification,
21# are permitted in any medium without royalty provided the copyright
22# notice and this notice are preserved. This file is offered as-is,
23# without any warranty.
24
25AC_DEFUN([EXPATCFG_COMPILER_SUPPORTS_VISIBILITY],
26 [AC_CACHE_CHECK([whether compiler supports visibility],
27 [expatcfg_cv_compiler_supports_visibility],
28 [AS_VAR_SET([expatcfg_cv_compiler_supports_visibility],[no])
29 AS_VAR_COPY([OLDFLAGS],[CFLAGS])
30 AS_VAR_APPEND([CFLAGS],[" -fvisibility=hidden -Wall -Werror -Wno-unknown-warning-option"])
31 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
32 void __attribute__((visibility("default"))) foo(void);
33 void foo(void) {}
34 ]])],
35 [AS_VAR_SET([expatcfg_cv_compiler_supports_visibility],[yes])])
36 AS_VAR_COPY([CFLAGS],[OLDFLAGS])])
37 AS_IF([test "$expatcfg_cv_compiler_supports_visibility" = yes],[$1],[$2])])
38
39# end of file