From: Benjamin Barenblat Date: Fri, 25 Feb 2022 01:39:43 +0000 (+0000) Subject: Disable TestArmThumbOverlap on raspbian X-Git-Tag: archive/raspbian/0_20210324.2-3+rpi1~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fc98cce9b8c686ab1bf66818ab4eb45794adc8a7;p=abseil.git Disable TestArmThumbOverlap on raspbian TestArmThumbOverlap includes a pair of test functions, one built in arm mode and the other built in thumb mode. unfortunately when configured for armv6 hardfloat, gcc refuses to build any functions in thumb mode (even if they don't actually use floating point) Author: Peter Michael Green Gbp-Pq: Name disable-testarmthumboverlap.patch --- diff --git a/absl/debugging/symbolize_test.cc b/absl/debugging/symbolize_test.cc index 35de02e..1ee7822 100644 --- a/absl/debugging/symbolize_test.cc +++ b/absl/debugging/symbolize_test.cc @@ -477,7 +477,7 @@ void ABSL_ATTRIBUTE_NOINLINE TestWithReturnAddress() { #endif } -#if defined(__arm__) && ABSL_HAVE_ATTRIBUTE(target) +#if defined(__arm__) && ABSL_HAVE_ATTRIBUTE(target) && ((__ARM_ARCH >= 7) || !defined(__ARM_PCS_VFP)) // Test that we correctly identify bounds of Thumb functions on ARM. // // Thumb functions have the lowest-order bit set in their addresses in the ELF @@ -496,6 +496,11 @@ void ABSL_ATTRIBUTE_NOINLINE TestWithReturnAddress() { // bit in the Thumb function's entry point. It will correctly compute the end of // the Thumb function, it will find no overlap between the Thumb and ARM // functions, and it will return the name of the ARM function. +// +// Unfortunately we cannot perform this test on armv6 or lower systems that use +// the hard float ABI because gcc refuses to compile thumb functions on such +// systems with a "sorry, unimplemented: Thumb-1 hard-float VFP ABI" error. + __attribute__((target("thumb"))) int ArmThumbOverlapThumb(int x) { return x * x * x; @@ -591,7 +596,7 @@ int main(int argc, char **argv) { TestWithPCInsideInlineFunction(); TestWithPCInsideNonInlineFunction(); TestWithReturnAddress(); -#if defined(__arm__) && ABSL_HAVE_ATTRIBUTE(target) +#if defined(__arm__) && ABSL_HAVE_ATTRIBUTE(target) && ((__ARM_ARCH >= 7) || !defined(__ARM_PCS_VFP)) TestArmThumbOverlap(); #endif #endif