Produce friendly error when AST_MODULE_SELF_SYM is not defined.
authorCorey Farrell <git@cfware.com>
Tue, 9 Aug 2016 00:14:20 +0000 (20:14 -0400)
committerCorey Farrell <git@cfware.com>
Tue, 9 Aug 2016 01:05:34 +0000 (20:05 -0500)
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

codecs/lpc10/Makefile
include/asterisk.h
main/Makefile

index bdf1a3a..b414fd7 100644 (file)
@@ -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
 
index e509fbc..93c7cfb 100644 (file)
@@ -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
 
 /*!
index 729ae9c..663508a 100644 (file)
@@ -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