Andrew Waterman
74b290f685
binutils: upgrade to version 2.25
11 years ago
Andrew Waterman
afba05c2b8
binutils: don't discard eh_frames during ld -r
We don't have enough information to decide whether or not to discard them
until relative addresses are worked out, i.e. at the final link.
11 years ago
Andrew Waterman
7054975424
binutils, gcc: use more standard DWARF settings
11 years ago
Andrew Waterman
8e3e621820
binutils: fix off-by-one error in relaxation code
11 years ago
Andrew Waterman
dec714aeb7
binutils: fill in some dynamic relocs statically
Later bfd passes may assume this has been done.
11 years ago
Andrew Waterman
218fd8a3ce
glibc: fix syscall cancellation wrappers
We were accidentally clobbering the cancellation mask with syscall arg 0.
11 years ago
Andrew Waterman
21509fe717
gcc: specialize atomics when old value not needed
11 years ago
Andrew Waterman
35e92b75ea
gcc: improve cost model
11 years ago
Andrew Waterman
17e2704a78
gcc, glibc: use "A" for inline asm AMO constrants
11 years ago
Andrew Waterman
d85d7a1c45
gcc: remove unused register constraint
11 years ago
Andrew Waterman
54ebdae379
binutils: rework jump pseudoisntruction
"jump" was renamed to "tail" (as in tail call) and may freely clobber a
t-register, as before. A new "jump" was added that requires a second
argument, which is the scratch register it may clobber.
"tail" should be used for tail calls; "jump" should be used for
intraprocedural jumps more than 1 MiB away.
11 years ago
Andrew Waterman
e03c7c96b4
gcc: correct depiction of stack frame
11 years ago
Andrew Waterman
9b1c88aa2e
gcc: simplify and improve cost model
11 years ago
Andrew Waterman
79c69d1f06
gcc: support LRA pass
It's turned off by default but can be enabled with -mlra. There are
surely lingering issues.
11 years ago
Andrew Waterman
09a7f0432d
Merge pull request #10 from darius-bluespec/rv32
Support for building RV32 tools
11 years ago
Darius Rad
e7fc9a4c65
Makefile.in: Allow specification of XLEN when building tools.
This allows building tools for RV64 (default) or RV32.
11 years ago
Darius Rad
0639850a38
gcc: Fix 64 bit multiply on RV32.
Use define_expand instead of define_insn_and_split for 64-bit
multiply on RV32. With define_insn_and_split, gcc would occasionally
overwrite a source register in the first instruction of a mulhu/mul
pair.
12 years ago
Darius Rad
f124ceb520
gcc, glibc, binutils: Complete missing configuration for building tools for RV32.
12 years ago
Andrew Waterman
7d382f9917
gcc: minor improvements to cost model
11 years ago
Colin Schmidt
2e325497c6
binutils: update insert_bits to work for wider instructions
11 years ago
Andrew Waterman
795c04ea67
binutils: set text start addresses more sensibly
Position-dependent executables are now linked at base address 0x800000.
Shared libraries and PIEs are now linked at base address 0.
11 years ago
Andrew Waterman
fb428cb3be
binutils: avoid needlessly setting DT_TEXTREL
11 years ago
Andrew Waterman
9b85cf4da6
binutils: keep .dynamic section out of text segment
This obviates writable text/executable data.
11 years ago
Andrew Waterman
84eaefc887
binutils, gcc: make DWARF sections read-only
Use PC-relative expressions to avoid dynamic relocs in PIC.
11 years ago
Andrew Waterman
4c4fbe7703
binutils, glibc: avoid DT_TEXTREL in ld.so
ld.so was using a non-PIC reloc to get the link-time address of _DYNAMIC,
which, while correct, causes the library to be flagged DT_TEXTREL. Avoid
this by leveraging the fact that the static linker has put the link-time
address of _DYNAMIC in the first GOT entry.
11 years ago
Andrew Waterman
068be3c3ff
gcc: support -march flag
Arguments like IMAFD or RV32I are supported.
11 years ago
Andrew Waterman
445854900f
gcc: add mul/div emulation routines to libgcc
11 years ago
Andrew Waterman
e7156bdadf
gcc: port libsanitizer
Thanks to Palmer Dabbelt for contributing this patch.
11 years ago
Colin Schmidt
a1f3d9a9ea
Special case 8 byte instruction validation to workaround undefined
behavior in C
11 years ago
Andrew Waterman
f2e140f288
newlib, glibc: fix memcpy bug
h/t Martin Maas
11 years ago
Andrew Waterman
880a0024a0
binutils: get rid of spurious L0^A labels in objdump
11 years ago
Andrew Waterman
c579bb47fc
glibc: make sure libpthread gets initialized
11 years ago
Andrew Waterman
b285eacb98
add script for running dejagnu on spike
11 years ago
Andrew Waterman
bfa0f69fc3
binutils: support code alignment to 256+ bytes
11 years ago
Andrew Waterman
51a2fa7ad7
gcc: remove broken peephole optimizers
These weren't really helping, and the FP ones were causing occasional ICEs.
12 years ago
Andrew Waterman
102693c8c0
gcc: build riscv64-unknown-linux-gnu-gfortran
12 years ago
Andrew Waterman
60907f441f
glibc: make fe{get|set}round globally visible
12 years ago
Palmer Dabbelt
a213829d02
Disable "-Werror" during binutils builds
Some shared binutils source code throws some harmless looking errors
with newer GCC versions. This patch stops failing the binutils build
whenever these errors show up.
Both Gentoo and LFS set this flag, so I think it's sane.
12 years ago
Andrew Waterman
8b2656e0d0
glibc: fix R_RISCV_64 dynamic reloc
It was effectively computing symbol + 2 * addend. Oops.
12 years ago
Andrew Waterman
3d6d4bd786
binutils: support code alignment in the linker
We over-emit NOPs in the assembler, then delete them in the linker to achieve
the required alignment. This allows alignment to work in spite of other
linker relaxations.
12 years ago
Andrew Waterman
85131ab7d3
binutils: fix (?) relaxation symbol adjustment
I think there were a few off-by-one errors. If so, they exist in other
backends, too, since relax_delete_bytes was cribbed from SH.
12 years ago
Andrew Waterman
41158f8ea6
binutils: speed up linker relaxation process
12 years ago
Andrew Waterman
e1cf36ae70
binutils: favor elfnn-riscv.c over elfxx-riscv.c
Since a lot of code is dependent on the word size, it's both simpler and
more efficient to put that code in elfnn-riscv.c. Only code that does not
depend on the word size remains in elfxx-riscv.c.
12 years ago
Andrew Waterman
b7520c17c1
binutils: merge elf{32/64}-riscv into elfnn-riscv
The latter is preprocessed to replace the string NN with 32 or 64 as needed.
12 years ago
Andrew Waterman
f2478158e2
binutils: clean up relaxation code a bit
12 years ago
Andrew Waterman
e138b8937c
gcc: use SLLI to implement tests like (x & 0xFFF)
12 years ago
Andrew Waterman
9df2db4c55
glibc: fix Mac OS build
Make sure to use a case-sensitive file system and a mount point with no
spaces!
12 years ago
Albert Ou
9340378286
binutils: accept CSR addresses as immediates
This permits arbitrary CSRs to be addressed without requiring additional
mappings in opcode/riscv-opc.h. For unnamed CSRs, the disassembler now
prints hexadecimal addresses instead of substituting "unknown".
12 years ago
Albert Ou
ccd6688aa6
glibc: eliminate historic __socket() wrapper
Match the generic syscall interface derived from <asm-generic/unistd.h>,
which assigns a separate syscall number to each socket operation rather
than multiplexing through socketcall(2).
12 years ago
Andrew Waterman
866f1e0b41
Merge pull request #6 from martinmaas/mathinline_h
Avoid 'multiple definition' errors
12 years ago