diff -ru asterisk-13.2.0-orig/apps/Makefile asterisk-13.2.0-patched/apps/Makefile --- asterisk-13.2.0-orig/apps/Makefile 2013-04-15 18:43:47.000000000 +0200 +++ asterisk-13.2.0-patched/apps/Makefile 2015-03-24 03:28:53.684406200 +0100 @@ -34,6 +34,6 @@ $(subst .c,.o,$(wildcard confbridge/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,app_confbridge) ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) - LIBS+= -lres_features.so -lres_ael_share.so -lres_monitor.so -lres_speech.so + LIBS+= -lres_stasis.so -lres_ael_share.so -lres_monitor.so -lres_speech.so LIBS+= -lres_smdi.so endif diff -ru asterisk-13.2.0-orig/cdr/Makefile asterisk-13.2.0-patched/cdr/Makefile --- asterisk-13.2.0-orig/cdr/Makefile 2012-10-14 23:46:45.000000000 +0200 +++ asterisk-13.2.0-patched/cdr/Makefile 2015-03-24 04:24:08.668781200 +0100 @@ -18,3 +18,8 @@ all: _all include $(ASTTOPDIR)/Makefile.moddir_rules + +ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) + cdr_odbc.so_LIBS:= -lres_odbc.so $(GENERIC_ODBC_LIB) + cdr_adaptive_odbc.so_LIBS:= -lres_odbc.so $(GENERIC_ODBC_LIB) +endif diff -ru asterisk-13.2.0-orig/cel/Makefile asterisk-13.2.0-patched/cel/Makefile --- asterisk-13.2.0-orig/cel/Makefile 2012-10-14 23:56:13.000000000 +0200 +++ asterisk-13.2.0-patched/cel/Makefile 2015-03-24 04:25:11.981281200 +0100 @@ -18,3 +18,7 @@ all: _all include $(ASTTOPDIR)/Makefile.moddir_rules + +ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) + cel_odbc.so_LIBS:= -lres_odbc.so $(GENERIC_ODBC_LIB) +endif diff -ru asterisk-13.2.0-orig/channels/Makefile asterisk-13.2.0-patched/channels/Makefile --- asterisk-13.2.0-orig/channels/Makefile 2014-07-04 15:26:37.000000000 +0200 +++ asterisk-13.2.0-patched/channels/Makefile 2015-03-24 03:28:53.684406200 +0100 @@ -20,7 +20,7 @@ include $(ASTTOPDIR)/Makefile.moddir_rules ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) - LIBS+= -lres_monitor.so -lres_features.so + LIBS+= -lres_monitor.so endif clean:: diff -ru asterisk-13.2.0-orig/funcs/Makefile asterisk-13.2.0-patched/funcs/Makefile --- asterisk-13.2.0-orig/funcs/Makefile 2012-10-14 23:56:13.000000000 +0200 +++ asterisk-13.2.0-patched/funcs/Makefile 2015-03-24 04:26:47.418781200 +0100 @@ -19,6 +19,10 @@ include $(ASTTOPDIR)/Makefile.moddir_rules +ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) + func_odbc.so_LIBS:= -lres_odbc.so $(GENERIC_ODBC_LIB) +endif + # the SPRINTF() function in func_sprintf accepts format specifiers # and thus passes them to snprintf() as non-literal strings; the compiler # can't check the string and arguments to ensure they match, so this diff -ru asterisk-13.2.0-orig/include/asterisk/compat.h asterisk-13.2.0-patched/include/asterisk/compat.h --- asterisk-13.2.0-orig/include/asterisk/compat.h 2014-01-28 21:47:15.000000000 +0100 +++ asterisk-13.2.0-patched/include/asterisk/compat.h 2015-03-24 03:28:53.684406200 +0100 @@ -201,10 +201,6 @@ #endif #endif /* __CYGWIN__ */ -#ifdef __CYGWIN__ -typedef unsigned long long uint64_t; -#endif - /* glob compat stuff */ #if defined(__Darwin__) || defined(__CYGWIN__) #define GLOB_ABORTED GLOB_ABEND diff -ru asterisk-13.2.0-orig/include/asterisk/lock.h asterisk-13.2.0-patched/include/asterisk/lock.h --- asterisk-13.2.0-orig/include/asterisk/lock.h 2014-12-13 00:40:50.000000000 +0100 +++ asterisk-13.2.0-patched/include/asterisk/lock.h 2015-03-24 16:40:54.423500000 +0100 @@ -72,6 +72,10 @@ /* Asterisk REQUIRES recursive (not error checking) mutexes and will not run without them. */ +#ifdef __CYGWIN__ +#define PTHREAD_MUTEX_INIT_VALUE PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE +#else #if defined(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) && defined(HAVE_PTHREAD_MUTEX_RECURSIVE_NP) #define PTHREAD_MUTEX_INIT_VALUE PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP #define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP @@ -79,6 +83,7 @@ #define PTHREAD_MUTEX_INIT_VALUE PTHREAD_MUTEX_INITIALIZER #define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE #endif /* PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP */ +#endif #ifdef HAVE_PTHREAD_RWLOCK_INITIALIZER #define __AST_RWLOCK_INIT_VALUE PTHREAD_RWLOCK_INITIALIZER diff -ru asterisk-13.2.0-orig/include/asterisk/utils.h asterisk-13.2.0-patched/include/asterisk/utils.h --- asterisk-13.2.0-orig/include/asterisk/utils.h 2014-11-05 01:15:48.000000000 +0100 +++ asterisk-13.2.0-patched/include/asterisk/utils.h 2015-03-24 03:28:53.684406200 +0100 @@ -25,7 +25,9 @@ #include "asterisk/network.h" +#ifndef __CYGWIN__ #include +#endif #include /* we want to override localtime_r */ #include #include @@ -514,12 +516,19 @@ * Ok, this sucks. But if we're already out of mem, we don't * want the logger to create infinite recursion (and a crash). */ +#ifdef __CYGWIN__ + #define MALLOC_FAILURE_MSG \ + do { \ + ast_log(LOG_ERROR, "Memory Allocation Failure in function %s at line %d of %s\n", func, lineno, file); \ + } while (0) +#else #define MALLOC_FAILURE_MSG \ do { \ if (backtrace(_ast_mem_backtrace_buffer, _AST_MEM_BACKTRACE_BUFLEN) < _AST_MEM_BACKTRACE_BUFLEN) { \ ast_log(LOG_ERROR, "Memory Allocation Failure in function %s at line %d of %s\n", func, lineno, file); \ } \ } while (0) +#endif /*! * \brief A wrapper for malloc() diff -ru asterisk-13.2.0-orig/main/editline/np/unvis.c asterisk-13.2.0-patched/main/editline/np/unvis.c --- asterisk-13.2.0-orig/main/editline/np/unvis.c 2009-03-02 21:16:51.000000000 +0100 +++ asterisk-13.2.0-patched/main/editline/np/unvis.c 2015-03-24 03:28:53.700031200 +0100 @@ -56,10 +56,12 @@ __weak_alias(unvis,_unvis) #endif +#ifndef __CYGWIN__ #ifdef __warn_references __warn_references(unvis, "warning: reference to compatibility unvis(); include for correct reference") #endif +#endif #ifndef HAVE_VIS_H /* diff -ru asterisk-13.2.0-orig/main/libasteriskssl.c asterisk-13.2.0-patched/main/libasteriskssl.c --- asterisk-13.2.0-orig/main/libasteriskssl.c 2012-09-14 21:53:43.000000000 +0200 +++ asterisk-13.2.0-patched/main/libasteriskssl.c 2015-03-24 05:27:25.078593800 +0100 @@ -45,7 +45,11 @@ #ifdef HAVE_OPENSSL +#if __CYGWIN__ +#define get_OpenSSL_function(func) do { real_##func = func; } while(0) +#else #define get_OpenSSL_function(func) do { real_##func = dlsym(RTLD_NEXT, __stringify(func)); } while(0) +#endif static int startup_complete; diff -ru asterisk-13.2.0-orig/main/Makefile asterisk-13.2.0-patched/main/Makefile --- asterisk-13.2.0-orig/main/Makefile 2014-07-04 17:26:58.000000000 +0200 +++ asterisk-13.2.0-patched/main/Makefile 2015-03-24 03:28:53.700031200 +0100 @@ -41,7 +41,7 @@ AST_LIBS+=$(UUID_LIB) AST_LIBS+=$(CRYPT_LIB) -ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc kfreebsd-gnu),) +ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc kfreebsd-gnu mingw32 cygwin ),) ifneq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),) AST_LIBS+=-ldl endif @@ -64,7 +64,11 @@ else # These are used for all but Darwin ifneq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),) - ASTLINK+=-Wl,--export-dynamic + ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) + ASTLINK+=-Wl,--export-all-symbols -Wl,--out-implib,libasterisk.a + else + ASTLINK+=-Wl,--export-dynamic + endif else ASTLINK+=${GC_LDFLAGS} endif @@ -80,10 +84,6 @@ AST_LIBS+=-lcrypto endif -ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) - AST_LIBS+=-lminires -ldl - ASTLINK+=-shared -Wl,--out-implib,libasterisk.a -endif ifeq ($(OSARCH),NetBSD) AST_LIBS+=-lpthread -lcrypto -lm -L/usr/pkg/lib $(EDITLINE_LIB) endif @@ -171,15 +171,7 @@ AST_EMBED_LIBS:=$(foreach dep,$(EMBED_LIBS),$(value $(dep))) OBJS:=$(sort $(OBJS)) -ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) -MAIN_TGT:=asterisk.dll -asterisk: cygload - mv cygload.exe asterisk.exe - -cygload: asterisk.dll -else MAIN_TGT:=asterisk -endif ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),) GMIMELDFLAGS+=$(GMIME_LIB) @@ -247,7 +239,7 @@ $(MAIN_TGT): $(OBJS) $(ASTSSL_LIB) $(LIBEDIT_OBJ) $(AST_EMBED_LDSCRIPTS) @$(CC) -c -o buildinfo.o $(_ASTCFLAGS) buildinfo.c $(ASTCFLAGS) $(ECHO_PREFIX) echo " [LD] $(OBJS) $(LIBEDIT_OBJ) $(AST_EMBED_LDSCRIPTS) -> $@" - $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(_ASTLDFLAGS) $(ASTLDFLAGS) $(OBJS) $(ASTSSL_LDLIBS) $(LIBEDIT_OBJ) $(AST_EMBED_LDSCRIPTS) buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS) $(LIBEDIT_LIB) + $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(_ASTLDFLAGS) $(ASTLDFLAGS) $(OBJS) $(ASTSSL_LDLIBS) $(LIBEDIT_OBJ) $(AST_EMBED_LDSCRIPTS) buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS) $(LIBEDIT_LIB) ifeq ($(GNU_LD),1) $(MAIN_TGT): asterisk.exports diff -ru asterisk-13.2.0-orig/main/utils.c asterisk-13.2.0-patched/main/utils.c --- asterisk-13.2.0-orig/main/utils.c 2014-12-17 10:54:00.000000000 +0100 +++ asterisk-13.2.0-patched/main/utils.c 2015-03-24 03:28:53.715656200 +0100 @@ -34,7 +34,9 @@ #include #include #include +#ifndef __CYGWIN__ #include +#endif #include #if defined(__APPLE__) #include diff -ru asterisk-13.2.0-orig/Makefile.rules asterisk-13.2.0-patched/Makefile.rules --- asterisk-13.2.0-orig/Makefile.rules 2014-11-12 14:46:25.000000000 +0100 +++ asterisk-13.2.0-patched/Makefile.rules 2015-03-24 03:28:53.715656200 +0100 @@ -161,6 +161,6 @@ %: %.o $(ECHO_PREFIX) echo " [LD] $^ -> $@" - $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $^ $(CXX_LIBS) $(ASTLDFLAGS) + $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $^ $(CXX_LIBS) $(ASTLDFLAGS) dist-clean:: clean diff -ru asterisk-13.2.0-orig/res/Makefile asterisk-13.2.0-patched/res/Makefile --- asterisk-13.2.0-orig/res/Makefile 2013-08-30 15:28:50.000000000 +0200 +++ asterisk-13.2.0-patched/res/Makefile 2015-03-24 04:13:29.559406200 +0100 @@ -24,6 +24,53 @@ # We use order-only dependencies, and then add the libraries as required. res_agi.so: | res_speech.so res_agi.so_LIBS:= -lres_speech.so + res_ari_applications.so: | res_ari.so res_stasis.so + res_ari_applications.so_LIBS:= -lres_ari.so -lres_stasis.so + res_ari_asterisk.so: | res_ari.so res_stasis.so + res_ari_asterisk.so_LIBS:= -lres_ari.so -lres_stasis.so + res_ari_bridges.so: | res_ari.so res_stasis.so res_stasis_playback.so res_stasis_recording.so + res_ari_bridges.so_LIBS:= -lres_ari.so -lres_stasis.so -lres_stasis_playback.so -lres_stasis_recording.so + res_ari_channels.so: | res_ari.so res_stasis.so res_stasis_answer.so res_stasis_playback.so res_stasis_recording.so res_stasis_snoop.so + res_ari_channels.so_LIBS:= -lres_ari.so -lres_stasis.so -lres_stasis_answer.so -lres_stasis_playback.so -lres_stasis_recording.so -lres_stasis_snoop.so + res_ari_device_states.so: | res_ari.so res_stasis.so res_stasis_device_state.so + res_ari_device_states.so_LIBS:= -lres_ari.so -lres_stasis.so -lres_stasis_device_state.so + res_ari_endpoints.so: | res_ari.so res_stasis.so + res_ari_endpoints.so_LIBS:= -lres_ari.so -lres_stasis.so + res_ari_events.so: | res_ari.so res_stasis.so + res_ari_events.so_LIBS:= -lres_ari.so -lres_stasis.so + res_ari_mailboxes.so: | res_ari.so res_stasis.so res_stasis_mailbox.so res_mwi_external.so + res_ari_mailboxes.so_LIBS:= -lres_ari.so -lres_stasis.so -lres_stasis_mailbox.so -lres_mwi_external.so + res_ari_playbacks.so: | res_ari.so res_stasis.so res_stasis_playback.so + res_ari_playbacks.so_LIBS:= -lres_ari.so -lres_stasis.so -lres_stasis_playback.so + res_ari_recordings.so: | res_ari.so res_stasis.so res_stasis_recording.so + res_ari_recordings.so_LIBS:= -lres_ari.so -lres_stasis.so -lres_stasis_recording.so + res_ari_sounds.so: | res_ari.so res_stasis.so + res_ari_sounds.so_LIBS:= -lres_ari.so -lres_stasis.so + res_calendar_caldav.so: | res_calendar.so + res_calendar_caldav.so_LIBS:= -lres_calendar.so + res_calendar_ews.so: | res_calendar.so + res_calendar_ews.so_LIBS:= -lres_calendar.so + res_calendar_icalendar.so: | res_calendar.so + res_calendar_icalendar.so_LIBS:= -lres_calendar.so + res_config_odbc.so: | res_odbc.so + res_config_odbc.so_LIBS:= -lres_odbc.so $(GENERIC_ODBC_LIB) + res_hep_rtcp.so: | res_hep.so + res_hep_rtcp.so_LIBS:= -lres_hep.so + res_mwi_external_ami.so: | res_mwi_external.so + res_mwi_external_ami.so_LIBS:= -lres_mwi_external.so + res_stasis_answer.so: | res_stasis.so + res_stasis_answer.so_LIBS:= -lres_stasis.so + res_stasis_device_state.so: | res_stasis.so + res_stasis_device_state.so_LIBS:= -lres_stasis.so + res_stasis_mailbox.so: | res_mwi_external.so + res_stasis_mailbox.so_LIBS:= -lres_mwi_external.so + res_stasis_playback.so: | res_stasis.so res_stasis_recording.so + res_stasis_playback.so_LIBS:= -lres_stasis.so -lres_stasis_recording.so + res_stasis_recording.so: | res_stasis.so + res_stasis_recording.so_LIBS:= -lres_stasis.so + + res_rtp_asterisk.so_LIBS:= $(OPENSSL_LIB) + res_config_ldap.so_LIBS:= $(LDAP_LIB) -llber endif res_config_ldap.o: _ASTCFLAGS+=-DLDAP_DEPRECATED diff -ru asterisk-13.2.0-orig/res/res_monitor.c asterisk-13.2.0-patched/res/res_monitor.c --- asterisk-13.2.0-orig/res/res_monitor.c 2014-12-06 19:16:18.000000000 +0100 +++ asterisk-13.2.0-patched/res/res_monitor.c 2015-03-24 19:09:01.095375000 +0100 @@ -51,7 +51,9 @@ #include "asterisk/utils.h" #include "asterisk/config.h" #include "asterisk/options.h" +#ifndef __CYGWIN__ #include "asterisk/beep.h" +#endif /*** DOCUMENTATION @@ -525,9 +527,11 @@ ast_log(LOG_WARNING, "Execute of %s failed.\n",tmp); } +#ifndef __CYGWIN__ if (!ast_strlen_zero(ast_channel_monitor(chan)->beep_id)) { ast_beep_stop(chan, ast_channel_monitor(chan)->beep_id); } +#endif ast_free(ast_channel_monitor(chan)->format); ast_free(ast_channel_monitor(chan)); @@ -734,10 +738,12 @@ interval_str, interval); } +#ifndef __CYGWIN__ if (ast_beep_start(chan, interval, beep_id, sizeof(beep_id))) { ast_log(LOG_WARNING, "Unable to enable periodic beep, please ensure func_periodic_hook is loaded.\n"); return -1; } +#endif } }