diff --git a/source/ChangeLog b/source/ChangeLog index 05fb9244eb6875c4b1bf60876fdef2630d9ec974..e4c2f98deaf63b49bf70a3c6682ed2022bbdeca0 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 9751f860e69d4e139837142ac294c2c3801214c4..05b236d2271897a8fddae6c1b5ba0141d91ab365 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 0a882cc5b7825f5910ca0ded35d2317eb8988902..7ade0ac1c3b57a35f3a2cba5607ac28790c3373a 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 87abeab6cdfce092f2abdf58f18ef18f496ba255..7203bf1e64bc40eaf8aa1ac68a97267a63deae0a 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 5cec2b1539d4220d7722ad910f28c0886d3453d9..4b18a456723ed3ad9b18e1426cc10173c8bf4c71 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 5f84f42f3db5c9b680ab4d8399dd69156131a8ad..a7f9c30d901d0329fb4518920a18c08d2165b164 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 98e2d5b8ef6b2440cb8317488cf7853d581c8384..a3452ea80affaec956943b1095055aecd01efa00 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 ca6177acb979c45edfaf3220cbc89f14c56b2bb0..bb4a9fc6bdaf9adc8bf6c4dbd95b9f64197d7887 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 5e77bbc914513cc10d950dea3a5d8eb234619087..92c747d35603030fb75b9d92b974db2ef0933fcf 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 42b580587c98ddae1c02f48290e6ec5f970975fd..58f5fba9ccc7a314c60cda6c82491e6cf34bb915 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 064939feb0fb80a5cebd9d4a2ad27f1e969d7937..9ffe0f5a1cc9a5354fa1efef6fee27f0b8128abb 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 76e7a8041b9ef5db45bbd3a8d21d5bcd72fade3b..decfe8760e99d2a5ce313c741f775907a45d1008 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 92e5b0029d840aebc12b55a0c238778207a05556..3d760abea67b663acdcd56d8c1c972b0f28959b4 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 c0e6bae3b634e80fca35bc80be63dae84b3fd304..b522954866c419359887a334dd5b13f02d712d1a 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 1f79aab879902a23cd0d549ee9f7590700d472bb..cfc78b27786e47400838e3400ed812ca3af8cdd1 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 eb34b8695afd8fac237ab03eeca8b1695b898677..072a02a8032fae8049d33c65fa0f7e28a1e2bdd1 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 877539b7e40ef8eb076d9fc28651dae0cc4edbf4..70d8ec5de3c1ed8f1932db2c936488d036329c6b 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 1dd435aecae575aa9f050aae88604c9498f9f18c..7b7162f8f9648c8feff731716a9e98b76bce3562 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 824a3d089d54e7a49362aca4932c2fe6db49223f..e9a70b0260c21d3366b28094d6032da002e6a544 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 70a71e3b0efec59ce10eb37bce21ffde0a2e8778..d3ae02c7f5da6a5c71719efa1f45011650af56c7 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 0b5e944ee3d2e10684079a703349aad699f882a9..5f5147df308bcaa3c604a589a03829f2ea409cc1 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 e076d5e946d572a22be14adb75fe1600d8db8ec5..3b6c1f30d3866d2421b5ef64cef77b8f58d7cc6c 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 912552e2afcb9c39bcc305d2c1f72028bcfa8cd6..aac9f743a83e5fee5d248055917c091e7bae0a26 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 fb209edd24b58ae676355331091ab92b53cc2dd5..18ac74866619d16df9dc66a87464fbeadde1fd51 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 67b579d13c8bb956d4ed7e1bc77ce0e8d558fde2..07562fce7e13a7e4af4cd8e0dacb569eff7a8922 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 fe9de4bf048c85991e4f8615e1609d48d4a812fb..36d6092a2e7c7d3dc546e56d3f139344d135889c 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 0db4ea937a3bc88edb7af65c1868809266c99efb..a0ec9bc142886fbcc9c6c3228036ee506f72062c 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 8c474a6d7460054f7df2cb6aa59ce2d8ff04e6e7..765a4ad2dc1a0e549e8747f3ca9b6f215b3eccf8 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 4acf6b3ad4d844c77eeb54e56a6ac2e971b40821..d4a51a8f04226c3f6c967e11873c603b345914a2 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 cd5cdd94ebe4d57130a3eaf0fa7a5419c46c83a3..0000000000000000000000000000000000000000 --- 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 24d4883c777daf5858d89e2ab4e6aad36c29389c..0000000000000000000000000000000000000000 --- 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 499801b3037e0ba46fc8d3da7aaef9eb6c68035e..b0daa18b1687b1f41d31269d68e63cfab66dd665 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 0000000000000000000000000000000000000000..e566147ea056bc23c784c945d903cabf771002b1 --- /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 0000000000000000000000000000000000000000..32ed9d7491dbb2c5a769ed47a56e5ea76cba488d --- /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 0000000000000000000000000000000000000000..796922d77c1ded743a63cf3d24e367275c2ef48a --- /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 b02840c5544f745bc819d8d00a3cc63bed187969..b91d8da96653149bae95dd2fc148bfe9ba749bbe 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 328e90e9afc23e84488738963a908b73b113070a..8f08baf8c51e049ca42b07503d8d0e6cf621c75c 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 048ba31c068e01f98265bab1d0aacfc7c84c4cc1..57ebbda4c8b474ef8c9038f48e60ae59f2afa5d9 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 27b673c6bd37e747c75b0f1b0bf1c8adc51c8095..080dfe523af5d093b08dd3f480397426be5a152f 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 585fd24c7b652bb26b3369703434dac76c5c1dc3..04e4b3b4708b4890a08aef5e88533e23b78a527c 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 5be00596f85161ef8389080b2a8d4080f68d94a3..08da75b5ef734ec57c8873683f890be7795b85da 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 78ce39f46d86393fc8eefba004c169912fdcdc46..2c9fea2123a5dda002a7176e3086f1e4a65f51d1 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 e4cf032816c00b9bcf3aee9ac82c0e2850b4c411..2431e0dfc00bfc344e33c402e4c77644e806069d 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 5e8b40bcfb182d5432733f1a5832996419c78d2c..78d8b92b0ea6d30821e59a713de14bc2eae669dd 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 ee7057360560ee3248ae90361a21bd4c0cff9d7b..82f6ba4619162cb76196616ccb8fb2a5ac5443b6 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 ed61165b2dfbf72c44dcf3c402a146d011ad2d8e..6d2e424d2ee3cb844a75e70132147a1d9f7742dd 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 0b4f4f90689f811cd5c568d3438e8db663d6a93b..16c1ed608616ea03761d0153bd3975daa5ac536e 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 bee0ea1158c7f6fca763ded80a05b25999d4c588..76f079a69fe7771c602f0baa593fb4f00b2cfa70 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 f8f76bfc986553026b65a303f27b395b84988c61..255fd14734ac2b333e298277d90acd538a284bb5 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 d1a82d45e128ca07c6e74a52a633820fbcc586ab..0f98d582daf303aae4aa9ab01a4ae87e6ad22a95 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 0000000000000000000000000000000000000000..e3de496bdc97e6d96f02957045784a342cff80b9 --- /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 0000000000000000000000000000000000000000..07016177c5fc40a87e040230c64b2ebdb4f11692 --- /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 9fd0f1dfb8c99e4e7009f083b96de49adcd0dce2..1000d118ea3109e4af6317553843046a372979f1 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 e0e0d8fd647c053e531fa369af5f849119090cba..18da337e4bc25ed9f2b11fb99525c091e600444c 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 1fbdb2e5245f1b5da72b6e75188e0e5d8168f402..9b3c0907f16c70c5ba5f391a39c23bfa4f516430 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 99396123b250b71b419f253eff3f520df49209d2..6a1831bb50c8ff6455d1692cb09e7c4a025ce080 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 9b6b32bf47fd929ce5f702d22e865a1b1b5ce628..e06ed8e1256d7a36b085126f79f2d66c56b96ef1 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 f363b3806c9e3747c81a74bc374d3f0c2a184fe5..e8bf22dbc0291684babe8bfeb6ffc4bfcd758c44 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 0fe9eac4b76c158307c83e66835ec1db9ca8cb6f..ca8ef6aedbc193a6800860164c5a0b3f231e73a2 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 ccb866a05b79725937f9ffa9ea917942d1127ba6..c6450bb55bc8e8bf5ba0007f598d8f5da622d47b 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 72c31c1583a6460c73fbc5775dab7dba4b6aca3f..4df88f91582284a5a0937a82572b1c06aebc0008 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 4fddc77f4fbe34d63e9d6a6d3733ddd7f80dfa32..fd4e485505e9774d7d82a9cf7af456293cf87829 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 4688b62aa15d593f6c751ec46d64dbc05cc480a1..210c8b606ab69fa8a40f35e4b77313227c0831d0 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 ba9def35f09a85fc6e8efef7d6a97fdc17aab4e5..4f3d5823a321e9357e5a3e82fec2b23f577d9d99 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 019c06d47057ca019118800bc423c86becd80d26..9df2a4311d7a9dc9ba70ae88876c310f72a2f6f8 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 ee7057360560ee3248ae90361a21bd4c0cff9d7b..82f6ba4619162cb76196616ccb8fb2a5ac5443b6 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 4ebe7d0da6f5b30dd9a0cec432fea26a18261c9e..6c8eebff1b4fd31ff16929f74be35fea3676ea62 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 af8627062d4bc51a38e414dd508a746e9f49282d..ce86449901aa38805e43a50c03f0012d21835b99 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 a1e61ddd025848a4cf471f16236d2e2ef53ba74a..808681eebdfecd3534b86eeb26247a2712761942 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 1ae560fd4f56551a0586df2053f65dd94e710a16..51c54726538fb036821ddea942c0cdb4f3a32b66 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 a74eed38601413f5d6e084c6bf82c24adb512c11..e431b30d49a90f446199c58fc9b9a86b07e45f9a 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 ad0fca5c91b8a026332aa24f50cbae588ae3fea9..4d79211bbfe75c4e6259203a933890751b965ada 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 2c7f6b23abc228c24e88f2a7050ef64e07c947bb..e59df120f02a5bb0f49d54517bec2b857785d9d1 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 478b14c1c1b08dd846646efe98facccc1e2901ea..7d033746f922d6045973e33d3c988cfa77ae6a31 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 69998a81d84170def608ba8df18faf8db9c99a5b..627f70c5da58321f3a0f95c6846b19c3ef14be92 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 9132e2cb493812b11db4fb032775ccfe907f4513..3a802a914127cf35c2b77037369974e8b0291204 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 318417ea40dbb3995e41540aaea9182f81552880..27c17477703edca4954c51c94298b13b3c9411d4 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 2e038362f1a770d4a41e5aeea80757ef6dde44ba..aa3fc750ceba4b3d3f5935cd1f7176799a47595a 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 c012d8d8154c2482ff043a7bc8f2249f3ce933c4..ce6befd49f728866ceed3444cda33aa60d2920a6 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 0e5643efb74af3442a5d096c20ebea64c5db3c04..8f3f7e8aaef368f6ce6f27a8e98c1ce641a9b5fd 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 cb2546562a087aafc759063bddcdf49cf5cd0cfc..ed100d9d0b9f27c245105282ad3b5eb87152b51a 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 2c95b9e90c8f7d0d943d5391cba8ea286d29ddbe..b7f6a71f2533b59a42bdd849226ddc151a9eef9d 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 0b65d0fbe3788e7cc586c17e0afdf01b2ea2f089..e99fec0efe8d50beb82c6a8ea086385ec0c74f4f 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 bbbaa92674b445df3ece7f46b10dd22a35e24129..1e9576eaf098029e00670787a2a1932710af7bb1 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 a1647ec24e82ef6d8d2025070dd41f52cfe7ced8..0e6d823feefcbe47bc984b4572242376a34d2081 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 72dc25f1113db11edbfae39136725745298dffce..a103ff4d1f9177b6c0e2a32ea70f60689b03b973 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 98bce4c18dfb010b5fdd1df93c9d35fe88104010..7e23e3776a5a554ebfde7b47e110705b5cdbd899 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 91dd56bb5683d49c50673422f09bd5b7407446f6..22c314903e7fb79e2ff8aef0f625932f175886c3 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 8125103bc235ebb7c3d5265b3ed6aba84df75278..0af562ac0475f0f65405fb5bdd6c92ee1ef6a7db 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 cff68562229c982878b92387513ba7fa33fc4686..b7ca69a2e85ca6b7b9e404b47a32c6b038c7ff2b 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 4ff63ab97e64f17a0a97dc43a5597aeac081c34c..acce2b11b14a31aa38d4757f1541809a385ae26a 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 71f8ba3726d7c2518b53ada2365b15fd4ac87aad..33021658faaa4161bf58589f9dbc935221bc098a 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 81db2b50845580acfc9fa1c0b57956616bc63f93..4271bc1a3e7e3ac20060322caa2a1655b2805042 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 aeb10efb88c2e14e91eaf276c76139a3296154f5..8d3f4938e9ecc2bac43126a9f227ed415a227617 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 ad16955afd8b568f0aee494d958b173189f1708e..62117bf073a74595a6f2cc615578bc5aa0b5e0a8 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 a0a65d99299ac6e38f1a6f8e3932c3f8fbe38b9f..5c97c0a20686b003e35a9f1003fe9dbe0e0a22ce 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 b8c886fca1339532c43adf7d5daba34209bddd36..ba0389f75a04ba82dbe26fc54e95dec6088bf646 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 d2609d183c75f166914b6b70d099ae352261edd9..a8f95ab582c03d24018bb84426c669d6c8ecc56b 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 dc9087cebcc75db65e2547470680e03f1165afa8..7120dd85fb9135e0bf85920b7108e6ae0b97b831 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 959d346378f348afb6aa93f464a28b8b979e7d10..a79218360ef1dea309376358d9344e49508b5b46 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 eb3457720a6c36766c6615031ee59f709cb8e61c..8166765de9593781dd03e656c1d16970ebaa4bea 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 c89be4fb52138e16a8fffcbe4e175f1132191483..950a6e31329bba8e2838fdccdaf224b074fd8cdc 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 53058e6a8c56d54b5627dabac7a512b6b1733a1c..04e933d45a4399a48f552b059c7ff38e81597526 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 152a2312e5a47809b315946e04e635bfdd2b2507..c8b1dcc1b254074156b72d550af34a5b6b1c1bf6 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 adea5f18f17c08205c0345c2c4674fc8781d7ef3..4d48514a1d796906df0aeebb2486a73d2ca5bbc4 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 0195d608d853deb967f76ee700593cf59e0349fa..6c0ee6d00a6a97d012e23a67e8f7dfdcef487638 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 92339309869fea4b70ba8f3d88b6b8aff93b1f8c..cb14969365f799484ceae633740d8abb22b7fcd2 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 303edcd11e8942451eb4471028419b03e39d4609..e81cff01ea17800d07f05fd5146e42dd669d26a2 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 d3a0def8320923068ec47701a3c2bc69ec407d4a..475f8dc44bce9d6724aaf07f8b95d35f24067554 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 c84cc766bd669f1f2d8c86993506d9749d324918..c54b188103397179672cc70f57f8e51715c123ba 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 fbccd710e12f7e0791779137babf2f25f77d9bd7..a65e9f0a772e234a228b8fb24b772ee725539a86 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])