Add __BEGIN_PUBLIC / __END_PUBLIC, __BEGIN_HIDDEN / __END_HIDDEN and
__dso_public and __dso_hidden markers. Change __BEGIN_DECLS / __END_DECLS to include __BEGIN_PUBLIC / __END_PUBLIC.
This commit is contained in:
parent
11e43416a1
commit
981352168f
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: cdefs.h,v 1.79 2010/07/31 00:04:43 joerg Exp $ */
|
/* $NetBSD: cdefs.h,v 1.80 2010/08/07 21:03:18 joerg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
|
@ -63,16 +63,6 @@
|
||||||
#include <sys/cdefs_aout.h>
|
#include <sys/cdefs_aout.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
#define __BEGIN_DECLS extern "C" {
|
|
||||||
#define __END_DECLS }
|
|
||||||
#define __static_cast(x,y) static_cast<x>(y)
|
|
||||||
#else
|
|
||||||
#define __BEGIN_DECLS
|
|
||||||
#define __END_DECLS
|
|
||||||
#define __static_cast(x,y) (x)y
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The __CONCAT macro is used to concatenate parts of symbol names, e.g.
|
* The __CONCAT macro is used to concatenate parts of symbol names, e.g.
|
||||||
* with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
|
* with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
|
||||||
|
@ -228,6 +218,33 @@
|
||||||
#define __used __unused
|
#define __used __unused
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC_PREREQ__(4, 0)
|
||||||
|
# define __dso_public __attribute__((__visibility__("default")))
|
||||||
|
# define __dso_hidden __attribute__((__visibility__("hidden")))
|
||||||
|
# define __BEGIN_PUBLIC _Pragma("GCC visibility push(default)")
|
||||||
|
# define __END_PUBLIC _Pragma("GCC visibility pop")
|
||||||
|
# define __BEGIN_HIDDEN _Pragma("GCC visibility push(hidden)")
|
||||||
|
# define __END_HIDDEN _Pragma("GCC visibility pop")
|
||||||
|
#else
|
||||||
|
# define __dso_public
|
||||||
|
# define __dso_hidden
|
||||||
|
# define __BEGIN_PUBLIC
|
||||||
|
# define __END_PUBLIC
|
||||||
|
# define __BEGIN_HIDDEN
|
||||||
|
# define __END_HIDDEN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define __BEGIN_DECLS __BEGIN_PUBLIC extern "C" {
|
||||||
|
#define __END_DECLS } __END_PUBLIC
|
||||||
|
#define __static_cast(x,y) static_cast<x>(y)
|
||||||
|
#else
|
||||||
|
#define __BEGIN_DECLS __BEGIN_PUBLIC
|
||||||
|
#define __END_DECLS __END_PUBLIC
|
||||||
|
#define __static_cast(x,y) (x)y
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Non-static C99 inline functions are optional bodies. They don't
|
* Non-static C99 inline functions are optional bodies. They don't
|
||||||
* create global symbols if not used, but can be replaced if desirable.
|
* create global symbols if not used, but can be replaced if desirable.
|
||||||
|
|
Loading…
Reference in New Issue