Commit 864396ff by Alan Modra Committed by Alan Modra

re PR target/65286 (When building on powerpc64le-unknown-linux-gnu,…

re PR target/65286 (When building on powerpc64le-unknown-linux-gnu, --disable-multilib must be used)

	PR target/65286
	* config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
	to be single-arch by default.  Set cpu_is_64bit for powerpc64
	given --with-cpu=native.
	* config/rs6000/t-fprules: Do not set default MULTILIB vars.
	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
	and powerpc64le.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
	rs6000_isa_flags rather than TARGET_64BIT.

From-SVN: r221288
parent 711d91e1
2015-03-10 Alan Modra <amodra@gmail.com>
PR target/65286
* config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
to be single-arch by default. Set cpu_is_64bit for powerpc64
given --with-cpu=native.
* config/rs6000/t-fprules: Do not set default MULTILIB vars.
* config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
and powerpc64le.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
rs6000_isa_flags rather than TARGET_64BIT.
2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp> 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
Kaz Kojima <kkojima@gcc.gnu.org> Kaz Kojima <kkojima@gcc.gnu.org>
......
...@@ -2337,28 +2337,32 @@ powerpc-*-rtems*) ...@@ -2337,28 +2337,32 @@ powerpc-*-rtems*)
powerpc*-*-linux*) powerpc*-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
extra_options="${extra_options} rs6000/sysv4.opt" extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
extra_objs="$extra_objs rs6000-linux.o" extra_objs="$extra_objs rs6000-linux.o"
case ${target} in case ${target} in
powerpc*le-*-*) powerpc*le-*-*)
tm_file="${tm_file} rs6000/sysv4le.h" ;; tm_file="${tm_file} rs6000/sysv4le.h" ;;
esac esac
maybe_biarch=yes case ${target}:${with_cpu} in
powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
esac
maybe_biarch=${cpu_is_64bit}
case ${enable_targets} in
*powerpc64*) maybe_biarch=yes ;;
esac
case ${target} in case ${target} in
powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*) powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
echo "*** Configuration ${target} not supported" 1>&2 echo "*** Configuration ${target} not supported" 1>&2
exit 1 exit 1
;; ;;
powerpc*-*-linux*spe* | powerpc*-*-linux*paired*) powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
maybe_biarch= maybe_biarch=
;; ;;
powerpc64*-*-linux*)
test x$with_cpu != x || cpu_is_64bit=yes
maybe_biarch=always
;;
esac esac
case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in case ${target}:${enable_targets}:${maybe_biarch} in
always:* | yes:*powerpc64* | yes:all:* | yes:*:yes) powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
| powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
| powerpcle-*:*powerpc64le*:yes)
if test x$cpu_is_64bit = xyes; then if test x$cpu_is_64bit = xyes; then
tm_file="${tm_file} rs6000/default64.h" tm_file="${tm_file} rs6000/default64.h"
fi fi
...@@ -2379,9 +2383,14 @@ powerpc*-*-linux*) ...@@ -2379,9 +2383,14 @@ powerpc*-*-linux*)
esac esac
extra_options="${extra_options} rs6000/linux64.opt" extra_options="${extra_options} rs6000/linux64.opt"
;; ;;
powerpc64*)
tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
extra_options="${extra_options} rs6000/linux64.opt"
tmake_file="${tmake_file} rs6000/t-linux"
;;
*) *)
tm_file="${tm_file} rs6000/linux.h glibc-stdint.h" tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
tmake_file="$tmake_file rs6000/t-linux" tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
;; ;;
esac esac
case ${target} in case ${target} in
......
...@@ -97,7 +97,7 @@ extern int dot_symbols; ...@@ -97,7 +97,7 @@ extern int dot_symbols;
{ \ { \
if (!global_options_set.x_rs6000_alignment_flags) \ if (!global_options_set.x_rs6000_alignment_flags) \
rs6000_alignment_flags = MASK_ALIGN_NATURAL; \ rs6000_alignment_flags = MASK_ALIGN_NATURAL; \
if (TARGET_64BIT) \ if (rs6000_isa_flags & OPTION_MASK_64BIT) \
{ \ { \
if (DEFAULT_ABI != ABI_AIX) \ if (DEFAULT_ABI != ABI_AIX) \
{ \ { \
......
...@@ -18,9 +18,3 @@ ...@@ -18,9 +18,3 @@
SOFT_FLOAT_CPUS = e300c2 401 403 405 440 464 476 ec603e 801 821 823 860 SOFT_FLOAT_CPUS = e300c2 401 403 405 440 464 476 ec603e 801 821 823 860
MULTILIB_MATCHES_FLOAT = $(foreach cpu, $(SOFT_FLOAT_CPUS), msoft-float=mcpu?$(cpu)) MULTILIB_MATCHES_FLOAT = $(foreach cpu, $(SOFT_FLOAT_CPUS), msoft-float=mcpu?$(cpu))
# Build the libraries for both hard and soft floating point by default
MULTILIB_OPTIONS = msoft-float
MULTILIB_DIRNAMES = soft-float
MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
# do not define the multiarch name if configured for a soft-float cpu # do not define the multiarch name if configured for a soft-float cpu
# or soft-float. # or soft-float.
ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float))) ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
ifneq (,$(findstring powerpc64,$(target)))
MULTIARCH_DIRNAME := powerpc64-linux-gnu
else
ifneq (,$(findstring spe,$(target))) ifneq (,$(findstring spe,$(target)))
MULTIARCH_DIRNAME = powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1) MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1)
else else
MULTIARCH_DIRNAME = powerpc-linux-gnu MULTIARCH_DIRNAME := powerpc-linux-gnu
endif
endif
ifneq (,$(findstring powerpcle,$(target))$(findstring powerpc64le,$(target)))
MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
endif endif
endif endif
......
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