This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix _Unwind_GetIPInfo detection on Mac OS X 10.4
- From: Ian Lance Taylor <iant at google dot com>
- To: Misty De Meo <mistydemeo at gmail dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 7 Feb 2014 11:09:38 -0800
- Subject: Re: Fix _Unwind_GetIPInfo detection on Mac OS X 10.4
- Authentication-results: sourceware.org; auth=none
- References: <CAGLuM165=ke_00GW0TbkAo64Y0Rd27O-KKqF+Yjkg=acvDadkA at mail dot gmail dot com>
On Fri, Feb 7, 2014 at 9:06 AM, Misty De Meo <mistydemeo@gmail.com> wrote:
> Revision 192853 added a new test for availability of _Unwind_GetIPInfo
> in the system unwinder to the configure script of libbacktrace:
> http://repo.or.cz/w/official-gcc.git/commitdiff/a4a5a77adfc9c28d6963e5ae054c997d57cfc7fa
> It was apparently added to fix a bug building with GCC 4.0 on Mac OS X
> 10.5.
>
> This is one of a few checks for that function (there's also one in the
> top-level configure script). Unfortunately, while the other tests have
> special handling for Mac OS X 10.4, this new test does not take it
> into account.
>
> In 10.4, _Unwind_GetIPInfo is not exported in the system unwinder.
> Trying to build a test program will succeed, but will fail to link due
> to the symbol being undefined. The test added to libbacktrace's
> configure used AC_COMPILE_IFELSE, which meant it didn't try to link
> and erroneously flagged _Unwind_GetIPInfo as usable. This led to build
> errors when linking.
>
> This small patch changes configure to use AC_LINK_IFELSE, which fixes
> the issue on OS X 10.4. I've been able to build GCC successfully.
>
> GCC 4.8 and 4.9 are affected by this issue.
>
> A bug report is filed for this as #58710
> (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58710).
>
> diff --git libbacktrace/configure.ac libbacktrace/configure.ac
> index 28b2a1c..e0e0e08 100644
> --- libbacktrace/configure.ac
> +++ libbacktrace/configure.ac
> @@ -144,7 +144,7 @@ else
> ac_save_CFFLAGS="$CFLAGS"
> CFLAGS="$CFLAGS -Werror-implicit-function-
> declaration"
> AC_MSG_CHECKING([for _Unwind_GetIPInfo])
> - AC_COMPILE_IFELSE(
> + AC_LINK_IFELSE(
> [AC_LANG_PROGRAM(
> [#include "unwind.h"
> struct _Unwind_Context *context;
This is OK with a ChangeLog entry for 4.8 branch and mainline.
Thanks.
Ian