Merged revisions 336734 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ................ r336734 | tilghman | 2011-09-19 15:29:40 -0500 (Mon, 19 Sep 2011) | 18 lines Merged revisions 336733 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r336733 | tilghman | 2011-09-19 15:27:03 -0500 (Mon, 19 Sep 2011) | 11 lines Various changes to allow 1.8 to compile on Mac OS X Lion (10.7) * Makefile workaround for 10.6 extended to work on 10.7 and later. * Now uses the 'weak' symbol for Lion systems, which no longer support 'weak_import' Closes ASTERISK-17612. Closes ASTERISK-18213. Tested by: tilghman, oej. ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@336735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
364eb56835
commit
5e7121b44f
2
Makefile
2
Makefile
|
@ -286,7 +286,7 @@ MOD_SUBDIRS_MENUSELECT_TREE:=$(MOD_SUBDIRS:%=%-menuselect-tree)
|
|||
ifneq ($(findstring darwin,$(OSARCH)),)
|
||||
_ASTCFLAGS+=-D__Darwin__
|
||||
SOLINK=-bundle -Xlinker -macosx_version_min -Xlinker 10.4 -Xlinker -undefined -Xlinker dynamic_lookup -force_flat_namespace
|
||||
ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
|
||||
ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
|
||||
SOLINK+=/usr/lib/bundle1.o
|
||||
endif
|
||||
_ASTLDFLAGS+=-L/usr/local/lib
|
||||
|
|
|
@ -37,8 +37,8 @@ endif
|
|||
|
||||
OPTIMIZE?=-O6
|
||||
ifneq ($(findstring darwin,$(OSARCH)),)
|
||||
ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
|
||||
# Snow Leopard has an issue with this optimization flag on large files (like chan_sip)
|
||||
ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
|
||||
# Snow Leopard/Lion has an issue with this optimization flag on large files (like chan_sip)
|
||||
OPTIMIZE+=-fno-inline-functions
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -57,8 +57,8 @@ ifeq ($(findstring -march,$(_ASTCFLAGS) $(ASTCFLAGS)),)
|
|||
endif
|
||||
else
|
||||
ifneq (,$(findstring $(OSARCH),Darwin))
|
||||
ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
|
||||
# Snow Leopard reports i386, even though it's really x86_64
|
||||
ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
|
||||
# Snow Leopard/Lion reports i386, even though it's really x86_64
|
||||
OPTIMIZE+=-mtune=native
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -876,6 +876,7 @@ AST_GCC_ATTRIBUTE(deprecated)
|
|||
AST_GCC_ATTRIBUTE(sentinel)
|
||||
AST_GCC_ATTRIBUTE(warn_unused_result)
|
||||
AST_GCC_ATTRIBUTE(weak_import, [], [], PBX_WEAKREF)
|
||||
AST_GCC_ATTRIBUTE(weak, [], [], PBX_WEAKREF)
|
||||
AST_GCC_ATTRIBUTE(weakref, [weakref("foo")], static, PBX_WEAKREF)
|
||||
|
||||
AC_MSG_CHECKING(for -ffunction-sections support)
|
||||
|
|
|
@ -101,6 +101,9 @@
|
|||
attribute. */
|
||||
#undef HAVE_ATTRIBUTE_warn_unused_result
|
||||
|
||||
/* Define to 1 if your GCC C compiler supports the 'weak' attribute. */
|
||||
#undef HAVE_ATTRIBUTE_weak
|
||||
|
||||
/* Define to 1 if your GCC C compiler supports the 'weak_import' attribute. */
|
||||
#undef HAVE_ATTRIBUTE_weak_import
|
||||
|
||||
|
@ -769,16 +772,16 @@
|
|||
/* Define to 1 if you have the `strtoq' function. */
|
||||
#undef HAVE_STRTOQ
|
||||
|
||||
/* Define to 1 if `ifr_ifru.ifru_hwaddr' is member of `struct ifreq'. */
|
||||
/* Define to 1 if `ifr_ifru.ifru_hwaddr' is a member of `struct ifreq'. */
|
||||
#undef HAVE_STRUCT_IFREQ_IFR_IFRU_IFRU_HWADDR
|
||||
|
||||
/* Define to 1 if `st_blksize' is member of `struct stat'. */
|
||||
/* Define to 1 if `st_blksize' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
|
||||
|
||||
/* Define to 1 if `cr_uid' is member of `struct ucred'. */
|
||||
/* Define to 1 if `cr_uid' is a member of `struct ucred'. */
|
||||
#undef HAVE_STRUCT_UCRED_CR_UID
|
||||
|
||||
/* Define to 1 if `uid' is member of `struct ucred'. */
|
||||
/* Define to 1 if `uid' is a member of `struct ucred'. */
|
||||
#undef HAVE_STRUCT_UCRED_UID
|
||||
|
||||
/* Define to 1 if you have the mISDN Supplemental Services library. */
|
||||
|
@ -1056,6 +1059,9 @@
|
|||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
|
|
|
@ -103,11 +103,11 @@
|
|||
#define AST_OPTIONAL_API_UNAVAILABLE INT_MIN
|
||||
|
||||
|
||||
#if defined(HAVE_ATTRIBUTE_weak_import)
|
||||
#if defined(HAVE_ATTRIBUTE_weak_import) || defined(HAVE_ATTRIBUTE_weak)
|
||||
|
||||
/*
|
||||
* This is the Darwin (Mac OS/X) implementation, that only provides the
|
||||
* 'weak_import' compiler attribute for weak symbols. On this platform,
|
||||
* This is the Darwin (Mac OS/X) implementation, that only provides the 'weak'
|
||||
* or 'weak_import' compiler attribute for weak symbols. On this platform,
|
||||
*
|
||||
* - The module providing the API will only provide a '__' prefixed version
|
||||
* of the API function to other modules (this will be hidden from the other
|
||||
|
@ -117,13 +117,19 @@
|
|||
* - In the API module itself, access to the API function without using a
|
||||
* prefixed name is provided by a static pointer variable that holds the
|
||||
* function address.
|
||||
* - 'Consumer' modules of the API will use a combination of a weak_import
|
||||
* symbol, a local stub function, a pointer variable and a constructor function
|
||||
* (which initializes that pointer variable as the module is being loaded)
|
||||
* to provide safe, optional access to the API function without any special
|
||||
* code being required.
|
||||
* - 'Consumer' modules of the API will use a combination of a weak_import or
|
||||
* weak symbol, a local stub function, a pointer variable and a constructor
|
||||
* function (which initializes that pointer variable as the module is being
|
||||
* loaded) to provide safe, optional access to the API function without any
|
||||
* special code being required.
|
||||
*/
|
||||
|
||||
#if defined(HAVE_ATTRIBUTE_weak_import)
|
||||
#define __default_attribute weak_import /* pre-Lion */
|
||||
#else
|
||||
#define __default_attribute weak /* Lion-onwards */
|
||||
#endif
|
||||
|
||||
#define AST_OPTIONAL_API_NAME(name) __##name
|
||||
|
||||
#if defined(AST_API_MODULE)
|
||||
|
@ -140,17 +146,16 @@
|
|||
|
||||
#define AST_OPTIONAL_API(result, name, proto, stub) \
|
||||
static result __stub__##name proto stub; \
|
||||
__attribute__((weak_import)) typeof(__stub__##name) AST_OPTIONAL_API_NAME(name); \
|
||||
__attribute__((__default_attribute)) typeof(__stub__##name) AST_OPTIONAL_API_NAME(name); \
|
||||
static attribute_unused typeof(__stub__##name) * name; \
|
||||
static void __attribute__((constructor)) __init__##name(void) { name = AST_OPTIONAL_API_NAME(name) ? : __stub__##name; }
|
||||
|
||||
#define AST_OPTIONAL_API_ATTR(result, attr, name, proto, stub) \
|
||||
static __attribute__((attr)) result __stub__##name proto stub; \
|
||||
__attribute__((attr, weak_import)) typeof(__stub__##name) AST_OPTIONAL_API_NAME(name); \
|
||||
__attribute__((attr, __default_attribute)) typeof(__stub__##name) AST_OPTIONAL_API_NAME(name); \
|
||||
static attribute_unused __attribute__((attr)) typeof(__stub__##name) * name; \
|
||||
static void __attribute__((constructor)) __init__##name(void) { name = AST_OPTIONAL_API_NAME(name) ? : __stub__##name; }
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/* End of Darwin (Mac OS/X) implementation */
|
||||
|
|
|
@ -54,7 +54,7 @@ endif
|
|||
ifneq ($(findstring darwin,$(OSARCH)),)
|
||||
AST_LIBS+=-lresolv
|
||||
ASTLINK=-Xlinker -macosx_version_min -Xlinker 10.4 -Xlinker -undefined -Xlinker dynamic_lookup -force_flat_namespace
|
||||
ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
|
||||
ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
|
||||
ASTLINK+=/usr/lib/bundle1.o
|
||||
endif
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue