[libpng16] Ensure that NEON filter stuff is completely disabled when switched

'off'.  Previously the ARM NEON specific files were still built if the option
was switched 'off' as opposed to being explicitly disabled.
This commit is contained in:
John Bowler 2013-04-25 10:03:42 -05:00 committed by Glenn Randers-Pehrson
parent 34d20f482f
commit 7b1da52549
3 changed files with 33 additions and 9 deletions

View File

@ -27,6 +27,9 @@ Changes since the last public release (1.6.2):
Version 1.6.3beta01 [April 25, 2013] Version 1.6.3beta01 [April 25, 2013]
Revised stack marking in arm/filter_neon.S and configure.ac. Revised stack marking in arm/filter_neon.S and configure.ac.
Ensure that NEON filter stuff is completely disabled when switched 'off'.
Previously the ARM NEON specific files were still built if the option
was switched 'off' as opposed to being explicitly disabled.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -4509,6 +4509,9 @@ Version 1.6.2 [April 25, 2013]
Version 1.6.3beta01 [April 25, 2013] Version 1.6.3beta01 [April 25, 2013]
Revised stack marking in arm/filter_neon.S and configure.ac. Revised stack marking in arm/filter_neon.S and configure.ac.
Ensure that NEON filter stuff is completely disabled when switched 'off'.
Previously the ARM NEON specific files were still built if the option
was switched 'off' as opposed to being explicitly disabled.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -226,30 +226,48 @@ AC_ARG_WITH(libpng-prefix,
fi]) fi])
AM_CONDITIONAL([DO_PNG_PREFIX], [test "${with_libpng_prefix:-no}" != "no"]) AM_CONDITIONAL([DO_PNG_PREFIX], [test "${with_libpng_prefix:-no}" != "no"])
# HOST SPECIFIC OPTIONS
# =====================
#
# ARM
# ===
#
# ARM NEON (SIMD) support.
AC_ARG_ENABLE([arm-neon], AC_ARG_ENABLE([arm-neon],
AS_HELP_STRING([[[--enable-arm-neon]]], AS_HELP_STRING([[[--enable-arm-neon]]],
[Enable ARM NEON optimizations: =off, check, api, on:] [Enable ARM NEON optimizations: =no/off, check, api, yes/on:]
[off: disable the optimizations; check: use internal checking code] [no/off: disable the optimizations; check: use internal checking code]
[(deprecated and poorly supported); api: disable by default, enable by] [(deprecated and poorly supported); api: disable by default, enable by]
[a call to png_set_option; on: turn on unconditionally. The] [a call to png_set_option; yes/on: turn on unconditionally.]),
[default is 'on' if __ARM_NEON__ is defined, otherwise 'off'.]),
[case "$enableval" in [case "$enableval" in
off) no|off)
# disable the default enabling on __ARM_NEON__ systems:
AC_DEFINE([PNG_NO_ARM_NEON], [], AC_DEFINE([PNG_NO_ARM_NEON], [],
[Disable ARM Neon optimizations]);; [Disable ARM Neon optimizations])
# Prevent inclusion of the assembler files below:
enable_arm_neon=no;;
check) check)
AC_DEFINE([PNG_ARM_NEON_CHECK_SUPPORTED], [], AC_DEFINE([PNG_ARM_NEON_CHECK_SUPPORTED], [],
[Check for ARM Neon support at run-time]);; [Check for ARM Neon support at run-time]);;
api) api)
AC_DEFINE([PNG_ARM_NEON_API_SUPPORTED], [], AC_DEFINE([PNG_ARM_NEON_API_SUPPORTED], [],
[Turn on ARM Neon optimizations at run-time]);; [Turn on ARM Neon optimizations at run-time]);;
on) yes|on)
AC_DEFINE([PNG_ARM_NEON_SUPPORTED], [], AC_DEFINE([PNG_ARM_NEON_SUPPORTED], [],
[Enable ARM Neon optimizations]);; [Enable ARM Neon optimizations]);;
*) *)
AC_MSG_ERROR([arm-neon: option value required (off/check/api/on)]);; AC_MSG_ERROR([--enable-arm-neon=${enable_arm_neon}: invalid value])
esac]) esac])
AM_CONDITIONAL([PNG_ARM_NEON], [test "${enable_arm_neon:-no}" != "no"])
# If enable/disable was not specified default to using the optimizations if the
# host CPU is ARM and the compiler is targeting a NEON host. The latter test
# is done in scripts/pnglibconf.dfa by checking for __ARM_NEON__. The
# AM_CONDITIONAL below controls whether the ARM NEON source files are built.
AM_CONDITIONAL([PNG_ARM_NEON],
[test "$enable_arm_neon" != 'no' &&
test "$host_cpu" = 'arm' -o "$enable_arm_neon" != ''])
AC_MSG_NOTICE([[Extra options for compiler: $PNG_COPTS]]) AC_MSG_NOTICE([[Extra options for compiler: $PNG_COPTS]])