r15646@tombo: nickm | 2007-12-23 13:17:33 -0500

Handle cross-compilation more sanely: avoid most uses of the (never-defined!) CROSS_COMPILE variable; in the one place where we cannot help it, use the correct cross_compiling.


svn:r12945
This commit is contained in:
Nick Mathewson 2007-12-23 18:20:22 +00:00
parent b9fa18a1de
commit 4606a8af03
3 changed files with 14 additions and 19 deletions

View File

@ -1,3 +1,7 @@
Changes in version 0.2.0.15-alpha - 2008-01-??
o Minor bugfixes:
- Fix configure.in logic for cross-compilation.
Changes in version 0.2.0.14-alpha - 2007-12-23 Changes in version 0.2.0.14-alpha - 2007-12-23
o Major bugfixes: o Major bugfixes:
- Fix a crash on startup if you install Tor 0.2.0.13-alpha fresh - Fix a crash on startup if you install Tor 0.2.0.13-alpha fresh

View File

@ -150,7 +150,7 @@ fi
TOR_DEFINE_CODEPATH($tor_cv_library_$1_dir, $1) TOR_DEFINE_CODEPATH($tor_cv_library_$1_dir, $1)
if test -z "$CROSS_COMPILE"; then if test "$cross_compiling" != yes; then
AC_CACHE_CHECK([whether we need extra options to link $1], AC_CACHE_CHECK([whether we need extra options to link $1],
tor_cv_library_$1_linker_option, [ tor_cv_library_$1_linker_option, [
orig_LDFLAGS="$LDFLAGS" orig_LDFLAGS="$LDFLAGS"

View File

@ -405,7 +405,6 @@ AC_CHECK_TYPES([rlim_t], , ,
#endif #endif
]) ])
if test -z "$CROSS_COMPILE"; then
AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [ AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [
AC_RUN_IFELSE(AC_LANG_SOURCE([ AC_RUN_IFELSE(AC_LANG_SOURCE([
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
@ -418,15 +417,14 @@ AC_RUN_IFELSE(AC_LANG_SOURCE([
#include <time.h> #include <time.h>
#endif #endif
int main(int c, char**v) { if (((time_t)-1)<0) return 1; else return 0; }]), int main(int c, char**v) { if (((time_t)-1)<0) return 1; else return 0; }]),
tor_cv_time_t_signed=no, tor_cv_time_t_signed=yes) tor_cv_time_t_signed=no, tor_cv_time_t_signed=yes, tor_cv_time_t_signed=cross)
]) ])
else
# Cross-compiling; let's hope the target platform isn't loony. if test "$tor_cv_time_t_signed" = cross; then
AC_MSG_NOTICE([Cross compiling: assuming that time_t is signed.]) AC_MSG_NOTICE([Cross compiling: assuming that time_t is signed.])
tor_cv_time_t_signed=yes
fi fi
if test "$tor_cv_time_t_signed" = yes; then if test "$tor_cv_time_t_signed" != no; then
AC_DEFINE([TIME_T_IS_SIGNED], 1, AC_DEFINE([TIME_T_IS_SIGNED], 1,
[Define to 1 iff time_t is signed]) [Define to 1 iff time_t is signed])
fi fi
@ -442,7 +440,6 @@ AC_CHECK_SIZEOF(socklen_t, , [AC_INCLUDES_DEFAULT()
AC_CHECK_SIZEOF(cell_t) AC_CHECK_SIZEOF(cell_t)
# Now make sure that NULL can be represented as zero bytes. # Now make sure that NULL can be represented as zero bytes.
if test -z "$CROSS_COMPILE"; then
AC_CACHE_CHECK([whether memset(0) sets pointers to NULL], tor_cv_null_is_zero, AC_CACHE_CHECK([whether memset(0) sets pointers to NULL], tor_cv_null_is_zero,
[AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_RUN_IFELSE([AC_LANG_SOURCE(
[[#include <stdlib.h> [[#include <stdlib.h>
@ -457,20 +454,17 @@ return memcmp(&p1,&p2,sizeof(char*))?1:0; }]])],
[tor_cv_null_is_zero=no], [tor_cv_null_is_zero=no],
[tor_cv_null_is_zero=cross])]) [tor_cv_null_is_zero=cross])])
else if test "$tor_cv_null_is_zero" = cross ; then
# Cross-compiling; let's hope that the target isn't raving mad. # Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that NULL is represented as a sequence of 0-valued bytes.]) AC_MSG_NOTICE([Cross-compiling: we'll assume that NULL is represented as a sequence of 0-valued bytes.])
tor_cv_null_is_zero=yes
fi fi
if test "$tor_cv_null_is_zero" = yes; then if test "$tor_cv_null_is_zero" != no; then
AC_DEFINE([NULL_REP_IS_ZERO_BYTES], 1, AC_DEFINE([NULL_REP_IS_ZERO_BYTES], 1,
[Define to 1 iff memset(0) sets pointers to NULL]) [Define to 1 iff memset(0) sets pointers to NULL])
fi fi
# And what happens when we malloc zero? # And what happens when we malloc zero?
if test -z "$CROSS_COMPILE"; then
AC_CACHE_CHECK([whether we can malloc(0) safely.], tor_cv_malloc_zero_works, AC_CACHE_CHECK([whether we can malloc(0) safely.], tor_cv_malloc_zero_works,
[AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_RUN_IFELSE([AC_LANG_SOURCE(
[[#include <stdlib.h> [[#include <stdlib.h>
@ -484,10 +478,9 @@ int main () { return malloc(0)?0:1; }]])],
[tor_cv_malloc_zero_works=no], [tor_cv_malloc_zero_works=no],
[tor_cv_malloc_zero_works=cross])]) [tor_cv_malloc_zero_works=cross])])
else if test "$tor_cv_malloc_zero_works" = cross; then
# Cross-compiling; let's hope that the target isn't raving mad. # Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that we need to check malloc() arguments for 0.]) AC_MSG_NOTICE([Cross-compiling: we'll assume that we need to check malloc() arguments for 0.])
tor_cv_malloc_zero_works=no
fi fi
if test "$tor_cv_malloc_zero_works" = yes; then if test "$tor_cv_malloc_zero_works" = yes; then
@ -496,7 +489,6 @@ if test "$tor_cv_malloc_zero_works" = yes; then
fi fi
# whether we seem to be in a 2s-complement world. # whether we seem to be in a 2s-complement world.
if test -z "$CROSS_COMPILE"; then
AC_CACHE_CHECK([whether we are using 2s-complement arithmetic], tor_cv_twos_complement, AC_CACHE_CHECK([whether we are using 2s-complement arithmetic], tor_cv_twos_complement,
[AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_RUN_IFELSE([AC_LANG_SOURCE(
[[int main () { int problem = ((-99) != (~99)+1); [[int main () { int problem = ((-99) != (~99)+1);
@ -505,13 +497,12 @@ return problem ? 1 : 0; }]])],
[tor_cv_twos_complement=no], [tor_cv_twos_complement=no],
[tor_cv_twos_complement=cross])]) [tor_cv_twos_complement=cross])])
else if test "$tor_cv_twos_complement" = cross ; then
# Cross-compiling; let's hope that the target isn't raving mad. # Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that negative integers are represented with two's complement.]) AC_MSG_NOTICE([Cross-compiling: we'll assume that negative integers are represented with two's complement.])
tor_cv_twos_complement=yes
fi fi
if test "$tor_cv_twos_complement" = yes; then if test "$tor_cv_twos_complement" != no ; then
AC_DEFINE([USING_TWOS_COMPLEMENT], 1, AC_DEFINE([USING_TWOS_COMPLEMENT], 1,
[Define to 1 iff we represent negative integers with two's complement]) [Define to 1 iff we represent negative integers with two's complement])
fi fi