This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH roland/arm-aeabi] ARM: Move more aeabi routine magic out of Linux-specific directories
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Thu, 26 Jun 2014 22:03:55 +0000
- Subject: Re: [PATCH roland/arm-aeabi] ARM: Move more aeabi routine magic out of Linux-specific directories
- Authentication-results: sourceware.org; auth=none
- References: <20140626214443 dot B9EC92C39BC at topped-with-meat dot com>
On Thu, 26 Jun 2014, Roland McGrath wrote:
> diff --git a/sysdeps/arm/nptl/Makefile b/sysdeps/arm/nptl/Makefile
> index 143850e..2c31e76 100644
> --- a/sysdeps/arm/nptl/Makefile
> +++ b/sysdeps/arm/nptl/Makefile
> @@ -18,3 +18,16 @@
> ifeq ($(subdir),csu)
> gen-as-const-headers += tcb-offsets.sym
> endif
> +
> +ifeq ($(subdir),nptl)
> +libpthread-sysdep_routines += nptl-aeabi_unwind_cpp_pr1
> +libpthread-shared-only-routines += nptl-aeabi_unwind_cpp_pr1
> +
> +# This test relies on compiling part of the binary with EH information,
> +# part without, and unwinding through. The .ARM.exidx tables have
> +# start addresses for EH regions, but no end addresses. Every
> +# region an exception needs to propogate through must have unwind
> +# information, or a previous function's unwind table may be used
> +# by mistake.
> +tests := $(filter-out tst-cleanupx4,$(tests))
You appear to be copying this tests change, and the libpthread-*
additions, from sysdeps/unix/sysv/linux/arm/Makefile but without removing
it from that file, so leaving duplicate copies. OK with the duplicates
removed (of course the libc-do-syscall additions to libpthread-* need to
remain behind in sysdeps/unix/sysv/linux/arm/Makefile), presuming that
works.
(The unwind info issue described shouldn't apply with binutils postdating
2009-05-05 Paul Brook <paul@codesourcery.com>
* bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
* bfd-in2.h: Regenerate.
* elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
(_arm_elf_section_data): Add text and exidx fields.
(add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
copy_exidx_entry): New functions.
(elf32_arm_write_section): Fixup .ARM.exidx contents.
which includes all supported binutils versions - but that's a separate
matter, and it may be that the explicit cantunwind markers on intermediate
frames aren't sufficient for the test to work, just for it not to use
other functions' unwind info accidentally.)
--
Joseph S. Myers
joseph@codesourcery.com