This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Jakub Jelinek <jakub@redhat.com> writes:
> On Sun, Mar 17, 2002 at 01:25:16PM +0100, Andreas Jaeger wrote:
>> Andreas Jaeger <aj@suse.de> writes:
>>
>> > Andreas Jaeger <aj@suse.de> writes:
>> >
>> >> With current binutils and both gcc 2.95.3 and GCC 3.2 CVS on
>> >> i686-linux-gnu I now get:
>> >>
>> >> checking for DWARF2 unwind info support... (cached) no
>> >>
>> >> The test program from configure:
>> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> >> static char __EH_FRAME_BEGIN__[];
>> >
>> > I figured out the problem: the []; gets removed by autoconf - but my
>> > autoconf version didn't remove it. :-(
>>
>> But that's not the whole story, something is still broken for me:
>
> There are 2 different cases if the register_frame_info &
> register_frame check both fail.
> Either you have gcc 3.1+ configured with old binutils, or new binutils.
> In the former case, we should define HAVE_DWARF2_UNWIND_INFO and
> HAVE_DWARF2_UNWIND_INFO_STATIC, in the latter case nothing (as in that
> case no registry should happen).
>
> So the unwind info check should be extended to something like
> (untested):
>
> if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
> -nostdlib -nostartfiles
> -o conftest conftest.c -lgcc >&AC_FD_CC]); then
> libc_cv_gcc_dwarf2_unwind_info=static
> else
> libc_cv_gcc_dwarf2_unwind_info=no
> fi
> +if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
> + -nostdlib -nostartfiles
> + -o conftest conftest.c -lgcc -lgcc_eh >&AC_FD_CC]); then
> + if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \
> + -o conftest conftest.c -lgcc -lgcc_eh 2>&1 >/dev/null \
> + | grep -q -- --eh-frame-hdr; then
> + libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
> + else
> + libc_cv_gcc_dwarf2_unwind_info=static
> + fi
> +else
> + libc_cv_gcc_dwarf2_unwind_info=no
> +fi
> if test $libc_cv_gcc_dwarf2_unwind_info = no; then
> if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
> -nostdlib -nostartfiles
> -o conftest conftest.c -lgcc >&AC_FD_CC]);
> then
> libc_cv_gcc_dwarf2_unwind_info=yes
> else
> libc_cv_gcc_dwarf2_unwind_info=no
> fi
> fi
>
>> So, how can we fix that configure test - and do we need to add -lgcc_s
>> for sln?
>
> Um, why? Especially since adding -lgcc_s to -static will lead to failed link
> (there is no static -lgcc_s).
> gcc takes care of adding -lgcc_eh when it is necessary for -static link.
Strange, it now works for me - but I installed different binutils.
I'll try to investigate something more what's the problem is,
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |