Age | Commit message (Collapse) | Author | Files | Lines |
|
Currently, the sim-config module will abort if alignment settings
haven't been specified by the port's configure.ac. This is a bit
weird when we've allowed SIM_AC_OPTION_ALIGNMENT to seem like it's
optional to use. Thus everyone invokes it.
There are 4 alignment settings, but really only 2 matters: strict
and nonstrict. The "mixed" setting is just the default ("unset"),
and "forced" isn't used directly by anyone (it's available as a
runtime option for some ports).
The m4 macro has 2 args: the "wire" settings (which represents the
hardwired port behavior), and the default settings (which are used
if nothing else is specified). If none are specified, then the
build won't work (see above as if SIM_AC_OPTION_ALIGNMENT wasn't
called). If default settings are provided, then that is used, but
we allow the user to override at runtime. Otherwise, the "wire"
settings are used and user runtime options to change are ignored.
Most ports specify a default, or set the "wire" to nonstrict. A
few set "wire" to strict, but it's not clear that's necessary as
it doesn't make the code behavior, by default, any different. It
might make things a little faster, but we should provide the user
the choice of the compromises to make: force a specific mode at
compile time for faster runtime, or allow the choice at runtime.
More likely it seems like an oversight when these ports were
initially created, and/or copied & pasted from existing ports.
With all that backstory, let's get to what this commit does.
First kill off the idea of a compile-time default alignment and
set it to nonstrict in the common code. For any ports that want
strict alignment by default, that code is moved to sim_open while
initializing the sim. That means WITH_DEFAULT_ALIGNMENT can be
completely removed.
Moving the default alignment to the runtime also allows removal
of setting the "wire" settings at configure time. Which allows
removing of all arguments to SIM_AC_OPTION_ALIGNMENT and moving
that call to common code.
The macro logic can be reworked to not pass WITH_ALIGNMENT as -D
CPPFLAG and instead move it to config.h.
All of these taken together mean we can hoist the macro up to the
top level and share it among all sims so behavior is consistent
among all the ports.
|
|
Move these options up to the common dir so we only test & export
them once across all ports. The AC_INIT macro does a lot of the
heavy lifting already which allows further simplification.
|
|
Move these options up to the common dir so we only test & export
them once across all ports.
The ppc code needs a little extra care with its trace settings as
it's not exactly the same API as the common code. The other knobs
are the same though.
|
|
Move the --sim-enable-environment option up to the common dir so we
only test & export it once across all ports.
|
|
Move the --sim-enable-assert option up to the common dir so we only
test & export it once across all ports.
|
|
Move the various platform tests up a level to avoid duplication
across the ports. When building multiple versions, this speeds
things up a bit.
For now we move the obvious stuff up a level, but we don't turn
own the config.h entirely just yet -- we still have some tests
related to libraries that need consideration.
|
|
Separate the name of the igen program from the options used to run it.
This allows us to avoid duplicating ../igen/igen in Makefiles and reuse
the existing setting in the common Makefile. This also allows us to
easily harmonize the use of EXEEXT between igen/local.mk and the common
makefiles when cross-compiling for e.g. Windows.
|
|
Now that gnulib provides a wrapper, assume it always exists.
|
|
The execv prototypes on Windows via mingw64 include extra const
markings on the argv/envp pointers than what POSIX specifies.
Cast them to void* as a hack to get it working on all platforms.
|
|
Now that all ports have migrated to the new framework, drop support
for the old sim_state_base layout.
|
|
Currently all ports have to declare sim_state themselves in their
sim-main.h and then embed the common sim_state_base & sim_cpu in it.
This dynamic makes it impossible to share common object code among
multiple ports because the core data structure is always different.
Let's invert this relationship: common code declares sim_state, and
if the port actually needs state on a per-instance basis, it can use
the new arch_data field for it. Most ports don't actually use it,
so they don't need to declare anything at all.
This is the first in a series of changes: it adds a define to select
between the old & new layouts, then converts all the ports that don't
need custom state over to the new layout.
|
|
The defs.h header will take care of including the various config.h
headers. For now, it's just config.h, but we'll add more when we
integrate gnulib in.
This header should be used instead of config.h, and should be the
first include in every .c file. We won't rely on the old behavior
where we expected files to include the port's sim-main.h which then
includes the common sim-basics.h which then includes config.h. We
have a ton of code that includes things before sim-main.h, and it
sometimes needs to be that way. Creating a dedicated header avoids
the ordering mess and implicit inclusion that shows up otherwise.
|
|
|
|
This is needed when building for a target whose ar & ranlib are
incompatible with the current build system. For example, building
for Windows on a Linux system.
Then manually import the automake rule for libigen.a, but tweak the
tool variables to use the FOR_BUILD variants.
|
|
I finally got the all-targets sim building with Clang, these are all the
instances where an ATTRIBUTE_PRINTF or ATTRIBUTE_NULL_PRINTF attribute
needed to be added to avoid errors like:
/home/simark/src/binutils-gdb/sim/aarch64/../common/sim-profile.c:464:19: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
vfprintf (fp, fmt, ap);
^~~
There are more fixes needed to get everything building, but adding these
attributes is trivial enough, so I send them all in a single patch.
Adding the format attributes introduces some format string errors when
building with GCC (because now format strings are checked), so
corresponding changes are needed to avoid breaking the build. Other
than simple format string specified changes, there is this one:
/home/simark/src/binutils-gdb/sim/aarch64/../common/hw-events.c: In function 'hw_event_queue_schedule':
/home/simark/src/binutils-gdb/sim/aarch64/../common/hw-events.c:95:15: error: too many arguments for format [-Werror=format-extra-args]
95 | NULL, dummy);
| ^~~~~
We can fix it and avoid using a dummy variable by simply calling
hw_event_queue_schedule_tracef instead of
hw_event_queue_schedule_vtracef.
sim/arm/ChangeLog:
* armdefs.h (ARMul_ConsolePrint): Use format attribute.
* wrapper.c (op_printf): Likewise.
sim/bfin/ChangeLog:
* interp.c (sim_open): Adjust format string specifier.
sim/common/ChangeLog:
* hw-events.h (hw_event_queue_schedule_tracef): Use format attribute.
(hw_event_queue_schedule_vtracef): Likewise.
* hw-tree.h (hw_tree_vparse): Likewise.
* sim-profile.c (profile_vprintf): Likewise.
* sim-trace.c (dis_printf): Likewise.
* sim-trace.h (trace_printf): Likewise.
(trace_vprintf): Likewise.
* sim-utils.h (sim_do_commandf): Likewise.
* hw-events.c (hw_event_queue_schedule): Use
hw_event_queue_schedule_tracef.
sim/rx/ChangeLog:
* trace.c (op_printf): Likewise.
sim/v850/ChangeLog:
* interp.c (sim_open): Adjust format string specifier.
Change-Id: I1445115ce57db15bb8e35dca93014555e7555794
|
|
While libiberty provides a definition for this for systems that lack
the function (e.g. Windows), it doesn't provide a prototype. So add
our own local copy in the one file that uses the func.
|
|
Force this on for all ports. We have a few common models that can
be used, so make them generally available. If the port doesn't use
any hardware (the default), then behavior is unchanged.
|
|
This updates the sim so that it unconditionally uses sys/time.h. This
is in agreement with existing code, and a recent change to BFD.
I also think that sys/times.h is never needed by the sim, so this
patch removes the check and the one spot that was conditionally
including it.
sim/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* m4/sim_ac_common.m4 (SIM_AC_COMMON): Don't check for sys/time.h
or sys/times.h.
sim/aarch64/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/arm/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/avr/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/bfin/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/bpf/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/common/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* sim-utils.c: Update includes.
sim/cr16/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* simops.c: Update includes.
* configure, config.in: Rebuild.
sim/cris/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* rvdummy.c: Update includes.
* dv-rv.c: Update includes.
* configure, config.in: Rebuild.
sim/d10v/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/erc32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/example-synacor/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/frv/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/ft32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/h8300/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/iq2000/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/lm32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/m32c/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/m32r/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/m68hc11/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/mcore/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/microblaze/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/mips/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/mn10300/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/moxie/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/msp430/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/or1k/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/ppc/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* mon.c: Update includes.
* emul_unix.c: Update includes.
(do_unix_gettimeofday): Update condition.
sim/pru/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/riscv/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/rl78/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/rx/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
sim/sh/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* interp.c: Update includes.
* configure, config.in: Rebuild.
sim/v850/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure, config.in: Rebuild.
|
|
Some Makefiles in sim define INCLUDE but don't use it. This removes
these instances.
sim/bfin/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (INCLUDE): Remove.
sim/m68hc11/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (INCLUDE): Remove.
sim/mn10300/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (INCLUDE): Remove.
sim/v850/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (INCLUDE): Remove.
|
|
Some spots in the sim build used manual dependencies, and some spots
did a compilation by hand but did not use the automatic dependency
tracking code. This patch fixes these spots.
I didn't touch ppc, because it doesn't use the common Makefile code.
I also didn't touch objects that are for the build machine, because
automatic dependencies don't work for those.
sim/arm/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (armemu26.o, armemu32.o): Use COMPILE and
POSTCOMPILE.
sim/bpf/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (arch.o, cpu.o, sim-if.o, traps.o): Remove.
(mloop-le.o, mloop-be.o, decode-le.o, decode-be.o, sim-le.o)
(sim-be.o): Use COMPILE and POSTCOMPILE.
(SIM_EXTRA_DEPS): Add eng-le.h, eng-be.h.
sim/cr16/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (SIM_EXTRA_DEPS): New variable.
(simops.o): Remove.
sim/cris/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (sim-if.o, dv-cris.o, dv-rv.o, arch.o, traps.o)
(devices.o, crisv10f.o, mloopv10f.o, cpuv10.o, decodev10.o)
(modelv10.o, crisv32f.o, mloopv32f.o, cpuv32.o, decodev32.o)
(modelv32.o): Remove.
(SIM_EXTRA_DEPS): Add engv10.h.
sim/d10v/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (SIM_EXTRA_DEPS): New variable.
(simops.o): Remove.
sim/frv/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (arch.o, devices.o, frv.o, traps.o, pipeline.o)
(interrupts.o, memory.o, cache.o, options.o, reset.o)
(registers.o, profile.o, profile-fr400.o, profile-fr450.o)
(profile-fr500.o, profile-fr550.o, sim-if.o, mloop.o, cpu.o)
(decode.o, sem.o, model.o): Remove.
(SIM_EXTRA_DEPS): Add eng.h.
sim/iq2000/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (sim-if.o): Remove.
(arch.o): Use COMPILE and POSTCOMPILE.
(devices.o, iq2000.o, mloop.o, cpu.o, decode.o, sem.o, model.o):
Remove.
(SIM_EXTRA_DEPS): Add eng.h.
sim/lm32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (arch.o, traps.o, sim-if.o, lm32.o, mloop.o)
(cpu.o, decode.o, sem.o, model.o): Remove.
(SIM_EXTRA_DEPS): Add eng.h.
sim/m32r/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (sim-if.o, arch.o, traps.o, traps-linux.o)
(devices.o, m32r.o, mloop.o, cpu.o, decode.o, sem.o, model.o)
(m32rx.o, mloopx.o, cpux.o, decodex.o, semx.o, modelx.o)
(m32r2.o, mloop2.o, cpu2.o, decode2.o, sem2.o, model2.o): Remove.
(SIM_EXTRA_DEPS): Add eng.h, engx.h, eng2.h.
sim/m68hc11/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (interp.o): Remove.
sim/mips/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (interp.o, m16run.o, micromipsrun.o, multi-run.o):
Remove.
(SIM_EXTRA_DEPS): New variable.
sim/mn10300/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (interp.o): Remove.
(idecode.o op_utils.o semantics.o): Remove.
sim/or1k/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (mloop.o, arch.o, cpu.o, decode.o, sem.o)
(sem-switch.o, model.o): Remove.
sim/rl78/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (err.o, fpu.o, gdb-if.o, load.o, main.o, mem.o)
(reg.o, rl78.o): Remove.
sim/rx/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (err.o, fpu.o, gdb-if.o, load.o, main.o, mem.o)
(misc.o, reg.o, rx.o, syscalls.o, trace.o): Remove.
sim/sh/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (SIM_EXTRA_DEPS): New variable.
(interp.o): Remove.
sim/v850/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Makefile.in (interp.o, simops.o, semantics.o): Remove.
|
|
GDB has required GNU make for quite some time, and this patch applies
this approach to the sim as well. Requiring GNU make means that
automatic dependency tracking can be simple and reliable, and it also
makes other refactorings simpler.
sim/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* m4/sim_ac_common.m4 (SIM_AC_COMMON): Don't check for make.
sim/aarch64/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/arm/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/avr/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/bfin/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/common/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* Make-common.in: Require GNU make.
sim/cr16/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/cris/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/d10v/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/erc32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/example-synacor/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/frv/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/ft32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/h8300/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/iq2000/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/lm32/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/m32c/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/m32r/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/m68hc11/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/mcore/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/microblaze/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/mips/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/mn10300/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/moxie/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/msp430/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/or1k/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/pru/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/riscv/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/rl78/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/rx/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/sh/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
sim/v850/ChangeLog
2021-04-22 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
|
|
My scripts weren't updated to use new -I../m4 as the first arg.
|
|
When building with clang, we get:
error: unknown warning option '-Wmissing-parameter-type' [-Werror,-Wunknown-warning-option]
This is because clang only warns by default when encountering an unknown
warning option, and the probe for supported warning flags is done
without -Werror. All flags are therefore accepted by configure, but
then it breaks when actually compiling a source file with -Werror.
This is equivalent to this commit in gdb:
3e019bdc20eb81b91ab5bc774386201b874c0bac
gdb: Use -Werror when checking for (un)supported warning flags
We then see some other compilation errors when building with clang and
-Werror, they can be dealt with later.
|
|
This avoids duplicate tests for headers between common m4, arches,
and any other sources that would trigger header tests.
|
|
This avoids duplicate tests for functions between common m4, arches,
and any other sources that would trigger func tests.
Also manually delete known duplicate function tests between the m4,
bfin, and v850 ports.
|
|
Every arch handles this the same way, so move it to the common code.
This will also make unifying the sim_cpu structure easier.
|
|
The igen/dgen and opc2c tools leak their heap-allocated memory (on
purpose) at program exit, which makes AddressSanitizer fail the tool
execution. This breaks the build, as it makes the tool return a
non-zero exit code.
Fix that by disabling leak detection through the setting of that
environment variable.
I also changed the opc2c rules for m32c to go through a temporary file.
What happened is that the failing opc2c would produce an incomplete file
(probably because ASan exits the process before stdout is flushed).
This meant that further make attempts didn't try to re-create the file,
as it already existed. A "clean" was therefore necessary. This can
also happen in regular builds if the user interrupts the build (^C) in
the middle of the opc2c execution and tries to resume it. Going to a
temporary file avoids this issue.
sim/m32c/ChangeLog:
* Makefile.in: Set ASAN_OPTIONS when running opc2c.
sim/mips/ChangeLog:
* Makefile.in: Set ASAN_OPTIONS when running igen.
sim/mn10300/ChangeLog:
* Makefile.in: Set ASAN_OPTIONS when running igen.
sim/ppc/ChangeLog:
* Makefile.in: Set ASAN_OPTIONS when running igen.
sim/v850/ChangeLog:
* Makefile.in: Set ASAN_OPTIONS when running igen.
Change-Id: I00f21d4dc1aff0ef73471925d41ce7c23e83e082
|
|
This simplifies the build a bit (especially for deps in port subdirs),
and avoids recursive make. This in turn speeds up the build, and sets
us up for multi-target.
|
|
The toplevel, common, and igen dirs all have their own code for
setting up toolchain settings. Unify all of that in a new macro.
|
|
Some sim dirs were already setting up CFLAGS_FOR_BUILD in inconsistent
ways. Move it to a common place for reuse.
|
|
Rather than require $AR be set and then default to `ar`, use the
standard AC_CHECK_TOOL helper to find a good prefixed tool. In
practice this shouldn't change much as we seem to have macros in
the tree that were already setting it up, but we shouldn't rely
on that implicitly.
|
|
All the scripts were using this implicitly already, so there's no real
change for them, but we want to call it explicitly as the CPP tool is
used to generate nltvals.def.
|
|
This file is quite large and is getting unmanageable. Split it apart
to follow aclocal best practices by putting one-macro-per-file. There
shouldn't be any real functional changes here as can be seen in the
configure script regens.
|
|
Rather than hand maintain m4 includes in various autotool files,
use AC_CONFIG_MACRO_DIRS to declare the relevant search paths.
This simplifies the code, makes it more robust, and cleans out
unused logic from configure.
|
|
Few arches implement STATE_WATCHPOINTS()->pc while all of them implement
sim_pc_get. Lets switch the sim-watch core for monitoring pc events to
the sim_pc_get API so this module works for all ports, and then we can
delete this old back channel of snooping in the port's cpu state -- the
code needs the pointer to the pc storage so that it can read out bytes
and compare them to the watchrange.
This also fixes the logic on multi-cpu sims by removing the limitation
of only being able to watch CPU0's state.
|
|
The AC_CONFIG_HEADER macro is long deprecated, so switch to the
newer form. This also gets rid of the position limitation, and
drops support for an argument to SIM_AC_COMMON which we haven't
used anywhere.
|
|
These settings might have made sense in darker compiler times, but I
think they're largely obsolete now. Looking through the values that
get used in HDEFINES, it's quite limited, and configure itself should
handle them. If we still need something, we can leverage standard
autoconf macros instead, after we get a clear user report.
TDEFINES was never set anywhere and was always empty, so prune that.
|
|
This port only had one minor warning left in it, so fix it and then
enable -Werror behavior by deleting the macro call. We'll use the
common default now (which is -Werror).
|
|
My recent rewrite of the nltvals generator fixed a bug where SYS_times
was not being exported for v850. But that in turn uncovered this bug
where the SYS_times codepath had a compile error.
|
|
Existing ports already have sizeof_pc set to the same size as sim_cia,
so simply make that part of the core code. We already assume this in
places by way of sim_pc_{get,set}, and this is how it's documented in
the sim-base.h API.
There is code to allow sims to pick different register word sizes from
address sizes, but most ports use the defaults for both (32-bits), and
the few that support multiple register sizes never change the address
size (so address defaults to register). I can't think of any machine
where the register hardware size would be larger than the address word
size either. We have ABIs that behave that way (e.g. x32), but the
hardware is still equivalent register sized.
|
|
Since we require C11 now, we can assume many headers exist, and
clean up all of the conditional includes. It's not like any of
this code actually accounted for the headers not existing, just
whether we could include them.
The strings.h cleanup is a little nuanced: it isn't in C11, but
every use of it in the codebase will include strings.h only if
string.h doesn't exist. Since we now assume the C11 string.h
exists, we'll never include strings.h, so we can delete it.
|
|
This was purged from the tree when we upgraded to autoconf-2.69,
but a few references in the sim tree were missed.
|
|
We've had this off for a long time because the sim code was way too
full of warnings for it to be feasible. However, I've cleaned things
up significantly from when this was first merged, and we can start to
turn this around.
Change the macro to enable -Werror by default, and allow ports to opt
out. New ports will get it automatically (and we can push back on
them if they try to turn it off).
Also turn it off for the few ports that still hit warnings for me.
All the rest will get the new default, and we'll wait for feedback
if/when new issues come up.
|
|
With GDB requiring a C++11 compiler now, this hopefully shouldn't
be a big deal. It's been 10 years since C11 came out, so should
be plenty of time to upgrade.
This will allow us to start cleaning up random header logic and
many of our non-standard custom types.
|
|
|
|
This commits the result of running gdb/copyright.py as per our Start
of New Year procedure...
gdb/ChangeLog
Update copyright year range in copyright header of all GDB files.
|
|
gdb/ChangeLog:
Update copyright year range in all GDB files.
|
|
This commit applies all changes made after running the gdb/copyright.py
script.
Note that one file was flagged by the script, due to an invalid
copyright header
(gdb/unittests/basic_string_view/element_access/char/empty.cc).
As the file was copied from GCC's libstdc++-v3 testsuite, this commit
leaves this file untouched for the time being; a patch to fix the header
was sent to gcc-patches first.
gdb/ChangeLog:
Update copyright year range in all GDB files.
|
|
When trying to run the update-gnulib.sh script in gdb, I get this:
Error: Wrong automake version (Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^ =:+{}]+)}/ at /opt/automake/1.11.1/bin/automake line 4113.), we need 1.11.1.
Aborting.
Apparently, it's an issue with a regex in automake that triggers a
warning starting with Perl 5.22. It has been fixed in automake 1.15.1.
So I think it's a good excuse to bump the versions of autoconf and
automake used in the gnulib import. And to avoid requiring multiple
builds of autoconf/automake, it was suggested that we bump the required
version of those tools for all binutils-gdb.
For autoconf, the 2.69 version is universally available, so it's an easy
choice. For automake, different distros and distro versions have
different automake versions. But 1.15.1 seems to be the most readily
available as a package. In any case, it's easy to build it from source.
I removed the version checks from AUTOMAKE_OPTIONS and AC_PREREQ,
because I don't think they are useful in our case. They only specify a
lower bound for the acceptable version of automake/autoconf. That's
useful if you let the user choose the version of the tool they want to
use, but want to set a minimum version (because you use a feature that
was introduced in that version). In our case, we force people to use a
specific version anyway. For the autoconf version, we have the check in
config/override.m4 that enforces the version we want. It will be one
less thing to update next time we change autotools version.
I hit a few categories of problems that required some changes. They are
described below along with the chosen solutions.
Problem 1:
configure.ac:17: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see:
configure.ac:17: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
Solution 1:
Adjust the code based on the example at that URL.
Problem 2 (in zlib/):
Makefile.am: error: required file './INSTALL' not found
Makefile.am: 'automake --add-missing' can install 'INSTALL'
Makefile.am: error: required file './NEWS' not found
Makefile.am: error: required file './AUTHORS' not found
Makefile.am: error: required file './COPYING' not found
Makefile.am: 'automake --add-missing' can install 'COPYING'
Solution 2:
Add the foreign option to AUTOMAKE_OPTIONS.
Problem 3:
doc/Makefile.am:20: error: support for Cygnus-style trees has been removed
Solution 3:
Remove the cygnus options.
Problem 4:
Makefile.am:656: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
Solution 4:
Rename "INCLUDES = " to "AM_CPPFLAGS += " (because AM_CPPFLAGS is
already defined earlier).
Problem 5:
doc/Makefile.am:71: warning: suffix '.texinfo' for Texinfo files is discouraged; use '.texi' instead
doc/Makefile.am: warning: Oops!
doc/Makefile.am: It appears this file (or files included by it) are triggering
doc/Makefile.am: an undocumented, soon-to-be-removed automake hack.
doc/Makefile.am: Future automake versions will no longer place in the builddir
doc/Makefile.am: (rather than in the srcdir) the generated '.info' files that
doc/Makefile.am: appear to be cleaned, by e.g. being listed in CLEANFILES or
doc/Makefile.am: DISTCLEANFILES.
doc/Makefile.am: If you want your '.info' files to be placed in the builddir
doc/Makefile.am: rather than in the srcdir, you have to use the shiny new
doc/Makefile.am: 'info-in-builddir' automake option.
Solution 5:
Rename .texinfo files to .texi.
Problem 6:
doc/Makefile.am: warning: Oops!
doc/Makefile.am: It appears this file (or files included by it) are triggering
doc/Makefile.am: an undocumented, soon-to-be-removed automake hack.
doc/Makefile.am: Future automake versions will no longer place in the builddir
doc/Makefile.am: (rather than in the srcdir) the generated '.info' files that
doc/Makefile.am: appear to be cleaned, by e.g. being listed in CLEANFILES or
doc/Makefile.am: DISTCLEANFILES.
doc/Makefile.am: If you want your '.info' files to be placed in the builddir
doc/Makefile.am: rather than in the srcdir, you have to use the shiny new
doc/Makefile.am: 'info-in-builddir' automake option.
Solution 6:
Remove the hack at the bottom of doc/Makefile.am and use
the info-in-builddir automake option.
Problem 7:
doc/Makefile.am:35: error: required file '../texinfo.tex' not found
doc/Makefile.am:35: 'automake --add-missing' can install 'texinfo.tex'
Solution 7:
Use the no-texinfo.tex automake option. We also have one in
texinfo/texinfo.tex, not sure if we should point to that, or move it
(or a newer version of it added with automake --add-missing) to
top-level.
Problem 8:
Makefile.am:131: warning: source file 'config/tc-aarch64.c' is in a subdirectory,
Makefile.am:131: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
Solution 8:
Use subdir-objects, that means adjusting references to some .o that will now
be in config/.
Problem 9:
configure.ac:375: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2601: _AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2617: AC_COMPILE_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2042: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2063: AC_CACHE_CHECK is expanded from...
configure.ac:375: the top level
Solution 9:
Use AC_LANG_SOURCE, or use proper quoting.
Problem 10 (in intl/):
configure.ac:7: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
/usr/share/aclocal/threadlib.m4:36: gl_THREADLIB_EARLY_BODY is expanded from...
/usr/share/aclocal/threadlib.m4:29: gl_THREADLIB_EARLY is expanded from...
/usr/share/aclocal/threadlib.m4:318: gl_THREADLIB is expanded from...
/usr/share/aclocal/lock.m4:9: gl_LOCK is expanded from...
/usr/share/aclocal/intl.m4:211: gt_INTL_SUBDIR_CORE is expanded from...
/usr/share/aclocal/intl.m4:25: AM_INTL_SUBDIR is expanded from...
/usr/share/aclocal/gettext.m4:57: AM_GNU_GETTEXT is expanded from...
configure.ac:7: the top level
Solution 10:
Add AC_USE_SYSTEM_EXTENSIONS in configure.ac.
ChangeLog:
* libtool.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ, use AC_LANG_SOURCE.
* README-maintainer-mode: Update version requirements.
* ar-lib: New file.
* test-driver: New file.
* configure: Re-generate.
bfd/ChangeLog:
* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.11.
(INCLUDES): Rename to ...
(AM_CPPFLAGS): ... this.
* configure.ac: Remove AC_PREREQ.
* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove 1.9, cygnus, add
info-in-builddir no-texinfo.tex.
(info_TEXINFOS): Rename bfd.texinfo to bfd.texi.
* doc/bfd.texinfo: Rename to ...
* doc/bfd.texi: ... this.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* config.in: Re-generate.
* configure: Re-generate.
* doc/Makefile.in: Re-generate.
binutils/ChangeLog:
* configure.ac: Remove AC_PREREQ.
* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, add
info-in-builddir no-texinfo.tex.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* config.in: Re-generate.
* configure: Re-generate.
* doc/Makefile.in: Re-generate.
config/ChangeLog:
* override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69.
etc/ChangeLog:
* configure.in: Remove AC_PREREQ.
* configure: Re-generate.
gas/ChangeLog:
* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.11, add subdir-objects.
(TARG_CPU_O, OBJ_FORMAT_O, ATOF_TARG_O): Add config/ prefix.
* configure.ac (TARG_CPU_O, OBJ_FORMAT_O, ATOF_TARG_O, emfiles,
extra_objects): Add config/ prefix.
* doc/as.texinfo: Rename to...
* doc/as.texi: ... this.
* doc/Makefile.am: Rename as.texinfo to as.texi throughout.
Remove DISTCLEANFILES hack.
(AUTOMAKE_OPTIONS): Remove 1.8, cygnus, add no-texinfo.tex and
info-in-builddir.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* config.in: Re-generate.
* configure: Re-generate.
* doc/Makefile.in: Re-generate.
gdb/ChangeLog:
* common/common-defs.h (PACKAGE_NAME, PACKAGE_VERSION,
PACKAGE_STRING, PACKAGE_TARNAME): Undefine.
* configure.ac: Remove AC_PREREQ, add missing quoting.
* gnulib/configure.ac: Modernize usage of
AC_INIT/AM_INIT_AUTOMAKE. Remove AC_PREREQ.
* gnulib/update-gnulib.sh (AUTOCONF_VERSION): Bump to 2.69.
(AUTOMAKE_VERSION): Bump to 1.15.1.
* configure: Re-generate.
* config.in: Re-generate.
* aclocal.m4: Re-generate.
* gnulib/aclocal.m4: Re-generate.
* gnulib/config.in: Re-generate.
* gnulib/configure: Re-generate.
* gnulib/import/Makefile.in: Re-generate.
gdb/gdbserver/ChangeLog:
* configure.ac: Remove AC_PREREQ, add missing quoting.
* configure: Re-generate.
* config.in: Re-generate.
* aclocal.m4: Re-generate.
gdb/testsuite/ChangeLog:
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
gold/ChangeLog:
* configure.ac: Remove AC_PREREQ, add missing quoting and usage
of AC_LANG_SOURCE.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* configure: Re-generate.
* testsuite/Makefile.in: Re-generate.
gprof/ChangeLog:
* configure.ac: Remove AC_PREREQ.
* Makefile.am: Remove DISTCLEANFILES hack.
(AUTOMAKE_OPTIONS): Remove 1.11, add info-in-builddir.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* configure: Re-generate.
* gconfig.in: Re-generate.
intl/ChangeLog:
* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS, remove AC_PREREQ.
* configure: Re-generate.
* config.h.in: Re-generate.
* aclocal.m4: Re-generate.
ld/ChangeLog:
* configure.ac: Remove AC_PREREQ.
* Makefile.am: Remove DISTCLEANFILES hack, rename ld.texinfo to
ld.texi, ldint.texinfo to ldint.texi throughout.
(AUTOMAKE_OPTIONS): Add info-in-builddir.
* README: Rename ld.texinfo to ld.texi, ldint.texinfo to
ldint.texi throughout.
* gen-doc.texi: Likewise.
* h8-doc.texi: Likewise.
* ld.texinfo: Rename to ...
* ld.texi: ... this.
* ldint.texinfo: Rename to ...
* ldint.texi: ... this.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* config.in: Re-generate.
* configure: Re-generate.
libdecnumber/ChangeLog:
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
* aclocal.m4.
libiberty/ChangeLog:
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
* config.in: Re-generate.
opcodes/ChangeLog:
* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.11.
* configure.ac: Remove AC_PREREQ.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* configure: Re-generate.
readline/ChangeLog.gdb:
* configure: Re-generate.
* examples/rlfe/configure: Re-generate.
sim/ChangeLog:
* All configure.ac: Remove AC_PREREQ.
* All configure: Re-generate.
zlib/ChangeLog.bin-gdb:
* configure.ac: Modernize AC_INIT call, remove AC_PREREQ.
* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.8, cygnus, add
foreign.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* configure: Re-generate.
|
|
... and re-generate all possible configure files, since they may depend
on things in config/.
config/ChangeLog:
Sync with GCC
2018-06-08 Martin Liska <mliska@suse.cz>
* bootstrap-mpx.mk: Remove.
2018-05-10 Martin Liska <mliska@suse.cz>
PR bootstrap/64914
* bootstrap-ubsan.mk: Define UBSAN_BOOTSTRAP.
2018-05-09 Joshua Watt <jpewhacker@gmail.com>
* ax_pthread.m4: Add file.
2018-05-08 Richard Biener <rguenther@suse.de>
PR bootstrap/85571
* bootstrap-lto-noplugin.mk: Disable compare.
* bootstrap-lto.mk: Supply contrib/compare-lto for do-compare.
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/85490
* bootstrap-cet.mk (STAGE4_CFLAGS): New.
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/85485
* bootstrap-cet.mk (STAGE2_CFLAGS): Remove -mcet.
(STAGE3_CFLAGS): Likewise.
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/85485
* cet.m4 (GCC_CET_FLAGS): Replace -mcet with -mshstk.
2018-04-19 Jakub Jelinek <jakub@redhat.com>
* cet.m4 (GCC_CET_FLAGS): Default to --disable-cet, replace
--enable-cet=default with --enable-cet=auto.
2018-04-18 David Malcolm <dmalcolm@redhat.com>
PR jit/85384
* acx.m4 (GCC_BASE_VER): Remove \$\$ from sed expression.
|