From e298f608385d51911184281f1cdb09addc560c59 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Wed, 13 Feb 2013 22:35:36 +0100 Subject: [PATCH] Create config-print program to test $cc Create a helper program called config-print to print informations relative to the BUILD/HOST environment in the case of native compilation. --- config-print.c | 35 +++++++++++++++++++++++++++++++++++ configure | 52 ++++++---------------------------------------------- 2 files changed, 41 insertions(+), 46 deletions(-) create mode 100644 config-print.c diff --git a/config-print.c b/config-print.c new file mode 100644 index 00000000..23319054 --- /dev/null +++ b/config-print.c @@ -0,0 +1,35 @@ +#include +#include + +int main(int argc, char *argv[]) { + switch(argc == 2 ? argv[1][0] : 0) { + case 'v': +#ifdef __GNUC__ +# if __GNUC__ >= 4 + puts("4"); +# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) + puts("3"); +# else + puts("2"); +# endif +#else + puts("0"); +#endif + break; + case 'm': +#ifdef __GNUC__ + printf("%d\n", __GNUC_MINOR__); +#else + puts("-1"); +#endif + break; + case 'e': + { + volatile uint32_t i=0x01234567; + if ((*((uint8_t*)(&i))) == 0x67) + puts("yes"); + } + break; + } + return 0; +} diff --git a/configure b/configure index 30b01837..649b67b4 100755 --- a/configure +++ b/configure @@ -22,10 +22,7 @@ fi # bashism: TMPN="${TMPDIR1}/tcc-conf-${RANDOM}-$$-${RANDOM}.c" TMPN="./conftest-$$" -TMPC=$TMPN.c TMPH=$TMPN.h -TMPO=$TMPN.o -TMPE=$TMPN # default parameters build_cross="no" @@ -206,20 +203,11 @@ fi if test -z "$cross_prefix" ; then -# --- -# big/little endian test -cat > $TMPC << EOF -#include -int main(int argc, char ** argv){ - volatile uint32_t i=0x01234567; - return (*((uint8_t*)(&i))) == 0x67; -} -EOF - -if $cc -o $TMPE $TMPC 2>/dev/null ; then - $TMPE && bigendian="yes" +if ! $cc -o config-print config-print.c 2>/dev/null ; then + echo "$cc is not able to compile TCC" else - echo big/little test failed + bigendian="$(./config-print e)" + gcc_major="$(./config-print v)" fi else @@ -231,37 +219,8 @@ esac fi -# check gcc version -cat > $TMPC < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -return 0; -#else -#error gcc < 3.2 -#endif -} -EOF - -gcc_major="2" -if $cc -o $TMPO $TMPC 2> /dev/null ; then - gcc_major="3" -fi -cat > $TMPC <= 4 -return 0; -#else -#error gcc < 4 -#endif -} -EOF - -if $cc -o $TMPO $TMPC 2> /dev/null ; then - gcc_major="4" -fi - if test -z "$cross_prefix" ; then - libc_dir="$(ldd $TMPO | grep libc.so | sed 's|[^/]*/\(.*/\)[^/]*|\1|')" + libc_dir="$(ldd ./config-print | grep libc.so | sed 's|[^/]*/\(.*/\)[^/]*|\1|')" multiarch_triplet=${libc_dir#*/} multiarch_triplet=${multiarch_triplet%/} lddir="${libc_dir%%/*}" @@ -269,6 +228,7 @@ if test -z "$cross_prefix" ; then lddir="$lddir/$multiarch_triplet" fi fi +rm config-print if test x"$show_help" = "xyes" ; then cat << EOF -- 2.11.4.GIT