From 4c756aa559ba4db4e9278ce065ace00c9601444f Mon Sep 17 00:00:00 2001 From: Luigi Scarso <luigi.scarso@gmail.com> Date: Fri, 24 Mar 2017 08:29:55 +0000 Subject: [PATCH] sync with texlive. --- source/ChangeLog | 8 +- source/Makefile.am | 6 +- source/Makefile.in | 4 - source/build-aux/config.sub | 7 +- source/configure | 4 +- source/doc/ChangeLog | 9 + source/doc/tlbuild.info | 689 ++++++++-------- source/doc/tlbuild.texi | 58 +- source/libs/README | 8 +- source/libs/configure | 20 +- source/libs/gmp/Makefile.am | 9 +- source/libs/gmp/Makefile.in | 2 +- source/libs/libpng/ChangeLog | 5 + source/libs/libpng/Makefile.am | 7 +- source/libs/libpng/Makefile.in | 2 +- source/libs/libpng/README | 4 +- source/libs/libpng/TLpatches/ChangeLog | 4 + source/libs/libpng/TLpatches/TL-Changes | 4 +- source/libs/libpng/configure | 20 +- source/libs/libpng/libpng-src/ANNOUNCE | 41 +- source/libs/libpng/libpng-src/CHANGES | 23 + source/libs/libpng/libpng-src/CMakeLists.txt | 44 +- source/libs/libpng/libpng-src/LICENSE | 6 +- source/libs/libpng/libpng-src/Makefile.am | 10 + source/libs/libpng/libpng-src/README | 8 +- source/libs/libpng/libpng-src/TODO | 1 + source/libs/libpng/libpng-src/config.h.in | 12 + source/libs/libpng/libpng-src/configure.ac | 87 +- .../libpng-src/contrib/examples/pngtopng.c | 23 +- .../libpng/libpng-src/contrib/intel/INSTALL | 158 ---- .../libpng-src/contrib/intel/intel_sse.patch | 190 ----- .../libpng-src/contrib/libtests/pngvalid.c | 16 +- .../libpng-src/contrib/powerpc-vsx/README | 81 ++ .../libpng-src/contrib/powerpc-vsx/linux.c | 57 ++ .../contrib/powerpc-vsx/linux_aux.c | 36 + .../intel/filter_sse2_intrinsics.c | 9 +- .../{contrib => }/intel/intel_init.c | 11 +- .../libs/libpng/libpng-src/libpng-manual.txt | 6 +- source/libs/libpng/libpng-src/libpng.3 | 20 +- source/libs/libpng/libpng-src/libpngpf.3 | 4 +- source/libs/libpng/libpng-src/png.5 | 2 +- source/libs/libpng/libpng-src/png.c | 14 +- source/libs/libpng/libpng-src/png.h | 29 +- source/libs/libpng/libpng-src/pngconf.h | 2 +- source/libs/libpng/libpng-src/pnglibconf.h | 6 +- source/libs/libpng/libpng-src/pngpriv.h | 90 +- source/libs/libpng/libpng-src/pngrtran.c | 12 +- source/libs/libpng/libpng-src/pngrutil.c | 6 +- source/libs/libpng/libpng-src/pngtest.c | 2 +- source/libs/libpng/libpng-src/pngwutil.c | 19 +- .../powerpc/filter_vsx_intrinsics.c | 767 ++++++++++++++++++ .../libpng/libpng-src/powerpc/powerpc_init.c | 125 +++ .../libpng-src/projects/vstudio/README.txt | 2 +- .../libpng-src/projects/vstudio/zlib.props | 2 +- .../libs/libpng/libpng-src/scripts/README.txt | 10 +- source/libs/libpng/libpng-src/scripts/def.c | 2 +- .../libpng-src/scripts/libpng-config-head.in | 2 +- .../libpng/libpng-src/scripts/libpng.pc.in | 2 +- .../libpng/libpng-src/scripts/makefile.cegcc | 2 +- .../libpng/libpng-src/scripts/makefile.linux | 2 +- .../libpng/libpng-src/scripts/makefile.msys | 2 +- .../libpng-src/scripts/makefile.ne12bsd | 2 +- .../libpng/libpng-src/scripts/makefile.netbsd | 2 +- .../libpng-src/scripts/makefile.openbsd | 2 +- .../libpng/libpng-src/scripts/pnglibconf.dfa | 27 + .../libpng-src/scripts/pnglibconf.h.prebuilt | 6 +- .../libpng/libpng-src/scripts/symbols.def | 2 +- source/libs/libpng/version.ac | 2 +- source/libs/lua52/Makefile.am | 6 +- source/libs/lua52/Makefile.in | 2 +- source/libs/luajit/Makefile.am | 8 +- source/libs/luajit/Makefile.in | 2 +- source/libs/mpfr/Makefile.am | 8 +- source/libs/mpfr/Makefile.in | 2 +- source/libs/poppler/Makefile.am | 7 +- source/libs/poppler/Makefile.in | 2 +- .../libs/poppler/TLpatches/patch-02-LLONG_MAX | 2 +- .../TLpatches/patch-03-Object-functions | 2 +- source/libs/zlib/Makefile.am | 7 +- source/libs/zlib/Makefile.in | 2 +- source/libs/zziplib/Makefile.am | 6 +- source/libs/zziplib/Makefile.in | 2 +- source/texk/README | 4 +- source/texk/configure | 20 +- source/texk/kpathsea/ChangeLog | 18 + source/texk/kpathsea/Makefile.am | 11 +- source/texk/kpathsea/Makefile.in | 43 +- source/texk/kpathsea/NEWS | 6 + source/texk/kpathsea/c-auto.in | 2 +- source/texk/kpathsea/configure | 24 +- source/texk/kpathsea/doc/kpathsea.info | 114 +-- source/texk/kpathsea/doc/kpathsea.texi | 6 +- source/texk/kpathsea/kpsewhich.c | 4 +- source/texk/kpathsea/texmf.cnf | 8 +- source/texk/kpathsea/version.ac | 6 +- source/texk/texlive/configure | 20 +- source/texk/web2c/ChangeLog | 5 + source/texk/web2c/Makefile.in | 9 +- source/texk/web2c/NEWS | 1 + source/texk/web2c/configure | 24 +- source/texk/web2c/doc/web2c.info | 6 +- source/texk/web2c/doc/web2c.texi | 4 +- source/texk/web2c/lib/ChangeLog | 4 + source/texk/web2c/lib/texmfmp.c | 7 +- source/texk/web2c/mplibdir/mp.w | 10 +- source/texk/web2c/mplibdir/mpmath.w | 2 +- source/texk/web2c/mplibdir/mpmathdouble.w | 2 +- source/texk/web2c/web2c/configure | 20 +- source/texk/web2c/xetexdir/am/xetex.am | 1 - source/utils/configure | 20 +- source/version.ac | 6 +- 111 files changed, 2193 insertions(+), 1128 deletions(-) delete mode 100644 source/libs/libpng/libpng-src/contrib/intel/INSTALL delete mode 100644 source/libs/libpng/libpng-src/contrib/intel/intel_sse.patch create mode 100644 source/libs/libpng/libpng-src/contrib/powerpc-vsx/README create mode 100644 source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux.c create mode 100644 source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c rename source/libs/libpng/libpng-src/{contrib => }/intel/filter_sse2_intrinsics.c (98%) rename source/libs/libpng/libpng-src/{contrib => }/intel/intel_init.c (86%) create mode 100644 source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c create mode 100644 source/libs/libpng/libpng-src/powerpc/powerpc_init.c diff --git a/source/ChangeLog b/source/ChangeLog index 05fb9244e..e4c2f98de 100644 --- a/source/ChangeLog +++ b/source/ChangeLog @@ -1,6 +1,10 @@ -2017-03-10 Karl Berry <karl@tug.org> +2017-03-21 Karl Berry <karl@freefriends.org> - * Makefile.am (reauto): convenience target. + * everywhere: use EXTRA_DIST=TLpatches instead of <pkgname>-PATCHES. + +2017-03-18 Karl Berry <karl@tug.org> + + * version.ac (tex_live_version): 2017/dev => 2017 for TL17. 2016-11-16 Karl Berry <karl@tug.org> diff --git a/source/Makefile.am b/source/Makefile.am index 9751f860e..05b236d22 100644 --- a/source/Makefile.am +++ b/source/Makefile.am @@ -1,4 +1,4 @@ -## $Id: Makefile.am 43448 2017-03-10 00:14:50Z karl $ +## $Id: Makefile.am 43493 2017-03-14 00:03:01Z karl $ ## Makefile.am for the TeX Live top-level ## ## Copyright 2016 Karl Berry <tex-live@tug.org> @@ -81,10 +81,6 @@ skip: texlinks: cd $(texlinks_dir) && $(MAKE) $(AM_MAKEFLAGS) run-texlinks -.PHONY: triptrap -reauto: - ./reautoconf - # Special target to run TRIP and TRAP tests and create diffs. .PHONY: triptrap triptrap: diff --git a/source/Makefile.in b/source/Makefile.in index 0a882cc5b..7ade0ac1c 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -980,10 +980,6 @@ skip: texlinks: cd $(texlinks_dir) && $(MAKE) $(AM_MAKEFLAGS) run-texlinks -.PHONY: triptrap -reauto: - ./reautoconf - # Special target to run TRIP and TRAP tests and create diffs. .PHONY: triptrap triptrap: diff --git a/source/build-aux/config.sub b/source/build-aux/config.sub index 87abeab6c..7203bf1e6 100755 --- a/source/build-aux/config.sub +++ b/source/build-aux/config.sub @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2017-02-07' +timestamp='2017-03-21' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -315,6 +315,7 @@ case $basic_machine in | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ + | wasm32 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -446,6 +447,7 @@ case $basic_machine in | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -1246,6 +1248,9 @@ case $basic_machine in basic_machine=a29k-wrs os=-vxworks ;; + wasm32) + basic_machine=wasm32-unknown + ;; w65*) basic_machine=w65-wdc os=-none diff --git a/source/configure b/source/configure index 5cec2b153..4b18a4567 100755 --- a/source/configure +++ b/source/configure @@ -22620,11 +22620,11 @@ msg_compiling="$msg_compiling test "x$srcdir" = x. || msg_compiling="$msg_compiling from sources in $kpse_src" { $as_echo "$as_me:${as_lineno-$LINENO}: result: -** Configuration summary for $PACKAGE_STRING (2017/dev$with_banner_add): +** Configuration summary for $PACKAGE_STRING (2017$with_banner_add): $msg_compiling" >&5 $as_echo " -** Configuration summary for $PACKAGE_STRING (2017/dev$with_banner_add): +** Configuration summary for $PACKAGE_STRING (2017$with_banner_add): $msg_compiling" >&6; } case $kpse_src$kpse_bld in diff --git a/source/doc/ChangeLog b/source/doc/ChangeLog index 5f84f42f3..a7f9c30d9 100644 --- a/source/doc/ChangeLog +++ b/source/doc/ChangeLog @@ -1,3 +1,12 @@ +2017-03-22 Karl Berry <karl@tug.org> + + * tlbuild.texi: we now default to gcc for ICU too. + +2017-03-19 Karl Berry <karl@tug.org> + + * tlbuild.texi: TLPATCHES -> TLpatches. + (direntry): add install-tl and tlmgr entries. + 2016-01-21 Karl Berry <karl@freefriends.org> * tlbuild.texi (Cross problems): Lua[JIT]TeX no longer uses diff --git a/source/doc/tlbuild.info b/source/doc/tlbuild.info index 98e2d5b8e..a3452ea80 100644 --- a/source/doc/tlbuild.info +++ b/source/doc/tlbuild.info @@ -1,4 +1,4 @@ -This is tlbuild.info, produced by makeinfo version 6.3 from +This is tlbuild.info, produced by makeinfo version 6.1 from tlbuild.texi. This file documents the TeX Live build system and more. @@ -24,10 +24,16 @@ START-INFO-DIR-ENTRY * TLbuild: (tlbuild). TeX Live configuration and development. END-INFO-DIR-ENTRY +INFO-DIR-SECTION Individual utilities +START-INFO-DIR-ENTRY +* install-tl:: Installing TeX Live. +* tlmgr:: Managing TeX Live. +END-INFO-DIR-ENTRY + File: tlbuild.info, Node: Top, Next: Introduction, Up: (dir) -Building TeX Live (2016) +Building TeX Live (2017) ************************ For an overview of this manual, *note Introduction::. @@ -53,8 +59,7 @@ File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev: 1 Introduction ************** -This manual (dated February 2017) corresponds to the TeX Live 2016 -release. +This manual (dated April 2017) corresponds to the TeX Live 2017 release. This manual is aimed at system installers and programmers, and focuses on how to configure, build, and develop the TeX Live (TL) @@ -362,30 +367,26 @@ debugging purposes. things are working. There are many 'configure' options you can tweak as desired; check the output from 'configure --help'. - Finally, the above retrieves the entire TL source tree (some 300mb). -It is natural to ask if this is really necessary. Strictly speaking, -the answer is no, but it is vastly more convenient to do so. If you cut -down the source tree, you must also give additional 'configure' flags to -individually disable using system versions of libraries, or the -intricacies of the dependencies (such as 'teckit' requiring 'zlib') will -have undesired side effects. For an example, see the 'build-pdftex.sh' -script in the 'pdftex' development sources (<http://pdftex.org>), which -are indeed a cut-down TL source tree. - - Caveat 1: even with '--disable-all-pkgs', dependencies will be -checked. For instance, if a non-MacOSX system does not have -'fontconfig', XeTeX cannot be built (*note Prerequisites::) and -'configure' will terminate. To proceed without such dependencies, -specify '--enable-missing' also. (Arguably this should happen -automatically.) - - Caveat 2: unless 'CC' and 'CXX' and 'OBJCXX' are explicitly -specified, each package will configure its own compiler(s). In -practice, this results in a conflict in only one instance: the ICU -('libs/icu') library will prefer 'clang' and 'clang++' over all others -if they are installed, whereas everything else prefers 'gcc' and 'g++'. -Usually the results will be interoperable, but it can cause extra -confusion and problems when debugging a program that uses ICU. + Finally, the above retrieves the entire TL source tree (several +hundred megabytes). It is natural to ask if this is really necessary. +Strictly speaking, the answer is no, but it is vastly more convenient to +do so. If you cut down the source tree, you must also give additional +'configure' flags to individually disable using system versions of +libraries, or the intricacies of the dependencies (such as 'teckit' +requiring 'zlib') will have undesired side effects. For an example, see +the 'build-pdftex.sh' script in the 'pdftex' development source +(<http://pdftex.org>), which is indeed a cut-down TL source tree. + + Even with '--disable-all-pkgs', dependencies will be checked. For +instance, if a non-MacOSX system does not have 'fontconfig', XeTeX +cannot be built (*note Prerequisites::) and 'configure' will terminate. +To proceed without such dependencies, specify '--enable-missing' also. +(Arguably this should happen automatically.) + + By default, the 'gcc' compilers will be used if present; otherwise, +individual packages may use something different. You can explicitly +specify the compilers to be used with the environment variables 'CC', +'CXX', and 'OBJCXX'. File: tlbuild.info, Node: Installing, Next: Layout and infrastructure, Prev: Building, Up: Top @@ -892,7 +893,7 @@ File: tlbuild.info, Node: png library, Next: zlib library, Up: Library module ---------------------------------------- This generic library uses the source tree in, e.g., the subdirectory -'libpng-src/' with all modifications for TL recorded in 'TLPATCHES/*'. +'libpng-src/' with all modifications for TL recorded in 'TLpatches/*'. The 'configure.ac' fragment 'ac/withenable.ac' contains KPSE_WITH_LIB([libpng], [zlib]) @@ -1013,7 +1014,7 @@ File: tlbuild.info, Node: t1utils package, Next: xindy package, Up: Program m ---------------------------------------------- Once again we use the distributed source tree 't1utils-src' with -modifications documented in 'TLPATCHES/*' and a proxy build system +modifications documented in 'TLpatches/*' and a proxy build system consisting of 'configure.ac' and 'Makefile.am'. The fragment 'ac/withenable.ac' contains @@ -1029,7 +1030,7 @@ File: tlbuild.info, Node: xindy package, Next: xdvik package, Prev: t1utils p ------------------------------------------ This module uses the distributed source tree 'xindy-src/' with -modifications documented in 'TLPATCHES/*', a proxy 'configure.ac', and a +modifications documented in 'TLpatches/*', a proxy 'configure.ac', and a wrapper 'Makefile.am' that descends into 'xindy-src'. The 'xindy' build requires a 'make' that supports a 'VPATH' build, can handle all targets, and do not refer to '${top_srcdir}' or '${top_builddir}'. The fragment @@ -1094,7 +1095,7 @@ TL build system. In any case, a new package directory 'foo' should contain the original sources, as modified for TL, in 'foo/foo-src', and the changes -should be documented in 'foo/TLPATCHES/*'; changes should also be +should be documented in 'foo/TLpatches/*'; changes should also be submitted upstream whenever reasonable, of course. In addition, 'foo/' will need the usual Automake build-related files ('configure.ac', 'Makefile.am', etc. Please keep a 'ChangeLog' for all TL changes. @@ -4567,11 +4568,10 @@ Index * callexe.c: Macros for Windows. (line 32) * CC: Variables for configure. (line 10) -* CC=C-COMPILER: Build one package. (line 74) +* CC=C-COMPILER: Build one package. (line 73) * CC_BUILD: Cross problems. (line 13) * chktex: Declarations and definitions. (line 18) -* clang compilers, preferred by ICU: Build one package. (line 74) * clisp: Variables for configure. (line 18) * CLISP: Variables for configure. @@ -4623,7 +4623,7 @@ Index * ctangle: Cross problems. (line 26) * CXX: Variables for configure. (line 11) -* CXX=C++-COMPILER: Build one package. (line 74) +* CXX=C++-COMPILER: Build one package. (line 73) * Debian installation of build prerequisites: Prerequisites. (line 60) * declarations and definitions, in source code: Declarations and definitions. (line 6) @@ -4678,7 +4678,6 @@ Index * ICU cross compiling: Cross problems. (line 20) * ICU libraries: Variables for configure. (line 24) -* ICU, prefers clang compilers: Build one package. (line 74) * icu-config: Variables for configure. (line 24) * ICU_CONFIG: Variables for configure. @@ -4812,7 +4811,7 @@ Index * motif: Configure options for texk/xdvik. (line 9) * native cross compilation: Cross compilation. (line 10) -* OBJCXX=OBJC-COMPILER: Build one package. (line 74) +* OBJCXX=OBJC-COMPILER: Build one package. (line 73) * one package, building: Build one package. (line 6) * OpenGL, required for Asymptote: asymptote. (line 6) * operating system distribution, building for: Distro builds. (line 6) @@ -4939,313 +4938,313 @@ Index Tag Table: -Node: Top1025 -Node: Introduction1943 -Node: Overview of build system3698 -Node: Prerequisites5741 -Node: Building8139 -Node: Build iteration9387 -Node: Build problems10459 -Node: Build in parallel10862 -Node: Build distribution11454 -Node: Build one package12025 -Node: Installing15611 -Node: Installation directories16626 -Node: Linked scripts18442 -Node: Distro builds19923 -Node: Layout and infrastructure22313 -Node: Build system tools23141 -Node: Top-level directories25150 -Node: Autoconf macros27564 -Node: General setup macros28265 -Node: Macros for programs29132 -Node: Macros for compilers29944 -Node: Macros for libraries31378 -Node: Macros for library and header flags31804 -Node: Macros for Windows33684 -Node: Library modules35261 -Node: png library35750 -Node: zlib library38024 -Node: freetype library38539 -Node: kpathsea library39067 -Node: Program modules40466 -Node: t1utils package40894 -Node: xindy package41445 -Node: xdvik package42595 -Node: asymptote43668 -Node: Extending TeX Live44119 -Node: Adding a new program module44896 -Node: Adding a new generic library module46415 -Node: Adding a new TeX-specific library module48628 -Node: Configure options49315 -Node: Global configure options50697 -Node: --disable-native-texlive-build51239 -Node: --prefix --bindir ...52229 -Node: --disable-largefile52769 -Node: --disable-missing53454 -Node: --enable-compiler-warnings=LEVEL53855 -Node: --enable-cxx-runtime-hack54594 -Node: --enable-maintainer-mode55021 -Node: --enable-multiplatform55550 -Node: --enable-shared56088 -Node: --enable-silent-rules56459 -Node: --without-ln-s56915 -Node: --without-x57266 -Node: Program-specific configure options57454 -Node: --enable-PROG --disable-PROG58097 -Node: --disable-all-pkgs58374 -Node: Configure options for texk/web2c59360 -Node: Configure options for texk/bibtex-x61878 -Node: Configure options for texk/dvipdfm-x62421 -Node: Configure options for texk/dvisvgm63194 -Node: Configure options for texk/texlive64080 -Node: Configure options for texk/xdvik64501 -Node: Configure options for utils/xindy65105 -Node: Library-specific configure options66006 -Node: Configure options for kpathsea67017 -Node: Configure options for system poppler67726 -Node: Variables for configure68517 -Node: Cross compilation69945 -Node: Cross configuring71244 -Node: Cross problems72917 -Node: Coding conventions74564 -Node: Declarations and definitions75291 -Node: Const77473 -Node: install-tl79336 -Node: install-tl NAME79677 -Node: install-tl SYNOPSIS79835 -Node: install-tl DESCRIPTION80043 -Node: install-tl REFERENCES81044 -Node: install-tl OPTIONS81560 -Ref: install-tl *-gui* [[=]_module_]81914 -Ref: install-tl text82123 -Ref: install-tl wizard82246 -Ref: install-tl perltk82400 -Ref: install-tl *-no-gui*82834 -Ref: install-tl *-lang* _llcode_82915 -Ref: install-tl *-repository* _url|path_83602 -Ref: install-tl *-select-repository*85413 -Ref: install-tl *-all-options*85849 -Ref: install-tl *-custom-bin* _path_86156 -Ref: install-tl *-debug-translation*86811 -Ref: install-tl *-force-platform* _platform_87030 -Ref: install-tl *-help*, *--help*, *-?*87274 -Ref: install-tl *-in-place*87667 -Ref: install-tl *-logfile* _file_88194 -Ref: install-tl *-no-cls*88545 -Ref: install-tl *-non-admin*88676 -Ref: install-tl *--persistent-downloads*88781 -Ref: install-tl *--no-persistent-downloads*88809 -Ref: install-tl *-portable*89417 -Ref: install-tl *-print-platform*89556 -Ref: install-tl *-profile* _profile_89749 -Ref: install-tl *-q*91243 -Ref: install-tl *-scheme* _scheme_91305 -Ref: install-tl *-v*91779 -Ref: install-tl *-version*, *--version*91940 -Node: install-tl ENVIRONMENT VARIABLES92071 -Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK92460 -Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE92662 -Ref: install-tl TEXLIVE_INSTALL_PREFIX92768 -Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG92799 -Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME92828 -Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL92858 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG92892 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR92923 -Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR92951 -Ref: install-tl NOPERLDOC93006 -Node: install-tl AUTHORS AND COPYRIGHT93070 -Node: tlmgr93428 -Node: tlmgr NAME93865 -Node: tlmgr SYNOPSIS93990 -Node: tlmgr DESCRIPTION94180 -Node: tlmgr EXAMPLES95276 -Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet95567 -Ref: tlmgr tlmgr update --list95748 -Ref: tlmgr tlmgr update --all95841 -Ref: tlmgr tlmgr info _pkg_95997 -Node: tlmgr OPTIONS96203 -Ref: tlmgr *--repository* _url|path_96723 -Ref: tlmgr *--gui* [_action_]97448 -Ref: tlmgr *--gui-lang* _llcode_97855 -Ref: tlmgr *--debug-translation*98538 -Ref: tlmgr *--machine-readable*98741 -Ref: tlmgr *--no-execute-actions*99009 -Ref: tlmgr *--package-logfile* _file_99202 -Ref: tlmgr *--pause*99457 -Ref: tlmgr *--persistent-downloads*99612 -Ref: tlmgr *--no-persistent-downloads*99640 -Ref: tlmgr *--pin-file*100134 -Ref: tlmgr *--usermode*100352 -Ref: tlmgr *--usertree* _dir_100472 -Node: tlmgr ACTIONS101022 -Node: tlmgr help102254 -Node: tlmgr version102730 -Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...103048 -Ref: tlmgr *--backupdir* _directory_104142 -Ref: tlmgr *--all*104339 -Ref: tlmgr *--clean*[=_N_]104561 -Ref: tlmgr *--dry-run*104858 -Node: tlmgr candidates _pkg_104978 -Ref: tlmgr *candidates _pkg_* 1105265 -Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all]105409 -Ref: tlmgr *files*105852 -Ref: tlmgr *depends*105987 -Ref: tlmgr *executes*106329 -Ref: tlmgr *runfiles*106447 -Ref: tlmgr *--use-svn*106559 -Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]106676 -Node: tlmgr dump-tlpdb [--local|--remote]108748 -Ref: tlmgr *--local*109258 -Ref: tlmgr *--remote*109297 -Node: tlmgr generate [_option_]... _what_109719 -Ref: tlmgr *generate language*109960 -Ref: tlmgr *generate language.dat*109985 -Ref: tlmgr *generate language.def*110010 -Ref: tlmgr *generate language.dat.lua*110039 -Ref: tlmgr *generate fmtutil*110059 -Ref: tlmgr *--dest* _output_file_112296 -Ref: tlmgr *--localcfg* _local_conf_file_112872 -Ref: tlmgr *--rebuild-sys*112995 -Node: tlmgr gui113856 -Node: tlmgr info [_option_...] [collections|schemes|_pkg_...]114100 -Ref: tlmgr *--list*115305 -Ref: tlmgr *--only-installed*115584 -Ref: tlmgr *--taxonomy*115799 -Ref: tlmgr *--keyword*115811 -Ref: tlmgr *--functionality*115829 -Ref: tlmgr *--characterization*115850 -Node: tlmgr init-usertree116063 -Node: tlmgr install [_option_]... _pkg_...116489 -Ref: tlmgr *--file*116853 -Ref: tlmgr *--reinstall*117079 -Ref: tlmgr *--no-depends*117459 -Ref: tlmgr *--no-depends-at-all*117618 -Ref: tlmgr *--dry-run* 1118016 -Ref: tlmgr *--force*118134 -Node: tlmgr option118340 -Ref: tlmgr *option [show]*118513 -Ref: tlmgr *option showall*118531 -Ref: tlmgr *option _key_ [_value_]*118557 -Node: tlmgr paper122405 -Ref: tlmgr *paper [a4|letter]*122590 -Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*122664 -Node: tlmgr path [--w32mode=user|admin] [add|remove]123691 -Node: tlmgr pinning125174 -Ref: tlmgr pinning show125481 -Ref: tlmgr pinning add _repo_ _pkgglob_...125554 -Ref: tlmgr pinning remove _repo_ _pkgglob_...125673 -Ref: tlmgr pinning remove _repo_ --all125826 -Node: tlmgr platform list|add|remove _platform_...125880 -Node: tlmgr platform set _platform_126128 -Node: tlmgr platform set auto126356 -Ref: tlmgr *--dry-run* 2127473 -Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...127582 -Node: tlmgr print-platform128884 -Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]129356 -Ref: tlmgr *--all* 1130252 -Ref: tlmgr *--backupdir* _directory_ 1130446 -Ref: tlmgr *--dry-run* 3130602 -Ref: tlmgr *--force* 1130719 -Node: tlmgr remove [_option_]... _pkg_...130747 -Ref: tlmgr *--no-depends* 1131270 -Ref: tlmgr *--no-depends-at-all* 1131332 -Ref: tlmgr *--force* 2131388 -Ref: tlmgr *--dry-run* 4131860 -Node: tlmgr repository131967 -Ref: tlmgr *repository list*132175 -Ref: tlmgr *repository list _path|tag_*132205 -Ref: tlmgr *repository add _path_ [_tag_]*132238 -Ref: tlmgr *repository remove _path|tag_*132270 -Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*132324 -Node: tlmgr search [_option_...] _what_133408 -Node: tlmgr search [_option_...] --file _what_133919 -Node: tlmgr search [_option_...] --taxonomy _what_134170 -Node: tlmgr search [_option_...] --keyword _what_134481 -Node: tlmgr search [_option_...] --functionality _what_134799 -Node: tlmgr search [_option_...] --characterization _what_135137 -Node: tlmgr search [_option_...] --all _what_135477 -Ref: tlmgr *--global*135925 -Ref: tlmgr *--word*136037 -Ref: tlmgr *--list* 1136276 -Ref: tlmgr *--file* 1136622 -Ref: tlmgr *--taxonomy* 1136679 -Ref: tlmgr *--keyword* 1136691 -Ref: tlmgr *--functionality* 1136709 -Ref: tlmgr *--characterization* 1136730 -Ref: tlmgr *--all* 2136885 -Node: tlmgr uninstall136968 -Ref: tlmgr *--force* 3137222 -Node: tlmgr update [_option_]... [_pkg_]...137278 -Ref: tlmgr *--all* 3137649 -Ref: tlmgr *--self*139390 -Ref: tlmgr *--dry-run* 5140154 -Ref: tlmgr *--list* [_pkg_]140331 -Ref: tlmgr *--exclude* _pkg_141020 -Ref: tlmgr *--no-auto-remove* [_pkg_]...141713 -Ref: tlmgr *--no-auto-install* [_pkg_]...142164 -Ref: tlmgr *--reinstall-forcibly-removed*142820 -Ref: tlmgr *--backup* and *--backupdir* _directory_143384 -Ref: tlmgr *--no-depends* 2144565 -Ref: tlmgr *--no-depends-at-all* 2144768 -Ref: tlmgr *--force* 4144824 -Node: tlmgr USER MODE145250 -Node: tlmgr user mode install148061 -Node: tlmgr user mode backup; restore; remove; update149008 -Node: tlmgr user mode generate; option; paper149450 -Node: tlmgr CONFIGURATION FILE FOR TLMGR149826 -Node: tlmgr TAXONOMIES150917 -Ref: tlmgr --keyword 2151543 -Ref: tlmgr --functionality 2151628 -Ref: tlmgr --characterization 2151784 -Ref: tlmgr --taxonomy 2151925 -Node: tlmgr MULTIPLE REPOSITORIES152466 -Node: tlmgr Pinning154187 -Node: tlmgr GUI FOR TLMGR156162 -Node: tlmgr Main display157384 -Node: tlmgr Display configuration area157636 -Ref: tlmgr Status157997 -Ref: tlmgr Category158161 -Ref: tlmgr Match158347 -Ref: tlmgr Selection158607 -Ref: tlmgr Display configuration buttons158811 -Node: tlmgr Package list area158994 -Ref: tlmgr a checkbox159578 -Ref: tlmgr package name159714 -Ref: tlmgr local revision (and version)159813 -Ref: tlmgr remote revision (and version)160188 -Ref: tlmgr short description160485 -Node: tlmgr Main display action buttons160530 -Ref: tlmgr Update all installed160796 -Ref: tlmgr Update161168 -Ref: tlmgr Install161218 -Ref: tlmgr Remove161404 -Ref: tlmgr Backup161582 -Node: tlmgr Menu bar161739 -Ref: tlmgr tlmgr menu161936 -Ref: tlmgr Options menu162244 -Ref: tlmgr Actions menu163327 -Ref: tlmgr Help menu163755 -Node: tlmgr MACHINE-READABLE OUTPUT163888 -Node: tlmgr Machine-readable update and install output164698 -Ref: tlmgr location-url _location_165974 -Ref: tlmgr total-bytes _count_166190 -Ref: tlmgr _pkgname_166600 -Ref: tlmgr _status_166810 -Ref: tlmgr d166888 -Ref: tlmgr f166948 -Ref: tlmgr u167127 -Ref: tlmgr r167173 -Ref: tlmgr a167296 -Ref: tlmgr i167474 -Ref: tlmgr I167593 -Ref: tlmgr _localrev_167695 -Ref: tlmgr _serverrev_167802 -Ref: tlmgr _size_167914 -Ref: tlmgr _runtime_168083 -Ref: tlmgr _esttot_168153 -Node: tlmgr Machine-readable option output168186 -Node: tlmgr AUTHORS AND COPYRIGHT168698 -Node: Index169045 +Node: Top1208 +Node: Introduction2126 +Node: Overview of build system3878 +Node: Prerequisites5921 +Node: Building8319 +Node: Build iteration9567 +Node: Build problems10639 +Node: Build in parallel11042 +Node: Build distribution11634 +Node: Build one package12205 +Node: Installing15557 +Node: Installation directories16572 +Node: Linked scripts18388 +Node: Distro builds19869 +Node: Layout and infrastructure22259 +Node: Build system tools23087 +Node: Top-level directories25096 +Node: Autoconf macros27510 +Node: General setup macros28211 +Node: Macros for programs29078 +Node: Macros for compilers29890 +Node: Macros for libraries31324 +Node: Macros for library and header flags31750 +Node: Macros for Windows33630 +Node: Library modules35207 +Node: png library35696 +Node: zlib library37970 +Node: freetype library38485 +Node: kpathsea library39013 +Node: Program modules40412 +Node: t1utils package40840 +Node: xindy package41391 +Node: xdvik package42541 +Node: asymptote43614 +Node: Extending TeX Live44065 +Node: Adding a new program module44842 +Node: Adding a new generic library module46361 +Node: Adding a new TeX-specific library module48574 +Node: Configure options49261 +Node: Global configure options50643 +Node: --disable-native-texlive-build51185 +Node: --prefix --bindir ...52175 +Node: --disable-largefile52715 +Node: --disable-missing53400 +Node: --enable-compiler-warnings=LEVEL53801 +Node: --enable-cxx-runtime-hack54540 +Node: --enable-maintainer-mode54967 +Node: --enable-multiplatform55496 +Node: --enable-shared56034 +Node: --enable-silent-rules56405 +Node: --without-ln-s56861 +Node: --without-x57212 +Node: Program-specific configure options57400 +Node: --enable-PROG --disable-PROG58043 +Node: --disable-all-pkgs58320 +Node: Configure options for texk/web2c59306 +Node: Configure options for texk/bibtex-x61824 +Node: Configure options for texk/dvipdfm-x62367 +Node: Configure options for texk/dvisvgm63140 +Node: Configure options for texk/texlive64026 +Node: Configure options for texk/xdvik64447 +Node: Configure options for utils/xindy65051 +Node: Library-specific configure options65952 +Node: Configure options for kpathsea66963 +Node: Configure options for system poppler67672 +Node: Variables for configure68463 +Node: Cross compilation69891 +Node: Cross configuring71190 +Node: Cross problems72863 +Node: Coding conventions74510 +Node: Declarations and definitions75237 +Node: Const77419 +Node: install-tl79282 +Node: install-tl NAME79623 +Node: install-tl SYNOPSIS79781 +Node: install-tl DESCRIPTION79989 +Node: install-tl REFERENCES80990 +Node: install-tl OPTIONS81506 +Ref: install-tl *-gui* [[=]_module_]81860 +Ref: install-tl text82069 +Ref: install-tl wizard82192 +Ref: install-tl perltk82346 +Ref: install-tl *-no-gui*82780 +Ref: install-tl *-lang* _llcode_82861 +Ref: install-tl *-repository* _url|path_83548 +Ref: install-tl *-select-repository*85359 +Ref: install-tl *-all-options*85795 +Ref: install-tl *-custom-bin* _path_86102 +Ref: install-tl *-debug-translation*86757 +Ref: install-tl *-force-platform* _platform_86976 +Ref: install-tl *-help*, *--help*, *-?*87220 +Ref: install-tl *-in-place*87613 +Ref: install-tl *-logfile* _file_88140 +Ref: install-tl *-no-cls*88491 +Ref: install-tl *-non-admin*88622 +Ref: install-tl *--persistent-downloads*88727 +Ref: install-tl *--no-persistent-downloads*88755 +Ref: install-tl *-portable*89363 +Ref: install-tl *-print-platform*89502 +Ref: install-tl *-profile* _profile_89695 +Ref: install-tl *-q*91189 +Ref: install-tl *-scheme* _scheme_91251 +Ref: install-tl *-v*91725 +Ref: install-tl *-version*, *--version*91886 +Node: install-tl ENVIRONMENT VARIABLES92017 +Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK92406 +Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE92608 +Ref: install-tl TEXLIVE_INSTALL_PREFIX92714 +Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG92745 +Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME92774 +Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL92804 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG92838 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR92869 +Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR92897 +Ref: install-tl NOPERLDOC92952 +Node: install-tl AUTHORS AND COPYRIGHT93016 +Node: tlmgr93374 +Node: tlmgr NAME93811 +Node: tlmgr SYNOPSIS93936 +Node: tlmgr DESCRIPTION94126 +Node: tlmgr EXAMPLES95222 +Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet95513 +Ref: tlmgr tlmgr update --list95694 +Ref: tlmgr tlmgr update --all95787 +Ref: tlmgr tlmgr info _pkg_95943 +Node: tlmgr OPTIONS96149 +Ref: tlmgr *--repository* _url|path_96669 +Ref: tlmgr *--gui* [_action_]97394 +Ref: tlmgr *--gui-lang* _llcode_97801 +Ref: tlmgr *--debug-translation*98484 +Ref: tlmgr *--machine-readable*98687 +Ref: tlmgr *--no-execute-actions*98955 +Ref: tlmgr *--package-logfile* _file_99148 +Ref: tlmgr *--pause*99403 +Ref: tlmgr *--persistent-downloads*99558 +Ref: tlmgr *--no-persistent-downloads*99586 +Ref: tlmgr *--pin-file*100080 +Ref: tlmgr *--usermode*100298 +Ref: tlmgr *--usertree* _dir_100418 +Node: tlmgr ACTIONS100968 +Node: tlmgr help102200 +Node: tlmgr version102676 +Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...102994 +Ref: tlmgr *--backupdir* _directory_104088 +Ref: tlmgr *--all*104285 +Ref: tlmgr *--clean*[=_N_]104507 +Ref: tlmgr *--dry-run*104804 +Node: tlmgr candidates _pkg_104924 +Ref: tlmgr *candidates _pkg_* 1105211 +Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all]105355 +Ref: tlmgr *files*105798 +Ref: tlmgr *depends*105933 +Ref: tlmgr *executes*106275 +Ref: tlmgr *runfiles*106393 +Ref: tlmgr *--use-svn*106505 +Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]106622 +Node: tlmgr dump-tlpdb [--local|--remote]108694 +Ref: tlmgr *--local*109204 +Ref: tlmgr *--remote*109243 +Node: tlmgr generate [_option_]... _what_109665 +Ref: tlmgr *generate language*109906 +Ref: tlmgr *generate language.dat*109931 +Ref: tlmgr *generate language.def*109956 +Ref: tlmgr *generate language.dat.lua*109985 +Ref: tlmgr *generate fmtutil*110005 +Ref: tlmgr *--dest* _output_file_112242 +Ref: tlmgr *--localcfg* _local_conf_file_112818 +Ref: tlmgr *--rebuild-sys*112941 +Node: tlmgr gui113802 +Node: tlmgr info [_option_...] [collections|schemes|_pkg_...]114046 +Ref: tlmgr *--list*115251 +Ref: tlmgr *--only-installed*115530 +Ref: tlmgr *--taxonomy*115745 +Ref: tlmgr *--keyword*115757 +Ref: tlmgr *--functionality*115775 +Ref: tlmgr *--characterization*115796 +Node: tlmgr init-usertree116009 +Node: tlmgr install [_option_]... _pkg_...116435 +Ref: tlmgr *--file*116799 +Ref: tlmgr *--reinstall*117025 +Ref: tlmgr *--no-depends*117405 +Ref: tlmgr *--no-depends-at-all*117564 +Ref: tlmgr *--dry-run* 1117962 +Ref: tlmgr *--force*118080 +Node: tlmgr option118286 +Ref: tlmgr *option [show]*118459 +Ref: tlmgr *option showall*118477 +Ref: tlmgr *option _key_ [_value_]*118503 +Node: tlmgr paper122351 +Ref: tlmgr *paper [a4|letter]*122536 +Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*122610 +Node: tlmgr path [--w32mode=user|admin] [add|remove]123637 +Node: tlmgr pinning125120 +Ref: tlmgr pinning show125427 +Ref: tlmgr pinning add _repo_ _pkgglob_...125500 +Ref: tlmgr pinning remove _repo_ _pkgglob_...125619 +Ref: tlmgr pinning remove _repo_ --all125772 +Node: tlmgr platform list|add|remove _platform_...125826 +Node: tlmgr platform set _platform_126074 +Node: tlmgr platform set auto126302 +Ref: tlmgr *--dry-run* 2127419 +Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...127528 +Node: tlmgr print-platform128830 +Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]129302 +Ref: tlmgr *--all* 1130198 +Ref: tlmgr *--backupdir* _directory_ 1130392 +Ref: tlmgr *--dry-run* 3130548 +Ref: tlmgr *--force* 1130665 +Node: tlmgr remove [_option_]... _pkg_...130693 +Ref: tlmgr *--no-depends* 1131216 +Ref: tlmgr *--no-depends-at-all* 1131278 +Ref: tlmgr *--force* 2131334 +Ref: tlmgr *--dry-run* 4131806 +Node: tlmgr repository131913 +Ref: tlmgr *repository list*132121 +Ref: tlmgr *repository list _path|tag_*132151 +Ref: tlmgr *repository add _path_ [_tag_]*132184 +Ref: tlmgr *repository remove _path|tag_*132216 +Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*132270 +Node: tlmgr search [_option_...] _what_133354 +Node: tlmgr search [_option_...] --file _what_133865 +Node: tlmgr search [_option_...] --taxonomy _what_134116 +Node: tlmgr search [_option_...] --keyword _what_134427 +Node: tlmgr search [_option_...] --functionality _what_134745 +Node: tlmgr search [_option_...] --characterization _what_135083 +Node: tlmgr search [_option_...] --all _what_135423 +Ref: tlmgr *--global*135871 +Ref: tlmgr *--word*135983 +Ref: tlmgr *--list* 1136222 +Ref: tlmgr *--file* 1136568 +Ref: tlmgr *--taxonomy* 1136625 +Ref: tlmgr *--keyword* 1136637 +Ref: tlmgr *--functionality* 1136655 +Ref: tlmgr *--characterization* 1136676 +Ref: tlmgr *--all* 2136831 +Node: tlmgr uninstall136914 +Ref: tlmgr *--force* 3137168 +Node: tlmgr update [_option_]... [_pkg_]...137224 +Ref: tlmgr *--all* 3137595 +Ref: tlmgr *--self*139336 +Ref: tlmgr *--dry-run* 5140100 +Ref: tlmgr *--list* [_pkg_]140277 +Ref: tlmgr *--exclude* _pkg_140966 +Ref: tlmgr *--no-auto-remove* [_pkg_]...141659 +Ref: tlmgr *--no-auto-install* [_pkg_]...142110 +Ref: tlmgr *--reinstall-forcibly-removed*142766 +Ref: tlmgr *--backup* and *--backupdir* _directory_143330 +Ref: tlmgr *--no-depends* 2144511 +Ref: tlmgr *--no-depends-at-all* 2144714 +Ref: tlmgr *--force* 4144770 +Node: tlmgr USER MODE145196 +Node: tlmgr user mode install148007 +Node: tlmgr user mode backup; restore; remove; update148954 +Node: tlmgr user mode generate; option; paper149396 +Node: tlmgr CONFIGURATION FILE FOR TLMGR149772 +Node: tlmgr TAXONOMIES150863 +Ref: tlmgr --keyword 2151489 +Ref: tlmgr --functionality 2151574 +Ref: tlmgr --characterization 2151730 +Ref: tlmgr --taxonomy 2151871 +Node: tlmgr MULTIPLE REPOSITORIES152412 +Node: tlmgr Pinning154133 +Node: tlmgr GUI FOR TLMGR156108 +Node: tlmgr Main display157330 +Node: tlmgr Display configuration area157582 +Ref: tlmgr Status157943 +Ref: tlmgr Category158107 +Ref: tlmgr Match158293 +Ref: tlmgr Selection158553 +Ref: tlmgr Display configuration buttons158757 +Node: tlmgr Package list area158940 +Ref: tlmgr a checkbox159524 +Ref: tlmgr package name159660 +Ref: tlmgr local revision (and version)159759 +Ref: tlmgr remote revision (and version)160134 +Ref: tlmgr short description160431 +Node: tlmgr Main display action buttons160476 +Ref: tlmgr Update all installed160742 +Ref: tlmgr Update161114 +Ref: tlmgr Install161164 +Ref: tlmgr Remove161350 +Ref: tlmgr Backup161528 +Node: tlmgr Menu bar161685 +Ref: tlmgr tlmgr menu161882 +Ref: tlmgr Options menu162190 +Ref: tlmgr Actions menu163273 +Ref: tlmgr Help menu163701 +Node: tlmgr MACHINE-READABLE OUTPUT163834 +Node: tlmgr Machine-readable update and install output164644 +Ref: tlmgr location-url _location_165920 +Ref: tlmgr total-bytes _count_166136 +Ref: tlmgr _pkgname_166546 +Ref: tlmgr _status_166756 +Ref: tlmgr d166834 +Ref: tlmgr f166894 +Ref: tlmgr u167073 +Ref: tlmgr r167119 +Ref: tlmgr a167242 +Ref: tlmgr i167420 +Ref: tlmgr I167539 +Ref: tlmgr _localrev_167641 +Ref: tlmgr _serverrev_167748 +Ref: tlmgr _size_167860 +Ref: tlmgr _runtime_168029 +Ref: tlmgr _esttot_168099 +Node: tlmgr Machine-readable option output168132 +Node: tlmgr AUTHORS AND COPYRIGHT168644 +Node: Index168991 End Tag Table diff --git a/source/doc/tlbuild.texi b/source/doc/tlbuild.texi index ca6177acb..bb4a9fc6b 100644 --- a/source/doc/tlbuild.texi +++ b/source/doc/tlbuild.texi @@ -1,8 +1,8 @@ \input texinfo @setfilename tlbuild.info -@set version 2016 -@set month-year February 2017 +@set version 2017 +@set month-year April 2017 @set mytitle Building @TeX{} Live (@value{version}) @settitle @value{mytitle} @@ -52,6 +52,12 @@ approved by the @TeX{} Users Group. * TLbuild: (tlbuild). TeX Live configuration and development. @end direntry +@dircategory Individual utilities +@direntry +* install-tl:: Installing TeX Live. +* tlmgr:: Managing TeX Live. +@end direntry + @titlepage @title @value{mytitle} @subtitle @value{version} release @@ -480,38 +486,32 @@ things are working. There are many @code{configure} options you can tweak as desired; check the output from @code{configure --help}. @cindex size of source tree -Finally, the above retrieves the entire TL source tree (some 300mb). -It is natural to ask if this is really necessary. Strictly speaking, -the answer is no, but it is vastly more convenient to do so. If you -cut down the source tree, you must also give additional -@code{configure} flags to individually disable using system versions -of libraries, or the intricacies of the dependencies (such as +Finally, the above retrieves the entire TL source tree (several +hundred megabytes). It is natural to ask if this is really necessary. +Strictly speaking, the answer is no, but it is vastly more convenient +to do so. If you cut down the source tree, you must also give +additional @code{configure} flags to individually disable using system +versions of libraries, or the intricacies of the dependencies (such as @code{teckit} requiring @code{zlib}) will have undesired side effects. For an example, see the @code{build-pdftex.sh} script in the -@code{pdftex} development sources (@url{http://pdftex.org}), which are +@code{pdftex} development source (@url{http://pdftex.org}), which is indeed a cut-down TL source tree. @vindex --enable-missing @r{to ignore dependencies} -Caveat 1: even with @code{--disable-all-pkgs}, dependencies will be -checked. For instance, if a non-MacOSX system does not have -@code{fontconfig}, Xe@TeX{} cannot be built (@pxref{Prerequisites}) -and @code{configure} will terminate. To proceed without such -dependencies, specify @code{--enable-missing} also. (Arguably this -should happen automatically.) +Even with @code{--disable-all-pkgs}, dependencies will be checked. +For instance, if a non-MacOSX system does not have @code{fontconfig}, +Xe@TeX{} cannot be built (@pxref{Prerequisites}) and @code{configure} +will terminate. To proceed without such dependencies, specify +@code{--enable-missing} also. (Arguably this should happen +automatically.) @vindex CC=@var{c-compiler} @vindex CXX=@var{c++-compiler} @vindex OBJCXX=@var{objc-compiler} -@cindex ICU, prefers @code{clang} compilers -@cindex @code{clang} compilers, preferred by ICU -Caveat 2: unless @code{CC} and @code{CXX} and @code{OBJCXX} are -explicitly specified, each package will configure its own compiler(s). -In practice, this results in a conflict in only one instance: the ICU -(@file{libs/icu}) library will prefer @code{clang} and @code{clang++} -over all others if they are installed, whereas everything else prefers -@code{gcc} and @code{g++}. Usually the results will be interoperable, -but it can cause extra confusion and problems when debugging a program -that uses ICU. +By default, the @code{gcc} compilers will be used if present; +otherwise, individual packages may use something different. You can +explicitly specify the compilers to be used with the environment +variables @code{CC}, @code{CXX}, and @code{OBJCXX}. @node Installing @@ -1141,7 +1141,7 @@ structure and variation. @pindex libpng @r{library} This generic library uses the source tree in, e.g., the subdirectory @file{libpng-src/} with all modifications for TL recorded in -@file{TLPATCHES/*}. The @file{configure.ac} fragment +@file{TLpatches/*}. The @file{configure.ac} fragment @file{ac/withenable.ac} contains @example @@ -1286,7 +1286,7 @@ details for a few of the programs in TL. @pindex t1utils @r{package} Once again we use the distributed source tree @file{t1utils-src} -with modifications documented in @file{TLPATCHES/*} and +with modifications documented in @file{TLpatches/*} and a proxy build system consisting of @file{configure.ac} and @file{Makefile.am}. The fragment @file{ac/withenable.ac} contains @@ -1304,7 +1304,7 @@ supplies the configure option @code{--disable-t1utils}. @pindex xindy This module uses the distributed source tree @file{xindy-src/} with -modifications documented in @file{TLPATCHES/*}, a proxy +modifications documented in @file{TLpatches/*}, a proxy @file{configure.ac}, and a wrapper @file{Makefile.am} that descends into @file{xindy-src}. The @code{xindy} build requires a @file{make} that supports a @code{VPATH} build, can handle all targets, and do not @@ -1383,7 +1383,7 @@ TL build system. In any case, a new package directory @file{foo} should contain the original sources, as modified for TL, in @file{foo/foo-src}, and the -changes should be documented in @file{foo/TLPATCHES/*}; changes should +changes should be documented in @file{foo/TLpatches/*}; changes should also be submitted upstream whenever reasonable, of course. In addition, @file{foo/} will need the usual Automake build-related files (@file{configure.ac}, @file{Makefile.am}, etc. Please keep a diff --git a/source/libs/README b/source/libs/README index 5e77bbc91..92c747d35 100644 --- a/source/libs/README +++ b/source/libs/README @@ -1,4 +1,4 @@ -$Id: README 43412 2017-03-06 14:22:59Z kakuto $ +$Id: README 43564 2017-03-21 03:36:55Z kakuto $ Public domain. Originally created by Karl Berry, 2005. Libraries we compile for TeX Live. @@ -24,16 +24,16 @@ gmp 6.1.2 - checked 16dec16 graphite2 1.3.9 - checked 13nov16 http://sourceforge.net/projects/silgraphite/files/graphite2/ -harfbuzz 1.4.4 - checked 06mar17 +harfbuzz 1.4.5 - checked 11mar17 http://www.freedesktop.org/software/harfbuzz/release/ -icu 57.1 (release) - checked 27mar16 +icu 58.2 - checked 13mar17 http://download.icu-project.org/files/icu4c/ libpaper 1.1.24+nmu2 - checked 24oct13 ftp://ftp.de.debian.org/debian/pool/main/libp/libpaper/ -libpng 1.6.28 - checked 05jan17 +libpng 1.6.29 - checked 16mar17 http://www.libpng.org/ - used by many http://www.libpng.org/pub/png/pngcode.html diff --git a/source/libs/configure b/source/libs/configure index 42b580587..58f5fba9c 100755 --- a/source/libs/configure +++ b/source/libs/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for TeX Live libs 2017/dev. +# Generated by GNU Autoconf 2.69 for TeX Live libs 2017. # # Report bugs to <tex-k@tug.org>. # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live libs' PACKAGE_TARNAME='tex-live-libs' -PACKAGE_VERSION='2017/dev' -PACKAGE_STRING='TeX Live libs 2017/dev' +PACKAGE_VERSION='2017' +PACKAGE_STRING='TeX Live libs 2017' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1314,7 +1314,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live libs 2017/dev to adapt to many kinds of systems. +\`configure' configures TeX Live libs 2017 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1384,7 +1384,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live libs 2017/dev:";; + short | recursive ) echo "Configuration of TeX Live libs 2017:";; esac cat <<\_ACEOF @@ -1570,7 +1570,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live libs configure 2017/dev +TeX Live libs configure 2017 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1671,7 +1671,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live libs $as_me 2017/dev, which was +It was created by TeX Live libs $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4447,7 +4447,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-libs' - VERSION='2017/dev' + VERSION='2017' cat >>confdefs.h <<_ACEOF @@ -5391,7 +5391,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live libs $as_me 2017/dev, which was +This file was extended by TeX Live libs $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5448,7 +5448,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -TeX Live libs config.status 2017/dev +TeX Live libs config.status 2017 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/libs/gmp/Makefile.am b/source/libs/gmp/Makefile.am index 064939feb..9ffe0f5a1 100644 --- a/source/libs/gmp/Makefile.am +++ b/source/libs/gmp/Makefile.am @@ -1,8 +1,9 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build GNU MP for TeX Live. ## -## Copyright (C) 2016 Karl Berry <tex-live@tug.org> -## Copyright (C) 2014-2015 Peter Breitenlohner <tex-live@tug.org> -## Copyright (C) 2014 Taco Hoekwater <taco@metatex.org> +## Copyright 2016-2017 Karl Berry <tex-live@tug.org> +## Copyright 2014-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2014 Taco Hoekwater <taco@metatex.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -14,7 +15,7 @@ EXTRA_DIST = $(GMP_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += gmp-PATCHES +EXTRA_DIST += TLpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/gmp/Makefile.in b/source/libs/gmp/Makefile.in index 76e7a8041..decfe8760 100644 --- a/source/libs/gmp/Makefile.in +++ b/source/libs/gmp/Makefile.in @@ -721,7 +721,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(GMP_TREE) gmp-PATCHES +EXTRA_DIST = $(GMP_TREE) TLpatches NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/libpng/ChangeLog b/source/libs/libpng/ChangeLog index 92e5b0029..3d760abea 100644 --- a/source/libs/libpng/ChangeLog +++ b/source/libs/libpng/ChangeLog @@ -1,3 +1,8 @@ +2017-03-16 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import libpng-1.6.29. + * version.ac: Adjust. + 2017-01-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Import libpng-1.6.28. diff --git a/source/libs/libpng/Makefile.am b/source/libs/libpng/Makefile.am index c0e6bae3b..b52295486 100644 --- a/source/libs/libpng/Makefile.am +++ b/source/libs/libpng/Makefile.am @@ -1,7 +1,8 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build libpng for TeX Live. ## -## Copyright (C) 2016 Karl Berry <tex-live@tug.org> -## Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2016-2017 Karl Berry <tex-live@tug.org> +## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -13,7 +14,7 @@ EXTRA_DIST = $(LIBPNG_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += libpng-PATCHES +EXTRA_DIST += Tlpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/libpng/Makefile.in b/source/libs/libpng/Makefile.in index 1f79aab87..cfc78b277 100644 --- a/source/libs/libpng/Makefile.in +++ b/source/libs/libpng/Makefile.in @@ -562,7 +562,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(LIBPNG_TREE) libpng-PATCHES +EXTRA_DIST = $(LIBPNG_TREE) Tlpatches NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/libpng/README b/source/libs/libpng/README index eb34b8695..072a02a80 100644 --- a/source/libs/libpng/README +++ b/source/libs/libpng/README @@ -1,4 +1,4 @@ - Building libpng-1.6.28 as part of the TL tree + Building libpng-1.6.29 as part of the TL tree ============================================= This directory libs/libpng/ uses a proxy Makefile.am to build the libpng library @@ -14,4 +14,4 @@ copied to libs/libpng/configure.ac. ============================= 2009-07-23 Peter Breitenlohner <peb@mppmu.mpg.de> -2017-01-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp> +2017-03-16 Akira Kakuto <kakuto@fuk.kindai.ac.jp> diff --git a/source/libs/libpng/TLpatches/ChangeLog b/source/libs/libpng/TLpatches/ChangeLog index 877539b7e..70d8ec5de 100644 --- a/source/libs/libpng/TLpatches/ChangeLog +++ b/source/libs/libpng/TLpatches/ChangeLog @@ -1,3 +1,7 @@ +2017-03-16 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import libpng-1.6.29. + 2017-01-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Import libpng-1.6.28. diff --git a/source/libs/libpng/TLpatches/TL-Changes b/source/libs/libpng/TLpatches/TL-Changes index 1dd435aec..7b7162f8f 100644 --- a/source/libs/libpng/TLpatches/TL-Changes +++ b/source/libs/libpng/TLpatches/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the libpng-1.6.28/ tree as obtained from: - http://www.libpng.org/ libpng-1.6.28.tar.xz +Changes applied to the libpng-1.6.29/ tree as obtained from: + http://www.libpng.org/ libpng-1.6.29.tar.xz Copied: scripts/pnglibconf.h.prebuilt -> pnglibconf.h diff --git a/source/libs/libpng/configure b/source/libs/libpng/configure index 824a3d089..e9a70b026 100755 --- a/source/libs/libpng/configure +++ b/source/libs/libpng/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libpng (TeX Live) 1.6.28. +# Generated by GNU Autoconf 2.69 for libpng (TeX Live) 1.6.29. # # Report bugs to <tex-k@tug.org>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libpng (TeX Live)' PACKAGE_TARNAME='libpng--tex-live-' -PACKAGE_VERSION='1.6.28' -PACKAGE_STRING='libpng (TeX Live) 1.6.28' +PACKAGE_VERSION='1.6.29' +PACKAGE_STRING='libpng (TeX Live) 1.6.29' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1287,7 +1287,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libpng (TeX Live) 1.6.28 to adapt to many kinds of systems. +\`configure' configures libpng (TeX Live) 1.6.29 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1354,7 +1354,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libpng (TeX Live) 1.6.28:";; + short | recursive ) echo "Configuration of libpng (TeX Live) 1.6.29:";; esac cat <<\_ACEOF @@ -1459,7 +1459,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libpng (TeX Live) configure 1.6.28 +libpng (TeX Live) configure 1.6.29 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1882,7 +1882,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libpng (TeX Live) $as_me 1.6.28, which was +It was created by libpng (TeX Live) $as_me 1.6.29, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3805,7 +3805,7 @@ fi # Define the identity of the package. PACKAGE='libpng--tex-live-' - VERSION='1.6.28' + VERSION='1.6.29' cat >>confdefs.h <<_ACEOF @@ -6358,7 +6358,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libpng (TeX Live) $as_me 1.6.28, which was +This file was extended by libpng (TeX Live) $as_me 1.6.29, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6424,7 +6424,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libpng (TeX Live) config.status 1.6.28 +libpng (TeX Live) config.status 1.6.29 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/libs/libpng/libpng-src/ANNOUNCE b/source/libs/libpng/libpng-src/ANNOUNCE index 70a71e3b0..d3ae02c7f 100644 --- a/source/libs/libpng/libpng-src/ANNOUNCE +++ b/source/libs/libpng/libpng-src/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.28 - January 5, 2017 +Libpng 1.6.29 - March 16, 2017 This is a public release of libpng, intended for use in production codes. @@ -7,28 +7,37 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - libpng-1.6.28.tar.xz (LZMA-compressed, recommended) - libpng-1.6.28.tar.gz + libpng-1.6.29.tar.xz (LZMA-compressed, recommended) + libpng-1.6.29.tar.gz Source files with CRLF line endings (for Windows), without the "configure" script - lpng1628.7z (LZMA-compressed, recommended) - lpng1628.zip + lpng1629.7z (LZMA-compressed, recommended) + lpng1629.zip Other information: - libpng-1.6.28-README.txt - libpng-1.6.28-LICENSE.txt - libpng-1.6.28-*.asc (armored detached GPG signatures) - -Changes since the last public release (1.6.27): - Fixed arm/aarch64 detection in CMakeLists.txt (Gianfranco Costamagna). - Added option to Cmake build allowing a custom location of zlib to be - specified in a scenario where libpng is being built as a subproject - alongside zlib by another project (Sam Serrels). - Changed png_ptr->options from a png_byte to png_uint_32, to accomodate - up to 16 options. + libpng-1.6.29-README.txt + libpng-1.6.29-LICENSE.txt + libpng-1.6.29-*.asc (armored detached GPG signatures) + +Changes since the last public release (1.6.28): + + Readded "include(GNUInstallDirs)" to CMakeLists.txt (Gianfranco Costamagna). + Moved SSE2 optimization code into the main libpng source directory. + Configure libpng with "configure --enable-intel-sse" or compile + libpng with "-DPNG_INTEL_SSE" in CPPFLAGS to enable it. + Simplified conditional compilation in pngvalid.c, for AIX (Michael Felt). + Avoid conditional directives that break statements in pngrutil.c (Romero + Malaquias) + The contrib/examples/pngtopng.c recovery code was in the wrong "if" + branches; the comments were correct. + Added code for PowerPC VSX optimisation (Vadim Barkov). + Avoid potential overflow of shift operations in png_do_expand() (Aaron Boxer). + Change test ZLIB_VERNUM >= 0x1281 to ZLIB_VERNUM >= 0x1290 in pngrutil.c + because Solaris 11 distributes zlib-1.2.8.f that is older than 1.2.8.1. + Suppress clang warnings about implicit sign changes in png.c Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/source/libs/libpng/libpng-src/CHANGES b/source/libs/libpng/libpng-src/CHANGES index 0b5e944ee..5f5147df3 100644 --- a/source/libs/libpng/libpng-src/CHANGES +++ b/source/libs/libpng/libpng-src/CHANGES @@ -5794,6 +5794,29 @@ Version 1.6.28rc03 [January 4, 2017] Version 1.6.28 [January 5, 2017] No changes. +Version 1.6.29beta01 [January 12, 2017] + Readded "include(GNUInstallDirs)" to CMakeLists.txt (Gianfranco Costamagna). + Moved SSE2 optimization code into the main libpng source directory. + Configure libpng with "configure --enable-intel-sse" or compile + libpng with "-DPNG_INTEL_SSE" in CPPFLAGS to enable it. + Simplified conditional compilation in pngvalid.c, for AIX (Michael Felt). + +Version 1.6.29beta02 [February 22, 2017] + Avoid conditional directives that break statements in pngrutil.c (Romero + Malaquias) + The contrib/examples/pngtopng.c recovery code was in the wrong "if" + branches; the comments were correct. + Added code for PowerPC VSX optimisation (Vadim Barkov). + +Version 1.6.29beta03 [March 1, 2017] + Avoid potential overflow of shift operations in png_do_expand() (Aaron Boxer). + Change test ZLIB_VERNUM >= 0x1281 to ZLIB_VERNUM >= 0x1290 in pngrutil.c + because Solaris 11 distributes zlib-1.2.8.f that is older than 1.2.8.1. + Suppress clang warnings about implicit sign changes in png.c + +Version 1.6.29 [March 16, 2017] + No changes. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/source/libs/libpng/libpng-src/CMakeLists.txt b/source/libs/libpng/libpng-src/CMakeLists.txt index e076d5e94..3b6c1f30d 100644 --- a/source/libs/libpng/libpng-src/CMakeLists.txt +++ b/source/libs/libpng/libpng-src/CMakeLists.txt @@ -36,13 +36,15 @@ enable_testing() set(PNGLIB_MAJOR 1) set(PNGLIB_MINOR 6) -set(PNGLIB_RELEASE 28) +set(PNGLIB_RELEASE 29) set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) +include(GNUInstallDirs) + # needed packages -#Allow users to specify location of Zlib, +#Allow users to specify location of Zlib, # Useful if zlib is being built alongside this as a sub-project option(PNG_BUILD_ZLIB "Custom zlib Location, else find_package is used" OFF) @@ -96,7 +98,7 @@ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm" OR arm/arm_init.c arm/filter_neon.S arm/filter_neon_intrinsics.c) - + if(${PNG_ARM_NEON} STREQUAL "on") add_definitions(-DPNG_ARM_NEON_OPT=2) elseif(${PNG_ARM_NEON} STREQUAL "check") @@ -107,6 +109,38 @@ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm" OR endif() endif() +# set definitions and sources for powerpc +if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^powerpc*" OR + ${CMAKE_SYSTEM_PROCESSOR} MATCHES "^ppc64*" ) + set(PNG_POWERPC_VSX_POSSIBLE_VALUES check on off) + set(PNG_POWERPC_VSX "check" CACHE STRING "Enable POWERPC VSX optimizations: + check: (default) use internal checking code; + off: disable the optimizations; + on: turn on unconditionally.") + set_property(CACHE PNG_POWERPC_VSX PROPERTY STRINGS + ${PNG_POWERPC_VSX_POSSIBLE_VALUES}) + list(FIND PNG_POWERPC_VSX_POSSIBLE_VALUES ${PNG_POWERPC_VSX} index) + if(index EQUAL -1) + message(FATAL_ERROR + " PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "no") + set(libpng_powerpc_sources + powerpc/powerpc_init.c + powerpc/filter_vsx_intrinsics.c) + + if(${PNG_POWERPC_VSX} STREQUAL "on") + add_definitions(-DPNG_POWERPC_VSX_OPT=2) + elseif(${PNG_POWERPC_VSX} STREQUAL "check") + add_definitions(-DPNG_POWERPC_VSX_CHECK_SUPPORTED) + message(WARNING + "[PNG_POWERPC_VSX==check] Please check contrib/powerpc/README file for the list of supported OSes.") + endif() + else() + add_definitions(-DPNG_POWERPC_VSX_OPT=0) + endif() +endif() + + # SET LIBNAME set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) @@ -398,6 +432,7 @@ set(libpng_sources pngwtran.c pngwutil.c ${libpng_arm_sources} + ${libpng_powerpc_sources} ) set(pngtest_sources pngtest.c @@ -735,7 +770,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW) # SET UP LINKS if(PNG_SHARED) set_target_properties(png PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.28 +# VERSION 16.${PNGLIB_RELEASE}.1.6.29 VERSION 16.${PNGLIB_RELEASE}.0 SOVERSION 16 CLEAN_DIRECT_OUTPUT 1) @@ -840,4 +875,3 @@ endif() # to create msvc import lib for mingw compiled shared lib # pexports libpng.dll > libpng.def # lib /def:libpng.def /machine:x86 - diff --git a/source/libs/libpng/libpng-src/LICENSE b/source/libs/libpng/libpng-src/LICENSE index 912552e2a..aac9f743a 100644 --- a/source/libs/libpng/libpng-src/LICENSE +++ b/source/libs/libpng/libpng-src/LICENSE @@ -10,7 +10,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.28, January 5, 2017 are +libpng versions 1.0.7, July 1, 2000 through 1.6.29, March 16, 2017 are Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals @@ -23,6 +23,8 @@ added to the list of Contributing Authors: Gilles Vollant James Yu Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov and with the following additions to the disclaimer: @@ -128,4 +130,4 @@ any encryption software. See the EAR, paragraphs 734.3(b)(3) and Glenn Randers-Pehrson glennrp at users.sourceforge.net -January 5, 2017 +March 16, 2017 diff --git a/source/libs/libpng/libpng-src/Makefile.am b/source/libs/libpng/libpng-src/Makefile.am index fb209edd2..18ac74866 100644 --- a/source/libs/libpng/libpng-src/Makefile.am +++ b/source/libs/libpng/libpng-src/Makefile.am @@ -102,6 +102,16 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += mips/mips_init.c\ mips/filter_msa_intrinsics.c endif +if PNG_INTEL_SSE +libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += intel/intel_init.c\ + intel/filter_sse2_intrinsics.c +endif + +if PNG_POWERPC_VSX +libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += powerpc/powerpc_init.c\ + powerpc/filter_vsx_intrinsics.c +endif + nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = pnglibconf.h libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined -export-dynamic \ diff --git a/source/libs/libpng/libpng-src/README b/source/libs/libpng/libpng-src/README index 67b579d13..07562fce7 100644 --- a/source/libs/libpng/libpng-src/README +++ b/source/libs/libpng/libpng-src/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.28 - January 5, 2017 (shared library 16.0) +README for libpng version 1.6.29 - March 16, 2017 (shared library 16.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. @@ -179,14 +179,16 @@ Files in this distribution: pngwtran.c => Write data transformations pngwutil.c => Write utility functions arm => Contains optimized code for the ARM platform + powerpc => Contains optimized code for the PowerPC platform contrib => Contributions arm-neon => Optimized code for ARM-NEON platform + powerpc-vsx => Optimized code for POWERPC-VSX platform examples => Example programs gregbook => source code for PNG reading and writing, from Greg Roelofs' "PNG: The Definitive Guide", O'Reilly, 1999 - intel => Optimized code for INTEL-SSE2 platform libtests => Test programs + mips-msa => Optimized code for MIPS-MSA platform pngminim => Minimal decoder, encoder, and progressive decoder programs demonstrating use of pngusr.dfa pngminus => Simple pnm2png and png2pnm programs @@ -194,6 +196,8 @@ Files in this distribution: testpngs tools => Various tools visupng => Contains a MSVC workspace for VisualPng + intel => Optimized code for INTEL-SSE2 platform + mips => Optimized code for MIPS platform projects => Contains project files and workspaces for building a DLL owatcom => Contains a WATCOM project for building libpng diff --git a/source/libs/libpng/libpng-src/TODO b/source/libs/libpng/libpng-src/TODO index fe9de4bf0..36d6092a2 100644 --- a/source/libs/libpng/libpng-src/TODO +++ b/source/libs/libpng/libpng-src/TODO @@ -25,5 +25,6 @@ Use greater precision when changing to linear gamma for compositing against Investigate pre-incremented loop counters and other loop constructions. Add interpolated method of handling interlacing. Extend pngvalid.c to validate more of the libpng transformations. +Refactor preprocessor conditionals to compile entire statements */ diff --git a/source/libs/libpng/libpng-src/config.h.in b/source/libs/libpng/libpng-src/config.h.in index 0db4ea937..a0ec9bc14 100644 --- a/source/libs/libpng/libpng-src/config.h.in +++ b/source/libs/libpng/libpng-src/config.h.in @@ -78,6 +78,9 @@ /* Enable ARM Neon optimizations */ #undef PNG_ARM_NEON_OPT +/* Enable Intel SSE optimizations */ +#undef PNG_INTEL_SSE_OPT + /* Turn on MIPS MSA optimizations at run-time */ #undef PNG_MIPS_MSA_API_SUPPORTED @@ -87,6 +90,15 @@ /* Enable MIPS MSA optimizations */ #undef PNG_MIPS_MSA_OPT +/* Turn on POWERPC VSX optimizations at run-time */ +#undef PNG_POWERPC_VSX_API_SUPPORTED + +/* Check for POWERPC VSX support at run-time */ +#undef PNG_POWERPC_VSX_CHECK_SUPPORTED + +/* Enable POWERPC VSX optimizations */ +#undef PNG_POWERPC_VSX_OPT + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS diff --git a/source/libs/libpng/libpng-src/configure.ac b/source/libs/libpng/libpng-src/configure.ac index 8c474a6d7..765a4ad2d 100644 --- a/source/libs/libpng/libpng-src/configure.ac +++ b/source/libs/libpng/libpng-src/configure.ac @@ -25,7 +25,7 @@ AC_PREREQ([2.68]) dnl Version number stuff here: -AC_INIT([libpng],[1.6.28],[png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng],[1.6.29],[png-mng-implement@lists.sourceforge.net]) AC_CONFIG_MACRO_DIR([scripts]) # libpng does not follow GNU file name conventions (hence 'foreign') @@ -46,7 +46,7 @@ dnl automake, so the following is not necessary (and is not defined anyway): dnl AM_PREREQ([1.11.2]) dnl stop configure from automagically running automake -PNGLIB_VERSION=1.6.28 +PNGLIB_VERSION=1.6.29 PNGLIB_MAJOR=1 PNGLIB_MINOR=6 PNGLIB_RELEASE=28 @@ -391,6 +391,89 @@ AM_CONDITIONAL([PNG_MIPS_MSA], mipsel*|mips64el*) :;; esac]) +# INTEL +# ===== +# +# INTEL SSE (SIMD) support. + +AC_ARG_ENABLE([intel-sse], + AS_HELP_STRING([[[--enable-intel-sse]]], + [Enable Intel SSE optimizations: =no/off, yes/on:] + [no/off: disable the optimizations;] + [yes/on: enable the optimizations.] + [If not specified: determined by the compiler.]), + [case "$enableval" in + no|off) + # disable the default enabling: + AC_DEFINE([PNG_INTEL_SSE_OPT], [0], + [Disable Intel SSE optimizations]) + # Prevent inclusion of the assembler files below: + enable_intel_sse=no;; + yes|on) + AC_DEFINE([PNG_INTEL_SSE_OPT], [1], + [Enable Intel SSE optimizations]);; + *) + AC_MSG_ERROR([--enable-intel-sse=${enable_intel_sse}: invalid value]) + esac]) + +# Add Intel specific files to all builds where the host_cpu is Intel ('x86*') +# or where Intel optimizations were explicitly requested (this allows a +# fallback if a future host CPU does not match 'x86*') +AM_CONDITIONAL([PNG_INTEL_SSE], + [test "$enable_intel_sse" != 'no' && + case "$host_cpu" in + i?86|x86_64) :;; + *) test "$enable_intel_sse" != '';; + esac]) + +# PowerPC +# === +# +# PowerPC VSX (SIMD) support. + +AC_ARG_ENABLE([powerpc-vsx], +AS_HELP_STRING([[[--enable-powerpc-vsx]]], + [Enable POWERPC VSX optimizations: =no/off, check, api, yes/on:] + [no/off: disable the optimizations; check: use internal checking code] + [api: disable by default, enable by a call to png_set_option] + [yes/on: turn on unconditionally.] + [If not specified: determined by the compiler.]), + [case "$enableval" in + no|off) + # disable the default enabling on __ppc64__ systems: + AC_DEFINE([PNG_POWERPC_VSX_OPT], [0], + [Disable POWERPC VSX optimizations]) + # Prevent inclusion of the platform specific files below: + enable_powerpc_vsx=no;; + check) + AC_DEFINE([PNG_POWERPC_VSX_CHECK_SUPPORTED], [], + [Check for POWERPC VSX support at run-time]) + AC_MSG_WARN([--enable-powerpc-vsx Please check contrib/powerpc/README file] + [for the list of supported OSes.]);; + api) + AC_DEFINE([PNG_POWERPC_VSX_API_SUPPORTED], [], + [Turn on POWERPC VSX optimizations at run-time]);; + yes|on) + AC_DEFINE([PNG_POWERPC_VSX_OPT], [2], + [Enable POWERPC VSX optimizations]) + AC_MSG_WARN([--enable-powerpc-vsx: please specify 'check' or 'api', if] + [you want the optimizations unconditionally pass '-maltivec -mvsx'] + [or '-mcpu=power8'to the compiler.]);; + *) + AC_MSG_ERROR([--enable-powerpc-vsx=${enable_powerpc_vsx}: invalid value]) + esac]) + +# Add PowerPC specific files to all builds where the host_cpu is powerpc('powerpc*') or +# where POWERPC optimizations were explicitly requested (this allows a fallback if a +# future host CPU does not match 'powerpc*') + +AM_CONDITIONAL([PNG_POWERPC_VSX], + [test "$enable_powerpc_vsx" != 'no' && + case "$host_cpu" in + powerpc*|ppc64*) :;; + esac]) + + AC_MSG_NOTICE([[Extra options for compiler: $PNG_COPTS]]) # Config files, substituting as above diff --git a/source/libs/libpng/libpng-src/contrib/examples/pngtopng.c b/source/libs/libpng/libpng-src/contrib/examples/pngtopng.c index 4acf6b3ad..d4a51a8f0 100644 --- a/source/libs/libpng/libpng-src/contrib/examples/pngtopng.c +++ b/source/libs/libpng/libpng-src/contrib/examples/pngtopng.c @@ -1,10 +1,12 @@ /*- pngtopng * - * COPYRIGHT: Written by John Cunningham Bowler, 2011. + * COPYRIGHT: Written by John Cunningham Bowler, 2011, 2017. * To the extent possible under law, the author has waived all copyright and * related or neighboring rights to this work. This work is published from: * United States. * + * Last changed in libpng 1.6.29 [%RDATE%] + * * Read a PNG and write it out in a fixed format, using the 'simplified API' * that was introduced in libpng-1.6.0. * @@ -59,26 +61,27 @@ int main(int argc, const char **argv) else fprintf(stderr, "pngtopng: write %s: %s\n", argv[2], image.message); - - free(buffer); } else - { fprintf(stderr, "pngtopng: read %s: %s\n", argv[1], image.message); - /* This is the only place where a 'free' is required; libpng does - * the cleanup on error and success, but in this case we couldn't - * complete the read because of running out of memory. - */ - png_image_free(&image); - } + free(buffer); } else + { fprintf(stderr, "pngtopng: out of memory: %lu bytes\n", (unsigned long)PNG_IMAGE_SIZE(image)); + + /* This is the only place where a 'free' is required; libpng does + * the cleanup on error and success, but in this case we couldn't + * complete the read because of running out of memory and so libpng + * has not got to the point where it can do cleanup. + */ + png_image_free(&image); + } } else diff --git a/source/libs/libpng/libpng-src/contrib/intel/INSTALL b/source/libs/libpng/libpng-src/contrib/intel/INSTALL deleted file mode 100644 index cd5cdd94e..000000000 --- a/source/libs/libpng/libpng-src/contrib/intel/INSTALL +++ /dev/null @@ -1,158 +0,0 @@ -Enabling SSE support - -Copyright (c) 2016 Google, Inc. -Written by Mike Klein, Matt Sarett - -This INSTALL file written by Glenn Randers-Pehrson, 2016. - -If you have moved intel_init.c and filter_sse2_intrinsics.c to a different -directory, be sure to update the '#include "../../pngpriv.h"' line in both -files if necessary to point to the correct relative location of pngpriv.h -with respect to the new location of those files. - -To enable SSE support in libpng, follow the instructions in I, II, or III, -below: - -I. Using patched "configure" scripts: - -First, apply intel_sse.patch in your build directory. - - patch -i contrib/intel/intel_sse.patch -p1 - -Then, if you are not building in a new GIT clone, e.g., in a tar -distribution, remove any existing pre-built configure scripts: - - ./configure --enable-maintainer-mode - make maintainer-clean - ./autogen.sh --maintainer --clean - -Finally, configure libpng with -DPNG_INTEL_SSE in CPPFLAGS: - - ./autogen.sh --maintainer - CPPFLAGS="-DPNG_INTEL_SSE" ./configure [options] - make CPPFLAGS="-DPNG_INTEL_SSE" [options] - make - -II. Using a custom makefile: - -If you are using a custom makefile makefile, you will have to update it -manually to include contrib/intel/*.o in the dependencies, and to define -PNG_INTEL_SSE. - -III. Using manually updated "configure" scripts: - -If you prefer, manually edit pngpriv.h, configure.ac, and Makefile.am, -following the instructions below, then follow the instructions in -section II of INSTALL in the main libpng directory, then configure libpng -with -DPNG_INTEL_SSE in CPPFLAGS. - -1. Add the following code to configure.ac under HOST SPECIFIC OPTIONS -directly beneath the section for ARM: - ------------------cut---------------- -# INTEL -# ===== -# -# INTEL SSE (SIMD) support. - -AC_ARG_ENABLE([intel-sse], - AS_HELP_STRING([[[--enable-intel-sse]]], - [Enable Intel SSE optimizations: =no/off, yes/on:] - [no/off: disable the optimizations;] - [yes/on: enable the optimizations.] - [If not specified: determined by the compiler.]), - [case "$enableval" in - no|off) - # disable the default enabling: - AC_DEFINE([PNG_INTEL_SSE_OPT], [0], - [Disable Intel SSE optimizations]) - # Prevent inclusion of the assembler files below: - enable_intel_sse=no;; - yes|on) - AC_DEFINE([PNG_INTEL_SSE_OPT], [1], - [Enable Intel SSE optimizations]);; - *) - AC_MSG_ERROR([--enable-intel-sse=${enable_intel_sse}: invalid value]) - esac]) - -# Add Intel specific files to all builds where the host_cpu is Intel ('x86*') -# or where Intel optimizations were explicitly requested (this allows a -# fallback if a future host CPU does not match 'x86*') -AM_CONDITIONAL([PNG_INTEL_SSE], - [test "$enable_intel_sse" != 'no' && - case "$host_cpu" in - i?86|x86_64) :;; - *) test "$enable_intel_sse" != '';; - esac]) ------------------cut---------------- - -2. Add the following code to Makefile.am under HOST SPECIFIC OPTIONS -directly beneath the "if PNG_ARM_NEON ... endif" statement: - ------------------cut---------------- -if PNG_INTEL_SSE -libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += contrib/intel/intel_init.c\ - contrib/intel/filter_sse2_intrinsics.c -endif ------------------cut---------------- - -3. Add the following lines to pngpriv.h, following the PNG_ARM_NEON_OPT -code: - ------------------cut---------------- -#ifndef PNG_INTEL_SSE_OPT -# ifdef PNG_INTEL_SSE - /* Only check for SSE if the build configuration has been modified to - * enable SSE optimizations. This means that these optimizations will - * be off by default. See contrib/intel for more details. - */ -# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \ - defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ - (defined(_M_IX86_FP) && _M_IX86_FP >= 2) -# define PNG_INTEL_SSE_OPT 1 -# endif -# endif -#endif - -#if PNG_INTEL_SSE_OPT > 0 -# ifndef PNG_INTEL_SSE_IMPLEMENTATION -# if defined(__SSE4_1__) || defined(__AVX__) - /* We are not actually using AVX, but checking for AVX is the best - way we can detect SSE4.1 and SSSE3 on MSVC. - */ -# define PNG_INTEL_SSE_IMPLEMENTATION 3 -# elif defined(__SSSE3__) -# define PNG_INTEL_SSE_IMPLEMENTATION 2 -# elif defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ - (defined(_M_IX86_FP) && _M_IX86_FP >= 2) -# define PNG_INTEL_SSE_IMPLEMENTATION 1 -# else -# define PNG_INTEL_SSE_IMPLEMENTATION 0 -# endif -# endif - -# if PNG_INTEL_SSE_IMPLEMENTATION > 0 -# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_sse2 -# endif -#endif - ------------------cut---------------- - -4. Add the following lines to pngpriv.h, following the prototype for -png_read_filter_row_paeth4_neon: - ------------------cut---------------- -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); - ------------------cut---------------- diff --git a/source/libs/libpng/libpng-src/contrib/intel/intel_sse.patch b/source/libs/libpng/libpng-src/contrib/intel/intel_sse.patch deleted file mode 100644 index 24d4883c7..000000000 --- a/source/libs/libpng/libpng-src/contrib/intel/intel_sse.patch +++ /dev/null @@ -1,190 +0,0 @@ -diff --git a/configure.ac b/configure.ac ---- a/configure.ac 2016-08-29 11:46:27.000000000 -0400 -+++ b/configure.ac 2016-08-29 16:57:03.866355018 -0400 -@@ -386,16 +386,51 @@ AC_ARG_ENABLE([mips-msa], - # future host CPU does not match 'mips*') - - AM_CONDITIONAL([PNG_MIPS_MSA], - [test "$enable_mips_msa" != 'no' && - case "$host_cpu" in - mipsel*|mips64el*) :;; - esac]) - -+# INTEL -+# ===== -+# -+# INTEL SSE (SIMD) support. -+ -+AC_ARG_ENABLE([intel-sse], -+ AS_HELP_STRING([[[--enable-intel-sse]]], -+ [Enable Intel SSE optimizations: =no/off, yes/on:] -+ [no/off: disable the optimizations;] -+ [yes/on: enable the optimizations.] -+ [If not specified: determined by the compiler.]), -+ [case "$enableval" in -+ no|off) -+ # disable the default enabling: -+ AC_DEFINE([PNG_INTEL_SSE_OPT], [0], -+ [Disable Intel SSE optimizations]) -+ # Prevent inclusion of the assembler files below: -+ enable_intel_sse=no;; -+ yes|on) -+ AC_DEFINE([PNG_INTEL_SSE_OPT], [1], -+ [Enable Intel SSE optimizations]);; -+ *) -+ AC_MSG_ERROR([--enable-intel-sse=${enable_intel_sse}: invalid value]) -+ esac]) -+ -+# Add Intel specific files to all builds where the host_cpu is Intel ('x86*') -+# or where Intel optimizations were explicitly requested (this allows a -+# fallback if a future host CPU does not match 'x86*') -+AM_CONDITIONAL([PNG_INTEL_SSE], -+ [test "$enable_intel_sse" != 'no' && -+ case "$host_cpu" in -+ i?86|x86_64) :;; -+ *) test "$enable_intel_sse" != '';; -+ esac]) -+ - AC_MSG_NOTICE([[Extra options for compiler: $PNG_COPTS]]) - - # Config files, substituting as above - AC_CONFIG_FILES([Makefile libpng.pc:libpng.pc.in]) - AC_CONFIG_FILES([libpng-config:libpng-config.in], - [chmod +x libpng-config]) - - AC_OUTPUT -diff --git a/Makefile.am b/Makefile.am ---- a/Makefile.am 2016-08-29 11:46:27.000000000 -0400 -+++ b/Makefile.am 2016-08-29 16:57:45.955528215 -0400 -@@ -97,16 +97,21 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SO - arm/filter_neon.S arm/filter_neon_intrinsics.c - endif - - if PNG_MIPS_MSA - libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += mips/mips_init.c\ - mips/filter_msa_intrinsics.c - endif - -+if PNG_INTEL_SSE -+libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += contrib/intel/intel_init.c\ -+ contrib/intel/filter_sse2_intrinsics.c -+endif -+ - nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = pnglibconf.h - - libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined -export-dynamic \ - -version-number @PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0 - - if HAVE_LD_VERSION_SCRIPT - # Versioned symbols and restricted exports - if HAVE_SOLARIS_LD -diff --git a/pngpriv.h b/pngpriv.h ---- debug16/pngpriv.h 2016-08-30 10:46:36.000000000 -0400 -+++ libpng16/pngpriv.h 2016-08-30 11:57:25.672280202 -0400 -@@ -185,16 +185,52 @@ - #ifndef PNG_MIPS_MSA_OPT - # if defined(__mips_msa) && (__mips_isa_rev >= 5) && defined(PNG_ALIGNED_MEMORY_SUPPORTED) - # define PNG_MIPS_MSA_OPT 2 - # else - # define PNG_MIPS_MSA_OPT 0 - # endif - #endif - -+#ifndef PNG_INTEL_SSE_OPT -+# ifdef PNG_INTEL_SSE -+ /* Only check for SSE if the build configuration has been modified to -+ * enable SSE optimizations. This means that these optimizations will -+ * be off by default. See contrib/intel for more details. -+ */ -+# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \ -+ defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ -+ (defined(_M_IX86_FP) && _M_IX86_FP >= 2) -+# define PNG_INTEL_SSE_OPT 1 -+# endif -+# endif -+#endif -+ -+#if PNG_INTEL_SSE_OPT > 0 -+# ifndef PNG_INTEL_SSE_IMPLEMENTATION -+# if defined(__SSE4_1__) || defined(__AVX__) -+ /* We are not actually using AVX, but checking for AVX is the best -+ way we can detect SSE4.1 and SSSE3 on MSVC. -+ */ -+# define PNG_INTEL_SSE_IMPLEMENTATION 3 -+# elif defined(__SSSE3__) -+# define PNG_INTEL_SSE_IMPLEMENTATION 2 -+# elif defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ -+ (defined(_M_IX86_FP) && _M_IX86_FP >= 2) -+# define PNG_INTEL_SSE_IMPLEMENTATION 1 -+# else -+# define PNG_INTEL_SSE_IMPLEMENTATION 0 -+# endif -+# endif -+ -+# if PNG_INTEL_SSE_IMPLEMENTATION > 0 -+# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_sse2 -+# endif -+#endif -+ - #if PNG_MIPS_MSA_OPT > 0 - # define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa - # ifndef PNG_MIPS_MSA_IMPLEMENTATION - # if defined(__mips_msa) - # if defined(__clang__) - # elif defined(__GNUC__) - # if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) - # define PNG_MIPS_MSA_IMPLEMENTATION 2 -@@ -1251,16 +1287,31 @@ PNG_INTERNAL_FUNCTION(void,png_read_filt - PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); - PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); - PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); - #endif - -+#if PNG_INTEL_SSE_IMPLEMENTATION > 0 -+PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop -+ row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -+PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop -+ row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -+PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_sse2,(png_row_infop -+ row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -+PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_sse2,(png_row_infop -+ row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -+PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_sse2,(png_row_infop -+ row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -+PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop -+ row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -+#endif -+ - /* Choose the best filter to use and filter the row data */ - PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr, - png_row_infop row_info),PNG_EMPTY); - - #ifdef PNG_SEQUENTIAL_READ_SUPPORTED - PNG_INTERNAL_FUNCTION(void,png_read_IDAT_data,(png_structrp png_ptr, - png_bytep output, png_alloc_size_t avail_out),PNG_EMPTY); - /* Read 'avail_out' bytes of data from the IDAT stream. If the output buffer -@@ -1986,16 +2037,21 @@ PNG_INTERNAL_FUNCTION(void, PNG_FILTER_O - PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon, - (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); - #endif - - #if PNG_MIPS_MSA_OPT > 0 - PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa, - (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); - #endif -+ -+# if PNG_INTEL_SSE_IMPLEMENTATION > 0 -+PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2, -+ (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); -+# endif - #endif - - PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr, - png_const_charp key, png_bytep new_key), PNG_EMPTY); - - /* Maintainer: Put new private prototypes here ^ */ - - #include "pngdebug.h" diff --git a/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c b/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c index 499801b30..b0daa18b1 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c @@ -1,8 +1,8 @@ /* pngvalid.c - validate libpng by constructing then reading png files. * - * Last changed in libpng 1.6.27 [December 29, 2016] - * Copyright (c) 2014-2016 John Cunningham Bowler + * Last changed in libpng 1.6.29 [March 16, 2017] + * Copyright (c) 2014-2017 John Cunningham Bowler * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -7742,13 +7742,11 @@ image_transform_png_set_rgb_to_gray_ini(const image_transform *this, * NOTE: this number only affects the internal limit check in pngvalid, * it has no effect on the limits applied to the libpng values. */ - that->pm->limit += pow( -# if DIGITIZE - 2.0 -# else - 1.0 -# endif - /255, data.gamma); +#if DIGITIZE + that->pm->limit += pow( 2.0/255, data.gamma); +#else + that->pm->limit += pow( 1.0/255, data.gamma); +#endif } } diff --git a/source/libs/libpng/libpng-src/contrib/powerpc-vsx/README b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/README new file mode 100644 index 000000000..e566147ea --- /dev/null +++ b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/README @@ -0,0 +1,81 @@ +OPERATING SYSTEM SPECIFIC POWERPC DETECTION +-------------------------------------------- + +Detection of the ability to execute POWERPC on processor requires +operating system support. (The information is not available in user mode.) + +Currently only this feature is supported only for linux platform. + +HOW TO USE THIS +--------------- + +This directory contains C code fragments that can be included in powerpc/powerpc_init.c +by setting the macro PNG_POWERPC_VSX_FILE to the file name in "" or <> at build +time. This setting is not recorded in pnglibconf.h and can be changed simply by +rebuilding arm/arm_init.o with the required macro definition. + +For any of this code to be used the POWERPC code must be enabled and run time +checks must be supported. I.e.: + +#if PNG_POWERPC_VSX_OPT > 0 +#ifdef PNG_POWERPC_VSX_CHECK_SUPPORTED + +This is done in a 'configure' build by passing configure the argument: + + --enable-powerpc-vsx=check + +FILE FORMAT +----------- + +Each file documents its testing status as of the last time it was tested (which +may have been a long time ago): + +STATUS: one of: + SUPPORTED: This indicates that the file is included in the regularly + performed test builds and bugs are fixed when discovered. + COMPILED: This indicates that the code did compile at least once. See the + more detailed description for the extent to which the result was + successful. + TESTED: This means the code was fully compiled into the libpng test programs + and these were run at least once. + +BUG REPORTS: an email address to which to send reports of problems + +The file is a fragment of C code. It should not define any 'extern' symbols; +everything should be static. It must define the function: + +static int png_have_vsx(png_structp png_ptr); + +That function must return 1 if ARM NEON instructions are supported, 0 if not. +It must not execute png_error unless it detects a bug. A png_error will prevent +the reading of the PNG and in the future, writing too. + +BUG REPORTS +----------- + +If you mail a bug report for any file that is not SUPPORTED there may only be +limited response. Consider fixing it and sending a patch to fix the problem - +this is more likely to result in action. + +CONTRIBUTIONS +------------- + +You may send contributions of new implementations to +png-mng-implement@sourceforge.net. Please write code in strict C90 C where +possible. Obviously OS dependencies are to be expected. If you submit code you +must have the authors permission and it must have a license that is acceptable +to the current maintainer; in particular that license must permit modification +and redistribution. + +Please try to make the contribution a single file and give the file a clear and +unambiguous name that identifies the target OS. If multiple files really are +required put them all in a sub-directory. + +You must also be prepared to handle bug reports from users of the code, either +by joining the png-mng-implement mailing list or by providing an email for the +"BUG REPORTS" entry or both. Please make sure that the header of the file +contains the STATUS and BUG REPORTS fields as above. + +Please list the OS requirements as precisely as possible. Ideally you should +also list the environment in which the code has been tested and certainly list +any environments where you suspect it might not work. diff --git a/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux.c b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux.c new file mode 100644 index 000000000..32ed9d749 --- /dev/null +++ b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux.c @@ -0,0 +1,57 @@ +/* contrib/powerpc-vsx/linux.c + * + * Copyright (c) 2017 Glenn Randers-Pehrson + * Written by Vadim Barkov, 2017. + * Last changed in libpng 1.6.29 [March 16, 2017] + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + * STATUS: TESTED + * BUG REPORTS: png-mng-implement@sourceforge.net + * + * png_have_vsx implemented for Linux by reading the widely available + * pseudo-file /proc/cpuinfo. + * + * This code is strict ANSI-C and is probably moderately portable; it does + * however use <stdio.h> and it assumes that /proc/cpuinfo is never localized. + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include "png.h" + +#ifndef MAXLINE +# define MAXLINE 1024 +#endif + +static int +png_have_vsx(png_structp png_ptr) +{ + FILE *f; + + const char *string = "altivec supported"; + char input[MAXLINE]; + char *token = NULL; + + PNG_UNUSED(png_ptr) + + f = fopen("/proc/cpuinfo", "r"); + if (f != NULL) + { + memset(input,0,MAXLINE); + while(fgets(input,MAXLINE,f) != NULL) + { + token = strstr(input,string); + if(token != NULL) + return 1; + } + } +#ifdef PNG_WARNINGS_SUPPORTED + else + png_warning(png_ptr, "/proc/cpuinfo open failed"); +#endif + return 0; +} diff --git a/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c new file mode 100644 index 000000000..796922d77 --- /dev/null +++ b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c @@ -0,0 +1,36 @@ +/* contrib/powerpc-vsx/linux_aux.c + * + * Copyright (c) 2017 Glenn Randers-Pehrson + * Written by Vadim Barkov, 2017. + * Last changed in libpng 1.6.29 [March 16, 2017] + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + * STATUS: TESTED + * BUG REPORTS: png-mng-implement@sourceforge.net + * + * png_have_vsx implemented for Linux by using the auxiliary vector mechanism. + * + * This code is strict ANSI-C and is probably moderately portable; it does + * however use <stdio.h> and it assumes that /proc/cpuinfo is never localized. + */ + +#include "sys/auxv.h" +#include "png.h" + +static int +png_have_vsx(png_structp png_ptr) +{ + + const unsigned long auxv = getauxval( AT_HWCAP ); + + PNG_UNUSED(png_ptr) + + if(auxv & (PPC_FEATURE_HAS_ALTIVEC|PPC_FEATURE_HAS_VSX )) + return 1; + else + return 0; +} + diff --git a/source/libs/libpng/libpng-src/contrib/intel/filter_sse2_intrinsics.c b/source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c similarity index 98% rename from source/libs/libpng/libpng-src/contrib/intel/filter_sse2_intrinsics.c rename to source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c index b02840c55..b91d8da96 100644 --- a/source/libs/libpng/libpng-src/contrib/intel/filter_sse2_intrinsics.c +++ b/source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c @@ -1,19 +1,18 @@ /* filter_sse2_intrinsics.c - SSE2 optimized filter functions * - * Copyright (c) 2016 Google, Inc. + * Copyright (c) 2016-2017 Glenn Randers-Pehrson * Written by Mike Klein and Matt Sarett - * Derived from arm/filter_neon_intrinsics.c, which was - * Copyright (c) 2014,2016 Glenn Randers-Pehrson + * Derived from arm/filter_neon_intrinsics.c * - * Last changed in libpng 1.6.24 [August 4, 2016] + * Last changed in libpng 1.6.29 [March 16, 2017] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ -#include "../../pngpriv.h" +#include "../pngpriv.h" #ifdef PNG_READ_SUPPORTED diff --git a/source/libs/libpng/libpng-src/contrib/intel/intel_init.c b/source/libs/libpng/libpng-src/intel/intel_init.c similarity index 86% rename from source/libs/libpng/libpng-src/contrib/intel/intel_init.c rename to source/libs/libpng/libpng-src/intel/intel_init.c index 328e90e9a..8f08baf8c 100644 --- a/source/libs/libpng/libpng-src/contrib/intel/intel_init.c +++ b/source/libs/libpng/libpng-src/intel/intel_init.c @@ -1,19 +1,18 @@ /* intel_init.c - SSE2 optimized filter functions * - * Copyright (c) 2016 Google, Inc. - * Written by Mike Klein and Matt Sarett - * Derived from arm/arm_init.c, which was - * Copyright (c) 2014,2016 Glenn Randers-Pehrson + * Copyright (c) 2016-2017 Glenn Randers-Pehrson + * Written by Mike Klein and Matt Sarett, Google, Inc. + * Derived from arm/arm_init.c * - * Last changed in libpng 1.6.22 [May 26, 2016] + * Last changed in libpng 1.6.29 [March 16, 2017] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ -#include "../../pngpriv.h" +#include "../pngpriv.h" #ifdef PNG_READ_SUPPORTED #if PNG_INTEL_SSE_IMPLEMENTATION > 0 diff --git a/source/libs/libpng/libpng-src/libpng-manual.txt b/source/libs/libpng/libpng-src/libpng-manual.txt index 048ba31c0..57ebbda4c 100644 --- a/source/libs/libpng/libpng-src/libpng-manual.txt +++ b/source/libs/libpng/libpng-src/libpng-manual.txt @@ -1,6 +1,6 @@ libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.28 - January 5, 2017 + libpng version 1.6.29 - March 16, 2017 Updated and distributed by Glenn Randers-Pehrson <glennrp at users.sourceforge.net> Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.28 - January 5, 2017 + libpng versions 0.97, January 1998, through 1.6.29 - March 16, 2017 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -5355,7 +5355,7 @@ Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.28 are Y2K compliant. It is my belief that earlier +upward through 1.6.29 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer diff --git a/source/libs/libpng/libpng-src/libpng.3 b/source/libs/libpng/libpng-src/libpng.3 index 27b673c6b..080dfe523 100644 --- a/source/libs/libpng/libpng-src/libpng.3 +++ b/source/libs/libpng/libpng-src/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "January 5, 2017" +.TH LIBPNG 3 "March 16, 2017" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.28 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.29 .SH SYNOPSIS \fB #include <png.h>\fP @@ -510,7 +510,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng. .SH LIBPNG.TXT libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.28 - January 5, 2017 + libpng version 1.6.29 - March 16, 2017 Updated and distributed by Glenn Randers-Pehrson <glennrp at users.sourceforge.net> Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -521,7 +521,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.28 - January 5, 2017 + libpng versions 0.97, January 1998, through 1.6.29 - March 16, 2017 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -5865,7 +5865,7 @@ Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.28 are Y2K compliant. It is my belief that earlier +upward through 1.6.29 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer @@ -5967,7 +5967,7 @@ the first widely used release: ... 1.5.28 15 10528 15.so.15.28[.0] ... - 1.6.28 16 10628 16.so.16.28[.0] + 1.6.29 16 10629 16.so.16.29[.0] Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -6023,7 +6023,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.28 - January 5, 2017: +Libpng version 1.6.29 - March 16, 2017: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -6048,7 +6048,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.28, January 5, 2017 are +libpng versions 1.0.7, July 1, 2000 through 1.6.29, March 16, 2017 are Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals @@ -6061,6 +6061,8 @@ added to the list of Contributing Authors: Gilles Vollant James Yu Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov and with the following additions to the disclaimer: @@ -6174,7 +6176,7 @@ files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). Glenn Randers-Pehrson glennrp at users.sourceforge.net -January 5, 2017 +March 16, 2017 .\" end of man page diff --git a/source/libs/libpng/libpng-src/libpngpf.3 b/source/libs/libpng/libpng-src/libpngpf.3 index 585fd24c7..04e4b3b47 100644 --- a/source/libs/libpng/libpng-src/libpngpf.3 +++ b/source/libs/libpng/libpng-src/libpngpf.3 @@ -1,6 +1,6 @@ -.TH LIBPNGPF 3 "January 5, 2017" +.TH LIBPNGPF 3 "March 16, 2017" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.28 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.29 (private functions) .SH SYNOPSIS \fB#include \fI"pngpriv.h" diff --git a/source/libs/libpng/libpng-src/png.5 b/source/libs/libpng/libpng-src/png.5 index 5be00596f..08da75b5e 100644 --- a/source/libs/libpng/libpng-src/png.5 +++ b/source/libs/libpng/libpng-src/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "January 5, 2017" +.TH PNG 5 "March 16, 2017" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/source/libs/libpng/libpng-src/png.c b/source/libs/libpng/libpng-src/png.c index 78ce39f46..2c9fea212 100644 --- a/source/libs/libpng/libpng-src/png.c +++ b/source/libs/libpng/libpng-src/png.c @@ -1,7 +1,7 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.6.28 [January 5, 2017] + * Last changed in libpng 1.6.29 [March 16, 2017] * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -14,7 +14,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_28 Your_png_h_is_not_version_1_6_28; +typedef png_libpng_version_1_6_29 Your_png_h_is_not_version_1_6_29; /* Tells libpng that we have already handled the first "num_bytes" bytes * of the PNG file signature. If the PNG data is embedded into another @@ -776,14 +776,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.28 - January 5, 2017" PNG_STRING_NEWLINE \ + "libpng version 1.6.29 - March 16, 2017" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE; # else - return "libpng version 1.6.28 - January 5, 2017\ + return "libpng version 1.6.29 - March 16, 2017\ Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; @@ -4260,13 +4260,13 @@ png_set_option(png_structrp png_ptr, int option, int onoff) if (png_ptr != NULL && option >= 0 && option < PNG_OPTION_NEXT && (option & 1) == 0) { - png_uint_32 mask = 3 << option; - png_uint_32 setting = (2 + (onoff != 0)) << option; + png_uint_32 mask = 3U << option; + png_uint_32 setting = (2U + (onoff != 0)) << option; png_uint_32 current = png_ptr->options; png_ptr->options = (png_uint_32)(((current & ~mask) | setting) & 0xff); - return (current & mask) >> option; + return (int)(current & mask) >> option; } return PNG_OPTION_INVALID; diff --git a/source/libs/libpng/libpng-src/png.h b/source/libs/libpng/libpng-src/png.h index e4cf03281..2431e0dfc 100644 --- a/source/libs/libpng/libpng-src/png.h +++ b/source/libs/libpng/libpng-src/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.28, January 5, 2017 + * libpng version 1.6.29, March 16, 2017 * * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -12,7 +12,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.28, January 5, 2017: + * libpng versions 0.97, January 1998, through 1.6.29, March 16, 2017: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -25,7 +25,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.0.7, July 1, 2000 through 1.6.28, January 5, 2017 are + * libpng versions 1.0.7, July 1, 2000 through 1.6.29, March 16, 2017 are * Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are * derived from libpng-1.0.6, and are distributed according to the same * disclaimer and license as libpng-1.0.6 with the following individuals @@ -38,6 +38,8 @@ * Gilles Vollant * James Yu * Mandar Sahastrabuddhe + * Google Inc. + * Vadim Barkov * * and with the following additions to the disclaimer: * @@ -211,7 +213,7 @@ * ... * 1.5.28 15 10527 15.so.15.28[.0] * ... - * 1.6.28 16 10628 16.so.16.28[.0] + * 1.6.29 16 10629 16.so.16.29[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -239,13 +241,13 @@ * Y2K compliance in libpng: * ========================= * - * January 5, 2017 + * March 16, 2017 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.28 are Y2K compliant. It is my belief that + * upward through 1.6.29 are Y2K compliant. It is my belief that * earlier versions were also Y2K compliant. * * Libpng only has two year fields. One is a 2-byte unsigned integer @@ -307,8 +309,8 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.28" -#define PNG_HEADER_VERSION_STRING " libpng version 1.6.28 - January 5, 2017\n" +#define PNG_LIBPNG_VER_STRING "1.6.29" +#define PNG_HEADER_VERSION_STRING " libpng version 1.6.29 - March 16, 2017\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -316,7 +318,7 @@ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ #define PNG_LIBPNG_VER_MAJOR 1 #define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 28 +#define PNG_LIBPNG_VER_RELEASE 29 /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: @@ -347,7 +349,7 @@ * version 1.0.0 was mis-numbered 100 instead of 10000). From * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */ -#define PNG_LIBPNG_VER 10628 /* 1.6.28 */ +#define PNG_LIBPNG_VER 10629 /* 1.6.29 */ /* Library configuration: these options cannot be changed after * the library has been built. @@ -457,7 +459,7 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_6_28; +typedef char* png_libpng_version_1_6_29; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * @@ -3224,7 +3226,10 @@ PNG_EXPORT(245, int, png_image_write_to_memory, (png_imagep image, void *memory, # define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */ #endif #define PNG_IGNORE_ADLER32 8 -#define PNG_OPTION_NEXT 10 /* Next option - numbers must be even */ +#ifdef PNG_POWERPC_VSX_API_SUPPORTED +# define PNG_POWERPC_VSX 10 /* HARDWARE: PowerPC VSX SIMD instructions supported */ +#endif +#define PNG_OPTION_NEXT 12 /* Next option - numbers must be even */ /* Return values: NOTE: there are four values and 'off' is *not* zero */ #define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ diff --git a/source/libs/libpng/libpng-src/pngconf.h b/source/libs/libpng/libpng-src/pngconf.h index 5e8b40bcf..78d8b92b0 100644 --- a/source/libs/libpng/libpng-src/pngconf.h +++ b/source/libs/libpng/libpng-src/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.28, January 5, 2017 + * libpng version 1.6.29, March 16, 2017 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/source/libs/libpng/libpng-src/pnglibconf.h b/source/libs/libpng/libpng-src/pnglibconf.h index ee7057360..82f6ba461 100644 --- a/source/libs/libpng/libpng-src/pnglibconf.h +++ b/source/libs/libpng/libpng-src/pnglibconf.h @@ -1,8 +1,8 @@ -/* libpng 1.6.28 STANDARD API DEFINITION */ +/* libpng 1.6.29 STANDARD API DEFINITION */ /* pnglibconf.h - library build configuration */ -/* Libpng version 1.6.28 - January 5, 2017 */ +/* Libpng version 1.6.29 - March 16, 2017 */ /* Copyright (c) 1998-2015 Glenn Randers-Pehrson */ @@ -20,6 +20,8 @@ #define PNG_ALIGNED_MEMORY_SUPPORTED /*#undef PNG_ARM_NEON_API_SUPPORTED*/ /*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ #define PNG_BENIGN_ERRORS_SUPPORTED #define PNG_BENIGN_READ_ERRORS_SUPPORTED /*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ diff --git a/source/libs/libpng/libpng-src/pngpriv.h b/source/libs/libpng/libpng-src/pngpriv.h index ed61165b2..6d2e424d2 100644 --- a/source/libs/libpng/libpng-src/pngpriv.h +++ b/source/libs/libpng/libpng-src/pngpriv.h @@ -1,8 +1,8 @@ /* pngpriv.h - private declarations for use inside libpng * - * Last changed in libpng 1.6.26 [October 20, 2016] - * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson + * Last changed in libpng 1.6.29 [March 16, 2017] + * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -190,6 +190,50 @@ # endif #endif +#ifndef PNG_POWERPC_VSX_OPT +# if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__) +# define PNG_POWERPC_VSX_OPT 2 +# else +# define PNG_POWERPC_VSX_OPT 0 +# endif +#endif + +#ifndef PNG_INTEL_SSE_OPT +# ifdef PNG_INTEL_SSE + /* Only check for SSE if the build configuration has been modified to + * enable SSE optimizations. This means that these optimizations will + * be off by default. See contrib/intel for more details. + */ +# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \ + defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ + (defined(_M_IX86_FP) && _M_IX86_FP >= 2) +# define PNG_INTEL_SSE_OPT 1 +# endif +# endif +#endif + +#if PNG_INTEL_SSE_OPT > 0 +# ifndef PNG_INTEL_SSE_IMPLEMENTATION +# if defined(__SSE4_1__) || defined(__AVX__) + /* We are not actually using AVX, but checking for AVX is the best + way we can detect SSE4.1 and SSSE3 on MSVC. + */ +# define PNG_INTEL_SSE_IMPLEMENTATION 3 +# elif defined(__SSSE3__) +# define PNG_INTEL_SSE_IMPLEMENTATION 2 +# elif defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ + (defined(_M_IX86_FP) && _M_IX86_FP >= 2) +# define PNG_INTEL_SSE_IMPLEMENTATION 1 +# else +# define PNG_INTEL_SSE_IMPLEMENTATION 0 +# endif +# endif + +# if PNG_INTEL_SSE_IMPLEMENTATION > 0 +# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_sse2 +# endif +#endif + #if PNG_MIPS_MSA_OPT > 0 # define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa # ifndef PNG_MIPS_MSA_IMPLEMENTATION @@ -210,6 +254,11 @@ # endif #endif /* PNG_MIPS_MSA_OPT > 0 */ +#if PNG_POWERPC_VSX_OPT > 0 +# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx +# define PNG_POWERPC_VSX_IMPLEMENTATION 1 +#endif + /* Is this a build of a DLL where compilation of the object modules requires * different preprocessor settings to those required for a simple library? If @@ -1256,6 +1305,38 @@ PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_msa,(png_row_infop row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); #endif +#if PNG_POWERPC_VSX_OPT > 0 +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_vsx,(png_row_infop row_info, + png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_vsx,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +#endif + +#if PNG_INTEL_SSE_IMPLEMENTATION > 0 +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +#endif + /* Choose the best filter to use and filter the row data */ PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr, png_row_infop row_info),PNG_EMPTY); @@ -1991,6 +2072,11 @@ PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon, PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa, (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); #endif + +# if PNG_INTEL_SSE_IMPLEMENTATION > 0 +PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2, + (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); +# endif #endif PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr, diff --git a/source/libs/libpng/libpng-src/pngrtran.c b/source/libs/libpng/libpng-src/pngrtran.c index 0b4f4f906..16c1ed608 100644 --- a/source/libs/libpng/libpng-src/pngrtran.c +++ b/source/libs/libpng/libpng-src/pngrtran.c @@ -1,8 +1,8 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.6.24 [August 4, 2016] - * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson + * Last changed in libpng 1.6.29 [March 16, 2017] + * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -4302,7 +4302,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row, if (num_trans > 0) { sp = row + (png_size_t)row_width - 1; - dp = row + (png_size_t)(row_width << 2) - 1; + dp = row + ((png_size_t)row_width << 2) - 1; for (i = 0; i < row_width; i++) { @@ -4463,7 +4463,7 @@ png_do_expand(png_row_infop row_info, png_bytep row, { gray = gray & 0xff; sp = row + (png_size_t)row_width - 1; - dp = row + (png_size_t)(row_width << 1) - 1; + dp = row + ((png_size_t)row_width << 1) - 1; for (i = 0; i < row_width; i++) { @@ -4519,7 +4519,7 @@ png_do_expand(png_row_infop row_info, png_bytep row, png_byte green = (png_byte)(trans_color->green & 0xff); png_byte blue = (png_byte)(trans_color->blue & 0xff); sp = row + (png_size_t)row_info->rowbytes - 1; - dp = row + (png_size_t)(row_width << 2) - 1; + dp = row + ((png_size_t)row_width << 2) - 1; for (i = 0; i < row_width; i++) { if (*(sp - 2) == red && *(sp - 1) == green && *(sp) == blue) @@ -4542,7 +4542,7 @@ png_do_expand(png_row_infop row_info, png_bytep row, png_byte green_low = (png_byte)(trans_color->green & 0xff); png_byte blue_low = (png_byte)(trans_color->blue & 0xff); sp = row + row_info->rowbytes - 1; - dp = row + (png_size_t)(row_width << 3) - 1; + dp = row + ((png_size_t)row_width << 3) - 1; for (i = 0; i < row_width; i++) { if (*(sp - 5) == red_high && diff --git a/source/libs/libpng/libpng-src/pngrutil.c b/source/libs/libpng/libpng-src/pngrutil.c index bee0ea115..76f079a69 100644 --- a/source/libs/libpng/libpng-src/pngrutil.c +++ b/source/libs/libpng/libpng-src/pngrutil.c @@ -1,8 +1,8 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.6.27 [January 5, 2017] - * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson + * Last changed in libpng 1.6.29 [March 16, 2017] + * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -418,7 +418,7 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner) png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED; } -#if ZLIB_VERNUM >= 0x1281 && \ +#if ZLIB_VERNUM >= 0x1290 && \ defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_IGNORE_ADLER32) if (((png_ptr->options >> PNG_IGNORE_ADLER32) & 3) == PNG_OPTION_ON) /* Turn off validation of the ADLER32 checksum in IDAT chunks */ diff --git a/source/libs/libpng/libpng-src/pngtest.c b/source/libs/libpng/libpng-src/pngtest.c index f8f76bfc9..255fd1473 100644 --- a/source/libs/libpng/libpng-src/pngtest.c +++ b/source/libs/libpng/libpng-src/pngtest.c @@ -2088,4 +2088,4 @@ main(void) #endif /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_28 Your_png_h_is_not_version_1_6_28; +typedef png_libpng_version_1_6_29 Your_png_h_is_not_version_1_6_29; diff --git a/source/libs/libpng/libpng-src/pngwutil.c b/source/libs/libpng/libpng-src/pngwutil.c index d1a82d45e..0f98d582d 100644 --- a/source/libs/libpng/libpng-src/pngwutil.c +++ b/source/libs/libpng/libpng-src/pngwutil.c @@ -675,6 +675,7 @@ png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height, int interlace_type) { png_byte buf[13]; /* Buffer to store the IHDR info */ + int is_invalid_depth; png_debug(1, "in png_write_IHDR"); @@ -700,11 +701,11 @@ png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height, break; case PNG_COLOR_TYPE_RGB: + is_invalid_depth = (bit_depth != 8); #ifdef PNG_WRITE_16BIT_SUPPORTED - if (bit_depth != 8 && bit_depth != 16) -#else - if (bit_depth != 8) + is_invalid_depth = (is_invalid_depth && bit_depth != 16); #endif + if (is_invalid_depth) png_error(png_ptr, "Invalid bit depth for RGB image"); png_ptr->channels = 3; @@ -726,18 +727,22 @@ png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height, break; case PNG_COLOR_TYPE_GRAY_ALPHA: - if (bit_depth != 8 && bit_depth != 16) + is_invalid_depth = (bit_depth != 8); +#ifdef PNG_WRITE_16BIT_SUPPORTED + is_invalid_depth = (is_invalid_depth && bit_depth != 16); +#endif + if (is_invalid_depth) png_error(png_ptr, "Invalid bit depth for grayscale+alpha image"); png_ptr->channels = 2; break; case PNG_COLOR_TYPE_RGB_ALPHA: + is_invalid_depth = (bit_depth != 8); #ifdef PNG_WRITE_16BIT_SUPPORTED - if (bit_depth != 8 && bit_depth != 16) -#else - if (bit_depth != 8) + is_invalid_depth = (is_invalid_depth && bit_depth != 16); #endif + if (is_invalid_depth) png_error(png_ptr, "Invalid bit depth for RGBA image"); png_ptr->channels = 4; diff --git a/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c b/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c new file mode 100644 index 000000000..e3de496bd --- /dev/null +++ b/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c @@ -0,0 +1,767 @@ +/* filter_vsx_intrinsics.c - PowerPC optimised filter functions + * + * Copyright (c) 2017 Glenn Randers-Pehrson + * Written by Vadim Barkov, 2017. + * Last changed in libpng 1.6.29 [March 16, 2017] + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + */ +#include <stdio.h> +#include <stdint.h> +#include "../pngpriv.h" + +#ifdef PNG_READ_SUPPORTED + +/* This code requires -maltivec and -mvsx on the command line: */ +#if PNG_POWERPC_VSX_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */ + +#include <altivec.h> + +#if PNG_POWERPC_VSX_OPT > 0 + +#ifndef __VSX__ +# error "This code requires VSX support (POWER7 and later). Please provide -mvsx compiler flag." +#endif + +#define vec_ld_unaligned(vec,data) vec = vec_vsx_ld(0,data) +#define vec_st_unaligned(vec,data) vec_vsx_st(vec,0,data) + + +/* Functions in this file look at most 3 pixels (a,b,c) to predict the 4th (d). + * They're positioned like this: + * prev: c b + * row: a d + * The Sub filter predicts d=a, Avg d=(a+b)/2, and Paeth predicts d to be + * whichever of a, b, or c is closest to p=a+b-c. + * ( this is taken from ../intel/filter_sse2_intrinsics.c ) + */ + +#define vsx_declare_common_vars(row_info,row,prev_row,offset) \ + png_byte i;\ + png_bytep rp = row + offset;\ + png_const_bytep pp = prev_row;\ + png_size_t unaligned_top = 16 - (((png_size_t)rp % 16));\ + png_size_t istop;\ + if(unaligned_top == 16)\ + unaligned_top = 0;\ + istop = row_info->rowbytes;\ + if((unaligned_top < istop))\ + istop -= unaligned_top;\ + else{\ + unaligned_top = istop;\ + istop = 0;\ + } + +void png_read_filter_row_up_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + vector unsigned char rp_vec; + vector unsigned char pp_vec; + vsx_declare_common_vars(row_info,row,prev_row,0) + + /* Altivec operations require 16-byte aligned data + * but input can be unaligned. So we calculate + * unaligned part as usual. + */ + for (i = 0; i < unaligned_top; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); + rp++; + } + + /* Using SIMD while we can */ + while( istop >= 16 ) + { + rp_vec = vec_ld(0,rp); + vec_ld_unaligned(pp_vec,pp); + + rp_vec = vec_add(rp_vec,pp_vec); + + vec_st(rp_vec,0,rp); + + pp += 16; + rp += 16; + istop -= 16; + } + + if(istop > 0) + { + /* If byte count of row is not divisible by 16 + * we will process remaining part as usual + */ + for (i = 0; i < istop; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); + rp++; + } +} + +} + +static const vector unsigned char VSX_LEFTSHIFTED1_4 = {16,16,16,16, 0, 1, 2, 3,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_LEFTSHIFTED2_4 = {16,16,16,16,16,16,16,16, 4, 5, 6, 7,16,16,16,16}; +static const vector unsigned char VSX_LEFTSHIFTED3_4 = {16,16,16,16,16,16,16,16,16,16,16,16, 8, 9,10,11}; + +static const vector unsigned char VSX_LEFTSHIFTED1_3 = {16,16,16, 0, 1, 2,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_LEFTSHIFTED2_3 = {16,16,16,16,16,16, 3, 4, 5,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_LEFTSHIFTED3_3 = {16,16,16,16,16,16,16,16,16, 6, 7, 8,16,16,16,16}; +static const vector unsigned char VSX_LEFTSHIFTED4_3 = {16,16,16,16,16,16,16,16,16,16,16,16, 9,10,11,16}; + +static const vector unsigned char VSX_NOT_SHIFTED1_4 = {16,16,16,16, 4, 5, 6, 7,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_NOT_SHIFTED2_4 = {16,16,16,16,16,16,16,16, 8, 9,10,11,16,16,16,16}; +static const vector unsigned char VSX_NOT_SHIFTED3_4 = {16,16,16,16,16,16,16,16,16,16,16,16,12,13,14,15}; + +static const vector unsigned char VSX_NOT_SHIFTED1_3 = {16,16,16, 3, 4, 5,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_NOT_SHIFTED2_3 = {16,16,16,16,16,16, 6, 7, 8,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_NOT_SHIFTED3_3 = {16,16,16,16,16,16,16,16,16, 9,10,11,16,16,16,16}; +static const vector unsigned char VSX_NOT_SHIFTED4_3 = {16,16,16,16,16,16,16,16,16,16,16,16,12,13,14,16}; + +static const vector unsigned char VSX_CHAR_ZERO = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; +#ifdef __LITTLE_ENDIAN__ + +static const vector unsigned char VSX_CHAR_TO_SHORT1_4 = { 4,16, 5,16, 6,16, 7,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT2_4 = { 8,16, 9,16,10,16,11,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT3_4 = {12,16,13,16,14,16,15,16,16,16,16,16,16,16,16,16}; + +static const vector unsigned char VSX_SHORT_TO_CHAR1_4 = {16,16,16,16, 0, 2, 4, 6,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR2_4 = {16,16,16,16,16,16,16,16, 0, 2, 4, 6,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR3_4 = {16,16,16,16,16,16,16,16,16,16,16,16, 0, 2, 4, 6}; + +static const vector unsigned char VSX_CHAR_TO_SHORT1_3 = { 3,16, 4,16, 5,16,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT2_3 = { 6,16, 7,16, 8,16,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT3_3 = { 9,16,10,16,11,16,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT4_3 = {12,16,13,16,14,16,16,16,16,16,16,16,16,16,16,16}; + +static const vector unsigned char VSX_SHORT_TO_CHAR1_3 = {16,16,16, 0, 2, 4,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR2_3 = {16,16,16,16,16,16, 0, 2, 4,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR3_3 = {16,16,16,16,16,16,16,16,16, 0, 2, 4,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR4_3 = {16,16,16,16,16,16,16,16,16,16,16,16, 0, 2, 4,16}; + +#elif defined(__BIG_ENDIAN__) + +static const vector unsigned char VSX_CHAR_TO_SHORT1_4 = {16, 4,16, 5,16, 6,16, 7,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT2_4 = {16, 8,16, 9,16,10,16,11,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT3_4 = {16,12,16,13,16,14,16,15,16,16,16,16,16,16,16,16}; + +static const vector unsigned char VSX_SHORT_TO_CHAR1_4 = {16,16,16,16, 1, 3, 5, 7,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR2_4 = {16,16,16,16,16,16,16,16, 1, 3, 5, 7,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR3_4 = {16,16,16,16,16,16,16,16,16,16,16,16, 1, 3, 5, 7}; + +static const vector unsigned char VSX_CHAR_TO_SHORT1_3 = {16, 3,16, 4,16, 5,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT2_3 = {16, 6,16, 7,16, 8,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT3_3 = {16, 9,16,10,16,11,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_CHAR_TO_SHORT4_3 = {16,12,16,13,16,14,16,16,16,16,16,16,16,16,16,16}; + +static const vector unsigned char VSX_SHORT_TO_CHAR1_3 = {16,16,16, 1, 3, 5,16,16,16,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR2_3 = {16,16,16,16,16,16, 1, 3, 5,16,16,16,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR3_3 = {16,16,16,16,16,16,16,16,16, 1, 3, 5,16,16,16,16}; +static const vector unsigned char VSX_SHORT_TO_CHAR4_3 = {16,16,16,16,16,16,16,16,16,16,16,16, 1, 3, 5,16}; + +#endif + +#define vsx_char_to_short(vec,offset,bpp) (vector unsigned short)vec_perm((vec),VSX_CHAR_ZERO,VSX_CHAR_TO_SHORT##offset##_##bpp) +#define vsx_short_to_char(vec,offset,bpp) vec_perm(((vector unsigned char)(vec)),VSX_CHAR_ZERO,VSX_SHORT_TO_CHAR##offset##_##bpp) + +#ifdef PNG_USE_ABS +# define vsx_abs(number) abs(number) +#else +# define vsx_abs(number) (number > 0) ? (number) : -(number) +#endif + +void png_read_filter_row_sub4_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + const png_byte bpp = 4; + + vector unsigned char rp_vec; + vector unsigned char part_vec; + + vsx_declare_common_vars(row_info,row,prev_row,bpp) + + PNG_UNUSED(pp) + + /* Altivec operations require 16-byte aligned data + * but input can be unaligned. So we calculate + * unaligned part as usual. + */ + for (i = 0; i < unaligned_top; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); + rp++; + } + + /* Using SIMD while we can */ + while( istop >= 16 ) + { + for(i=0;i < bpp ; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); + rp++; + } + rp -= bpp; + + rp_vec = vec_ld(0,rp); + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_4); + rp_vec = vec_add(rp_vec,part_vec); + + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_4); + rp_vec = vec_add(rp_vec,part_vec); + + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_4); + rp_vec = vec_add(rp_vec,part_vec); + + vec_st(rp_vec,0,rp); + + rp += 16; + istop -= 16; + } + + if(istop > 0) + for (i = 0; i < istop % 16; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*(rp - bpp))) & 0xff); + rp++; + } + +} + +void png_read_filter_row_sub3_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + const png_byte bpp = 3; + + vector unsigned char rp_vec; + vector unsigned char part_vec; + + vsx_declare_common_vars(row_info,row,prev_row,bpp) + + PNG_UNUSED(pp) + + /* Altivec operations require 16-byte aligned data + * but input can be unaligned. So we calculate + * unaligned part as usual. + */ + for (i = 0; i < unaligned_top; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); + rp++; + } + + /* Using SIMD while we can */ + while( istop >= 16 ) + { + for(i=0;i < bpp ; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); + rp++; + } + rp -= bpp; + + rp_vec = vec_ld(0,rp); + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_3); + rp_vec = vec_add(rp_vec,part_vec); + + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_3); + rp_vec = vec_add(rp_vec,part_vec); + + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_3); + rp_vec = vec_add(rp_vec,part_vec); + + part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED4_3); + rp_vec = vec_add(rp_vec,part_vec); + + vec_st(rp_vec,0,rp); + rp += 15; + istop -= 16; + + /* Since 16 % bpp = 16 % 3 = 1, last element of array must + * be proceeded manually + */ + *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); + rp++; + } + + if(istop > 0) + for (i = 0; i < istop % 16; i++) + { + *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); + rp++; + } +} + +void png_read_filter_row_avg4_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + const png_byte bpp = 4; + + vector unsigned char rp_vec; + vector unsigned char pp_vec; + vector unsigned char pp_part_vec; + vector unsigned char rp_part_vec; + vector unsigned char avg_vec; + + vsx_declare_common_vars(row_info,row,prev_row,bpp) + rp -= bpp; + if(istop >= bpp) + istop -= bpp; + + for (i = 0; i < bpp; i++) + { + *rp = (png_byte)(((int)(*rp) + + ((int)(*pp++) / 2 )) & 0xff); + + rp++; + } + + /* Altivec operations require 16-byte aligned data + * but input can be unaligned. So we calculate + * unaligned part as usual. + */ + for (i = 0; i < unaligned_top; i++) + { + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + + rp++; + } + + /* Using SIMD while we can */ + while( istop >= 16 ) + { + for(i=0;i < bpp ; i++) + { + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + + rp++; + } + rp -= bpp; + pp -= bpp; + + vec_ld_unaligned(pp_vec,pp); + rp_vec = vec_ld(0,rp); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_4); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED1_4); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_4); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED2_4); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_4); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED3_4); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + vec_st(rp_vec,0,rp); + + rp += 16; + pp += 16; + istop -= 16; + } + + if(istop > 0) + for (i = 0; i < istop % 16; i++) + { + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + + rp++; + } +} + +void png_read_filter_row_avg3_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + const png_byte bpp = 3; + + vector unsigned char rp_vec; + vector unsigned char pp_vec; + vector unsigned char pp_part_vec; + vector unsigned char rp_part_vec; + vector unsigned char avg_vec; + + vsx_declare_common_vars(row_info,row,prev_row,bpp) + rp -= bpp; + if(istop >= bpp) + istop -= bpp; + + for (i = 0; i < bpp; i++) + { + *rp = (png_byte)(((int)(*rp) + + ((int)(*pp++) / 2 )) & 0xff); + + rp++; + } + + /* Altivec operations require 16-byte aligned data + * but input can be unaligned. So we calculate + * unaligned part as usual. + */ + for (i = 0; i < unaligned_top; i++) + { + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + + rp++; + } + + /* Using SIMD while we can */ + while( istop >= 16 ) + { + for(i=0;i < bpp ; i++) + { + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + + rp++; + } + rp -= bpp; + pp -= bpp; + + vec_ld_unaligned(pp_vec,pp); + rp_vec = vec_ld(0,rp); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_3); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED1_3); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_3); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED2_3); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_3); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED3_3); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED4_3); + pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED4_3); + avg_vec = vec_avg(rp_part_vec,pp_part_vec); + avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); + rp_vec = vec_add(rp_vec,avg_vec); + + vec_st(rp_vec,0,rp); + + rp += 15; + pp += 15; + istop -= 16; + + /* Since 16 % bpp = 16 % 3 = 1, last element of array must + * be proceeded manually + */ + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + rp++; + } + + if(istop > 0) + for (i = 0; i < istop % 16; i++) + { + *rp = (png_byte)(((int)(*rp) + + (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); + + rp++; + } +} + +/* Bytewise c ? t : e. */ +#define if_then_else(c,t,e) vec_sel(e,t,c) + +#define vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) {\ + c = *(pp - bpp);\ + a = *(rp - bpp);\ + b = *pp++;\ + p = b - c;\ + pc = a - c;\ + pa = vsx_abs(p);\ + pb = vsx_abs(pc);\ + pc = vsx_abs(p + pc);\ + if (pb < pa) pa = pb, a = b;\ + if (pc < pa) a = c;\ + a += *rp;\ + *rp++ = (png_byte)a;\ + } + +void png_read_filter_row_paeth4_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + const png_byte bpp = 4; + + int a, b, c, pa, pb, pc, p; + vector unsigned char rp_vec; + vector unsigned char pp_vec; + vector unsigned short a_vec,b_vec,c_vec,nearest_vec; + vector signed short pa_vec,pb_vec,pc_vec,smallest_vec; + + vsx_declare_common_vars(row_info,row,prev_row,bpp) + rp -= bpp; + if(istop >= bpp) + istop -= bpp; + + /* Process the first pixel in the row completely (this is the same as 'up' + * because there is only one candidate predictor for the first row). + */ + for(i = 0; i < bpp ; i++) + { + *rp = (png_byte)( *rp + *pp); + rp++; + pp++; + } + + for(i = 0; i < unaligned_top ; i++) + { + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } + + while( istop >= 16) + { + for(i = 0; i < bpp ; i++) + { + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } + + rp -= bpp; + pp -= bpp; + rp_vec = vec_ld(0,rp); + vec_ld_unaligned(pp_vec,pp); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_4),1,4); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED1_4),1,4); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_4),1,4); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,1,4))); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_4),2,4); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED2_4),2,4); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_4),2,4); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,2,4))); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_4),3,4); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED3_4),3,4); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_4),3,4); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,3,4))); + + vec_st(rp_vec,0,rp); + + rp += 16; + pp += 16; + istop -= 16; + } + + if(istop > 0) + for (i = 0; i < istop % 16; i++) + { + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } +} + +void png_read_filter_row_paeth3_vsx(png_row_infop row_info, png_bytep row, + png_const_bytep prev_row) +{ + const png_byte bpp = 3; + + int a, b, c, pa, pb, pc, p; + vector unsigned char rp_vec; + vector unsigned char pp_vec; + vector unsigned short a_vec,b_vec,c_vec,nearest_vec; + vector signed short pa_vec,pb_vec,pc_vec,smallest_vec; + + vsx_declare_common_vars(row_info,row,prev_row,bpp) + rp -= bpp; + if(istop >= bpp) + istop -= bpp; + + /* Process the first pixel in the row completely (this is the same as 'up' + * because there is only one candidate predictor for the first row). + */ + for(i = 0; i < bpp ; i++) + { + *rp = (png_byte)( *rp + *pp); + rp++; + pp++; + } + + for(i = 0; i < unaligned_top ; i++) + { + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } + + while( istop >= 16) + { + for(i = 0; i < bpp ; i++) + { + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } + + rp -= bpp; + pp -= bpp; + rp_vec = vec_ld(0,rp); + vec_ld_unaligned(pp_vec,pp); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_3),1,3); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED1_3),1,3); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_3),1,3); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,1,3))); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_3),2,3); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED2_3),2,3); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_3),2,3); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,2,3))); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_3),3,3); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED3_3),3,3); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_3),3,3); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,3,3))); + + a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED4_3),4,3); + b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED4_3),4,3); + c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED4_3),4,3); + pa_vec = (vector signed short) vec_sub(b_vec,c_vec); + pb_vec = (vector signed short) vec_sub(a_vec , c_vec); + pc_vec = vec_add(pa_vec,pb_vec); + pa_vec = vec_abs(pa_vec); + pb_vec = vec_abs(pb_vec); + pc_vec = vec_abs(pc_vec); + smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); + nearest_vec = if_then_else( + vec_cmpeq(pa_vec,smallest_vec), + a_vec, + if_then_else( + vec_cmpeq(pb_vec,smallest_vec), + b_vec, + c_vec + ) + ); + rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,4,3))); + + vec_st(rp_vec,0,rp); + + rp += 15; + pp += 15; + istop -= 16; + + /* Since 16 % bpp = 16 % 3 = 1, last element of array must + * be proceeded manually + */ + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } + + if(istop > 0) + for (i = 0; i < istop % 16; i++) + { + vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) + } +} + +#endif /* PNG_POWERPC_VSX_OPT > 0 */ +#endif /* PNG_POWERPC_VSX_IMPLEMENTATION == 1 (intrinsics) */ +#endif /* READ */ diff --git a/source/libs/libpng/libpng-src/powerpc/powerpc_init.c b/source/libs/libpng/libpng-src/powerpc/powerpc_init.c new file mode 100644 index 000000000..07016177c --- /dev/null +++ b/source/libs/libpng/libpng-src/powerpc/powerpc_init.c @@ -0,0 +1,125 @@ + +/* powerpc_init.c - POWERPC optimised filter functions + * + * Copyright (c) 2017 Glenn Randers-Pehrson + * Written by Vadim Barkov, 2017. + * Last changed in libpng 1.6.29 [March 16, 2017] + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + */ +/* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are + * called. + */ +#define _POSIX_SOURCE 1 + +#include <stdio.h> +#include "../pngpriv.h" + +#ifdef PNG_READ_SUPPORTED + +#if PNG_POWERPC_VSX_OPT > 0 +#ifdef PNG_POWERPC_VSX_CHECK_SUPPORTED /* Do run-time checks */ +/* WARNING: it is strongly recommended that you do not build libpng with + * run-time checks for CPU features if at all possible. In the case of the PowerPC + * VSX instructions there is no processor-specific way of detecting the + * presence of the required support, therefore run-time detection is extremely + * OS specific. + * + * You may set the macro PNG_POWERPC_VSX_FILE to the file name of file containing + * a fragment of C source code which defines the png_have_vsx function. There + * are a number of implementations in contrib/powerpc-vsx, but the only one that + * has partial support is contrib/powerpc-vsx/linux.c - a generic Linux + * implementation which reads /proc/cpufino. + */ +#ifndef PNG_POWERPC_VSX_FILE +# ifdef __linux__ +# define PNG_POWERPC_VSX_FILE "contrib/powerpc-vsx/linux_aux.c" +# endif +#endif + +#ifdef PNG_POWERPC_VSX_FILE + +#include <signal.h> /* for sig_atomic_t */ +static int png_have_vsx(png_structp png_ptr); +#include PNG_POWERPC_VSX_FILE + +#else /* PNG_POWERPC_VSX_FILE */ +# error "PNG_POWERPC_VSX_FILE undefined: no support for run-time POWERPC VSX checks" +#endif /* PNG_POWERPC_VSX_FILE */ +#endif /* PNG_POWERPC_VSX_CHECK_SUPPORTED */ + +void +png_init_filter_functions_vsx(png_structp pp, unsigned int bpp) +{ + /* The switch statement is compiled in for POWERPC_VSX_API, the call to + * png_have_vsx is compiled in for POWERPC_VSX_CHECK. If both are defined + * the check is only performed if the API has not set the PowerPC option on + * or off explicitly. In this case the check controls what happens. + */ + +#ifdef PNG_POWERPC_VSX_API_SUPPORTED + switch ((pp->options >> PNG_POWERPC_VSX) & 3) + { + case PNG_OPTION_UNSET: + /* Allow the run-time check to execute if it has been enabled - + * thus both API and CHECK can be turned on. If it isn't supported + * this case will fall through to the 'default' below, which just + * returns. + */ +#endif /* PNG_POWERPC_VSX_API_SUPPORTED */ +#ifdef PNG_POWERPC_VSX_CHECK_SUPPORTED + { + static volatile sig_atomic_t no_vsx = -1; /* not checked */ + + if (no_vsx < 0) + no_vsx = !png_have_vsx(pp); + + if (no_vsx) + return; + } +#ifdef PNG_POWERPC_VSX_API_SUPPORTED + break; +#endif +#endif /* PNG_POWERPC_VSX_CHECK_SUPPORTED */ + +#ifdef PNG_POWERPC_VSX_API_SUPPORTED + default: /* OFF or INVALID */ + return; + + case PNG_OPTION_ON: + /* Option turned on */ + break; + } +#endif + + /* IMPORTANT: any new internal functions used here must be declared using + * PNG_INTERNAL_FUNCTION in ../pngpriv.h. This is required so that the + * 'prefix' option to configure works: + * + * ./configure --with-libpng-prefix=foobar_ + * + * Verify you have got this right by running the above command, doing a build + * and examining pngprefix.h; it must contain a #define for every external + * function you add. (Notice that this happens automatically for the + * initialization function.) + */ + pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_vsx; + + if (bpp == 3) + { + pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_vsx; + pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_vsx; + pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth3_vsx; + } + + else if (bpp == 4) + { + pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_vsx; + pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_vsx; + pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth4_vsx; + } +} +#endif /* PNG_POWERPC_VSX_OPT > 0 */ +#endif /* READ */ diff --git a/source/libs/libpng/libpng-src/projects/vstudio/README.txt b/source/libs/libpng/libpng-src/projects/vstudio/README.txt index 9fd0f1dfb..1000d118e 100644 --- a/source/libs/libpng/libpng-src/projects/vstudio/README.txt +++ b/source/libs/libpng/libpng-src/projects/vstudio/README.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.28 - January 5, 2017 +libpng version 1.6.29 - March 16, 2017 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson diff --git a/source/libs/libpng/libpng-src/projects/vstudio/zlib.props b/source/libs/libpng/libpng-src/projects/vstudio/zlib.props index e0e0d8fd6..18da337e4 100644 --- a/source/libs/libpng/libpng-src/projects/vstudio/zlib.props +++ b/source/libs/libpng/libpng-src/projects/vstudio/zlib.props @@ -2,7 +2,7 @@ <!-- * zlib.props - location of zlib source * - * libpng version 1.6.28 - January 5, 2017 + * libpng version 1.6.29 - March 16, 2017 * * Copyright (c) 1998-2011 Glenn Randers-Pehrson * diff --git a/source/libs/libpng/libpng-src/scripts/README.txt b/source/libs/libpng/libpng-src/scripts/README.txt index 1fbdb2e52..9b3c0907f 100644 --- a/source/libs/libpng/libpng-src/scripts/README.txt +++ b/source/libs/libpng/libpng-src/scripts/README.txt @@ -1,9 +1,9 @@ -Makefiles for libpng version 1.6.28 - January 5, 2017 +Makefiles for libpng version 1.6.29 - March 16, 2017 pnglibconf.h.prebuilt => Stores configuration settings makefile.linux => Linux/ELF makefile - (gcc, creates libpng16.so.16.1.6.28) + (gcc, creates libpng16.so.16.1.6.29) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with ansi2knr (Requires ansi2knr.c from @@ -33,12 +33,12 @@ pnglibconf.h.prebuilt => Stores configuration settings makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def) makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sggcc => Silicon Graphics (gcc, - creates libpng16.so.16.1.6.28) + creates libpng16.so.16.1.6.29) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.solaris => Solaris 2.X makefile (gcc, - creates libpng16.so.16.1.6.28) + creates libpng16.so.16.1.6.29) makefile.so9 => Solaris 9 makefile (gcc, - creates libpng16.so.16.1.6.28) + creates libpng16.so.16.1.6.29) makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.sunos => Sun makefile makefile.32sunu => Sun Ultra 32-bit makefile diff --git a/source/libs/libpng/libpng-src/scripts/def.c b/source/libs/libpng/libpng-src/scripts/def.c index 99396123b..6a1831bb5 100644 --- a/source/libs/libpng/libpng-src/scripts/def.c +++ b/source/libs/libpng/libpng-src/scripts/def.c @@ -21,7 +21,7 @@ PNG_DFN "OS2 DESCRIPTION "PNG image compression library"" PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE" PNG_DFN "" PNG_DFN "EXPORTS" -PNG_DFN ";Version 1.6.28" +PNG_DFN ";Version 1.6.29" #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" diff --git a/source/libs/libpng/libpng-src/scripts/libpng-config-head.in b/source/libs/libpng/libpng-src/scripts/libpng-config-head.in index 9b6b32bf4..e06ed8e12 100644 --- a/source/libs/libpng/libpng-src/scripts/libpng-config-head.in +++ b/source/libs/libpng/libpng-src/scripts/libpng-config-head.in @@ -11,7 +11,7 @@ # Modeled after libxml-config. -version=1.6.28 +version=1.6.29 prefix="" libdir="" libs="" diff --git a/source/libs/libpng/libpng-src/scripts/libpng.pc.in b/source/libs/libpng/libpng-src/scripts/libpng.pc.in index f363b3806..e8bf22dbc 100644 --- a/source/libs/libpng/libpng-src/scripts/libpng.pc.in +++ b/source/libs/libpng/libpng-src/scripts/libpng.pc.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng16 Name: libpng Description: Loads and saves PNG files -Version: 1.6.28 +Version: 1.6.29 Libs: -L${libdir} -lpng16 Cflags: -I${includedir} diff --git a/source/libs/libpng/libpng-src/scripts/makefile.cegcc b/source/libs/libpng/libpng-src/scripts/makefile.cegcc index 0fe9eac4b..ca8ef6aed 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.cegcc +++ b/source/libs/libpng/libpng-src/scripts/makefile.cegcc @@ -23,7 +23,7 @@ VERMAJ = 1 VERMIN = 6 -VERMIC = 28 +VERMIC = 29 VER = $(VERMAJ).$(VERMIN).$(VERMIC) NAME = libpng PACKAGE = $(NAME)-$(VER) diff --git a/source/libs/libpng/libpng-src/scripts/makefile.linux b/source/libs/libpng/libpng-src/scripts/makefile.linux index ccb866a05..c6450bb55 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.linux +++ b/source/libs/libpng/libpng-src/scripts/makefile.linux @@ -10,7 +10,7 @@ # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 28 +RELEASE = 29 # Shared library names: LIBSO=$(LIBNAME).so diff --git a/source/libs/libpng/libpng-src/scripts/makefile.msys b/source/libs/libpng/libpng-src/scripts/makefile.msys index 72c31c158..4df88f915 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.msys +++ b/source/libs/libpng/libpng-src/scripts/makefile.msys @@ -18,7 +18,7 @@ exec_prefix=$(prefix) # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 28 +RELEASE = 29 # Shared library names: LIBSO=$(LIBNAME).dll diff --git a/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd b/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd index 4fddc77f4..fd4e48550 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd @@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng16 LIB= png16 SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.6.28 +SHLIB_MINOR= 1.6.29 SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/source/libs/libpng/libpng-src/scripts/makefile.netbsd b/source/libs/libpng/libpng-src/scripts/makefile.netbsd index 4688b62aa..210c8b606 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.netbsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.netbsd @@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include LIB= png SHLIB_MAJOR= 16 -SHLIB_MINOR= 1.6.28 +SHLIB_MINOR= 1.6.29 SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/source/libs/libpng/libpng-src/scripts/makefile.openbsd b/source/libs/libpng/libpng-src/scripts/makefile.openbsd index ba9def35f..4f3d5823a 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.openbsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.openbsd @@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib MANDIR= ${PREFIX}/man/cat SHLIB_MAJOR= 16 -SHLIB_MINOR= 1.6.28 +SHLIB_MINOR= 1.6.29 LIB= png SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \ diff --git a/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa b/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa index 019c06d47..9df2a4311 100644 --- a/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa +++ b/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa @@ -229,6 +229,33 @@ option ARM_NEON_API disabled requires ALIGNED_MEMORY enables SET_OPTION, option ARM_NEON_CHECK disabled requires ALIGNED_MEMORY, sets ARM_NEON_OPT 1 +# These options are specific to the PowerPC VSX hardware optimizations. +# +# POWERPC_VSX_OPT: unset: check at compile time (__PPC64__,__ALTIVEC__,__VSX__ +# must be defined by the compiler, typically as a result +# of specifying +# "-mvsx -maltivec" compiler flags) +# 0: disable (even if the CPU supports VSX.) +# 1: check at run time (via POWERPC_VSX_{API,CHECK}) +# 2: switch on unconditionally (inadvisable - instead pass +# -mvsx -maltivec to compiler options) +# When building libpng avoid using any setting other than '0'; '1' is +# set automatically when either 'API' or 'CHECK' are configured in, +# '2' should not be necessary as "-mvsx -maltivec" will achieve the same +# effect as well as applying VSX optimizations to the rest of the +# libpng code. +# POWERPC_VSX_API: (PNG_POWERPC_VSX == 1) allow the optimization to be switched on +# with png_set_option +# POWERPC_VSX_CHECK: (PNG_POWERPC_VSX == 1) compile a run-time check to see if VSX +# extensions are supported. This is supported not for all OSes +# (see contrib/powerpc/README) +setting POWERPC_VSX_OPT +option POWERPC_VSX_API disabled enables SET_OPTION, + sets POWERPC_VSX_OPT 1 +option POWERPC_VSX_CHECK disabled, + sets POWERPC_VSX_OPT 1 + + # These settings configure the default compression level (0-9) and 'strategy'; # strategy is as defined by the implementors of zlib. It describes the input # data and modifies the zlib parameters in an attempt to optimize the balance diff --git a/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt b/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt index ee7057360..82f6ba461 100644 --- a/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt +++ b/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt @@ -1,8 +1,8 @@ -/* libpng 1.6.28 STANDARD API DEFINITION */ +/* libpng 1.6.29 STANDARD API DEFINITION */ /* pnglibconf.h - library build configuration */ -/* Libpng version 1.6.28 - January 5, 2017 */ +/* Libpng version 1.6.29 - March 16, 2017 */ /* Copyright (c) 1998-2015 Glenn Randers-Pehrson */ @@ -20,6 +20,8 @@ #define PNG_ALIGNED_MEMORY_SUPPORTED /*#undef PNG_ARM_NEON_API_SUPPORTED*/ /*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ #define PNG_BENIGN_ERRORS_SUPPORTED #define PNG_BENIGN_READ_ERRORS_SUPPORTED /*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ diff --git a/source/libs/libpng/libpng-src/scripts/symbols.def b/source/libs/libpng/libpng-src/scripts/symbols.def index 4ebe7d0da..6c8eebff1 100644 --- a/source/libs/libpng/libpng-src/scripts/symbols.def +++ b/source/libs/libpng/libpng-src/scripts/symbols.def @@ -1,4 +1,4 @@ -;Version 1.6.28 +;Version 1.6.29 ;-------------------------------------------------------------- ; LIBPNG symbol list as a Win32 DEF file ; Contains all the symbols that can be exported from libpng diff --git a/source/libs/libpng/version.ac b/source/libs/libpng/version.ac index af8627062..ce8644990 100644 --- a/source/libs/libpng/version.ac +++ b/source/libs/libpng/version.ac @@ -8,4 +8,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current libpng version -m4_define([libpng_version], [1.6.28]) +m4_define([libpng_version], [1.6.29]) diff --git a/source/libs/lua52/Makefile.am b/source/libs/lua52/Makefile.am index a1e61ddd0..808681eeb 100644 --- a/source/libs/lua52/Makefile.am +++ b/source/libs/lua52/Makefile.am @@ -1,6 +1,8 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build Lua52 for TeX Live. ## -## Copyright (C) 2013-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2017 Karl Berry <tex-live@tug.org> +## Copyright 2013-2015 Peter Breitenlohner <tex-live@tug.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -12,7 +14,7 @@ EXTRA_DIST = $(LUA52_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += lua52-PATCHES +EXTRA_DIST += TLpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/lua52/Makefile.in b/source/libs/lua52/Makefile.in index 1ae560fd4..51c547265 100644 --- a/source/libs/lua52/Makefile.in +++ b/source/libs/lua52/Makefile.in @@ -620,7 +620,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(LUA52_TREE) lua52-PATCHES error.exp +EXTRA_DIST = $(LUA52_TREE) TLpatches error.exp NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/luajit/Makefile.am b/source/libs/luajit/Makefile.am index a74eed386..e431b30d4 100644 --- a/source/libs/luajit/Makefile.am +++ b/source/libs/luajit/Makefile.am @@ -1,7 +1,9 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build LuaJIT for TeX Live. ## -## Copyright (C) 2014 Luigi Scarso <luigi.scarso@gmail.com> -## Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2017 Karl Berry<tex-live@tug.org> +## Copyright 2014-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2014 Luigi Scarso <luigi.scarso@gmail.com> ## You may freely use, modify and/or distribute this file. ## ## We want to re-distribute the whole original LuaJIT source tree. @@ -10,7 +12,7 @@ EXTRA_DIST = $(LUAJIT_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += LuaJIT-PATCHES +EXTRA_DIST += TLpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/luajit/Makefile.in b/source/libs/luajit/Makefile.in index ad0fca5c9..4d79211bb 100644 --- a/source/libs/luajit/Makefile.in +++ b/source/libs/luajit/Makefile.in @@ -671,7 +671,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(LUAJIT_TREE) LuaJIT-PATCHES jiterr.exp +EXTRA_DIST = $(LUAJIT_TREE) TLpatches jiterr.exp NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/mpfr/Makefile.am b/source/libs/mpfr/Makefile.am index 2c7f6b23a..e59df120f 100644 --- a/source/libs/mpfr/Makefile.am +++ b/source/libs/mpfr/Makefile.am @@ -1,7 +1,9 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build MPFR for TeX Live. ## -## Copyright (C) 2014 Taco Hoekwater <taco@metatex.org> -## Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2017 Karl Berry<tex-live@tug.org> +## Copyright 2014-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2014 Taco Hoekwater <taco@metatex.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -13,7 +15,7 @@ EXTRA_DIST = $(MPFR_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += mpfr-PATCHES +EXTRA_DIST += TLpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/mpfr/Makefile.in b/source/libs/mpfr/Makefile.in index 478b14c1c..7d033746f 100644 --- a/source/libs/mpfr/Makefile.in +++ b/source/libs/mpfr/Makefile.in @@ -653,7 +653,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(MPFR_TREE) mpfr-PATCHES +EXTRA_DIST = $(MPFR_TREE) TLpatches NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/poppler/Makefile.am b/source/libs/poppler/Makefile.am index 69998a81d..627f70c5d 100644 --- a/source/libs/poppler/Makefile.am +++ b/source/libs/poppler/Makefile.am @@ -1,7 +1,8 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build poppler for TeX Live. ## -## Copyright (C) 2016 Karl Berry <tex-live@tug.org> -## Copyright (C) 2011-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2016-2017 Karl Berry <tex-live@tug.org> +## Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -13,7 +14,7 @@ EXTRA_DIST = $(POPPLER_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += poppler-PATCHES +EXTRA_DIST += TLpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/poppler/Makefile.in b/source/libs/poppler/Makefile.in index 9132e2cb4..3a802a914 100644 --- a/source/libs/poppler/Makefile.in +++ b/source/libs/poppler/Makefile.in @@ -429,7 +429,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(POPPLER_TREE) poppler-PATCHES +EXTRA_DIST = $(POPPLER_TREE) TLpatches NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/poppler/TLpatches/patch-02-LLONG_MAX b/source/libs/poppler/TLpatches/patch-02-LLONG_MAX index 318417ea4..27c174777 100644 --- a/source/libs/poppler/TLpatches/patch-02-LLONG_MAX +++ b/source/libs/poppler/TLpatches/patch-02-LLONG_MAX @@ -1,6 +1,6 @@ diff -ur poppler-0.52.0.orig/goo/GooString.h poppler-0.52.0/goo/GooString.h --- poppler-0.52.0.orig/goo/GooString.h Tue Jan 17 06:36:57 2017 -+++ poppler-0.52.0/goo/GooString.h Fri Feb 17 08:54:28 2017 ++++ poppler-0.52.0/goo/GooString.h Tue Mar 21 12:18:41 2017 @@ -36,6 +36,21 @@ #endif diff --git a/source/libs/poppler/TLpatches/patch-03-Object-functions b/source/libs/poppler/TLpatches/patch-03-Object-functions index 2e038362f..aa3fc750c 100644 --- a/source/libs/poppler/TLpatches/patch-03-Object-functions +++ b/source/libs/poppler/TLpatches/patch-03-Object-functions @@ -1,6 +1,6 @@ diff -ur poppler-0.52.0.orig/poppler/Object.h poppler-0.52.0/poppler/Object.h --- poppler-0.52.0.orig/poppler/Object.h Tue Jan 17 06:36:58 2017 -+++ poppler-0.52.0/poppler/Object.h Fri Feb 17 08:57:36 2017 ++++ poppler-0.52.0/poppler/Object.h Tue Mar 21 12:21:07 2017 @@ -148,7 +148,7 @@ Object *initStream(Stream *streamA); Object *initRef(int numA, int genA) diff --git a/source/libs/zlib/Makefile.am b/source/libs/zlib/Makefile.am index c012d8d81..ce6befd49 100644 --- a/source/libs/zlib/Makefile.am +++ b/source/libs/zlib/Makefile.am @@ -1,7 +1,8 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build zlib for TeX Live. ## -## Copyright (C) 2016 Karl Berry <tex-live@tug.org> -## Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2016-2017 Karl Berry <tex-live@tug.org> +## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -13,7 +14,7 @@ EXTRA_DIST = $(ZLIB_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += zlib-PATCHES +EXTRA_DIST += TLpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/zlib/Makefile.in b/source/libs/zlib/Makefile.in index 0e5643efb..8f3f7e8aa 100644 --- a/source/libs/zlib/Makefile.in +++ b/source/libs/zlib/Makefile.in @@ -558,7 +558,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(ZLIB_TREE) zlib-PATCHES +EXTRA_DIST = $(ZLIB_TREE) TLpatches NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/libs/zziplib/Makefile.am b/source/libs/zziplib/Makefile.am index cb2546562..ed100d9d0 100644 --- a/source/libs/zziplib/Makefile.am +++ b/source/libs/zziplib/Makefile.am @@ -1,6 +1,8 @@ +## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ ## Proxy Makefile.am to build zziplib for TeX Live. ## -## Copyright (C) 2010-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2017 Karl Berry <tex-live@tug.org> +## Copyright 2010-2015 Peter Breitenlohner <tex-live@tug.org> ## ## This file is free software; the copyright holder ## gives unlimited permission to copy and/or distribute it, @@ -12,7 +14,7 @@ EXTRA_DIST = $(ZZIPLIB_TREE) ## Changes applied to the original source tree ## -EXTRA_DIST += zziplib-PATCHES +EXTRA_DIST += Tlpatches # Files not to be distributed include $(srcdir)/../../am/dist_hook.am diff --git a/source/libs/zziplib/Makefile.in b/source/libs/zziplib/Makefile.in index 2c95b9e90..b7f6a71f2 100644 --- a/source/libs/zziplib/Makefile.in +++ b/source/libs/zziplib/Makefile.in @@ -572,7 +572,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(ZZIPLIB_TREE) zziplib-PATCHES +EXTRA_DIST = $(ZZIPLIB_TREE) Tlpatches NEVER_DIST = `find . $(NEVER_NAMES)` # Files not to be distributed diff --git a/source/texk/README b/source/texk/README index 0b65d0fbe..e99fec0ef 100644 --- a/source/texk/README +++ b/source/texk/README @@ -1,4 +1,4 @@ -$Id: README 43293 2017-02-21 23:54:15Z karl $ +$Id: README 43576 2017-03-22 22:18:48Z karl $ Copyright 2006-2017 TeX Users Group. You may freely use, modify and/or distribute this file. @@ -117,7 +117,7 @@ web2c - maintained here, by us - core web2c, plain tex, etc. pdftex - http://pdftex.org pmpost - none ptex - nothing current, old info: http://ascii.asciimw.jp/pb/ptex/ - synctex - maintained here + synctex - maintained here, but also https://github.com/jlaurens/synctex upmpost - ? (Kitagawa-san) uptex - https://texwiki.texjp.org/?upTeX%2CupLaTeX xetex - http://tug.org/xetex/ diff --git a/source/texk/configure b/source/texk/configure index bbbaa9267..1e9576eaf 100755 --- a/source/texk/configure +++ b/source/texk/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for TeX Live texk 2017/dev. +# Generated by GNU Autoconf 2.69 for TeX Live texk 2017. # # Report bugs to <tex-live@tug.org>. # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live texk' PACKAGE_TARNAME='tex-live-texk' -PACKAGE_VERSION='2017/dev' -PACKAGE_STRING='TeX Live texk 2017/dev' +PACKAGE_VERSION='2017' +PACKAGE_STRING='TeX Live texk 2017' PACKAGE_BUGREPORT='tex-live@tug.org' PACKAGE_URL='' @@ -1314,7 +1314,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live texk 2017/dev to adapt to many kinds of systems. +\`configure' configures TeX Live texk 2017 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1384,7 +1384,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live texk 2017/dev:";; + short | recursive ) echo "Configuration of TeX Live texk 2017:";; esac cat <<\_ACEOF @@ -1570,7 +1570,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live texk configure 2017/dev +TeX Live texk configure 2017 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1671,7 +1671,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live texk $as_me 2017/dev, which was +It was created by TeX Live texk $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4447,7 +4447,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-texk' - VERSION='2017/dev' + VERSION='2017' cat >>confdefs.h <<_ACEOF @@ -5367,7 +5367,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live texk $as_me 2017/dev, which was +This file was extended by TeX Live texk $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5424,7 +5424,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -TeX Live texk config.status 2017/dev +TeX Live texk config.status 2017 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/texk/kpathsea/ChangeLog b/source/texk/kpathsea/ChangeLog index a1647ec24..0e6d823fe 100644 --- a/source/texk/kpathsea/ChangeLog +++ b/source/texk/kpathsea/ChangeLog @@ -1,3 +1,21 @@ +2017-03-18 Karl Berry <karl@tug.org> + + * version.ac, + * NEWS, + * kpsewhich.c, + * texmf.cnf, + * doc/kpathsea.texi: version 6.2.3 for TL17. + + * Makefile.am (nodist_kpseinclude_HEADERS): include c-auto.h here. + (kpseinclude_HEADERS): not here. + (nodist_kpselib_HEADERS): and not here; variable no longer needed. + Ken Brown on tldistro, 18 Mar 2017 16:50:41. + +2017-03-14 Karl Berry <karl@tug.org> + + * Makefile.am (kpseinclude_HEADERS): add c-auto.h. Report from + Ken Brown on tldistro, 14 Mar 2017 12:16:56. + 2017-03-02 Karl Berry <karl@tug.org> * texmf.cnf (TEXINPUTS.luajitlatex): add, same as lualatex. diff --git a/source/texk/kpathsea/Makefile.am b/source/texk/kpathsea/Makefile.am index 72dc25f11..a103ff4d1 100644 --- a/source/texk/kpathsea/Makefile.am +++ b/source/texk/kpathsea/Makefile.am @@ -1,6 +1,8 @@ +## $Id: Makefile.am 43543 2017-03-18 22:54:57Z karl $ ## Makefile.am for the TeX Live subdirectory texk/kpathsea/ ## -## Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2017 Karl Berry <tex-live@tug.org> +## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> ## You may freely use, modify and/or distribute this file. ## SUBDIRS = . doc man @@ -111,16 +113,12 @@ EXTRA_DIST += \ kpseincludedir = ${includedir}/kpathsea nodist_kpseinclude_HEADERS = \ + c-auto.h \ kpathsea.h \ paths.h kpseinclude_HEADERS = config.h $(direct_headers) $(indirect_headers) -kpselibdir = ${libdir}/kpathsea - -nodist_kpselib_HEADERS = \ - c-auto.h - # Headers included directly into kpathsea.h # direct_headers = \ @@ -326,4 +324,3 @@ include $(srcdir)/../../am/rebuild.am ## Not used ## EXTRA_DIST += mktex.cnf - diff --git a/source/texk/kpathsea/Makefile.in b/source/texk/kpathsea/Makefile.in index 98bce4c18..7e23e3776 100644 --- a/source/texk/kpathsea/Makefile.in +++ b/source/texk/kpathsea/Makefile.in @@ -172,7 +172,7 @@ am__uninstall_files_from_dir = { \ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(web2cdir)" "$(DESTDIR)$(web2cdir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(kpseincludedir)" \ - "$(DESTDIR)$(kpseincludedir)" "$(DESTDIR)$(kpselibdir)" + "$(DESTDIR)$(kpseincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libkpathsea_la_DEPENDENCIES = $(LTLIBOBJS) am__libkpathsea_la_SOURCES_DIST = tex-file.c absolute.c atou.c cnf.c \ @@ -307,7 +307,7 @@ am__can_run_installinfo = \ esac DATA = $(dist_noinst_DATA) $(dist_web2c_DATA) $(pkgconfig_DATA) HEADERS = $(kpseinclude_HEADERS) $(nodist_kpseinclude_HEADERS) \ - $(nodist_kpselib_HEADERS) $(noinst_HEADERS) + $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -717,14 +717,11 @@ libkpathsea_la_SOURCES = tex-file.c absolute.c atou.c cnf.c concat.c \ $(am__append_5) $(am__append_7) kpseincludedir = ${includedir}/kpathsea nodist_kpseinclude_HEADERS = \ + c-auto.h \ kpathsea.h \ paths.h kpseinclude_HEADERS = config.h $(direct_headers) $(indirect_headers) -kpselibdir = ${libdir}/kpathsea -nodist_kpselib_HEADERS = \ - c-auto.h - # Headers included directly into kpathsea.h # @@ -1622,27 +1619,6 @@ uninstall-nodist_kpseincludeHEADERS: @list='$(nodist_kpseinclude_HEADERS)'; test -n "$(kpseincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(kpseincludedir)'; $(am__uninstall_files_from_dir) -install-nodist_kpselibHEADERS: $(nodist_kpselib_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nodist_kpselib_HEADERS)'; test -n "$(kpselibdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(kpselibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(kpselibdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(kpselibdir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(kpselibdir)" || exit $$?; \ - done - -uninstall-nodist_kpselibHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nodist_kpselib_HEADERS)'; test -n "$(kpselibdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(kpselibdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. @@ -2104,7 +2080,7 @@ install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(web2cdir)" "$(DESTDIR)$(web2cdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(kpseincludedir)" "$(DESTDIR)$(kpseincludedir)" "$(DESTDIR)$(kpselibdir)"; do \ + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(web2cdir)" "$(DESTDIR)$(web2cdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(kpseincludedir)" "$(DESTDIR)$(kpseincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) @@ -2170,8 +2146,7 @@ info-am: install-data-am: install-data-local install-dist_web2cDATA \ install-dist_web2cSCRIPTS install-kpseincludeHEADERS \ - install-nodist_kpseincludeHEADERS \ - install-nodist_kpselibHEADERS install-pkgconfigDATA + install-nodist_kpseincludeHEADERS install-pkgconfigDATA install-dvi: install-dvi-recursive @@ -2224,8 +2199,7 @@ ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_web2cDATA \ uninstall-dist_web2cSCRIPTS uninstall-kpseincludeHEADERS \ uninstall-libLTLIBRARIES uninstall-local \ - uninstall-nodist_kpseincludeHEADERS \ - uninstall-nodist_kpselibHEADERS uninstall-pkgconfigDATA + uninstall-nodist_kpseincludeHEADERS uninstall-pkgconfigDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(am__recursive_targets) all check check-am install install-am \ @@ -2246,8 +2220,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dist_web2cDATA \ install-exec-local install-html install-html-am install-info \ install-info-am install-kpseincludeHEADERS \ install-libLTLIBRARIES install-man \ - install-nodist_kpseincludeHEADERS \ - install-nodist_kpselibHEADERS install-pdf install-pdf-am \ + install-nodist_kpseincludeHEADERS install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ @@ -2257,7 +2230,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dist_web2cDATA \ uninstall-dist_web2cSCRIPTS uninstall-hook \ uninstall-kpseincludeHEADERS uninstall-libLTLIBRARIES \ uninstall-local uninstall-nodist_kpseincludeHEADERS \ - uninstall-nodist_kpselibHEADERS uninstall-pkgconfigDATA + uninstall-pkgconfigDATA .PRECIOUS: Makefile diff --git a/source/texk/kpathsea/NEWS b/source/texk/kpathsea/NEWS index 91dd56bb5..22c314903 100644 --- a/source/texk/kpathsea/NEWS +++ b/source/texk/kpathsea/NEWS @@ -1,5 +1,11 @@ This file records noteworthy changes. (Public domain.) +6.2.3 (for TeX Live 2017) +* .OTF treated like .otf. +* texmf.cnf: mpost removed from default shell_escape_commands. +* texmf.cnf: TEXINPUTS.luajitlatex added. +* texmf.cnf: default bibtex capacities increased. + 6.2.2 (for TeX Live 2016, 21 May 2016) * gregorio added to default shell_escape_commands. diff --git a/source/texk/kpathsea/c-auto.in b/source/texk/kpathsea/c-auto.in index 8125103bc..0af562ac0 100644 --- a/source/texk/kpathsea/c-auto.in +++ b/source/texk/kpathsea/c-auto.in @@ -23,7 +23,7 @@ #define KPATHSEA_C_AUTO_H /* kpathsea: the version string. */ -#define KPSEVERSION "kpathsea version 6.2.3/dev" +#define KPSEVERSION "kpathsea version 6.2.3" /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID diff --git a/source/texk/kpathsea/configure b/source/texk/kpathsea/configure index cff685622..b7ca69a2e 100755 --- a/source/texk/kpathsea/configure +++ b/source/texk/kpathsea/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Kpathsea 6.2.3/dev. +# Generated by GNU Autoconf 2.69 for Kpathsea 6.2.3. # # Report bugs to <tex-k@tug.org>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Kpathsea' PACKAGE_TARNAME='kpathsea' -PACKAGE_VERSION='6.2.3/dev' -PACKAGE_STRING='Kpathsea 6.2.3/dev' +PACKAGE_VERSION='6.2.3' +PACKAGE_STRING='Kpathsea 6.2.3' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1339,7 +1339,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Kpathsea 6.2.3/dev to adapt to many kinds of systems. +\`configure' configures Kpathsea 6.2.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1409,7 +1409,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Kpathsea 6.2.3/dev:";; + short | recursive ) echo "Configuration of Kpathsea 6.2.3:";; esac cat <<\_ACEOF @@ -1537,7 +1537,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Kpathsea configure 6.2.3/dev +Kpathsea configure 6.2.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2376,7 +2376,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Kpathsea $as_me 6.2.3/dev, which was +It was created by Kpathsea $as_me 6.2.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2757,14 +2757,14 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -KPSEVERSION=6.2.3/dev +KPSEVERSION=6.2.3 KPSE_LT_VERSINFO=8:3:2 - WEB2CVERSION=" (TeX Live 2017/dev)" + WEB2CVERSION=" (TeX Live 2017)" am__api_version='1.15' @@ -8071,7 +8071,7 @@ fi # Define the identity of the package. PACKAGE='kpathsea' - VERSION='6.2.3/dev' + VERSION='6.2.3' cat >>confdefs.h <<_ACEOF @@ -14695,7 +14695,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Kpathsea $as_me 6.2.3/dev, which was +This file was extended by Kpathsea $as_me 6.2.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14761,7 +14761,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Kpathsea config.status 6.2.3/dev +Kpathsea config.status 6.2.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/texk/kpathsea/doc/kpathsea.info b/source/texk/kpathsea/doc/kpathsea.info index 4ff63ab97..acce2b11b 100644 --- a/source/texk/kpathsea/doc/kpathsea.info +++ b/source/texk/kpathsea/doc/kpathsea.info @@ -3,7 +3,7 @@ kpathsea.texi. This file documents the Kpathsea library for path searching. - Copyright (C) 1996-2016 Karl Berry & Olaf Weber. + Copyright (C) 1996-2017 Karl Berry & Olaf Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are @@ -37,7 +37,7 @@ Kpathsea library **************** This manual documents the Kpathsea library for path searching. It -corresponds to version 6.2.3dev, released in June 2016. +corresponds to version 6.2.3, released in April 2017. * Menu: @@ -61,8 +61,8 @@ File: kpathsea.info, Node: Introduction, Next: unixtex.ftp, Prev: Top, Up: T 1 Introduction ************** -This manual corresponds to version 6.2.3dev of the Kpathsea library, -released in June 2016. +This manual corresponds to version 6.2.3 of the Kpathsea library, +released in April 2017. The library's fundamental purpose is to return a filename from a list of directories specified by the user, similar to what shells do when @@ -3637,58 +3637,58 @@ Index Tag Table: Node: Top1480 -Node: Introduction2262 -Node: History4210 -Node: unixtex.ftp8807 -Node: Security10302 -Node: TeX directory structure12806 -Node: Path searching16854 -Node: Searching overview17512 -Node: Path sources20907 -Node: Config files21965 -Node: Path expansion25892 -Node: Default expansion26841 -Node: Variable expansion28911 -Node: Tilde expansion30312 -Node: Brace expansion31292 -Node: KPSE_DOT expansion32217 -Node: Subdirectory expansion32730 -Node: Filename database35084 -Node: ls-R36138 -Node: Filename aliases39033 -Node: Database format40211 -Node: Invoking kpsewhich41224 -Node: Path searching options42179 -Node: Specially-recognized files50099 -Node: Auxiliary tasks51454 -Node: Standard options53793 -Node: TeX support54149 -Node: Supported file formats55501 -Node: File lookup63166 -Node: Glyph lookup64915 -Node: Basic glyph lookup66039 -Node: Fontmap66919 -Node: Fallback font69340 -Node: Suppressing warnings70252 -Node: mktex scripts71379 -Node: mktex configuration72594 -Node: mktex script names78397 -Node: mktex script arguments79783 -Node: Programming80662 -Node: Programming overview81184 -Node: Calling sequence83881 -Node: Program-specific files90413 -Node: Programming with config files91436 -Node: Reporting bugs92748 -Node: Bug checklist93426 -Node: Mailing lists96898 -Node: Debugging97573 -Node: Logging102650 -Node: Common problems104517 -Node: Unable to find files104994 -Node: Slow path searching107404 -Node: Unable to generate fonts108779 -Node: TeX or Metafont failing111250 -Node: Index112603 +Node: Introduction2260 +Node: History4206 +Node: unixtex.ftp8803 +Node: Security10298 +Node: TeX directory structure12802 +Node: Path searching16850 +Node: Searching overview17508 +Node: Path sources20903 +Node: Config files21961 +Node: Path expansion25888 +Node: Default expansion26837 +Node: Variable expansion28907 +Node: Tilde expansion30308 +Node: Brace expansion31288 +Node: KPSE_DOT expansion32213 +Node: Subdirectory expansion32726 +Node: Filename database35080 +Node: ls-R36134 +Node: Filename aliases39029 +Node: Database format40207 +Node: Invoking kpsewhich41220 +Node: Path searching options42175 +Node: Specially-recognized files50095 +Node: Auxiliary tasks51450 +Node: Standard options53789 +Node: TeX support54145 +Node: Supported file formats55497 +Node: File lookup63162 +Node: Glyph lookup64911 +Node: Basic glyph lookup66035 +Node: Fontmap66915 +Node: Fallback font69336 +Node: Suppressing warnings70248 +Node: mktex scripts71375 +Node: mktex configuration72590 +Node: mktex script names78393 +Node: mktex script arguments79779 +Node: Programming80658 +Node: Programming overview81180 +Node: Calling sequence83877 +Node: Program-specific files90409 +Node: Programming with config files91432 +Node: Reporting bugs92744 +Node: Bug checklist93422 +Node: Mailing lists96894 +Node: Debugging97569 +Node: Logging102646 +Node: Common problems104513 +Node: Unable to find files104990 +Node: Slow path searching107400 +Node: Unable to generate fonts108775 +Node: TeX or Metafont failing111246 +Node: Index112599 End Tag Table diff --git a/source/texk/kpathsea/doc/kpathsea.texi b/source/texk/kpathsea/doc/kpathsea.texi index 71f8ba372..33021658f 100644 --- a/source/texk/kpathsea/doc/kpathsea.texi +++ b/source/texk/kpathsea/doc/kpathsea.texi @@ -2,13 +2,13 @@ @setfilename kpathsea.info @settitle Kpathsea: A library for path searching -@set version 6.2.3dev -@set month-year June 2016 +@set version 6.2.3 +@set month-year April 2017 @copying This file documents the Kpathsea library for path searching. -Copyright @copyright{} 1996--2016 Karl Berry & Olaf Weber. +Copyright @copyright{} 1996--2017 Karl Berry & Olaf Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are diff --git a/source/texk/kpathsea/kpsewhich.c b/source/texk/kpathsea/kpsewhich.c index 81db2b508..4271bc1a3 100644 --- a/source/texk/kpathsea/kpsewhich.c +++ b/source/texk/kpathsea/kpsewhich.c @@ -1,7 +1,7 @@ /* kpsewhich -- standalone path lookup and variable expansion for Kpathsea. Ideas from Thomas Esser, Pierre MacKay, and many others. - Copyright 1995-2016 Karl Berry & Olaf Weber. + Copyright 1995-2017 Karl Berry & Olaf Weber. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -678,7 +678,7 @@ read_command_line (kpathsea kpse, int argc, string *argv) } else if (ARGUMENT_IS ("version")) { puts (kpathsea_version_string); - puts ("Copyright 2016 Karl Berry & Olaf Weber.\n\ + puts ("Copyright 2017 Karl Berry & Olaf Weber.\n\ License LGPLv2.1+: GNU Lesser GPL version 2.1 or later <http://gnu.org/licenses/lgpl.html>\n\ This is free software: you are free to change and redistribute it.\n\ There is NO WARRANTY, to the extent permitted by law.\n"); diff --git a/source/texk/kpathsea/texmf.cnf b/source/texk/kpathsea/texmf.cnf index aeb10efb8..8d3f4938e 100644 --- a/source/texk/kpathsea/texmf.cnf +++ b/source/texk/kpathsea/texmf.cnf @@ -4,8 +4,8 @@ % If you modify this original file, YOUR CHANGES WILL BE LOST when it is % updated. Instead, put your changes -- and only your changes, not an % entire copy! -- in ../../texmf.cnf. That is, if this file is -% installed in /some/path/to/texlive/2016/texmf-dist/web2c/texmf.cnf, -% add your custom settings to /some/path/to/texlive/2016/texmf.cnf. +% installed in /some/path/to/texlive/2017/texmf-dist/web2c/texmf.cnf, +% add your custom settings to /some/path/to/texlive/2017/texmf.cnf. % % What follows is a super-summary of what this .cnf file can % contain. Please read the Kpathsea manual for more information. @@ -79,10 +79,10 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config TEXMFHOME = ~/texmf % TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data. -TEXMFVAR = ~/.texlive2016/texmf-var +TEXMFVAR = ~/.texlive2017/texmf-var % TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. -TEXMFCONFIG = ~/.texlive2016/texmf-config +TEXMFCONFIG = ~/.texlive2017/texmf-config % List all the texmf trees. For an explanation of what they are, see the % TeX Live manual. diff --git a/source/texk/kpathsea/version.ac b/source/texk/kpathsea/version.ac index ad16955af..62117bf07 100644 --- a/source/texk/kpathsea/version.ac +++ b/source/texk/kpathsea/version.ac @@ -1,5 +1,5 @@ -dnl $Id: version.ac 41571 2016-06-29 23:09:13Z karl $ -dnl Copyright 2016 Karl Berry <tex-live@tug.org> +dnl $Id: version.ac 43542 2017-03-18 22:47:27Z karl $ +dnl Copyright 2016-2017 Karl Berry <tex-live@tug.org> dnl Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org> dnl dnl This file is free software; the copyright holder @@ -20,4 +20,4 @@ dnl append "dev", to distinguish binaries built between releases. dnl -------------------------------------------------------- dnl dnl this file is m4-included from configure.ac -m4_define([kpse_version], [6.2.3/dev]) +m4_define([kpse_version], [6.2.3]) diff --git a/source/texk/texlive/configure b/source/texk/texlive/configure index a0a65d992..5c97c0a20 100755 --- a/source/texk/texlive/configure +++ b/source/texk/texlive/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for TeX Live Scripts 2017/dev. +# Generated by GNU Autoconf 2.69 for TeX Live Scripts 2017. # # Report bugs to <tex-k@tug.org>. # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live Scripts' PACKAGE_TARNAME='tex-live-scripts' -PACKAGE_VERSION='2017/dev' -PACKAGE_STRING='TeX Live Scripts 2017/dev' +PACKAGE_VERSION='2017' +PACKAGE_STRING='TeX Live Scripts 2017' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1238,7 +1238,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live Scripts 2017/dev to adapt to many kinds of systems. +\`configure' configures TeX Live Scripts 2017 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1305,7 +1305,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live Scripts 2017/dev:";; + short | recursive ) echo "Configuration of TeX Live Scripts 2017:";; esac cat <<\_ACEOF @@ -1400,7 +1400,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live Scripts configure 2017/dev +TeX Live Scripts configure 2017 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1455,7 +1455,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live Scripts $as_me 2017/dev, which was +It was created by TeX Live Scripts $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2322,7 +2322,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-scripts' - VERSION='2017/dev' + VERSION='2017' cat >>confdefs.h <<_ACEOF @@ -4224,7 +4224,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live Scripts $as_me 2017/dev, which was +This file was extended by TeX Live Scripts $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4281,7 +4281,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -TeX Live Scripts config.status 2017/dev +TeX Live Scripts config.status 2017 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/texk/web2c/ChangeLog b/source/texk/web2c/ChangeLog index b8c886fca..ba0389f75 100644 --- a/source/texk/web2c/ChangeLog +++ b/source/texk/web2c/ChangeLog @@ -1,3 +1,8 @@ +2017-03-18 Karl Berry <karl@tug.org> + + * NEWS, + * doc/web.texi: version 2017 for TL17. + 2017-02-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp> * Makefile.am: Sync with the LuaTeX upstream. diff --git a/source/texk/web2c/Makefile.in b/source/texk/web2c/Makefile.in index d2609d183..a8f95ab58 100644 --- a/source/texk/web2c/Makefile.in +++ b/source/texk/web2c/Makefile.in @@ -897,10 +897,9 @@ am_libunilib_a_OBJECTS = \ libunilib_a_OBJECTS = $(am_libunilib_a_OBJECTS) libxetex_a_AR = $(AR) $(ARFLAGS) libxetex_a_LIBADD = -am__libxetex_a_SOURCES_DIST = xetexdir/MathTable.h \ - xetexdir/XeTeXFontInst.cpp xetexdir/XeTeXFontInst.h \ - xetexdir/XeTeXFontMgr.cpp xetexdir/XeTeXFontMgr.h \ - xetexdir/XeTeXLayoutInterface.cpp \ +am__libxetex_a_SOURCES_DIST = xetexdir/XeTeXFontInst.cpp \ + xetexdir/XeTeXFontInst.h xetexdir/XeTeXFontMgr.cpp \ + xetexdir/XeTeXFontMgr.h xetexdir/XeTeXLayoutInterface.cpp \ xetexdir/XeTeXLayoutInterface.h xetexdir/XeTeXOTMath.cpp \ xetexdir/XeTeXOTMath.h xetexdir/XeTeX_ext.c \ xetexdir/XeTeX_ext.h xetexdir/XeTeX_pic.c xetexdir/XeTeX_web.h \ @@ -3636,7 +3635,7 @@ libxetex_a_CPPFLAGS = $(xetex_cppflags) libxetex_a_CFLAGS = $(WARNING_CFLAGS) libxetex_a_CXXFLAGS = # $(WARNING_CXXFLAGS) libxetex_a_OBJCXXFLAGS = # $(WARNING_OBJCXXFLAGS) -libxetex_a_SOURCES = xetexdir/MathTable.h xetexdir/XeTeXFontInst.cpp \ +libxetex_a_SOURCES = xetexdir/XeTeXFontInst.cpp \ xetexdir/XeTeXFontInst.h xetexdir/XeTeXFontMgr.cpp \ xetexdir/XeTeXFontMgr.h xetexdir/XeTeXLayoutInterface.cpp \ xetexdir/XeTeXLayoutInterface.h xetexdir/XeTeXOTMath.cpp \ diff --git a/source/texk/web2c/NEWS b/source/texk/web2c/NEWS index dc9087ceb..7120dd85f 100644 --- a/source/texk/web2c/NEWS +++ b/source/texk/web2c/NEWS @@ -1,5 +1,6 @@ This file records noteworthy changes. (Public domain.) +2017 (for TeX Live 2017) 2016 (for TeX Live 2016, 21 May 2016) 2015 (for TeX Live 2015, 21 May 2015) 2014 (for TeX Live 2014, 24 May 2014) diff --git a/source/texk/web2c/configure b/source/texk/web2c/configure index 959d34637..a79218360 100755 --- a/source/texk/web2c/configure +++ b/source/texk/web2c/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Web2C 2017/dev. +# Generated by GNU Autoconf 2.69 for Web2C 2017. # # Report bugs to <tex-k@tug.org>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Web2C' PACKAGE_TARNAME='web2c' -PACKAGE_VERSION='2017/dev' -PACKAGE_STRING='Web2C 2017/dev' +PACKAGE_VERSION='2017' +PACKAGE_STRING='Web2C 2017' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1608,7 +1608,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Web2C 2017/dev to adapt to many kinds of systems. +\`configure' configures Web2C 2017 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1682,7 +1682,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Web2C 2017/dev:";; + short | recursive ) echo "Configuration of Web2C 2017:";; esac cat <<\_ACEOF @@ -1903,7 +1903,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Web2C configure 2017/dev +Web2C configure 2017 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2992,7 +2992,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Web2C $as_me 2017/dev, which was +It was created by Web2C $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3373,7 +3373,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -WEB2CVERSION=2017/dev +WEB2CVERSION=2017 am__api_version='1.15' @@ -8680,7 +8680,7 @@ fi # Define the identity of the package. PACKAGE='web2c' - VERSION='2017/dev' + VERSION='2017' cat >>confdefs.h <<_ACEOF @@ -22499,7 +22499,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -Web2C config.lt 2017/dev +Web2C config.lt 2017 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -25608,7 +25608,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Web2C $as_me 2017/dev, which was +This file was extended by Web2C $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25678,7 +25678,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Web2C config.status 2017/dev +Web2C config.status 2017 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/texk/web2c/doc/web2c.info b/source/texk/web2c/doc/web2c.info index eb3457720..8166765de 100644 --- a/source/texk/web2c/doc/web2c.info +++ b/source/texk/web2c/doc/web2c.info @@ -58,7 +58,7 @@ Web2c This document describes how to install and use the programs in the Web2c implementation of the TeX system, especially for Unix systems. It -corresponds to Web2c version 2016, released in April 2016. +corresponds to Web2c version 2017, released in April 2017. * Menu: @@ -82,8 +82,8 @@ File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top 1 Introduction ************** -This manual corresponds to version 2016 of Web2c, released in April -2016. +This manual corresponds to version 2017 of Web2c, released in April +2017. "Web2c" is the name of a TeX implementation, originally for Unix, but now also running under DOS, Amiga, and other operating systems. By "TeX diff --git a/source/texk/web2c/doc/web2c.texi b/source/texk/web2c/doc/web2c.texi index c89be4fb5..950a6e313 100644 --- a/source/texk/web2c/doc/web2c.texi +++ b/source/texk/web2c/doc/web2c.texi @@ -11,8 +11,8 @@ The latest version is available from ftp://ftp.tug.org/tex/texinfo.tex.} \fi @end tex -@set version 2016 -@set month-year April 2016 +@set version 2017 +@set month-year April 2017 @c Define new indices for commands in auxiliary files, filenames, and options. @defcodeindex cm diff --git a/source/texk/web2c/lib/ChangeLog b/source/texk/web2c/lib/ChangeLog index 53058e6a8..04e933d45 100644 --- a/source/texk/web2c/lib/ChangeLog +++ b/source/texk/web2c/lib/ChangeLog @@ -1,3 +1,7 @@ +2017-03-12 Akira Kakuto <kakuto@fuk.kinidai.ac.jp> + + * texmfmp.c: Adopt Jonathan's solution for the Change on 2017-02-01. + 2017-02-13 Akira Kakuto <kakuto@fuk.kinidai.ac.jp> * texmfmp.c: unsigned long long >= 0. Thanks Luigi. diff --git a/source/texk/web2c/lib/texmfmp.c b/source/texk/web2c/lib/texmfmp.c index 152a2312e..c8b1dcc1b 100644 --- a/source/texk/web2c/lib/texmfmp.c +++ b/source/texk/web2c/lib/texmfmp.c @@ -2818,9 +2818,10 @@ gettexstring (strnumber s) unsigned bytesToWrite = 0; poolpointer len, i, j; string name; - if (strstart[s + 1 - 65536L] < strstart[s - 65536L]) - return NULL; - len = strstart[s + 1 - 65536L] - strstart[s - 65536L]; + if (s >= 65536L) + len = strstart[s + 1 - 65536L] - strstart[s - 65536L]; + else + len = 0; name = xmalloc(len * 3 + 1); /* max UTF16->UTF8 expansion (code units, not bytes) */ for (i = 0, j = 0; i < len; i++) { diff --git a/source/texk/web2c/mplibdir/mp.w b/source/texk/web2c/mplibdir/mp.w index adea5f18f..4d48514a1 100644 --- a/source/texk/web2c/mplibdir/mp.w +++ b/source/texk/web2c/mplibdir/mp.w @@ -33232,9 +33232,15 @@ We may need to cancel skips that span more than 127 lig/kern steps. @ The header could contain ASCII zeroes, so can't use |strdup|. +The index |j| can be beyond the index |header_last|, hence we +have to sure to update the end of stream marker to reflect the +actual position. @<Store a list of header bytes@>= j--; +if (mp->header_last<j){ + mp->header_last=j; +} do { if (j >= mp->header_size) { size_t l = (size_t) (mp->header_size + (mp->header_size / 4)); @@ -33246,8 +33252,10 @@ do { mp->header_size = (int) l; } mp->header_byte[j] = (char) mp_get_code (mp); + if (mp->header_last<j){ + incr (mp->header_last); + } incr (j); - incr (mp->header_last); } while (cur_cmd() == mp_comma) @ @<Store a list of font dimensions@>= diff --git a/source/texk/web2c/mplibdir/mpmath.w b/source/texk/web2c/mplibdir/mpmath.w index 0195d608d..6c0ee6d00 100644 --- a/source/texk/web2c/mplibdir/mpmath.w +++ b/source/texk/web2c/mplibdir/mpmath.w @@ -1,4 +1,4 @@ -% $Id: mpmath.w 2070 2015-10-06 10:35:23Z luigi $ +% $Id: mpmath.w 2118 2017-02-15 17:49:54Z luigi $ % % This file is part of MetaPost; % the MetaPost program is in the public domain. diff --git a/source/texk/web2c/mplibdir/mpmathdouble.w b/source/texk/web2c/mplibdir/mpmathdouble.w index 923393098..cb1496936 100644 --- a/source/texk/web2c/mplibdir/mpmathdouble.w +++ b/source/texk/web2c/mplibdir/mpmathdouble.w @@ -1,4 +1,4 @@ -% $Id: mpmathdouble.w 2091 2016-09-16 23:07:58Z luigi $ +% $Id: mpmathdouble.w 2118 2017-02-15 17:49:54Z luigi $ % % This file is part of MetaPost; % the MetaPost program is in the public domain. diff --git a/source/texk/web2c/web2c/configure b/source/texk/web2c/web2c/configure index 303edcd11..e81cff01e 100755 --- a/source/texk/web2c/web2c/configure +++ b/source/texk/web2c/web2c/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Web2C Tools 2017/dev. +# Generated by GNU Autoconf 2.69 for Web2C Tools 2017. # # Report bugs to <tex-k@tug.org>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Web2C Tools' PACKAGE_TARNAME='web2c-tools' -PACKAGE_VERSION='2017/dev' -PACKAGE_STRING='Web2C Tools 2017/dev' +PACKAGE_VERSION='2017' +PACKAGE_STRING='Web2C Tools 2017' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1328,7 +1328,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Web2C Tools 2017/dev to adapt to many kinds of systems. +\`configure' configures Web2C Tools 2017 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1398,7 +1398,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Web2C Tools 2017/dev:";; + short | recursive ) echo "Configuration of Web2C Tools 2017:";; esac cat <<\_ACEOF @@ -1521,7 +1521,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Web2C Tools configure 2017/dev +Web2C Tools configure 2017 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2360,7 +2360,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Web2C Tools $as_me 2017/dev, which was +It was created by Web2C Tools $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -8045,7 +8045,7 @@ fi # Define the identity of the package. PACKAGE='web2c-tools' - VERSION='2017/dev' + VERSION='2017' cat >>confdefs.h <<_ACEOF @@ -14574,7 +14574,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Web2C Tools $as_me 2017/dev, which was +This file was extended by Web2C Tools $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14640,7 +14640,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Web2C Tools config.status 2017/dev +Web2C Tools config.status 2017 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/texk/web2c/xetexdir/am/xetex.am b/source/texk/web2c/xetexdir/am/xetex.am index d3a0def83..475f8dc44 100644 --- a/source/texk/web2c/xetexdir/am/xetex.am +++ b/source/texk/web2c/xetexdir/am/xetex.am @@ -135,7 +135,6 @@ libxetex_a_CXXFLAGS = # $(WARNING_CXXFLAGS) libxetex_a_OBJCXXFLAGS = # $(WARNING_OBJCXXFLAGS) libxetex_a_SOURCES = \ - xetexdir/MathTable.h \ xetexdir/XeTeXFontInst.cpp \ xetexdir/XeTeXFontInst.h \ xetexdir/XeTeXFontMgr.cpp \ diff --git a/source/utils/configure b/source/utils/configure index c84cc766b..c54b18810 100755 --- a/source/utils/configure +++ b/source/utils/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for TeX Live utils 2017/dev. +# Generated by GNU Autoconf 2.69 for TeX Live utils 2017. # # Report bugs to <tex-k@tug.org>. # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live utils' PACKAGE_TARNAME='tex-live-utils' -PACKAGE_VERSION='2017/dev' -PACKAGE_STRING='TeX Live utils 2017/dev' +PACKAGE_VERSION='2017' +PACKAGE_STRING='TeX Live utils 2017' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1314,7 +1314,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live utils 2017/dev to adapt to many kinds of systems. +\`configure' configures TeX Live utils 2017 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1384,7 +1384,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live utils 2017/dev:";; + short | recursive ) echo "Configuration of TeX Live utils 2017:";; esac cat <<\_ACEOF @@ -1570,7 +1570,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live utils configure 2017/dev +TeX Live utils configure 2017 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1671,7 +1671,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live utils $as_me 2017/dev, which was +It was created by TeX Live utils $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4447,7 +4447,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-utils' - VERSION='2017/dev' + VERSION='2017' cat >>confdefs.h <<_ACEOF @@ -5359,7 +5359,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live utils $as_me 2017/dev, which was +This file was extended by TeX Live utils $as_me 2017, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5416,7 +5416,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -TeX Live utils config.status 2017/dev +TeX Live utils config.status 2017 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/version.ac b/source/version.ac index fbccd710e..a65e9f0a7 100644 --- a/source/version.ac +++ b/source/version.ac @@ -1,5 +1,5 @@ -dnl $Id: version.ac 41571 2016-06-29 23:09:13Z karl $ -dnl Copyright 2016 Karl Berry <tex-live@tug.org> +dnl $Id: version.ac 43542 2017-03-18 22:47:27Z karl $ +dnl Copyright 2016-2017 Karl Berry <tex-live@tug.org> dnl Copyright 2010-2015 Peter Breitenlohner <tex-live@tug.org> dnl dnl This file is free software; the copyright holder @@ -9,4 +9,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current TeX Live version -m4_define([tex_live_version], [2017/dev]) +m4_define([tex_live_version], [2017]) -- GitLab