2016-05-13 29 views
0

Ich möchte testen, ob ein System volle Unterstützung für gcc-m32 hat. Ich habe versucht mit AX_CHECK_COMPILE_FLAG ([- m32], ..., ...). Dieser Test macht nicht, was ich möchte. Es scheint zu testen, ob -m32 eine gültige Option für gcc ist, NICHT, dass es tatsächlich einen Code kompilieren kann.Autoconf: Testen, ob gcc-m32 funktioniert AX_CHECK_COMPILE_FLAG löst es nicht

Ich weiß, dass, wenn ich -m33 test, dann AX_CHECK_COMPILE_FLAG korrekt sagt, dass es keine Option -m33 wie erwartet gibt.

An diesem System ein einfaches Hallo Welt Programm kompiliert macht folgendes:

$ gcc -m32 -c hello.c 

In file included from /usr/include/features.h:385, 
        from /usr/include/stdio.h:28, 
        from hello.c:1: 
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory 

und gibt einen Nicht-Null-Status. Dieser Nicht-Null-Status ist das, wonach ich gerne testen möchte.

+0

Sind Sie der '[SUCCESS] mit', '[FEHLER]', ' [INPUT] Argumente? –

+0

ja ich bin. Siehe meine Antwort auf meine Frage – user2410881

Antwort

0

Ich konnte eine Lösung für das Problem finden. Grundsätzlich habe ich den AX_CHECK_COMPILE_FLAG-Test genommen und die Interna geändert, um AC_RUN_IFELSE anstelle von AC_COMPILE_IFELSE zu verwenden. Ich habe den Namen AX_TEST_COMPILE_FLAG geändert und hier ist, wie es verwendet werden:

AX_TEST_COMPILE_FLAG([-m32],[HAVE_32BIT=yes],[HAVE_32BIT=no]) 

und hier ist die Definition:

AC_DEFUN([AX_TEST_COMPILE_FLAG], 
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF 
AS_VAR_PUSHDEF([CACHEVAR] [ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl 
AC_CACHE_CHECK([whether _AC_LANG compiler can build and run with $1], CACHEVAR, [ 
    ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS 
    _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" 
    AC_RUN_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], 
    [AS_VAR_SET(CACHEVAR,[yes])], 
    [AS_VAR_SET(CACHEVAR,[no])]) 
    _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) 
AS_VAR_IF(CACHEVAR,yes, 
    [m4_default([$2], :)], 
    [m4_default([$3], :)]) 
AS_VAR_POPDEF([CACHEVAR])dnl 
])dnl AX_CHECK_COMPILE_FLAGS