mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
Require two c99 features (midblock decls, designated initializers)
c99 lets us do neat stuff like: { int j, k; foo(&j, &k); int z = j + k; } and also struct point { int x; int y; }; struct point pt = { .x=5, .y=5 }; This commit makes the configure scripts check to make sure your compiler implements them. It also disables our longstanding warning about midblock declarations. Closes ticket 13233.
This commit is contained in:
parent
ecab261641
commit
7f5103ec59
10
changes/require-c99
Normal file
10
changes/require-c99
Normal file
@ -0,0 +1,10 @@
|
||||
o New compiler requirements:
|
||||
- Tor 0.2.6.x requires that your compiler support more of the C99
|
||||
language standard than before. The 'configure' script now detects
|
||||
whether your compiler supports C99 mid-block declarations and
|
||||
designated initializers. If it does not, Tor will not compile.
|
||||
|
||||
We may revisit this requirement if it turns out that a significant
|
||||
number of people need to build Tor with compilers that don't
|
||||
bother implementing a 15-year-old standard. Closes ticket 13233.
|
||||
|
24
configure.ac
24
configure.ac
@ -221,6 +221,28 @@ AC_C_FLEXIBLE_ARRAY_MEMBER
|
||||
fi
|
||||
])
|
||||
|
||||
AC_CACHE_CHECK([for working C99 mid-block declaration syntax],
|
||||
tor_cv_c_c99_decl,
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([], [int x; x = 3; int y; y = 4 + x;])],
|
||||
[tor_cv_c_c99_decl=yes],
|
||||
[tor_cv_c_c99_decl=no] )])
|
||||
if test "$tor_cv_c_c99_decl" != "yes"; then
|
||||
AC_MSG_ERROR([Your compiler doesn't support c99 mid-block declarations. This is required as of Tor 0.2.6.x])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for working C99 designated initializers],
|
||||
tor_cv_c_c99_designated_init,
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([struct s { int a; int b; };],
|
||||
[[ struct s ss = { .b = 5, .a = 6 }; ]])],
|
||||
[tor_cv_c_c99_designated_init=yes],
|
||||
[tor_cv_c_c99_designated_init=no] )])
|
||||
|
||||
if test "$tor_cv_c_c99_designated_init" != "yes"; then
|
||||
AC_MSG_ERROR([Your compiler doesn't support c99 designated initializers. This is required as of Tor 0.2.6.x])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG([SHA1SUM], [sha1sum], none)
|
||||
AC_PATH_PROG([OPENSSL], [openssl], none)
|
||||
|
||||
@ -1500,7 +1522,7 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy
|
||||
|
||||
if test x$have_gcc4 = xyes ; then
|
||||
# These warnings break gcc 3.3.5 and work on gcc 4.0.2
|
||||
CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement -Wold-style-definition"
|
||||
CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wold-style-definition"
|
||||
fi
|
||||
|
||||
if test x$have_gcc42 = xyes ; then
|
||||
|
Loading…
Reference in New Issue
Block a user