mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	core: Remove ABI effects of MALLOC_DEBUG.
This allows asterisk to be compiled with MALLOC_DEBUG to load modules built without MALLOC_DEBUG. Now pre-compiled third-party modules will still work regardless of MALLOC_DEBUG being enabled or not. Change-Id: Ic07ad80b2c2df894db984cf27b16a69383ce0e10
This commit is contained in:
		
							
								
								
									
										4
									
								
								third-party/pjproject/Makefile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								third-party/pjproject/Makefile
									
									
									
									
										vendored
									
									
								
							| @@ -66,9 +66,9 @@ ifeq ($(SPECIAL_TARGETS),) | ||||
|         endif | ||||
|         ifeq ($(findstring MALLOC_DEBUG,$(MENUSELECT_CFLAGS)),MALLOC_DEBUG) | ||||
|             CF += -DMALLOC_DEBUG | ||||
|             MALLOC_DEBUG_LIBS = source/pjsip-apps/lib/libasterisk_malloc_debug.a | ||||
|             MALLOC_DEBUG_LDFLAGS = -L$(PJDIR)/pjsip-apps/lib -Wl,-whole-archive -lasterisk_malloc_debug -Wl,-no-whole-archive | ||||
|         endif | ||||
|         MALLOC_DEBUG_LIBS = source/pjsip-apps/lib/libasterisk_malloc_debug.a | ||||
|         MALLOC_DEBUG_LDFLAGS = -L$(PJDIR)/pjsip-apps/lib -Wl,-whole-archive -lasterisk_malloc_debug -Wl,-no-whole-archive | ||||
|         ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),) | ||||
|             CF += -O3 | ||||
|         endif | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
| #include <string.h> | ||||
| #include <stdarg.h> | ||||
|  | ||||
| int __ast_asprintf(const char *file, int lineno, const char *func, char **strp, const char *format, ...) | ||||
| int __ast_repl_asprintf(const char *file, int lineno, const char *func, char **strp, const char *format, ...) | ||||
| { | ||||
| 	va_list ap; | ||||
| 	int rc = 0; | ||||
| @@ -34,7 +34,7 @@ int __ast_asprintf(const char *file, int lineno, const char *func, char **strp, | ||||
| 	return rc; | ||||
| } | ||||
|  | ||||
| void *__ast_calloc(size_t nmemb, size_t size, const char *file, int lineno, const char *func) | ||||
| void *__ast_repl_calloc(size_t nmemb, size_t size, const char *file, int lineno, const char *func) | ||||
| { | ||||
| 	return calloc(nmemb, size); | ||||
| } | ||||
| @@ -44,27 +44,27 @@ void __ast_free(void *ptr, const char *file, int lineno, const char *func) | ||||
| 	free(ptr); | ||||
| } | ||||
|  | ||||
| void *__ast_malloc(size_t size, const char *file, int lineno, const char *func) | ||||
| void *__ast_repl_malloc(size_t size, const char *file, int lineno, const char *func) | ||||
| { | ||||
| 	return malloc(size); | ||||
| } | ||||
|  | ||||
| void *__ast_realloc(void *ptr, size_t size, const char *file, int lineno, const char *func) | ||||
| void *__ast_repl_realloc(void *ptr, size_t size, const char *file, int lineno, const char *func) | ||||
| { | ||||
| 	return realloc(ptr, size); | ||||
| } | ||||
|  | ||||
| char *__ast_strdup(const char *s, const char *file, int lineno, const char *func) | ||||
| char *__ast_repl_strdup(const char *s, const char *file, int lineno, const char *func) | ||||
| { | ||||
| 	return strdup(s); | ||||
| } | ||||
|  | ||||
| char *__ast_strndup(const char *s, size_t n, const char *file, int lineno, const char *func) | ||||
| char *__ast_repl_strndup(const char *s, size_t n, const char *file, int lineno, const char *func) | ||||
| { | ||||
| 	return strndup(s, n); | ||||
| } | ||||
|  | ||||
| int __ast_vasprintf(char **strp, const char *format, va_list ap, const char *file, int lineno, const char *func) | ||||
| int __ast_repl_vasprintf(char **strp, const char *format, va_list ap, const char *file, int lineno, const char *func) | ||||
| { | ||||
| 	return vasprintf(strp, format, ap); | ||||
| } | ||||
|   | ||||
| @@ -25,15 +25,15 @@ | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| int __ast_asprintf(const char *file, int lineno, const char *func, char **strp, const char *format, ...) | ||||
| int __ast_repl_asprintf(const char *file, int lineno, const char *func, char **strp, const char *format, ...) | ||||
| 	__attribute__((format(printf, 5, 6))); | ||||
| void *__ast_calloc(size_t nmemb, size_t size, const char *file, int lineno, const char *func); | ||||
| void *__ast_repl_calloc(size_t nmemb, size_t size, const char *file, int lineno, const char *func); | ||||
| void __ast_free(void *ptr, const char *file, int lineno, const char *func); | ||||
| void *__ast_malloc(size_t size, const char *file, int lineno, const char *func); | ||||
| void *__ast_realloc(void *ptr, size_t size, const char *file, int lineno, const char *func); | ||||
| char *__ast_strdup(const char *s, const char *file, int lineno, const char *func); | ||||
| char *__ast_strndup(const char *s, size_t n, const char *file, int lineno, const char *func); | ||||
| int __ast_vasprintf(char **strp, const char *format, va_list ap, const char *file, int lineno, const char *func) | ||||
| void *__ast_repl_malloc(size_t size, const char *file, int lineno, const char *func); | ||||
| void *__ast_repl_realloc(void *ptr, size_t size, const char *file, int lineno, const char *func); | ||||
| char *__ast_repl_strdup(const char *s, const char *file, int lineno, const char *func); | ||||
| char *__ast_repl_strndup(const char *s, size_t n, const char *file, int lineno, const char *func); | ||||
| int __ast_repl_vasprintf(char **strp, const char *format, va_list ap, const char *file, int lineno, const char *func) | ||||
| 	__attribute__((format(printf, 2, 0))); | ||||
|  | ||||
| /* Undefine any macros */ | ||||
| @@ -48,28 +48,28 @@ int __ast_vasprintf(char **strp, const char *format, va_list ap, const char *fil | ||||
|  | ||||
|  /* Provide our own definitions */ | ||||
| #define asprintf(a, b, c...) \ | ||||
| 	__ast_asprintf(__FILE__, __LINE__, __PRETTY_FUNCTION__, a, b, c) | ||||
| 	__ast_repl_asprintf(__FILE__, __LINE__, __PRETTY_FUNCTION__, a, b, c) | ||||
|  | ||||
| #define calloc(a,b) \ | ||||
| 	__ast_calloc(a,b,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
| 	__ast_repl_calloc(a,b,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #define free(a) \ | ||||
| 	__ast_free(a,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #define malloc(a) \ | ||||
| 	__ast_malloc(a,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
| 	__ast_repl_malloc(a,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #define realloc(a,b) \ | ||||
| 	__ast_realloc(a,b,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
| 	__ast_repl_realloc(a,b,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #define strdup(a) \ | ||||
| 	__ast_strdup(a,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
| 	__ast_repl_strdup(a,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #define strndup(a,b) \ | ||||
| 	__ast_strndup(a,b,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
| 	__ast_repl_strndup(a,b,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #define vasprintf(a,b,c) \ | ||||
| 	__ast_vasprintf(a,b,c,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
| 	__ast_repl_vasprintf(a,b,c,__FILE__, __LINE__, __PRETTY_FUNCTION__) | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|   | ||||
							
								
								
									
										2
									
								
								third-party/pjproject/patches/config_site.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								third-party/pjproject/patches/config_site.h
									
									
									
									
										vendored
									
									
								
							| @@ -8,7 +8,7 @@ | ||||
|  * Since both pjproject and asterisk source files will include config_site.h, | ||||
|  * we need to make sure that only pjproject source files include asterisk_malloc_debug.h. | ||||
|  */ | ||||
| #if defined(MALLOC_DEBUG) && !defined(_ASTERISK_ASTMM_H) | ||||
| #if !defined(_ASTERISK_ASTMM_H) | ||||
| #include "asterisk_malloc_debug.h" | ||||
| #endif | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user