Age | Commit message (Collapse) | Author | Files | Lines |
|
This _isr_vec_count=1 is prevalent in MIPS Open FGPA examples.
Looks like forcing _isr_vec_007 in to the link was a mistake
and we always intended to only include the top-level _isr_vec
symbol.
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
The compiler driver positions the linker script at the end of the linker
command-line, after crtend.o. As a result, any INPUT objects and archive
GROUPs introduced by the linker script end up after crtend.o. This messes up
the end-of-frame marker provided by crtend.o
This has always been a problem, but a recent binutils update to clean-up
redundant NULL markers in .eh_frame exposes it as a execution failure in
exception-handling tests. This patch re-orders .eh_frame in all linker
scripts so that the one from crtend.o is placed last.
An alternative approach would be to fix the compiler driver to put
the linker script before the ENDFILE spec.
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
Add .eh_frame_hdr and .gnu_extab to linker scripts for compactEH
Fix orphaned .gcc_except_table sections in uhi32.ld.
Fix orphaned .gcc_except_table sections in mti32.ld.
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
srec2hex.pl is a PERL script file which converts S-record file
to a MIPS HEX file, which can be useful for some simulation
environments.
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
Make using MIPS HAL component easier by including `mipshal.mk`
into source Makefile.
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
Implement abstract interface for MIPS, including unified hosting
interface (UHI).
Signed-off-by: Jovan Dmitrović <jovan.dmitrovic@htecgroup.com>
|
|
* glue.h (print): Provide prototype.
* kill.c: Prototype _exit with noreturn attribute.
* mips/cfe_mem.c (memtop): Change to a pointer type.
(__libcfe_meminit): Add casts to avoid compilation
warnings/errors.
* mips/cma101.c: Prototype __cpu_timer_poll and __cpu_flush.
(convertbcd): Update K&R-style function declaration.
(time): Likewise.
* mips/nullmon.c (get_mem_info): Likewise.
* mips/syscalls.c: Declare struct s_mem and prototype get_mem_info.
(sbrk): Update K&R-style function declaration. Add casts to avoid
compilation warnings/errors.
* mips/test.c: Prototype outbyte and print. Fix return type of main.
* print.c (print): Make ptr argument const char*.
* putnum.c: Remove print prototype, which is now in glue.h.
* write.c: Remove outbyte prototype, which is now in glue.h.
Co-authored-by: Mike Frysinger <vapier@gentoo.org>
|
|
Move the minor mips-specific logic to a dedicated file & namespace
them so we can merge its configure logic up a level.
|
|
The current libgloss multilib logic is almost exactly the same as the
config/multi.m4, and the differences should be minor, so switch over
to that to delete custom logic on ourside.
The insertions here look larger and that's because none of the scripts
were declaring --enable-multilib explicitly even though they checked the
flag and changed behavior.
|
|
Use standard AC_MSG_WARN macro in the top-level configure, and delete
the message from all the subdirs. There's no need to issue this more
than once per libgloss build.
|
|
The newlib & libgloss dirs are already generated using autoconf-2.69.
To avoid merging new code and/or accidental regeneration using diff
versions, leverage config/override.m4 to pin to 2.69 exactly. This
matches what gcc/binutils/gdb are already doing.
The README file already says to use autoconf-2.69.
To accomplish this, it's just as simple as adding -I flags to the
top-level config/ dir when running aclocal. This is because the
override.m4 file overrides AC_INIT to first require the specific
autoconf version before calling the real AC_INIT.
|
|
In order to transition to automake, we have to use hardcoded paths in
the AC_CONFIG_AUX_DIR macro call (since automake evaluates the path
itself, and doesn't expand vars), so simplify all the calls here.
|
|
Regenerate the files using automake-1.15 & autoconf-2.69 to match the
binutils/gdb/gcc projects. Ran:
libgloss $ find -name configure.ac -printf '%h\n' | while read d; do
(cd $d; export WANT_AUTOCONF=2.69 WANT_AUTOMAKE=1.15;
aclocal-1.15 -I.. && autoconf-2.69); done
|
|
The .in name has been deprecated for a long time in favor of .ac.
|
|
Left-over part of commit 84b2a020daa17d8ee5c9ec979c3d56f95e69573b
The _end marker must be aligned to 4-bytes to ensure that the last
element written does not reach beyond the address of _end. This is
also necessary as the termination condition is an equality test
instead of an ordered test so (_end - _fbss) must be a multiple of
4-bytes. The alignment is already correct for mti*.ld files, fix
it for all remaining MIPS scripts that don't already align to at
least 4.
|
|
The _fdata symbol in MIPS linker scripts is aligned to a 16-byte
boundary. The ALIGN function does not implicitly update current
location counter. If sections positioned after the assignment
do not have the same natural alignment as the ALIGN function then
the start of the section group will not coincide with the value
of the symbol.
Given the linker command sequence:
symbol = ALIGN (NN);
(.section*)
where the idiom implies a desire to mark the beginning of .section
with symbol, there must be an assignment to the location counter
between the assignment to symbol and the .section pattern.
libgloss/
* mips/array.ld: Update the location counter to match _fdata.
* mips/cfe.ld: Likewise.
* mips/ddb-kseg0.ld: Likewise.
* mips/ddb.ld: Likewise.
* mips/dve.ld: Likewise.
* mips/idt.ld: Likewise.
* mips/idt32.ld: Likewise.
* mips/idt64.ld: Likewise.
* mips/idtecoff.ld: Likewise.
* mips/jmr3904app-java.ld: Likewise.
* mips/jmr3904app.ld: Likewise.
* mips/jmr3904dram-java.ld: Likewise.
* mips/jmr3904dram.ld: Likewise.
* mips/lsi.ld: Likewise.
* mips/mti32.ld: Likewise.
* mips/mti64.ld: Likewise.
* mips/mti64_64.ld: Likewise.
* mips/mti64_n32.ld: Likewise.
* mips/nullmon.ld: Likewise.
* mips/pmon.ld: Likewise.
* mips/sde32.ld: Likewise.
* mips/sde64.ld: Likewise.
|
|
The compiler driver positions the linker script at the end of the linker
command-line, after crtend.o. As a result, any INPUT objects and archive
GROUPs introduced by the linker script are placed after crtend.o and the
end-of-frame marker provided by crtend.o ends up in between .eh_frames
instead of being at the end.
This has always been a problem, but a binutils update to clean-up
redundant NULL markers in .eh_frame exposes it as a execution failure in
exception-handling tests. This patch re-orders .eh_frames in all
MIPS linker scripts so that the one from crtend.o is always placed last.
libgloss/
* mips/array.ld: Re-order to place .eh_frame from crtend.o
after all other .eh_frame sections.
* mips/cfe.ld: Likewise.
* mips/ddb-kseg0.ld: Likewise.
* mips/ddb.ld: Likewise.
* mips/dve.ld: Likewise.
* mips/idt.ld: Likewise.
* mips/idt32.ld: Likewise.
* mips/idt64.ld: Likewise.
* mips/jmr3904app.ld: Likewise.
* mips/lsi.ld: Likewise.
* mips/mti32.ld: Likewise.
* mips/mti64.ld: Likewise.
* mips/mti64_64.ld: Likewise.
* mips/mti64_n32.ld: Likewise.
* mips/nullmon.ld: Likewise.
* mips/pmon.ld: Likewise.
* mips/sde32.ld: Likewise.
* mips/sde64.ld: Likewise.
|
|
Remove FPU availability check, just use the pre-processor flags
to indicicate what the user wanted.
* mips/abiflags.S: New file.
* mips/regs.S (SR_MSA): Define macro.
* mips/mti32.ld: Place .MIPS.abiflags and wrap in marker symbols.
* mips/mti64.ld: Likewise.
* mips/mti64_64.ld: Likewise.
* mips/mti64_n32.ld: Likewise.
|
|
* mips/crt0.S: Remove .set noreorder throughout.
(zerobss): Open code the bltu macro instruction so that the
zero-loop does not have a NOP in the branch delay slot.
|
|
* mips/cfe_api.h: Include stdint.h.
|
|
* mips/Makefile.in (install): Add mkdir, fix install command.
|
|
* mips/idtmon.S (unlink, lseek, stat): Add new functions.
|
|
* mips/cfe_api.h (int64_t): Remove define.
(uint64_t): Remove define.
(intptr_t): Remove define.
(uintptr_t): Remove define.
(sys/types.h): Remove include.
(_ansi.h): Remove include.
|
|
* mips/configure.in: Add new linker scripts to script list.
* mips/configure: Regenerate.
* mips/mti32.ld: New.
* mips/mti64.ld: New.
* mips/mti64_n32.ld: New.
* mips/mti64_64.ld: New.
* mips/sde32.ld: New.
* mips/sde64.ld: New.
|
|
comment.
|
|
comment.
|
|
* libm/machine/spu/configure: Regenerate with autoconf 2.61.
* libc/sys/configure: Regenerate with autoconf 2.61.
* libc/machine/configure: Regenerate with autoconf 2.61.
[libgloss]
* hp74x/configure: Regenerate with autoconf 2.61.
* fr30/configure: Regenerate with autoconf 2.61.
* mips/configure: Regenerate with autoconf 2.61.
* xstormy16/configure: Regenerate with autoconf 2.61.
* rs6000/configure: Regenerate with autoconf 2.61.
* d30v/configure: Regenerate with autoconf 2.61.
* i386/configure: Regenerate with autoconf 2.61.
* configure: Regenerate with autoconf 2.61.
* wince/configure: Regenerate with autoconf 2.61.
* pa/configure: Regenerate with autoconf 2.61.
* m32r/configure: Regenerate with autoconf 2.61.
* mn10200/configure: Regenerate with autoconf 2.61.
* iq2000/configure: Regenerate with autoconf 2.61.
* cris/configure: Regenerate with autoconf 2.61.
* m68k/configure: Regenerate with autoconf 2.61.
* spu/configure: Regenerate with autoconf 2.61.
* m32c/configure: Regenerate with autoconf 2.61.
* mn10300/configure: Regenerate with autoconf 2.61.
* i960/configure: Regenerate with autoconf 2.61.
* arm/configure: Regenerate with autoconf 2.61.
* libnosys/configure: Regenerate with autoconf 2.61.
* m68hc11/configure: Regenerate with autoconf 2.61.
* bfin/configure: Regenerate with autoconf 2.61.
* crx/configure: Regenerate with autoconf 2.61.
* mt/configure: Regenerate with autoconf 2.61.
* sparc/configure: Regenerate with autoconf 2.61.
* sparc/libsys/configure: Regenerate with autoconf 2.61.
* mcore/configure: Regenerate with autoconf 2.61.
* mep/configure: Regenerate with autoconf 2.61.
* frv/configure: Regenerate with autoconf 2.61.
* doc/configure: Regenerate with autoconf 2.61.
|
|
* mips/crt0.S: Fix preprocessor statements from previous patch
to be ANSI.
|
|
Nigel Stephens <nigel@mips.com>
* mips/crt0.S (_start): Use all available float registers. Don't touch
SR_PE on post-mips2 CPUs, it means soft reset there.
|
|
* mips/Makefile.in: Add INCLUDES to local compile rules.
|
|
|
|
* mips/Makefile.in: Add rule for cygmon.o and pass the -mno-mips16
option since it uses the syscall instruction.
|
|
* mips/idt.ld, mips/idt32.ld, mips/idt64.ld, mips/nullmon.ld,
mips/pmon.ld: Keep special sections generated by mips gcc.
|
|
* mips/configure.in: Change mipsisa64-*-* to
mipsisa64*-*-* to catch minor variations like
mipsisa64sb1.
|
|
* Makefile.in: Pass some additional flags in FLAGS_TO_PASS.
* configure.in: Add additional flags when creating Makefile.
* configure: Regenerated.
* arm/configure
* arm/configure.in: Set with_multisubdir when creating Makefile.
* cris/configure.in: Ditto.
* d30v/configure.in: Ditto.
* frv/configure.in: Ditto.
* i386/configure.in: Ditto.
* iq2000/configure.in: Ditto.
* libnosys/configure.in: Ditto.
* m32c/configure.in: Ditto.
* m32r/configure.in: Ditto.
* m68hc11/configure.in: Ditto.
* m68k/configure.in: Ditto.
* mcore/configure.in: Ditto.
* mips/configure.in: Ditto.
* mn10200/configure.in: Ditto.
* mn10300/configure.in: Ditto.
* mt/configure.in: Ditto.
* pa/configure.in: Ditto.
* rs6000/configure.in: Ditto.
* sparc/configure.in: Ditto.
* cris/configure: Regenerated.
* d30v/configure: Ditto.
* frv/configure: Ditto.
* i386/configure: Ditto.
* iq2000/configure: Ditto.
* libnosys/configure: Ditto.
* m32c/configure: Ditto.
* m32r/configure: Ditto.
* m68hc11/configure: Ditto.
* m68k/configure: Ditto.
* mcore/configure: Ditto.
* mips/configure: Ditto.
* mn10200/configure: Ditto.
* mn10300/configure: Ditto.
* mt/configure: Ditto.
* pa/configure: Ditto.
* rs6000/configure: Ditto.
* sparc/configure: Ditto.
|
|
* configure.in: Modified to support autoconf 2.59.
* */configure.in: Ditto.
* configure: Regenerated.
* */configure: Ditto.
* wince/aclocal.m4: Ditto.
* acinclude.m4: New file.
* aclocal.m4: Ditto.
* arm/aclocal.m4: Ditto.
* cris/aclocal.m4: Ditto.
* crx/aclocal.m4: Ditto.
* d30v/aclocal.m4: Ditto.
* fr30/aclocal.m4: Ditto.
* frv/aclocal.m4: Ditto.
* hp74x/aclocal.m4: Ditto.
* i386/aclocal.m4: Ditto.
* i960/aclocal.m4: Ditto.
* iq2000/aclocal.m4: Ditto.
* libnosys/aclocal.m4: Ditto.
* m32c/aclocal.m4: Ditto.
* m32r/aclocal.m4: Ditto.
* m68hc11/aclocal.m4: Ditto.
* m68k/aclocal.m4: Ditto.
* mcore/aclocal.m4: Ditto.
* mips/aclocal.m4: Ditto.
* mn10200/aclocal.m4: Ditto.
* mn10300/aclocal.m4: Ditto.
* mt/aclocal.m4: Ditto.
* pa/aclocal.m4: Ditto.
* rs6000/aclocal.m4: Ditto.
* sparc/aclocal.m4: Ditto.
* sparc/libsys/aclocal.m4: Ditto.
* xstormy16/aclocal.m4: Ditto.
|
|
* mips/array.ld, mips/cfe.ld, mips/ddb-kseg0.ld, mips/ddb.ld,
mips/dve.ld, mips/idt.ld, mips/idt32.ld, mips/idt64.ld,
mips/idtecoff.ld, mips/jmr3904app-java.ld, mips/jmr3904app.ld,
jmr3904dram-java.ld, mips/jmr3904dram.ld, mips/lsi.ld, mips/nullmon.ld,
mips/pmon.ld: Add support for .bss.* sections.
|
|
* mips/array.ld, mips/cfe.ld, mips/ddb-kseg0.ld, mips/ddb.ld,
mips/dve.ld, mips/idt.ld, mips/idt32.ld, mips/idt64.ld,
mips/idtecoff.ld, mips/jmr3904app-java.ld, mips/jmr3904app.ld,
jmr3904dram-java.ld, mips/jmr3904dram.ld, mips/lsi.ld, mips/nullmon.ld,
mips/pmon.ld: Change x* to x.* in existing linkonce lines. Add
support for .gnu.linkonce.b.*.
|
|
* mips/array.ld (.sdata): Include .gnu.linkonce.s.*, not
.gnu.linkonce.s*.
(.sbss): Include .sbss.* and .gnu.linkonce.sb.*.
* mips/cfe.ld, mips/ddb-kseg0.ld, mips/ddb.ld, mips/dve.ld,
* mips/idt32.ld, mips/idt64.ld, mips/idtecoff.ld, mips/idt.ld,
* mips/jmr3904app-java.ld, mips/jmr3904app.ld,
* mips/jmr3904dram-java.ld, mips/jmr3904dram.ld,
* mips/lsi.ld, mips/nullmon.ld, mips/pmon.ld: As for mips/array.ld.
|
|
* m68hc11/sim-valid-m68hc12.ld, mcore/elf-cmb.ld, mips/cfe.ld,
* mips/ddb-kseg0.ld, mips/ddb.ld, mips/dve.ld, mips/idt.ld,
* mips/idt32.ld, mips/idt64.ld, mips/jmr3904app-java.ld,
* mips/jmr3904app.ld, mips/jmr3904dram-java.ld, mips/jmr3904dram.ld,
* mips/nullmon.ld, mips/pmon.ld, mn10200/eval.ld, mn10200/sim.ld,
* mn10300/asb2303.ld, mn10300/asb2305.ld, mn10300/eval.ld,
* mn10300/sim.ld, rs6000/ads.ld, rs6000/mbx.ld, rs6000/yellowknife.ld,
* sh/sh1lcevb.ld, sh/sh2lcevb.ld, sh/sh3bb.ld, sh/sh3lcevb.ld,
* sparc/elfsim.ld, sparc/ex930.ld, sparc/ex931.ld, sparc/ex934.ld,
* sparc/sparc86x.ld, xstormy16/eva_app.ld, xstormy16/eva_stub.ld,
* xstormy16/sim_high.ld, xstormy16/sim_rom.ld: Add .debug_ranges
section.
|
|
* mips/regs.S: Sign extend constants for mips64 and unify
address handling.
|
|
* mips/idt64.ld, mips/idtecoff.ld, mips/idt.ld,
* mips/jmr3904app-java.ld, mips/jmr3904app.ld,
* mips/jmr3904dram-java.ld, mips/jmr3904dram.ld, mips/lsi.ld,
* mips/nullmon.ld, mips/pmon.ld: Keep .init and .fini.
|
|
* Makefile.in: Support $(DESTDIR).
* arm/Makefile.in: Ditto.
* d30v/Makefile.in: Ditto.
* doc/Makefile.in: Ditto.
* fr30/Makefile.in: Ditto.
* frv/Makefile.in: Ditto.
* hp74x/Makefile.in: Ditto.
* i386/Makefile.in: Ditto.
* i960/Makefile.in: Ditto.
* iq2000/Makefile.in: Ditto.
* libnosys/Makefile.in: Ditto.
* m32r/Makefile.in: Ditto.
* m68hc11/Makefile.in: Ditto.
* m68k/Makefile.in: Ditto.
* mcore/Makefile.in: Ditto.
* mips/Makefile.in: Ditto.
* mn10200/Makefile.in: Ditto.
* mn10300/Makefile.in: Ditto.
* pa/Makefile.in: Ditto.
* rs6000/Makefile.in: Ditto.
* sparc/Makefile.in: Ditto.
* sparc/libsys/Makefile.in: Ditto.
* xstormy16/Makefile.in: Ditto.
|
|
* mips/dve.ld, mips/idt32.ld, mips/idt64.ld, mips/idt.ld
* mips/jmr3904app.ld, mips/lsi.ld, mips/nullmon.ld, mips/pmon.ld
(.eh_frame_hdr, .eh_frame, .gcc_except_table, .jcr): New sections.
|
|
* mips/regs.S (C0_COUNT): Fix comment that kept this from being
defined.
* mips/vr4300.S: Use C0_COUNT as appropriate instead of hardcoding $9.
* mips/vr5xxx.S: Likewise.
|
|
* mips/configure.in: Add mipsisa64-*-* to target support.
* mips/configure: Regenerate.
* frv/crt0.S: Fix comment.
|
|
* mips/crt0_cfe.S: New file.
* mips/cfe_mem.c: New file.
* mips/cfe_prestart.S: Remove.
* mips/cfe.ld: Adjust to use crt0_cfe.o as the startup file, and
and use _start as the entry point. Align BSS to 32-byte boundary.
* mips/cfe.c: Reimplement to fit on top of a crt0_cfe.o file.
* mips/cfe_api.h (__libcfe_stack_size, __libcfe_mem_limit)
(__libcfe_meminit, __libcfe_stack_top): New prototypes.
* mips/Makefile.in (CFEOBJS): Replace cfe_prestart.o with cfe_mem.o.
(cfe.o, cfe_api.o, cfe_mem.o, crt0_cfe.o): New targets.
* mips/configure.in: Build and install crt0_cfe.o when CFE support
is built.
* mips/configure: Regenerate.
|
|
* mips/crt0.S: Remove stackbase variable set.
|
|
|