mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 19:50:24 +02:00
gnulib-tool --import lib-symbol-visibility
This commit is contained in:
parent
de784acd87
commit
d9a9e18205
5 changed files with 91 additions and 10 deletions
|
@ -9,7 +9,7 @@
|
||||||
# the same distribution terms as the rest of that program.
|
# the same distribution terms as the rest of that program.
|
||||||
#
|
#
|
||||||
# Generated by gnulib-tool.
|
# Generated by gnulib-tool.
|
||||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl --libtool --macro-prefix=gl --no-vc-files alloca-opt autobuild count-one-bits extensions flock fpieee full-read full-write putenv stdlib strcase strftime
|
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl --libtool --macro-prefix=gl --no-vc-files alloca-opt autobuild count-one-bits extensions flock fpieee full-read full-write lib-symbol-visibility putenv stdlib strcase strftime
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.5 gnits
|
AUTOMAKE_OPTIONS = 1.5 gnits
|
||||||
|
|
||||||
|
@ -143,6 +143,16 @@ libgnu_la_SOURCES += full-write.h full-write.c
|
||||||
|
|
||||||
## end gnulib module full-write
|
## end gnulib module full-write
|
||||||
|
|
||||||
|
## begin gnulib module lib-symbol-visibility
|
||||||
|
|
||||||
|
# The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the
|
||||||
|
# compilation of all sources that make up the library. This line here does it
|
||||||
|
# only for the gnulib part of it. The developer is responsible for adding
|
||||||
|
# $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library.
|
||||||
|
AM_CFLAGS += $(CFLAG_VISIBILITY)
|
||||||
|
|
||||||
|
## end gnulib module lib-symbol-visibility
|
||||||
|
|
||||||
## begin gnulib module link-warning
|
## begin gnulib module link-warning
|
||||||
|
|
||||||
LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
|
LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
|
|
||||||
# Specification in the form of a command-line invocation:
|
# Specification in the form of a command-line invocation:
|
||||||
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl --libtool --macro-prefix=gl --no-vc-files alloca-opt autobuild count-one-bits extensions flock fpieee full-read full-write putenv stdlib strcase strftime
|
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl --libtool --macro-prefix=gl --no-vc-files alloca-opt autobuild count-one-bits extensions flock fpieee full-read full-write lib-symbol-visibility putenv stdlib strcase strftime
|
||||||
|
|
||||||
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
||||||
gl_LOCAL_DIR([])
|
gl_LOCAL_DIR([])
|
||||||
|
@ -28,6 +28,7 @@ gl_MODULES([
|
||||||
fpieee
|
fpieee
|
||||||
full-read
|
full-read
|
||||||
full-write
|
full-write
|
||||||
|
lib-symbol-visibility
|
||||||
putenv
|
putenv
|
||||||
stdlib
|
stdlib
|
||||||
strcase
|
strcase
|
||||||
|
|
|
@ -48,6 +48,7 @@ AC_DEFUN([gl_INIT],
|
||||||
gl_FUNC_FLOCK
|
gl_FUNC_FLOCK
|
||||||
gl_HEADER_SYS_FILE_MODULE_INDICATOR([flock])
|
gl_HEADER_SYS_FILE_MODULE_INDICATOR([flock])
|
||||||
gl_INLINE
|
gl_INLINE
|
||||||
|
gl_VISIBILITY
|
||||||
gl_LOCALCHARSET
|
gl_LOCALCHARSET
|
||||||
LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
|
LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
|
||||||
AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
|
AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
|
||||||
|
@ -283,6 +284,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
||||||
m4/time_r.m4
|
m4/time_r.m4
|
||||||
m4/tm_gmtoff.m4
|
m4/tm_gmtoff.m4
|
||||||
m4/unistd_h.m4
|
m4/unistd_h.m4
|
||||||
|
m4/visibility.m4
|
||||||
m4/wchar.m4
|
m4/wchar.m4
|
||||||
m4/wint_t.m4
|
m4/wint_t.m4
|
||||||
m4/write.m4
|
m4/write.m4
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# include_next.m4 serial 12
|
# include_next.m4 serial 14
|
||||||
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -104,8 +104,14 @@ EOF
|
||||||
# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
|
# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
|
||||||
# '<foo.h>'; otherwise define it to be
|
# '<foo.h>'; otherwise define it to be
|
||||||
# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
|
# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
|
||||||
|
# Also, if #include_next works as first preprocessing directive in a file,
|
||||||
|
# define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be '<foo.h>'; otherwise define it to
|
||||||
|
# be
|
||||||
|
# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
|
||||||
# That way, a header file with the following line:
|
# That way, a header file with the following line:
|
||||||
# #@INCLUDE_NEXT@ @NEXT_FOO_H@
|
# #@INCLUDE_NEXT@ @NEXT_FOO_H@
|
||||||
|
# or
|
||||||
|
# #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@
|
||||||
# behaves (after sed substitution) as if it contained
|
# behaves (after sed substitution) as if it contained
|
||||||
# #include_next <foo.h>
|
# #include_next <foo.h>
|
||||||
# even if the compiler does not support include_next.
|
# even if the compiler does not support include_next.
|
||||||
|
@ -123,15 +129,15 @@ AC_DEFUN([gl_CHECK_NEXT_HEADERS],
|
||||||
|
|
||||||
m4_foreach_w([gl_HEADER_NAME], [$1],
|
m4_foreach_w([gl_HEADER_NAME], [$1],
|
||||||
[AS_VAR_PUSHDEF([gl_next_header],
|
[AS_VAR_PUSHDEF([gl_next_header],
|
||||||
[gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
|
[gl_cv_next_]m4_defn([gl_HEADER_NAME]))
|
||||||
if test $gl_cv_have_include_next = yes; then
|
if test $gl_cv_have_include_next = yes; then
|
||||||
AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
|
AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
|
||||||
else
|
else
|
||||||
AC_CACHE_CHECK(
|
AC_CACHE_CHECK(
|
||||||
[absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
|
[absolute name of <]m4_defn([gl_HEADER_NAME])[>],
|
||||||
m4_quote(m4_defn([gl_next_header])),
|
m4_defn([gl_next_header]),
|
||||||
[AS_VAR_PUSHDEF([gl_header_exists],
|
[AS_VAR_PUSHDEF([gl_header_exists],
|
||||||
[ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
|
[ac_cv_header_]m4_defn([gl_HEADER_NAME]))
|
||||||
if test AS_VAR_GET(gl_header_exists) = yes; then
|
if test AS_VAR_GET(gl_header_exists) = yes; then
|
||||||
AC_LANG_CONFTEST(
|
AC_LANG_CONFTEST(
|
||||||
[AC_LANG_SOURCE(
|
[AC_LANG_SOURCE(
|
||||||
|
@ -153,8 +159,8 @@ AC_DEFUN([gl_CHECK_NEXT_HEADERS],
|
||||||
dnl so use subshell.
|
dnl so use subshell.
|
||||||
AS_VAR_SET([gl_next_header],
|
AS_VAR_SET([gl_next_header],
|
||||||
['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
|
['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
|
||||||
sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
|
sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
|
||||||
s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
|
s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
|
||||||
s#^/[^/]#//&#
|
s#^/[^/]#//&#
|
||||||
p
|
p
|
||||||
q
|
q
|
||||||
|
@ -165,7 +171,17 @@ AC_DEFUN([gl_CHECK_NEXT_HEADERS],
|
||||||
AS_VAR_POPDEF([gl_header_exists])])
|
AS_VAR_POPDEF([gl_header_exists])])
|
||||||
fi
|
fi
|
||||||
AC_SUBST(
|
AC_SUBST(
|
||||||
AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
|
AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])),
|
||||||
[AS_VAR_GET([gl_next_header])])
|
[AS_VAR_GET([gl_next_header])])
|
||||||
|
if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
|
||||||
|
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
|
||||||
|
gl_next_as_first_directive='<'gl_HEADER_NAME'>'
|
||||||
|
else
|
||||||
|
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
|
||||||
|
gl_next_as_first_directive=AS_VAR_GET([gl_next_header])
|
||||||
|
fi
|
||||||
|
AC_SUBST(
|
||||||
|
AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])),
|
||||||
|
[$gl_next_as_first_directive])
|
||||||
AS_VAR_POPDEF([gl_next_header])])
|
AS_VAR_POPDEF([gl_next_header])])
|
||||||
])
|
])
|
||||||
|
|
52
m4/visibility.m4
Normal file
52
m4/visibility.m4
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
# visibility.m4 serial 2 (gettext-0.18)
|
||||||
|
dnl Copyright (C) 2005, 2008 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.
|
||||||
|
|
||||||
|
dnl From Bruno Haible.
|
||||||
|
|
||||||
|
dnl Tests whether the compiler supports the command-line option
|
||||||
|
dnl -fvisibility=hidden and the function and variable attributes
|
||||||
|
dnl __attribute__((__visibility__("hidden"))) and
|
||||||
|
dnl __attribute__((__visibility__("default"))).
|
||||||
|
dnl Does *not* test for __visibility__("protected") - which has tricky
|
||||||
|
dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
|
||||||
|
dnl MacOS X.
|
||||||
|
dnl Does *not* test for __visibility__("internal") - which has processor
|
||||||
|
dnl dependent semantics.
|
||||||
|
dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
|
||||||
|
dnl "really only recommended for legacy code".
|
||||||
|
dnl Set the variable CFLAG_VISIBILITY.
|
||||||
|
dnl Defines and sets the variable HAVE_VISIBILITY.
|
||||||
|
|
||||||
|
AC_DEFUN([gl_VISIBILITY],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([AC_PROG_CC])
|
||||||
|
CFLAG_VISIBILITY=
|
||||||
|
HAVE_VISIBILITY=0
|
||||||
|
if test -n "$GCC"; then
|
||||||
|
AC_MSG_CHECKING([for simple visibility declarations])
|
||||||
|
AC_CACHE_VAL([gl_cv_cc_visibility], [
|
||||||
|
gl_save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fvisibility=hidden"
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
|
||||||
|
extern __attribute__((__visibility__("default"))) int exportedvar;
|
||||||
|
extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
|
||||||
|
extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
|
||||||
|
[],
|
||||||
|
[gl_cv_cc_visibility=yes],
|
||||||
|
[gl_cv_cc_visibility=no])
|
||||||
|
CFLAGS="$gl_save_CFLAGS"])
|
||||||
|
AC_MSG_RESULT([$gl_cv_cc_visibility])
|
||||||
|
if test $gl_cv_cc_visibility = yes; then
|
||||||
|
CFLAG_VISIBILITY="-fvisibility=hidden"
|
||||||
|
HAVE_VISIBILITY=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST([CFLAG_VISIBILITY])
|
||||||
|
AC_SUBST([HAVE_VISIBILITY])
|
||||||
|
AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
|
||||||
|
[Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
|
||||||
|
])
|
Loading…
Add table
Add a link
Reference in a new issue