do not check certain features on non-64 systems
diff --git a/asn1c/tests/Makefile.am b/asn1c/tests/Makefile.am
index aa2041b..5f05702 100644
--- a/asn1c/tests/Makefile.am
+++ b/asn1c/tests/Makefile.am
@@ -4,6 +4,9 @@
TESTS_ENVIRONMENT= CC="${CC}" CFLAGS="${TESTSUITE_CFLAGS} ${CFLAGS} -Wno-error=unused-variable" CXXFLAGS="${CXXFLAGS}" ./check-assembly.sh
TESTS = check-*.c
+if TEST_64BIT
+TESTS += check64-*.c
+endif
EXTRA_DIST = \
check-*.c* \
diff --git a/asn1c/tests/Makefile.in b/asn1c/tests/Makefile.in
index b6ff016..7204cc8 100644
--- a/asn1c/tests/Makefile.in
+++ b/asn1c/tests/Makefile.in
@@ -33,6 +33,7 @@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+@TEST_64BIT_TRUE@am__append_1 = check64-*.c
subdir = asn1c/tests
DIST_COMMON = README $(dist_check_SCRIPTS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
@@ -174,7 +175,7 @@
top_srcdir = @top_srcdir@
dist_check_SCRIPTS = check-assembly.sh
TESTS_ENVIRONMENT = CC="${CC}" CFLAGS="${TESTSUITE_CFLAGS} ${CFLAGS} -Wno-error=unused-variable" CXXFLAGS="${CXXFLAGS}" ./check-assembly.sh
-TESTS = check-*.c
+TESTS = check-*.c $(am__append_1)
EXTRA_DIST = \
check-*.c* \
data-62 \
diff --git a/asn1c/tests/check-134.-gen-PER.c b/asn1c/tests/check64-134.-gen-PER.c
similarity index 96%
rename from asn1c/tests/check-134.-gen-PER.c
rename to asn1c/tests/check64-134.-gen-PER.c
index 60b79c7..1eaef4e 100644
--- a/asn1c/tests/check-134.-gen-PER.c
+++ b/asn1c/tests/check64-134.-gen-PER.c
@@ -12,13 +12,6 @@
#include <T.h>
-#ifndef _LP64
-int main() {
- assert(sizeof(void *) < 8);
- return;
-}
-#else /* 64-bit platform */
-
static unsigned long i2ul(const INTEGER_t *i) {
unsigned long l;
int ret = asn_INTEGER2ulong(i, &l);
@@ -167,4 +160,3 @@
return 0;
}
-#endif /* 64-bit platform */
diff --git a/configure b/configure
index 52fb46b..81070f3 100755
--- a/configure
+++ b/configure
@@ -635,6 +635,8 @@
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+TEST_64BIT_FALSE
+TEST_64BIT_TRUE
TESTSUITE_CFLAGS
ADD_CFLAGS
LEXLIB
@@ -13096,6 +13098,40 @@
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long is longer than 32 bit" >&5
+$as_echo_n "checking size of long is longer than 32 bit... " >&6; }
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "confdefs.h"
+#include <sys/types.h>
+
+int
+main ()
+{
+switch (0) case 0: case (sizeof ($1) >= 8):;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ WIDE_LONG=yes
+else
+ WIDE_LONG=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $WIDE_LONG" >&5
+$as_echo "$WIDE_LONG" >&6; }
+ if test x$WIDE_LONG = xyes; then
+ TEST_64BIT_TRUE=
+ TEST_64BIT_FALSE='#'
+else
+ TEST_64BIT_TRUE='#'
+ TEST_64BIT_FALSE=
+fi
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getopt" >&5
$as_echo_n "checking for library containing getopt... " >&6; }
if ${ac_cv_search_getopt+:} false; then :
@@ -13320,6 +13356,10 @@
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${TEST_64BIT_TRUE}" && test -z "${TEST_64BIT_FALSE}"; then
+ as_fn_error $? "conditional \"TEST_64BIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
diff --git a/configure.ac b/configure.ac
index 287f023..bf710e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,6 +62,17 @@
AC_STRUCT_TM
AC_CHECK_TYPE(intmax_t, int64_t)
+dnl Test if we should check features that depend on 64-bitness.
+AC_MSG_CHECKING(size of long is longer than 32 bit)
+AS_VAR_PUSHDEF([WIDE_LONG], [WIDE_LONG])
+AC_TRY_COMPILE([#include "confdefs.h"
+#include <sys/types.h>
+], [switch (0) case 0: case (sizeof ($1) >= 8):;],
+ WIDE_LONG=yes, WIDE_LONG=no)
+AC_MSG_RESULT($WIDE_LONG)
+AM_CONDITIONAL([TEST_64BIT], [test x$WIDE_LONG = xyes])
+AS_VAR_POPDEF([WIDE_LONG])
+
dnl For mingw
AC_SEARCH_LIBS(getopt, iberty)