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] |
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. Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |