This is a compile-fix so that old versions build on newer ARM hardware.
The ARM assembly code does not work on newer hardware
so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
Specifically, it uses the SWPB op, which was deprecated [1]
The SWPB op ALSO cannot be used in ARM-Thumb mode.
>=sys-libs/db-6.1 uses LDREX instead, but that fix CANNOT be backported
due differing licenses in the new versions (the new version is AGPL).
Trust the compiler instead for older sys-libs/db versions, and just drop
--with-mutex=ARM/gcc-assembly from the configure.
[1] http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
Fixes: https://bugs.gentoo.org/555740
Reported-By: Christohper Harrington <ironiridis@gmail.com>
Reported-By: Luke-Jr <luke-jr@utopios.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=0
--enable-o_direct \
--without-uniquename \
$(use_enable rpc) \
- $(use arm && echo --with-mutex=ARM/gcc-assembly) \
$(use amd64 && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable java) \
${myconf} \
$(use_enable test) \
"$@"
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
emake || die "make failed"
}
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
--enable-compat185 \
--enable-o_direct \
--without-uniquename \
- $([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable cxx stl) \
$(multilib_native_use_enable java) \
"${myconf[@]}" \
$(use_enable test)
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
}
multilib_src_test() {
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
--enable-sql \
--enable-sql_codegen \
--disable-sql_compat \
- $(use arm && echo --with-mutex=ARM/gcc-assembly) \
$(use amd64 && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable cxx stl) \
${myconf} \
$(use_enable test) \
"$@"
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
}
src_compile() {
--enable-sql \
--enable-sql_codegen \
--disable-sql_compat \
- $([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable cxx stl) \
$(multilib_native_use_enable java) \
"${myconf[@]}" \
$(use_enable test)
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
}
multilib_src_install() {
--disable-sql \
--disable-sql_codegen \
--disable-sql_compat \
- $([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable cxx stl) \
$(multilib_native_use_enable java) \
"${myconf[@]}" \
$(use_enable test)
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
}
multilib_src_install() {
--disable-sql \
--disable-sql_codegen \
--disable-sql_compat \
- $([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable cxx stl) \
$(multilib_native_use_enable java) \
"${myconf[@]}" \
$(use_enable test)
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
}
multilib_src_install() {
--enable-sql \
--enable-sql_codegen \
--disable-sql_compat \
- $([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
$(use_enable cxx) \
$(use_enable cxx stl) \
$(multilib_native_use_enable java) \
"${myconf[@]}" \
$(use_enable test)
+ # The embedded assembly on ARM does not work on newer hardware
+ # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+ # Specifically, it uses the SWPB op, which was deprecated:
+ # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+ # The op ALSO cannot be used in ARM-Thumb mode.
+ # Trust the compiler instead.
+ # >=db-6.1 uses LDREX instead.
}
multilib_src_install() {