Commit 5d6551f5 by Alexandre Oliva Committed by Alexandre Oliva

support --with-multilib-list=@name for ARM

Introduce @name as a means to specify alternate multilib profiles as
arguments to --with-multilib-list.

So far this is only implemented for ARM.


for  gcc/ChangeLog

	* config.gcc (tmake_file): Add name to tmake_file for
        each @name in --with-multilib-list on arm-*-* targets.
	* doc/install.texi (with-multilib-list): Document it.

From-SVN: r267320
parent 906a9283
2018-12-21 Alexandre Oliva <oliva@adacore.com>
* config.gcc (tmake_file): Add name to tmake_file for
each @name in --with-multilib-list on arm-*-* targets.
* doc/install.texi (with-multilib-list): Document it.
2018-12-21 Jakub Jelinek <jakub@redhat.com> 2018-12-21 Jakub Jelinek <jakub@redhat.com>
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
...@@ -3976,6 +3976,7 @@ case "${target}" in ...@@ -3976,6 +3976,7 @@ case "${target}" in
# Add extra multilibs # Add extra multilibs
if test "x$with_multilib_list" != x; then if test "x$with_multilib_list" != x; then
ml=
arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
if test "x${arm_multilibs}" != xdefault ; then if test "x${arm_multilibs}" != xdefault ; then
for arm_multilib in ${arm_multilibs}; do for arm_multilib in ${arm_multilibs}; do
...@@ -3983,6 +3984,15 @@ case "${target}" in ...@@ -3983,6 +3984,15 @@ case "${target}" in
aprofile|rmprofile) aprofile|rmprofile)
tmake_profile_file="arm/t-multilib" tmake_profile_file="arm/t-multilib"
;; ;;
@*)
ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
if test -f "${srcdir}/config/arm/${ml}"; then
tmake_file="${tmake_file} arm/${ml}"
else
echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
exit 1
fi
;;
*) *)
echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
exit 1 exit 1
...@@ -4003,6 +4013,9 @@ case "${target}" in ...@@ -4003,6 +4013,9 @@ case "${target}" in
|| test "x$with_mode" != x ; then || test "x$with_mode" != x ; then
echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
exit 1 exit 1
elif test "x$ml" != x ; then
echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
exit 1
fi fi
# But pass the default value for float-abi # But pass the default value for float-abi
# through to the multilib selector # through to the multilib selector
......
...@@ -1078,18 +1078,41 @@ values and meaning for each target is given below. ...@@ -1078,18 +1078,41 @@ values and meaning for each target is given below.
@table @code @table @code
@item arm*-*-* @item arm*-*-*
@var{list} is a comma separated list of @code{aprofile} and @code{rmprofile} @var{list} is a comma separated list of @code{aprofile} and
to build multilibs for A or R and M architecture profiles respectively. Note @code{rmprofile} to build multilibs for A or R and M architecture
that, due to some limitation of the current multilib framework, using the profiles respectively. Note that, due to some limitation of the current
combined @code{aprofile,rmprofile} multilibs selects in some cases a less multilib framework, using the combined @code{aprofile,rmprofile}
optimal multilib than when using the multilib profile for the architecture multilibs selects in some cases a less optimal multilib than when using
targetted. The special value @code{default} is also accepted and is equivalent the multilib profile for the architecture targetted. The special value
to omitting the option, ie. only the default run-time library will be enabled. @code{default} is also accepted and is equivalent to omitting the
option, i.e., only the default run-time library will be enabled.
@var{list} may instead contain @code{@@name}, to use the multilib
configuration Makefile fragment @file{name} in @file{gcc/config/arm} in
the source tree (it is part of the corresponding sources, after all).
It is recommended, but not required, that files used for this purpose to
be named starting with @file{t-ml-}, to make their intended purpose
self-evident, in line with GCC conventions. Such files enable custom,
user-chosen multilib lists to be configured. Whether multiple such
files can be used together depends on the contents of the supplied
files. See @file{gcc/config/arm/t-multilib} and its supplementary
@file{gcc/config/arm/t-*profile} files for an example of what such
Makefile fragments might look like for this version of GCC. The macros
expected to be defined in these fragments are not stable across GCC
releases, so make sure they define the @code{MULTILIB}-related macros
expected by the version of GCC you are building.
@ifnothtml
@xref{Target Fragment,, Target Makefile Fragments, gccint, GNU Compiler
Collection (GCC) Internals}.
@end ifnothtml
@ifhtml
See ``Target Makefile Fragments'' in the internals manual.
@end ifhtml
The table below gives the combination of ISAs, architectures, FPUs and The table below gives the combination of ISAs, architectures, FPUs and
floating-point ABIs for which multilibs are built for each accepted value. floating-point ABIs for which multilibs are built for each predefined
The union of these options is considered when specifying both @code{aprofile} profile. The union of these options is considered when specifying both
and @code{rmprofile}. @code{aprofile} and @code{rmprofile}.
@multitable @columnfractions .15 .28 .30 @multitable @columnfractions .15 .28 .30
@item Option @tab aprofile @tab rmprofile @item Option @tab aprofile @tab rmprofile
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment