From b6e64af3b32cd25d44b757d86d35e6c38ab758bd Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Mon, 13 Feb 2012 19:46:32 +1100 Subject: [PATCH] Disable Altivec on host triplet powerpc-unknown-linux-gnuspe. SPE is incompatible with AltiVec because it shares the same opcode range. Patch from Sebastian Andrzej Siewior via Debian. --- configure.ac | 8 ++++++++ src/libFLAC/Makefile.am | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 549024a..63a0984 100644 --- a/configure.ac +++ b/configure.ac @@ -112,6 +112,14 @@ case "$host" in *) OBJ_FORMAT=elf ;; esac AC_SUBST(OBJ_FORMAT) +case "$host" in + *-gnuspe) + abi_spe=true + AC_DEFINE(FLAC__CPU_PPC_SPE) + AH_TEMPLATE(FLAC__CPU_PPC_SPE, [define if building for PowerPC with SPE ABI]) + ;; +esac +AM_CONDITIONAL(FLaC__CPU_PPC_SPE, test "x$abi_spe" = xtrue) case "$host" in *-*-cygwin|*mingw*|*emx*) diff --git a/src/libFLAC/Makefile.am b/src/libFLAC/Makefile.am index 636d4ab..2deb958 100644 --- a/src/libFLAC/Makefile.am +++ b/src/libFLAC/Makefile.am @@ -40,8 +40,13 @@ if FLaC__SYS_DARWIN CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM else # Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific +CPUCFLAGS = +if FLaC__CPU_PPC_SPE +else +CPUCFLAGS += -maltivec -mabi=altivec +endif #@@@ PPC optimizations temporarily disabled -CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM +CPUCFLAGS += -DFLAC__NO_ASM endif endif @@ -58,6 +63,8 @@ endif if FLaC__CPU_PPC ARCH_SUBDIRS = ppc if FLaC__HAS_AS__TEMPORARILY_DISABLED +if FLaC__CPU_PPC_SPE +else LOCAL_EXTRA_LIBADD = ppc/as/libFLAC-asm.la LOCAL_EXTRA_LDFLAGS = "-Wl,-read_only_relocs,warning" else @@ -68,6 +75,7 @@ endif endif endif endif +endif libFLAC_la_LIBADD = $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@ -- 2.7.4