Go to file
Thomas Preud'homme 54bab2816d [ARM] Rework selection of feature bits to base build attributes on
=== Context ===

This patch is part of a patch series to add support for ARMv8-R
architecture. Its purpose is to set the feature bits on which to decide
what the build attributes should be according to the mode
(autodetection, user specified architecture or CPU, or
-march/-mcpu=all).

=== Motivation ===

Currently, the flags variable which is used to determine the build
attribute is constructed from the instruction used (arm_arch_used and
thumb_arch_used) as well as the user specified architecture or CPU
(selected_cpu). This means when several .arch are specified the
resulting feature bits can be such that no architecture provide them
all and can thus result in incorrect Tag_CPU_arch. See for instance
what having both .arch armv8-a and .arch armv8-m.base would result in.
This is not caught by the testsuite because of further bugs in the
Tag_CPU_arch build attribute value selection logic (see next patch in
the series).

=== Patch description ===

As one would expect, this patch solves the problem by setting flags
from feature bits used if in autodetection mode [1] and from
selected_cpu otherwise. The logic to set arm_ext_v1, arm_ext_v4t and
arm_ext_os feature bits is also moved to only run in autodetection mode
since otherwise the architecture or CPU would have a consistent set of
feature bits already.

[1] No architecture or CPU was specified by the user

2017-06-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

gas/
	* config/tc-arm.c (aeabi_set_public_attributes): Populate flags from
	feature bits used or selected_cpu depending on whether a CPU was
	selected by the user.
2017-06-21 15:08:49 +01:00
bfd PowerPC64 localentry:0 plt calls 2017-06-21 22:45:15 +09:30
binutils Fix address violation when attempting to display disassembled data. 2017-06-19 15:57:19 +01:00
config
cpu Update the openrisc previous program counter (ppc) when running code in the cgen based simulator. 2017-03-20 15:33:51 +00:00
elfcpp
etc
gas [ARM] Rework selection of feature bits to base build attributes on 2017-06-21 15:08:49 +01:00
gdb Change to_xfer_partial doc to use addressable memory units 2017-06-21 13:16:47 +02:00
gold [GOLD] PowerPC move plt indx_ out of unordered map key 2017-06-21 22:45:15 +09:30
gprof
include Rewrite __start and __stop symbol handling 2017-06-16 23:38:28 +09:30
intl
ld PowerPC64 tocsave testcases 2017-06-21 22:45:15 +09:30
libdecnumber
libiberty Avoid compilation warning on MinGW in xstrndup 2017-05-31 09:44:08 +03:00
opcodes Prevent address violation when attempting to disassemble a corrupt score binary. 2017-06-19 14:15:57 +01:00
readline Avoid MinGW compilation warning in readline/input.c 2017-05-19 11:05:59 +03:00
sim Correct check for endianness 2017-06-02 08:04:59 -07:00
texinfo
zlib Sync ZLIB with FSF GCC sources, bringing in version 1.2.11. 2017-02-20 12:52:22 +00:00
.cvsignore
.gitattributes
.gitignore
ChangeLog * config.sub: Sync with master version in config project. 2017-04-13 02:34:19 -07:00
compile
config-ml.in
config.guess Sync top level config files with master versions in the FSF config project. 2017-03-22 14:01:03 +00:00
config.rpath
config.sub * config.sub: Sync with master version in config project. 2017-04-13 02:34:19 -07:00
configure
configure.ac
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
depcomp
djunpack.bat
install-sh
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
README
README-maintainer-mode
setup.com
src-release.sh
symlink-tree
ylwrap

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.