From: Corey Farrell Date: Tue, 9 Aug 2016 00:14:20 +0000 (-0400) Subject: Produce friendly error when AST_MODULE_SELF_SYM is not defined. X-Git-Tag: 14.1.0-rc1~168^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbaebd75c4a93aca79ace6fd67241d7a8968ec26;p=thirdparty%2Fasterisk.git Produce friendly error when AST_MODULE_SELF_SYM is not defined. Modules must define AST_MODULE_SELF_SYM to be used as the name of a generated function. This produces a friendly error when it's not defined. ASTERISK-26278 #close Change-Id: Ib9d35a08104529c516d636771365e02c6e77a45b --- diff --git a/codecs/lpc10/Makefile b/codecs/lpc10/Makefile index bdf1a3ad7f..b414fd77d7 100644 --- a/codecs/lpc10/Makefile +++ b/codecs/lpc10/Makefile @@ -25,7 +25,7 @@ CFLAGS+= -fPIC -Wno-comment # The code here generates lots of warnings, so compiling with -Werror # fails miserably. Remove it for the time being. -_ASTCFLAGS:=$(_ASTCFLAGS:-Werror=) +_ASTCFLAGS:=$(_ASTCFLAGS:-Werror=) -DAST_MODULE_SELF_SYM=__internal_codec_lpc10_self LIB = $(LIB_TARGET_DIR)/liblpc10.a diff --git a/include/asterisk.h b/include/asterisk.h index e509fbc39e..93c7cfb28d 100644 --- a/include/asterisk.h +++ b/include/asterisk.h @@ -286,6 +286,10 @@ struct ast_module; /* Internal/forward declaration, AST_MODULE_SELF should be used instead. */ struct ast_module *AST_MODULE_SELF_SYM(void); +#else + +#error "Externally compiled modules must declare AST_MODULE_SELF_SYM." + #endif /*! diff --git a/main/Makefile b/main/Makefile index 729ae9c013..663508a754 100644 --- a/main/Makefile +++ b/main/Makefile @@ -284,7 +284,7 @@ ifeq ($(GNU_LD),1) endif $(ASTPJ_LIB).$(ASTPJ_SO_VERSION): _ASTLDFLAGS+=-Wl,-soname=$(ASTPJ_LIB) $(PJ_LDFLAGS) -$(ASTPJ_LIB).$(ASTPJ_SO_VERSION): _ASTCFLAGS+=-fPIC -DAST_MODULE=\"asteriskpj\" $(PJ_CFLAGS) +$(ASTPJ_LIB).$(ASTPJ_SO_VERSION): _ASTCFLAGS+=-fPIC -DAST_MODULE=\"asteriskpj\" -DAST_NOT_MODULE $(PJ_CFLAGS) $(ASTPJ_LIB).$(ASTPJ_SO_VERSION): LIBS+=$(PJPROJECT_LDLIBS) -lssl -lcrypto -luuid -lm -lrt -lpthread ifeq ($(GNU_LD),1) $(ASTPJ_LIB).$(ASTPJ_SO_VERSION): SO_SUPPRESS_SYMBOLS=-Wl,--version-script,libasteriskpj.exports,--warn-common