re PR target/55243 (STAMP variable is not defined in t-avr)
PR55243 * config/avr/t-avr: Don't automatically rebuild $(srcdir)/config/avr/t-multilib $(srcdir)/config/avr/avr-tables.opt $(srcdir)/doc/avr-mmcu.texi (avr-mcus): New phony target to build them on request. (s-avr-mlib, s-avr-mmcu-texi): Remove. * avr/avr-mcus.def: Adjust comments. From-SVN: r194968
This commit is contained in:
parent
c7afdc98c5
commit
4a176b2331
|
@ -1,3 +1,14 @@
|
|||
2013-01-07 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
PR55243
|
||||
* config/avr/t-avr: Don't automatically rebuild
|
||||
$(srcdir)/config/avr/t-multilib
|
||||
$(srcdir)/config/avr/avr-tables.opt
|
||||
$(srcdir)/doc/avr-mmcu.texi
|
||||
(avr-mcus): New phony target to build them on request.
|
||||
(s-avr-mlib, s-avr-mmcu-texi): Remove.
|
||||
* avr/avr-mcus.def: Adjust comments.
|
||||
|
||||
2013-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
|
||||
|
|
|
@ -18,19 +18,50 @@
|
|||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* List of all known AVR MCU types - if updated, it has to be kept
|
||||
in sync in several places (FIXME: is there a better way?):
|
||||
- here;
|
||||
- gas/config/tc-avr.c;
|
||||
- avr-libc.
|
||||
/* List of all known AVR MCU types. If updated, cd to $(builddir)/gcc and run
|
||||
|
||||
$ make avr-mcus
|
||||
|
||||
This will regenerate / update the following source files:
|
||||
|
||||
- $(srcdir)/config/avr/t-multilib
|
||||
- $(srcdir)/config/avr/avr-tables.opt
|
||||
- $(srcdir)/doc/avr-mmcu.texi
|
||||
|
||||
After that, rebuild everything and check-in the new sources to the repo.
|
||||
The device list below has to be kept in sync with the following places:
|
||||
|
||||
- here
|
||||
- gas/config/tc-avr.c
|
||||
- avr-libc
|
||||
|
||||
Before including this file, define a macro:
|
||||
|
||||
AVR_MCU (NAME, ARCH, MACRO, SHORT_SP, ERRATA_SKIP, DATA_SEC, N_FLASH, LIBRARY_NAME)
|
||||
AVR_MCU (NAME, ARCH, MACRO, SHORT_SP, ERRATA_SKIP, DATA_SEC, N_FLASH,
|
||||
LIBRARY_NAME)
|
||||
|
||||
where the arguments are the fields of struct mcu_type_s. */
|
||||
where the arguments are the fields of struct mcu_type_s:
|
||||
|
||||
NAME Accept -mmcu=<NAME>
|
||||
|
||||
/* "avr2" must be first for the "0" default to work as intended. */
|
||||
ARCH Specifies the multilib variant together with SHORT_SP
|
||||
|
||||
MACRO If NULL, this is a core and not a device. If non-NULL,
|
||||
supply respective built-in macro.
|
||||
|
||||
SHORT_SP The device / multilib has an 8-bit stack pointer (no SPH).
|
||||
|
||||
ERRATA_SKIP Apply work-around for the "skip 32-bit instruction"
|
||||
silicon bug: Don't skip 32-bit instrctions.
|
||||
|
||||
DATA_SEC First address of SRAM, used in -Tdata= by the driver.
|
||||
|
||||
N_FLASH Number of 64 KiB flash segments, rounded up.
|
||||
|
||||
LIBRARY_NAME Used by the driver to linke startup code from avr-libc
|
||||
as of crt<LIBRARY_NAME>.o
|
||||
|
||||
"avr2" must be first for the "0" default to work as intended. */
|
||||
|
||||
/* Classic, <= 8K. */
|
||||
AVR_MCU ("avr2", ARCH_AVR2, NULL, 0, 1, 0x0060, 6, "s8515")
|
||||
|
|
|
@ -40,48 +40,36 @@ avr.o avr-c.o: $(srcdir)/config/avr/builtins.def
|
|||
|
||||
AVR_MCUS = $(srcdir)/config/avr/avr-mcus.def
|
||||
|
||||
# Run `avr-mcus' after you changed or added devices in avr-mcus.def
|
||||
|
||||
.PHONY: avr-mcus
|
||||
|
||||
avr-mcus: $(srcdir)/config/avr/t-multilib \
|
||||
$(srcdir)/config/avr/avr-tables.opt \
|
||||
$(srcdir)/doc/avr-mmcu.texi ; @true
|
||||
|
||||
# Make sure that -mmcu= is supported for devices from avr-mcus.def and
|
||||
# is displaed all -mmcu= values are displayed on the help screen
|
||||
$(srcdir)/config/avr/avr-tables.opt: $(srcdir)/config/avr/genopt.sh $(AVR_MCUS)
|
||||
$(SHELL) $< $(AVR_MCUS) > $@
|
||||
|
||||
# Make sure that -mmcu= support is in sync with -mmcu= documentation.
|
||||
gen-avr-mmcu-texi$(build_exeext): $(srcdir)/config/avr/gen-avr-mmcu-texi.c \
|
||||
$(AVR_MCUS) $(srcdir)/config/avr/avr-devices.c \
|
||||
$(srcdir)/config/avr/avr-arch.h
|
||||
$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $< -o $@
|
||||
|
||||
# Make sure that the -mmcu= documentation is in sync with the compiler.
|
||||
$(srcdir)/doc/avr-mmcu.texi: s-avr-mmcu-texi; @true
|
||||
|
||||
# invoke.texi @includes avr-mmcu.texi. Put this dependency here instead
|
||||
# of in the global Makefile so that developers of other backends are not
|
||||
# bothered with AVR stuff.
|
||||
$(srcdir)/doc/invoke.texi: $(srcdir)/doc/avr-mmcu.texi
|
||||
|
||||
# Ensure that device support is in sync with -mmcu= documentation.
|
||||
s-avr-mmcu-texi: gen-avr-mmcu-texi$(build_exeext)
|
||||
$(RUN_GEN) ./$< > tmp-avr-mmcu.texi
|
||||
$(SHELL) $(srcdir)/../move-if-change tmp-avr-mmcu.texi avr-mmcu.texi
|
||||
@if cmp -s $(srcdir)/doc/avr-mmcu.texi avr-mmcu.texi; then \
|
||||
$(STAMP) $@; \
|
||||
else \
|
||||
echo >&2 ; \
|
||||
echo "***" >&2 ; \
|
||||
echo "*** Verify that you have permission to grant a" >&2 ; \
|
||||
echo "*** GFDL license for all new text in" >&2 ; \
|
||||
echo "*** avr-mmcu.texi, then copy it to $(srcdir)/doc/avr-mmcu.texi" >&2 ; \
|
||||
echo "***" >&2 ; \
|
||||
false; \
|
||||
fi
|
||||
$(srcdir)/doc/avr-mmcu.texi: gen-avr-mmcu-texi$(build_exeext)
|
||||
$(RUN_GEN) ./$< > $@
|
||||
|
||||
# Map -mmcu= to the right multilib variant
|
||||
# MULTILIB_OPTIONS
|
||||
# MULTILIB_DIRNAMES
|
||||
# MULTILIB_EXCEPTIONS
|
||||
# MULTILIB_MATCHES
|
||||
$(srcdir)/config/avr/t-multilib: s-avr-mlib; @true
|
||||
|
||||
s-mlib: $(srcdir)/config/avr/t-multilib
|
||||
|
||||
s-avr-mlib: $(srcdir)/config/avr/genmultilib.awk $(AVR_MCUS)
|
||||
$(AWK) -f $< -v FORMAT=Makefile $< $(AVR_MCUS) > tmp-avr-mlib
|
||||
$(SHELL) $(srcdir)/../move-if-change \
|
||||
tmp-avr-mlib $(srcdir)/config/avr/t-multilib
|
||||
$(STAMP) $@
|
||||
$(srcdir)/config/avr/t-multilib: $(srcdir)/config/avr/genmultilib.awk \
|
||||
$(AVR_MCUS)
|
||||
$(AWK) -f $< -v FORMAT=Makefile $< $(AVR_MCUS) > $@
|
||||
|
|
Loading…
Reference in New Issue