mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
136 lines
6.5 KiB
Diff
136 lines
6.5 KiB
Diff
|
diff -urN a/configure b/configure
|
||
|
--- a/configure 2012-03-24 13:06:47.000000000 -0600
|
||
|
+++ b/configure 2012-06-08 14:37:25.504009179 -0600
|
||
|
@@ -15984,38 +15984,9 @@
|
||
|
LIBS="$LIBS -framework ApplicationServices"
|
||
|
fi
|
||
|
elif test "$use_arch" = "arm"; then
|
||
|
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
|
||
|
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
|
||
|
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
|
||
|
- if test "$use_tegra" = "yes"; then
|
||
|
- # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
|
||
|
- SAVE_CFLAGS="$CFLAGS"
|
||
|
- CFLAGS="-mfpu=vfpv3-d16"
|
||
|
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
-/* end confdefs.h. */
|
||
|
-int foo;
|
||
|
-_ACEOF
|
||
|
-if ac_fn_c_try_compile "$LINENO"; then :
|
||
|
- CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
|
||
|
- CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
|
||
|
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
|
||
|
- use_cpu=cortex-a9
|
||
|
-else
|
||
|
- CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
|
||
|
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
|
||
|
- use_cpu=cortex-a8
|
||
|
-fi
|
||
|
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
|
- else
|
||
|
- # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
|
||
|
- CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
|
||
|
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
|
||
|
- if test "$use_neon" = "yes"; then
|
||
|
- CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
|
||
|
- CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
|
||
|
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
|
||
|
- fi
|
||
|
- fi
|
||
|
+ CFLAGS="$CFLAGS"
|
||
|
+ CXXFLAGS="$CXXFLAGS"
|
||
|
+ FFMPEG_EXTRACFLAGS=""
|
||
|
fi
|
||
|
|
||
|
# Checks for library functions.
|
||
|
diff -urN a/configure.in b/configure.in
|
||
|
--- a/configure.in 2012-03-21 16:07:50.000000000 -0600
|
||
|
+++ b/configure.in 2012-06-08 14:46:52.687054825 -0600
|
||
|
@@ -572,32 +572,9 @@
|
||
|
LIBS="$LIBS -framework ApplicationServices"
|
||
|
fi
|
||
|
elif test "$use_arch" = "arm"; then
|
||
|
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
|
||
|
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
|
||
|
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
|
||
|
- if test "$use_tegra" = "yes"; then
|
||
|
- # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
|
||
|
- SAVE_CFLAGS="$CFLAGS"
|
||
|
- CFLAGS="-mfpu=vfpv3-d16"
|
||
|
- AC_COMPILE_IFELSE(
|
||
|
- [AC_LANG_SOURCE([int foo;])],
|
||
|
- [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
|
||
|
- CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
|
||
|
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
|
||
|
- use_cpu=cortex-a9],
|
||
|
- [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
|
||
|
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
|
||
|
- use_cpu=cortex-a8])
|
||
|
- else
|
||
|
- # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
|
||
|
- CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
|
||
|
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
|
||
|
- if test "$use_neon" = "yes"; then
|
||
|
- CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
|
||
|
- CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
|
||
|
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
|
||
|
- fi
|
||
|
- fi
|
||
|
+ CFLAGS="$CFLAGS"
|
||
|
+ CXXFLAGS="$CXXFLAGS"
|
||
|
+ FFMPEG_EXTRACFLAGS=""
|
||
|
fi
|
||
|
|
||
|
# Checks for library functions.
|
||
|
diff -urN a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
|
||
|
--- a/xbmc/utils/MathUtils.h 2012-03-21 16:07:50.000000000 -0600
|
||
|
+++ b/xbmc/utils/MathUtils.h 2012-06-08 15:43:59.044891727 -0600
|
||
|
@@ -63,46 +63,8 @@
|
||
|
sar i, 1
|
||
|
}
|
||
|
#else
|
||
|
-#if defined(__powerpc__) || defined(__ppc__)
|
||
|
+#if defined(__powerpc__) || defined(__ppc__) || defined(__arm__)
|
||
|
i = floor(x + round_to_nearest);
|
||
|
-#elif defined(__arm__)
|
||
|
- // From 'ARM®v7-M Architecture Reference Manual' page A7-569:
|
||
|
- // "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode"
|
||
|
- // Because of this...we must use some less-than-straightforward logic to perform this operation without
|
||
|
- // changing the rounding mode flags
|
||
|
-
|
||
|
- /* The assembly below implements the following logic:
|
||
|
- if (x < 0)
|
||
|
- inc = -0.5f
|
||
|
- else
|
||
|
- inc = 0.5f
|
||
|
- int_val = trunc(x+inc);
|
||
|
- err = x - int_val;
|
||
|
- if (err == 0.5f)
|
||
|
- int_val++;
|
||
|
- return int_val;
|
||
|
- */
|
||
|
-
|
||
|
- __asm__ __volatile__ (
|
||
|
- "vmov.F64 d1,%[rnd_val] \n\t" // Copy round_to_nearest into a working register (d1 = 0.5)
|
||
|
- "fcmpezd %P[value] \n\t" // Check value against zero (value == 0?)
|
||
|
- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags
|
||
|
- "it mi \n\t"
|
||
|
- "vnegmi.F64 d1, d1 \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1)
|
||
|
- "vadd.F64 d1,%P[value],d1 \n\t" // Add round_to_nearest to value, store result in working register (d1 += value)
|
||
|
- "vcvt.S32.F64 s3,d1 \n\t" // Truncate(round towards zero) (s3 = (int)d1)
|
||
|
- "vmov %[result],s3 \n\t" // Store the integer result in a general-purpose register (result = s3)
|
||
|
- "vcvt.F64.S32 d1,s3 \n\t" // Convert back to floating-point (d1 = (double)s3)
|
||
|
- "vsub.F64 d1,%P[value],d1 \n\t" // Calculate the error (d1 = value - d1)
|
||
|
- "vmov.F64 d2,%[rnd_val] \n\t" // d2 = 0.5;
|
||
|
- "fcmped d1, d2 \n\t" // (d1 == 0.5?)
|
||
|
- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags
|
||
|
- "it eq \n\t"
|
||
|
- "addeq %[result],#1 \n\t" // (if (d1 == d2) result++;)
|
||
|
- : [result] "=r"(i) // Outputs
|
||
|
- : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs
|
||
|
- : "d1", "d2", "s3" // Clobbers
|
||
|
- );
|
||
|
#else
|
||
|
__asm__ __volatile__ (
|
||
|
"fadd %%st\n\t"
|