mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-21 08:40:09 +01:00
build: Fix float endian configure test when using clang -O4
When using clang -O4, the compiled test object is output in bitcode format rather than as an ELF object, so when we grep the test value from the object it fails. To work around this, go ahead and link the test object into an executable, and then grep against this native binary instead of the compiler's intermediary object. We need to add __attribute__((used)) to ensure the d variable doesn't get optimized out during linking, since it's not referenced in the test's main(). Patch authored by cmuelle8 <abendstund@gmail.com> Reviewed-by: Bryce Harrington <b.harrington@samsung.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63310
This commit is contained in:
parent
9a19ef1858
commit
7cfebce152
1 changed files with 5 additions and 4 deletions
|
|
@ -24,16 +24,17 @@ AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN],
|
|||
# is found, the user is instructed to specify the ordering.
|
||||
|
||||
ax_cv_c_float_words_bigendian=unknown
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
|
||||
double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0;
|
||||
double d __attribute__((used)) = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0;
|
||||
int main() { return 0; }
|
||||
|
||||
]])], [
|
||||
|
||||
if strings - conftest.$ac_objext | grep noonsees >/dev/null ; then
|
||||
if strings - conftest | grep noonsees >/dev/null ; then
|
||||
ax_cv_c_float_words_bigendian=yes
|
||||
fi
|
||||
if strings - conftest.$ac_objext | grep seesnoon >/dev/null ; then
|
||||
if strings - conftest | grep seesnoon >/dev/null ; then
|
||||
if test "$ax_cv_c_float_words_bigendian" = unknown; then
|
||||
ax_cv_c_float_words_bigendian=no
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue