Synopsys ARCv3 ISA includes 32-bit ARC HS5x targets and
64-bit ARC HS6x targets. Both CPU families are placed
in "arc64" subdirectories as it done for GCC port.
Target name arc64 is used for historical reasons and
Synopsys ARCv3 baremetal toolchains contain multilib
configurations both for 32-bit and 64-bit families.
arc32 target name is reserved for 32-bit ARC HS5x
targets in case of non-multilib 32-bit builds.
Note that libgloss libraries for ARCv3 are compatible with
libgloss for ARCv1/2. Thus, Makefile.inc for libgloss uses
sources from libgloss/arc directory except crtX.S files.
Co-authored-by: Shahab Vahedi <list@vahedi.org>
Co-authored-by: Claudiu Zissulescu <claziss@gmail.com>
Co-authored-by: Bruno Mauricio <brunoasmauricio@gmail.com>
Co-authored-by: Luis Silva <luis.m.silva99@hotmail.com>
Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
Avoid a recursive make to speed things up a bit.
A cr16-elf build shows installed objects & libs produce same code.
The test targets were dropped as they didn't actually work -- there
is no test.o rule in here.
Avoid a recursive make to speed things up a bit. This change was
inspired by the recent similar patch for c6x:
https://sourceware.org/pipermail/newlib/2023/020869.html
While at it, fork crt0-minrt.S into a separate source file instead of
relying on a predefined macro to generate two different object files.
This improves clarity, simplifies the build rules, and would allow
further optimization in crt0-minrt.S to be implemented more cleanly.
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
Avoid a recursive make to speed things up a bit.
A ft32-elf build shows installed objects & libs produce same code.
Mention of ft32-elf-common.ld is dropped as it has never existed
in the tree, and has been an (ignored) error in the past.
Avoid a recursive make to speed things up a bit.
A fr30-elf build shows installed objects & libs produce same code.
A lot of code seems like it hasn't been migrated, but that's because
it's all disabled/unused (i.e. all the test & mon code). It looks
like a lot of copy & paste holdovers from the original port.
Avoid a recursive make to speed things up a bit.
A i386-elf build shows installed objects & libs produce same code other
than a rename from cygmon-gmon.o & cygmon-salib.o to i386_libcygmon_a-*.o
due to the use of custom CPPFLAGS in here.
This logic is copied from what's used in newlib today. This allows
subdirs to easily define per-directory flags & per-file flags without
having to setup unique automake rules for each one.
A bunch of ports have manual rules to generate disassembly, srec, and
binary files from test programs. Add top-level pattern rules so every
test program gets this for free, and we don't have to duplicate it in
every subdir.
This reverts commit 17ac400c11.
The build failures were due to incorrectly using $(INCLUDES) when
running $(AS). Let's roll this back and drop $(INCLUDES) from the
$(AS) invocations.
The libgloss port has been reaching back into newlib internals for a
single header whose contents have been frozen for almost a decade.
To break this backwards libgloss->newlib dependency, move the acle
header to the srcroot include/ so everyone can use the same copy.
PR 29515 points out our documentation builds are broken, let's just move
over to the new non-recursive builds.
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Avoid a recursive make to speed things up a bit.
This drops the header install logic because the lm32/ subdir doesn't
actually have any header files to install.
Move the minor wince-specific logic to a dedicated file & namespace
them so we can merge its configure logic up a level. The makefile
is a bit tricky, but maybe it still works.
This is used in a bunch of places, but nowhere is it ever set, and
nowhere can I find any documentation, nor can I find any other project
using it. So delete the flags to simplify.
The top level dir isn't doing anything interesting, just recursing into
subdirs. So this change isn't terribly exciting. But it sets us up for
doing more fun stuff in follow up commits.
[TODO] Check test targets