|  | 
| 24 | 24 | dnl $HEADER$ | 
| 25 | 25 | dnl | 
| 26 | 26 | 
 | 
|  | 27 | +dnl Check to see if specific CFLAGS work | 
|  | 28 | +dnl $1: compiler flags to check | 
|  | 29 | +dnl $2: Action if the flags work | 
|  | 30 | +AC_DEFUN([_ORTE_SETUP_DEBUGGER_FLAGS_TRY_CFLAGS],[ | 
|  | 31 | +    OPAL_VAR_SCOPE_PUSH([ORTE_SETUP_DEBUGGER_FLAGS_CFLAGS_save]) | 
|  | 32 | +    ORTE_SETUP_DEBUGGER_FLAGS_CFLAGS_save=$CFLAGS | 
|  | 33 | +    AC_MSG_CHECKING([if $1 compiler flag works]) | 
|  | 34 | +    CFLAGS="$CFLAGS $1" | 
|  | 35 | +    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[int i = 3;])], | 
|  | 36 | +        [$2; AC_MSG_RESULT([yes])], | 
|  | 37 | +        [AC_MSG_RESULT([no])]) | 
|  | 38 | +    CFLAGS=$ORTE_SETUP_DEBUGGER_FLAGS_CFLAGS_save | 
|  | 39 | +    OPAL_VAR_SCOPE_POP | 
|  | 40 | +]) | 
|  | 41 | + | 
| 27 | 42 | AC_DEFUN([ORTE_SETUP_DEBUGGER_FLAGS],[ | 
| 28 | 43 |     # | 
| 29 | 44 |     # Do a final process of the CFLAGS to make a WITHOUT_OPTFLAGS | 
| @@ -60,19 +75,24 @@ AC_DEFUN([ORTE_SETUP_DEBUGGER_FLAGS],[ | 
| 60 | 75 |     # producing a stack when explicit unwind information is unavailable. | 
| 61 | 76 |     # This is implied by -g, but we want to save space and don't need | 
| 62 | 77 |     # full debug symbols. | 
| 63 |  | -    if test "x$opal_cv_c_compiler_vendor" = "xibm"; then | 
| 64 |  | -        MPIR_UNWIND_CFLAGS="-g" | 
| 65 |  | -    elif test "x$opal_cv_c_compiler_vendor" = "xgnu"; then | 
| 66 |  | -        MPIR_UNWIND_CFLAGS="-fasynchronous-unwind-tables" | 
| 67 |  | -    elif test "x$opal_cv_c_compiler_vendor" = "xintel"; then | 
| 68 |  | -        MPIR_UNWIND_CFLAGS="-fasynchronous-unwind-tables" | 
| 69 |  | -    elif test "x$opal_cv_c_compiler_vendor" = "xportland group"; then | 
| 70 |  | -        MPIR_UNWIND_CFLAGS="-Meh_frame -Mframe" | 
| 71 |  | -    else | 
| 72 |  | -        MPIR_UNWIND_CFLAGS= | 
|  | 78 | +    foundFlags=no | 
|  | 79 | +    MPIR_UNWIND_CFLAGS= | 
|  | 80 | + | 
|  | 81 | +    # Test for GNU and Intel compiler flags | 
|  | 82 | +    _ORTE_SETUP_DEBUGGER_FLAGS_TRY_CFLAGS([-fasynchronous-unwind-tables], | 
|  | 83 | +       [MPIR_UNWIND_CFLAGS=-fasynchronous-unwind-tables foundFlags=yes]) | 
|  | 84 | + | 
|  | 85 | +    # Test for PGI compiler flags | 
|  | 86 | +    if test $foundFlags = no; then | 
|  | 87 | +        _ORTE_SETUP_DEBUGGER_FLAGS_TRY_CFLAGS([-Meh_frame -Mframe], | 
|  | 88 | +            [MPIR_UNWIND_CFLAGS="-Meh_frame -Mframe" foundFlags=yes]) | 
|  | 89 | +    fi | 
|  | 90 | + | 
|  | 91 | +    # Finally fall back to -g if neither of the above were available | 
|  | 92 | +    if test $foundFlags = no; then | 
|  | 93 | +        _ORTE_SETUP_DEBUGGER_FLAGS_TRY_CFLAGS([-g], | 
|  | 94 | +            [MPIR_UNWIND_CFLAGS=-g foundFlags=yes]) | 
| 73 | 95 |     fi | 
| 74 | 96 | 
 | 
| 75 |  | -    AC_MSG_CHECKING([for MPIR unwind info flags]) | 
| 76 |  | -    AC_MSG_RESULT([$MPIR_UNWIND_CFLAGS]) | 
| 77 | 97 |     AC_SUBST(MPIR_UNWIND_CFLAGS) | 
| 78 | 98 | ]) | 
0 commit comments