deprecated NDEBUG and introduced HCL_BUILD_DEBUG and HCL_BUILD_RELEASE
This commit is contained in:
parent
5128c1a99f
commit
67a334bc26
20
configure
vendored
20
configure
vendored
@ -19400,13 +19400,19 @@ fi
|
||||
|
||||
if test "$enable_debug_is" = "yes"
|
||||
then
|
||||
CFLAGS="$CFLAGS -g -D_DEBUG -UNDEBUG -DHCL_BUILD_DEBUG -U_FORTIFY_SOURCE"
|
||||
CXXFLAGS="$CXXFLAGS -g -D_DEBUG -UNDEBUG -DHCL_BUILD_DEBUG -U_FORTIFY_SOURCE"
|
||||
CFLAGS="$CFLAGS -g -D_DEBUG -UNDEBUG -U_FORTIFY_SOURCE"
|
||||
CXXFLAGS="$CXXFLAGS -g -D_DEBUG -UNDEBUG -U_FORTIFY_SOURCE"
|
||||
|
||||
$as_echo "#define HCL_BUILD_DEBUG 1" >>confdefs.h
|
||||
|
||||
BUILD_MODE="debug"
|
||||
|
||||
else
|
||||
CFLAGS="$CFLAGS -DNDEBUG -U_DEBUG -DHCL_BUILD_RELEASE -U_FORTIFY_SOURCE"
|
||||
CXXFLAGS="$CXXFLAGS -DNDEBUG -U_DEBUG -DHCL_BUILD_RELEASE -U_FORTIFY_SOURCE"
|
||||
CFLAGS="$CFLAGS -DNDEBUG -U_DEBUG -U_FORTIFY_SOURCE"
|
||||
CXXFLAGS="$CXXFLAGS -DNDEBUG -U_DEBUG -U_FORTIFY_SOURCE"
|
||||
|
||||
$as_echo "#define HCL_BUILD_RELEASE 1" >>confdefs.h
|
||||
|
||||
BUILD_MODE="release"
|
||||
|
||||
fi
|
||||
@ -19460,7 +19466,7 @@ fi
|
||||
if test "${enable_unicode}" = "yes"
|
||||
then
|
||||
|
||||
$as_echo "#define HCL_ENABLE_UNICODE /**/" >>confdefs.h
|
||||
$as_echo "#define HCL_ENABLE_UNICODE 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
@ -19499,7 +19505,7 @@ test "${enable_shared}" = "no" && enable_dynamic_module_is="no"
|
||||
if test "${enable_dynamic_module_is}" = "yes"
|
||||
then
|
||||
|
||||
$as_echo "#define HCL_ENABLE_DYNAMIC_MODULE /**/" >>confdefs.h
|
||||
$as_echo "#define HCL_ENABLE_DYNAMIC_MODULE 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
if test "${enable_dynamic_module_is}" = "yes"; then
|
||||
@ -19524,7 +19530,7 @@ test "${enable_shared}" = "no" -a "${enable_static}" = "yes" && enable_static_mo
|
||||
if test "${enable_static_module_is}" = "yes"
|
||||
then
|
||||
|
||||
$as_echo "#define HCL_ENABLE_STATIC_MODULE /**/" >>confdefs.h
|
||||
$as_echo "#define HCL_ENABLE_STATIC_MODULE 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
if test "${enable_static_module_is}" = "yes"; then
|
||||
|
16
configure.ac
16
configure.ac
@ -397,12 +397,14 @@ AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],[build the library in th
|
||||
enable_debug_is=$enableval,enable_debug_is=no)
|
||||
if test "$enable_debug_is" = "yes"
|
||||
then
|
||||
[CFLAGS="$CFLAGS -g -D_DEBUG -UNDEBUG -DHCL_BUILD_DEBUG -U_FORTIFY_SOURCE"]
|
||||
[CXXFLAGS="$CXXFLAGS -g -D_DEBUG -UNDEBUG -DHCL_BUILD_DEBUG -U_FORTIFY_SOURCE"]
|
||||
[CFLAGS="$CFLAGS -g -D_DEBUG -UNDEBUG -U_FORTIFY_SOURCE"]
|
||||
[CXXFLAGS="$CXXFLAGS -g -D_DEBUG -UNDEBUG -U_FORTIFY_SOURCE"]
|
||||
AC_DEFINE([HCL_BUILD_DEBUG],[1],[build release/debug])
|
||||
AC_SUBST(BUILD_MODE, "debug")
|
||||
else
|
||||
[CFLAGS="$CFLAGS -DNDEBUG -U_DEBUG -DHCL_BUILD_RELEASE -U_FORTIFY_SOURCE"]
|
||||
[CXXFLAGS="$CXXFLAGS -DNDEBUG -U_DEBUG -DHCL_BUILD_RELEASE -U_FORTIFY_SOURCE"]
|
||||
[CFLAGS="$CFLAGS -DNDEBUG -U_DEBUG -U_FORTIFY_SOURCE"]
|
||||
[CXXFLAGS="$CXXFLAGS -DNDEBUG -U_DEBUG -U_FORTIFY_SOURCE"]
|
||||
AC_DEFINE([HCL_BUILD_RELEASE],[1],[build release/debug])
|
||||
AC_SUBST(BUILD_MODE, "release")
|
||||
fi
|
||||
|
||||
@ -442,7 +444,7 @@ AC_ARG_ENABLE([unicode],
|
||||
)
|
||||
if test "${enable_unicode}" = "yes"
|
||||
then
|
||||
AC_DEFINE([HCL_ENABLE_UNICODE],[],[Use the unicode character type as the default character type])
|
||||
AC_DEFINE([HCL_ENABLE_UNICODE],[1],[Use the unicode character type as the default character type])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE([cxx],
|
||||
@ -469,7 +471,7 @@ test "${enable_shared}" = "no" && enable_dynamic_module_is="no"
|
||||
|
||||
if test "${enable_dynamic_module_is}" = "yes"
|
||||
then
|
||||
AC_DEFINE([HCL_ENABLE_DYNAMIC_MODULE],[],[enable dynamic module capability])
|
||||
AC_DEFINE([HCL_ENABLE_DYNAMIC_MODULE],[1],[enable dynamic module capability])
|
||||
fi
|
||||
AM_CONDITIONAL(ENABLE_DYNAMIC_MODULE, test "${enable_dynamic_module_is}" = "yes")
|
||||
|
||||
@ -483,7 +485,7 @@ test "${enable_shared}" = "no" -a "${enable_static}" = "yes" && enable_static_mo
|
||||
|
||||
if test "${enable_static_module_is}" = "yes"
|
||||
then
|
||||
AC_DEFINE([HCL_ENABLE_STATIC_MODULE],[],[link modules statically into the main library])
|
||||
AC_DEFINE([HCL_ENABLE_STATIC_MODULE],[1],[link modules statically into the main library])
|
||||
fi
|
||||
AM_CONDITIONAL(ENABLE_STATIC_MODULE, test "${enable_static_module_is}" = "yes")
|
||||
|
||||
|
@ -1060,7 +1060,7 @@ static HCL_INLINE void multiply_unsigned_array (const hcl_liw_t* x, hcl_oow_t xs
|
||||
* --------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
#define CANNOT_KARATSUBA(hcl,xs,ys) \
|
||||
((xs) < (hcl)->option.karatsuba_cutoff || (ys) < (hcl)->option.karatsuba_cutoff || \
|
||||
((xs) > (ys) && (ys) <= (((xs) + 1) / 2)) || \
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
#define DECODE_LOG_MASK (HCL_LOG_MNEMONIC | HCL_LOG_INFO)
|
||||
|
||||
#if defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_RELEASE)
|
||||
/* get rid of instruction logging regardless of the log mask
|
||||
* in the release build */
|
||||
# define LOG_INST_0(hcl,fmt)
|
||||
|
@ -216,6 +216,12 @@
|
||||
/* __va_copy is available */
|
||||
#undef HAVE___VA_COPY
|
||||
|
||||
/* build release/debug */
|
||||
#undef HCL_BUILD_DEBUG
|
||||
|
||||
/* build release/debug */
|
||||
#undef HCL_BUILD_RELEASE
|
||||
|
||||
/* enable dynamic module capability */
|
||||
#undef HCL_ENABLE_DYNAMIC_MODULE
|
||||
|
||||
|
@ -58,7 +58,7 @@
|
||||
|
||||
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
#define HCL_DEBUG_VM_PROCESSOR 1
|
||||
#define HCL_DEBUG_VM_EXEC 1
|
||||
#define HCL_DEBUG_BIGINT 1
|
||||
|
@ -103,7 +103,9 @@ int hcl_init (hcl_t* hcl, hcl_mmgr_t* mmgr, hcl_oow_t heapsz, const hcl_vmprim_t
|
||||
hcl->option.dfl_symtab_size = HCL_DFL_SYMTAB_SIZE;
|
||||
hcl->option.dfl_sysdic_size = HCL_DFL_SYSDIC_SIZE;
|
||||
hcl->option.dfl_procstk_size = HCL_DFL_PROCSTK_SIZE;
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
hcl->option.karatsuba_cutoff = HCL_KARATSUBA_CUTOFF; /* this won't be used when NDEBUG is set */
|
||||
#endif
|
||||
|
||||
hcl->log.capa = HCL_ALIGN_POW2(1, HCL_LOG_CAPA_ALIGN); /* TODO: is this a good initial size? */
|
||||
/* alloate the log buffer in advance though it may get reallocated
|
||||
@ -265,7 +267,7 @@ int hcl_setoption (hcl_t* hcl, hcl_option_t id, const void* value)
|
||||
{
|
||||
case HCL_TRAIT:
|
||||
hcl->option.trait = *(const unsigned int*)value;
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
hcl->option.karatsuba_cutoff = ((hcl->option.trait & HCL_DEBUG_BIGINT)? HCL_KARATSUBA_CUTOFF_DEBUG: HCL_KARATSUBA_CUTOFF);
|
||||
#endif
|
||||
return 0;
|
||||
|
10
lib/hcl.h
10
lib/hcl.h
@ -165,7 +165,7 @@ typedef enum hcl_option_dflval_t hcl_option_dflval_t;
|
||||
|
||||
enum hcl_trait_t
|
||||
{
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
HCL_DEBUG_GC = (1 << 0),
|
||||
HCL_DEBUG_BIGINT = (1 << 1),
|
||||
#endif
|
||||
@ -963,8 +963,10 @@ struct hcl_t
|
||||
hcl_oow_t dfl_sysdic_size;
|
||||
hcl_oow_t dfl_procstk_size;
|
||||
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
/* set automatically when trait is set */
|
||||
int karatsuba_cutoff; /* used when NDEBUG is not set only. but keep it here regardless */
|
||||
int karatsuba_cutoff;
|
||||
#endif
|
||||
} option;
|
||||
|
||||
hcl_vmprim_t vmprim;
|
||||
@ -1181,7 +1183,7 @@ typedef enum hcl_log_mask_t hcl_log_mask_t;
|
||||
#define HCL_LOG5(hcl,mask,fmt,a1,a2,a3,a4,a5) do { if (HCL_LOG_ENABLED(hcl,mask)) hcl_logbfmt(hcl, mask, fmt, a1, a2, a3, a4, a5); } while(0)
|
||||
#define HCL_LOG6(hcl,mask,fmt,a1,a2,a3,a4,a5,a6) do { if (HCL_LOG_ENABLED(hcl,mask)) hcl_logbfmt(hcl, mask, fmt, a1, a2, a3, a4, a5, a6); } while(0)
|
||||
|
||||
#if defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_RELEASE)
|
||||
/* [NOTE]
|
||||
* get rid of debugging message totally regardless of
|
||||
* the log mask in the release build.
|
||||
@ -1215,7 +1217,7 @@ typedef enum hcl_log_mask_t hcl_log_mask_t;
|
||||
/* =========================================================================
|
||||
* HCL ASSERTION
|
||||
* ========================================================================= */
|
||||
#if defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_RELEASE)
|
||||
# define HCL_ASSERT(hcl,expr) ((void)0)
|
||||
#else
|
||||
# define HCL_ASSERT(hcl,expr) ((void)((expr) || (hcl_assertfailed (hcl, #expr, __FILE__, __LINE__), 0)))
|
||||
|
10
lib/main.c
10
lib/main.c
@ -1242,7 +1242,7 @@ static int handle_logopt (hcl_t* hcl, const hcl_bch_t* str)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
static int handle_dbgopt (hcl_t* hcl, const hcl_bch_t* str)
|
||||
{
|
||||
xtn_t* xtn = hcl_getxtn (hcl);
|
||||
@ -1435,7 +1435,7 @@ int main (int argc, char* argv[])
|
||||
{
|
||||
{ ":log", 'l' },
|
||||
{ ":memsize", 'm' },
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
{ ":debug", '\0' }, /* NOTE: there is no short option for --debug */
|
||||
#endif
|
||||
{ HCL_NULL, '\0' }
|
||||
@ -1449,7 +1449,7 @@ int main (int argc, char* argv[])
|
||||
const char* logopt = HCL_NULL;
|
||||
hcl_oow_t memsize = MIN_MEMSIZE;
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
const char* dbgopt = HCL_NULL;
|
||||
#endif
|
||||
|
||||
@ -1478,7 +1478,7 @@ int main (int argc, char* argv[])
|
||||
|
||||
case '\0':
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
if (hcl_compbcstr(opt.lngopt, "debug") == 0)
|
||||
{
|
||||
dbgopt = opt.arg;
|
||||
@ -1568,7 +1568,7 @@ int main (int argc, char* argv[])
|
||||
xtn->logmask = HCL_LOG_ALL_TYPES | HCL_LOG_ERROR | HCL_LOG_FATAL;
|
||||
}
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
if (dbgopt)
|
||||
{
|
||||
if (handle_dbgopt (hcl, dbgopt) <= -1)
|
||||
|
Loading…
Reference in New Issue
Block a user