Commit Graph

45 Commits

Author SHA1 Message Date
Alexey Lapshin 42fc2fa37c libgloss: add Xtensa port
Supported esp32 and esp32s2 boards:
https://github.com/espressif/esp-toolchain-docs/blob/main/gcc/build-and-run-native-app.md
2023-08-24 10:52:36 -04:00
Jeff Johnston 17ac400c11 Fix libgloss/newlib build to conditionally use top include dir
- conditionally use -idirafter option for arm
2023-02-22 14:53:05 -05:00
Mike Frysinger 4391d2aed3 libgloss: merge csky into top-level Makefile
Avoid a recursive make to speed things up a bit.
A csky-elf build shows installed objects & libs produce same code.
2023-01-13 17:24:17 -05:00
Mike Frysinger 3ef006f056 libgloss: merge nios2 into top-level Makefile
Avoid a recursive make to speed things up a bit.
A nios2-elf build shows installed objects & libs produce same code.
2023-01-12 05:26:57 -05:00
Mike Frysinger 0e1c0a02cf libgloss: merge d30v into top-level Makefile
Avoid a recursive make to speed things up a bit.
2023-01-11 08:42:19 -05:00
Mike Frysinger 5401db924f libgloss: merge arc into top-level Makefile
Avoid a recursive make to speed things up a bit.
2023-01-11 08:42:16 -05:00
Mike Frysinger 275b39e219 libgloss: merge arm into top-level Makefile
Avoid a recursive make to speed things up a bit.
2023-01-11 01:00:21 -05:00
Mike Frysinger 13a7b16ea3 libgloss: merge aarch64 into top-level Makefile
Avoid a recursive make to speed things up a bit.
2023-01-09 21:49:50 -05:00
Mike Frysinger 04411f45d0 libgloss: merge arm configure script up a level
Move the minor arm-specific logic to a dedicated variable so we can
merge its configure logic up a level.
2022-12-19 19:08:12 -05:00
Mike Frysinger 8893cd1006 libgloss: merge aarch64 configure script up a level
Move the minor aarch64-specific logic to a dedicated variable so we can
merge its configure logic up a level.
2022-12-19 19:08:12 -05:00
Palmer Dabbelt f59ff93046 libgloss: riscv: Convert to non-recursive automake
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>
2022-08-26 16:47:48 +02:00
Mike Frysinger 74885d4fbd libgloss: merge lm32 into top-level Makefile
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.
2022-03-01 20:29:07 -05:00
Mike Frysinger 89f643e87b libgloss: use m4_foreach_w to simplify the logic a bit
It's functionally the same, but the configure.ac code is simpler and
less boiler plate duplicated.
2022-03-01 20:29:07 -05:00
Mike Frysinger 7f674bb4da libgloss: switch to AM_PROG_AR
Now that we require Automake 1.15, we can use this macro rather than
set the tool up ourselves.  The current code doesn't properly search
for a prefixed ar tool as-is.
2022-02-25 23:07:20 -05:00
Mike Frysinger 15d7e0d417 libgloss: finish migration to AM_PROG_AS
When merging iq2000 up a level, it included a partial conversion to
AM_PROG_AS in the common directory.  Finish it for all directories
to kill off the custom LIB_AM_PROG_AS which we no longer need since
we require Automake 1.15 now.
2022-02-24 19:10:39 -05:00
Mike Frysinger 7edb25725d libgloss: switch to standard AC_PROG_CC
Now that we use AC_NO_EXECUTABLES, and we require a recent version of
autoconf, we don't need to define our own copies of these macros.  So
switch to the standard AC_PROG_CC.
2022-02-24 19:06:21 -05:00
Mike Frysinger 8d75828378 libgloss: merge sparc configure script up a level
Move the minor sparc-specific logic to a dedicated variable so we can
merge its configure logic up a level.
2022-02-23 19:44:10 -05:00
Mike Frysinger 4ed502ba02 libgloss: enable maintainer mode support
Use AM_MAINTAINER_MODE so devs have to opt-in to automatic rebuilds
of autotools.  This matches what newlib (and most every other GNU
toolchain package) does with automake.
2022-02-22 17:09:16 -05:00
Mike Frysinger 7a1c557b8e libgloss: merge mips configure script up a level
Move the minor mips-specific logic to a dedicated file & namespace
them so we can merge its configure logic up a level.
2022-02-17 20:36:41 -05:00
Mike Frysinger f9dc151186 libgloss: merge wince configure script up a level
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.
2022-02-17 20:35:32 -05:00
Mike Frysinger e0c0ad8268 libgloss: build with -nostdinc
We don't want libgloss building against C library headers that happened
to be installed with the toolchain, so add -nostdinc to the build.  We
still need access to the compiler internal headers, so probe those and
include them via -isystem.  This uses a similar probing style as glibc,
which has used it for over a decade, so it should be safe & stable.

This should prevent any latent bugs due to testing with a toolchain that
is fully configured & installed already.
2022-02-16 20:29:08 -05:00
Mike Frysinger 538a37be5b libgloss: merge mn10300 configure script up a level
Move the minor mn10300-specific logic to a dedicated file & namespace
them so we can merge its configure logic up a level.  part_specific_obj
wasn't used anywhere (looks like copy & paste left over from mips), so
drop it entirely.
2022-02-16 20:20:14 -05:00
Mike Frysinger 0c45c7ce67 libgloss: merge mn10200 configure script up a level
The mn10200-specific logic (setting up part_specific_obj) isn't used
by the build anywhere -- looks like copy & paste left overs from mips.
So punt that & merge the target_makefile_frag_path up to the top-level.
2022-02-16 20:16:05 -05:00
Mike Frysinger 9a5f78d80e libgloss: merge m68k configure script up a level
Move the minor m68k-specific logic to a dedicated file & namespace them
so we can merge its configure logic up a level.
2022-02-16 20:14:55 -05:00
Mike Frysinger 91019da446 libgloss: merge mcore configure script up a level
Move the minor mcore-specific logic to a dedicated file & namespace them
so we can merge its configure logic up a level.
2022-02-16 20:11:55 -05:00
Mike Frysinger e7f8999918 libgloss: merge moxie configure script up a level
Move the minor moxie-specific logic to a dedicated file & namespace them
so we can merge its configure logic up a level.
2022-02-16 20:10:48 -05:00
Mike Frysinger 5200f756cc libgloss: merge i386 configure script up a level
Move the minor i386-specific logic to a dedicated variable so we can
merge its configure logic up a level.
2022-02-16 20:08:55 -05:00
Mike Frysinger 5365a7deee libgloss: merge csky configure script up a level
Now that the csky-specific logic ($DO) has been deleted, we can fold
it up a level easily enough.
2022-02-11 06:19:01 -05:00
Mike Frysinger 66dfedc287 libgloss: merge bfin into top-level Makefile
Avoid a recursive make to speed things up a bit.
2022-02-11 06:14:55 -05:00
Mike Frysinger 62e580f01b libgloss: merge iq2000 into top-level Makefile
Avoid a recursive make to speed things up a bit.
2022-02-11 06:14:55 -05:00
Mike Frysinger f8aede7855 libgloss: merge libnosys into top-level Makefile
Avoid a recursive make to speed things up a bit.
2022-02-11 04:29:37 -05:00
Mike Frysinger 492e5fe8b0 libgloss: merge doc into top-level Makefile
Avoid a recursive make with this tiny subdir to speed things up a bit.
2022-02-09 20:01:40 -05:00
Mike Frysinger 7517551007 libgloss: convert top level to automake
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
2022-02-09 20:01:40 -05:00
Mike Frysinger 67c600b995 libgloss: restore multilib settings in subdir makefiles
Commit 754f8def0d ("libgloss: merge stub
arch configure scripts up a level") had an unintended side-effect: the
MULTI* variables in the Makefiles no longer get rewritten at configure
time in the subdirs.  Only the top-level Makefile still is.  This is
because the configure integration of multilib (both the way libgloss
did it manually and the way AM_ENABLE_MULTILIB does it) only rewrites
"Makefile".

We could try propagating the MULTI* variables from libgloss/Makefile
down via FLAGS_TO_PASS, but this runs into a limitation: the multilib
logic uses this variable to switch from libgloss/ to each multilib
libgloss/, and libgloss uses this variable to enter subdirectories.
The latter we want, but the former ends up overridding the Makefile
environment.  We could side-step that with some GNU Make directives,
but it feels like we're getting a bit too deep down the rabbit hole.

Instead, let's call config-ml.in ourselves for each subdir Makefile
that the top-level configure generates.  This restores the previous
behavior and should be less risky in general.

This logic should be unnecessary when/if we switch libgloss over to
a non-recursive Automake build (since all build+install settings are
in the single libgloss/Makefile), but it'll be a while before we can
land that rework, so let's fix this up now.
2022-02-04 19:33:29 -05:00
Mike Frysinger 8622002ffc libgloss: move to ../config/multi.m4 for multilib logic
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.
2022-02-01 23:07:11 -05:00
Mike Frysinger 30f244155b libgloss: merge subdirs that have unique makefile_frags up a level
Merge the subdir configure scripts up that only existed to set unique
values for their target/host makefile_frags.
2022-02-01 23:06:21 -05:00
Mike Frysinger d5a20f0b70 libgloss: merge epiphany & libnosys & or1k configure scripts up a level
These subdirs have unique configure scripts to do some compiler tests.
The checks should work for all targets, so hoist them up to the top
libgloss dir.  This should allow us to delete these subdir configure
scripts.

It means the top-level gains autoheader support, but that's fine.
It wasn't exporting any defines previously (i.e. -D into CPPFLAGS),
and all of the defines it now exports are only used by code in the
libnosys subdir which was expecting to have a config.h.
2022-02-01 21:53:22 -05:00
Mike Frysinger 43ab30fbd5 libgloss: merge stub iq2000 configure scripts up a level
This was supposed to be included in the previous commit.
2022-01-26 04:42:09 -05:00
Mike Frysinger 754f8def0d libgloss: merge stub arch configure scripts up a level
For about half the ports, we don't need a subdir configure script.
They're using the config/default.m[ht] rules, and they aren't doing
any unique configure tests, so they exist just to pass top-level
settings down to create the arch Makefile.  We can just as easily
do that from the top-level Mkaefile directly and skip configure.

Most of the remaining configure scripts could be migrated up to
the top-level too, but that would require care in each subdir.
So let's be lazy and put that off to another day.
2022-01-26 04:32:54 -05:00
Mike Frysinger 6d8c4e4ba1 libgloss: define default target_makefile_frag in top-level
A bunch of subdirs want this, so make it available in the common
dir to ease future merges.  It isn't used directly in libgloss so
it should be harmless as-is.
2022-01-25 21:56:47 -05:00
Mike Frysinger 7c02fc3075 libgloss: clean up redundant shared lib warnings
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.
2022-01-17 04:30:37 -05:00
Mike Frysinger a100e80fc9 require autoconf-2.69 exactly
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.
2022-01-14 15:24:33 -05:00
Mike Frysinger 7f8fa1de4f libgloss: hardcode AC_CONFIG_AUX_DIR path
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.
2022-01-10 19:50:35 -05:00
Mike Frysinger 873da400e0 libgloss: regenerate aclocal.m4 & configure w/newer versions
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
2021-11-06 14:14:50 -04:00
Mike Frysinger 920617998e libgloss/newlib: rename configure.in to configure.ac
The .in name has been deprecated for a long time in favor of .ac.
2021-09-13 10:14:37 -04:00