| From cc08b52f8376867121f22e166636779e2a1a6e48 Mon Sep 17 00:00:00 2001 |
| From: Aaro Koskinen <aaro.koskinen@iki.fi> |
| Date: Mon, 12 May 2014 08:28:46 -0500 |
| Subject: [PATCH 1/1] configure: fix test-for-synth check with GCC 4.9.0 |
| |
| With GCC 4.9.0 oprofile 0.9.9 build fails on non-PPC platfroms because |
| the "test-for-synth" configure check result is incorrect: There is a NULL |
| pointer dereference in the test program, so the compiler seems to optimize |
| the rest of the code away, and the test will always succeed regardless |
| whether powerpc_elf64_vec/bfd_elf64_powerpc_vec are present or not. |
| Fix by allocating the referred struct statically. |
| |
| While at it, also include stdio.h to avoid a compiler warning. |
| |
| [Romain: backport the patch to 0.9.9] |
| |
| Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> |
| Signed-off-by: Romain Naour <romain.naour@openwide.fr> |
| |
| Conflicts: |
| m4/binutils.m4 |
| --- |
| m4/binutils.m4 | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/m4/binutils.m4 b/m4/binutils.m4 |
| index 25fb15a..3486488 100644 |
| --- a/m4/binutils.m4 |
| +++ b/m4/binutils.m4 |
| @@ -27,8 +27,10 @@ if test "$OS" = "Linux"; then |
| AC_MSG_CHECKING([whether bfd_get_synthetic_symtab() exists in BFD library]) |
| rm -f test-for-synth |
| AC_LANG_CONFTEST( |
| - [AC_LANG_PROGRAM([[#include <bfd.h>]], |
| - [[asymbol * synthsyms; bfd * ibfd = 0; |
| + [AC_LANG_PROGRAM([[#include <bfd.h>] |
| + [#include <stdio.h>] |
| + [static bfd _ibfd;]], |
| + [[asymbol * synthsyms; bfd * ibfd = &_ibfd; |
| long synth_count = bfd_get_synthetic_symtab(ibfd, 0, 0, 0, 0, &synthsyms); |
| extern const bfd_target bfd_elf64_powerpc_vec; |
| extern const bfd_target bfd_elf64_powerpcle_vec; |
| -- |
| 1.9.3 |
| |