From 8388d086647e77451e57230f28b14e3cb3af9519 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 19 Feb 2014 09:25:29 +0100 Subject: Add running of the test apps in Makefile. Reintroduce 64bit va_arg crash for testing on build server. --- Makefile | 34 ++++++++++++++++++++++++++++++---- hugin.c | 34 ++++++++++++++-------------------- 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 3a23387..2fcee29 100644 --- a/Makefile +++ b/Makefile @@ -6,33 +6,49 @@ CXXFLAGS=$(CFLAGS) all: complete obj simple syslog filter mutex minimal disabled complete: - gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX - g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX + gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ + -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX + ./hugin-complete + + g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ + -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX + ./hugin-complete obj: # Compile hugin as c prog and link with c++ program (use hugin.hpp) g++ ${CXXFLAGS} main_simple.cc -c gcc ${CFLAGS} hugin.c -c g++ main_simple.o hugin.o -o hugin-obj + ./hugin-obj # Compile hugin as c++ prog and link with c++ program g++ ${CXXFLAGS} main_simple.c -c g++ ${CXXFLAGS} hugin.c -c g++ main_simple.o hugin.o -o hugin-obj + ./hugin-obj simple: gcc ${CFLAGS} hugin.c main_simple.c -o hugin-simple + ./hugin-simple + g++ ${CXXFLAGS} hugin.c main_simple.c -o hugin-simple + ./hugin-simple minimal: gcc ${CFLAGS} hugin.c main_minimal.c -o hugin-minimal + ./hugin-minimal + g++ ${CXXFLAGS} hugin.c main_minimal.c -o hugin-minimal + ./hugin-minimal syslog: gcc ${CFLAGS} hugin.c hugin_syslog.c main_syslog.c \ - -o hugin-syslog -DWITH_HUG_SYSLOG + -o hugin-syslog -DWITH_HUG_SYSLOG + ./hugin-syslog + g++ ${CXXFLAGS} hugin.c hugin_syslog.c main_syslog.c \ - -o hugin-syslog -DWITH_HUG_SYSLOG + -o hugin-syslog -DWITH_HUG_SYSLOG + ./hugin-syslog filter: gcc ${CFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ @@ -42,19 +58,29 @@ filter: mutex: gcc ${CFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX + ./hugin-mutex + g++ ${CXXFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX + ./hugin-mutex disabled: gcc -DDISABLE_HUGIN ${CFLAGS} hugin.c main_simple.c \ -o hugin-simple-disabled + ./hugin-simple-disabled + g++ -DDISABLE_HUGIN ${CXXFLAGS} hugin.c main_simple.c \ -o hugin-simple-disabled + ./hugin-simple-disabled + gcc -DDISABLE_HUGIN ${CFLAGS} ${HUGIN_SOURCES} main_complete.c \ -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX + ./hugin-complete-disabled + g++ -DDISABLE_HUGIN ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c \ -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX + ./hugin-complete-disabled clean: rm -f hugin_{complete,complete-cpp,simple,syslog,filter,mutex,minimal} diff --git a/hugin.c b/hugin.c index a4dd622..5f973bc 100644 --- a/hugin.c +++ b/hugin.c @@ -46,7 +46,7 @@ typedef HANDLE mutex_t; // see http://stackoverflow.com/questions/558223/va-copy-porting-to-visual-c -#define va_copy(dest, src) (dest = src) +//#define va_copy(dest, src) (dest = src) # else # include @@ -402,22 +402,14 @@ int __debug(const char *func, const int line, // // Generate message // - - // Get number of bytes needed for the buffer: va_list va; va_start(va, fmt); - - // Use a copy of va_list for 64bit fix: - // see http://www.bailopan.net/blog/?p=30 - // - // Not available in windows. So hugin may break in 64bit windows - - va_list vacpy; - va_copy(vacpy, va); - - hdr_bufsz = scprintf(hdr_fmt, HDR_ARGS); - msg_bufsz = vscprintf(fmt, vacpy); - if(hdr_bufsz < 0 || msg_bufsz < 0) return 1; // Bad format? + { + hdr_bufsz = scprintf(hdr_fmt, HDR_ARGS); + msg_bufsz = vscprintf(fmt, va); + if(hdr_bufsz < 0 || msg_bufsz < 0) return 1; // Bad format? + // va_end(va); + } buf = (char*)malloc(hdr_bufsz + msg_bufsz + 1); if(!buf) return 1; // Out of memory @@ -425,11 +417,13 @@ int __debug(const char *func, const int line, sz = sprintf(buf, hdr_fmt, HDR_ARGS); if(sz < 0) return 1; // Unknown error - va_copy(vacpy, va); - sz = vsprintf(buf + sz, fmt, vacpy); - if(sz < 0) return 1; // Unknown error - - va_end(va); + { + //va_list va; + //va_start(va, fmt); + sz = vsprintf(buf + sz, fmt, va); + if(sz < 0) return 1; // Unknown error + va_end(va); + } // // Send message to output -- cgit v1.2.3