Commit Graph

511 Commits

Author SHA1 Message Date
thorpej
8fa28a286c Bring in the following change from Binutils-current:
2002-09-28  Matt Thomas  <matt@3am-software.com>
            Jason Thorpe  <thorpej@wasabisystems.com>

        * config/tc-vax.c (md_estimate_size_before_relax): Only try to
        convert undefined references to GOT32/PLT32 if PIC code is
        requested.  Fix comment.
2002-11-05 14:33:35 +00:00
thorpej
b4f17138b9 * Tidy up CC1_SPEC. Remove the -mno-pic flag, which didn't actually
work properly.
* Add a new -mno-asm-pic flag which tells the assembler to assemble
  the code non-PIC even if it was compiled PIC.
2002-11-05 14:31:58 +00:00
thorpej
64a5da6461 Revise previous to xstrdup the basename earlier; an intervening call to
basename() was occurring.

Pointed out by Matthias Drochner.
2002-11-01 16:07:37 +00:00
thorpej
f8b18efd0c xstrdup the return value of basename() before recording it in the bfd
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>.
2002-10-31 23:21:17 +00:00
rafal
2fdb31c4e3 Fix a bug with list handling that caused this to abort with a "extraneous
<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
2002-10-30 18:14:37 +00:00
thorpej
1268b2dbc5 Add an x86_initialize_trampoline() function, similar to GCC 3.3,
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-18 16:23:47 +00:00
thorpej
00b192ce18 Bring in the following fix from gcc-current:
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.
2002-10-17 21:01:03 +00:00
thorpej
cde0a5d6aa __mcount uses jsb linkage, so there is no need to skip the (non-existent)
register save mask.  Profiling now works.

Also, use asm_fprintf() in FUNCTION_PROFILER.
2002-10-02 00:50:24 +00:00
thorpej
e870e0c546 Pick up the following change from binutils-current:
2002-09-28  Jason Thorpe  <thorpej@wasabisystems.com>

        * elf32-vax.c (elf_vax_size_dynamic_section): Don't strip
        .got sections.
2002-09-28 23:19:01 +00:00
mycroft
b06a300a8a Fix a bug WRT -vomit-frame-pointer -- use_return_insn() must return false if
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.
2002-09-26 14:21:39 +00:00
mycroft
2468728dc8 Add missing parens that caused PLT slots >=32768 to jump to the wrong place. 2002-09-25 20:05:14 +00:00
thorpej
914a9c522b -D__STRONGARM__ for -mcpu=strongarm* 2002-09-21 00:26:47 +00:00
thorpej
0604df808f Do -D__XSCALE__ -D__ARM_ARCH_5TE__ for -march=xscale, as well, as
GCC 3.x does.
2002-09-21 00:19:30 +00:00
rearnsha
efc53cb5f7 Pull up the following patch from FSF GCC (fixes aborts when compiling
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.
2002-09-19 21:52:29 +00:00
toshii
0a4b948848 Make sure to write back correct FP state. Fixes port-i386/17927. 2002-09-17 07:05:09 +00:00
matt
25c3b57cd5 Don't emit R_VAX_GLOB_DAT for symbolic links. Eliminate all
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.
2002-09-12 17:51:33 +00:00
thorpej
4c30492b6c * Rename ARM_FLAG_ATPCS_STACK_ALIGN to ARM_FLAG_ATPCS.
* 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.
2002-08-28 17:33:54 +00:00
mycroft
c38b03a8c7 Fix SELECT_SECTION() so that C++ run-time type info constructors do not go in
.rodata on PIC systems, which was causing text relocations (and associated
performance loss).
2002-08-28 14:05:58 +00:00
nathanw
a7a8c9a009 Not for the trunk yet. 2002-08-28 00:00:57 +00:00
nathanw
0e972f7cec Support for debugging threaded programs, with libpthread and libpthread_dbg. 2002-08-27 23:56:43 +00:00
matt
e38f37f289 Make sure mips targets build properly on 64bit hosts. 2002-08-24 16:50:10 +00:00
thorpej
97f9d76ce8 arm.c, arm.h:
* 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".
2002-08-21 01:27:14 +00:00
thorpej
0414c14b05 Changes to better support XScale, round 1, back-ported from GCC 3.2.
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.
2002-08-20 23:46:44 +00:00
thorpej
7dfd5a8bef 2002-08-16 Nick Clifton <nickc@redhat.com>
* gprof.c (main): Remove spurious test for __alpha__.
2002-08-17 03:03:53 +00:00
thorpej
e83b2dfbd8 Define __ARMEL__ if little-endian, as gcc 3.x does. 2002-08-07 03:35:51 +00:00
thorpej
7a6acd854a * Add -march=armv5, -march=armv5t, -march=armv5te, which are internally
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.
2002-08-07 03:27:39 +00:00
mjl
7fc6ed7c11 Correct obviously wrong memset() args. OK'd by itojun. 2002-07-20 16:51:43 +00:00
mycroft
c5c651d529 If there is no PLT, do not output a DT_PLTGOT entry, as this causes the
dynamic linker to blast other things (like the second GOT entry).
2002-07-18 17:35:09 +00:00
mycroft
e5b593969a Whack the atexit(_IO_cleanup), as per ../../libio/cleanup.c 1.2, for the same
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.)
2002-07-17 18:01:22 +00:00
itojun
5cfce202f7 wrong arg to memset. OpenBSD PR 2822 2002-07-16 23:08:04 +00:00
itojun
b3f9de2ade awrong memset() arg. OpenBSD PR 2822. 2002-07-16 23:07:33 +00:00
thorpej
b767b60c60 Add "(NetBSD nb3)" to the version string. 2002-07-15 15:44:53 +00:00
aymeric
1f11daa1ee Bump to nb3, following revision 1.2 of expr.c 2002-07-15 15:12:48 +00:00
aymeric
169b0eb038 Bring in diff from 1.144.4.10 to 1.144.4.11, from the gcc CVS repository.
This fixes (at least) broken compilation of xkbcomp with -O2 on powerpc.

ChangeLog entry:
2001-05-17  Bernd Schmidt  <bernds@redhat.com>

        * expr.c (protect_from_queue): Protect against subsequent calls to
        emit_queue.
        (expand_expr, case ADDR_EXPR): Prevent protect_from_queue from being
        too clever.

CVS log entry:
revision 1.144.4.11
date: 2001/05/17 17:01:06;  author: bernds;  state: Exp;  lines: +10 -3
Fix queueing-related bugs
2002-07-14 13:55:38 +00:00
itohy
8f0b7653ca a.out prologue / epilogue (from in-tree egcs) 2002-07-06 13:20:08 +00:00
itohy
b2f2b1cb44 Correct section / alignment rule for a.out. From in-tree egcs. 2002-07-06 13:19:00 +00:00
itohy
bd6a4107d8 i386 uses _GLOBAL_OFFSET_TABLE_, not __GLOBAL_OFFSET_TABLE_, for GOT symbol
even if on a.out compiler.
Yes this is weird, but it is the traditional behavior.
2002-07-06 13:17:18 +00:00
nathanw
2b3894aa5d NetBSD/powerpc is not AIX, so #undef RS6000_TARGET.
In particular, we don't want AIX's shared-library relocation semantics.
2002-07-03 23:43:57 +00:00
msaitoh
a53dc6ce7d remove old and unused files 2002-06-24 06:49:14 +00:00
itojun
519b2858bf backout previous commit. i'm still not sure how the name conflict should be
resolved.
2002-06-21 00:17:33 +00:00
itojun
54c5e72f02 the file is generated on-demand, in both src/tool/toolchain and
src/gnu/lib/libbfd build.
2002-06-18 17:13:29 +00:00
itojun
59206db733 avoid name clash on full-feature bfd build 2002-06-18 09:20:51 +00:00
itojun
3b9f70e1fb avoid overwriting const string passed as arg. 2002-06-18 08:30:31 +00:00
thorpej
5efacd42c4 Add an armeb-*-netbsdelf* target (big-endian ARM). 2002-05-20 14:24:22 +00:00
thorpej
cfbb24ed86 Add a -Wno-format-zero-length switch that does nothing, for forward
compatibility with GCC 3.2.
2002-05-18 18:53:44 +00:00
wiz
6f56aa4c96 Only comments after #endif. 2002-05-16 19:25:06 +00:00
thorpej
f4e45540c8 Change the sed expression that comments out NATDEPFILES to
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-05-10 22:01:06 +00:00
thorpej
7d5c79eb03 Don't include <sys/param.h> or <machine/vmparam.h>.
toolchain/16710, Christian Limpach <chris@Pin.LU>.
2002-05-10 21:24:51 +00:00
thorpej
0a7271465f Apply patch from binutils cvs:
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>.
2002-05-10 21:20:39 +00:00
thorpej
44db3fb402 Allow gdb for sh*-*-netbsd*. 2002-05-09 17:07:16 +00:00