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.
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.
large functions for ARMv4):
Fri Nov 12 13:31:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
addresses the same way GO_IF_LEGITIMATE_INDEX does.
local_got_offset cruft that's was still there. Change the way
got_entries were assigned. Now do it in elf_vax_size_dynamic_sections.
Add a routine elf_vax_instantiate_got_entries which assigns space in
the GOT or changes to normal PC32 references for static or symbolic links.
* Rename TARGET_ATPCS_STACK_ALIGN to TARGET_ATPCS.
* Move APTCS aggregate return rules to arm_return_in_memory(), conditional
on TARGET_ATPCS, and make it also return true for variable-sized aggregates.
* Declare arm_arch5 and arm_arch5e. Set arm_arch5 for if -mcpu=arm10tdmi,
-mcpu=arm1020t, -mcpu=xscale, -march=armv5, -march=armv5e, -march=armv5te.
Set arm_arch5e for -mcpu=xscale, -march=armv5e, -march=armv5te.
arm.md:
* Define the "clz" insn for arm_arch5.
* Define an "ffssi2" expander for arm_arch5 which uses "clz".
The GCC ChangeLog does not have a complete description to quote here,
so:
arm.c:
* arm_override_options(): Set arm_is_scale according to the the
-mcpu=xscale option. Set arm_constant_limit to 2 if arm_is_xscale.
* arm_adjust_cost(): If arm_is_xscale, account for stalls that can
occur due to shifted operands.
* arm_gen_load_multiple(): Account for the cost of ldm vs. ldr if
arm_is_xscale.
* arm_gen_store_multiple(): Likewise for stm vs. str.
arm.h:
* CONSTANT_ALIGNMENT(): Use a constant alignment factor of 2 if
arm_is_xscale.
* MOVE_RATIO: Set to 4 if arm_is_xscale.
arm.md:
* Add XScale scheduling parameters.
* Define a "shift" attribute (used by arm_adjust_cost()) and give it
to the appropriate operands on andsi_not_shiftsi_si, *shiftsi3,
*shiftsi3_compare0, *shiftsi3_compare0_scratch, *notsi_shiftsi,
*notsi_shiftsi_compare0, *not_shiftsi_compare0_scratch,
abssi2, *neg_abssi2, extendsidi2, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
*cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
*arith_shiftsi_compare0_scratch, *sub_shiftsi, *sub_shiftsi_compare0,
*sub_shiftsi_compare0_scratch, *if_shift_move, *if_move_shift,
and *if_shift_shift.
treated like -march=armv4t, but which generate __ARM_ARCH_5__,
__ARM_ARCH_5T__, and __ARM_ARCH_5TE__ defines, respecitively.
* Add -mcpu=xscale, which is internally treated like -mcpu=strongarm,
but which generates __ARM_ARCH_5TE__ and __XSCALE__ defines.
These command-line options and definitions are consistent with gcc 3.x,
and allow NetBSD Makefiles to use them in a forward-compatible way, and
also give hand-tuned source code (e.g. assembly) a chance of tuning for
XScale.
reasons:
1) There is already a destructor that does this. The atexit() is superfluous.
2) If libstdc++ is loaded dynamically by dlopen() and then is removed by
dlclose(), the pointer is no longer valid and the program would core dump
at exit() time. (This caused xmms to core dump at exit when xmms-sid was
installed, for example.)
also comment out continuation lines. Fixes Linux->NetBSD
cross-gdb when built using NetBSD's make(1) (a'la build.sh -t).
toolchain/16713, Christian Limpach <chris@Pin.LU>.
Patch also submitted up-stream to GDB.
2002-02-07 Daniel Jacobowitz <drow@mvista.com>
* bfd-in.h: Update <stdbool.h> check to only see if <stdbool.h> has
been included, not drag it in.
* bfd-in2.h: Regenerate.
Fixes toolchain/16709, from Christian Limpach <chris@Pin.LU>.
(alpha_expand_unaligned_load, alpha_expand_unaligned_store):
Cast switch operand of size to int.
Fixes one 32-bit host cross-compile problem, but still doesn't work...
compare_addsi2_op0 & compare_addsi2_op1. From the comment I've just
inserted:
;; XXX RWE: The reload pass of GCC-2.95 makes a mess of these if one of the
;; arguments is, or is directly derived from, an eliminable register. In
;; that case reload will substitue into the PLUS and then canonicalize it
;; without regard to the the match_dup parts. Since these are rare, I've
;; disabled them for now, but they should be OK in 3.x (which manages the
;; substitution without canonicalization.
Fixes PRs port-arm/16424 and toolchain/16304.
> 2000-03-06 Clinton Popetz <cpopetz@cygnus.com>
>
> * config/sh/sh.c: (barrier_align): Handle a delay slot that is
> filled with an insn from the jump target.
> Fix pcrel too far problems due to upping CACHE_LOG on SH2:
> * sh.c (barrier_align): Don't return early for normal branch/barrier
> when optimizing for SH2.
> 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
>
> * final.c (insn_current_reference_address): Use INSN_SHUID of seq
> rather than that of branch.
> (shorten_branches): Don't increment insn_current_address twice.
> Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
>
> * final.c (shorten_branches): Make value passed to LOOP_ALIGN
> conform to documentation.
> gcc original rev. 1.89:
> * combine.c (if_then_else_cond): If comparing against zero,
> just return thing being compared.
>
> gcc original rev. 1.132:
> * combine.c (combine_simplify_rtx): Don't create an if_then_else
> unless both args are general_operand.
* Use <dbxelf.h>.
* Undef CPP_PREDEFINES before defining it.
* Remove the undef of HANDLE_SYSV_PRAGMA; we need this in order for
weak externs to work properly.
These targets are identical to the non-nbsd versions except that they
mark resulting ELF objects and executables as OSABI_NETBSD version 0.
* Add big-endian ARM BFD vectors to arm-*-netbsdelf. Make the -nbsd
BFD target the default for arm-*-netbsdelf.
correctly.
Enable -msoft-quad-float as the default moving forward. A complete build with
this compiler produces no errors and passes known regressions problems (awk,
etc).
XXX - -mhard-quad-float no longer will generate code correctly (internal
compiler problems). This is the case all the way to gcc-current so it's not
an easy fix at the moment but no one should be using hard quad math anyways.
If one doesn't subtract the stack bias back off %fp before attempting
to access variables stored relative to %fp the wrong address is picked up for
all locals and args. So, calls to the FRAME_LOCALS_ADDRESS or
FRAME_ARGS_ADDRESS macros need a function for sparc64 specific cases.
Provide a function to check for bias's addresses and fix them up.
support. Specifically, got the changes to md_prepare_relax_scan
from binutils' revision 1.11 of this file. As a bonus also
now define DWARF2_LINE_MIN_INSN_LENGTH.
first. This is necessary to avoid warnings with -fshort-enums. Casting
to an int really should be enough, but turns out not to be.
This change will be documented in doc/HACKS.
script files (and now that they are in cvs, they can't be fixed).
Future imports of any package should use "-ko" and do away with *2netbsd
altogether, as was the intent of gnu/dist in the first place.
set the C(arry) bit appropriately. All other leave it in an indeterminate
(to GCC) state. Mark that by setting CC_NO_OVERFLOW. Change vax.md emission
of branches that use the C bit to use OUTPUT_JUMP so that if CC_NO_OVERFLOW is
set, branches that would normally use the C bit use opcodes that don't use the
C bit (jgtru -> jneq && jlssu -> jeql). Delete the cmpdi pattern.