summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorGeorge Joseph <george.joseph@fairview5.com>2014-10-19 17:09:38 +0000
committerGeorge Joseph <george.joseph@fairview5.com>2014-10-19 17:09:38 +0000
commit5e10e369b182c7c05a9d802fe1ead92b21dc2839 (patch)
treeacaa6a6353415a5fae110accc9d56448800791cf /configure.ac
parent404b6ab3ab5d0ea256401af257d91f899cc4b9fa (diff)
build: Force -fsigned-char on platforms where the default for char is unsigned
gcc on the ARM platform defaults 'char' to 'unsigned char' whereas Intel and SPARC default to 'signed char'. This is only an issue in the rare cases where negative values are assigned to a 'char' but this this patch insures compatibility by detecting platforms that default to 'unsigned' and adding an '-fsigned-char' flag to _ASTCFLAGS. If compiling for ARM (native or cross-compile) be sure to run ./bootstrap.sh and ./configure to regenerate the build files. You shouldn't have to do this for Intel or SPARC. Tested-by: George Joseph Review: https://reviewboard.asterisk.org/r/4091/ ........ Merged revisions 425964 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 425965 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@425966 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac19
1 files changed, 19 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index aa3cfd4d3..8b18790fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -192,6 +192,25 @@ esac
AC_SUBST(OSARCH)
AC_SUBST(PBX_WINARCH)
+AC_MSG_CHECKING(whether char is unsigned)
+AC_COMPILE_IFELSE(
+ [
+ AC_LANG_SOURCE(
+#include <limits.h>
+#if CHAR_MIN == 0
+#error
+#endif
+ )
+ ],[
+ AC_MSG_RESULT(no)
+ CONFIG_SIGNED_CHAR=""
+ ],[
+ AC_MSG_RESULT(yes)
+ CONFIG_SIGNED_CHAR="-fsigned-char"
+ ]
+)
+AC_SUBST(CONFIG_SIGNED_CHAR)
+
# check for uname
AC_PATH_TOOL([UNAME], [uname], No)
if test ! x"${UNAME}" = xNo; then