with bfd_elf_set_dt_needed_soname(). Fixes the "NEEDED crtend.o"
problem reported on tech-toolchain/current-users.
Problem spotted by Ryo HAYASAKA <ryoh@jaist.ac.jp>.
<string>" message if the stars were aligned incorrectly due to fast-and-
loose list handling.
The list handling code didn't discriminate between list nodes and list
heads, resulting in string comparisons using memory in the "list heads
by length" array as the target of the comparison; if the string being
handled was short enough and the pointers present in the list heads
array were just the right form the tool would get spurious matches and
exit with the above message.
PR toolchain/18858
change INITIALIZE_TRAMPOLINE() to use it, and apply the following
patch to it (which I have already submitted to GCC 3.3):
* config/i386/i386.c (x86_initialize_trampoline): Emit a call
to __enable_execute_stack with the address of the trampoline
if TRANSFER_FROM_TRAMPOLINE is defined.
Define a TRANSFER_FROM_TRAMPOLINE suitable for NetBSD targets, to enable
stack execution on target machines which can separate exec permissions for
a region:
* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Define.
* config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Define
as NETBSD_ENABLE_EXECUTE_STACK.
* config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
* config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
* config/sparc/netbsd-elf-common.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
* config/sparc/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
(A similar patch will be submitted to GCC 3.3.)
2002-10-17 Jason Thorpe <thorpej@wasabisystems.com>
* config/alpha/alpha.c (alpha_initialize_trampoline): Use
tramp, not addr, to pass the trampoline address to
__enable_execute_stack.
Otherwise, incorrect behavior would result if the trampoline happend
to stradle a page boundary.
anything includes <fnmatch.h>. Using our native /usr/include/fnmatch.h is
no good idea, they are incompatible.
XXX - why is tar using it's own implementation?
I'm not sure this is the right way to handle the problem, but it made
a "make cleandir && make" here possible again.
we saved the GOT pointer register.
Note: This is already fixed in the GCC 3 sources, but GCC 3 uses a different
condition to determine whether to save and restore the register, so the patch
cannot be the same.