mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
[libpng15] 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:
parent
880636292c
commit
b4a08b81b2
7
ANNOUNCE
7
ANNOUNCE
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Libpng 1.5.16beta01 - April 23, 2013
|
Libpng 1.5.16beta01 - April 25, 2013
|
||||||
|
|
||||||
This is not intended to be a public release. It will be replaced
|
This is not intended to be a public release. It will be replaced
|
||||||
within a few weeks by a public version or by another test version.
|
within a few weeks by a public version or by another test version.
|
||||||
@ -26,10 +26,13 @@ Other information:
|
|||||||
|
|
||||||
Changes since the last public release (1.5.15):
|
Changes since the last public release (1.5.15):
|
||||||
|
|
||||||
Version 1.5.16beta01 [April 23, 2013]
|
Version 1.5.16beta01 [April 25, 2013]
|
||||||
Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
|
Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
|
||||||
(Flavio Medeiros).
|
(Flavio Medeiros).
|
||||||
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
|
||||||
|
7
CHANGES
7
CHANGES
@ -4070,10 +4070,13 @@ Version 1.5.15rc01 [March 21, 2013]
|
|||||||
Version 1.5.15 [March 28, 2013]
|
Version 1.5.15 [March 28, 2013]
|
||||||
No changes.
|
No changes.
|
||||||
|
|
||||||
Version 1.5.16beta01 [April 23, 2013]
|
Version 1.5.16beta01 [April 25, 2013]
|
||||||
Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
|
Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
|
||||||
(Flavio Medeiros).
|
(Flavio Medeiros).
|
||||||
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
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2013 Glenn Randers-Pehrson
|
* Copyright (c) 2013 Glenn Randers-Pehrson
|
||||||
* Written by Mans Rullgard, 2011.
|
* Written by Mans Rullgard, 2011.
|
||||||
* Last changed in libpng 1.5.15 [March 28, 2013]
|
* Last changed in libpng 1.5.16 [(PENDING RELEASE)]
|
||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
* For conditions of distribution and use, see the disclaimer
|
* For conditions of distribution and use, see the disclaimer
|
||||||
@ -216,4 +216,4 @@ png_init_filter_functions_neon(png_structp pp, unsigned int bpp)
|
|||||||
png_read_filter_row_paeth4_neon;
|
png_read_filter_row_paeth4_neon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* FILTER_OPTIMIZATIONS && __arm__ && __ARM_NEON__ */
|
#endif /* PNG_ARM_NEON_SUPPORTED */
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2013 Glenn Randers-Pehrson
|
* Copyright (c) 2013 Glenn Randers-Pehrson
|
||||||
* Written by Mans Rullgard, 2011.
|
* Written by Mans Rullgard, 2011.
|
||||||
* Last changed in libpng 1.5.16 [%RDATE%]
|
* Last changed in libpng 1.5.16 [(PENDING RELEASE)]
|
||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
* For conditions of distribution and use, see the disclaimer
|
* For conditions of distribution and use, see the disclaimer
|
||||||
@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* This is required to get the symbol renames, which are #defines, and also
|
/* This is required to get the symbol renames, which are #defines, and also
|
||||||
* includes the value of PNG_FILTER_OPTIMIZATIONS.
|
* includes the definition (or not) of PNG_ARM_NEON_SUPPORTED.
|
||||||
*/
|
*/
|
||||||
#define PNG_VERSION_INFO_ONLY
|
#define PNG_VERSION_INFO_ONLY
|
||||||
#include "../pngpriv.h"
|
#include "../pngpriv.h"
|
||||||
@ -20,8 +20,7 @@
|
|||||||
.section .note.GNU-stack,"",%progbits /* mark stack as non-executable */
|
.section .note.GNU-stack,"",%progbits /* mark stack as non-executable */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_FILTER_OPTIMIZATIONS) && defined(__arm__) && \
|
#ifdef PNG_ARM_NEON_SUPPORTED
|
||||||
defined(__ARM_NEON__)
|
|
||||||
|
|
||||||
#ifdef __ELF__
|
#ifdef __ELF__
|
||||||
# define ELF
|
# define ELF
|
||||||
@ -233,4 +232,4 @@ func png_read_filter_row_paeth3_neon, export=1
|
|||||||
|
|
||||||
pop {r4,pc}
|
pop {r4,pc}
|
||||||
endfunc
|
endfunc
|
||||||
#endif /* FILTER_OPTIMIZATIONS && __arm__ && __ARM_NEON__ */
|
#endif /* PNG_ARM_NEON_SUPPORTED */
|
||||||
|
36
configure.ac
36
configure.ac
@ -166,30 +166,48 @@ AC_ARG_WITH(binconfigs,
|
|||||||
[binconfigs='${binconfigs}'])
|
[binconfigs='${binconfigs}'])
|
||||||
AC_SUBST([binconfigs])
|
AC_SUBST([binconfigs])
|
||||||
|
|
||||||
|
# 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 comppiler 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]])
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user