> 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.
${GNU_ARCH_MACHINE}-netbsd. This allows platforms to that were
formerly a.out but ELF to be foo--netbsdelf. It also adds the
missing 2nd "-" which was missing in the former definition.
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.
Define IN_SIGTRAMP() as nbsd_in_sigtramp(), a new function which knows
how to find the address of the signal trampoline at runtime, thus allowing
one gdb binary to work on all NetBSD/m68k machines.
round has been tested on Solaris/x86 and Linux hosts.
* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
`long'. This gives rise to defining `off_t' to a signed 64 bit on LP64
machines giving rise to cross compiling errors.
By explicitly setting it to int32_t its forced to use signed 32 bits
integers as required and expected on the ILP32 ARM processor.
This aparently fixes PR 15303
(should make it into stock binutils as soon as Matt's copyright
assignment paperwork is finalized):
bfd:
* elf32-m68k.c (elf32_m68k_print_private_bfd_data): Recognize
EF_M68000.
binutils:
* readelf.c (get_machine_flags): Recognize EF_M68000.
gas:
* config/tc-m68k.c (md_show_usage): No longer display a
hard-coded "68020" for the default CPU, instead display the
canonical name of the true, configured default CPU.
(m68k_elf_final_processing): Mark objects for sub-68020
CPUs with the new EF_M68000 flag.
include/elf:
* m68k.h (EF_M68000): Define.
master binutils sources that fix gprof for LP64 platforms and
also fix some problems with cross-gprof:
* TODO: Remove "host architecture pointer size" item.
* gmon.h (GMON_HDRSIZE_BSD44_32): Define.
(GMON_HDRSIZE_BSD44_64): Ditto.
(GMON_HDRSIZE_OLDBSD_32): Ditto.
(GMON_HDRSIZE_OLDBSD_64): Ditto.
(struct raw_phdr): Wrap in #if 0, keeping it for
documentation purposes only.
(struct old_raw_phdr): Likewise.
(struct raw_arc): Likewise. Change type/size of
"count" member to long match 4.4BSD.
* gmon_io: Update copyright years.
(gmon_io_read_64): New function.
(gmon_io_read_vma): Use bfd_arch_bits_per_address to
determine target pointer size. Use gmon_io_read_32
and gmon_io_read_64.
(gmon_io_write_64): New function.
(gmon_io_write_vma): Use bfd_arch_bits_per_address to
determine target pointer size. Use gmon_io_write_32
and gmon_io_write_64.
(get_vma): Remove.
(put_vma): Ditto.
(gmon_read_raw_arc): New function.
(gmon_write_raw_arc): New function.
(gmon_out_read): Do not use struct raw_phdr or
struct old_raw_phdr to read the gmon header. Use
gmon_read_raw_arc to read call graph records.
(gmon_out_write): Do not use struct raw_phdr or
struct old_raw_phdr to write the gmon header. Use
gmon_write_raw_arc to write call graph records.
This makes the GMON_PTR_SIZE constant obsolete, however I have not
included the changes to the autoconf machinery that eliminate that
constant completely in order to minimize the changes here (they
will be picked up when we import Binutils 2.12 when it is released).
2001-03-04 Andrew Cagney <ac131313@redhat.com>
* emul_netbsd.c [WITH_NetBSD_HOST]: Include <sys/mount.h> and
<errno.h>.
(do_stat): Only do SYS test when SYS_stat defined.
(do_sigprocmask): Ditto for SYS_sigprocmask.
(do_fstat): Ditto for SYS_fstat.
(do_getdirentries): Ditto for SYS_getdirentries.
(do_lstat): Ditto for SYS_lstat.
2001-01-15 Geoffrey Keating <geoffk@redhat.com>
* emul_netbsd.c (do_open): Translate the flag parameter to the
open syscall to the numbers supported by the host.
* part of port-powerpc/14307
2001-10-19 Andrew Cagney <ac131313@redhat.com>
* configure.in: When Linux or NetBSD, enable PowerPC simulator.
* configure: Re-generate.
binutils-current respository.
2001-06-24 H.J. Lu <hjl@gnu.org>
* objcopy.c (strip_main): Revert the change made on 2001-05-30
by accident.
(copy_main): Apply the the change made to strip_main on
2001-05-30 by accident.
strip now passes the argument list as documented.
http://gcc.gnu.org/ml/gcc-patches/2000-06/msg00389.html
ChangeLog for this change (which was never committed to the master
GCC sources; the bug still exists in GCC 3.x!):
2000-05-09 Ethan Solomita ethan@cs.columbia.edu
* config/mips/mips.h (FUNCTION_PROFILER): Deal with
the case where jal is expanded as a macro.
This is done by removing the .reorder/.noreorder, and moving the
call to _mcount to after the stack adjust, thereby letting the
assembler deal with the delay slot, etc.
This fixes profiling with libraries built -mabicalls (default on
NetBSD).
I can't believe how long this problem has been discussed-but-not-fixed
on the GCC mailing list...
into the mmap'd region. (reviewed by thorpej.)
This is done to facilitate use as a host tool on not-necessarily-NetBSD
host systems. Specifically, it works around problems discovered on
linux (mostly tested on 2.4.2-smp / RH 7.1, but also seen on other
variants) in which mmap(...MAP_SHARED...) on NFS files doesn't work
properly:
74 [hardy] RAMDISK.EB % uname -a
Linux hardy 2.4.2-2smp #1 SMP Sun Apr 8 20:21:34 EDT 2001 i686 unknown
75 [hardy] RAMDISK.EB % cat /etc/issue
Red Hat Linux release 7.1 (Seawolf)
Kernel 2.4.2-2smp on a 2-processor i686
76 [hardy] RAMDISK.EB % df .
Filesystem 1k-blocks Used Available Use% Mounted on
fs:/home/cgd
104857600 98764968 6092632 95% /home/cgd
77 [hardy] RAMDISK.EB % date ; md5sum netbsd
Thu Dec 27 17:31:41 PST 2001
a1f35f085f130983892933df92d23be4 netbsd
78 [hardy] RAMDISK.EB % nbmdsetimage netbsd ~/proj-local/rd
79 [hardy] RAMDISK.EB % date ; md5sum netbsd
Thu Dec 27 17:31:49 PST 2001
740cbfb0a8432b7d3a6bf3421655e270 netbsd
80 [hardy] RAMDISK.EB % date ; md5sum netbsd
Thu Dec 27 17:31:51 PST 2001
a8c60aae879ead6893f074e83c23d70a netbsd
81 [hardy] RAMDISK.EB % date ; md5sum netbsd
Thu Dec 27 17:31:54 PST 2001
a8c60aae879ead6893f074e83c23d70a netbsd
82 [hardy] RAMDISK.EB % date ; md5sum netbsd
Thu Dec 27 17:31:55 PST 2001
a1f35f085f130983892933df92d23be4 netbsd
83 [hardy] RAMDISK.EB % date ; md5sum netbsd
Thu Dec 27 17:31:57 PST 2001
a1f35f085f130983892933df92d23be4 netbsd
84 [hardy] RAMDISK.EB %
("isn't that cool?")
case:
MKBFD If set to "no", disables building of libbfd, libiberty,
and all things that depend on them (binutils/gas/ld, gdb,
dbsym, mdsetimage).
MKGDB If set to "no", disables bulding of gdb.
MKGCC If set to "no", disables building of gcc and the
gcc-related libraries (libg2c, libgcc, libobjc, libstdc++).
These are useful for building platforms for which either of the following
situations are true:
(1) You have no userland from which to run toolchain2netbsd
in order to build the appropriate toolchain build framework.
(2) The platform which you are building requires a newer set
of tools than are currently in the tree (e.g. x86-64, ia64).
- SHLIBDIR Location to install shared libraries if ${USE_SHLIBDIR}
is "yes". Defaults to "/usr/lib".
- USE_SHLIBDIR If "yes", install shared libraries in ${SHLIBDIR}
instead of ${LIBDIR}. Defaults to "no".
Sets ${_LIBSODIR} to the appropriate value.
This may be set by individual Makefiles as well.
- SHLINKDIR Location of shared linker. Defaults to "/usr/libexec".
If != "/usr/libexec", change the dynamic-linker
encoded in shared programs
* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
libtermcap libutil libz
* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from ${LIBDIR}/${LIB}.so*
to ${_LIBSODIR}/${LIB}.so* for compatibility.
* Always install /sbin/init statically (for now)
The net effect of these changes depends on how the variables are set:
1.) If nothing is set or changed, there is no change from the
current behaviour:
- Static /bin, /sbin, and bits of /usr/*
- Dynamic rest
- Shared linker is /usr/libexec/ld*so
2.) If the following make variables are set:
LDSTATIC=
SHLINKDIR=/lib
SHLIBDIR=/lib
Then the behaviour becomes:
- Dynamic tools
- .so libraries used by /bin and /sbin are installed to /lib,
with symlinks from /usr/lib/lib*so to -> /lib/lib*so
where appropriate
- Shared linker is /lib/ld*so
3.) As per 2.), but add the following variable:
USE_SHLIBDIR=yes
This forces all .so's to be instaleld in /lib (with compat
symlinks), not just those tagged by their Makefiles to be.
Again, compat symlinks are installed
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.)
NOTE: THIS NEEDS TO BE APPLIED TO THE `TOOLCHAIN' VERSION.
* jump-format jumps: the target is in RB, so use the RB bits in
the insn, not the RA bits.
* branch-format displacements are 21 bits; extract all of them, and
sign-extend correctly.
* For conditional branches, we need to determine whether or not
the branch is actually taken.
and ASM_FINISH_DECLARE_OBJECT macros in <alpha/netbsd.h>,
and remove ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME,
ASM_FINISH_DECLARE_OBJECT, and ASM_DECLARE_FUNCTION_SIZE from
<netbsd.h>.
* Regen files with proper OS names and version numbers.
* Clean up toolchain2netbsd somewhat, to get it ready to be cross-host
compatible (more work to be done here, but it's getting closer).
* Add framework for gdbreplay and gdbserver, but hold off on enabling these
by default until low-nbsd.c is verified to work everywhere.
address parts of PR toolchain/14896. This header file is nonstandard
(and doesn't even exist in gcc 3.0); an out-of-the-box gcc build also
doesn't provide the missing functions. So just drop the .h completely.
apply gcc original rev. 1.59:
> * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
> sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
> const0_rtx.
the patch I posted to tech-toolchain@netbsd.org as a workaround for the
GOT bug whereby the callee-saved register %a5 can be trashed in certain
optimised -fPIC functions.
This may yet need to be fixed a different way, pending input from
Andreas Schwab on his change in revison 1.33 of this file in the
FSF source...
In the meantime, I've built and installed several NetBSD shared libraries
(including libc) with my change and found no problems.
of this file in the master FSF sources; I obviously disagree
with the change, since it was apparently made to appease one
particular OS, even though previous binutils releases had been
made with ENTRY=__start, and have brought it up on
binutils@sources.redhat.com).
the target "native toolchain" if BOOTSTRAP_NEW_TOOLCHAIN is set.
This is important if you don't have any userland at all, and you're
trying to make one from which you can run toolchain2netbsd.
aligned. Corresponds to part of rev 1.21 of this file in the
master FSF sources.
Thanks to Michael Rauch <mrauch@netbsd.org> for fishing out the patch.
is in their revision 1.186, from schwab@suse.de, and said:
Don't call reg_used_between_p if the insn from BL2 is after
the insn from BL.
This fixes a cc1 SEGV on sys/dev/scsipi/ch.c rev 1.48 under -O2 or -Os,
seen on m68k and vax.
* move the code that supplies the integer and FP registers into
separate functions, rather than duplicating the code for the
ptrace and core file cases.
* Use supply_register() rather than just copying directly into
the register array and calling registers_fetched(). This way,
only the registers actually supplied are marked as valid within
the debugger.
* Add support for SSE/SSE2 registers via the PT_{GET,SET}XMMREGS
ptrace(2) request.
(Blocked on the FSF assignment clerk for feeding this back to
the master GDB sources.)
the 4.17 NetBSD support from our tree. Original port by Chris Sekiya, with
minimal tweaks and cleanups by me (mainly: build bi-endian by default, add
NetBSD kcore support back).
for files named .cc or .C. _eh gets generated into a .c file so we need
explicit rules for it's targets (.o .po and .so) to compile it correctly.
Without this exceptions just plain don't work. Nothing ever gets caught.
and place it in i386nbsd-tdep.c (new file).
- Move solib.o from TDEPFILES to NATDEPFILES (solib.c requires target
headers, namely <link_elf.h>).
Fixes build of cross-gdb pointed at i386--netbsd target.
...And while we're at it, add a profiled libgcc too.
Use the "generate .c files and let <bsd.lib.mk> sort it out" method
for compiling these libraries. Only one real divergence (-fexceptions)
existed, but exceptions are turned on for C++ code by default in gcc
2.95.3, so this option was redundant anyway.
dist .y and .c files reversed.
1. Move the .y.c and other assorted implicit rule overrides out of Makefile.inc
and into local Makefile's. The system Makefile (bsd.sys.mk) sets up .l.c and
.y.c rules so unless these come after all inclusions they just get ignored.
2. Add @true as the command for any of the rule overrides. Otherwise make
still bails complaining about not knowing how to build the requisite .c or
.h file.
This obviously wasn't tested before as it couldn't have worked as-is.
From Rafal's commit for mipseb (which applies here too):
WARNING: Binutils 2.11.2 (maybe earlier) changed the MIPS ABI, so any
shared libs built by this toolchain WILL NOT WORK without either a whack
to BFD to fix that or a patch to ld_elf.so to work around it. I need to
chase the binutils folks on this issue still.
libraries that have their dependencies recorded via NEEDED/RPATH so
that the location of the dependent libraries doesn't have to be supplied.
This closes bin/14583 by myself.
OK'd by Todd Vierling <tv@netbsd.org>
The Postfix SMTP server maintains a record of SMTP conversations
for debugging purposes. Depending on local configuration details
this record is mailed to the postmaster whenever an SMTP session
terminates with errors.
During code maintenance, a stupid error was introduced into the
code due to which the SMTP session log could grow to an unreasonable
size. This stupid error made Postfix vulnerable to a memory
exhaustion attack.
* Rewrite src/tools Make logic to work like the rest of the tree wrt
"dependall" and "install". The old "make build" hack is gone.
* Remove the MKTOOLS logic. This was linked to the "make build" hack,
and was only needed because TOOLDIR originally had no writable default.
* Redo the GNU configure/make logic to make it fit reasonably in a
BSD make wrapper. Use new ${.ALLTARGETS} variable to scan for
targets in $(srcdir), and mark them with .MADE: to prevent rebuilding.
* Only build cross tools in src/tools; remove some messy logic in
src/usr.* and src/gnu/usr.* that would do target filename rewriting
(improves consistency and readability).
* Add the ability to build cross gdb at tool build time by setting
MKCROSSGDB (default no) to "yes" in mk.conf.
* Add src/tools/groff and set up paths to work with this cross groff.
left unimplemented, and postfix daemon could become an open relay for
IPv6 connectivity. it seems that we need to torture-test IPv6 patch outside
of the tree more.
From moley@wide.ad.jp
derived from the BFD-using mdsetimage(8).
TODO:
* Use loadfile(), rather than home-grown ELF parsing code (requires
some changes to loadfile()).
* Support a.out like the gwr's dbsym(8) (this comes for free when
we switch to loadfile()).
changes to configuration stuff to (a) recognize `mipseb', and (b) build a
BE-default GCC on mipseb. gprof and gdb still not done.
WARNING: Binutils 2.11.2 (maybe earlier) changed the MIPS ABI, so any
shared libs built by this toolchain WILL NOT WORK without either a whack
to BFD to fix that or a patch to ld_elf.so to work around it. I need to
chase the binutils folks on this issue still.
That said, the new toolchain seems to work quite well once the ABI change
is worked around/fixed -- I'm committing from a machine running a user-
land built with the new compiler.
a 26-bit target), split R15 into PC and CPSR. Similarly, when storing
registers, copy CPSR back into R15 if CPSR indicates a 26-bit mode.
This makes single-stepping work correctly on arm26.
Also, when fetching registers, set arm_apcs_32 based on the mode the target's
in. This removes the need to kludge it manually. The variable should really
be lost entirely, and arm-tdep.c should look at the mode bits in CPSR, but
the ARM Linux target is horribly broken in this area, and will either need
fixing or working around.
host that's doing the filing (with a suitable comment for non-usual
cases), as suggested by Don Yuniskis in PR 14217 and lukem on tech-pkg.
Also closes PR's 13938, 14104.
support to GDB ARM targets in general, and make corresponding changes to
NetBSD-specific code.
The first half of this has already been send to gdb-patches by Richard.
The second half is irrelevant to them since they don't yet have NetBSD/arm
support in their tree yet.
1: Don't include arm-convert.o. arm-convert.s contains only comments, and our
build procedure can't cope with .s files.
2: Add "check_format" and "core_sniffer" entries to netbsd_core_fns, the same
as in i386nbsd_nat.c.
The first of these will need toolchain2netbsd to be re-run. While these
changes let GDB compile, I haven't tried running it on an ARM ELF system yet.
variable TRUE defined in our makefile system.
This prevents "make includes" from breaking with older bsd.subdir.mk, and is
more consistent with the uses of "true" in the rest of the tree.
build in the middle and restarting on another platform (requiring atomic
host tool builds), and keep parallelism, the ".lo" rules can't be used
at all. Instead, compile all host .c files directly into executables.
installation into /usr/share/ldscripts at the moment, as the scripts will
no longer be shareable on all targets. This will be tweaked at a later
date to generate "cross style" scripts for all targets (native ones are
compiled into the ld binary) so that they will indeed be shareable.
Should fix PR bin/14114, pkg/14122, and related issues.
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).
Improved by comments from enami and christos -- thanks!
Heimdal/krb4/KAME changes already fed back, rest to follow.
Inspired by, but not not based on, OpenBSD.
A security hole exists in uucp(1), uux(1) and uuxqt(1) that may allow
an attacker on the local machine to run arbitrary commands with
root privileges.
Fix:
Pay more attention to commandline parsing of long options.
Patch from jbj@redhat.com via millert@.