mirror of
https://github.com/libffi/libffi.git
synced 2026-01-26 10:07:53 +00:00
refactor: enhance assembler pseudo-ops and compiler flag checking
This commit is contained in:
parent
be4e59e399
commit
4094362f54
38
m4/asmcfi.m4
38
m4/asmcfi.m4
@ -1,13 +1,29 @@
|
||||
dnl ------------------------------------------------------------------
|
||||
dnl Check whether the assembler understands .cfi_* pseudo-ops.
|
||||
dnl ------------------------------------------------------------------
|
||||
AC_DEFUN([GCC_AS_CFI_PSEUDO_OP],
|
||||
[AC_CACHE_CHECK([assembler .cfi pseudo-op support],
|
||||
gcc_cv_as_cfi_pseudo_op, [
|
||||
gcc_cv_as_cfi_pseudo_op=unknown
|
||||
AC_TRY_COMPILE([asm (".cfi_sections\n\t.cfi_startproc\n\t.cfi_endproc");],,
|
||||
[gcc_cv_as_cfi_pseudo_op=yes],
|
||||
[gcc_cv_as_cfi_pseudo_op=no])
|
||||
])
|
||||
if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
|
||||
[Define if your assembler supports .cfi_* directives.])
|
||||
fi
|
||||
[
|
||||
AC_CACHE_CHECK([assembler .cfi pseudo-op support],
|
||||
[gcc_cv_as_cfi_pseudo_op],
|
||||
[ AC_LANG_PUSH([C])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
int foo (void)
|
||||
{
|
||||
__asm__ (
|
||||
".cfi_sections\n\t"
|
||||
".cfi_startproc\n\t"
|
||||
".cfi_endproc");
|
||||
return 0;
|
||||
}
|
||||
]])],
|
||||
[gcc_cv_as_cfi_pseudo_op=yes],
|
||||
[gcc_cv_as_cfi_pseudo_op=no])
|
||||
AC_LANG_POP([C])
|
||||
])
|
||||
|
||||
if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
|
||||
AC_DEFINE([HAVE_AS_CFI_PSEUDO_OP], [1],
|
||||
[Define if your assembler supports .cfi_* directives.])
|
||||
fi
|
||||
])
|
||||
|
||||
@ -34,14 +34,24 @@
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 6
|
||||
#serial 11
|
||||
|
||||
AC_DEFUN([AX_CHECK_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 accepts $1], CACHEVAR, [
|
||||
AC_CACHE_CHECK([whether the _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||
if test x"m4_case(_AC_LANG,
|
||||
[C], [$GCC],
|
||||
[C++], [$GXX],
|
||||
[Fortran], [$GFC],
|
||||
[Fortran 77], [$G77],
|
||||
[Objective C], [$GOBJC],
|
||||
[Objective C++], [$GOBJCXX],
|
||||
[no])" = xyes ; then
|
||||
add_gnu_werror="-Werror"
|
||||
fi
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1 $add_gnu_werror"
|
||||
AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user