�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!usr/share/doc/mcpp/ChangeLog000064400000043451152525653660011763 0ustar00ChangeLog of MCPP and its accompanying Validation Suite 2008/11/30 kmatsui * V.2.7.2 * Enabled some CPU-specific predefined macros in compiler- independent-build as well as compiler-specific-build, because there are some occasions which require those macros when we use some compiler system's header files. Created init_cpu_macro(). (configure.ac, noconfig.H, configed.H, main.c, system.c) * Enabled -m32 and -m64 options even on 32-bits systems and on compiler-independent-build, when the OS is UNIX-like one. These options change some predefined macros. (system.c) * Made -z option to output #include lines themselves. (system.c) * Fixed a bug of source line numbering in library-build. (by Dwayne Boone) (main.c) * Fixed a few minor bugs. * Dropped support for Borland C 4.0. * Updated the shell-scripts, makefiles and difference files, and revised some mistakes. * Updated the documents. 2008/05/19 kmatsui * V.2.7.1 * Fixed a bug of newline synchronization on -K option. Created sync_linenum(). (Thanks to Benjamin Smedberg) (directive.c) * Made GCC-specific-build on x86_64 and ppc64 have two sets of predefines for 32bit mode and 64bit mode, and implemented -m32 and -m64 options. (Thanks to Benjamin Smedberg) (configure.ac, set_mcpp.sh, system.c) * Stopped to use freopen() so that a main program which links libmcpp can use stdin, stdout and stderr. (by Benoit Foucher) (main.c) * Fixed a bug of file-handle leak on -MD and -MF options. (Thanks to Masashi Fujita) (system.c) * Added ports to Vicual C++ 6.0 and Borland C++ 5.9 (aka C++ Builder 2007). (by Dwayne Boone) (vc6.dif, bc59.dif, eval.c) * Revised declaration of stpcpy(). (internal.H) * Split mcpp_out.h from mcpp_lib.h. * Made library-build install also an mcpp executable and minimal documents as well as libmcpp for a convenience of library package. Created main_mcpplib.c. Made all the binary packages library-build. (by Yutaka Niibe and kmatsui) (Makefile.am, src/ Makefile.am) * Split config/cygwin_root and config/mingw_root from configure.ac to avoid a trouble of backslash character handling on some version of bash. (Thanks to Aleksandar Samardzic) * Changed autoconf 2.59 to 2.61 and automake 1.9.6 to 1.10. * Updated the documents accordingly. 2008/03/23 kmatsui * V.2.7 * Created macro notification mode, implemented -K option and '# pragma MCPP debug macro_call' sub-directive to enable this mode on STD mode. Created get_src_location(), print_macro_inf(), print_macro_arg(), close_macro_inf(), chk_magic_balance(), remove_magics(), some MAC_* macros to define magic characters, struct LINE_COL, MACRO_INF. Revised many functions. (Specifications mostly by Taras Glek, partly by Samuel, implemented mostly by kmatsui and partly by Taras Glek and Samuel). (internal.H, main.c, directive.c, eval.c, expand.c, support.c, system.c) * Created -k option to keep horizontal white spaces as they are and convert comment to spaces of the same length on STD mode. (Specs by Taras Glek, implemented by kmatsui). (internal,H, main.c, directive.c, mbchar.c, support.c) * Implemented GCC2-spec variadic macro on STD mode in GCC- specific-build. (by Taras Glek and kmatsui). (directive.c) * Enabled GCC-like buggy handling of macro containing 'defined' token in #if directive on GCC-specific-build. (by Taras Glek). (expand.c) * Reordered initialization steps and enabled undefining of not- Standard-required predefined macros. Created undef_macros(). Removed undef_a_predef(). (main.c, system.c) * Enabled non-conforming predefined macros such as 'linux' by default on GCC-specific-build for compatibility with GCC. Removed undef_gcc_macros(). Created DEF_NOARGS_* macros for diagnostics sake. (internal.H, system.c) * Fixed a bug of file searching failure when a file is specified by relative path in -include option. Split is_full_path() from open_include(). (thanks to Benjamin Smedberg) (system.c) * Fixed a bug of mcpplib initialization which caused problem on CygWIN. (main.c, system.c, lib.c) * Fixed a bug of unterminated source file handling. (thanks to Phil Knight) (support.c) * Made norm_path() check existence of directory/file before normalization. As its results, non-existent directory specified by -I option was disabled, "non-existent/../existent" was judged as non-existent before wrongly normalizing to "existent", and # include "directory" was made not to open. Created norm_dir(). (thanks to Taras Glek and Dave Mandelin) (system.c) * Stopped to convert path-list on Windows to lowercase-letters. Changed path-list comparing function on Windows from strcmp() to strcasecmp() or stricmp(). (system.c) * Changed allocation of buffer for -M* options and incdir[], fnamelist[], once_list[] from fixed size to dynamically enlarging ones. (system.c) * Made #line output for GCC-specific-build closer to GCC. Changed FILEINFO and DEFBUF struct, moved sharp() from main.c to system.c, revised many functions. (system.c, support.c, main.c, directive.c) * Absorbed lib.c into system.c. Renamed getopt() to mcpp_getopt (), also variables opt* to mcpp_opt*, and made static in order to prevent linking of glibc getopt(). (thanks to Dwayne Boone) * Fixed a bug of UTF-8 multibyte character handling, enabled 4- bytes long sequences, and enabled checking of overlong sequences and UTF-16 surrogate pairs. (by Matt Wozniski) (mbchar.c, support.c) * Fixed a bug of tokenization in KR and OLD modes. (support.c) * Changed FILENAME_MAX to PATH_MAX and FILENAMEMAX to PATHMAX, because FILENAME_MAX of some systems are too short. (thanks to Dwayne Boone) * Bundled some variables into structs (std_limits, option_flags, etc.). Tidied up the sources removing unused codes, rewriting old comments. (most of the sources) * Ported to Mac OS X / Apple-GCC. Enabled searching of "framework" directories for #include. Enabled to search "header map" file. Enabled #import, which is #include with unconditional "once only" feature. Implemented -F, -arch, -isysroot options. Created init_framework(), search_framework(), search_subdir(), search_header_map(), hmap_hash(). (system.c, directive.c, set_mcpp.sh, unset_mcpp.sh, configure.ac, src/ Makefile.am) * Ported to Visual C++ 2008. Enabled '$' in identifier by default in Visual-C-specific-build and GCC-specific-build. (system.H, internal.H, support.c, system.c) * Added documentation on source checking of firefox 3.0pre. Added comments on system headers in Mac OS X. (mcpp-manual.html) * Updated all the documents. (mainly by kmatsui, partly by Taras Glek) 2007/05/19 kmatsui * V.2.6.4 * Fixed memory leaks in subroutine-build related to file-> filename, sharp_filename and others. (by Juergen Mueller and kmatsui). (main.c, directive.c, support.c, system.c) * Revised expanding() and expanding_macro[] to fix memory leaks. Created clear_exp_mac(). (internal.H, expand.c, support.c) * Fixed a bug of accessing non-allocated memory. (by isr). (support.c) * Revised output of // comment by -C option. Output // comment as it is, not converting to /* */. (thanks to Taras Glek). (support.c) * Changed output of line top white spaces in other than POST_STANDARD mode to preserve them as they are, rather than squeezing to one space, in order to make output more human- readable. (main.c, support.c) * Removed the settings to be compiled with C++. (configed.H, noconfig.H, noconfig/*.mak) * Updated version-info for shared-library-build from 0:0:0 to 0: 1:0. * Changed installation directory of some documents in stand- alone-and-compiler-independent-build by configure or by binary packages. * Updated the documents. Note that cpp-test.html were not updated. 2007/04/07 kmatsui * V.2.6.3 * Fixed a bug of some #line directive handling which wrongly affected #include path. Added a new member for real file name to struct FILEINFO, and made #line directive does not affect real file name. (internal.H, main.c, support.c, system.c) * Enabled dereferencing of symbolic linked directory (as well as file) of #include path-list and include directory. Split deref_syml() from norm_path(). (system.c) * Revised again diagnostic messages for some macro expansions. (internal.H, expand.c, support.c) * Relaxed token checking and syntax checking in lang_asm mode. (expand,c, support.c) * Implemented GCC3-spec variadic macro for GCC-specific-build. (internal.H, directive.c, expand.c) * Added some predefined macro for GCC-specific-build. (system.c) * Revised output routines abstracting output device, and implementing optional memory buffer output when built with MCPP_LIB macro. Created mcpp_lib.h, mcpp_lib_fputs(), mcpp_lib_fputc(), mcpp_lib_fprintf(), mcpp_use_mem_buffers(), mcpp_get_mem_buffer(), mcpp_set_out_func(), mcpp_reset_def_out_func(), mem_putc(), mem_puts(), append_to_buffer(), function pointers mcpp_fputs, mcpp_fputc, mcpp_fprintf and some macros. This update disabled compilation by C++. (All were contributed by Greg Kress and slightly modified by kmatsui) (internal.H, main.c, directive.c, eval.c, expand.c, mbchar.c, support.c, system.c, lib.c, mcpp_lib.h) * Renamed some global names in order to lessen the possibility of name collisions in subroutine-build. Renamed the variables mode, cplus, line, debug, type[] and work[] to mcpp_mode, cplus_val, src_line, mcpp_debug, char_type[] and work_buf[] respectively. Renamed the functions install(), eval(), expand(), get() and unget() to install_macro(), eval_if(), expand_macro(), get_ch() and unget_ch() respectively. (internal.H, main.c, directive.c, eval.c, expand.c, mbchar.c, support.c, system.c) * Added 'mcpplib' target to make subroutine (library) build in configure.ac and noconfig/*.mak. * Revised some other minor points. (all sources) * Changed default setting of noconfig.H to that of FreeBSD 6.* / stand-alone / GCC 3.4. (noconfig.H) * Added documentation on source checking of glibc 2.4. (mcpp- manual.html) * Abolished 'install-data' and 'uninstall-data' targets of configured makefile. On the other hand, made 'install' target install also mcpp-manual.html. * Provided stand-alone-and-compiler-independent-build binary packages port, rpm, deb, zip and their corresponding source packages. 2006/11/12 kmatsui * V.2.6.2 * Renamed control.c as directive.c and renamed control() as directive(). * Fixed a bug of #else handling in pre-Standard modes. (directive.c) * Fixed a bug of mcpp specific directives such as #debug or # put_defines in pre-Standard modes. (system.c) * Fixed a bug of warning options for GCC-specific-builds. (system.c) * Fixed a bug of macro expansion timing in #include directive line. (system.c) * Revised some other minor points, moved cur_file() from main.c to system.c. (main.c, eval.c, system.c) * Revised diagnostic messages for some macro expansions. (internal.H, expand.c, support.c) * Fixed a bug of nested includes with relative paths. (thanks to Leo Savernik). (system.c) * Fixed memory leaks in routines related to normalizing path- list. (by Juergen Mueller). (system.c) * Added MCPP_LIB setting to use mcpp as a subroutine from other main program. Created init_main(), init_directive(), init_eval(), init_support(), init_system(), init_lib(), clear_filelist() and clear_symtable(). Created testmain.c as a sample source. (all were contributed by Juergen Mueller and slightly modified by kmatsui). (internal.H, main.c, directive.c, eval.c, expand.c, support.c, system.c, lib.c) * Changed the macro STAND_ALONE to INDEPENDENT. * Changed the terminology of building methods in the documents. (INSTALL, mcpp-porting.html, mcpp-manual.html) * Rewrote and converted the text files in 'doc' and 'doc-jp' directories into html files. * Updated and corrected many points of the documents. 2006/08/12 kmatsui * V.2.6.1 * Enabled automatic conversion from [CR+LF] to [LF]. (support.c) * Set the limit of #include nesting to INCLUDE_NEST (default: 256) in order to prevent infinitely recursive #includes. (system.H, system.c) * Revised white space handling in
style header-name which is defined by macro. (system.c) * Enabled -fworking-directory option for GCC-specific-build. created put_info(). (system.c) * Fixed a bug of macro definition. (lib.c) * Fixed a bug of '#pragma once' failure. (by Greg Kress). (system.c) * Fixed some other minor bugs in sources. * Revised path-list handling on CygWIN. Enabled -mno-cygwin option for CygWIN GCC-specific-build. (configure.ac, noconfig.H, system.c) * Ported to MinGW. Created cc1.c to be invoked from GCC and to invoke mcpp or GCC's cc1/cc1plus from it, because MinGW GCC rejects to invoke a shell-script even if it is named cc1 and because MinGW does not support symbolic link. (configure.ac, src/Makefile.am, configed.H, noconfig.H, system.c) * Fixed bugs in some noconfig/*.mak. * Moved changelogs from the source files to ChangeLog and ChangeLog.old. 2006/07/15 kmatsui * V.2.6 * Integrated STANDARD mode and PRE_STANDARD mode into one executable, differentiating the modes by the execution time options. (all the sources) * Absorbed DEBUG, DEBUG_EVAL, OK_MAKE into default, OK_DIGRAPHS, OK_PRAGMA_OP into default of STD and POST_STD mode, OK_TRIGRAPHS into default of STD mode, OK_SIZE into default of KR and OLD_PREP modes. (all the sources) * Changed --enable-maintainer-mode option of configure to --enable-replace-cpp option which generates compiler-specific- build of mcpp. Made compiler-specific-build to be installed only into a compiler-specific-directory. (configure.ac, src/ Makefile.am) * Made stand-alone-build independent from any compiler-systems. It no longer requires GCC-specific header files. (configure.ac, configed.H, noconfig.H, system.c) * Revised '#pragma once' and handling of include directories list, judging a identity of directory and file by converting it to absolute path, and dereferencing symbolic linked file. (system.c) * Revised #line output and its related problem at the end of an included file. (thanks to Jay Prakash). (internal.H, support.c) * Ported to GCC V.4.0, CygWIN 1.5.18, Visual C++ 2005 and LCC- Win32 2006-03. (noconfig.H, system.c) * Added some options for Visual C++. (system.c) * Removed settings for pre-C90 compiler (string concatenation by preprocessor, '\a' and '\v' handling, no unsigned long #if, no Standard library functions, non-prototype declarations, no # pragma). (all the sources) * Removed settings for MS-DOS compiler, DJGPP and Plan9. (*.H, system.c, mbchar.c) * Removed the implementation of post_preproc() for pre-Standard compiler. Removed conv_esc(), is_last_esc(), conv2oct(). Removed HAVE_C_BACKSLASH_A and CONCAT_STRINGS macros. (main.c) * Degraded the diagnostic of #if expression from error to warning, which only overflows the range of 'long / unsigned long' and does not overflow the range of 'long long / unsigned long long' in modes other than C99. (eval.c) * Enabled 'i64' ('ui64', 'i32', 'i16', etc.) suffixes for integer, which are recognized when COMPILER is MSC or BORLANDC. (eval.c) * Renamed functions and some variables, created expand_init(), according to integration of STANDARD and PRE_STANDARD modes. (expand.c) * Removed '#pragma MCPP include_next'. (system.c) * Created init_msc_macro(), parse_warn_level(), chk_opts(), init_predefines(), init_std_defines(), do_prestd_directive(). Removed set_cplus(), mem_model(). (system.c) * Removed Standard functions (memmove(), memcpy(), memcmp(), strstr(), strcspn()). (lib.c) * Changed default setting of noconfig.H to FreeBSD 5.* / stand- alone / GCC 3.4. (noconfig.H) * Renamed 'doc' directory as 'doc-jp' and renamed 'doc_eng' as 'doc'. * Removed some manuscript files of mcpp-summary.pdf from the distribution. * Validation Suite: Revised a few testcases. * Updated all the documents accordingly. usr/share/doc/libpmem/ChangeLog000064400000066673152525730600012452 0ustar00Tue Aug 27 2019 Marcin Ślusarz * Version 1.6.1 This release fixes possible pool corruptions on Windows (see https://github.com/pmem/pmdk/pull/3728 for details), improves compatibility with newer Linux kernels with respect to Device DAX detection, fixes pmemobj space management for large pools, improves compatibility with newer toolchains, incorporates build fixes for FreeBSD and fixes a number of smaller bugs. Detailed list of bug fixes: - common: (win) fix possible pool file coruption (#972, #715, #603) - common: implement correct / robust device_dax_alignment (#1071) - obj: fix recycler not locating unused chunks - doc: update pmemobj_tx_lock documentation wrt behavior on fail - common: fix persistent domain detection (#1093) - common: vecq: fix a pointer-to-struct aliasing violation (crash on arm64) - common: fix minor issues related to ndctl linking - obj: drop recursion from pmemobj_next - common: fix bug in badblock file error handling - obj: fix handling of malloc failures - common: fix handling of malloc failures (ctl) - jemalloc: fix build with gcc 9 - obj: don't overwrite errno when palloc_heap_check_remote fails - doc: fix pmreorder emit log macro - rpmem: change order of rpmem init (#1043) - common: Fix build failure due to unused macro PAGE_SIZE - common: support older versions of pkg-config - tools: link with release variant of pmemcommon - common: add PMDK prefix to local copy of queue.h (#990) - rpmem: switch to using an open coded basename (FreeBSD) - common: posix_fallocate: guard against integer underflow in check (FreeBSD) - test: support Valgrind 3.15 - test: skip if fi_info is missing - test: (win) fix sparsefile error handling - test: fix libpmempool_feature tests that match logs - test: remove vmem_delete test (#1074) - test: adjust matchfiles in vmem_valgrind_region test (#1087) - test: remove old log files for windows (#1013) - test: remove invalid expect_normal_exit (#1092) - test: suppress ld leak (#1098) - test: Expose necessary symbols in libvmmalloc_dummy_funcs (FreeBSD) - test: fix tests failing because `tput` fails (FreeBSD) - test: avoid obj_critnib_mt taking very long on many-core machines - test: deal with libndctl's path without build system - test: overwrite old log in pmempool_create/TEST14.PS1 - test: fix match files in tests which use dax devices - test: fix match file in rpmem_addr_ext test - test: fix pmempool_check test Fri Aug 09 2019 Marcin Ślusarz * Version 1.5.2-rc1 This release fixes possible pool corruptions on Windows (see https://github.com/pmem/pmdk/pull/3728 for details), improves compatibility with newer Linux kernels with respect to Device DAX detection, fixes pmemobj space management for large pools, improves compatibility with newer toolchains and fixes a number of smaller bugs. Detailed list of bug fixes: - common: (win) fix possible pool file coruption (#972, #715, #603) - common: implement correct / robust device_dax_alignment (#1071) - obj: fix crash after large undo log recovery - obj: fix recycler not locating unused chunks - doc: update pmemobj_tx_lock documentation wrt behavior on fail - common: fix build of rpm packages on suse (#1023) - common: fix persistent domain detection (#1093) - common: vecq: fix a pointer-to-struct aliasing violation (crash on arm64) - rpmem: lock file prior to unlink (#833) - common: fix for pool_set error handling (#1036) - pmreorder: fix handling of store drain flush drain pattern - common: fix bug in badblock file error handling - obj: fix handling of malloc failures - common: fix handling of malloc failures (ctl) - jemalloc: fix build with gcc 9 - obj: don't overwrite errno when palloc_heap_check_remote fails - doc: fix typos in pmreorder configuration - doc: fix pmreorder emit log macro - tools: link with release variant of pmemcommon - test: support Valgrind 3.15 - test: skip if fi_info is missing - test: split test obj_tx_lock into two test cases (#1027) - test: (win) fix sparsefile error handling - test: fix libpmempool_feature tests that match logs - test: remove vmem_delete test (#1074) - test: adjust matchfiles in vmem_valgrind_region test (#1087) - test: remove old log files for windows (#1013) - test: remove invalid expect_normal_exit (#1092) - test: suppress ld leak (#1098) Tue Mar 26 2019 Marcin Ślusarz * Version 1.6 This release: - Enables unsafe shutdown and bad block detection on Linux on systems with libndctl >= 63. It is expected that systems with libndctl >= 63 has necessary kernel support (Linux >= 4.20). However, due to bugs in libndctl = 63 and Linux = 4.20, it is recommended to use libndctl >= 64.1 and Linux >= 5.0.4. On systems with libndctl < 63, PMDK uses old superuser-only interfaces. Support for old or new interfaces is chosen at BUILD time. - Introduces arena control interface in pmemobj, allowing applications to tweak performance and scalability of heap operations. See pmemobj_ctl_get man page ("heap" namespace) for details. - Introduces copy_on_write mode, which allows testing applications using pmemobj with pmreorder. See pmemobj_ctl_get man page ("copy_on_write" namespace) for details. Other changes: - allocate file space when creating a pool on existing file (pmem/issues#167) - initial support for testing using fault injection - initial Python test framework - improve performance of pmemobj_pool_by_ptr Bug fixes: - common: work around tmpfs bug during pool creation (pmem/issues#1018) - pool: race-free pmempool create --max-size - obj: don't modify remote pools in pmemobj_check Tue Feb 19 2019 Marcin Ślusarz * Version 1.5.1 This release fixes minor bugs and improves compatibility with newer tool chains. Notable bug fixes: - common: make detection of device-dax instances more robust - obj: fix pmemobj_check for pools with some sizes - obj: don't use anon struct in an union (public header) - obj: fix pmemobj_tx_lock error handling - obj: don't use braces in an expression with clang (public header) - obj: suppress pmemcheck warnings for statistics - pmreorder: fix markers nontype issue Fri Oct 26 2018 Marcin Ślusarz * Version 1.5 This release has had two major focus areas - performance and RAS (Reliability, Availability and Serviceability). Beyond that, it introduces new APIs, new tools and many other improvements. As a side effect of performance optimizations, the libpmemobj on-media layout had to be changed, which means that old pools have to be converted using pmdk-convert. libpmemcto experiment has been finished and removed from the tree. For more details, please see http://pmem.io/2018/10/22/release-1-5.html. New features: - common: unsafe shutdown detection (SDS) - common: detection and repair of uncorrectable memory errors (bad blocks) - pool: new "feature" subcommand for enabling and disabling detection of unsafe shutdown and uncorrectable memory errors - common: auto flush detection on Windows (on Linux since 1.4) - pmreorder: new tool for verification of persistent memory algorithms - obj: new on media layout - pmem/obj: new flexible memcpy|memmove|memset API - obj: new flushing APIs: pmemobj_xpersist, pmemobj_xflush (PMEMOBJ_F_RELAXED) - rpmem: new flag RPMEM_PERSIST_RELAXED for rpmem_persist - obj: lazily initialized volatile variables (pmemobj_volatile) (EXPERIMENTAL) - obj: allocation classes with alignment - obj: new action APIs: pmemobj_defer_free, POBJ_XRESERVE_NEW, POBJ_XRESERVE_ALLOC - blk/log: new "ctl" API Optimizations: - obj: major performance improvements for AEP NVDIMMs - obj: better space utilization for small allocations - common: call msync only on one page for deep drain Other changes: - cto: removed - obj: remove actions limit - common: new dependency on libndctl on Linux - pmempool: "convert" subcommand is now a wrapper around pmdk-convert (please see https://github.com/pmem/pmdk-convert) - obj: C++ bindings have been moved to a new repository (please see https://github.com/pmem/libpmemobj-cpp) Bug fixes: - obj: fix type numbers for pmemobj_list_insert_new - pmem: fix inconsistency in pmem_is_pmem - common: fix windows mmap destruction - daxio: fix checking and adjusting length - common: fix long paths support on Windows Thu Aug 16 2018 Marcin Ślusarz * Version 1.4.2 This release fixes the way PMDK reports its version via pkg-config files. Bug fixes: - common: fix reported version - doc: use single "-" in NAME section (pmem/issues#914) Fri Jun 29 2018 Marcin Ślusarz * Version 1.4.1 In 1.4 development cycle, we created new daxio utility (command line tool for performing I/O on Device-DAX), but due to some complications we had to disable it just before the 1.4 release. In 1.4.1 we finally enable it. Daxio depends on ndctl v60.1. Bug fixes: - pmem: fix clflush bit position - obj: fix invalid OOMs when zones are fully packed - obj: don't register undo logs twice in memcheck - pool: fix bash completion script - pool: fix incorrect errno after transform - obj: fix clang-7 compilation - obj: test for msync failures in non-pmem path - doc: add missing field to alloc class entry point - common: (win) fix timed locks - common: provide src version in GitHub tarballs - common: fix free function in tls - common: fix double close - test: allow testing installed libraries - test: fix Valgrind vs stripped libraries issue - test: fix dependencies between tests and tools - test: fix races on make pcheck -jN - test: use libvmmalloc.so.1 - test: fix incorrect number of required dax devices - test: add suppression for leak in ld.so - test: fail if memcheck detects overlapping chunks - test: simplify time measurements in obj_sync - benchmark: check lseek() return value - examples: catch exceptions in map_cli Thu Mar 29 2018 Krzysztof Czurylo * Version 1.4 This is the first release of PMDK under a new name. The NVML project has been renamed to PMDK (Persistent Memory Development Kit). This is only the project/repo name change and it does not affect the names of the PMDK packages. See this blog article for more details on the reasons and impact of the name change: http://pmem.io/2017/12/11/NVML-is-now-PMDK.html New features: - common: support for concatenated Device-DAX devices with 2M/1G alignment - common: add support for MAP_SYNC flag - common: always enable Valgrind instrumentation (#292) - common: pool set options / headerless pools - pmem: add support for "deep flush" operation - rpmem: add rpmem_deep_persist - doc: split man pages and add per-function aliases (#385) Optimizations: - pmem: skip CPU cache flushing when eADR is available (no Windows support yet) - pmem: add AVX512F support in pmem_memcpy/memset (#656) Bug fixes: - common: fix library dependencies (#767, RHBZ #1539564) - common: use rpm-config CFLAGS/LDFLAGS when building packages (#768, RHBZ #1539564) - common: do not unload librpmem on close (#776) - common: fix NULL check in os_fopen (#813) - common: fix missing version in .pc files - obj: fix cancel of huge allocations (#726) - obj: fix error handling in pmemobj_open (#750) - obj: validate pe_offset in pmemobj_list_* APIs (#772) - obj: fix add_range with size == 0 (#781) - log: add check for negative iovcnt (#690) - rpmem: limit maximum number of lanes (#609) - rpmem: change order of memory registration (#655) - rpmem: fix removing remote pools (#721) - pool: fix error handling (#643) - pool: fix sync with switched parts (#730) - pool: fix sync with missing replica (#731) - pool: fix detection of Device DAX size (#805) - pool: fail pmempool_sync if there are no replicas (#816) - benchmark: fix calculating standard deviation (#318) - doc: clarify pmem_is_pmem behavior (#719) - doc: clarify pmemobj_root behavior (#733) Experimental features: - common: port PMDK to FreeBSD - common: add experimental support for aarch64 - obj: introduce allocation classes - obj: introduce two-phase heap ops (reserve/publish) (#380, #415) - obj: provide basic heap statistics (#676) - obj: implement run-time pool extending (#382) - cto: add close-to-open persistence library (#192) The following features are disabled by default, until ndctl v60.0 is available: - daxio: add utility to perform I/O on Device-DAX - RAS: unsafe shutdown detection/handling Wed Dec 20 2017 Krzysztof Czurylo * Version 1.3.1 Bug fixes: - rpmem: fix issues reported by Coverity - rpmem: fix read error handling - rpmem: add fip monitor (#597) - test: add rpmemd termination handling test - cpp: fix pop.persist function in obj_cpp_ptr - rpmem: return failure for a failed allocation - rpmem: fix potential memory leak - common: fix available rm options msg (#651) - pool: fix pmempool_get_max_size - obj: fix potential deadlock during realloc (#635, #636, #637) - obj: initialize TLS data - rpmem: fix cleanup if fork() failed (#634) - obj: fix bogus OOM after exhausting first zone Thu Jul 13 2017 Krzysztof Czurylo * Version 1.3 This release introduces some useful features and optimizations in libpmemobj. Most of them are experimental and controlled by the new pmemobj_ctl APIs. For details, please check the feature requests identified by the issue numbers listed next to the items below. Other important changes are related to performance tuning and stabilization of librpmem library, which is used by libpmemobj to get remote access to persistent memory and to provide basic data replication over RDMA. The librpmem is still considered experimental. NVML for Windows is feature complete (except for libvmmalloc). This release includes the support for Unicode, long paths and the NVML installer. New features: - common: add support for concatenated DAX Devices - common: add Unicode support on Windows - common: add long path support on Windows - common: add NVML installer for Windows - pmem: make pmem_is_pmem() true for Device DAX only - obj: add pmemobj_wcsdup()/pmemobj_tx_wcsdup() APIs - obj: export non-inlined pmemobj_direct() - obj: add PMEMOBJ_NLANES env variable - cpp: introduce the allocator - cpp: add wstring version of C++ entry points - vmem: add vmem_wcsdup() API entry - pool: add pmempool_rm() function (#307) - pool: add --force flag for create command (#529) - benchmark: add a minimal execution time option - benchmark: add thread affinity option - benchmark: print 99% and 99.9% percentiles - doc: separate Linux/Windows version of web-based man pages Optimizations: - obj: cache _pobj_cached_pool in pmemobj_direct() - obj: optimize thread utilization of buckets - obj: stop grabbing a lock when querying pool ptr - rpmem: use multiple endpoints Bug fixes: - common: fix issues reported by static code analyzers - pmem: fix mmap() implementation on Windows - pmem: fix mapping addr/length alignment on Windows - pmem: fix PMEM_MMAP_HINT implementation on Windows - pmem: fix pmem_is_pmem() on invalid memory ranges - pmem: fix wrong is_pmem returned by pmem_map_file() - pmem: fix mprotect() for private mappings on Windows - pmem: modify pmem_is_pmem() behavior for len==0 - obj: add failsafe to prevent allocs in constructor - cpp: fix swap implementation - cpp: fix sync primitives' constructors - cpp: fix wrong pointer type in the allocator - cpp: return persistent_ptr::swap to being public - pool: treat invalid answer as 'n' - pool: unify flags value for dry run - pool: transform for remote replicas - rpmem: persistency method detection - benchmark: fix time measurement Experimental features/optimizations: - obj: pmemobjctl - statistics and control submodule (#194, #211) - obj: zero-overhead allocations - customizable alloc header (#347) - obj: flexible run size index (#377) - obj: dynamic range cache (#378) - obj: asynchronous post-commit (#381) - obj: configurable object cache (#515) - obj: add cache size and threshold tx params - obj: add CTL var for suppressing expensive checks - rpmem: add rpmem_set_attr() API entry - rpmem: switch to libfabric v1.4.2 Thu May 18 2017 Krzysztof Czurylo * Version 1.2.3 Bug fixes: - test: extend timeout for selected tests - test: reduce number of operations in obj_tx_mt - test: define cfree() as free() in vmmalloc_calloc Other changes: - common: move Docker images to new repo Sat Apr 15 2017 Krzysztof Czurylo * Version 1.2.2 Bug fixes: - pmempool: fix mapping type in pool_params_parse - test: limit number of arenas in vmem_stats - test: do not run pool_lock test as root - common: fix pkg-config files - common: fix building packages for Debian Tue Feb 21 2017 Krzysztof Czurylo * Version 1.2.1 This NVML release changes the behavior of pmem_is_pmem() on Linux. The pmem_is_pmem() function will now return true only if the entire range is mapped directly from Device DAX (/dev/daxX.Y) without an intervening file system, and only if the corresponding file mapping was created with pmem_map_file(). See libpmem(3) for details. Bug fixes: - jemalloc: fix test compilation on Fedora 26 (rawhide) - test: fix cpp test compilation on Fedora 26 (rawhide) - common: use same queue.h on linux and windows - common: queue.h clang static analyzer fix - common: fix path handling in build-dpkg.sh - test: fix match files in pmempool_transform/TEST8 Fri Dec 30 2016 Krzysztof Czurylo * Version 1.2 - Windows Technical Preview #1 This is the first Technical Preview release of NVML for Windows. It is based on NVML 1.2 version, but not all the 1.2 features are ported to Windows. In particular, Device DAX and remote access to persistent memory (librpmem) are not supported by design. NOTE: This release has not gone through the full validation cycle, but only through some basic tests on Travis and AppVeyor. Thus, it cannot be assumed "Production quality" and should not be used in production environments. Besides several minor improvements and bug fixes, all the other changes since NVML 1.2 release were related to Windows support: - win: port libvmem (and jemalloc) - win: benchmarks Windows port - win: fix mapping files of unaligned length - win: clean up possible race condition in mmap_init() - win: enable QueryVirtualMemoryInformation() in pmem_is_pmem() - test: check open handles at START/DONE - test: port all the remaining unit tests (scope, pmem_map, obj_debug, util_poolset, pmempool_*) - win: add resource files for versioning Known issues and limitations of Windows version of NVML: - Unicode support is missing. The UTF/USC-encoded file paths or pool set files may not be handled correctly. - The libvmmalloc library is not ported yet. - The on-media format of pmem pools is not portable at the moment. The pmem pools created using Windows version of NVM libraries cannot be open on Linux and vice versa. - Despite the fact the current version of NVML would work with any recent version of Windows OS, to take full advantage of PMEM and NVML features and to benefit from the PMEM performance, the recommended platforms needs be equipped with the real NVDIMMs hardware and should support the native, Microsoft's implementation of DAX-enabled file system (i.e. Windows Server 2016 or later). In case of using NVML with older versions of Windows or with the custom implementation of PMEM/DAX drivers, the performance might not be satisfactory. Please, contact the provider of PMEM/DAX drivers for your platform to get the customized version of NVML in such case. Thu Dec 15 2016 Krzysztof Czurylo * Version 1.2 This NVML release causes a "flag day" for libpmemobj. The pmemobj pools built under NVML 1.1 are incompatible with pools built under NVML 1.2 and later. This is because an issue was discovered with the alignment of locks (#358) and, although rare, the issue potentially impacts program correctness, making the fix mandatory. The major version number of the pmemobj pool layout and the version of the libpmemobj API is changed to prevent the use of the potentially incorrect layout. Other key changes introduced in this release: - Add Device DAX support, providing that "optimized flush" mechanism defined in SNIA NVM Programming Model can safely be used, even if PMEM-aware file system supporting that model is not available, or if the user does not want to use the file system for some reason. - Add a package for libpmemobj C++ bindings. C++ API is no longer considered experimental. Web-based documentation for C++ API is available on http://pmem.io. - Add "sync" and "transform" commands to pmempool utility. The "sync" command allows one to recover missing or corrupted part(s) of a pool set from a healthy replica, while the "transform" command is a convenient way for modifying the structure of an existing pool set, i.e. by adding or removing replicas. - Add experimental support for remote access to persistent memory and basic remote data replication over RDMA (librpmem). Experimental support for remote replicas is also provided by libpmemobj library. New features: - common: add Device DAX support (#197) - obj: add C++ bindings package (libpmemobj++-devel) - obj: add TOID_OFFSETOF macro - pmempool: add "sync" and "transform" commands (#172, #196) Bug fixes: - obj: force alignment of pmem lock structures (#358) - blk: cast translation entry to uint64_t when calculating data offset - obj: fix Valgrind instrumentation of chunk headers and cancelled allocations - obj: set error message when user called pmemobj_tx_abort() - obj: fix status returned by pmemobj_list_insert() (#226) - obj: defer allocation of global structures Optimizations: - obj: fast path for pmemobj_pool_by_ptr() when inside a transaction - obj: simplify and optimize allocation class generation Experimental features: - rpmem: add support for remote access to persistent memory and basic remote data replication over RDMA - libpmempool: add pmempool_sync() and pmempool_transform() (#196) - obj: introduce pmemobj_oid() - obj: add pmemobj_tx_xalloc()/pmemobj_tx_xadd_range() APIs and the corresponding macros - obj: add transaction stage transition callbacks Thu Jun 23 2016 Krzysztof Czurylo * Version 1.1 This NVML release introduces a new version of libpmemobj pool layout. Internal undo log structure has been modified to improve performance of pmemobj transactions. Memory pools created with older versions of the libpmemobj library must be converted to the new format using "pmempool convert" command. See pmempool-convert(1) for details. A new "libpmempool" library is available, providing support for off-line pool management and diagnostics. Initially it provides only "check" and "repair" operations for log and blk memory pools, and for BTT devices. Other changes: - pmem: deprecate PCOMMIT - blk: match BTT Flog initialization with Linux NVDIMM BTT - pmem: defer pmem_is_pmem() initialization (#158) - obj: add TOID_TYPEOF macro Bug fixes: - doc: update description of valid file size units (#133) - pmempool: fix --version short option in man page (#135) - pmempool: print usage when running rm without arg (#136) - cpp: clarify polymorphism in persistent_ptr (#150) - obj: let the before flag be any non-zero value (#151) - obj: fix compare array pptr to nullptr (#152) - obj: cpp pool.get_root() fix (#156) - log/blk: set errno if replica section is specified (#161) - cpp: change exception message (#163) - doc: remove duplicated words in man page (#164) - common: always append EXTRA_CFLAGS after our CFLAGS Experimental features: - Implementation of C++ bindings for libpmempobj is complete. Web-based documentation for C++ API is available on http://pmem.io. Note that C++ API is still considered experimental. Do not use it in production environments. - Porting NVML to Windows is in progress. There are MS Visual Studio solution/projects available, allowing to compile libpmem, libpmemlog, libpmemblk and libpmemobj on Windows, but the libraries are not fully functional and most of the test are not enabled yet. Thu Apr 07 2016 Krzysztof Czurylo * Version 1.0 The API of six libraries (libpmem, libpmemblk, libpmemlog, libpmemobj, libvmem, libvmmalloc) is complete and stable. The on-media layout of persistent memory pools will be maintained from this point, and if changed it will be backward compatible. Man pages are all complete. This release has been validated to "Production quality". For the purpose of new features planned for next releases of NVML there have been some API modifications made: - pmem: pmem_map replaced with pmem_map_file - log/blk: 'off_t' substituted with 'long long' - obj: type numbers extended to 64-bit - obj: new entry points and macros added: pmemobj_tx_errno, pmemobj_tx_lock, pmemobj_mutex_timedlock, TX_ADD_DIRECT, TX_ADD_FIELD_DIRECT, TX_SET_DIRECT Other key changes since version 0.4 include: - common: updated/fixed installation scripts - common: eliminated dependency on libuuid - pmem: CPU features/ISA detection using CPUID - obj: improved error handling - obj: atomic allocation fails if constructor returns error - obj: multiple performance optimizations - obj: object store refactoring - obj: additional examples and benchmarks This release also introduces a prototype implementation of C++ bindings for libpmemobj. Note that C++ API is still experimental and should not be used in production environments. Fri Dec 04 2015 Krzysztof Czurylo * Version 0.4 This NVML version primarily focuses on improving code quality and reliability. In addition to a couple of bug fixes, the changes include: - benchmarks for libpmemobj, libpmemblk and libvmem - additional pmemobj tests and examples - pool mapping address randomization - added pmempool "rm" command - eliminated libpmem dependency on libpthread - enabled extra warnings - minor performance improvements Man pages are all complete. This release is considered "Beta quality" by the team, having been thoroughly validated, including significant performance analysis. The pmempool command does not yet support "check" and "repair" operations for pmemobj type pools. Sun Sep 13 2015 Andy Rudoff * Version 0.3 NVML is now feature complete, adding support for: - pool sets - pmemobj local replication (active/passive) - experimental valgrind support - pmempool support for all pool types Man pages are all complete. This release is considered "Alpha quality" by the team, having gone through significant validation but only some performance analysis at this point. Tue Jun 30 2015 Andy Rudoff * Version 0.2 NVML now consists of six libraries: - libpmem (basic flushing, etc) - libpmemblk, libpmemlog, libpmemobj (transactions) - libvmem, libvmmalloc (volatile use of pmem) The "pmempool" command is available for managing pmem files. Man pages for all the above are complete. The only things documented in man pages but not implemented are: - pmem sets (ability to spread a pool over a set of files) - replication (coming for libpmemobj) The pmempool command does not yet support pmemobj type pools. Thu Sep 11 2014 Andy Rudoff * Version 0.1 Initial development done in 0.1 builds usr/share/doc/file/ChangeLog000064400000143123152526026530011727 0ustar002018-04-15 14:52 Christos Zoulas * release 5.33 2018-02-24 14:50 Christos Zoulas * extend the support for ${x?:} expansions for magic descriptions 2018-02-21 16:25 Christos Zoulas * add support for ${x?:} in mime types to handle pie binaries. 2017-11-03 9:23 Christos Zoulas * add support for negative offsets (offsets from the end of file) 2017-09-26 8:22 Christos Zoulas * close the file on error when writing magic (Steve Grubb) 2017-09-24 12:02 Christos Zoulas * seccomp support (Paul Moore) 2017-09-02 11:53 Christos Zoulas * release 5.32 2017-08-28 16:37 Christos Zoulas * Always reset state in {file,buffer}_apprentice (Krzysztof Wilczynski) 2017-08-27 03:55 Christos Zoulas * Fix always true condition (Thomas Jarosch) 2017-05-24 17:30 Christos Zoulas * pickier parsing of numeric values in magic files. 2017-05-23 17:55 Christos Zoulas * PR/615 add magic_getflags() 2017-05-23 13:55 Christos Zoulas * release 5.31 2017-03-17 20:32 Christos Zoulas * remove trailing spaces from magic files * refactor is_tar * better bounds checks for cdf 2017-02-10 12:24 Christos Zoulas * release 5.30 2017-02-07 23:27 Christos Zoulas * If we exceeded the offset in a search return no match (Christoph Biedl) * Be more lenient on corrupt CDF files (Christoph Biedl) 2017-02-04 16:46 Christos Zoulas * pacify ubsan sign extension (oss-fuzz/524) 2017-02-01 12:42 Christos Zoulas * off by one in cdf parsing (PR/593) * report debugging sections in elf (PR/591) 2016-11-06 10:52 Christos Zoulas * Allow @@@ in extensions * Add missing overflow check in der magic (Jonas Wagner) 2016-10-25 10:40 Christos Zoulas * release 5.29 2016-10-24 11:20 Christos Zoulas * der getlength overflow (Jonas Wagner) * multiple magic file load failure (Christoph Biedl) 2016-10-17 11:26 Christos Zoulas * CDF parsing improvements (Guy Helmer) 2016-07-20 7:26 Christos Zoulas * Add support for signed indirect offsets 2016-07-18 7:41 Christos Zoulas * cat /dev/null | file - should print empty (Christoph Biedl) 2016-07-05 15:20 Christos Zoulas * Bump string size from 64 to 96. 2016-06-13 20:20 Christos Zoulas * PR/556: Fix separators on annotations. 2016-06-13 19:40 Christos Zoulas * release 5.28 * fix leak on allocation failure 2016-06-01 1:20 Christos Zoulas * PR/555: Avoid overflow for offset > nbytes * PR/550: Segv on DER parsing: - use the correct variable for length - set offset to 0 on failure. 2016-05-13 12:00 Christos Zoulas * release 5.27 2016-04-18 9:35 Christos Zoulas * Errors comparing DER entries or computing offsets are just indications of malformed non-DER files. Don't print them. * Offset comparison was off-by-one. * Fix compression code (Werner Fink) * Put new bytes constant in the right file (not the generated one) 2016-04-16 18:34 Christos Zoulas * release 5.26 2016-03-31 13:50 Christos Zoulas * make the number of bytes read from files configurable. 2016-03-21 13:40 Christos Zoulas * Add bounds checks for DER code (discovered by Thomas Jarosch) * Change indirect recursion limit to indirect use count and bump from 15 to 50 to prevent abuse. 2016-03-13 20:39 Christos Zoulas * Add -00 which prints filename\0description\0 2016-03-01 13:28 Christos Zoulas * Fix ID3 indirect parsing 2016-01-19 10:18 Christos Zoulas * add DER parsing capability 2015-11-13 10:35 Christos Zoulas * provide dprintf(3) for the OS's that don't have it. 2015-11-11 16:25 Christos Zoulas * redo the compression code report decompression errors 2015-11-10 23:25 Christos Zoulas * REG_STARTEND code is not working as expected, delete it. 2015-11-09 16:05 Christos Zoulas * Add zlib support if we have it. 2015-11-05 11:22 Christos Zoulas * PR/492: compression forking was broken with magic_buffer. 2015-09-16 9:50 Christos Zoulas * release 5.25 2015-09-11 13:25 Christos Zoulas * add a limit to the length of regex searches 2015-09-08 9:50 Christos Zoulas * fix problems with --parameter (Christoph Biedl) 2015-07-11 10:35 Christos Zoulas * Windows fixes PR/466 (Jason Hood) 2015-07-09 10:35 Christos Zoulas * release 5.24 2015-06-11 8:52 Christos Zoulas * redo long option encoding to fix off-by-one in 5.23 2015-06-10 13:50 Christos Zoulas * release 5.23 2015-06-09 16:10 Christos Zoulas * Fix issue with regex range for magic with offset * Always return true from mget with USE (success to mget not match indication). Fixes mime evaluation after USE magic * PR/459: Don't insert magic entries to the list if there are parsing errors for them. 2015-06-03 16:00 Christos Zoulas * PR/455: Add utf-7 encoding 2015-06-03 14:30 Christos Zoulas * PR/455: Implement -Z, look inside, but don't report on compression * PR/454: Fix allocation error on bad magic. 2015-05-29 10:30 Christos Zoulas * handle MAGIC_CONTINUE everywhere, not just in softmagic 2015-05-21 14:30 Christos Zoulas * don't print descriptions for NAME types when mime. 2015-04-09 15:59 Christos Zoulas * Add --extension to list the known extensions for this file type Idea by Andrew J Roazen 2015-02-14 12:23 Christos Zoulas * Bump file search buffer size to 1M. 2015-01-09 14:35 Christos Zoulas * Fix multiple issues with date formats reported by Christoph Biedl: - T_LOCAL meaning was reversed - Arithmetic did not work Also stop adjusting daylight savings for gmt printing. 2015-01-05 13:00 Christos Zoulas * PR/411: Fix memory corruption from corrupt cdf file. 2015-01-02 15:15 Christos Zoulas * release 5.22 2015-01-01 12:01 Christos Zoulas * add indirect relative for TIFF/Exif 2014-12-16 18:10 Christos Zoulas * restructure elf note printing to avoid repeated messages * add note limit, suggested by Alexander Cherepanov 2014-12-16 16:53 Christos Zoulas * Bail out on partial pread()'s (Alexander Cherepanov) * Fix incorrect bounds check in file_printable (Alexander Cherepanov) 2014-12-11 20:01 Christos Zoulas * PR/405: ignore SIGPIPE from uncompress programs * change printable -> file_printable and use it in more places for safety * in ELF, instead of "(uses dynamic libraries)" when PT_INTERP is present print the interpreter name. 2014-12-10 20:01 Christos Zoulas * release 5.21 2014-11-27 18:40 Christos Zoulas * Allow setting more parameters from the command line. * Split name/use and indirect magic recursion limits. 2014-11-27 11:12 Christos Zoulas * Adjust ELF parameters and the default recursion level. * Allow setting the recursion level dynamically. 2014-11-24 8:55 Christos Zoulas * The following fixes resulted from Thomas Jarosch's fuzzing tests that revealed severe performance issues on pathological input: - limit number of elf program and sections processing - abort elf note processing quickly - reduce the number of recursion levels from 20 to 10 - preserve error messages in indirect magic handling This is tracked as CVE-2014-8116 and CVE-2014-8117 2014-11-12 10:30 Christos Zoulas * fix bogus free in the user buffer case. 2014-11-11 12:35 Christos Zoulas * fix out of bounds read for pascal strings * fix memory leak (not freeing the head of each mlist) 2014-11-07 10:25 Christos Zoulas * When printing strings from a file, convert them to printable on a byte by byte basis, so that we don't get issues with locale's trying to interpret random byte streams as UTF-8 and having printf error out with EILSEQ. 2014-10-17 11:48 Christos Zoulas * fix bounds in note reading (Francisco Alonso / Red Hat) 2014-10-11 15:02 Christos Zoulas * fix autoconf glue for setlocale and locale_t; some OS's have locale_t in xlocale.h 2014-10-10 15:01 Christos Zoulas * release 5.20 2014-08-17 10:01 Christos Zoulas * recognize encrypted CDF documents 2014-08-04 9:18 Christos Zoulas * add magic_load_buffers from Brooks Davis 2014-07-24 16:40 Christos Zoulas * add thumbs.db support 2014-06-12 12:28 Christos Zoulas * release 5.19 2014-06-09 9:04 Christos Zoulas * Misc buffer overruns and missing buffer size tests in cdf parsing (Francisco Alonso, Jan Kaluza) 2014-06-02 14:50 Christos Zoulas * Enforce limit of 8K on regex searches that have no limits * Allow the l modifier for regex to mean line count. Default to byte count. If line count is specified, assume a max of 80 characters per line to limit the byte count. * Don't allow conversions to be used for dates, allowing the mask field to be used as an offset. 2014-05-30 12:51 Christos Zoulas * Make the range operator limit the length of the regex search. 2014-05-14 19:23 Christos Zoulas * PR/347: Windows fixes * PR/352: Hangul word processor recognition * PR/354: Encoding irregularities in text files 2014-05-06 6:12 Christos Zoulas * Fix uninitialized title in CDF files (Jan Kaluza) 2014-05-04 14:55 Christos Zoulas * PR/351: Fix compilation of empty files 2014-04-30 17:39 Christos Zoulas * Fix integer formats: We don't specify 'l' or 'h' and 'hh' specifiers anymore, only 'll' for quads and nothing for the rest. This is so that magic writing is simpler. 2014-04-01 15:25 Christos Zoulas * PR/341: Jan Kaluza, fix memory leak * PR/342: Jan Kaluza, fix out of bounds read 2014-03-28 15:25 Christos Zoulas * Fix issue with long formats not matching fmtcheck 2014-03-26 11:25 Christos Zoulas * release 5.18 2014-03-15 17:45 Christos Zoulas * add fmtcheck(3) for those who don't have it 2014-03-14 15:12 Christos Zoulas * prevent mime entries from being attached to magic entries with no descriptions * adjust magic strength for regex type * remove superfluous ascmagic with encoding test 2014-03-06 12:01 Christos Zoulas * fix regression fix echo -ne "\012\013\014" | file -i - which printed "binary" instead of "application/octet-stream" * add size_t overflow check for magic file size 2014-02-27 16:01 Christos Zoulas * experimental support for matching with CFD CLSID 2014-02-18 13:04 Kimmo Suominen (kimmo@suominen.com) * Cache old LC_CTYPE locale before setting it to "C", so we can use it to restore LC_CTYPE instead of asking setlocale() to scan the environment variables. 2014-02-12 18:21 Christos Zoulas * Count recursion levels through indirect magic 2014-02-11 10:40 Christos Zoulas * Prevent infinite recursion on files with indirect offsets of 0 2014-01-30 21:00 Christos Zoulas * Add -E flag that makes file print filesystem errors to stderr and exit. 2014-01-08 17:20 Christos Zoulas * mime printing could print results from multiple magic entries if there were multiple matches. * in some cases overflow was not detected when computing offsets in softmagic. 2013-12-05 12:00 Christos Zoulas * use strcasestr() to for cdf strings * reset to the "C" locale while doing regex operations, or case insensitive comparisons; this is provisional 2013-11-19 20:10 Christos Zoulas * always leave magic file loaded, don't unload for magic_check, etc. * fix default encoding to binary instead of unknown which broke recently * handle empty and one byte files, less specially so that --mime-encoding does not break completely. ` 2013-11-06 14:40 Christos Zoulas * fix erroneous non-zero exit code from non-existent file and message 2013-10-29 14:25 Christos Zoulas * add CDF MSI file detection (Guy Helmer) 2013-09-03 11:56 Christos Zoulas * Don't mix errors and regular output if there was an error * in magic_descriptor() don't close the file and try to restore its position 2013-05-30 17:25 Christos Zoulas * Don't treat magic as an error if offset was past EOF (Christoph Biedl) 2013-05-28 17:25 Christos Zoulas * Fix spacing issues in softmagic and elf (Jan Kaluza) 2013-05-02 18:00 Christos Zoulas * Fix segmentation fault with multiple magic_load commands. 2013-04-22 11:20 Christos Zoulas * The way "default" was implemented was not very useful because the "if something was printed at that level" was not easily controlled by the user, and the format was bound to a string which is too restrictive. Add a "clear" for that level keyword and make "default" void. This way one can do: >>13 clear x >>13 lelong 1 foo >>13 lelong 2 bar >>13 default x >>>13 lelong x unknown %x 2013-03-25 13:20 Christos Zoulas * disallow strength setting in "name" entries 2013-03-06 21:24 Christos Zoulas * fix recursive magic separator printing 2013-02-26 19:28 Christos Zoulas * limit recursion level for mget * fix pread() related breakage in cdf * handle offsets properly in recursive "use" 2013-02-18 10:39 Christos Zoulas * add elf reading of debug info to determine if file is stripped (Jan Kaluza) * use pread() 2013-01-25 18:05 Christos Zoulas * change mime description size from 64 to 80 to accommodate OOXML. 2013-01-11 14:50 Christos Zoulas * Warn about inconsistent continuation levels. * Change fsmagic to add a space after it prints. 2013-01-10 21:00 Christos Zoulas * Make getline public so that file can link against it. Perhaps it is better to rename it, or hide it differently. Fixes builds on platforms that do not provide it. 2013-01-07 16:30 Christos Zoulas * Add SuS d{,1,2,4,8}, u{,1,2,4,8} and document what long, int, short, etc is (Guy Harris) 2013-01-06 11:20 Christos Zoulas * add magic_version function and constant * Redo memory allocation and de-allocation. (prevents double frees on non mmap platforms) * Fix bug with name/use having to do with passing found state from the parent to the child and back. 2012-12-19 8:47 Christos Zoulas * Only print elf capabilities for archs we know (Jan Kaluza) 2012-10-30 19:14 Christos Zoulas * Add "name" and "use" file types in order to look inside mach-o files. 2012-09-06 10:40 Christos Zoulas * make --version exit 0 (Matthew Schultz) * add string/T (Jan Kaluza) 2012-08-09 2:15 Christos Zoulas * add z and t modifiers for our own vasprintf * search for $HOME/.magic.mgc if it is there first * fix reads from a pipe, and preserve errno 2012-05-15 13:12 Christos Zoulas * use ctime_r, asctime_r 2012-04-06 17:18 Christos Zoulas * Fixes for indirect offsets to handle apple disk formats 2012-04-03 18:26 Christos Zoulas * Add windows date field types * More info for windows shortcuts (incomplete) 2012-02-20 17:33 Christos Zoulas * Fix CDF parsing issues found by CERT's fuzzing tool (Will Dormann) 2011-12-15 12:17 Chris Metcalf * Support Tilera architectures (tile64, tilepro, tilegx). 2011-12-16 16:33 Reuben Thomas * Add magic for /usr/bin/env Perl scripts * Weaken generic script magic to avoid clashing with language-specific magic. 2011-12-08 13:37 Reuben Thomas * Simplify if (p) free(p) to free(p). 2011-12-08 13:07 Reuben Thomas * Remove hardwired token finding (names.h), turning it into soft magic. Patterns are either anchored regexs or search/8192. English language detection and PL/1 detection have been removed as they were too fragile. -e tokens is still accepted for backwards compatibility. * Move 3ds patterns (which are commented out anyway) into autodesk (they were, oddly, in c-lang). 2011-12-06 00:16 Reuben Thomas * Tweak strength of generic hash-bang detectors to be less than specific ones. * Make an inconsistent description of Python scripts consistent. 2011-12-05 23:58 Reuben Thomas * Fix minor error in file(1). 2011-11-05 00:00 Reuben Thomas * Fix issue #150 (I hope). 2011-09-22 12:57 Christos Zoulas * Python3 binding fixes from Kelly Anderson 2011-09-20 11:32 Christos Zoulas * If a string type magic entry is marked as text or binary only match text files against text entries and binary files against binary entries. 2011-09-01 12:12 Christos Zoulas * Don't wait for any subprocess, just the one we forked. 2011-08-26 16:40 Christos Zoulas * If the application name is not set in a cdf file, try to see if it has a directory with the application name on it. 2011-08-17 14:32 Christos Zoulas * Fix ELF lseek(2) madness. Inspired by PR/134 by Jan Kaluza 2011-08-14 09:03 Christos Zoulas * Don't use variable string formats. 2011-07-12 12:32 Reuben Thomas * Fix detection of Zip files (Mantis #128). * Make some minor improvements to file(1). * Rename MIME types for filesystem objects for consistency with xdg-utils. Typically this means that application/x-foo becomes inode/foo, but some names also change slightly, e.g. application/x-character-device becomes inode/chardevice. 2011-05-10 20:57 Christos Zoulas * fix mingw compilation (Abradoks) 2011-05-10 20:57 Christos Zoulas * remove patchlevel.h * Fix read past allocated memory caused by double-incrementing a pointer in a loop (reported by Roberto Maar) 2011-03-30 15:45 Christos Zoulas * Fix cdf string buffer setting (Sven Anders) 2011-03-20 16:35 Christos Zoulas * Eliminate MAXPATHLEN and use dynamic allocation for path and file buffers. 2011-03-15 18:15 Christos Zoulas * binary tests on magic entries with masks could spuriously get converted to ascii. 2011-03-12 18:06 Reuben Thomas * Improve file.man (remove BUGS, present email addresses consistently). 2011-03-07 19:38 Christos Zoulas * add lrzip support (from Ville Skytta) 2011-02-10 16:36 Christos Zoulas * fix CDF bounds checking (Guy Helmer) 2011-02-10 12:03 Christos Zoulas * add cdf_ctime() that prints a meaningful error when time cannot be converted. 2011-02-02 20:40 Christos Zoulas * help and version output to stdout. * When matching softmagic for ascii files, don't just print the softmagic classification, keep going and print the text classification too. This fixes broken troff files when we moved them from keyword recognition to softmagic (they stopped printing "with CRLF" etc.) Reported by Doug McIlroy. 2011-01-16 19:31 Reuben Thomas * Fix two potential buffer overruns in apprentice_list. 2011-01-14 22:33 Reuben Thomas * New Python binding in pure Python. * Update libmagic(3). 2011-01-06 21:40 Reuben Thomas * Fix Python bindings (including recent Python 3 compatibility update). 2011-01-04 18:43 Reuben Thomas * magic/Makefile.am: make it easier to recover from magic build failures. * Fix pstring length specifier parsing to avoid generating invalid magic files. * Add pstring length "J" (for "JPEG") to specify that the length include itself. * Fix JPEG comment parsing at last using pstring/HJ! * Ignore section 5 man pages in doc/.cvsignore. 2010-12-22 13:12 Christos Zoulas * Add pstring/BHhLl to specify the type of the length of pascal strings. 2010-11-26 18:39 Reuben Thomas * Fix "-e soft": it was ignored when softmagic was called during asciimagic. * Improve comments and use "unsigned char" in tar.h/is_tar.c. 2010-11-05 17:26 Reuben Thomas * Make bug reporting addresses more visible. 2010-11-01 18:35 Reuben Thomas * Add tcl magic from Gustaf Neumann 2010-10-24 10:42 Christos Zoulas * Fix the whitespace comparing code (Christopher Chittleborough) 2010-10-06 21:05 Christos Zoulas * allow string/t to work (Jan Kaluza) 2010-09-20 22:11 Reuben Thomas * Apply some patches from Ubuntu and Fedora. 2010-09-20 21:16 Reuben Thomas * Apply all patches from Debian package 5.04-6 which have not already been applied and are not Debian-specific. 2010-09-20 15:24 Reuben Thomas * Minor security fix to softmagic.c (don't use untrusted string as printf format). 2010-07-21 12:20 Christos Zoulas * MINGW32 portability from LRN * Don't warn about escaping magic regex chars when we are in a regex. 2010-07-19 10:55 Christos Zoulas * Only try to print prpsinfo for core files. (Jan Kaluza) 2010-04-22 12:55 Christos Zoulas * Try more elf offsets for Debian core files. (Arnaud Giersch) 2010-02-20 15:18 Reuben Thomas * Clarify which sort of CDF we mean. 2010-02-14 22:58 Reuben Thomas * Re-jig Zip file type magic so that unsupported special Zip types (those with "mimetype" at offset 30) can be recognized. 2010-02-02 21:50 Reuben Thomas * Add support for OCF (EPUB) files (application/epub+zip) 2010-01-28 18:25 Christos Zoulas * Fix core-dump from unbound loop: https://bugzilla.redhat.com/show_bug.cgi?id=533245 2010-01-22 15:45 Christos Zoulas * print proper mime for crystal reports file * print the last summary information of a cdf document, not the first so that nested documents print the right info 2010-01-16 18:42 Charles Longeau * bring back some fixes from OpenBSD: - make gcc2 builds file - fix typos in a magic file comment 2009-11-17 18:35 Christos Zoulas * ctime/asctime can return NULL on some OS's although they should not (Toshit Antani) 2009-09-14 13:49 Christos Zoulas * Centralize magic path handling routines and remove the special-casing from file.c so that the python module for example comes up with the same magic path (Fixes ~/.magic handling) (from Gab) 2009-09-11 23:38 Reuben Thomas * When magic argument is a directory, read the files in strcmp-sorted order (fixes Debian bug #488562 and our own FIXME). 2009-09-11 13:11 Reuben Thomas * Combine overlapping epoc and psion magic files into one (epoc). * Add some more EPOC MIME types. 2009-08-19 15:55 Christos Zoulas * Fix 3 bugs (From Ian Darwin): - file_showstr could move one past the end of the array - parse_apple did not nul terminate the string in the overflow case - parse_mime truncated the wrong string in the overflow case 2009-08-12 12:28 Robert Byrnes * Include Localstuff when compiling magic. 2009-07-15 10:05 Christos Zoulas * Fix logic for including mygetopts.h * Make cdf.c compile again with debugging * Add the necessary field handling for crystal reports files to work 2009-06-23 01:34 Reuben Thomas * Stop "(if" identifying Lisp files, that's plain dumb! 2009-06-09 22:13 Reuben Thomas * Add a couple of missing MP3 MIME types. 2009-05-27 23:00 Reuben Thomas * Add full range of hash-bang tests for Python and Ruby. * Add MIME types for Python and Ruby scripts. 2009-05-13 10:44 Christos Zoulas * off by one in parsing hw capabilities in elf (Cheng Renquan) 2009-05-08 13:40 Christos Zoulas * lint fixes and more from NetBSD 2009-05-06 10:25 Christos Zoulas * Avoid null dereference in cdf code (Drew Yao) * More cdf bounds checks and overflow checks 2009-05-01 18:37 Christos Zoulas * Buffer overflow fixes from Drew Yao 2009-04-30 17:10 Christos Zoulas * Fix more cdf lossage. All the documents I have right now print the correct information. 2009-03-27 18:43 Christos Zoulas * don't print \012- separators in the same magic entry if it consists of multiple magic printing lines. 2009-03-23 10:20 Christos Zoulas * Avoid file descriptor leak in compress code from (Daniel Novotny) 2009-03-18 16:50 Christos Zoulas * Allow escaping of relation characters, so that we can say \^[A-Z] and the ^ is not eaten as a relation char. * Fix troff and fortran to their previous glory using regex. This was broken since their removel from ascmagic. 2009-03-10 16:50 Christos Zoulas * don't use strlen in strndup() (Toby Peterson) 2009-03-10 7:45 Christos Zoulas * avoid c99 syntax. 2009-02-23 15:45 Christos Zoulas * make the cdf code use the buffer first if available, and then the fd code. 2009-02-13 13:45 Christos Zoulas * look for struct option to determine if getopt.h is usable for IRIX. * sanitize cdf document strings 2009-02-04 13:25 Christos Zoulas * fix OS/2 warnings. 2008-12-12 15:50 Christos Zoulas * fix initial offset calculation for non 4K sector files * add loop limits to avoid DoS attacks by constructing looping sector references. 2008-12-03 13:05 Christos Zoulas * fix memory botches on cdf file parsing. * exit with non-zero value for any error, not just for the last file processed. 2008-11-09 20:42 Charles Longeau * Replace all str{cpy,cat} functions with strl{cpy,cat} * Ensure that strl{cpy,cat} are included in libmagic, as needed. 2008-11-06 18:18 Christos Zoulas * Handle ID3 format files. 2008-11-06 23:00 Reuben Thomas * Fix --mime, --mime-type and --mime-encoding under new scheme. * Rename "ascii" to "text" and add "encoding" test. * Return a precise ("utf-16le" or "utf-16be") MIME charset for UTF-16. * Fix error in comment caused by automatic indentation adding words! 2008-11-06 10:35 Christos Zoulas * use memchr instead of strchr because the string might not be NUL terminated (Scott MacVicar) 2008-11-03 07:31 Reuben Thomas * Fix a printf with a non-literal format string. * Fix formatting and punctuation of help for "--apple". 2008-10-30 11:00 Reuben Thomas * Correct words counts in comments of struct magic. * Fix handle_annotation to allow both Apple and MIME types to be printed, and to return correct code if MIME type is printed (1, not 0) or if there's an error (-1 not 1). * Fix output of charset for MIME type (precede with semi-colon; fixes Debian bug #501460). * Fix potential attacks via conversion specifications in magic strings. * Add a FIXME for Debian bug #488562 (magic files should be read in a defined order, by sorting the names). 2008-10-18 16:45 Christos Zoulas * Added APPLE file creator/type 2008-10-12 10:20 Christos Zoulas * Added CDF parsing 2008-10-09 16:40 Christos Zoulas * filesystem and msdos patches (Joerg Jenderek) 2008-10-09 13:20 Christos Zoulas * correct --exclude documentation issues: remove troff and fortran and rename "token" to "tokens". (Randy McMurchy) 2008-10-01 10:30 Christos Zoulas * Read ~/.magic in addition to the default magic file not instead of, as documented in the man page. 2008-09-10 21:30 Reuben Thomas * Comment out graphviz patterns, as they match too many files. 2008-08-30 12:54 Christos Zoulas * Don't eat trailing \n in magic enties. * Cast defines to allow compilation using a c++ compiler. 2008-08-25 23:56 Reuben Thomas * Add text/x-lua MIME type for Lua scripts. * Escape { in regex in graphviz patterns. 2008-07-26 00:59 Reuben Thomas * Add MIME types for special files. * Use access to give more accurate information for files that can't be opened. * Add a TODO list. 2008-07-02 11:15 Christos Zoulas * add !:strength op to adjust magic strength (experimental) 2008-06-16 21:41 Reuben Thomas * Fix automake error in configure.ac. * Add MIME type for Psion Sketch files. 2008-06-05 08:59 Christos Zoulas * Don't print warnings about bad namesize in stripped binaries with PT_NOTE is still there, and the actual note is gone (Jakub Jelinek) 2008-05-28 15:12 Robert Byrnes * magic/Magdir/elf: Note invalid byte order for little-endian SPARC32PLUS. Add SPARC V9 vendor extensions and memory model. * src/elfclass.h: Pass target machine to doshn (for Solaris hardware capabilities). * src/readelf.c (doshn): Add support for Solaris hardware/software capabilities. * src/readelf.h: Ditto. * src/vasprintf.c (dispatch): Add support for ll modifier. 2008-05-16 10:25 Christos Zoulas * Fix compiler warnings. * remove stray printf, and fix a vprintf bug. (Martin Dorey) 2008-05-06 00:13 Robert Byrnes * src/Makefile.am: Ensure that getopt_long and [v]asprintf are included in libmagic, as needed. Remove unnecessary EXTRA_DIST. * src/Makefile.in: Rerun automake. * src/vasprintf.c (dispatch): Fix variable precision bug: be sure to step past '*'. * src/vasprintf.c (core): Remove unreachable code. * src/apprentice.c (set_test_type): Add cast to avoid compiler warning. 2008-04-22 23:45 Christos Zoulas * Add magic submission guidelines (Abel Cheung) * split msdos and windows magic (Abel Cheung) 2008-04-04 11:00 Christos Zoulas * >= <= is not supported, so fix the magic and warn about it. reported by: Thien-Thi Nguyen 2008-03-27 16:16 Robert Byrnes * src/readelf.c (donote): ELF core file command name/line bug fixes and enhancements: Try larger offsets first to avoid false matches from earlier data that happen to look like strings; this primarily affected SunOS 5.x 32-bit Intel core files. Add support for command line (instead of just short name) for SunOS 5.x. Add information about NT_PSINFO for SunOS 5.x. Only trim whitespace from end of command line. 2007-02-11 01:36 Reuben Thomas * Change strength of ! from MULT to 0, as it matches almost anything (Reuben Thomas) * Debian fixes (Reuben Thomas) 2007-02-11 00:17 Reuben Thomas * Clarify UTF-8 BOM message (Reuben Thomas) * Add HTML comment to token list in names.h 2007-02-04 15:50 Christos Zoulas * Debian fixes (Reuben Thomas) 2007-02-04 11:31 Christos Zoulas * !:mime annotations in magic files (Reuben Thomas) 2007-01-29 15:35 Christos Zoulas * zero out utime/utimes structs (Gavin Atkinson) 2007-01-26 13:45 Christos Zoulas * reduce writable data from Diego "Flameeyes" Petten 2007-12-28 15:06 Christos Zoulas * strtof detection * remove bogus regex magic that could cause a DoS * better mismatch version message 2007-12-27 11:35 Christos Zoulas * bring back some fixes from OpenBSD * treat ELF dynamic objects as executables * fix gcc warnings 2007-12-01 19:55 Christos Zoulas * make sure we have zlib.h and libz to compile the builtin decompress code 2007-10-28 20:48 Christos Zoulas * float and double magic support (Behan Webster) 2007-10-28 20:48 Christos Zoulas * Convert fortran to a soft test (Reuben Thomas) 2007-10-23 5:25 Christos Zoulas * Add --with-filename, and --no-filename (Reuben Thomas) 2007-10-23 3:59 Christos Zoulas * Rest of the mime split (Reuben Thomas) * Make usage message generated from the flags so that they stay consistent (Reuben Thomas) 2007-10-20 3:06 Christos Zoulas * typo in comment, missing ifdef QUICK, remove unneeded code (Charles Longeau) 2007-10-17 3:33 Christos Zoulas * Fix problem printing -\012 in some entries * Separate magic type and encoding flags (Reuben Thomas) 2007-10-09 3:55 Christos Zoulas * configure fix for int64 and strndup (Reuben Thomas) 2007-09-26 4:45 Christos Zoulas * Add magic_descriptor() function. * Fix regression in elf reading code where the core name was not being printed. * Don't convert NUL's to spaces in {l,b}estring16 (Daniel Dawson) 2007-08-19 6:30 Christos Zoulas * Make mime format consistent so that it can be easily parsed: mimetype [charset=character-set] [encoding=encoding-mime-type] Remove spurious extra text from some MIME type printouts (mostly in is_tar). Fix one case where -i produced nothing at all (for a 1-byte file, which is now classed as application/octet-stream). Remove 7/8bit classifications, since they were arbitrary and not based on the file data. This work was done by Reuben Thomas 2007-05-24 10:00 Christos Zoulas * Fix another integer overflow (Colin Percival) 2007-03-26 13:58 Christos Zoulas * make sure that all of struct magic_set is initialized appropriately (Brett) 2007-03-25 17:44 Christos Zoulas * reset left bytes in the buffer (Dmitry V. Levin) * compilation failed with COMPILE_ONLY and ENABLE_CONDITIONALS (Peter Avalos) 2007-03-15 10:51 Christos Zoulas * fix fortran and nroff reversed tests (Dmitry V. Levin) * fix exclude option (Dmitry V. Levin) 2007-02-08 17:30 Christos Zoulas * fix integer underflow in file_printf which can lead to to exploitable heap overflow (Jean-Sebastien Guay-Lero) 2007-02-05 11:35 Christos Zoulas * make socket/pipe reading more robust 2007-01-25 16:01 Christos Zoulas * Centralize all the tests in file_buffer. * Add exclude flag. 2007-01-18 05:29 Anon Ymous * Move the "type" detection code from parse() into its own table driven routine. This avoids maintaining multiple lists in file.h. * Add an optional conditional field (ust before the type field). This code is wrapped in "#ifdef ENABLE_CONDITIONALS" as it is likely to go away. 2007-01-16 23:24 Anon Ymous * Fix an initialization bug in check_mem(). 2007-01-16 14:58 Anon Ymous * Add a "default" type to print a message if nothing previously matched at that level or since the last default at that level. This is useful for setting up switch-like statements. It can also be used to do if/else constructions without a redundant second test. * Fix the "x" special case test so that one can test for that string with "=x". * Allow "search" to search the entire buffer if the "/N" search count is missing. * Make "regex" work! It now starts its search at the specified offset and takes an (optional) "/N" line count to specify the search range; otherwise it searches to the end of the file. The match is now grabbed correctly for format strings and the offset set to the end of the match. * Add a "/s" flag to "regex" and "search" to set the offset to the start of the match. By default the offset is set to the end of the match, as it is with other tests. This is mostly useful for "regex". * Make "search", "string" and "pstring" use the same file_strncmp() routine so that they support the same flags; "bestring16" and "lestring16" call the same routine, but with flags = 0. Also add a "/C" flag (in analogy to "/c") to ignore the case on uppercase (lowercase) characters in the test string. * Strict adherence to C style string escapes. A warnings are printed when compiling. Note: previously "\a" was incorrectly translated to 'a' instead of an (i.e., BELL, typically 0x07). * Make this compile with "-Wall -Wextra" and all the warning flags used with WARNS=4 in the NetBSD source. Also make it pass lint. * Many "cleanups" and hopefully not too many new bugs! 2007-01-16 14:56 Anon Ymous * make several more files compile with gcc warnings on and also make them pass lint. 2007-01-16 14:54 Anon Ymous * fix a puts()/putc() usage goof in file.c * make file.c compile with gcc warnings and pass lint 2006-12-11 16:49 Christos Zoulas * fix byteswapping issue * report the number of bytes we tried to allocate when allocation fails * add a few missed cases in the strength routine 2006-12-08 16:32 Christos Zoulas * store and print the line number of the magic entry for debugging. * if the magic entry did not print anything, don't treat it as a match * change the magic strength algorithm to take into account the relationship op. * fix a bug in search where we could accidentally return a match. * propagate the error return from match to file_softmagic. 2006-11-25 13:35 Christos Zoulas * Don't store the current offset in the magic struct, because it needs to be restored and it was not done properly all the time. Bug found by: Arkadiusz Miskiewicz * Fix problem in the '\0' separator; and don't print it as an additional separator; print it as the only separator. 2006-11-17 10:51 Christos Zoulas * Added a -0 option to print a '\0' separator Etienne Buira 2006-10-31 15:14 Christos Zoulas * Check offset before copying (Mike Frysinger) * merge duplicated code * add quad date support * make sure that we nul terminate desc (Ryoji Kanai) * don't process elf notes multiple times * allow -z to report empty compressed files * use calloc to initialize the ascii buffers (Jos van den Oever) 2006-06-08 11:11 Christos Zoulas * QNX fixes (Mike Gorchak) * Add quad support. * FIFO checks (Dr. Werner Fink) * Linux ELF fixes (Dr. Werner Fink) * Magic format checks (Dr. Werner Fink) * Magic format function improvent (Karl Chen) 2006-05-03 11:11 Christos Zoulas * Pick up some elf changes and some constant fixes from SUSE * Identify gnu tar vs. posix tar * When keep going, don't print spurious newlines (Radek Vokal) 2006-04-01 12:02 Christos Zoulas * Use calloc instead of malloc (Mike Frysinger) * Fix configure script to detect wctypes.h (Mike Frysinger) 2006-03-02 16:06 Christos Zoulas * Print empty if the file is (Mike Frysinger) * Don't try to read past the end of the buffer (Mike Frysinger) * Sort magic entries by strength [experimental] 2005-11-29 13:26 Christos Zoulas * Use iswprint() to convert the output string. (Bastien Nocera) 2005-10-31 8:54 Christos Zoulas * Fix regression where the core info was not completely processed (Radek Vokal) 2005-10-20 11:15 Christos Zoulas * Middle Endian magic (Diomidis Spinellis) 2005-10-17 11:15 Christos Zoulas * Open with O_BINARY for CYGWIN (Corinna Vinschen) * Don't close stdin (Arkadiusz Miskiewicz) * Look for note sections in non executables. 2005-09-20 13:33 Christos Zoulas * Don't print SVR4 Style in core files multiple times (Radek Vokal) 2005-08-27 04:09 Christos Zoulas * Cygwin changes Corinna Vinschen 2005-08-18 09:53 Christos Zoulas * Remove erroreous mention of /etc/magic in the file man page This is gentoo bug 101639. (Mike Frysinger) * Cross-compile support and detection (Mike Frysinger) 2005-08-12 10:17 Christos Zoulas * Add -h flag and dereference symlinks if POSIXLY_CORRECT is set. 2005-07-29 13:57 Christos Zoulas * Avoid search and regex buffer overflows (Kelledin) 2005-07-12 11:48 Christos Zoulas * Provide stub implementations for {v,}nsprintf() for older OS's that don't have them. * Change mbstate_t autoconf detection macro from AC_MBSTATE_T to AC_TYPE_MBSTATE_T. 2005-06-25 11:48 Christos Zoulas * Dynamically allocate the string buffers and make the default read size 256K. 2005-06-01 00:00 Joerg Sonnenberger * Dragonfly ELF note support 2005-03-14 00:00 Giuliano Bertoletti * Avoid NULL pointer dereference in time conversion. 2005-03-06 00:00 Joerg Walter * Add indirect magic offset support, and search mode. 2005-01-12 00:00 Stepan Kasal * src/ascmagic.c (file_ascmagic): Fix three bugs about text files: If a CRLF text file happens to have CR at offset HOWMANY - 1 (currently 0xffff), it should not be counted as CR line terminator. If a line has length exactly MAXLINELEN, it should not yet be treated as a ``very long line'', as MAXLINELEN is ``longest sane line length''. With CRLF, the line length was not computed correctly, and even lines of length MAXLINELEN - 1 were treated as ``very long''. 2004-12-07 14:15 Christos Zoulas * bzip2 needs a lot of input buffer space on some files before it can begin uncompressing. This makes file -z fail on some bz2 files. Fix it by giving it a copy of the file descriptor to read as much as it wants if we have access to it. 2004-11-24 12:39 Christos Zoulas * Stack smash fix, and ELF more conservative reading. Jakub Bogusz 2004-11-20 18:50 Christos Zoulas * New FreeBSD version parsing code: Jon Noack * Hackish support for ucs16 strings 2004-11-13 03:07 Christos Zoulas * print the file name and line number in syntax errors. 2004 10-12 10:50 Christos Zoulas * Fix stack overwriting on 0 length strings: Tim Waugh Ned Ludd 2004-09-27 11:30 Christos Zoulas * Remove 3rd and 4th copyright clause; approved by Ian Darwin. * Fix small memory leaks; caught by: Tamas Sarlos 2004-07-24 16:33 Christos Zoulas * magic.mime update Danny Milosavljevic * FreeBSD version update Oliver Eikemeier * utime/utimes detection Ian Lance Taylor * errors reading elf magic Jakub Bogusz 2004-04-12 10:55 Christos Zoulas * make sure that magic formats match magic types during compilation * fix broken sgi magic file 2004-04-06 20:36 Christos Zoulas * detect present of mbstate_t Petter Reinholdtsen * magic fixes 2004-03-22 15:25 Christos Zoulas * Lots of mime fixes (Joerg Ostertag) * FreeBSD ELF version handling (Edwin Groothuis) * correct cleanup in all cases; don't just close the file. (Christos Zoulas) * add gettext message catalogue support (Michael Piefel) * better printout for unreadable files (Michael Piefel) * compensate for missing MAXPATHLEN (Michael Piefel) * add wide character string length computation (Michael Piefel) * Avoid infinite loops caused by bad elf alignments or name and description note sizes. Reported by (Mikael Magnusson) 2004-03-09 13:55 Christos Zoulas * Fix possible memory leak on error and add missing regfree (Dmitry V. Levin) 2003-12-23 12:12 Christos Zoulas * fix -k flag (Maciej W. Rozycki) 2003-11-18 14:10 Christos Zoulas * Try to give us much info as possible on corrupt elf files. (Willy Tarreau) * Updated python bindings (Brett Funderburg) 2003-11-11 15:03 Christos Zoulas * Include file.h first, because it includes config.h breaks largefile test macros otherwise. (Paul Eggert via Lars Hecking ) 2003-10-14 21:39 Christos Zoulas * Python bindings (Brett Funderburg) * Don't lookup past the end of the buffer (Chad Hanson) * Add MAGIC_ERROR and api on magic_errno() 2003-10-08 12:40 Christos Zoulas * handle error conditions from compile as fatal (Antti Kantee) * handle magic filename parsing sanely * more magic fixes. * fix a memory leak (Illes Marton) * describe magic file handling (Bryan Henderson) 2003-09-12 15:09 Christos Zoulas * update magic files. * remove largefile support from file.h; it breaks things on most OS's 2003-08-10 10:25 Christos Zoulas * fix unmapping'ing of mmaped files. 2003-07-10 12:03 Christos Zoulas * don't exit with -1 on error; always exit 1 (Marty Leisner) * restore utimes code. 2003-06-10 17:03 Christos Zoulas * make sure we don't access uninitialized memory. * pass lint * #ifdef __cplusplus in magic.h 2003-05-25 19:23 Christos Zoulas * rename cvs magic file to revision to deal with case insensitive filesystems. 2003-05-23 17:03 Christos Zoulas * documentation fixes from Michael Piefel * magic fixes (various) * revert basename magic in .mgc name determination * buffer protection in uncompress, signness issues, close files Maciej W. Rozycki * fix zsh magic 2003-04-04 16:59 Christos Zoulas * fix operand sort order in string. 2003-04-02 17:30 Christos Zoulas * cleanup namespace in magic.h 2003-04-02 13:50 Christos Zoulas * Magic additions (Alex Ott) * Fix bug that broke VPATH compilation (Peter Breitenlohner) 2003-03-28 16:03 Christos Zoulas * remove packed attribute from magic struct. * make the magic struct properly aligned. * bump version number of compiled files to 2. 2003-03-27 13:10 Christos Zoulas * separate tar detection and run it before softmagic. * fix reversed symlink test. * fix version printing. * make separator a string instead of a char. * update manual page and sort options. 2003-03-26 11:00 Christos Zoulas * Pass lint * make NULL in magic_file mean stdin * Fix "-" argument to file to pass NULL to magic_file * avoid pointer casts by using memcpy * rename magic_buf -> magic_buffer * keep only the first error * manual page: new sentence, new line * fix typo in api function (magic_buf -> magic_buffer) usr/share/doc/xml-common/ChangeLog000064400000001077152526322340013075 0ustar002001-05-25 Eric Bischoff * added XML ISO entities * switched to version 0.6.3 2001-04-27 Eric Bischoff * "-a" flag for automake is cleaner (thanks Mark) * switched to version 0.6.2 2001-01-30 Eric Bischoff * fixed autoconf/automake support * switched to version 0.6.1 2001-01-12 Eric Bischoff * added autoconf/automake support * install-catalog.in: added backward compatibility with old DocBook-tools' install-catalog (thanks Tim Waugh from RedHat) * switched to version 0.6 usr/share/doc/libXdamage/ChangeLog000064400000040144152526335140013044 0ustar00commit 0c7f26ab7fb41873c2e68d8b136ef098ed663aff Author: Alan Coopersmith Date: Wed Jan 2 21:45:11 2013 -0800 libXdamage 1.1.4 Signed-off-by: Alan Coopersmith commit 665c80d7af5fc7a73b76e0ddaee3536b37b029e9 Author: Alan Coopersmith Date: Fri Sep 16 22:16:01 2011 -0700 Strip trailing whitespace Performed with: find * -type f | xargs perl -i -p -e 's{[ \t]+$}{}' git diff -w & git diff -b show no diffs from this change Signed-off-by: Alan Coopersmith commit 45e9544d8202b76e20923f4d84667879a3d185ec Author: Gaetan Nadon Date: Wed Feb 2 11:43:41 2011 -0500 config: comment, minor upgrade, quote and layout configure.ac Group statements per section as per Autoconf standard layout Quote statements where appropriate. Autoconf recommends not using dnl instead of # for comments Use AC_CONFIG_FILES to replace the deprecated AC_OUTPUT with parameters. Add AC_CONFIG_SRCDIR([Makefile.am]) Remove redundant AC_SUBST(*_CFLAGS) and/or *_LIBS Update minimum version of util-macros to at least 1.8. No functional configuration changes This helps automated maintenance and release activities. Details can be found in http://wiki.x.org/wiki/NewModuleGuidelines commit 8de52f71322015a5d2bd9cef58f46b80052562a9 Author: Gaetan Nadon Date: Fri Jan 28 19:41:37 2011 -0500 config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS Signed-off-by: Gaetan Nadon commit b628ca236ee8d26358ea5075a89e6cc7d3497dbd Author: Gaetan Nadon Date: Thu Jan 27 18:50:14 2011 -0500 config: remove AC_PROG_CC as it overrides AC_PROG_C_C99 XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls AC_PROG_C_C99. This sets gcc with -std=gnu99. If AC_PROG_CC macro is called afterwards, it resets CC to gcc. Signed-off-by: Gaetan Nadon commit a08053121ff1115689b3e5e5322e8b8aaa7cb5fc Author: Fernando Carrijo Date: Thu Jul 1 06:53:31 2010 -0300 Purge macros NEED_EVENTS and NEED_REPLIES Signed-off-by: Fernando Carrijo Acked-by: Tiago Vignatti Reviewed-by: Alan Coopersmith commit 8abc1c8e920821f5ed68e639d3fb71a4ad90a102 Author: Alan Coopersmith Date: Tue Jun 8 18:50:45 2010 -0700 libXdamage 1.1.3 Signed-off-by: Alan Coopersmith commit 0b0b68a2a06f01ad3e185aafb2e9665779bc0084 Author: Matthieu Herrb Date: Sun Mar 9 07:56:45 2008 +0100 nuke RCS Ids Signed-off-by: Matthieu Herrb Reviewed by: Alan Coopersmith commit 5a77a5e402ab245f2de08886e5fb2934a6c54571 Author: Jamey Sharp Date: Fri Apr 9 17:26:07 2010 -0700 Always call SyncHandle after issuing an X request. commit a414d85a9da3f5b23975a64c351ad00138092107 Author: Gaetan Nadon Date: Mon Mar 29 16:50:34 2010 -0400 config: update AC_PREREQ statement to 2.60 Unrelated to the previous patches, the new value simply reflects the reality that the minimum level for autoconf to configure all x.org modules is 2.60 dated June 2006. ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz Signed-off-by: Gaetan Nadon commit f8914c5dba4c6514b83c7d8f5c550a2603e4da66 Author: Gaetan Nadon Date: Mon Mar 29 14:53:48 2010 -0400 config: remove the pkgconfig pc.in file from EXTRA_DIST Automake always includes it in the tarball. Signed-off-by: Gaetan Nadon commit 5dd2b14345ba9b8b88d11dc027dc71625fbf15bc Author: Gaetan Nadon Date: Fri Nov 27 20:56:04 2009 -0500 Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES Now that the INSTALL file is generated. Allows running make maintainer-clean. commit 98333e9afea1c5dfb0f4b90c10f25e6b77e72817 Author: Gaetan Nadon Date: Wed Oct 28 14:09:10 2009 -0400 INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206 Add missing INSTALL file. Use standard GNU file on building tarball README may have been updated Remove AUTHORS file as it is empty and no content available yet. Remove NEWS file as it is empty and no content available yet. commit 62d595bc01c0219254560b72978faa3327959eee Author: Gaetan Nadon Date: Tue Oct 27 15:07:25 2009 -0400 Deploy the new XORG_DEFAULT_OPTIONS #24242 This macro aggregate a number of existing macros that sets commmon X.Org components configuration options. It shields the configuration file from future changes. commit 6852db03b187cfce5a41cc8addbc734091e6b725 Author: Gaetan Nadon Date: Mon Oct 26 22:08:42 2009 -0400 Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432 ChangeLog filename is known to Automake and requires no further coding in the makefile. commit ef9fad1a1f327c1f19009d4206c67762ef0d436a Author: Gaetan Nadon Date: Thu Oct 22 13:10:20 2009 -0400 .gitignore: use common defaults with custom section # 24239 Using common defaults will reduce errors and maintenance. Only the very small or inexistent custom section need periodic maintenance when the structure of the component changes. Do not edit defaults. commit d9ff5ede9989b0312416fd68fc3dd866c551aad9 Author: Gaetan Nadon Date: Thu Oct 22 12:34:19 2009 -0400 .gitignore: use common defaults with custom section # 24239 Using common defaults will reduce errors and maintenance. Only the very small or inexistent custom section need periodic maintenance when the structure of the component changes. Do not edit defaults. commit 8a02e2cfe8cfcaa791b81b47e44304f326a0dcb8 Author: Jeremy Huddleston Date: Wed Oct 21 12:47:24 2009 -0700 This is not a GNU project, so declare it foreign. On Wed, 2009-10-21 at 13:36 +1000, Peter Hutterer wrote: > On Tue, Oct 20, 2009 at 08:23:55PM -0700, Jeremy Huddleston wrote: > > I noticed an INSTALL file in xlsclients and libXvMC today, and it > > was quite annoying to work around since 'autoreconf -fvi' replaces > > it and git wants to commit it. Should these files even be in git? > > Can I nuke them for the betterment of humanity and since they get > > created by autoreconf anyways? > > See https://bugs.freedesktop.org/show_bug.cgi?id=24206 As an interim measure, replace AM_INIT_AUTOMAKE([dist-bzip2]) with AM_INIT_AUTOMAKE([foreign dist-bzip2]). This will prevent the generation of the INSTALL file. It is also part of the 24206 solution. Signed-off-by: Jeremy Huddleston commit 728ae9bda2e536897b630b149df522fa6286a1c5 Author: Alan Coopersmith Date: Tue Oct 6 11:24:50 2009 -0700 libXdamage 1.1.2 Signed-off-by: Alan Coopersmith commit 229ebbc4acd3de3a4a118f53db013629691b6ce9 Author: Alan Coopersmith Date: Tue Oct 6 11:18:39 2009 -0700 Migrate to xorg macros 1.3 & XORG_DEFAULT_OPTIONS Signed-off-by: Alan Coopersmith commit eed319fd48299e49b2f6ae9ff452a5d6c64ea192 Author: Peter Hutterer Date: Thu Sep 3 15:50:23 2009 +1000 Require pkg-config to find the packages, no funky x11 lookups. Signed-off-by: Peter Hutterer Acked-by: Daniel Stone commit c3f08b7b0a0b1dd42dd00efe07ebc07f7085b433 Author: Peter Hutterer Date: Thu Sep 3 15:50:18 2009 +1000 Fix a comment in configure.ac, this is libXdamage, not libXfixes Signed-off-by: Peter Hutterer commit 02a61d40687f4ee358e2f7903ce0ceacf273e254 Author: Alan Coopersmith Date: Mon Feb 2 20:34:32 2009 -0800 Add README with pointers to mailing list, bugzilla & git repos Signed-off-by: Alan Coopersmith commit 0a48e5c663bf2ec3f6870bf9e9cfa90dfddd6fe6 Author: Paulo Cesar Pereira de Andrade Date: Thu Jan 29 15:41:23 2009 -0200 Janitor: Correct make distcheck and compiler warnings. commit 0ca7d78aeb8035ef52c1415170e1257493d789fd Author: Peter Hutterer Date: Mon May 19 17:24:04 2008 +0930 Change parameter names for QueryVersion/QueryExtension. Simply to clarify the inner workings of the lib and that these parameters are treated as return values only. X.Org Bug 14511 commit 87ebfbc56abe16de6f84f559728a40f63d44006a Author: James Cloos Date: Thu Dec 6 16:38:26 2007 -0500 Replace static ChangeLog with dist-hook to generate from git log commit d9714f03dde2d2b20fb29d46b44bb253e4954ee0 Author: Ryan Lortie Date: Fri Sep 7 22:02:18 2007 -0700 libXdamage incorrectly encodes/decodes the 'More' field from the event. The client library for xdamage currently fails to fill in the 'more' field. As a result, you get whatever uninitialised junk was there before. The server sets the high bit of 'level' when there is 'more' (DamageNotifyMore = 0x80). A patch follows to fix the client library. commit 7548981a458b091b29d74207884669214f63ee9f Author: James Cloos Date: Mon Sep 3 05:53:36 2007 -0400 Add *~ to .gitignore to skip patch/emacs droppings commit b96e17d8a4fe8e19515c0f183e5e299939c6eca0 Author: Adam Jackson Date: Mon Mar 5 16:51:06 2007 -0500 Fix DSO version number to match protocol number. Also increment package version number to 1.1.1 for eventual release. commit 0b69465a3b118f3fe1c9b0c206996d510ccbec36 Author: Eric Anholt Date: Tue Jan 9 16:21:13 2007 -0800 Track rename of DamagePost to DamageAdd. commit 0d7f8e4f151480ee1415bd5a13799ad6385a8df3 Author: Eric Anholt Date: Mon Jan 8 15:02:42 2007 -0800 More doc/copyright updates for Damage 1.1 update. commit 716d84889f90880c634136e9c1e754edd587ea9e Author: Eric Anholt Date: Fri Jan 5 17:56:58 2007 -0800 Add a request to report a region of damage against a drawable. This brings the library up to supporting version 1.1 of the protocol. Bump package version accordingly. commit c3c2777a7805c95f7d7bf64998e188d0eba65cba Author: Daniel Stone Date: Wed Nov 8 16:10:20 2006 +0200 bump to 1.0.4 commit 31829be123a9ce58bf8e0c4718815b7b63d0d512 Author: Josh Triplett Date: Mon Oct 16 02:58:24 2006 -0700 Remove incorrect UnlockDisplay and SyncHandle from XDamageQueryVersion XDamageQueryVersion calls UnlockDisplay and SyncHandle, without a matching LockDisplay. This triggers an assertion in Xlib/XCB designed to catch these kinds of bugs. Remove the two calls, which fixes the assertion. Thanks to Mike Auty for the report. commit 62ffc46be52244b252dfab643bdfa1aa862820f0 Author: Alan Coopersmith Date: Thu Jul 13 14:58:51 2006 -0700 renamed: .cvsignore -> .gitignore commit 7558d929f538ef7c87aeb88a47856f94282ab2a9 Author: Adam Jackson Date: Thu Apr 27 00:05:40 2006 +0000 Bump to 1.0.3 commit e05bfca0a4377cfd137249f7df8c95706372c140 Author: Adam Jackson Date: Mon Apr 3 01:00:11 2006 +0000 Coverity #574: Plug a leak on the error path. commit 660305b57b0af382dd111d8a9d0a38f663efdf25 Author: Kevin E Martin Date: Thu Dec 15 00:24:29 2005 +0000 Update package version number for final X11R7 release candidate. commit 75bb1e7a7f32d2bf8e3e80ae370adc0c69585698 Author: Kevin E Martin Date: Sat Dec 3 05:49:43 2005 +0000 Update package version number for X11R7 RC3 release. commit 5805e223e70e84d07f9203ae30effcbbc40746a6 Author: Kevin E Martin Date: Sat Nov 19 07:15:41 2005 +0000 Update pkgconfig files to separate library build-time dependencies from application build-time dependencies, and update package deps to work with separate build roots. commit 48527807411901e1d6806a2c9e8a84e1fa684042 Author: Kevin E Martin Date: Wed Nov 9 21:19:12 2005 +0000 Update package version number for X11R7 RC2 release. commit 077ce8402a1f8413efdede402cb6f89b9ff797dd Author: Kevin E Martin Date: Tue Nov 1 15:11:51 2005 +0000 Update pkgcheck dependencies to work with separate build roots. commit c6a8324c38acc33357e6dcf927f482db22383ab2 Author: Kevin E Martin Date: Fri Jul 29 21:22:51 2005 +0000 Various changes preparing packages for RC0: - Verify and update package version numbers as needed - Implement versioning scheme - Change bug address to point to bugzilla bug entry form - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to reenable it) - Fix makedepend to use pkgconfig and pass distcheck - Update build script to build macros first - Update modular Xorg version commit b02c66e05a173fd20c7b42f4fccf5bcd069f5931 Author: Daniel Stone Date: Sat Jul 16 06:37:24 2005 +0000 Set soversion to 1.0.0 using -version-number. commit 4011ede413408c9a5577617dbcd1124a3ee8dce5 Author: Adam Jackson Date: Thu Jul 14 06:28:45 2005 +0000 Thinkos. AC_SUBST on the damageproto CFLAGS, and s/AM__CFLAGS/AM_CFLAGS/. commit 657bb1fcc90a08f713c8f97c4f904808ea023c6e Author: Keith Packard Date: Sat Jul 9 06:14:50 2005 +0000 Add .cvsignore files Switch _la_CFLAGS for AM_CFLAGS to clean up directory commit 575cf8f35bb51df34d31035fcbf7d425f85ac79c Author: Daniel Stone Date: Sun Jul 3 07:00:56 2005 +0000 Add Xtrans definitions (FONT_t, TRANS_CLIENT) to clean up warnings. Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings. Add #include or , as appropriate, to all source files in the xserver/xorg tree, predicated on defines of HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to . commit 7a89fded1dac6137a9376bf161da22c1c93a9939 Author: Kevin E Martin Date: Sat Jul 2 06:35:03 2005 +0000 Add appropriate lib*_CFLAGS to Makefile.am's -- fixes build problems commit c04e1d2204ae972828b19bf422670e480805e9ac Author: Adam Jackson Date: Thu May 19 00:22:32 2005 +0000 revert last change, didn't do right thing at all, sorry for the noise commit 00361b6bec032a3be14e2a191b389115ec9767ba Author: Adam Jackson Date: Thu May 19 00:10:07 2005 +0000 Require automake 1.7 in AM_INIT_AUTOMAKE commit 4b9f6d209d2833afb58c2f2e648907f460d1be95 Author: Søren Sandmann Pedersen Date: Tue May 17 17:02:24 2005 +0000 Conditionally include config.h in xc/lib/Xdamage and xc/lib/Xfixes commit daa2ab8a2deff5730713c38322be53ed8facae74 Author: Søren Sandmann Pedersen Date: Tue May 17 16:47:59 2005 +0000 Add Xdamage build system commit a9055b6135f82bafefd05b140c9ec4a6d0b1fc9f Author: Markus Kuhn Date: Sat Dec 4 00:42:47 2004 +0000 Encoding of numerous files changed to UTF-8 commit 1945ec8dea6d16523f480b423b5e7054928c2eea Author: Eric Anholt Date: Sat Jul 31 05:50:39 2004 +0000 Bring in Xfixes, Xdamage, and Xcomposite userland from xserver CVS: - Update Xfixes headers to protocol major version 3. - Add composite headers. - Add libXfixes, libXdamage, and libXcomposite. - Add imake glue for new libraries, but leave Composite off by default until issues are resolved. usr/share/doc/m4/ChangeLog000064400000007510152526502130011322 0ustar002016-12-31 Eric Blake version 1.4.18 * NEWS: Record release date. doc: abbreviate and update release history * doc/m4.texi (History): Shorten, and call out today's release. 2016-12-31 Eric Blake maint: automate creation of release tag The gnulib makefile was already set up to automate things with 'make release ...', but we were still doing things by hand, and thereby risking missing some steps. * m4/gnulib-cache.m4 (gl_MODULES): Import do-release-commit-and-tag. * gnulib: Update, for latest version of the script. * HACKING: Mention its use. 2016-12-31 Eric Blake maint: generate ChangeLog from git commits Follow the practice set in numerous other GNU projects, where the ChangeLog (since 2015) is generated from git commit messages. This avoids duplication or subtle differences between the two, as well as making it easier to merge patches across branches (as good as Bruno Haible's 'git-merge-changelog' helper program is, it still doesn't handle cross-branch cherry-picks very well). * ChangeLog: Move... * ChangeLog-2014: ...to this. * Makefile.am (EXTRA_DIST): Ship renamed file. (gen-ChangeLog): New rule, copied mostly from coreutils. (dist-hook): Generate the ChangeLog. * m4/gnulib-cache.m4 (gl_MODULES): Import gitlog-to-changelog. * .gitignore: Ignore ChangeLog. * .gitattributes: Likewise. * HACKING: Reword to match new procedure, and simplify by referring to an external description of ChangeLog style. 2016-12-31 Eric Blake maint: summarize highlights of pending release * NEWS: Add some blurbs. 2016-12-31 Eric Blake maint: make silent builds the default The user still has full control over verbosity levels, both setting their per-project defaults at configure time (or even in a config.site file), as well as a per-run override. But these days, most projects are defaulting to silent rules without user intervention. * configure.ac (AM_SILENT_RULES): Add, to match what most projects are doing these days. 2016-12-31 Eric Blake maint: release no longer creates a diff file Ever since commit f1cf390 (1.4.14 release), we no longer create diff files as part of the release process. These days, it is assumed that it is easier to download a fresh tarball rather than to try and use a diff file to patch an older tarball. 2016-12-30 Eric Blake doc: drop obsolete @setcontentsaftertitlepage texinfo 6.1 complains (during 'make dvi'): /home/eblake/m4-1.4/doc/./m4.texi:9: @setcontentsaftertitlepage has been remove d as a Texinfo command; move your @contents command if you want the contents af ter the title page.. It turns out that eliminating the command has no effect - modern tools correctly emit the contents in-place, right after the title page, so it was leftover cruft from an older time. * doc/m4.texi: Satisfy newer texinfo. 2016-12-29 Eric Blake build: update to latest gnulib I hit a weird failure during 'make check', and traced it to a recent gnulib regression in parallel test safety. Pick up the gnulib fix. * gnulib: Update to latest, to fix failure in getopt tests. 2016-12-29 Eric Blake maint: regenerate bootstrap Missed during the copyright update. * bootstrap: Regenerate. 2016-12-29 Eric Blake maint: bump copyright year Sadly, there's no commit in 2015, which means we don't get to benefit from using a copyright range. Done with 'make update-copyright'. * all files: Version control now has a commit in 2016. 2016-12-29 Eric Blake gnulib: Update to latest * gnulib: Update to latest. * m4/gnulib-cache.m4: Regenerate. * src/macro.c (expand_macro): Deal with obstack API change. * src/builtin.c (mkstemp_helper): Likewise. usr/share/doc/libpaper/ChangeLog000064400000002127152526505630012607 0ustar00Tue Sep 24 06:38:34 Yves Arrouye * completed the set of manual pages. * added the libpaper.so.1 link in installation. * added -E to less flags. Tue Aug 13 19:14:51 1996 Yves Arrouye * abstract interface (struct paper hidden) so that future changes can be made safely. * stores dimensions as double, still in PS points. Sun Aug 11 15:16:46 1996 Yves Arrouye * lib/paper.c: added paperinit(), paperdone(), paperfirst(), paperlast(), papernext() and paperprev(), removed papertable(). * lib/paper.h: added new prototypes. * src/paper.c: added -N option. Removed trailing spaces in what is printed. * examples/gsfrontend.c: corrected PAPERSIZE to PAGESIZE. * examples/a2ps: added calls to paperinit() and paperdone(), added agressive page size selection at printing time. Sat Jul 20 10:15:49 1996 Yves Arrouye * Makefile.in: changed for PAPERSIZE. * lib/paper.c: added the PAPERSIZE environment variable. * examples: new directory containing examples (gs.sh and diffs for a2ps-4.3). usr/share/doc/libmd/ChangeLog000064400000121216152526557230012104 0ustar00commit 90c4f432134c608c7e2b4dd0a1d7ca5c40b92c7a Author: Guillem Jover Date: Thu May 7 00:42:29 2026 +0200 Release libmd 1.2.0 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc4f75a7e51690f87949a3c7890dbf024f5255b8 Author: Guillem Jover Date: Fri May 8 04:13:23 2026 +0200 build: Set TAR_OPTIONS to avoid leaking maintainer information on dist The default tar invocation by automake leaks the user and group IDs and names into the tarball. And while those are probably going to be easy to infer, it is unnecessary to expose them. With the automake switch from tar format v7 to ustar this is now worse as it used to only leak the IDs, not the names. We set and export TAR_OPTIONS with --owner=0 and --group=0 to neuter the information leak. Although ideally automake would set those by default. Makefile.am | 3 +++ 1 file changed, 3 insertions(+) commit 36d829e8a9b607e942dea7f156b08d5e8060856a Author: Guillem Jover Date: Fri May 8 04:11:39 2026 +0200 build: Request tar-ustar format for distribution Even though this is the default starting with automake 1.18, we should be explicit to get uniform behavior. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c1b3bffbb965b3508a09b3593a60fe1f34402cae Author: Guillem Jover Date: Sat Apr 8 20:29:20 2023 +0200 Remove spurious blank lines at the beginning of functions src/keccak.c | 2 -- src/sha3.c | 18 ------------------ 2 files changed, 20 deletions(-) commit 0ae00e21f31f543071d23d49ab43a8e9782e8818 Author: Guillem Jover Date: Mon Jul 11 12:42:54 2022 +0200 Fix and hook SHA3 and SHAKE support This implementation does not provide the *End, *FileChunk, *File and *Data helper functions, so we do not add them here either. COPYING | 2 +- include/Makefile.am | 1 + man/Makefile.am | 35 +++++++++++++++++++++++++++++ man/SHA3_Selftest.3 | 8 +++---- man/libmd.7 | 14 +++++++++--- man/sha3.3 | 5 +++-- man/{SHAKE.3 => shake.3} | 3 ++- src/Makefile.am | 3 +++ src/keccak.c | 10 --------- src/keccak.h | 14 +++++++----- src/libmd.map | 29 ++++++++++++++++++++++++ src/sha3.c | 58 +++++------------------------------------------- test/.gitignore | 1 + test/Makefile.am | 1 + test/sha3.c | 38 +++++++++++++++++++++++++++++++ 15 files changed, 143 insertions(+), 79 deletions(-) commit 2c0d2f055cda4801d3156bd8a54513db5ebf89f9 Author: Guillem Jover Date: Mon Jul 11 12:42:54 2022 +0200 Add internal endian conversion functions support This imports the code from libbsd, to avoid a dependency loop. COPYING | 3 ++ src/Makefile.am | 1 + src/local-endian.h | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+) commit 3bb89212e3b87f6329ad496b802c1acb6332c25d Author: Guillem Jover Date: Thu Mar 19 23:09:52 2026 +0100 Add internal explicit_bzero() support This imports the code from libbsd, to avoid a dependency loop. COPYING | 2 +- configure.ac | 7 +++++++ src/Makefile.am | 7 +++++++ src/bzero.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/local-string.h | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 102 insertions(+), 1 deletion(-) commit 4442c4b9528bc1f9fba2623035fe49fdaba89170 Author: Guillem Jover Date: Fri May 8 03:27:00 2026 +0200 Add SHA3 and SHAKE support Imported from NetBSD. COPYING | 32 +++ include/sha3.h | 87 +++++++ man/SHA3_Selftest.3 | 73 ++++++ man/SHAKE.3 | 114 +++++++++ man/sha3.3 | 129 +++++++++++ src/keccak.c | 188 +++++++++++++++ src/keccak.h | 42 ++++ src/sha3.c | 651 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1316 insertions(+) commit 7b740a62ef7f7348bb139caa799945d580fc46b9 Author: Guillem Jover Date: Sun May 10 19:53:56 2026 +0200 doc: Move derived code attribution to a Comment field This is supposedly not the copyright statement, but just a comment about the authorship of the code. COPYING | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bb5a08e067b4367b382e940b0d1fab3275950aeb Author: Guillem Jover Date: Sat May 9 00:44:38 2026 +0200 doc: Remove redundant «Copyright ©» prefix from Copyright field in COPYING The field already states what the content is about, and as this is a duplication of the license grant from the source code there is no need to preserve the original format. COPYING | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9b03479c9995f44f9b1206bc2fe6fcde8734844c Author: Guillem Jover Date: Mon Feb 9 02:28:42 2026 +0100 build: Add Maintainer and License fields to the .pc file src/libmd.pc.in | 2 ++ 1 file changed, 2 insertions(+) commit 8fffa5f1ae20c0fbb30e4ba452654eb92ebb3d82 Author: Guillem Jover Date: Tue Mar 14 01:58:34 2023 +0100 doc: Remove «All rights reserved» from COPYING This has no legal weight, and was needed due to the Buenos Aires Convention requiring it. Since all members of the Buenos Aires Convention are now part of the Berne Convention, there is no need anymore for this phrasing. And while the original statement must not be touched, we do not need to replicate this in the COPYING file when it is legally pointless. COPYING | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d5b8e853989a73f8fff9dc4e00dccd0b691b84f9 Author: Guillem Jover Date: Wed Feb 21 01:50:07 2024 +0100 build: Rename LIBMD_ABI to SOVERSION This matches the semantics of the variable, and makes it independent of the project, just as the package variables. configure.ac | 10 +++++----- src/Makefile.am | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit ea6216336b3c96bc2c13c93b41db1afe046c920c Author: Guillem Jover Date: Sat Oct 28 00:43:17 2023 +0200 build: Add a coverage regex to the CI job This is needed so that gitlab can know where to extract the coverage percentage from in the output, to be able to track and report it. .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) commit 7e32142856a84182a28e6bce21947759ed3d694c Author: Guillem Jover Date: Sat Oct 28 00:15:56 2023 +0200 man: Sync SHA2 changes from OpenBSD This documents support for SHA224 and SHA512-256. Adds missing function names to the NAME section. Fixes function prototypes. Removes obsolete CAVEATS section. Fixes: commit 4c5931f53727b1428b47b6a1c0bfdad02c46f1ca man/Makefile.am | 18 +++++++ man/sha2.3 | 150 ++++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 127 insertions(+), 41 deletions(-) commit 488d585edea842f2c4a95bc34fa59c6aa2eb5092 Author: Guillem Jover Date: Fri Oct 27 23:33:06 2023 +0200 build: Add a new vpath-tests CI test This will check that we do not regress for out-of-tree builds. .gitlab-ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) commit b49ee25721ef1f3fee3f4d68993222697828f38f Author: Guillem Jover Date: Fri Oct 27 23:31:52 2023 +0200 build: Refactor autogen call into before_script This is a common action among all current stages, so there is no need to duplicate it. .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 137dd4e24390e8b856a965a0e8842f48771fc58d Author: Gregor Jasny Date: Fri Oct 27 14:25:18 2023 +0200 build: Fix out-of-tree build Signed-off-by: Guillem Jover src/Makefile.am | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 16d68ab76eee25bf8ec807aff9a6ea7e0f135019 Author: Guillem Jover Date: Thu May 25 23:54:13 2023 +0200 Release libmd 1.1.0 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 054bca1a2e9810b3017c868e344af8d6c4270767 Author: Guillem Jover Date: Tue Apr 11 00:19:46 2023 +0200 build: Terminate lists in variables with «# EOL» This means we can add a trailing «\» to every element, so that they can be removed without requiring modification of other lines, and can be easily sorted. Replace the old usage of $(nil) which could possibly end up with junk added if such variable is ever defined, in the environment. Makefile.am | 9 +++++++-- include/Makefile.am | 4 ++-- man/Makefile.am | 20 ++++++++++---------- src/Makefile.am | 30 +++++++++++++++++------------- test/Makefile.am | 6 +++--- 5 files changed, 39 insertions(+), 30 deletions(-) commit 84d269e813276337a6a074b0ca4d276465b4fc6f Author: Guillem Jover Date: Thu Apr 6 20:37:41 2023 +0200 test: Add cases for SHA224 and SHA512-256 test/sha2.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit a677e68673f18bf84b2314b8716e052fb5e471e4 Author: Guillem Jover Date: Thu Apr 6 20:37:41 2023 +0200 test: Add a new test_eq() helper function test/test.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 4c5931f53727b1428b47b6a1c0bfdad02c46f1ca Author: Guillem Jover Date: Thu Apr 6 20:37:41 2023 +0200 Sync SHA2 changes from OpenBSD This adds support for SHA224 and SHA512-256. include/sha2.h | 32 +++++++- src/Makefile.am | 12 ++- src/libmd.map | 23 ++++++ src/sha2.c | 241 ++++++++++++++++++++++++++++++++++++++++++-------------- 4 files changed, 247 insertions(+), 61 deletions(-) commit 9934d941e068001a8116319ee500cbf76b50eb0e Author: Guillem Jover Date: Wed Apr 5 23:53:43 2023 +0200 Sync SHA1 changes from OpenBSD Remove SH specific code, and remove conditional for the digest argument. include/sha1.h | 2 +- src/sha1.c | 72 ++++------------------------------------------------------ 2 files changed, 6 insertions(+), 68 deletions(-) commit 457e30aeec5b0fe979ffb7ffc9e69db52a19fbfc Author: Guillem Jover Date: Sun Apr 9 00:14:30 2023 +0200 Sync RMD160 changes from OpenBSD include/rmd160.h | 2 +- src/rmd160.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) commit b2e54bcdac68d48f4a5919ece045fe4d0f741f96 Author: Guillem Jover Date: Sun Apr 9 00:10:07 2023 +0200 Sync MD5 changes from OpenBSD include/md5.h | 2 +- src/md5.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) commit ee56a52ac4dc72002eb601ba08196572d6e8a092 Author: Guillem Jover Date: Sun Apr 9 00:05:02 2023 +0200 Sync MD4 changes from OpenBSD Get all changes before this MD4 implementation got removed from OpenBSD. include/md4.h | 2 +- src/md4.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) commit b9496acd52b4f4cbde13e80cae4305e9454a469a Author: Guillem Jover Date: Wed Apr 5 23:53:24 2023 +0200 Sync MD2 changes from NetBSD include/md2.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 09d58246d1aba6ca17ca1e19bb08ef855a9b29fd Author: Guillem Jover Date: Sat Apr 8 20:53:37 2023 +0200 Remove unused src/md2.c | 1 - 1 file changed, 1 deletion(-) commit 08b2c5dd8a51a77b1d9ab436e4e9c261aafa0049 Author: Guillem Jover Date: Sat Apr 8 23:43:04 2023 +0200 build: Rename libmd_alias() to libmd_strong_alias() src/local-link.h | 6 +++--- src/sha2.c | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit ed695998501bf90158f3899d92fecf28293ea313 Author: Guillem Jover Date: Fri Mar 31 23:47:38 2023 +0200 On Darwin use assembler to support symbol aliases The alias attribute is not supported on Darwin, but we can alias using assembler directives instead. At the same time we switch the non-ELF fallback implementation for libmd_symver_default to use libmd_alias. src/local-link.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit b74b77720494d3103ba0e2e6eb0fd077d33221cf Author: Guillem Jover Date: Tue Mar 28 03:25:35 2023 +0200 build: Do not use strong aliases on macOS These are not supported, and when trying to link the library we get the following error message: error: aliases are not supported on darwin src/local-link.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 94838ec6983ab067769901e87f50e9b377252d7e Author: Guillem Jover Date: Tue Mar 14 01:49:53 2023 +0100 build: Require automake 1.11 This is a rather old release (from 2009), that provides AM_SILENT_RULES. configure.ac | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 39cbc7bb0c8f30c05d0190899aa023e8f04ae317 Author: Guillem Jover Date: Tue Mar 14 01:48:45 2023 +0100 build: Fix configure.ac indentation Use the same style as the newly added code, which should make the code more readable. configure.ac | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 4620a04ab627ff266ee90853fa2e13326f169552 Author: Guillem Jover Date: Fri Feb 17 22:29:50 2023 +0100 build: Switch to debian:latest Docker image This should always point to the latest Debian stable images. .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e408786075b9540f76783f5c3ce87f6d1ece13cf Author: Guillem Jover Date: Sun Feb 12 23:55:09 2023 +0100 build: Fix version script linker support detection When the linker uses --no-undefined-version either specified by the user or as the default behavior (such as with newer clang >= 16 releases), a missing symbol definition will cause a linker error if that symbol is listed in the version script. Closes: #1 m4/libmd-linker.m4 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 0ef1e4da68332073457e8b3be512b6d902be4685 Author: Guillem Jover Date: Wed Oct 5 01:38:35 2022 +0200 doc: Move mailing list reference to the end README | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit a3f16719026f26d0a7e6ca9aa0f67881505fa017 Author: Guillem Jover Date: Tue Oct 5 06:03:29 2021 +0200 man: Add new libmd(7) man page man/Makefile.am | 1 + man/libmd.7 | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) commit 9d3c9a739f86b65b238163b9f8af3623226a6419 Author: Guillem Jover Date: Tue Oct 5 04:44:25 2021 +0200 Release libmd 1.0.4 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04781b0a5c767454e569694f5b96c8ae6e9127ea Author: David Seifert Date: Tue Oct 5 04:34:48 2021 +0200 build: Avoid non-portable '$<' in non-inference rules OpenBSD's 'pmake' chokes on these. Signed-off-by: Guillem Jover man/Makefile.am | 6 +++--- src/Makefile.am | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) commit 8a62de57a12899d300872916d8f08ec04a071eeb Author: Guillem Jover Date: Tue Aug 17 02:24:09 2021 +0200 build: Fix out of tree builds The '$<' variable is not guarantee to work in ordinary make rules by non GNU make implementations. In addition if it is supported it will be replaced by the actual source pathname (in VPATH mode), which is not the relative name we need on installation. Ref: https://www.gnu.org/software/autoconf/manual/autoconf.html#g_t_0024_003c-in-Ordinary-Make-Rules Reported-by: David Seifert man/Makefile.am | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 85f7006c64fcf2f2dd72f7bdca11b88231a8ff0d Author: David Seifert Date: Tue Oct 5 04:20:30 2021 +0200 build: Explicitly depend on sed Signed-off-by: Guillem Jover configure.ac | 1 + man/Makefile.am | 6 +++--- src/Makefile.am | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 13 deletions(-) commit dc32a5957bee09df3645cddb66c65f7803ea5a20 Author: Guillem Jover Date: Mon Aug 16 14:43:49 2021 +0200 build: Switch Docker image to Debian bullseye .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9c4c7fe282bbf79fdf3af6aa4b870125e822a50 Author: Guillem Jover Date: Sat Feb 20 22:19:49 2021 +0100 build: Add support for sanitizer compiler flags .gitlab-ci.yml | 2 +- configure.ac | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) commit e35f6b877ab381ffcea9f391944be2097524c20c Author: Guillem Jover Date: Fri Feb 19 23:59:47 2021 +0100 build: Add compiler warnings support Detect as many warnings as possible during configure and enable them if the user did not supply any, so that any such problem can be spotted and fixed. configure.ac | 43 +++++++++++++++++++++++++++++++++++++++++++ m4/libmd-compiler.m4 | 24 ++++++++++++++++++++++++ 2 files changed, 67 insertions(+) commit 9cc6db0cf8ad97b33f1499df001f0609a3003a77 Author: Guillem Jover Date: Sun Feb 28 18:57:00 2021 +0100 build: Improve coverage report Exclude test suite files from the coverage which incorrectly increase the coverage percent. Build with no-optimizations and debugging symbols. .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ef667150e80dcb4ca2dd87c30655f23442687969 Author: Guillem Jover Date: Sun Feb 28 18:56:27 2021 +0100 build: Indent packages in GitLab CI apt-get invocation .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8308181a0018a15944df18303316c30b6d1dbf4a Author: Guillem Jover Date: Sat Feb 20 23:41:51 2021 +0100 build: Add GitLab CI support .gitlab-ci.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit ac5cd2d7fce430ab04376cc514da8f88156b9cef Author: Guillem Jover Date: Sun Feb 28 01:13:14 2021 +0100 build: Ignore code coverage files .gitignore | 2 ++ 1 file changed, 2 insertions(+) commit 1a8d0b68a1f6a42c57261e76a8fccb9404fc305f Author: Guillem Jover Date: Sat Feb 20 23:40:29 2021 +0100 man: Document RIPEMD160 and SHA-1 security status man/rmd160.3 | 7 +++---- man/sha1.3 | 6 ++++-- 2 files changed, 7 insertions(+), 6 deletions(-) commit e50a6db8ec1425e8354ece5ce45ac6cb2d2dcb3b Author: Guillem Jover Date: Fri Feb 19 23:58:37 2021 +0100 test: Fix pointer type sign mismatch in DEF_TEST_DIGEST() macro Warned-by: gcc test/test.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b7d06e0dc98a0b774db6e54272a38ed0583b3d4d Author: Guillem Jover Date: Fri Feb 19 23:56:07 2021 +0100 Fix signedness type mismatch comparisons Change the variable type or use a cast. Warned-by: gcc src/helper.c | 2 +- test/test.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6cedc1594f34529a803a25cbcb773cbf5a6fc891 Author: Guillem Jover Date: Fri Feb 19 07:14:15 2021 +0100 Fix main() function prototype Warned-by: gcc test/md2.c | 2 +- test/md4.c | 2 +- test/md5.c | 2 +- test/rmd160.c | 2 +- test/sha1.c | 2 +- test/sha2.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit 52ee547648923398015add10e0e9490ce3226ec7 Author: Guillem Jover Date: Fri Feb 19 07:13:51 2021 +0100 Declare local functions as static Warned-by: gcc test/md5.c | 6 +++--- test/test.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 281dab62f25eee47da5eb996db7ef440a22d2295 Author: Guillem Jover Date: Fri Feb 19 07:13:28 2021 +0100 Place static keyword before const in function definitions Warned-by: gcc src/sha2.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 981a0a1dc91aae55930451564e506f927010622a Author: Guillem Jover Date: Sat Jan 2 16:30:03 2021 +0100 Release libmd 1.0.3 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b3f9f75d8f79a93792dedb5e3541a228d38fa62 Author: Guillem Jover Date: Sat Jan 2 16:26:38 2021 +0100 build: Provide wrapper functions instead of aliases in DLL built with MSVC On Windows we cannot use proper aliases, and using the /EXPORT linker flag is too cumbersome, as it does not work when static linking, and when dynamic linking it does not make the aliases visible within the DLL itself. Just use normal function wrapper in those cases, which are way more maintainable. src/local-link.h | 10 ++++++++++ src/sha2.c | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+) commit 0f57340069a4eabfef3cfec53184837927b70ac9 Author: Michael Haubenwallner Date: Tue Dec 22 18:47:47 2020 +0100 build: Fix out of tree builds Adding local-link.h as private header file requires $(srcdir) on AM_CPPFLAGS to be found by generated sources when builddir != srcdir. Do not use libmd.sym from $(srcdir), as it is a generated file. [guillem@hadrons.org: - Remove unrelated line moves. ] Signed-off-by: Guillem Jover src/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 547953eff097fe3744271b27238d20f99ba43feb Author: Guillem Jover Date: Tue Dec 22 18:40:55 2020 +0100 build: Ignore release tarballs .gitignore | 1 + 1 file changed, 1 insertion(+) commit dd01b873a759a384b914353fe58e346e2c841d8c Author: Guillem Jover Date: Tue Dec 22 17:49:23 2020 +0100 Release libmd 1.0.2 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb25da50b3a7540e82c4bf6d92d30b2d4a48d95e Author: Guillem Jover Date: Sat Nov 28 20:00:01 2020 +0100 Remove duplicate Files entries from COPYING COPYING | 2 -- 1 file changed, 2 deletions(-) commit 52cb9cbef62cfa625a69f347f60bc7947fc13709 Author: Guillem Jover Date: Thu Sep 17 03:19:51 2020 +0200 build: Only depend on libmd.sym when using it src/Makefile.am | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 42d691a5de1bc16417a908ff9f61bbc07e7d37bc Author: Guillem Jover Date: Mon Dec 21 20:19:54 2020 +0100 build: Move local-link.h from libmd_la_helper_sources to libmd_la_SOURCES This is not a generated file, so it needs to be listed in the library SOURCES variable. Fixes: commit 9cc938450392d64440de5c7db27903dff9922728 src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd364c6d81dac38ec42f6fe5ae2e5296a56e12de Author: Guillem Jover Date: Wed Aug 28 11:30:29 2019 +0200 Switch SHA2 symbols from weak to strong aliases There is no good reason to have these as weak symbols at all. And it makes building on Windows (Cygwin, MinGW) harder as it does not support weak symbols. Based-on-patch-by: Michael Haubenwallner Signed-off-by: Guillem Jover src/local-link.h | 3 +++ src/sha2.c | 13 ++++--------- 2 files changed, 7 insertions(+), 9 deletions(-) commit 9cc938450392d64440de5c7db27903dff9922728 Author: Guillem Jover Date: Wed Aug 28 11:19:37 2019 +0200 Import local-link header from libbsd This provides several macros for versioned symbols and linking magic. src/Makefile.am | 1 + src/local-link.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) commit 09b3ad8c9950aadccad1c8a9e2bc27baf93a4513 Author: Michael Haubenwallner Date: Wed Aug 28 11:16:54 2019 +0200 Remove unused weak symbol declarations for MD2 functions These are not currently used, as they are not part of the versioned symbols export map. Signed-off-by: Guillem Jover src/md2.c | 7 ------- 1 file changed, 7 deletions(-) commit 9a77023ffe31da98eb1dafbefe005171d1ef7499 Author: Michael Haubenwallner Date: Thu Aug 22 16:55:44 2019 +0200 build: Use only if available Some target platforms do not have , notably Windows when using vanilla MSVC toolchain. Note: The AC_CHECK_HEADERS([unistd.h]) is redundant with LT_INIT, but there is no guarantee for that. [guillem@hadrons.org: - Use AC_CHECK_HEADERS instead of AC_CHECK_HEADER. - Quote argument to AC_CHECK_HEADERS. ] Signed-off-by: Guillem Jover configure.ac | 1 + src/helper.c | 2 ++ 2 files changed, 3 insertions(+) commit 9c330aa8e5085c57249550c0596154ac0e3ab0f4 Author: Guillem Jover Date: Mon Oct 22 12:43:15 2018 +0200 Release libmd 1.0.1 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f23a2145a019776f827c11c03474761ba0b44e48 Author: Guillem Jover Date: Sat Oct 6 03:46:51 2018 +0200 Add compatibility with Aladdin Enterprises MD5 implementation This will be guarded by a LIBMD_MD5_ALADDIN macro check, to avoid polluting the namespace by unsuspecting code. The macro can always be defined unconditionally, and the guard could even potentially be removed in the future if required. Prompted-by: Yangfl Ref: https://bugs.debian.org/909116 include/md5.h | 20 ++++++++++++++++++++ test/md5.c | 30 +++++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 3 deletions(-) commit cf9ac1507f62899d92718fdc216689c2fc98e1fe Author: Guillem Jover Date: Sat Oct 6 04:33:02 2018 +0200 test: Refactor and extend message digest testing Generate the base test function with a maro, because all of them follow the same pattern. And extend it by covering more of the API. test/Makefile.am | 4 ++++ test/md2.c | 16 +++++--------- test/md4.c | 16 +++++--------- test/md5.c | 14 +++++------- test/rmd160.c | 16 +++++--------- test/sha1.c | 16 +++++--------- test/sha2.c | 46 ++++++++++++---------------------------- test/{rmd160.c => test.h} | 54 +++++++++++++++++++++++++++++++++++------------ 8 files changed, 83 insertions(+), 99 deletions(-) commit b6b3402e4a4b53cedff228a75339f08d23e6411d Author: Guillem Jover Date: Sat Oct 6 04:30:59 2018 +0200 Fix compatibility macros for SHA512 These have swapped names in their macro values. include/sha512.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ff52516cedbdd94dcba2ab2c3e5bddbd6a6d65e2 Author: Guillem Jover Date: Sat Oct 6 04:30:11 2018 +0200 Add missing compatibility macros for SHA384 include/sha512.h | 4 ++++ 1 file changed, 4 insertions(+) commit bf04c4110f8028bbb4d6682b5eb93a3dc1a2f895 Author: Rainer Müller Date: Fri Sep 29 17:02:33 2017 +0200 build: Invoke sed with portable regex The previous sed expression only worked with GNU sed, as the '\+' literal is an extension to basic regex. Use portable syntax instead that also works with other implementations of sed(1), for example on macOS. Signed-off-by: Guillem Jover src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c657abc165177183f453437e578832d146103d61 Author: Guillem Jover Date: Sat Jan 13 16:29:02 2018 +0100 Release libmd 1.0.0 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 397964a117b7e17fc1abf336f2719ba932fb3a67 Author: Guillem Jover Date: Sat Jan 13 16:32:33 2018 +0100 Remove unused NEWS file NEWS | 3 --- 1 file changed, 3 deletions(-) commit cc6881c6d7be37279090d5fccb60bcb27bef918e Author: Guillem Jover Date: Mon Jun 5 05:10:51 2017 +0200 Remove unused __RCSID macro usage This is an obsolescent practice, just stop conditionally using this macro. src/md2.c | 4 ---- 1 file changed, 4 deletions(-) commit 0def18290376573cf4e8faae071f33e73d163b1a Author: Guillem Jover Date: Thu Jun 1 03:00:05 2017 +0200 Stop using non-portable There are platforms without , so we better avoid the header altogether, and add the required MIN macro outselves. Based-on-patch-by: Michael Haubenwallner configure.ac | 1 - src/helper.c | 5 ++++- src/sha1.c | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) commit 04d92f90e9f522c002907089a4a6a336d86caaff Author: Guillem Jover Date: Wed May 31 06:58:23 2017 +0200 build: Do not override the default DEPENDENCIES for libmd Extend it instead via EXTRA_*_DEPENDENCIES, to make sure that we preserve the builtin library dependencies generated from LIBADD. src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c94d7fd8ccc96036ef847ddac96d24ffee12235 Author: Guillem Jover Date: Wed May 31 06:55:35 2017 +0200 build: Use an export symbols file if there is no version script support We generate the symbol list from the version script to avoid repeating ourselves and potentially getting the lists out-of-sync. Proposed-by: Michael Haubenwallner .gitignore | 1 + src/Makefile.am | 13 +++++++++++++ 2 files changed, 14 insertions(+) commit b6be272ec1baa16adb3502895f361f443054ccd9 Author: Guillem Jover Date: Wed May 31 06:45:25 2017 +0200 build: Detect version script linker support at configure time This is not a widely supported feature, so only use if in case the linker does support it. Proposed-by: Michael Haubenwallner .gitignore | 1 - Makefile.am | 1 + autogen | 1 - configure.ac | 1 + m4/.gitignore | 2 ++ m4/libmd-linker.m4 | 22 ++++++++++++++++++++++ src/Makefile.am | 5 ++++- 7 files changed, 30 insertions(+), 3 deletions(-) commit 555d5074acfdc938932ac155b71eedcea20b198c Author: Michael Haubenwallner Date: Mon Apr 10 13:10:45 2017 +0200 build: Switch to AC_C_BIGENDIAN defining WORD_BIGENDIAN We should use the autoconf macro instead of expecting the system to provide the endianness information, which many do not. [guillem@hadrons.org: - Use autoconf macro instead of gnulib one. - Slightly reword commit message. ] Signed-off-by: Guillem Jover configure.ac | 3 ++- src/md4.c | 2 +- src/md5.c | 2 +- src/rmd160.c | 7 +------ src/sha1.c | 2 +- src/sha2.c | 39 +++------------------------------------ 6 files changed, 9 insertions(+), 46 deletions(-) commit c3c8d859c309ed245b255d03937ac8e0cb98a425 Author: Guillem Jover Date: Thu Jun 1 02:43:22 2017 +0200 build: Drop GCC specific compiler flag -include Instead, explicitly include in library and test source files for increased portability. Based-on-patch-by: Michael Haubenwallner src/Makefile.am | 3 ++- src/helper.c | 2 ++ src/md2.c | 2 ++ src/md4.c | 2 ++ src/md5.c | 2 ++ src/rmd160.c | 3 +++ src/sha1.c | 2 ++ src/sha2.c | 2 ++ test/Makefile.am | 1 - test/md2.c | 2 ++ test/md4.c | 2 ++ test/md5.c | 2 ++ test/rmd160.c | 2 ++ test/sha1.c | 2 ++ test/sha2.c | 2 ++ 15 files changed, 29 insertions(+), 2 deletions(-) commit 23637d726c7be93630b6e6418695276d13d71fb6 Author: Michael Haubenwallner Date: Mon Apr 10 13:10:40 2017 +0200 build: Stop checking for malloc() and memset() We do not provide alternatives for when memset() is missing, or when malloc() is not GNU-style malloc(), causing redirection to (undefined) rpl_malloc(). We do not rely on GNU-style malloc() at all, so there is no point in checking for it. [guillem@hadrons.org: - Slightly reword commit message. ] Signed-off-by: Guillem Jover configure.ac | 2 -- 1 file changed, 2 deletions(-) commit 765a605ec4c5b2d48fba44846cbe8950f428104d Author: Michael Haubenwallner Date: Mon Apr 10 13:10:39 2017 +0200 build: Add -no-undefined libtool flag We have no need for undefined symbols, so we can let the shared library build even on systems without support for undefined symbols. [guillem@hadrons.org: - Place the option on its own line. - Slightly reword commit message. ] Signed-off-by: Guillem Jover src/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit bb131b2e87b43023655995f5c5d8d4191686f6e3 Author: Michael Haubenwallner Date: Mon Apr 10 13:10:38 2017 +0200 Stop using non-portable For portability, we should not rely on the __BEGIN_DECLS, __END_DECLS and __P to be predefined somewhere. For __P, we just remove its usage as we do not support pre-ANSI-C compilers. [guillem@hadrons.org: - Separate extern declarations with newlines. - Slightly reword commit message. ] Signed-off-by: Guillem Jover include/md2.h | 11 ++++++++--- include/md4.h | 11 ++++++++--- include/md5.h | 11 ++++++++--- include/rmd160.h | 11 ++++++++--- include/sha1.h | 11 ++++++++--- include/sha2.h | 11 ++++++++--- src/md2.c | 3 +-- 7 files changed, 49 insertions(+), 20 deletions(-) commit ed7d023ee8d20957752e86e60a8d50620cc7cc7e Author: Guillem Jover Date: Wed Feb 10 00:16:06 2016 +0100 Release libmd 0.0.0 NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4eaf4a125cb79116cc2d22fb31b83c2fd8680db5 Author: Guillem Jover Date: Sun Oct 23 19:20:26 2011 +0200 Add compatibility with other BSDs COPYING | 2 +- include/Makefile.am | 8 ++++++++ include/ripemd.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ include/sha.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ include/sha256.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ include/sha512.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 194 insertions(+), 1 deletion(-) commit 7a85a55739fb094d865dcd38838a429cffafab8c Author: Guillem Jover Date: Tue Feb 9 10:17:55 2016 +0100 Remove hidden dependencies from public headers Include in all public headers as they need them, so that programs do not need to add such header to be able to build. include/md4.h | 5 +++-- include/md5.h | 5 +++-- include/rmd160.h | 5 +++-- include/sha1.h | 5 +++-- include/sha2.h | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) commit 18ebbe24a789c26e93e7b81050a48261f73152cc Author: Guillem Jover Date: Tue May 29 05:44:54 2012 +0200 Use stdint types instead of BSD u_int ones include/md4.h | 16 +++++++++------- include/md5.h | 16 +++++++++------- include/rmd160.h | 16 +++++++++------- include/sha1.h | 16 +++++++++------- include/sha2.h | 33 ++++++++++++++++---------------- man/mdX.3 | 8 ++++---- man/rmd160.3 | 14 +++++++------- man/sha1.3 | 14 +++++++------- man/sha2.3 | 30 ++++++++++++++--------------- src/helper.c | 6 +++--- src/md4.c | 20 +++++++++---------- src/md5.c | 20 +++++++++---------- src/rmd160.c | 22 ++++++++++----------- src/sha1.c | 46 ++++++++++++++++++++++---------------------- src/sha2.c | 58 ++++++++++++++++++++++++++++---------------------------- 15 files changed, 172 insertions(+), 163 deletions(-) commit 581c239f6eb4810f51c8cca45bd3daffde89ae37 Author: Guillem Jover Date: Sun May 29 04:46:28 2011 +0200 Remove __bounded__ GCC attribute This is a BSD specific extension to GCC, and as such not widely available elsewhere. include/md4.h | 23 +++++++---------------- include/md5.h | 23 +++++++---------------- include/rmd160.h | 23 +++++++---------------- include/sha1.h | 23 +++++++---------------- include/sha2.h | 57 ++++++++++++++++++-------------------------------------- 5 files changed, 46 insertions(+), 103 deletions(-) commit f1291e88d7a3a9f90e4f54df29620c53e92caded Author: Guillem Jover Date: Sun May 29 04:46:46 2011 +0200 build: Use when is not available configure.ac | 2 +- src/rmd160.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 79b3a0b7f48918a36f56444d828b11e5f7bbd0cc Author: Guillem Jover Date: Sun May 29 04:48:16 2011 +0200 build: Add build infrastructure .gitignore | 24 +++++++ COPYING | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.am | 16 +++++ NEWS | 3 + README | 38 +++++++++++ autogen | 5 ++ configure.ac | 54 ++++++++++++++++ get-version | 50 +++++++++++++++ include/Makefile.am | 10 +++ man/.gitignore | 3 + man/Makefile.am | 148 +++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 97 ++++++++++++++++++++++++++++ src/libmd.map | 84 ++++++++++++++++++++++++ src/libmd.pc.in | 11 ++++ test/.gitignore | 6 ++ test/Makefile.am | 20 ++++++ test/md2.c | 47 ++++++++++++++ test/md4.c | 47 ++++++++++++++ test/md5.c | 47 ++++++++++++++ test/rmd160.c | 47 ++++++++++++++ test/sha1.c | 47 ++++++++++++++ test/sha2.c | 80 +++++++++++++++++++++++ 22 files changed, 1063 insertions(+) commit c5179609f32de7999f9da1506346ac4b27a7a385 Author: Guillem Jover Date: Mon Jun 29 17:32:14 2015 +0200 build: Define a dummy _DIAGASSERT src/md2.c | 2 ++ 1 file changed, 2 insertions(+) commit 7a25747571987687cdd7ab0a7fd5ce91a9cf122e Author: Guillem Jover Date: Sat Jul 19 16:49:55 2014 +0200 build: Add weak_alias definition src/sha2.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 649209d4707f92c2728f381a25d5b208696a77ed Author: Guillem Jover Date: Sat Jul 19 16:11:42 2014 +0200 build: Use stdint include/md2.h | 2 ++ 1 file changed, 2 insertions(+) commit 1878b975d1c797d57c86f76be638447353c5ea4c Author: Guillem Jover Date: Sat Jul 19 16:11:25 2014 +0200 man: Add LIBRARY section man/mdX.3 | 2 ++ man/rmd160.3 | 2 ++ man/sha1.3 | 2 ++ man/sha2.3 | 2 ++ 4 files changed, 8 insertions(+) commit ee0b22997a6df7715933fb608a35d67838e0f8e4 Author: Guillem Jover Date: Sun May 29 03:22:21 2011 +0200 Initial import from OpenBSD and NetBSD include/md2.h | 29 ++ include/md4.h | 52 ++++ include/md5.h | 51 ++++ include/rmd160.h | 62 ++++ include/sha1.h | 59 ++++ include/sha2.h | 118 ++++++++ man/mdX.3 | 225 ++++++++++++++ man/rmd160.3 | 239 +++++++++++++++ man/sha1.3 | 233 +++++++++++++++ man/sha2.3 | 281 ++++++++++++++++++ src/helper.c | 96 ++++++ src/md2.c | 178 ++++++++++++ src/md4.c | 231 +++++++++++++++ src/md5.c | 248 ++++++++++++++++ src/rmd160.c | 371 +++++++++++++++++++++++ src/sha1.c | 235 +++++++++++++++ src/sha2.c | 873 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17 files changed, 3581 insertions(+) usr/share/doc/yajl/ChangeLog000064400000016756152527014020011752 0ustar002.1.0 * @nonodename, @patperry - fixed some compiler warnings * @yep, @emaste - documentation improvements * @sgravrock - build fix for NetBSD (and whenever sh != bash) * @rotty, @brimstone3, @lloyd - allow client to reset generator * @sgravrock - remove bash dependencies * @lloyd - add api tests * @rflynn - remove ruby dependency * @cloderic - nmake install works on windows * @shahbag - build fix for qnx * @breese - debugging improvements * @lloyd - json_verify supports -s flag for stream processing * @lloyd - json_reformat supports -s flag for stream processing 2.0.4 * @jcekstrom - additional checking in integer parsing * @jcekstrom - fix a bug in yajl_tree that would cause valid json integersto fail to parse * @plaguemorin - fix a memory leak in yajl_tree (error strings were being leaked) * @7AC - reset errno * @ConradIrwin - include flags to reformatter to allow toggling of escape solidus option 2.0.3 * John Stamp generation of a pkgconfig file at build time. * @robzuber bugfix in yajl_tree_get() * @lloyd - fix for compilation on 64 bit windows 2.0.2 * lth fix typos in yajl_tree.h macros YAJL_IS_INTEGER and YAJL_IS_DOUBLE, contributed by Artem S Vybornov. * lth add #ifdef __cplusplus wrappers to yajl_tree to allow proper usage from many populer C++ compilers. 2.0.1 * lth generator flag to allow client to specify they want escaped solidi '/'. issue #28 * lth crash fix when yajl_parse() is never called. issue #27 2.0.0 * lth YAJL is now ISC licensed: http://en.wikipedia.org/wiki/ISC_license * lth 20-35% (osx and linux respectively) parsing performance improvement attained by tweaking string scanning (idea: @michaelrhanson). * Florian Forster & lth - yajl_tree interface introduced as a higher level interface to the parser (eats JSON, poops a memory representation) * lth require a C99 compiler * lth integers are now represented with long long (64bit+) on all platforms. * lth size_t now used throughout to represent buffer lengths, so you can safely manage buffers greater than 4GB. * gno semantic improvements to yajl's API regarding partial value parsing and trailing garbage * lth new configuration mechanism for yajl, see yajl_config() and yajl_gen_config() * gno more allocation checking in more places * gno remove usage of strtol, replace with custom implementation that cares not about your locale. * lth yajl_parse_complete renamed to yajl_complete_parse. * lth add a switch to validate utf8 strings as they are generated. * lth tests are a lot quieter in their output. * lth addition of a little in tree performance benchmark, `perftest` in perf/perftest.c 1.0.12 * Conrad Irwin - Parse null bytes correctly * Mirek Rusin - fix LLVM warnings * gno - Don't generate numbers for keys. closes #13 * lth - various win32 fixes, including build documentation improvements * John Stamp - Don't export private symbols. * John Stamp - Install yajl_version.h, not the template. * John Stamp - Don't use -fPIC for static lib. Cmake will automatically add it for the shared. * lth 0 fix paths embedded in dylib upon installation on osx. closes #11 1.0.11 * lth remove -Wno-missing-field-initializers for greater gcc compat (3.4.6) 1.0.10 * Brian Maher - yajl is now buildable without a c++ compiler present * Brian Maher - fix header installation on OSX with cmake 2.8.0 installed * lth & vitali - allow builder to specify alternate lib directory for installation (i.e. lib64) * Vitali Lovich - yajl version number now programatically accessible * lth - prevent cmake from embedding rpaths in binaries. Static linking makes this unneccesary. 1.0.9 * lth - fix inverted logic causing yajl_gen_double() to always fail on win32 (thanks to Fredrik Kihlander for the report) 1.0.8 * Randall E. Barker - move dllexport defnitions so dlls with proper exports can again be generated on windows * lth - add yajl_get_bytes_consumed() which allows the client to determine the offset as an error, as well as determine how many bytes of an input buffer were consumed. * lth - fixes to keep "error offset" up to date (like when the client callback returns 0) * Brian Maher - allow client to specify a printing function in generation 1.0.7 * lth fix win32 build (isinf and isnan) 1.0.6 * lth fix several compiler warnings * lth fix generation of invalid json from yajl_gen_double (NaN is not JSON) * jstamp support for combining short options in tools * jstamp exit properly on errors from tools * octo test success no longer depends on integer size * max fix configure --prefix 1.0.5 * lth several performance improvements related to function inlinin' 1.0.4 * lth fix broken utf8 validation for three & four byte represenations. thanks to http://github.com/brianmario and http://github.com/technoweenie 1.0.3 * lth fix syntax error in cplusplus extern "C" statements for wider compiler support 1.0.2 * lth update doxygen documentation with new sample code, passing NULL for allocation functions added in 1.0.0 1.0.1 * lth resolve crash in json_reformatter due to incorrectly ordered parameters. 1.0.0 * lth add 'make install' rules, thaks to Andrei Soroker for the contribution. * lth client may override allocation routines at generator or parser allocation time * tjw add yajl_parse_complete routine to allow client to explicitly specify end-of-input, solving the "lonely number" case, where json text consists only of an element with no explicit syntactic end. * tjw many new test cases * tjw cleanup of code for symmetry and ease of reading * lth integration of patches from Robert Varga which cleanup compilation warnings on 64 bit linux 0.4.0 * lth buffer overflow bug in yajl_gen_double s/%lf/%g/ - thanks to Eric Bergstrome * lth yajl_number callback to allow passthrough of arbitrary precision numbers to client. Thanks to Hatem Nassrat. * lth yajl_integer now deals in long, instead of long long. This combined with yajl_number improves compiler compatibility while maintaining precision. * lth better ./configure && make experience (still requires cmake and ruby) * lth fix handling of special characters hex 0F and 1F in yajl_encode (thanks to Robert Geiger) * lth allow leading zeros in exponents (thanks to Hatem Nassrat) 0.3.0 * lth doxygen documentation (html & man) generated as part of the build * lth many documentation updates. * lth fix to work with older versions of cmake (don't use LOOSE_LOOP constructs) * lth work around different behavior of freebsd 4 scanf. initialize parameter to scanf to zero. * lth all tests run 32x with ranging buffer sizes to stress stream parsing * lth yajl_test accepts -b option to allow read buffer size to be set * lth option to validate UTF8 added to parser (argument in yajl_parser_cfg) * lth fix buffer overrun when chunk ends inside \u escaped text * lth support client cancelation 0.2.2 * lth on windows build debug with C7 symbols and no pdb files. 0.2.1 * fix yajl_reformat and yajl_verify to work on arbitrarily sized inputs. * fix win32 build break, clean up all errors and warnings. * fix optimized build flags. 0.2.0 * optionally support comments in input text 0.1.0 * Initial release usr/share/doc/at/ChangeLog000064400000012733152527034070011415 0ustar00at 3.0: at now has a lex/yacc grammer, which is an extension of POSIX.2 to something more sensible. There's an atd, which can still simulate atrun with the -s option. at 3.1: Tried to fix some races in the atd code by renaming running jobs to "=" (thanks to aj@arthur.pfalz.de for pointing out the bug). at 3.1.1: The last fix didn't work. New locking scheme: as soon as a job starts, the file a00beef is hardlinked to =00beef. a00beef is unlinked as soon as actual shell execution starts. "=" - files are deleted as soon as their job ends, or an hour after they should have run. at 3.1.2: cleanups: indent the source with OTBS remove output file if it already exists, with a warning. log attempts to run job twice added -b option to atd removed -b option from at (now batch calls "at -qb now") revamp run_loop so -b works correctly at 3.1.3: Fixed "at 07:30" functionality for implicit tomorrow Include yywrap if none can be found at 3.1.4: Set default batch maximum to 0.8 Changed install group to 'root' at 3.1.5: Merged Bjorn Helgaas' (helgaas@tomahawk.rsn.hp.com) patches: * Use setresuid(2) if setreuid(2) is not available (HP-UX 10) * Use "chown user:group" instead of "chown user.group" for HP-UX compatibility * RELINQUISH_PRIVS slightly earlier in at.c, since it doesn't depend on * Change "volatile static" to "static volatile" * Test for HAVE_ATTRIBUTE_NORETURN instead of __GNUC__ in daemon.h Don't export SHELLOPTS (read-only variable in bash) at 3.1.6: Made 'noon', 'teatime' and 'midnight' work. Reran autoheader so HP-UX compilation works. at 3.1.7: Made parser case-independent by specifying -i to flex at 3.1.8: Fixed spelling mistake in manpage Created at_allow(5) and at_deny(5) manpages Fixed bug where 'next monday' could be a synonym for today Fixed spelling bug in parser (misspelled February) Removed obsolete '-v' flag from atq at 3.1.11: Ansgar Burchardt (15): correct comment in atd.c rc: do not set -e panic.c: switch permissions before unlink update configure script update config.guess and config.sub Makefile.in: do not remove debian/tmp at.c: add -t option document new -t option remove unused function parsetimespec at.c: exit successfully when -V is given fix some typos update contact address update copyright information set version to 3.1.11 remove $Id$ tags Cyril Brulebois (7): Make Copyright a regular file. Copy debian/rc to rc, it's not Debian-specific. Copy debian/pam to pam.conf, it's not Debian-specific. Remove the debian/ directory. Fix LFILE/ATJOB_DIR usage in nextjob(). Fix missing panic.h include. Remove unused "static const char *svnid" at 3.1.12: Ansgar Burchardt (18): do not increment year twice do not increment day of month twice update documentation on removed environment variables add -f option to stay in foreground error when day of month is 0 make less assumptations on open file descriptors use common-session-noninteractive make parsetest buildable pass -i option to sendmail use pid file in init script add status action to init script make stdout, stderr available to sendmail process default queues are no longer configurable document -b option pass current time as a parameter to parsetime() document 4-digit years and ISO date format add test suite update copyright information at 3.1.13: Ansgar Burchardt (18): parsetime.pl: add test case correct error message when initgroups fails change owner of output file do not open output file twice use strdup() at.1.in: Add references to at.allow(5), at.deny(5) Sort references in SEE ALSO section. man page for atrun is in section 8 at.1.in: Document -M option. at.1.in: Remove a dot from mid-sentence. Rename at_allow.5.in to at.allow.5.in Remove useless chdir() Create hardlink as priviledged user Update my email address. atd.c: variable "rc" is always used No longer mention atrun in documentation. do not abort when job is removed just before we run it do not strip binaries on install Mike Miller (1): Add support for -r option required by POSIX. Reuben Thomas (2): De-duplicate and improve documentation of /etc/at.{deny,allow}. Clarify an error message. at 3.1.14: Ansgar Burchardt (5): Add systemd service file. Initialize jobno before using it. No longer try to compile and run a trivial C program. Add -M option to usage message. Use LDFLAGS when linking programs. at 3.1.15 (2014-08-10): Ansgar Burchardt (3): pam.conf: require pam_loginuid.so atd.service.in: Add Documentation field. atd.service.in: Set IgnoreSIGPIPE=false at 3.1.16 (2014-09-30): Ansgar Burchardt (1): at: only retain variables whose name consists of alphanumerics and underscores at 3.1.17 (2015-08-31): Jose M Calhariz: at.1.in: Document behaviour when using past time, thanks Kelly Price (Closes: #639900). Makefile.in: On distclean remove at.allow.5, auto generated file. at 3.1.18 (2015-12-06) Jose M Calhariz: Add support for SELinux, multiples files at 3.1.19 (2016-03-20) Jose M Calhariz: Fix configure handling of flag --without-selinux. Last entry on this file follow debian/changelog. usr/share/doc/libusbx/ChangeLog000064400000040303152527042530012453 0ustar00For detailed information about the changes below, please see the git log. 2026-05-17: v1.0.30 * Add hotplug support on Microsoft Windows * Add RAW_IO support in WinUSB backend * Work around a macOS 26 Tahoe compatibility breakage due to Apple changing kUSBHostPortPropertyPortNumber * Add new API libusb_get_device_string() to access device strings without opening the device * Add new API libusb_get_session_data() which returns the OS-specific handle * Fix device removal races on non-hotplug builds * Improve descriptor parsing memory safety * On Darwin, fix concurrency issues * On Android, fix intermittent failures in get_usbfs_fd() * On Windows, fix bus number assignment for root hub device, preventing duplicate bus number assignments * Fix compilation with Microsoft Visual Studio 2026 * Fix various compiler warnings, improved tests and examples 2025-06-01: v1.0.29 * Fix regression on macOS leading to timeouts in enumeration * LIBUSB_API_VERSION bump for the new functions in 1.0.28 * Fix xusb regression displaying wrong error on claim failure 2025-03-18: v1.0.28 * New libusb_get_ssplus_usb_device_capability_descriptor API for query of SuperSpeed+ Capability Descriptors * API support for reporting USB 3.2 Gen2x2 speeds * macOS: Fix Zero-Length Packet for multiple packets per frame * Windows: Base HID device descriptor on OS-cached values * Build fixes for Haiku and SunOS * Many code correctness fixes 2024-01-31: v1.0.27 * New libusb_init_context API to replace libusb_init * New libusb_get_max_alt_packet_size API * New libusb_get_platform_descriptor API (BOS) * Allow setting log callback with libusb_set_option/libusb_init_context * New WebAssembly + WebUSB backend using Emscripten * Fix regression in libusb_set_interface_alt_setting * Fix sync transfer completion race and use-after-free * Fix hotplug exit ordering * Linux: NO_DEVICE_DISCOVERY option set per context * macOS: Fix missing device list cleanup locking * macOS: Do not clear device data toggle for newer OS versions * macOS: Fix running binaries on older OS than build host * Windows: Allow claiming multiple associated interfaces * Windows: Ignore non-configured devices instead of waiting * Windows: Improved root hub detection 2022-04-10: v1.0.26 * Fix regression with transfer free's after closing device * Fix regression with destroyed context if API is misused * Workaround for applications using missing default context * Fix hotplog enumeration regression * Fix Windows isochronous transfer regression since 1.0.24 * Fix macOS exit crash in some multi-context cases * Build fixes for various platforms and configurations * Fix Windows HID multi-interface product string retrieval * Update isochronous OUT packet actual lengths on Windows * Add interface bound checking for broken devices * Add umockdev tests on Linux 2022-01-31: v1.0.25 * Linux: Fix regression with some particular devices * Linux: Fix regression with libusb_handle_events_timeout_completed() * Linux: Fix regression with cpu usage in libusb_bulk_transfer * Darwin (macOS): Add support for detaching kernel drivers with authorization. * Darwin (macOS): Do not drop partial data on timeout. * Darwin (macOS): Silence pipe error in set_interface_alt_setting(). * Windows: Fix HID backend missing byte * Windows: Fix segfault with libusbk driver * Windows: Fix regression when using libusb0 driver * Windows: Support LIBUSB_TRANSFER_ADD_ZERO_PACKET on winusb * New NO_DEVICE_DISCOVERY option replaces WEAK_AUTHORITY option * Various other bug fixes and improvements 2020-12-09: v1.0.24 * Add new platform abstraction (#252) * Add Null POSIX backend * Add support for eventfd * Add support for thread IDs on Haiku, NetBSD and Solaris * New API libusb_hotplug_get_user_data() * Darwin (macOS): Fix race condition that results in segmentation fault (#701) * Darwin (macOS): Fix stale descriptor information post reset (#733) * Darwin (macOS): use IOUSBDevice as darwin_device_class explicitly (#693) * Linux: Drop support for kernel older than 2.6.32 * Linux: Provide an event thread name (#689) * Linux: Wait until all URBs have been reaped before freeing them (#607) * NetBSD: Recognize device timeouts (#710) * OpenBSD: Allow opening ugen devices multiple times (#763) * OpenBSD: Support libusb_get_port_number() (#764) * SunOS: Fix a memory leak (#756) * SunOS: Various fixes (#627, #628, #629) * Windows: Add Visual Studio 2019 support * Windows: Drop support for WinCE and Visual Studio older than 2013 * Windows: Drop support for Windows XP * Windows: Support building all examples using Visual Studio (#151) * Documentation fixes and improvements * Various other bug fixes and improvements 2019-08-28: v1.0.23 * Add German translation (#446) * Add Hungarian translation (#493) * Android: Improved support for Android * BSD: Remove infinite recursion in OpenBSD backend * configure.ac: Fix detection of clock_gettime library (#439) * Core: abandon synchronous transfers when device closure is detected. * Core: fix error in handling the removal of file descriptors while handling events. * Darwin(macOS): Switch from using ResetDevice to USBDeviceReEnumerate (#455) * Darwin(macOS): Remove code that changed the device class used (#428) * Darwin(macOS): Reduce hotplug timeout to 1ms (from 5s) * New API libusb_set_log_cb() to redirect global and per context log messages to the provided log handling function * New API libusb_wrap_sys_device to allow the user to specify the usb device to use. * Solaris: Break infinite recursion in backend clock_gettime * Solaris: Enable timerfd on sunos when available * Windows: Add support for isochronous transfers with WinUSB * Various other bug fixes and improvements 2018-03-24: v1.0.22 * New libusb_set_option() API * Fix transfer timeout not being cleared upon resubmission * Report super speed plus devices on modern Linux and macOS * Darwin: Improve support for macOS Sierra and High Sierra * Darwin: SDK fixes and improvements * Linux: Let initialization succeed when no devices are present * Linux: Mark internal file descriptors with CLOEXEC flag * Solaris: Add support for attach/detach kernel driver * Windows: Add dynamic UsbDk backend selection * Windows: Add isochronous transfer support via libusbK * Windows: Add Visual Studio 2017 support * Windows: Fix enumeration problems on Windows 8 and later * Windows: Major rework of poll() emulation * Windows: Numerous HID API fixes * Windows: Support cancellation of individual transfers (Vista and later) * Various other bug fixes and improvements 2016-10-01: v1.0.21 * Core: Refactor code related to transfer flags and timeout handling * Darwin: Ignore root hub simulation devices * Darwin: Improved support for OS X El Capitan * Darwin: Work around devices with buggy endpoint descriptors * Darwin: Do not use objc_registerThreadWithCollector after its deprecation * Darwin: Use C11 atomics on 10.12+ as the OS atomics are now deprecated * Linux: Support preallocating kernel memory for zerocopy USB * Linux: Deal with receiving POLLERR before all transfers have completed * Solaris: Add solaris backend * Windows: Add Visual Studio 2015 support * Windows: Add usbdk backend * Prevent attempts to recursively handle events * Fix race condition in handle_timeout() * Allow transferred argument to be optional in bulk APIs * Various other bug fixes and improvements 2015-09-13: v1.0.20 * Add Haiku support * Fix multiple memory and resource leaks (#16, #52, #76, #81) * Fix possible deadlock when executing transfer callback * New libusb_free_pollfds() API * Darwin: Fix devices not being detected on OS X 10.8 (#48) * Linux: Allow larger isochronous transfer submission (#23) * Windows: Fix broken builds Cygwin/MinGW builds and compiler warnings * Windows: Fix broken bus number lookup * Windows: Improve submission of control requests for composite devices * Examples: Add two-stage load support to fxload (#12) * Correctly report cancellations due to timeouts * Improve efficiency of event handling * Improve speed of transfer submission in multi-threaded environments * Various other bug fixes and improvements The (#xx) numbers are libusb issue numbers, see ie: https://github.com/libusb/libusb/issues/16 2014-05-30: v1.0.19 * Add support for USB bulk streams on Linux and Mac OS X (#11) * Windows: Add AMD and Intel USB-3.0 root hub support * Windows: Fix USB 3.0 speed detection on Windows 8 or later (#10) * Added Russian translation for libusb_strerror strings * All: Various small fixes and cleanups 2014-01-25: v1.0.18 * Fix multiple memory leaks * Fix a crash when HID transfers return no data on Windows * Ensure all pending events are consumed * Improve Android and ucLinux support * Multiple Windows improvements (error logging, VS2013, VIA xHCI support) * Multiple OS X improvements (broken compilation, SIGFPE, 64bit support) 2013-09-06: v1.0.17 * Hotplug callbacks now always get passed a libusb_context, even if it is the default context. Previously NULL would be passed for the default context, but since the first context created is the default context, and most apps use only 1 context, this meant that apps explicitly creating a context would still get passed NULL * Android: Add .mk files to build with the Android NDK * Darwin: Add Xcode project * Darwin: Fix crash on unplug (#121) * Linux: Fix hang (deadlock) on libusb_exit * Linux: Fix libusb build failure with --disable-udev (#124) * Linux: Fix libusb_get_device_list() hang with --disable-udev (#130) * OpenBSD: Update OpenBSD backend with support for control transfers to non-ugen(4) devices and make get_configuration() no longer generate I/O. Note that using this libusb version on OpenBSD requires using OpenBSD 5.3-current or later. Users of older OpenBSD versions are advised to stay with the libusb shipped with OpenBSD (mpi) * Windows: fix libusb_dll_2010.vcxproj link errors (#129) * Various other bug fixes and improvements 2013-07-11: v1.0.16 * Add hotplug support for Darwin and Linux (#9) * Add superspeed endpoint companion descriptor support (#15) * Add BOS descriptor support (#15) * Make descriptor parsing code more robust * New libusb_get_port_numbers API, this is libusb_get_port_path without the unnecessary context parameter, libusb_get_port_path is now deprecated * New libusb_strerror API (#14) * New libusb_set_auto_detach_kernel_driver API (#17) * Improve topology API docs (#95) * Logging now use a single write call per log-message, avoiding log-message "interlacing" when using multiple threads. * Android: use Android logging when building on Android (#101) * Darwin: make libusb_reset reenumerate device on descriptors change (#89) * Darwin: add support for the LIBUSB_TRANSFER_ADD_ZERO_PACKET flag (#91) * Darwin: add a device cache (#112, #114) * Examples: Add sam3u_benchmark isochronous example by Harald Welte (#109) * Many other bug fixes and improvements The (#xx) numbers are libusbx issue numbers, see ie: https://github.com/libusbx/libusbx/issues/9 2013-04-15: v1.0.15 * Improve transfer cancellation and avoid short read failures on broken descriptors * Filter out 8-bit characters in libusb_get_string_descriptor_ascii() * Add WinCE support * Add library stress tests * Add Cypress FX3 firmware upload support for fxload sample * Add HID and kernel driver detach support capabilities detection * Add SuperSpeed detection on OS X * Fix bInterval value interpretation on OS X * Fix issues with autoclaim, composite HID devices, interface autoclaim and early abort in libusb_close() on Windows. Also add VS2012 solution files. * Improve fd event handling on Linux * Other bug fixes and improvements 2012-09-26: v1.0.14 * Reverts the previous API change with regards to bMaxPower. If this doesn't matter to you, you are encouraged to keep using v1.0.13, as it will use the same attribute as v2.0, to be released soon. * Note that LIBUSB_API_VERSION is *decreased* to 0x010000FF and the previous guidelines with regards to concurrent use of MaxPower/bMaxPower still apply. 2012-09-20: v1.0.13 * [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where MaxPower was used instead of bMaxPower, as defined in the specs. If your application was accessing the MaxPower attribute, and you need to maintain compatibility with libusb or older versions, see APPENDIX A below. * Fix broken support for the 0.1 -> 1.0 libusb-compat layer * Fix unwanted cancellation of pending timeouts as well as major timeout related bugs * Fix handling of HID and composite devices on Windows * Introduce LIBUSB_API_VERSION macro * Add Cypress FX/FX2 firmware upload sample, based on fxload from http://linux-hotplug.sourceforge.net * Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that while the drivers allow it, isochronous transfers are not supported yet in libusb. Also not supported yet is the use of libusb-win32 filter drivers on composite interfaces * Add support for the new get_capabilities ioctl on Linux and avoid unnecessary splitting of bulk transfers * Improve support for newer Intel and Renesas USB 3.0 controllers on Windows * Harmonize the device number for root hubs across platforms * Other bug fixes and improvements 2012-06-15: v1.0.12 * Fix a potential major regression with pthread on Linux * Fix missing thread ID from debug log output on cygwin * Fix possible crash when using longjmp and MinGW's gcc 4.6 * Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path() * Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable * Define log levels in libusb.h and set timestamp origin to first libusb_init() call * All logging is now sent to to stderr (info was sent to stdout previously) * Update log messages severity and avoid polluting log output on OS-X * Add HID driver support on Windows * Enable interchangeability of MSVC and MinGW DLLs * Additional bug fixes and improvements 2012-05-08: v1.0.11 * Revert removal of critical Windows event handling that was introduced in 1.0.10 * Fix a possible deadlock in Windows when submitting transfers * Add timestamped logging * Add NetBSD support (experimental) and BSD libusb_get_device_speed() data * Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure) * Search for device nodes in /dev for Android support * Other bug fixes 2012-04-17: v1.0.10 * Public release * Add libusb_get_version * Add Visual Studio 2010 project files * Some Windows code cleanup * Fix xusb sample warnings 2012-04-02: v1.0.9 * First libusbx release * Add libusb_get_device_speed (all, except BSD) and libusb_error_name * Add Windows support (WinUSB driver only) * Add OpenBSD support * Add xusb sample * Tons of bug fixes 2010-05-07: v1.0.8 * Bug fixes 2010-04-19: v1.0.7 * Bug fixes and documentation tweaks * Add more interface class definitions 2009-11-22: v1.0.6 * Bug fixes * Increase libusb_handle_events() timeout to 60s for powersaving 2009-11-15: v1.0.5 * Use timerfd when available for timer management * Small fixes/updates 2009-11-06: v1.0.4 release * Bug fixes including transfer locking to fix some potential threading races * More flexibility with clock types on Linux * Use new bulk continuation tracking in Linux 2.6.32 for improved handling of short/failed transfers 2009-08-27: v1.0.3 release * Bug fixes * Add libusb_get_max_iso_packet_size() 2009-06-13: v1.0.2 release * Bug fixes 2009-05-12: v1.0.1 release * Bug fixes * Darwin backend 2008-12-13: v1.0.0 release * Bug fixes 2008-11-21: v0.9.4 release * Bug fixes * Add libusb_attach_kernel_driver() 2008-08-23: v0.9.3 release * Bug fixes 2008-07-19: v0.9.2 release * Bug fixes 2008-06-28: v0.9.1 release * Bug fixes * Introduce contexts to the API * Compatibility with new Linux kernel features 2008-05-25: v0.9.0 release * First libusb-1.0 beta release ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ APPENDIX A - How to maintain code compatibility with versions of libusb and libusb that use MaxPower: If you must to maintain compatibility with versions of the library that aren't using the bMaxPower attribute in struct libusb_config_descriptor, the recommended way is to use the new LIBUSB_API_VERSION macro with an #ifdef. For instance, if your code was written as follows: if (dev->config[0].MaxPower < 250) Then you should modify it to have: #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000100) if (dev->config[0].bMaxPower < 250) #else if (dev->config[0].MaxPower < 250) #endif usr/share/doc/perl-TimeDate/ChangeLog000064400000025053152527055060013446 0ustar002.30 -- Mon Feb 18 13:31:03 CST 2013 * Syncing distribution version number with Date::Parse, not functional changes 1.20 -- Sat Dec 12 06:38:14 CST 2009 * Typo => s/timezome/timezone/ [yanick] * RT#52387 Fix %s formating to use timelocal when no timezone is given * RT#51664 fix str2time('16 Oct 09') to not give a negative result 1.19 -- Fri Sep 25 13:59:41 CDT 2009 * Replace Date::Language::Hungarian with version from CPAN by Lee Goddard 1.18 -- Thu Sep 24 17:43:28 CDT 2009 * RT#49963 Skip pre 1970 date tests on Win32 * Added Date::Language::Hungarian (Konrad Lorinczi) 1.17 -- Sat Sep 19 10:56:12 CDT 2009 Bugfixes * RT#45067: Date::Format with %z gives wrong results for half-hour timezones (Ernesto Hernández-Novich) * RT#48164: Date::Parse unable to set seconds correctly * RT#17396: Parse error for french date with 'mars' (march) as month Documentation * Fixed documentation for %e in Date::Format * Update documentation to remove Date::Format->language Enhancements * Add support for dates like Jul-13-1999 (Brett Warden) * Added Icelandic language (Tomas Edwardsson) * Added Romanian language (Doru Petrescu) * Added Russian language (Denis Poznyakov & Danil Pismenny) * Added Turkish language (Burak Gursoy) * Added Spanish language (Adrian Mugnolo) * Added Chinese language (Kang-min Liu) * Support parsing dates like 2002-02-26-10:37:21.141 as used by lpd * Support Z timezone when only the time is specified * Added METDST to Time::Zone * Added AKST/AKDT to Time::Zone Changes prior to 1.17 Change 814 on 2003/06/03 by (Graham Barr) Date::Parse - Time::Local in 5.8 does not support fractional seconds Change 813 on 2003/06/02 by (Graham Barr) Release 1.15 Change 812 on 2003/06/02 by (Graham Barr) Fix comments about Language implementation in Date::Parse (patch from Christian Hammers) Change 811 on 2003/06/02 by (Graham Barr) Fix short name for 'maart' to be 'mrt' as suggested by Frank Maas Change 810 on 2003/06/02 by (Graham Barr) Add %G format for GPS week (patch from Eric Richardson) Change 809 on 2003/06/02 by (Graham Barr) Language updates from Daniel Yacob Change 808 on 2003/06/02 by (Graham Barr) str2time("") should return undef Change 807 on 2003/06/02 by (Graham Barr) Added Swedish and Finnish languages from Matthew Musgrove Change 778 on 2003/03/03 by (Graham Barr) Added Chinese_GB language. Supplied by forehead (I don't even pretend tounderstand it) Change 777 on 2003/03/03 by (Graham Barr) Return fractional seconds when specified in an ISO date Change 776 on 2003/03/03 by (Graham Barr) New languages from Daniel Yacob Change 775 on 2003/03/03 by (Graham Barr) Fix UTC support on ISO dates Change 774 on 2003/03/03 by (Graham Barr) Allow a : in a timezone so the dates specified in RSS can be parsed (eg 2002-11-07T23:31:49-05:00) Patch from Kellan Change 773 on 2003/03/03 by (Graham Barr) Support parsing more formats Change 754 on 2002/11/03 by (Graham Barr) Release 1.14 Change 753 on 2002/11/03 by (Graham Barr) Fix bug parsing 2002-11-02 11pm Change 752 on 2002/11/03 by (Graham Barr) Add Greek language module from Matthew Musgrove Change 744 on 2002/09/16 by (Graham Barr) Add Date::Language::Brazilian and Date::Language::Danish to MANIFEST Change 743 on 2002/09/16 by (Graham Barr) Add Date::Language::Brazilian from Christian Tosta Add Date::Language::Danish from Lars Skjærlund Change 742 on 2002/09/16 by (Graham Barr) Time::Zone - Add some zones for Brazil Change 741 on 2002/09/16 by (Graham Barr) Time::Zone [cpan #1299] - Allow $ENV{TZ} to have zomes like EST5 Change 733 on 2002/06/13 by (Graham Barr) Date::Language::French - Fix missing ; Change 732 on 2002/06/06 by (Graham Barr) Release 1.13 Change 731 on 2002/06/06 by (Graham Barr) Fix pattern to allow single digits for month and day (eg '2002-6-1') Change 730 on 2002/06/03 by (Graham Barr) Release 1.12 Change 729 on 2002/06/03 by (Graham Barr) Fix month name abbreviations Change 720 on 2002/04/25 by (Graham Barr) Date::Parse - Make it work with 5.004 again Change 719 on 2002/04/25 by (Graham Barr) Prevent the ISO date pattern matching where it should not. ie there must not be a non-space character directly before the date string Change 718 on 2002/04/17 by (Graham Barr) Change French @Dsuf, from Peter Samuelson Change 712 on 2002/03/07 by (Graham Barr) Added %L format for month number as 1..12 from Adam Monsen Change 708 on 2002/02/28 by (Graham Barr) Release 1.11 Change 707 on 2002/02/28 by (Graham Barr) Fix format error in t/date.t Change 692 on 2002/01/09 by (Graham Barr) Be a bit more lenient on the ISO format Change 691 on 2002/01/02 by (Graham Barr) Fix typo in ISO-8601 formats in docs Change 690 on 2001/12/28 by (Graham Barr) Date::Format - Fix array dereference syntax typo Change 689 on 2001/12/28 by (Graham Barr) Date::Format - Fix doc typos Change 682 on 2001/11/20 by (Graham Barr) Date::Parse - Make the minutes and seconds parts of an ISO-8601 optional (patch from Christian Hammers) Change 681 on 2001/11/20 by (Graham Barr) Date::Parse - Allow AM/PM to be just A/P (eg Jul 13 1999 1:23P) as used by MySQL (patch from Drew Degentesh) Change 680 on 2001/11/20 by (Graham Barr) Time::Zone - Add CEST Central European Daylight Change 679 on 2001/11/20 by (Graham Barr) Date::Parse - Extract (but ignore) fractions of a second in an ISO8601 date string (patch from rayg at yahoo-inc.com) Change 678 on 2001/11/20 by (Graham Barr) Add %P to be am or pm Change 677 on 2001/11/20 by (Graham Barr) Date::Language::French - Um, the french have 7 days in the week just like everyone else Change 676 on 2001/11/20 by (Graham Barr) Date::Language::German - Fix abbrev for October (patch from Stefan Niederhauser) Change 634 on 2001/09/03 by (Graham Barr) Add a check for invalid years in format 1995-01-24 Change 580 on 2000/09/04 by (Graham Barr) Release 1.10 Change 579 on 2000/09/04 by (Graham Barr) Date::Parse - Support for more date formats Time::Zone - Added more zones Change 539 on 2000/06/14 by (Graham Barr) Documentation updates Change 536 on 2000/06/06 by (Graham Barr) Fix VERSION numbers Change 535 on 2000/06/06 by (Graham Barr) Date::Format - Added support for %O* to support output of roman numerals Change 443 on 2000/03/29 by (Graham Barr) Release 1.09 Change 442 on 2000/03/29 by (Graham Barr) Added PPD stuff to Makefile.PL Change 441 on 2000/03/29 by (Graham Barr) Date::Parse - Allow "s after the timezone Change 440 on 2000/03/29 by (Graham Barr) Date::Format - Fix doc for %c and %C Change 409 on 2000/03/28 by (Graham Barr) Moved .pm files into lib directory Change 408 on 2000/03/28 by (Graham Barr) str2time returns undef on error bit Time::Local returns -1. Check if the -1 is real or an error Change 407 on 2000/03/28 by (Graham Barr) Added Eastern European Summer Time EEST Change 268 on 1999/03/18 by (Graham Barr) Date::Format, Time::Zone - Fix problem with %z and %Z as suggested by Jason A Smith Change 267 on 1999/03/18 by (Graham Barr) - Make t/getdate.t more portable as suggested by Paul Schinder Change 250 on 1999/02/06 by (Graham Barr) Date::Format - Correct docs for %d and %e Change 249 on 1999/02/06 by (Graham Barr) Added Date::Language::Czech Change 180 on 1998/08/05 by (Graham Barr) Date::Language - Added Date::Language::French contributed by Emmanuel Bataille (bem@residents.frmug.org) - Split out the languages into .pm's Date::Parse - Added patch from Alan Burlison to Date::Parse to allow zone offests +7, +10 and +700 - Parse now supports GMT+0100 *** Release 1.08 Fri Jan 2 1998 (Graham Barr) Date::Format, Time::Zone - Fix for formatting %z and %Z all - Update Email address and year Tue Feb 17 1998 (Graham Barr) Date::Language - Added format_o to German Fri Sep 12 1997 (Graham Barr) Date::Parse - Added 'DST' to parser, it adjusts $zone by 3600 (but that may not be right in all cases) - Added a check to str2time to ensure valid values are passed to Time::Local, to avoid croak-ing - Fixed to treat AM and PM correctly when the hour is 12. (I hope :-) Time::Zone - Modified for Western Australia Tue 07 Jan 1996 o Release 1.07 o Fixed a problem in Time::Zone (had @l[8] instead of $l[8], doh! ) Thu 02 Jan 1996 o Release 1.06 o Fixed t/getdate.t o Date::Parse can now parse the date-format 960913, which apparently is fairly common in sweden. Wed 31 Jul 1996 o Release 1.05 o Modified Date::Format not to use single letter sub names, all format sub names are nore prefixed with format_ o Cleaned up Date/Format.pm so that AUTOLOAD is not required o Patched Date/Language.pm to add Norwegian. Thanks to Gisle Aas for the patch Thu 27 Jun 1996 o Added %z to Date::Format to output timezone in +/-0000 format o Added multi-language support via Date::Language,. Tue 25 Jun 1996 o Some code tidying up o added a new test, copied from Date::GetDate o improved performance Wed 22 May 1996 o Fixed a bug in the parser for dates in a default (local) timezone but a different dst Wed 15 May 1996 o Added support for mainframe type dates Fri 3 May 1996 o Added %s to date formatting at request of Josh Osborne . usr/share/doc/pcre2-utf16/ChangeLog000064400000253507152527057440013003 0ustar00Change Log for PCRE2 -------------------- Version 10.32-RC1 10-September-2018 ----------------------------------- 1. When matching using the the REG_STARTEND feature of the POSIX API with a non-zero starting offset, unset capturing groups with lower numbers than a group that did capture something were not being correctly returned as "unset" (that is, with offset values of -1). 2. When matching using the POSIX API, pcre2test used to omit listing unset groups altogether. Now it shows those that come before any actual captures as "", as happens for non-POSIX matching. 3. Running "pcre2test -C" always stated "\R matches CR, LF, or CRLF only", whatever the build configuration was. It now correctly says "\R matches all Unicode newlines" in the default case when --enable-bsr-anycrlf has not been specified. Similarly, running "pcre2test -C bsr" never produced the result ANY. 4. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing multi-code-unit characters caused bad behaviour and possibly a crash. This issue was fixed for other kinds of repeat in release 10.20 by change 19, but repeating character classes were overlooked. 5. pcre2grep now supports the inclusion of binary zeros in patterns that are read from files via the -f option. 6. A small fix to pcre2grep to avoid compiler warnings for -Wformat-overflow=2. 7. Added --enable-jit=auto support to configure.ac. 8. Added some dummy variables to the heapframe structure in 16-bit and 32-bit modes for the benefit of m68k, where pointers can be 16-bit aligned. The dummies force 32-bit alignment and this ensures that the structure is a multiple of PCRE2_SIZE, a requirement that is tested at compile time. In other architectures, alignment requirements take care of this automatically. 9. When returning an error from pcre2_pattern_convert(), ensure the error offset is set zero for early errors. 10. A number of patches for Windows support from Daniel Richard G: (a) List of error numbers in Runtest.bat corrected (it was not the same as in Runtest). (b) pcre2grep snprintf() workaround as used elsewhere in the tree. (c) Support for non-C99 snprintf() that returns -1 in the overflow case. 11. Minor tidy of pcre2_dfa_match() code. 12. Refactored pcre2_dfa_match() so that the internal recursive calls no longer use the stack for local workspace and local ovectors. Instead, an initial block of stack is reserved, but if this is insufficient, heap memory is used. The heap limit parameter now applies to pcre2_dfa_match(). 13. If a "find limits" test of DFA matching in pcre2test resulted in too many matches for the ovector, no matches were displayed. 14. Removed an occurrence of ctrl/Z from test 6 because Windows treats it as EOF. The test looks to have come from a fuzzer. 15. If PCRE2 was built with a default match limit a lot greater than the default default of 10 000 000, some JIT tests of the match limit no longer failed. All such tests now set 10 000 000 as the upper limit. 16. Another Windows related patch for pcregrep to ensure that WIN32 is undefined under Cygwin. 17. Test for the presence of stdint.h and inttypes.h in configure and CMake and include whichever exists (stdint preferred) instead of unconditionally including stdint. This makes life easier for old and non-standard systems. 18. Further changes to improve portability, especially to old and or non- standard systems: (a) Put all printf arguments in RunGrepTest into single, not double, quotes, and use \0 not \x00 for binary zero. (b) Avoid the use of C++ (i.e. BCPL) // comments. (c) Parameterize the use of %zu in pcre2test to make it like %td. For both of these now, if using MSVC or a standard C before C99, %lu is used with a cast if necessary. 19. Applied a contributed patch to CMakeLists.txt to increase the stack size when linking pcre2test with MSVC. This gets rid of a stack overflow error in the standard set of tests. 20. Output a warning in pcre2test when ignoring the "altglobal" modifier when it is given with the "replace" modifier. 21. In both pcre2test and pcre2_substitute(), with global matching, a pattern that matched an empty string, but never at the starting match offset, was not handled in a Perl-compatible way. The pattern /(a(*:1))(?>b)(*SKIP:1)x|.*/ matched against "abc", where the *SKIP shouldn't find a MARK (because is in an atomic group), but it did. 26. Upgraded the perltest.sh script: (1) #pattern lines can now be used to set a list of modifiers for all subsequent patterns - only those that the script recognizes are meaningful; (2) #subject lines can be used to set or unset a default "mark" modifier; (3) Unsupported #command lines give a warning when they are ignored; (4) Mark data is output only if the "mark" modifier is present. 27. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported. 28. A (*MARK) name was not being passed back for positive assertions that were terminated by (*ACCEPT). 29. Add support for \N{U+dddd}, but only in Unicode mode. 30. Add support for (?^) for unsetting all imnsx options. 31. The PCRE2_EXTENDED (/x) option only ever discarded space characters whose code point was less than 256 and that were recognized by the lookup table generated by pcre2_maketables(), which uses isspace() to identify white space. Now, when Unicode support is compiled, PCRE2_EXTENDED also discards U+0085, U+200E, U+200F, U+2028, and U+2029, which are additional characters defined by Unicode as "Pattern White Space". This makes PCRE2 compatible with Perl. 32. In certain circumstances, option settings within patterns were not being correctly processed. For example, the pattern /((?i)A)(?m)B/ incorrectly matched "ab". (The (?m) setting lost the fact that (?i) should be reset at the end of its group during the parse process, but without another setting such as (?m) the compile phase got it right.) This bug was introduced by the refactoring in release 10.23. 33. PCRE2 uses bcopy() if available when memmove() is not, and it used just to define memmove() as function call to bcopy(). This hasn't been tested for a long time because in pcre2test the result of memmove() was being used, whereas bcopy() doesn't return a result. This feature is now refactored always to call an emulation function when there is no memmove(). The emulation makes use of bcopy() when available. 34. When serializing a pattern, set the memctl, executable_jit, and tables fields (that is, all the fields that contain pointers) to zeros so that the result of serializing is always the same. These fields are re-set when the pattern is deserialized. 35. In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated negative class with no characters less than 0x100 followed by a positive class with only characters less than 0x100, the first class was incorrectly being auto-possessified, causing incorrect match failures. 36. Removed the character type bit ctype_meta, which dates from PCRE1 and is not used in PCRE2. 37. Tidied up unnecessarily complicated macros used in the escapes table. 38. Since 10.21, the new testoutput8-16-4 file has accidentally been omitted from distribution tarballs, owing to a typo in Makefile.am which had testoutput8-16-3 twice. Now fixed. 39. If the only branch in a conditional subpattern was anchored, the whole subpattern was treated as anchored, when it should not have been, since the assumed empty second branch cannot be anchored. Demonstrated by test patterns such as /(?(1)^())b/ or /(?(?=^))b/. 40. A repeated conditional subpattern that could match an empty string was always assumed to be unanchored. Now it it checked just like any other repeated conditional subpattern, and can be found to be anchored if the minimum quantifier is one or more. I can't see much use for a repeated anchored pattern, but the behaviour is now consistent. 41. Minor addition to pcre2_jit_compile.c to avoid static analyzer complaint (for an event that could never occur but you had to have external information to know that). 42. If before the first match in a file that was being searched by pcre2grep there was a line that was sufficiently long to cause the input buffer to be expanded, the variable holding the location of the end of the previous match was being adjusted incorrectly, and could cause an overflow warning from a code sanitizer. However, as the value is used only to print pending "after" lines when the next match is reached (and there are no such lines in this case) this bug could do no damage. Version 10.31 12-February-2018 ------------------------------ 1. Fix typo (missing ]) in VMS code in pcre2test.c. 2. Replace the replicated code for matching extended Unicode grapheme sequences (which got a lot more complicated by change 10.30/49) by a single subroutine that is called by both pcre2_match() and pcre2_dfa_match(). 3. Add idempotent guard to pcre2_internal.h. 4. Add new pcre2_config() options: PCRE2_CONFIG_NEVER_BACKSLASH_C and PCRE2_CONFIG_COMPILED_WIDTHS. 5. Cut out \C tests in the JIT regression tests when NEVER_BACKSLASH_C is defined (e.g. by --enable-never-backslash-C). 6. Defined public names for all the pcre2_compile() error numbers, and used the public names in pcre2_convert.c. 7. Fixed a small memory leak in pcre2test (convert contexts). 8. Added two casts to compile.c and one to match.c to avoid compiler warnings. 9. Added code to pcre2grep when compiled under VMS to set the symbol PCRE2GREP_RC to the exit status, because VMS does not distinguish between exit(0) and exit(1). 10. Added the -LM (list modifiers) option to pcre2test. Also made -C complain about a bad option only if the following argument item does not start with a hyphen. 11. pcre2grep was truncating components of file names to 128 characters when processing files with the -r option, and also (some very odd code) truncating path names to 512 characters. There is now a check on the absolute length of full path file names, which may be up to 2047 characters long. 12. When an assertion contained (*ACCEPT) it caused all open capturing groups to be closed (as for a non-assertion ACCEPT), which was wrong and could lead to misbehaviour for subsequent references to groups that started outside the assertion. ACCEPT in an assertion now closes only those groups that were started within that assertion. Fixes oss-fuzz issues 3852 and 3891. 13. Multiline matching in pcre2grep was misbehaving if the pattern matched within a line, and then matched again at the end of the line and over into subsequent lines. Behaviour was different with and without colouring, and sometimes context lines were incorrectly printed and/or line endings were lost. All these issues should now be fixed. 14. If --line-buffered was specified for pcre2grep when input was from a compressed file (.gz or .bz2) a segfault occurred. (Line buffering should be ignored for compressed files.) 15. Although pcre2_jit_match checks whether the pattern is compiled in a given mode, it was also expected that at least one mode is available. This is fixed and pcre2_jit_match returns with PCRE2_ERROR_JIT_BADOPTION when the pattern is not optimized by JIT at all. 16. The line number and related variables such as match counts in pcre2grep were all int variables, causing overflow when files with more than 2147483647 lines were processed (assuming 32-bit ints). They have all been changed to unsigned long ints. 17. If a backreference with a minimum repeat count of zero was first in a pattern, apart from assertions, an incorrect first matching character could be recorded. For example, for the pattern /(?=(a))\1?b/, "b" was incorrectly set as the first character of a match. 18. Characters in a leading positive assertion are considered for recording a first character of a match when the rest of the pattern does not provide one. However, a character in a non-assertive group within a leading assertion such as in the pattern /(?=(a))\1?b/ caused this process to fail. This was an infelicity rather than an outright bug, because it did not affect the result of a match, just its speed. (In fact, in this case, the starting 'a' was subsequently picked up in the study.) 19. A minor tidy in pcre2_match(): making all PCRE2_ERROR_ returns use "return" instead of "RRETURN" saves unwinding the backtracks in these cases (only one didn't). 20. Allocate a single callout block on the stack at the start of pcre2_match() and set its never-changing fields once only. Do the same for pcre2_dfa_match(). 21. Save the extra compile options (set in the compile context) with the compiled pattern (they were not previously saved), add PCRE2_INFO_EXTRAOPTIONS to retrieve them, and update pcre2test to show them. 22. Added PCRE2_CALLOUT_STARTMATCH and PCRE2_CALLOUT_BACKTRACK bits to a new field callout_flags in callout blocks. The bits are set by pcre2_match(), but not by JIT or pcre2_dfa_match(). Their settings are shown in pcre2test callouts if the callout_extra subject modifier is set. These bits are provided to help with tracking how a backtracking match is proceeding. 23. Updated the pcre2demo.c demonstration program, which was missing the extra code for -g that handles the case when \K in an assertion causes the match to end at the original start point. Also arranged for it to detect when \K causes the end of a match to be before its start. 24. Similar to 23 above, strange things (including loops) could happen in pcre2grep when \K was used in an assertion when --colour was used or in multiline mode. The "end at original start point" bug is fixed, and if the end point is found to be before the start point, they are swapped. 25. When PCRE2_FIRSTLINE without PCRE2_NO_START_OPTIMIZE was used in non-JIT matching (both pcre2_match() and pcre2_dfa_match()) and the matched string started with the first code unit of a newline sequence, matching failed because it was not tried at the newline. 26. Code for giving up a non-partial match after failing to find a starting code unit anywhere in the subject was missing when searching for one of a number of code units (the bitmap case) in both pcre2_match() and pcre2_dfa_match(). This was a missing optimization rather than a bug. 27. Tidied up the ACROSSCHAR macro to be like FORWARDCHAR and BACKCHAR, using a pointer argument rather than a code unit value. This should not have affected the generated code. 28. The JIT compiler has been updated. 29. Avoid pointer overflow for unset captures in pcre2_substring_list_get(). This could not actually cause a crash because it was always used in a memcpy() call with zero length. 30. Some internal structures have a variable-length ovector[] as their last element. Their actual memory is obtained dynamically, giving an ovector of appropriate length. However, they are defined in the structure as ovector[NUMBER], where NUMBER is large so that array bound checkers don't grumble. The value of NUMBER was 10000, but a fuzzer exceeded 5000 capturing groups, making the ovector larger than this. The number has been increased to 131072, which allows for the maximum number of captures (65535) plus the overall match. This fixes oss-fuzz issue 5415. 31. Auto-possessification at the end of a capturing group was dependent on what follows the group (e.g. /(a+)b/ would auto-possessify the a+) but this caused incorrect behaviour when the group was called recursively from elsewhere in the pattern where something different might follow. This bug is an unforseen consequence of change #1 for 10.30 - the implementation of backtracking into recursions. Iterators at the ends of capturing groups are no longer considered for auto-possessification if the pattern contains any recursions. Fixes Bugzilla #2232. Version 10.30 14-August-2017 ---------------------------- 1. The main interpreter, pcre2_match(), has been refactored into a new version that does not use recursive function calls (and therefore the stack) for remembering backtracking positions. This makes --disable-stack-for-recursion a NOOP. The new implementation allows backtracking into recursive group calls in patterns, making it more compatible with Perl, and also fixes some other hard-to-do issues such as #1887 in Bugzilla. The code is also cleaner because the old code had a number of fudges to try to reduce stack usage. It seems to run no slower than the old code. A number of bugs in the refactored code were subsequently fixed during testing before release, but after the code was made available in the repository. These bugs were never in fully released code, but are noted here for the record. (a) If a pattern had fewer capturing parentheses than the ovector supplied in the match data block, a memory error (detectable by ASAN) occurred after a match, because the external block was being set from non-existent internal ovector fields. Fixes oss-fuzz issue 781. (b) A pattern with very many capturing parentheses (when the internal frame size was greater than the initial frame vector on the stack) caused a crash. A vector on the heap is now set up at the start of matching if the vector on the stack is not big enough to handle at least 10 frames. Fixes oss-fuzz issue 783. (c) Handling of (*VERB)s in recursions was wrong in some cases. (d) Captures in negative assertions that were used as conditions were not happening if the assertion matched via (*ACCEPT). (e) Mark values were not being passed out of recursions. (f) Refactor some code in do_callout() to avoid picky compiler warnings about negative indices. Fixes oss-fuzz issue 1454. (g) Similarly refactor the way the variable length ovector is addressed for similar reasons. Fixes oss-fuzz issue 1465. 2. Now that pcre2_match() no longer uses recursive function calls (see above), the "match limit recursion" value seems misnamed. It still exists, and limits the depth of tree that is searched. To avoid future confusion, it has been renamed as "depth limit" in all relevant places (--with-depth-limit, (*LIMIT_DEPTH), pcre2_set_depth_limit(), etc) but the old names are still available for backwards compatibility. 3. Hardened pcre2test so as to reduce the number of bugs reported by fuzzers: (a) Check for malloc failures when getting memory for the ovector (POSIX) or the match data block (non-POSIX). 4. In the 32-bit library in non-UTF mode, an attempt to find a Unicode property for a character with a code point greater than 0x10ffff (the Unicode maximum) caused a crash. 5. If a lookbehind assertion that contained a back reference to a group appearing later in the pattern was compiled with the PCRE2_ANCHORED option, undefined actions (often a segmentation fault) could occur, depending on what other options were set. An example assertion is (?" should be ">=" in opcode check in pcre2_auto_possess.c. (b) Added some casts to avoid "suspicious implicit sign extension". (c) Resource leaks in pcre2test in rare error cases. (d) Avoid warning for never-use case OP_TABLE_LENGTH which is just a fudge for checking at compile time that tables are the right size. (e) Add missing "fall through" comment. 29. Implemented PCRE2_EXTENDED_MORE and related /xx and (?xx) features. 30. Implement (?n: for PCRE2_NO_AUTO_CAPTURE, because Perl now has this. 31. If more than one of "push", "pushcopy", or "pushtablescopy" were set in pcre2test, a crash could occur. 32. Make -bigstack in RunTest allocate a 64MiB stack (instead of 16MiB) so that all the tests can run with clang's sanitizing options. 33. Implement extra compile options in the compile context and add the first one: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES. 34. Implement newline type PCRE2_NEWLINE_NUL. 35. A lookbehind assertion that had a zero-length branch caused undefined behaviour when processed by pcre2_dfa_match(). This is oss-fuzz issue 1859. 36. The match limit value now also applies to pcre2_dfa_match() as there are patterns that can use up a lot of resources without necessarily recursing very deeply. (Compare item 10.23/36.) This should fix oss-fuzz #1761. 37. Implement PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL. 38. Fix returned offsets from regexec() when REG_STARTEND is used with a starting offset greater than zero. 39. Implement REG_PEND (GNU extension) for the POSIX wrapper. 40. Implement the subject_literal modifier in pcre2test, and allow jitstack on pattern lines. 41. Implement PCRE2_LITERAL and use it to support REG_NOSPEC. 42. Implement PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD for the benefit of pcre2grep. 43. Re-implement pcre2grep's -F, -w, and -x options using PCRE2_LITERAL, PCRE2_EXTRA_MATCH_WORD, and PCRE2_EXTRA_MATCH_LINE. This fixes two bugs: (a) The -F option did not work for fixed strings containing \E. (b) The -w option did not work for patterns with multiple branches. 44. Added configuration options for the SELinux compatible execmem allocator in JIT. 45. Increased the limit for searching for a "must be present" code unit in subjects from 1000 to 2000 for 8-bit searches, since they use memchr() and are much faster. 46. Arrange for anchored patterns to record and use "first code unit" data, because this can give a fast "no match" without searching for a "required code unit". Previously only non-anchored patterns did this. 47. Upgraded the Unicode tables from Unicode 8.0.0 to Unicode 10.0.0. 48. Add the callout_no_where modifier to pcre2test. 49. Update extended grapheme breaking rules to the latest set that are in Unicode Standard Annex #29. 50. Added experimental foreign pattern conversion facilities (pcre2_pattern_convert() and friends). 51. Change the macro FWRITE, used in pcre2grep, to FWRITE_IGNORE because FWRITE is defined in a system header in cygwin. Also modified some of the #ifdefs in pcre2grep related to Windows and Cygwin support. 52. Change 3(g) for 10.23 was a bit too zealous. If a hyphen that follows a character class is the last character in the class, Perl does not give a warning. PCRE2 now also treats this as a literal. 53. Related to 52, though PCRE2 was throwing an error for [[:digit:]-X] it was not doing so for [\d-X] (and similar escapes), as is documented. 54. Fixed a MIPS issue in the JIT compiler reported by Joshua Kinard. 55. Fixed a "maybe uninitialized" warning for class_uchardata in \p handling in pcre2_compile() which could never actually trigger (code should have been cut out when Unicode support is disabled). Version 10.23 14-February-2017 ------------------------------ 1. Extended pcre2test with the utf8_input modifier so that it is able to generate all possible 16-bit and 32-bit code unit values in non-UTF modes. 2. In any wide-character mode (8-bit UTF or any 16-bit or 32-bit mode), without PCRE2_UCP set, a negative character type such as \D in a positive class should cause all characters greater than 255 to match, whatever else is in the class. There was a bug that caused this not to happen if a Unicode property item was added to such a class, for example [\D\P{Nd}] or [\W\pL]. 3. There has been a major re-factoring of the pcre2_compile.c file. Most syntax checking is now done in the pre-pass that identifies capturing groups. This has reduced the amount of duplication and made the code tidier. While doing this, some minor bugs and Perl incompatibilities were fixed, including: (a) \Q\E in the middle of a quantifier such as A+\Q\E+ is now ignored instead of giving an invalid quantifier error. (b) {0} can now be used after a group in a lookbehind assertion; previously this caused an "assertion is not fixed length" error. (c) Perl always treats (?(DEFINE) as a "define" group, even if a group with the name "DEFINE" exists. PCRE2 now does likewise. (d) A recursion condition test such as (?(R2)...) must now refer to an existing subpattern. (e) A conditional recursion test such as (?(R)...) misbehaved if there was a group whose name began with "R". (f) When testing zero-terminated patterns under valgrind, the terminating zero is now marked "no access". This catches bugs that would otherwise show up only with non-zero-terminated patterns. (g) A hyphen appearing immediately after a POSIX character class (for example /[[:ascii:]-z]/) now generates an error. Perl does accept this as a literal, but gives a warning, so it seems best to fail it in PCRE. (h) An empty \Q\E sequence may appear after a callout that precedes an assertion condition (it is, of course, ignored). One effect of the refactoring is that some error numbers and messages have changed, and the pattern offset given for compiling errors is not always the right-most character that has been read. In particular, for a variable-length lookbehind assertion it now points to the start of the assertion. Another change is that when a callout appears before a group, the "length of next pattern item" that is passed now just gives the length of the opening parenthesis item, not the length of the whole group. A length of zero is now given only for a callout at the end of the pattern. Automatic callouts are no longer inserted before and after explicit callouts in the pattern. A number of bugs in the refactored code were subsequently fixed during testing before release, but after the code was made available in the repository. Many of the bugs were discovered by fuzzing testing. Several of them were related to the change from assuming a zero-terminated pattern (which previously had required non-zero terminated strings to be copied). These bugs were never in fully released code, but are noted here for the record. (a) An overall recursion such as (?0) inside a lookbehind assertion was not being diagnosed as an error. (b) In utf mode, the length of a *MARK (or other verb) name was being checked in characters instead of code units, which could lead to bad code being compiled, leading to unpredictable behaviour. (c) In extended /x mode, characters whose code was greater than 255 caused a lookup outside one of the global tables. A similar bug existed for wide characters in *VERB names. (d) The amount of memory needed for a compiled pattern was miscalculated if a lookbehind contained more than one toplevel branch and the first branch was of length zero. (e) In UTF-8 or UTF-16 modes with PCRE2_EXTENDED (/x) set and a non-zero- terminated pattern, if a # comment ran on to the end of the pattern, one or more code units past the end were being read. (f) An unterminated repeat at the end of a non-zero-terminated pattern (e.g. "{2,2") could cause reading beyond the pattern. (g) When reading a callout string, if the end delimiter was at the end of the pattern one further code unit was read. (h) An unterminated number after \g' could cause reading beyond the pattern. (i) An insufficient memory size was being computed for compiling with PCRE2_AUTO_CALLOUT. (j) A conditional group with an assertion condition used more memory than was allowed for it during parsing, so too many of them could therefore overrun a buffer. (k) If parsing a pattern exactly filled the buffer, the internal test for overrun did not check when the final META_END item was added. (l) If a lookbehind contained a subroutine call, and the called group contained an option setting such as (?s), and the PCRE2_ANCHORED option was set, unpredictable behaviour could occur. The underlying bug was incorrect code and insufficient checking while searching for the end of the called subroutine in the parsed pattern. (m) Quantifiers following (*VERB)s were not being diagnosed as errors. (n) The use of \Q...\E in a (*VERB) name when PCRE2_ALT_VERBNAMES and PCRE2_AUTO_CALLOUT were both specified caused undetermined behaviour. (o) If \Q was preceded by a quantified item, and the following \E was followed by '?' or '+', and there was at least one literal character between them, an internal error "unexpected repeat" occurred (example: /.+\QX\E+/). (p) A buffer overflow could occur while sorting the names in the group name list (depending on the order in which the names were seen). (q) A conditional group that started with a callout was not doing the right check for a following assertion, leading to compiling bad code. Example: /(?(C'XX))?!XX/ (r) If a character whose code point was greater than 0xffff appeared within a lookbehind that was within another lookbehind, the calculation of the lookbehind length went wrong and could provoke an internal error. (t) The sequence \E- or \Q\E- after a POSIX class in a character class caused an internal error. Now the hyphen is treated as a literal. 4. Back references are now permitted in lookbehind assertions when there are no duplicated group numbers (that is, (?| has not been used), and, if the reference is by name, there is only one group of that name. The referenced group must, of course be of fixed length. 5. pcre2test has been upgraded so that, when run under valgrind with valgrind support enabled, reading past the end of the pattern is detected, both when compiling and during callout processing. 6. \g{+} (e.g. \g{+2} ) is now supported. It is a "forward back reference" and can be useful in repetitions (compare \g{-} ). Perl does not recognize this syntax. 7. Automatic callouts are no longer generated before and after callouts in the pattern. 8. When pcre2test was outputing information from a callout, the caret indicator for the current position in the subject line was incorrect if it was after an escape sequence for a character whose code point was greater than \x{ff}. 9. Change 19 for 10.22 had a typo (PCRE_STATIC_RUNTIME should be PCRE2_STATIC_RUNTIME). Fix from David Gaussmann. 10. Added --max-buffer-size to pcre2grep, to allow for automatic buffer expansion when long lines are encountered. Original patch by Dmitry Cherniachenko. 11. If pcre2grep was compiled with JIT support, but the library was compiled without it (something that neither ./configure nor CMake allow, but it can be done by editing config.h), pcre2grep was giving a JIT error. Now it detects this situation and does not try to use JIT. 12. Added some "const" qualifiers to variables in pcre2grep. 13. Added Dmitry Cherniachenko's patch for colouring output in Windows (untested by me). Also, look for GREP_COLOUR or GREP_COLOR if the environment variables PCRE2GREP_COLOUR and PCRE2GREP_COLOR are not found. 14. Add the -t (grand total) option to pcre2grep. 15. A number of bugs have been mended relating to match start-up optimizations when the first thing in a pattern is a positive lookahead. These all applied only when PCRE2_NO_START_OPTIMIZE was *not* set: (a) A pattern such as (?=.*X)X$ was incorrectly optimized as if it needed both an initial 'X' and a following 'X'. (b) Some patterns starting with an assertion that started with .* were incorrectly optimized as having to match at the start of the subject or after a newline. There are cases where this is not true, for example, (?=.*[A-Z])(?=.{8,16})(?!.*[\s]) matches after the start in lines that start with spaces. Starting .* in an assertion is no longer taken as an indication of matching at the start (or after a newline). 16. The "offset" modifier in pcre2test was not being ignored (as documented) when the POSIX API was in use. 17. Added --enable-fuzz-support to "configure", causing an non-installed library containing a test function that can be called by fuzzers to be compiled. A non-installed binary to run the test function locally, called pcre2fuzzcheck is also compiled. 18. A pattern with PCRE2_DOTALL (/s) set but not PCRE2_NO_DOTSTAR_ANCHOR, and which started with .* inside a positive lookahead was incorrectly being compiled as implicitly anchored. 19. Removed all instances of "register" declarations, as they are considered obsolete these days and in any case had become very haphazard. 20. Add strerror() to pcre2test for failed file opening. 21. Make pcre2test -C list valgrind support when it is enabled. 22. Add the use_length modifier to pcre2test. 23. Fix an off-by-one bug in pcre2test for the list of names for 'get' and 'copy' modifiers. 24. Add PCRE2_CALL_CONVENTION into the prototype declarations in pcre2.h as it is apparently needed there as well as in the function definitions. (Why did nobody ask for this in PCRE1?) 25. Change the _PCRE2_H and _PCRE2_UCP_H guard macros in the header files to PCRE2_H_IDEMPOTENT_GUARD and PCRE2_UCP_H_IDEMPOTENT_GUARD to be more standard compliant and unique. 26. pcre2-config --libs-posix was listing -lpcre2posix instead of -lpcre2-posix. Also, the CMake build process was building the library with the wrong name. 27. In pcre2test, give some offset information for errors in hex patterns. This uses the C99 formatting sequence %td, except for MSVC which doesn't support it - %lu is used instead. 28. Implemented pcre2_code_copy_with_tables(), and added pushtablescopy to pcre2test for testing it. 29. Fix small memory leak in pcre2test. 30. Fix out-of-bounds read for partial matching of /./ against an empty string when the newline type is CRLF. 31. Fix a bug in pcre2test that caused a crash when a locale was set either in the current pattern or a previous one and a wide character was matched. 32. The appearance of \p, \P, or \X in a substitution string when PCRE2_SUBSTITUTE_EXTENDED was set caused a segmentation fault (NULL dereference). 33. If the starting offset was specified as greater than the subject length in a call to pcre2_substitute() an out-of-bounds memory reference could occur. 34. When PCRE2 was compiled to use the heap instead of the stack for recursive calls to match(), a repeated minimizing caseless back reference, or a maximizing one where the two cases had different numbers of code units, followed by a caseful back reference, could lose the caselessness of the first repeated back reference (example: /(Z)(a)\2{1,2}?(?-i)\1X/i should match ZaAAZX but didn't). 35. When a pattern is too complicated, PCRE2 gives up trying to find a minimum matching length and just records zero. Typically this happens when there are too many nested or recursive back references. If the limit was reached in certain recursive cases it failed to be triggered and an internal error could be the result. 36. The pcre2_dfa_match() function now takes note of the recursion limit for the internal recursive calls that are used for lookrounds and recursions within the pattern. 37. More refactoring has got rid of the internal could_be_empty_branch() function (around 400 lines of code, including comments) by keeping track of could-be-emptiness as the pattern is compiled instead of scanning compiled groups. (This would have been much harder before the refactoring of #3 above.) This lifts a restriction on the number of branches in a group (more than about 1100 would give "pattern is too complicated"). 38. Add the "-ac" command line option to pcre2test as a synonym for "-pattern auto_callout". 39. In a library with Unicode support, incorrect data was compiled for a pattern with PCRE2_UCP set without PCRE2_UTF if a class required all wide characters to match (for example, /[\s[:^ascii:]]/). 40. The callout_error modifier has been added to pcre2test to make it possible to return PCRE2_ERROR_CALLOUT from a callout. 41. A minor change to pcre2grep: colour reset is now "[0m" instead of "[00m". 42. The limit in the auto-possessification code that was intended to catch overly-complicated patterns and not spend too much time auto-possessifying was being reset too often, resulting in very long compile times for some patterns. Now such patterns are no longer completely auto-possessified. 43. Applied Jason Hood's revised patch for RunTest.bat. 44. Added a new Windows script RunGrepTest.bat, courtesy of Jason Hood. 45. Minor cosmetic fix to pcre2test: move a variable that is not used under Windows into the "not Windows" code. 46. Applied Jason Hood's patches to upgrade pcre2grep under Windows and tidy some of the code: * normalised the Windows condition by ensuring WIN32 is defined; * enables the callout feature under Windows; * adds globbing (Microsoft's implementation expands quoted args), using a tweaked opendirectory; * implements the is_*_tty functions for Windows; * --color=always will write the ANSI sequences to file; * add sequences 4 (underline works on Win10) and 5 (blink as bright background, relatively standard on DOS/Win); * remove the (char *) casts for the now-const strings; * remove GREP_COLOUR (grep's command line allowed the 'u', but not the environment), parsing GREP_COLORS instead; * uses the current colour if not set, rather than black; * add print_match for the undefined case; * fixes a typo. In addition, colour settings containing anything other than digits and semicolon are ignored, and the colour controls are no longer output for empty strings. 47. Detecting patterns that are too large inside the length-measuring loop saves processing ridiculously long patterns to their end. 48. Ignore PCRE2_CASELESS when processing \h, \H, \v, and \V in classes as it just wastes time. In the UTF case it can also produce redundant entries in XCLASS lists caused by characters with multiple other cases and pairs of characters in the same "not-x" sublists. 49. A pattern such as /(?=(a\K))/ can report the end of the match being before its start; pcre2test was not handling this correctly when using the POSIX interface (it was OK with the native interface). 50. In pcre2grep, ignore all JIT compile errors. This means that pcre2grep will continue to work, falling back to interpretation if anything goes wrong with JIT. 51. Applied patches from Christian Persch to configure.ac to make use of the AC_USE_SYSTEM_EXTENSIONS macro and to test for functions used by the JIT modules. 52. Minor fixes to pcre2grep from Jason Hood: * fixed some spacing; * Windows doesn't usually use single quotes, so I've added a define to use appropriate quotes [in an example]; * LC_ALL was displayed as "LCC_ALL"; * numbers 11, 12 & 13 should end in "th"; * use double quotes in usage message. 53. When autopossessifying, skip empty branches without recursion, to reduce stack usage for the benefit of clang with -fsanitize-address, which uses huge stack frames. Example pattern: /X?(R||){3335}/. Fixes oss-fuzz issue 553. 54. A pattern with very many explicit back references to a group that is a long way from the start of the pattern could take a long time to compile because searching for the referenced group in order to find the minimum length was being done repeatedly. Now up to 128 group minimum lengths are cached and the attempt to find a minimum length is abandoned if there is a back reference to a group whose number is greater than 128. (In that case, the pattern is so complicated that this optimization probably isn't worth it.) This fixes oss-fuzz issue 557. 55. Issue 32 for 10.22 below was not correctly fixed. If pcre2grep in multiline mode with --only-matching matched several lines, it restarted scanning at the next line instead of moving on to the end of the matched string, which can be several lines after the start. 56. Applied Jason Hood's new patch for RunGrepTest.bat that updates it in line with updates to the non-Windows version. Version 10.22 29-July-2016 -------------------------- 1. Applied Jason Hood's patches to RunTest.bat and testdata/wintestoutput3 to fix problems with running the tests under Windows. 2. Implemented a facility for quoting literal characters within hexadecimal patterns in pcre2test, to make it easier to create patterns with just a few non-printing characters. 3. Binary zeros are not supported in pcre2test input files. It now detects them and gives an error. 4. Updated the valgrind parameters in RunTest: (a) changed smc-check=all to smc-check=all-non-file; (b) changed obj:* in the suppression file to obj:??? so that it matches only unknown objects. 5. Updated the maintenance script maint/ManyConfigTests to make it easier to select individual groups of tests. 6. When the POSIX wrapper function regcomp() is called, the REG_NOSUB option used to set PCRE2_NO_AUTO_CAPTURE when calling pcre2_compile(). However, this disables the use of back references (and subroutine calls), which are supported by other implementations of regcomp() with RE_NOSUB. Therefore, REG_NOSUB no longer causes PCRE2_NO_AUTO_CAPTURE to be set, though it still ignores nmatch and pmatch when regexec() is called. 7. Because of 6 above, pcre2test has been modified with a new modifier called posix_nosub, to call regcomp() with REG_NOSUB. Previously the no_auto_capture modifier had this effect. That option is now ignored when the POSIX API is in use. 8. Minor tidies to the pcre2demo.c sample program, including more comments about its 8-bit-ness. 9. Detect unmatched closing parentheses and give the error in the pre-scan instead of later. Previously the pre-scan carried on and could give a misleading incorrect error message. For example, /(?J)(?'a'))(?'a')/ gave a message about invalid duplicate group names. 10. It has happened that pcre2test was accidentally linked with another POSIX regex library instead of libpcre2-posix. In this situation, a call to regcomp() (in the other library) may succeed, returning zero, but of course putting its own data into the regex_t block. In one example the re_pcre2_code field was left as NULL, which made pcre2test think it had not got a compiled POSIX regex, so it treated the next line as another pattern line, resulting in a confusing error message. A check has been added to pcre2test to see if the data returned from a successful call of regcomp() are valid for PCRE2's regcomp(). If they are not, an error message is output and the pcre2test run is abandoned. The message points out the possibility of a mis-linking. Hopefully this will avoid some head-scratching the next time this happens. 11. A pattern such as /(?<=((?C)0))/, which has a callout inside a lookbehind assertion, caused pcre2test to output a very large number of spaces when the callout was taken, making the program appearing to loop. 12. A pattern that included (*ACCEPT) in the middle of a sufficiently deeply nested set of parentheses of sufficient size caused an overflow of the compiling workspace (which was diagnosed, but of course is not desirable). 13. Detect missing closing parentheses during the pre-pass for group identification. 14. Changed some integer variable types and put in a number of casts, following a report of compiler warnings from Visual Studio 2013 and a few tests with gcc's -Wconversion (which still throws up a lot). 15. Implemented pcre2_code_copy(), and added pushcopy and #popcopy to pcre2test for testing it. 16. Change 66 for 10.21 introduced the use of snprintf() in PCRE2's version of regerror(). When the error buffer is too small, my version of snprintf() puts a binary zero in the final byte. Bug #1801 seems to show that other versions do not do this, leading to bad output from pcre2test when it was checking for buffer overflow. It no longer assumes a binary zero at the end of a too-small regerror() buffer. 17. Fixed typo ("&&" for "&") in pcre2_study(). Fortunately, this could not actually affect anything, by sheer luck. 18. Two minor fixes for MSVC compilation: (a) removal of apparently incorrect "const" qualifiers in pcre2test and (b) defining snprintf as _snprintf for older MSVC compilers. This has been done both in src/pcre2_internal.h for most of the library, and also in src/pcre2posix.c, which no longer includes pcre2_internal.h (see 24 below). 19. Applied Chris Wilson's patch (Bugzilla #1681) to CMakeLists.txt for MSVC static compilation. Subsequently applied Chris Wilson's second patch, putting the first patch under a new option instead of being unconditional when PCRE_STATIC is set. 20. Updated pcre2grep to set stdout as binary when run under Windows, so as not to convert \r\n at the ends of reflected lines into \r\r\n. This required ensuring that other output that is written to stdout (e.g. file names) uses the appropriate line terminator: \r\n for Windows, \n otherwise. 21. When a line is too long for pcre2grep's internal buffer, show the maximum length in the error message. 22. Added support for string callouts to pcre2grep (Zoltan's patch with PH additions). 23. RunTest.bat was missing a "set type" line for test 22. 24. The pcre2posix.c file was including pcre2_internal.h, and using some "private" knowledge of the data structures. This is unnecessary; the code has been re-factored and no longer includes pcre2_internal.h. 25. A racing condition is fixed in JIT reported by Mozilla. 26. Minor code refactor to avoid "array subscript is below array bounds" compiler warning. 27. Minor code refactor to avoid "left shift of negative number" warning. 28. Add a bit more sanity checking to pcre2_serialize_decode() and document that it expects trusted data. 29. Fix typo in pcre2_jit_test.c 30. Due to an oversight, pcre2grep was not making use of JIT when available. This is now fixed. 31. The RunGrepTest script is updated to use the valgrind suppressions file when testing with JIT under valgrind (compare 10.21/51 below). The suppressions file is updated so that is now the same as for PCRE1: it suppresses the Memcheck warnings Addr16 and Cond in unknown objects (that is, JIT-compiled code). Also changed smc-check=all to smc-check=all-non-file as was done for RunTest (see 4 above). 32. Implemented the PCRE2_NO_JIT option for pcre2_match(). 33. Fix typo that gave a compiler error when JIT not supported. 34. Fix comment describing the returns from find_fixedlength(). 35. Fix potential negative index in pcre2test. 36. Calls to pcre2_get_error_message() with error numbers that are never returned by PCRE2 functions were returning empty strings. Now the error code PCRE2_ERROR_BADDATA is returned. A facility has been added to pcre2test to show the texts for given error numbers (i.e. to call pcre2_get_error_message() and display what it returns) and a few representative error codes are now checked in RunTest. 37. Added "&& !defined(__INTEL_COMPILER)" to the test for __GNUC__ in pcre2_match.c, in anticipation that this is needed for the same reason it was recently added to pcrecpp.cc in PCRE1. 38. Using -o with -M in pcre2grep could cause unnecessary repeated output when the match extended over a line boundary, as it tried to find more matches "on the same line" - but it was already over the end. 39. Allow \C in lookbehinds and DFA matching in UTF-32 mode (by converting it to the same code as '.' when PCRE2_DOTALL is set). 40. Fix two clang compiler warnings in pcre2test when only one code unit width is supported. 41. Upgrade RunTest to automatically re-run test 2 with a large (64MiB) stack if it fails when running the interpreter with a 16MiB stack (and if changing the stack size via pcre2test is possible). This avoids having to manually set a large stack size when testing with clang. 42. Fix register overwite in JIT when SSE2 acceleration is enabled. 43. Detect integer overflow in pcre2test pattern and data repetition counts. 44. In pcre2test, ignore "allcaptures" after DFA matching. 45. Fix unaligned accesses on x86. Patch by Marc Mutz. 46. Fix some more clang compiler warnings. Version 10.21 12-January-2016 ----------------------------- 1. Improve matching speed of patterns starting with + or * in JIT. 2. Use memchr() to find the first character in an unanchored match in 8-bit mode in the interpreter. This gives a significant speed improvement. 3. Removed a redundant copy of the opcode_possessify table in the pcre2_auto_possessify.c source. 4. Fix typos in dftables.c for z/OS. 5. Change 36 for 10.20 broke the handling of [[:>:]] and [[:<:]] in that processing them could involve a buffer overflow if the following character was an opening parenthesis. 6. Change 36 for 10.20 also introduced a bug in processing this pattern: /((?x)(*:0))#(?'/. Specifically: if a setting of (?x) was followed by a (*MARK) setting (which (*:0) is), then (?x) did not get unset at the end of its group during the scan for named groups, and hence the external # was incorrectly treated as a comment and the invalid (?' at the end of the pattern was not diagnosed. This caused a buffer overflow during the real compile. This bug was discovered by Karl Skomski with the LLVM fuzzer. 7. Moved the pcre2_find_bracket() function from src/pcre2_compile.c into its own source module to avoid a circular dependency between src/pcre2_compile.c and src/pcre2_study.c 8. A callout with a string argument containing an opening square bracket, for example /(?C$[$)(?<]/, was incorrectly processed and could provoke a buffer overflow. This bug was discovered by Karl Skomski with the LLVM fuzzer. 9. The handling of callouts during the pre-pass for named group identification has been tightened up. 10. The quantifier {1} can be ignored, whether greedy, non-greedy, or possessive. This is a very minor optimization. 11. A possessively repeated conditional group that could match an empty string, for example, /(?(R))*+/, was incorrectly compiled. 12. The Unicode tables have been updated to Unicode 8.0.0 (thanks to Christian Persch). 13. An empty comment (?#) in a pattern was incorrectly processed and could provoke a buffer overflow. This bug was discovered by Karl Skomski with the LLVM fuzzer. 14. Fix infinite recursion in the JIT compiler when certain patterns such as /(?:|a|){100}x/ are analysed. 15. Some patterns with character classes involving [: and \\ were incorrectly compiled and could cause reading from uninitialized memory or an incorrect error diagnosis. Examples are: /[[:\\](?<[::]/ and /[[:\\](?'abc')[a:]. The first of these bugs was discovered by Karl Skomski with the LLVM fuzzer. 16. Pathological patterns containing many nested occurrences of [: caused pcre2_compile() to run for a very long time. This bug was found by the LLVM fuzzer. 17. A missing closing parenthesis for a callout with a string argument was not being diagnosed, possibly leading to a buffer overflow. This bug was found by the LLVM fuzzer. 18. A conditional group with only one branch has an implicit empty alternative branch and must therefore be treated as potentially matching an empty string. 19. If (?R was followed by - or + incorrect behaviour happened instead of a diagnostic. This bug was discovered by Karl Skomski with the LLVM fuzzer. 20. Another bug that was introduced by change 36 for 10.20: conditional groups whose condition was an assertion preceded by an explicit callout with a string argument might be incorrectly processed, especially if the string contained \Q. This bug was discovered by Karl Skomski with the LLVM fuzzer. 21. Compiling PCRE2 with the sanitize options of clang showed up a number of very pedantic coding infelicities and a buffer overflow while checking a UTF-8 string if the final multi-byte UTF-8 character was truncated. 22. For Perl compatibility in EBCDIC environments, ranges such as a-z in a class, where both values are literal letters in the same case, omit the non-letter EBCDIC code points within the range. 23. Finding the minimum matching length of complex patterns with back references and/or recursions can take a long time. There is now a cut-off that gives up trying to find a minimum length when things get too complex. 24. An optimization has been added that speeds up finding the minimum matching length for patterns containing repeated capturing groups or recursions. 25. If a pattern contained a back reference to a group whose number was duplicated as a result of appearing in a (?|...) group, the computation of the minimum matching length gave a wrong result, which could cause incorrect "no match" errors. For such patterns, a minimum matching length cannot at present be computed. 26. Added a check for integer overflow in conditions (?() and (?(R). This omission was discovered by Karl Skomski with the LLVM fuzzer. 27. Fixed an issue when \p{Any} inside an xclass did not read the current character. 28. If pcre2grep was given the -q option with -c or -l, or when handling a binary file, it incorrectly wrote output to stdout. 29. The JIT compiler did not restore the control verb head in case of *THEN control verbs. This issue was found by Karl Skomski with a custom LLVM fuzzer. 30. The way recursive references such as (?3) are compiled has been re-written because the old way was the cause of many issues. Now, conversion of the group number into a pattern offset does not happen until the pattern has been completely compiled. This does mean that detection of all infinitely looping recursions is postponed till match time. In the past, some easy ones were detected at compile time. This re-writing was done in response to yet another bug found by the LLVM fuzzer. 31. A test for a back reference to a non-existent group was missing for items such as \987. This caused incorrect code to be compiled. This issue was found by Karl Skomski with a custom LLVM fuzzer. 32. Error messages for syntax errors following \g and \k were giving inaccurate offsets in the pattern. 33. Improve the performance of starting single character repetitions in JIT. 34. (*LIMIT_MATCH=) now gives an error instead of setting the value to 0. 35. Error messages for syntax errors in *LIMIT_MATCH and *LIMIT_RECURSION now give the right offset instead of zero. 36. The JIT compiler should not check repeats after a {0,1} repeat byte code. This issue was found by Karl Skomski with a custom LLVM fuzzer. 37. The JIT compiler should restore the control chain for empty possessive repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer. 38. A bug which was introduced by the single character repetition optimization was fixed. 39. Match limit check added to recursion. This issue was found by Karl Skomski with a custom LLVM fuzzer. 40. Arrange for the UTF check in pcre2_match() and pcre2_dfa_match() to look only at the part of the subject that is relevant when the starting offset is non-zero. 41. Improve first character match in JIT with SSE2 on x86. 42. Fix two assertion fails in JIT. These issues were found by Karl Skomski with a custom LLVM fuzzer. 43. Correct the setting of CMAKE_C_FLAGS in CMakeLists.txt (patch from Roy Ivy III). 44. Fix bug in RunTest.bat for new test 14, and adjust the script for the added test (there are now 20 in total). 45. Fixed a corner case of range optimization in JIT. 46. Add the ${*MARK} facility to pcre2_substitute(). 47. Modifier lists in pcre2test were splitting at spaces without the required commas. 48. Implemented PCRE2_ALT_VERBNAMES. 49. Fixed two issues in JIT. These were found by Karl Skomski with a custom LLVM fuzzer. 50. The pcre2test program has been extended by adding the #newline_default command. This has made it possible to run the standard tests when PCRE2 is compiled with either CR or CRLF as the default newline convention. As part of this work, the new command was added to several test files and the testing scripts were modified. The pcre2grep tests can now also be run when there is no LF in the default newline convention. 51. The RunTest script has been modified so that, when JIT is used and valgrind is specified, a valgrind suppressions file is set up to ignore "Invalid read of size 16" errors because these are false positives when the hardware supports the SSE2 instruction set. 52. It is now possible to have comment lines amid the subject strings in pcre2test (and perltest.sh) input. 53. Implemented PCRE2_USE_OFFSET_LIMIT and pcre2_set_offset_limit(). 54. Add the null_context modifier to pcre2test so that calling pcre2_compile() and the matching functions with NULL contexts can be tested. 55. Implemented PCRE2_SUBSTITUTE_EXTENDED. 56. In a character class such as [\W\p{Any}] where both a negative-type escape ("not a word character") and a property escape were present, the property escape was being ignored. 57. Fixed integer overflow for patterns whose minimum matching length is very, very large. 58. Implemented --never-backslash-C. 59. Change 55 above introduced a bug by which certain patterns provoked the erroneous error "\ at end of pattern". 60. The special sequences [[:<:]] and [[:>:]] gave rise to incorrect compiling errors or other strange effects if compiled in UCP mode. Found with libFuzzer and AddressSanitizer. 61. Whitespace at the end of a pcre2test pattern line caused a spurious error message if there were only single-character modifiers. It should be ignored. 62. The use of PCRE2_NO_AUTO_CAPTURE could cause incorrect compilation results or segmentation errors for some patterns. Found with libFuzzer and AddressSanitizer. 63. Very long names in (*MARK) or (*THEN) etc. items could provoke a buffer overflow. 64. Improve error message for overly-complicated patterns. 65. Implemented an optional replication feature for patterns in pcre2test, to make it easier to test long repetitive patterns. The tests for 63 above are converted to use the new feature. 66. In the POSIX wrapper, if regerror() was given too small a buffer, it could misbehave. 67. In pcre2_substitute() in UTF mode, the UTF validity check on the replacement string was happening before the length setting when the replacement string was zero-terminated. 68. In pcre2_substitute() in UTF mode, PCRE2_NO_UTF_CHECK can be set for the second and subsequent calls to pcre2_match(). 69. There was no check for integer overflow for a replacement group number in pcre2_substitute(). An added check for a number greater than the largest group number in the pattern means this is not now needed. 70. The PCRE2-specific VERSION condition didn't work correctly if only one digit was given after the decimal point, or if more than two digits were given. It now works with one or two digits, and gives a compile time error if more are given. 71. In pcre2_substitute() there was the possibility of reading one code unit beyond the end of the replacement string. 72. The code for checking a subject's UTF-32 validity for a pattern with a lookbehind involved an out-of-bounds pointer, which could potentially cause trouble in some environments. 73. The maximum lookbehind length was incorrectly calculated for patterns such as /(?<=(a)(?-1))x/ which have a recursion within a backreference. 74. Give an error if a lookbehind assertion is longer than 65535 code units. 75. Give an error in pcre2_substitute() if a match ends before it starts (as a result of the use of \K). 76. Check the length of subpattern names and the names in (*MARK:xx) etc. dynamically to avoid the possibility of integer overflow. 77. Implement pcre2_set_max_pattern_length() so that programs can restrict the size of patterns that they are prepared to handle. 78. (*NO_AUTO_POSSESS) was not working. 79. Adding group information caching improves the speed of compiling when checking whether a group has a fixed length and/or could match an empty string, especially when recursion or subroutine calls are involved. However, this cannot be used when (?| is present in the pattern because the same number may be used for groups of different sizes. To catch runaway patterns in this situation, counts have been introduced to the functions that scan for empty branches or compute fixed lengths. 80. Allow for the possibility of the size of the nest_save structure not being a factor of the size of the compiling workspace (it currently is). 81. Check for integer overflow in minimum length calculation and cap it at 65535. 82. Small optimizations in code for finding the minimum matching length. 83. Lock out configuring for EBCDIC with non-8-bit libraries. 84. Test for error code <= 0 in regerror(). 85. Check for too many replacements (more than INT_MAX) in pcre2_substitute(). 86. Avoid the possibility of computing with an out-of-bounds pointer (though not dereferencing it) while handling lookbehind assertions. 87. Failure to get memory for the match data in regcomp() is now given as a regcomp() error instead of waiting for regexec() to pick it up. 88. In pcre2_substitute(), ensure that CRLF is not split when it is a valid newline sequence. 89. Paranoid check in regcomp() for bad error code from pcre2_compile(). 90. Run test 8 (internal offsets and code sizes) for link sizes 3 and 4 as well as for link size 2. 91. Document that JIT has a limit on pattern size, and give more information about JIT compile failures in pcre2test. 92. Implement PCRE2_INFO_HASBACKSLASHC. 93. Re-arrange valgrind support code in pcre2test to avoid spurious reports with JIT (possibly caused by SSE2?). 94. Support offset_limit in JIT. 95. A sequence such as [[:punct:]b] that is, a POSIX character class followed by a single ASCII character in a class item, was incorrectly compiled in UCP mode. The POSIX class got lost, but only if the single character followed it. 96. [:punct:] in UCP mode was matching some characters in the range 128-255 that should not have been matched. 97. If [:^ascii:] or [:^xdigit:] are present in a non-negated class, all characters with code points greater than 255 are in the class. When a Unicode property was also in the class (if PCRE2_UCP is set, escapes such as \w are turned into Unicode properties), wide characters were not correctly handled, and could fail to match. 98. In pcre2test, make the "startoffset" modifier a synonym of "offset", because it sets the "startoffset" parameter for pcre2_match(). 99. If PCRE2_AUTO_CALLOUT was set on a pattern that had a (?# comment between an item and its qualifier (for example, A(?#comment)?B) pcre2_compile() misbehaved. This bug was found by the LLVM fuzzer. 100. The error for an invalid UTF pattern string always gave the code unit offset as zero instead of where the invalidity was found. 101. Further to 97 above, negated classes such as [^[:^ascii:]\d] were also not working correctly in UCP mode. 102. Similar to 99 above, if an isolated \E was present between an item and its qualifier when PCRE2_AUTO_CALLOUT was set, pcre2_compile() misbehaved. This bug was found by the LLVM fuzzer. 103. The POSIX wrapper function regexec() crashed if the option REG_STARTEND was set when the pmatch argument was NULL. It now returns REG_INVARG. 104. Allow for up to 32-bit numbers in the ordin() function in pcre2grep. 105. An empty \Q\E sequence between an item and its qualifier caused pcre2_compile() to misbehave when auto callouts were enabled. This bug was found by the LLVM fuzzer. 106. If both PCRE2_ALT_VERBNAMES and PCRE2_EXTENDED were set, and a (*MARK) or other verb "name" ended with whitespace immediately before the closing parenthesis, pcre2_compile() misbehaved. Example: /(*:abc )/, but only when both those options were set. 107. In a number of places pcre2_compile() was not handling NULL characters correctly, and pcre2test with the "bincode" modifier was not always correctly displaying fields containing NULLS: (a) Within /x extended #-comments (b) Within the "name" part of (*MARK) and other *verbs (c) Within the text argument of a callout 108. If a pattern that was compiled with PCRE2_EXTENDED started with white space or a #-type comment that was followed by (?-x), which turns off PCRE2_EXTENDED, and there was no subsequent (?x) to turn it on again, pcre2_compile() assumed that (?-x) applied to the whole pattern and consequently mis-compiled it. This bug was found by the LLVM fuzzer. The fix for this bug means that a setting of any of the (?imsxJU) options at the start of a pattern is no longer transferred to the options that are returned by PCRE2_INFO_ALLOPTIONS. In fact, this was an anachronism that should have changed when the effects of those options were all moved to compile time. 109. An escaped closing parenthesis in the "name" part of a (*verb) when PCRE2_ALT_VERBNAMES was set caused pcre2_compile() to malfunction. This bug was found by the LLVM fuzzer. 110. Implemented PCRE2_SUBSTITUTE_UNSET_EMPTY, and updated pcre2test to make it possible to test it. 111. "Harden" pcre2test against ridiculously large values in modifiers and command line arguments. 112. Implemented PCRE2_SUBSTITUTE_UNKNOWN_UNSET and PCRE2_SUBSTITUTE_OVERFLOW_ LENGTH. 113. Fix printing of *MARK names that contain binary zeroes in pcre2test. Version 10.20 30-June-2015 -------------------------- 1. Callouts with string arguments have been added. 2. Assertion code generator in JIT has been optimized. 3. The invalid pattern (?(?C) has a missing assertion condition at the end. The pcre2_compile() function read past the end of the input before diagnosing an error. This bug was discovered by the LLVM fuzzer. 4. Implemented pcre2_callout_enumerate(). 5. Fix JIT compilation of conditional blocks whose assertion is converted to (*FAIL). E.g: /(?(?!))/. 6. The pattern /(?(?!)^)/ caused references to random memory. This bug was discovered by the LLVM fuzzer. 7. The assertion (?!) is optimized to (*FAIL). This was not handled correctly when this assertion was used as a condition, for example (?(?!)a|b). In pcre2_match() it worked by luck; in pcre2_dfa_match() it gave an incorrect error about an unsupported item. 8. For some types of pattern, for example /Z*(|d*){216}/, the auto- possessification code could take exponential time to complete. A recursion depth limit of 1000 has been imposed to limit the resources used by this optimization. This infelicity was discovered by the LLVM fuzzer. 9. A pattern such as /(*UTF)[\S\V\H]/, which contains a negated special class such as \S in non-UCP mode, explicit wide characters (> 255) can be ignored because \S ensures they are all in the class. The code for doing this was interacting badly with the code for computing the amount of space needed to compile the pattern, leading to a buffer overflow. This bug was discovered by the LLVM fuzzer. 10. A pattern such as /((?2)+)((?1))/ which has mutual recursion nested inside other kinds of group caused stack overflow at compile time. This bug was discovered by the LLVM fuzzer. 11. A pattern such as /(?1)(?#?'){8}(a)/ which had a parenthesized comment between a subroutine call and its quantifier was incorrectly compiled, leading to buffer overflow or other errors. This bug was discovered by the LLVM fuzzer. 12. The illegal pattern /(?(?.*!.*)?)/ was not being diagnosed as missing an assertion after (?(. The code was failing to check the character after (?(?< for the ! or = that would indicate a lookbehind assertion. This bug was discovered by the LLVM fuzzer. 13. A pattern such as /X((?2)()*+){2}+/ which has a possessive quantifier with a fixed maximum following a group that contains a subroutine reference was incorrectly compiled and could trigger buffer overflow. This bug was discovered by the LLVM fuzzer. 14. Negative relative recursive references such as (?-7) to non-existent subpatterns were not being diagnosed and could lead to unpredictable behaviour. This bug was discovered by the LLVM fuzzer. 15. The bug fixed in 14 was due to an integer variable that was unsigned when it should have been signed. Some other "int" variables, having been checked, have either been changed to uint32_t or commented as "must be signed". 16. A mutual recursion within a lookbehind assertion such as (?<=((?2))((?1))) caused a stack overflow instead of the diagnosis of a non-fixed length lookbehind assertion. This bug was discovered by the LLVM fuzzer. 17. The use of \K in a positive lookbehind assertion in a non-anchored pattern (e.g. /(?<=\Ka)/) could make pcre2grep loop. 18. There was a similar problem to 17 in pcre2test for global matches, though the code there did catch the loop. 19. If a greedy quantified \X was preceded by \C in UTF mode (e.g. \C\X*), and a subsequent item in the pattern caused a non-match, backtracking over the repeated \X did not stop, but carried on past the start of the subject, causing reference to random memory and/or a segfault. There were also some other cases where backtracking after \C could crash. This set of bugs was discovered by the LLVM fuzzer. 20. The function for finding the minimum length of a matching string could take a very long time if mutual recursion was present many times in a pattern, for example, /((?2){73}(?2))((?1))/. A better mutual recursion detection method has been implemented. This infelicity was discovered by the LLVM fuzzer. 21. Implemented PCRE2_NEVER_BACKSLASH_C. 22. The feature for string replication in pcre2test could read from freed memory if the replication required a buffer to be extended, and it was not working properly in 16-bit and 32-bit modes. This issue was discovered by a fuzzer: see http://lcamtuf.coredump.cx/afl/. 23. Added the PCRE2_ALT_CIRCUMFLEX option. 24. Adjust the treatment of \8 and \9 to be the same as the current Perl behaviour. 25. Static linking against the PCRE2 library using the pkg-config module was failing on missing pthread symbols. 26. If a group that contained a recursive back reference also contained a forward reference subroutine call followed by a non-forward-reference subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to compile correct code, leading to undefined behaviour or an internally detected error. This bug was discovered by the LLVM fuzzer. 27. Quantification of certain items (e.g. atomic back references) could cause incorrect code to be compiled when recursive forward references were involved. For example, in this pattern: /(?1)()((((((\1++))\x85)+)|))/. This bug was discovered by the LLVM fuzzer. 28. A repeated conditional group whose condition was a reference by name caused a buffer overflow if there was more than one group with the given name. This bug was discovered by the LLVM fuzzer. 29. A recursive back reference by name within a group that had the same name as another group caused a buffer overflow. For example: /(?J)(?'d'(?'d'\g{d}))/. This bug was discovered by the LLVM fuzzer. 30. A forward reference by name to a group whose number is the same as the current group, for example in this pattern: /(?|(\k'Pm')|(?'Pm'))/, caused a buffer overflow at compile time. This bug was discovered by the LLVM fuzzer. 31. Fix -fsanitize=undefined warnings for left shifts of 1 by 31 (it treats 1 as an int; fixed by writing it as 1u). 32. Fix pcre2grep compile when -std=c99 is used with gcc, though it still gives a warning for "fileno" unless -std=gnu99 us used. 33. A lookbehind assertion within a set of mutually recursive subpatterns could provoke a buffer overflow. This bug was discovered by the LLVM fuzzer. 34. Give an error for an empty subpattern name such as (?''). 35. Make pcre2test give an error if a pattern that follows #forbud_utf contains \P, \p, or \X. 36. The way named subpatterns are handled has been refactored. There is now a pre-pass over the regex which does nothing other than identify named subpatterns and count the total captures. This means that information about named patterns is known before the rest of the compile. In particular, it means that forward references can be checked as they are encountered. Previously, the code for handling forward references was contorted and led to several errors in computing the memory requirements for some patterns, leading to buffer overflows. 37. There was no check for integer overflow in subroutine calls such as (?123). 38. The table entry for \l in EBCDIC environments was incorrect, leading to its being treated as a literal 'l' instead of causing an error. 39. If a non-capturing group containing a conditional group that could match an empty string was repeated, it was not identified as matching an empty string itself. For example: /^(?:(?(1)x|)+)+$()/. 40. In an EBCDIC environment, pcretest was mishandling the escape sequences \a and \e in test subject lines. 41. In an EBCDIC environment, \a in a pattern was converted to the ASCII instead of the EBCDIC value. 42. The handling of \c in an EBCDIC environment has been revised so that it is now compatible with the specification in Perl's perlebcdic page. 43. Single character repetition in JIT has been improved. 20-30% speedup was achieved on certain patterns. 44. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in ASCII/Unicode. This has now been added to the list of characters that are recognized as white space in EBCDIC. 45. When PCRE2 was compiled without Unicode support, the use of \p and \P gave an error (correctly) when used outside a class, but did not give an error within a class. 46. \h within a class was incorrectly compiled in EBCDIC environments. 47. JIT should return with error when the compiled pattern requires more stack space than the maximum. 48. Fixed a memory leak in pcre2grep when a locale is set. Version 10.10 06-March-2015 --------------------------- 1. When a pattern is compiled, it remembers the highest back reference so that when matching, if the ovector is too small, extra memory can be obtained to use instead. A conditional subpattern whose condition is a check on a capture having happened, such as, for example in the pattern /^(?:(a)|b)(?(1)A|B)/, is another kind of back reference, but it was not setting the highest backreference number. This mattered only if pcre2_match() was called with an ovector that was too small to hold the capture, and there was no other kind of back reference (a situation which is probably quite rare). The effect of the bug was that the condition was always treated as FALSE when the capture could not be consulted, leading to a incorrect behaviour by pcre2_match(). This bug has been fixed. 2. Functions for serialization and deserialization of sets of compiled patterns have been added. 3. The value that is returned by PCRE2_INFO_SIZE has been corrected to remove excess code units at the end of the data block that may occasionally occur if the code for calculating the size over-estimates. This change stops the serialization code copying uninitialized data, to which valgrind objects. The documentation of PCRE2_INFO_SIZE was incorrect in stating that the size did not include the general overhead. This has been corrected. 4. All code units in every slot in the table of group names are now set, again in order to avoid accessing uninitialized data when serializing. 5. The (*NO_JIT) feature is implemented. 6. If a bug that caused pcre2_compile() to use more memory than allocated was triggered when using valgrind, the code in (3) above passed a stupidly large value to valgrind. This caused a crash instead of an "internal error" return. 7. A reference to a duplicated named group (either a back reference or a test for being set in a conditional) that occurred in a part of the pattern where PCRE2_DUPNAMES was not set caused the amount of memory needed for the pattern to be incorrectly calculated, leading to overwriting. 8. A mutually recursive set of back references such as (\2)(\1) caused a segfault at compile time (while trying to find the minimum matching length). The infinite loop is now broken (with the minimum length unset, that is, zero). 9. If an assertion that was used as a condition was quantified with a minimum of zero, matching went wrong. In particular, if the whole group had unlimited repetition and could match an empty string, a segfault was likely. The pattern (?(?=0)?)+ is an example that caused this. Perl allows assertions to be quantified, but not if they are being used as conditions, so the above pattern is faulted by Perl. PCRE2 has now been changed so that it also rejects such patterns. 10. The error message for an invalid quantifier has been changed from "nothing to repeat" to "quantifier does not follow a repeatable item". 11. If a bad UTF string is compiled with NO_UTF_CHECK, it may succeed, but scanning the compiled pattern in subsequent auto-possessification can get out of step and lead to an unknown opcode. Previously this could have caused an infinite loop. Now it generates an "internal error" error. This is a tidyup, not a bug fix; passing bad UTF with NO_UTF_CHECK is documented as having an undefined outcome. 12. A UTF pattern containing a "not" match of a non-ASCII character and a subroutine reference could loop at compile time. Example: /[^\xff]((?1))/. 13. The locale test (RunTest 3) has been upgraded. It now checks that a locale that is found in the output of "locale -a" can actually be set by pcre2test before it is accepted. Previously, in an environment where a locale was listed but would not set (an example does exist), the test would "pass" without actually doing anything. Also the fr_CA locale has been added to the list of locales that can be used. 14. Fixed a bug in pcre2_substitute(). If a replacement string ended in a capturing group number without parentheses, the last character was incorrectly literally included at the end of the replacement string. 15. A possessive capturing group such as (a)*+ with a minimum repeat of zero failed to allow the zero-repeat case if pcre2_match() was called with an ovector too small to capture the group. 16. Improved error message in pcre2test when setting the stack size (-S) fails. 17. Fixed two bugs in CMakeLists.txt: (1) Some lines had got lost in the transfer from PCRE1, meaning that CMake configuration failed if "build tests" was selected. (2) The file src/pcre2_serialize.c had not been added to the list of PCRE2 sources, which caused a failure to build pcre2test. 18. Fixed typo in pcre2_serialize.c (DECL instead of DEFN) that causes problems only on Windows. 19. Use binary input when reading back saved serialized patterns in pcre2test. 20. Added RunTest.bat for running the tests under Windows. 21. "make distclean" was not removing config.h, a file that may be created for use with CMake. 22. A pattern such as "((?2){0,1999}())?", which has a group containing a forward reference repeated a large (but limited) number of times within a repeated outer group that has a zero minimum quantifier, caused incorrect code to be compiled, leading to the error "internal error: previously-checked referenced subpattern not found" when an incorrect memory address was read. This bug was reported as "heap overflow", discovered by Kai Lu of Fortinet's FortiGuard Labs. (Added 24-March-2015: CVE-2015-2325 was given to this.) 23. A pattern such as "((?+1)(\1))/" containing a forward reference subroutine call within a group that also contained a recursive back reference caused incorrect code to be compiled. This bug was reported as "heap overflow", discovered by Kai Lu of Fortinet's FortiGuard Labs. (Added 24-March-2015: CVE-2015-2326 was given to this.) 24. Computing the size of the JIT read-only data in advance has been a source of various issues, and new ones are still appear unfortunately. To fix existing and future issues, size computation is eliminated from the code, and replaced by on-demand memory allocation. 25. A pattern such as /(?i)[A-`]/, where characters in the other case are adjacent to the end of the range, and the range contained characters with more than one other case, caused incorrect behaviour when compiled in UTF mode. In that example, the range a-j was left out of the class. Version 10.00 05-January-2015 ----------------------------- Version 10.00 is the first release of PCRE2, a revised API for the PCRE library. Changes prior to 10.00 are logged in the ChangeLog file for the old API, up to item 20 for release 8.36. The code of the library was heavily revised as part of the new API implementation. Details of each and every modification were not individually logged. In addition to the API changes, the following changes were made. They are either new functionality, or bug fixes and other noticeable changes of behaviour that were implemented after the code had been forked. 1. Including Unicode support at build time is now enabled by default, but it can optionally be disabled. It is not enabled by default at run time (no change). 2. The test program, now called pcre2test, was re-specified and almost completely re-written. Its input is not compatible with input for pcretest. 3. Patterns may start with (*NOTEMPTY) or (*NOTEMPTY_ATSTART) to set the PCRE2_NOTEMPTY or PCRE2_NOTEMPTY_ATSTART options for every subject line that is matched by that pattern. 4. For the benefit of those who use PCRE2 via some other application, that is, not writing the function calls themselves, it is possible to check the PCRE2 version by matching a pattern such as /(?(VERSION>=10)yes|no)/ against a string such as "yesno". 5. There are case-equivalent Unicode characters whose encodings use different numbers of code units in UTF-8. U+023A and U+2C65 are one example. (It is theoretically possible for this to happen in UTF-16 too.) If a backreference to a group containing one of these characters was greedily repeated, and during the match a backtrack occurred, the subject might be backtracked by the wrong number of code units. For example, if /^(\x{23a})\1*(.)/ is matched caselessly (and in UTF-8 mode) against "\x{23a}\x{2c65}\x{2c65}\x{2c65}", group 2 should capture the final character, which is the three bytes E2, B1, and A5 in UTF-8. Incorrect backtracking meant that group 2 captured only the last two bytes. This bug has been fixed; the new code is slower, but it is used only when the strings matched by the repetition are not all the same length. 6. A pattern such as /()a/ was not setting the "first character must be 'a'" information. This applied to any pattern with a group that matched no characters, for example: /(?:(?=.)|(? version 3.0.4 * NEWS: Record release date. 2015-01-23 Akim Demaille gnulib: update 2015-01-23 Akim Demaille build: re-enable compiler warnings, and fix them There are warnings (-Wextra) in generated C++ code: ltlparse.cc: In member function 'ltlyy::parser::symbol_number_type ltlyy::parser::by_state::type_get() const': ltlparse.cc:452:33: warning: enumeral and non-enumeral type in conditional expression return state == empty_state ? empty_symbol : yystos_[state]; Reported by Alexandre Duret-Lutz. It turns out that -Wall and -Wextra were disabled because of a stupid typo. * configure.ac: Fix the stupid typo. * data/lalr1.cc, src/AnnotationList.c, src/InadequacyList.c, * src/ielr.c, src/print.c, src/scan-code.l, src/symlist.c, * src/symlist.h, src/symtab.c, src/tables.c, tests/actions.at, * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at, * tests/named-refs.at, tests/torture.at: Fix warnings, mostly issues about variables used only with assertions, which are disabled with -DNDEBUG. 2015-01-22 Akim Demaille tests: c++: fix a C++03 conformance issue This fixes test 241 on xLC: "input.y", line 42.11: 1540-0274 (S) The name lookup for "report" did not find a declaration. "input.y", line 42.11: 1540-1292 (I) Static declarations are not considered for a function call if the function is not qualified. where report is: static void report (std::ostream& yyo, int ival, float fval) { yyo << "ival: " << ival << ", fval: " << fval; } and line 42 is: %printer { report (yyo, $$, $$); } ; It turns out that indeed this function must not be declared static, . Let's put it into an anonymous namespace. Reported by Thomas Jahns. http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html * tests/actions.at (Qualified $$ in actions): Don't use "static", prefer anonymous namespace. 2015-01-20 Akim Demaille tests: fix a title * tests/conflicts.at: De-overquote. 2015-01-20 Akim Demaille c++: reserve 200 slots in the parser's stack This is consistent with what is done with yacc.c and glr.c. Because it also avoids that the stack needs to be resized very soon, it should help keeping tests about destructors more reliable. Indeed, if the stack is created too small, very soon the C++ library needs to enlarge it, which means creating a new one, copying the elements from the initial one onto it, and then destroy the elements of the initial stack: that would be a spurious call to a destructor. Reported by Thomas Jahns. http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html * data/stack.hh (stack::stack): Reserve 200 slots. * tests/c++.at: Remove traces of stack expansions. 2015-01-20 Akim Demaille tests: be more robust to unrecognized synclines, and try to recognize xlc Reported by Thomas Jahns. http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html * tests/synclines.at (AT_SYNCLINES_COMPILE): Rename as... (_AT_SYNCLINES_COMPILE): this. Try to recognize xlc locations. (AT_SYNCLINES_COMPILE): New. Skips the test if we can't read the synclines. 2015-01-20 Akim Demaille tests: fix C++ conformance Reported by Thomas Jahns. http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html * tests/c++.at (Exception safety): Add missing include. Don't use const_iterator for erase. 2015-01-18 Akim Demaille build: fix some warnings Reported by John Horigan. http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00034.html * src/graphviz.c, src/symtab.h: Address compiler warnings. 2015-01-16 Akim Demaille build: avoid infinite recursions on include_next On MacOS X 10.5 PPC with Apple's GCC 4.0.1: % uname -a Darwin aria.cielonegro.org 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:0 1 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh % gcc --version powerpc-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5493) Copyright (C) 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. building in place enters into an infinite recursion on "#include_next": % gmake V=1 [snip] depbase=`echo lib/math.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -std=gnu99 -I. -Ilib -I. -I./lib -g -O2 -MT lib/math.o -MD -MP -MF $depbase.Tpo -c -o lib/math.o lib/math.c &&\ mv -f $depbase.Tpo $depbase.Po In file included from lib/math.h:27, from lib/math.h:27, from lib/math.h:27, from lib/math.h:27, [snip] from lib/math.h:27, from lib/math.h:27, from lib/math.c:3: lib/math.h:27:23: error: #include nested too deeply Makefile:3414: recipe for target 'lib/math.o' failed gmake[2]: *** [lib/math.o] Error 1 Using -I./lib instead of -Ilib fixes the problem. Reported by Pho. * Makefile.am (AM_CPPFLAGS): Use -I./lib instead of -Ilib. 2015-01-16 Akim Demaille doc: minor fixes * doc/bison.texi: Fix warnings about colon in reference names. * data/bison.m4, src/files.h: Fix comments. * doc/Doxyfile.in: update. 2015-01-15 Akim Demaille gnulib: strtoul is considered obsolete and now useless * bootstrap.conf: here. 2015-01-15 Akim Demaille c++: avoid warnings when destructors don't use $$ * data/c++.m4: here. 2015-01-15 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2015-01-15 Akim Demaille version 3.0.3 * NEWS: Record release date. 2015-01-15 Akim Demaille gnulib: update 2015-01-13 Akim Demaille tests: split a large test case into several smaller ones * tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Move AT_SETUP/AT_CLEANUP into it, so that we don't skip non Java tests following a test case in Java. 2015-01-12 Akim Demaille package: a bit of trouble shooting indications * README-hacking: here. 2015-01-12 Akim Demaille doc: liby's main arms the internationalization Reported by Nicolas Bedon. * doc/bison.texi (Yacc Library): Document the call the setlocale. 2015-01-09 Akim Demaille bison: avoid warnings from static code analysis A static analysis tool reports that some callers of symbol_list_n_get might get NULL and not handle it properly. This is not the case, yet we can suppress this pattern. Reported by Mike Sullivan. * src/symlist.c (symbol_list_n_get): Actually it is never called to return 0. Enforce this postcondition via aver. (symbol_list_n_type_name_get): Simplify accordingly. In particular, discards a (translated) useless error message. * src/symlist.h: Adjust documentation. * src/scan-code.l: Style change. 2015-01-09 Akim Demaille c++: fix the use of destructors when variants are enabled When using variants, destructors generate invalid code. Reported by Michael Catanzaro. * data/c++.m4 (~basic_symbol): b4_symbol_foreach works on yysym: define it. * tests/c++.at (Variants): Check it. 2015-01-08 Akim Demaille style: tests: simplify the handling of some C++ tests * tests/c++.at: here. (Doxygen): Pass %define, so that files such as position.hh etc. are generated, instead of putting everything into input.hh. 2015-01-08 Akim Demaille c++: symbols can be empty, so use it The previous patches ensure that symbols (symbol_type and stack_symbol_type) can be empty, cleared, and their emptiness can be checked. Therefore, yyempty, which codes whether yyla is empty or not, is now useless. In C skeletons (e.g., yacc.c), the fact that the lookahead is empty is coded by "yychar = YYEMPTY", which is exactly what this patch restores, since yychar/yytoken corresponds to yyla.type. * data/lalr1.cc (yyempty): Remove. Rather, depend on yyla.empty (). 2015-01-08 Akim Demaille c++: variants: don't leak the lookahead in error recovery During error recovery, when discarding the lookeahead, we don't destroy it, which is caught by parse.assert assertions. Reported by Antonio Silva Correia. With an analysis and suggested patch from Michel d'Hooge. * tests/c++.at (Variants): Strengthen the test to try syntax errors with discarded lookahead. 2015-01-08 Akim Demaille c++: provide a means to clear symbols The symbol destructor is currently the only means to clear a symbol. Unfortunately during error recovery we might have to clear the lookahead, which is a local variable (yyla) that has not yet reached its end of scope. Rather that duplicating the code to destroy a symbol, or rather than destroying and recreating yyla, let's provide a means to clear a symbol. Reported by Antonio Silva Correia, with an analysis from Michel d'Hooge. * data/c++.m4, data/lalr1.cc (basis_symbol::clear, by_state::clear) (by_type::clear): New. (basic_symbol::~basic_symbol): Use clear. 2015-01-08 Akim Demaille c++: clean up the handling of empty symbols * data/c++.m4, data/lalr1.cc (yyempty_): Remove, replaced by... (empty_symbol, by_state::empty_state): these. (basic_symbol::empty): New. 2015-01-08 Akim Demaille c++: comment and style changes * data/c++.m4, data/lalr1.cc: More documentation. Tidy. * tests/c++.at (string_cast): Rename as... (to_string): this C++11 name. 2015-01-07 Akim Demaille c++: variants: comparing addresses of typeid.name() is undefined Instead of storing and comparing pointers to names of types, store pointers to the typeids, and compares the typeids. Reported by Thomas Jahns. * data/variant.hh (yytname_): Replace with... (yytypeid_): this. 2015-01-05 Akim Demaille c++: locations: complete the API and fix comments There are no support for += between locations, and some comments are wrong. Reported by Alexandre Duret-Lutz. * data/location.cc: Fix. * doc/bison.texi: Document. * tests/c++.at: Check. 2015-01-05 Akim Demaille build: do not clean figure sources in make clean "make clean && make" fails in in-tree builds. * doc/local.mk (CLEANDIRS): Replace with... (CLEANFILES): this safer list of files to clean. 2015-01-05 Akim Demaille build: don't try to generate docs when cross-compiling When cross-compiling don't run the generated bison to update the docs. Reported by Aaro Koskinen. * configure.ac (CROSS_COMPILING): New. * doc/local.mk: Use it. 2015-01-04 Akim Demaille package: fix a reporter's name * THANKS, build-aux/git-log-fix: s/Bernd Edligner/Bernd Edlinger/. 2015-01-04 Akim Demaille %union: fix the support for named %union Bison supports a union tag, for obscure reasons. But it does a poor job at it, especially since Bison 3.0. Reported by Stephen Cameron and Tobias Frost. It did not ensure that the name was not given several times. An easy way to do this is to make the %union tag be handled as a %define variable, as they cannot be defined several times. Since Bison 3.0, the synclines were wrongly placed, resulting in invalid code. Addressing this issue, because of the way the union tag was stored (as a code muscle), would have been tedious. Unless we rather define the %union tag as a %percent variable, whose synclines are easier to manipulate. So replace the b4_union_name muscle by the api.value.union.name %define variable, document, and check. * data/bison.m4: Make sure that api.value.union.name has a keyword value. * data/c++.m4: Make sure that api.value.union.name is not defined. * data/c.m4 (b4_union_name): No longer use it, use api.value.union.name. * doc/bison.texi (%define Summary): Document it. * src/parse-gram.y (union_name): No longer define b4_uion_name, but api.value.union.name. * tests/input.at (Redefined %union name): New. * tests/synclines.at (%union name syncline): New. * tests/types.at: Check named %unions. 2015-01-04 Akim Demaille package: bump to 2015 Which also requires: * gnulib: Update. 2014-12-31 Akim Demaille flex: don't trust YY_USER_INIT Reported by Bernd Edlinger and others. * src/scan-gram.l: here. 2014-12-31 Akim Demaille yacc.c: fix broken union when api.value.type=union and %defines are used Reported by Rich Wilson. * data/c.m4 (b4_symbol_type_register): Append to b4_union_members, not b4_user_union_members. The latter invokes the former, but it is the former which is reinitialized to empty by b4_value_type_setup_union. * tests/types.at: Check it. This reveals another bug, this time in the case of glr.c parsers. * data/glr.c: Generate the header file before the implementation file, to be sure that the setup is run before what depends on it. 2014-12-31 Akim Demaille doc: fix missing xref Reported by xolodho. * doc/bison.texi (Printer Decl): here. 2014-12-29 Akim Demaille gnulib: update 2014-02-03 Akim Demaille location: remove some ugly debugging code traces * data/location.cc: here. 2014-02-03 Akim Demaille build: use abort to pacify compiler errors clang, with -DNDEBUG and -Werror fails on some functions that might lack a return. This is because aver is just another assert, discarded with -DNDEBUG. So use abort. * src/muscle-tab.c, src/scan-skel.l: here. 2014-02-03 Akim Demaille package: bump to 2014 * AUTHORS, ChangeLog-2012, Makefile.am, NEWS, PACKAGING, README, * README-alpha, README-hacking, THANKS, TODO, bootstrap.conf, * build-aux/darwin11.4.0.valgrind, build-aux/local.mk, * build-aux/update-b4-copyright, * build-aux/update-package-copyright-year, cfg.mk, configure.ac, * data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4, * data/c-like.m4, data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc, * data/java-skel.m4, data/java.m4, data/lalr1.cc, data/lalr1.java, * data/local.mk, data/location.cc, data/stack.hh, data/variant.hh, * data/xslt/bison.xsl, data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl, * data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint, * djgpp/README.in, djgpp/config.bat, djgpp/config.sed, * djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat, * djgpp/local.mk, djgpp/subpipe.c, djgpp/subpipe.h, * djgpp/testsuite.sed, doc/bison.texi, doc/local.mk, doc/refcard.tex, * etc/README, etc/bench.pl.in, etc/local.mk, * examples/calc++/calc++.test, examples/calc++/local.mk, * examples/extexi, examples/local.mk, examples/mfcalc/local.mk, * examples/mfcalc/mfcalc.test, examples/rpcalc/local.mk, * examples/rpcalc/rpcalc.test, examples/test, examples/variant.yy, * lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c, * lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h, * lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c, * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c, * lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h, * lib/local.mk, lib/main.c, lib/timevar.c, lib/timevar.def, * lib/timevar.h, lib/vbitset.c, lib/vbitset.h, lib/yyerror.c, * m4/bison-i18n.m4, m4/c-working.m4, m4/cxx.m4, m4/flex.m4, * m4/timevar.m4, src/AnnotationList.c, src/AnnotationList.h, * src/InadequacyList.c, src/InadequacyList.h, src/LR0.c, src/LR0.h, * src/Sbitset.c, src/Sbitset.h, src/assoc.c, src/assoc.h, * src/closure.c, src/closure.h, src/complain.c, src/complain.h, * src/conflicts.c, src/conflicts.h, src/derives.c, src/derives.h, * src/files.c, src/files.h, src/flex-scanner.h, src/getargs.c, * src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c, * src/graphviz.h, src/ielr.c, src/ielr.h, src/lalr.c, src/lalr.h, * src/local.mk, src/location.c, src/location.h, src/main.c, * src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c, * src/named-ref.h, src/nullable.c, src/nullable.h, src/output.c, * src/output.h, src/parse-gram.c, src/parse-gram.y, src/print-xml.c, * src/print-xml.h, src/print.c, src/print.h, src/print_graph.c, * src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c, * src/reduce.h, src/relation.c, src/relation.h, src/scan-code.h, * src/scan-code.l, src/scan-gram.h, src/scan-gram.l, src/scan-skel.h, * src/scan-skel.l, src/state.c, src/state.h, src/symlist.c, * src/symlist.h, src/symtab.c, src/symtab.h, src/system.h, * src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h, * tests/actions.at, tests/atlocal.in, tests/bison.in, tests/c++.at, * tests/calc.at, tests/conflicts.at, tests/cxx-type.at, * tests/existing.at, tests/glr-regression.at, tests/headers.at, * tests/input.at, tests/java.at, tests/javapush.at, tests/local.at, * tests/local.mk, tests/named-refs.at, tests/output.at, tests/push.at, * tests/reduce.at, tests/regression.at, tests/sets.at, * tests/skeletons.at, tests/synclines.at, tests/testsuite.at, * tests/torture.at, tests/types.at: here. 2014-01-03 Paul Eggert doc: specify documentation encoding * doc/bison.texi: Add '@documentencoding UTF-8'; needed since the manual contains UTF-8 characters. This will cause the .info files to contain UTF-8 quotes and the like, which should be OK nowadays. Add @documentlanguage while we're at it. 2013-12-09 Akim Demaille package: install the examples Currently, we do not install the various examples extracted from the documentation. Let's do it, as they are useful starting points. * configure.ac: When --enable-gcc-warnings is set, enable ENABLE_GCC_WARNINGS. * examples/extexi: No longer issue synclines by default. * examples/local.mk: Except if ENABLE_GCC_WARNINGS. * examples/calc++/local.mk, examples/mfcalc/local.mk, * examples/rpcalc/local.mk: Install the example files. 2013-12-09 Akim Demaille package: install README and the like in docdir * Makefile.am: here. 2013-12-09 Akim Demaille diagnostics: fix the order of multiple declarations reports On %token FOO "foo" %printer {} "foo" %printer {} FOO we report /tmp/foo.yy:2.10-11: error: %printer redeclaration for FOO %printer {} "foo" ^^ /tmp/foo.yy:3.10-11: previous declaration %printer {} FOO ^^ * src/symtab.c (locations_sort): New. Use it. * tests/input.at (Invalid Aliases): Stress the order of diagnostics. 2013-12-09 Akim Demaille symbol: provide an easy means to compare them in source order * src/symtab.c (symbols_sort): New. (user_token_number_redeclaration): Taken from here. 2013-12-05 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-12-05 Akim Demaille version 3.0.2 * NEWS: Record release date. 2013-12-05 Akim Demaille gnulib: update * gnulib: here. 2013-12-04 Akim Demaille output: do not generate source files when late errors are caught Reported by Alexandre Duret-Lutz as "second problem" in: http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html * bootstrap.conf: We need the "unlink" module. * src/files.h, src/files.c (unlink_generated_sources): New. * src/output.c: Use it. * tests/output.at: Check the case of late errors. 2013-12-04 Akim Demaille output: record what generated files are source or report files * src/files.h, src/files.c (output_file_name_check): Take an additional argument to record whether a file is a source or report file. * src/files.c (generated_file): New. (file_names, file_names_count): Replace with... (generated_files, generated_files_size): these. * src/scan-skel.l: Adjust. 2013-12-04 Akim Demaille output: do not generate source files when early errors are caught Reported by Alexandre Duret-Lutz as "second problem" in: http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html One problem is that some errors are caught early, before the generation of output files, while others can only be detected afterwards (since, for instance, skeletons can raise errors themselves). This will be addressed in two steps: early errors do not generate source files at all, while later errors will remove the files that have already been generated. * src/scan-skel.l (yyout): Open to /dev/null when there are errors. * tests/output.at (AT_CHECK_FILES): Factored out of... (AT_CHECK_OUTPUT): this. Fuse the "SHELLIO" argument in the "FLAGS" one. Use $5 to denote the expected exit status. Add a test case for early errors. 2013-11-26 Akim Demaille xml: also use "%empty" with html output * data/xslt/xml2xhtml.xsl: No longer issue an Epsilon, display as in dot and text formats. 2013-11-26 Akim Demaille style: formatting changes * src/print-xml.c: here. 2013-11-26 Akim Demaille xml: also display %empty for empty right-hand sides * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl: Display %empty where needed. 2013-11-26 Akim Demaille reports: display %empty in the generated pointed-rules * src/print.c (print_core): Use %empty for empty rules. * src/print_graph.c (print_core): Ditto. * tests/conflicts.at, tests/output.at, tests/reduce.at: Adjust expectations. 2013-11-26 Akim Demaille news: YYERROR vs variants 2013-11-18 Akim Demaille style: scope reduction in lalr.cc * src/lalr.c: Shorten variable scopes. (lookahead_tokens_print): Use the same variable name in two loops iterating over the same structure. 2013-11-15 Akim Demaille lalr1.cc: formatting changes * data/lalr1.cc: Fix indentation. 2013-11-15 Akim Demaille lalr1.cc: fix the support of YYERROR with variants When variant are enabled, the yylhs variable (the left-hand side of the rule being reduced, i.e. $$ and @$) is explicitly destroyed when YYERROR is called. This is because before running the user code, $$ is initialized, so that the user can properly use it. However, when quitting yyparse, yylhs is also reclaimed by the C++ compiler: the variable goes out of scope. Instead of trying to be too smart, let the compiler do its job: reduce the scope of yylhs to exactly the reduction. This way, whatever the type of scope exit (regular, exception, return, goto...) this variable will be properly reclaimed. Reported by Paolo Simone Gasparello. * data/lalr1.cc (yyparse): Reduce the scope of yylhs. * tests/c++.at: We now pass this test. 2013-11-15 Akim Demaille tests: check $$'s destruction with variant, YYERROR, and no error recovery When variant are enabled, the yylhs variable (the left-hand side of the rule being reduced, i.e. $$ and @$) is explicitly destroyed when YYERROR is called. This is because before running the user code, $$ is initialized, so that the user can properly use it. However, when quitting yyparse, yylhs is also reclaimed by the C++ compiler: the variable goes out of scope. This was not detected by the test suite because (i) the Object tracker was too weak, and (ii) the problem does not show when there is error recovery. Reported by Paolo Simone Gasparello. * tests/c++.at (Exception safety): Improve the objects logger to make sure that we never destroy twice an object. Also track copy-constructors. Use a set instead of a list. Display the logs before running the function body, this is more useful in case of failure. Generalize to track with and without error recovery. 2013-11-15 Akim Demaille tests: simplify useless obfuscation * tests/c++.at: $$ is not special for M4, there is no need to "escape" it. 2013-11-14 Akim Demaille skeletons: use better names when computing a "goto" * data/glr.c (yyLRgotoState): Name the symbol argument yysym, instead of yylhs. * data/lalr1.cc (yy_lr_goto_state_): Likewise. * data/lalr1.java (yy_lr_goto_state_): New, modeled after the previous two routines. Use it. 2013-11-12 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-11-12 Akim Demaille version 3.0.1 * NEWS: Record release date. 2013-11-12 Akim Demaille aver: it is no longer "protected against NDEBUG" Apply the same rules for aver as for assert: no side effects, especially not important ones. * src/AnnotationList.c, src/muscle-tab.c: Adjust aver uses to resist to -DNDEBUG. 2013-11-08 Akim Demaille parsers: rename YY_NULL as YY_NULLPTR to avoid conflicts with Flex Flex also defines YY_NULL (to 0). Avoid gratuitous conflicts. * data/c.m4 (b4_null_define): Rename YY_NULL as YY_NULLPTR. * data/glr.c, data/lalr1.cc, data/location.cc, data/variant.hh, * data/yacc.c, src/parse-gram.c, tests/actions.at, tests/c++.at, * tests/cxx-type.at, tests/glr-regression.at, tests/headers.at, * tests/push.at, tests/regression.at: Adjust. 2013-11-05 Akim Demaille build: use Automake 1.14's non-recursive Makefile features * configure.ac: Require Automake 1.14. * examples/calc++/local.mk, examples/local.mk, examples/mfcalc/local.mk, * examples/rpcalc/local.mk, tests/local.mk: Use %D% and %C%. 2013-11-05 Akim Demaille build: restore maintainer-push-check * tests/local.mk: here. 2013-11-05 Akim Demaille c++: use __attribute__((__pure__)) to avoid warnings Building C++ parsers with -Wsuggest-attribute=const and -Wsuggest-attribute=noreturn triggers warning in generated code. * data/lalr1.cc: Call b4_attribute_define. (debug_stream, debug_level): Flag as pure. * tests/headers.at (Several parsers): There are now more YY macros that "leak". 2013-11-05 Akim Demaille skeletons: update the handling of compiler attributes * data/c.m4 (b4_attribute_define): Instead of defining __attribute__, define YY_ATTRIBUTE conditionally. (YY_ATTRIBUTE_PURE, YY_ATTRIBUTE_UNUSED, _Noreturn): New. Use them. * data/glr.c: Use them. 2013-11-05 Akim Demaille gnulib: update 2013-10-24 Akim Demaille style: use /* ... */ comments * src/complain.c: Here. 2013-10-24 Akim Demaille tests: skip C++ tests that are too demanding for some compilers Some tests now fail when compiled with G++ 4.3 or 4.4 on MacPorts. * tests/local.at (AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR): New. * tests/c++.at (Exception safety): Use it. 2013-10-22 Akim Demaille install: do not install yacc.1 when --disable-yacc * configure.ac (ENABLE_YACC): New conditional. (YACC_SCRIPT, YACC_LIBRARY): Remove. * lib/local.mk, src/local.mk: Use the former instead of the latter. * doc/local.mk: Use ENABLE_YACC to avoid installing yacc.1. 2013-10-22 Akim Demaille style: avoid tabs * src/scan-code.l: here. 2013-10-22 Akim Demaille c++: fix generated doxygen comments * configure.ac: Enable -Wdocumentation if supported. * data/lalr1.cc: Fix comments. 2013-10-22 Akim Demaille fix: uniqstr are already pointers * src/uniqstr.c (uniqstr_assert): Remove incorrect double indirection, and now useless cast. 2013-10-22 Paul Eggert bison: pacify Sun C 5.12 * src/scan-code.l (show_sub_message): Redo initializations to work around a bogus Sun C 5.12 warning. (parse_ref): Remove unreachable code that Sun C 5.12 complains about. * src/uniqstr.h (uniqstr_vsprintf): Use _GL_ATTRIBUTE_FORMAT_PRINTF (...) instead of __attribute__ ((__format__ (__printf__, ...))). Otherwise, Sun C 5.12 complains about an unknown attribute. 2013-10-22 Paul Eggert maint: git now ignores rpcalc * examples/rpcalc/.gitignore: Ignore rpcalc. 2013-10-22 Paul Eggert build: examples/calc++/calc++ requires flex * configure.ac (FLEX_CXX_WORKS): New AM_CONDITIONAL. * examples/calc++/local.mk (examples/calc++/calc++): Build if FLEX_CXX_WORKS, not BISON_CXX_WORKS. 2013-10-22 Paul Eggert maint: mention help2man, texinfo, apt-get * README-hacking: Add help2man, texinfo. Describe how to add packages if you're using Debian. 2013-10-22 Paul Eggert maint: git now ignores .log and .trs files * .gitignore: Add *.log, *.trs. 2013-10-21 Akim Demaille tests: fix incorrect object construction Reported by Ken Moffat. http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00009.html * tests/c++.at (Exception safety): Here. 2013-10-16 Akim Demaille glr: allow spaces between "%?" and "{" in predicates Reported by Rici Lake. http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00004.html http://stackoverflow.com/questions/19330171/ * src/scan-gram.l: Do not try to be too smart when diagnosing invalid directives. * tests/glr-regression.at (Predicates): New test. 2013-10-16 Akim Demaille diagnostics: "-Werror -Wno-error=foo" must not emit errors Currently "-Werror -Wno-error=foo" still turns "foo" warnings into errors. Reported by Alexandre Duret-Lutz. See http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html. * src/complain.c (errority, errority_flag): New. (complain_init): Initialize the latter. (warning_argmatch): Extract the loop iterating on the flag's bits. Set and unset errority_flag here. (warnings_argmatch): -Wno-error is not the same as -Wno-error=everything: we must remember if category foo was explicitly turned in an error/warning via -W(no-)error=foo. (warning_severity): Use errority_flag. * tests/input.at (Symbols): Just check --yacc, not -Wyacc, that's the job of tests on -W. (-Werror is not affected by -Wnone and -Wall): Rename as... (-Werror combinations): this. Tests more combinations of -W, -W(no-)error, and -W(no-)error=foo. * tests/local.at (AT_BISON_CHECK_WARNINGS): Don't expect -Werror to turn runs that issue warnings into runs with errors, as the warnings might be enforced as warnings by -Wno-error=foo, in which case -Werror does not change anything. * doc/bison.texi (Bison Options): Try to be clearer about how -W(no-)error and -W(no-)error=foo interact. 2013-10-16 Akim Demaille comment changes * src/complain.h, src/complain.c: More documentation, more comments. 2013-10-04 Andreas Schwab location: fix EOF check * location.c (location_caret): Use int, not char, for values from getc. 2013-09-19 Akim Demaille style: variant: remove empty line * data/variant.hh (b4_symbol_constructor_define_): Remove stray eol. 2013-09-19 Akim Demaille glr: more assertions * data/glr.c (yyaddDeferredAction, yyglrShiftDefer, yypdumpstack): More assertions. 2013-09-19 Akim Demaille glr: shorten scopes * data/glr.c (yyglrReduce): Define yyflag with its value. 2013-09-19 Akim Demaille glr: formatting changes * data/glr.c: here. 2013-09-19 Akim Demaille glr: better use of tracing macros * data/glr.c (yydestroyGLRState): Use YY_SYMBOL_PRINT instead of yy_symbol_print. 2013-09-19 Akim Demaille examples: improve the output of the "variant" example * examples/variant.yy: Improve the printing of lists. 2013-09-19 Akim Demaille variant: remove useless assertion * data/variant.hh (move): Remove precondition assertion which is ensured by the first call of the body (this precondition is also one of "build"). 2013-09-19 Akim Demaille tests: remove stray debugging traces * tests/atlocal.in: Remove traces. Be ready to remove conftest.dSYM generated on OS X. 2013-09-04 Akim Demaille tests: do not use grep -q Reported by Daniel Galloway. http://lists.gnu.org/archive/html/bug-bison/2013-08/msg00020.html * tests/java.at: Ignore grep's output instead. 2013-08-25 Paul Eggert build: don't require flex for ordinary builds * configure.ac (LEX): Don't fail if this is lex, as flex is not required for ordinary builds. Instead, issue a warning and substitute a no-op LEX. Reported by Michael Felt in . 2013-08-25 Paul Eggert maint: update .gitignore * .gitignore: Add *.eps, *.o, *.pdf, *.png, *.stamp, *~, .deps, .dirstamp. Needed to suppress unwanted chatter from 'git status' after a bootstrap build. 2013-08-24 Paul Eggert build: port to pre-5.8.7 perl * examples/local.mk (extract): Omit -f from perl options. This doesn't work with perl versions before 5.8.7 that are configured without USE_SITECUSTOMIZE. Reported by Michael Felt in . 2013-08-01 Akim Demaille tests: minor change to make it easier to test other skeletons * tests/c++.at (Variants): Pass the skeleton as argument. 2013-08-01 Valentin Tolmer uniqstr: fix assertion * src/uniqstr.c (uniqstr_assert): Really make sure str is a uniqstr, not just whether some uniqstr with the same content was registered. 2013-08-01 Akim Demaille build: ship the ASCII art figures We don't ship the *.txt files that are used to build the info file. Reported by Colin Daley. * doc/figs/example.txt: New. * doc/local.mk (bison.info): Depend on the txt files. And ship them. 2013-08-01 Akim Demaille doc: prefer the ".gv" extension to ".dot" See http://marc.info/?l=graphviz-devel&m=129418103126092 for the motivation (basically, some word processor now uses *.dot). * doc/figs/example-reduce.dot: Rename as... * doc/figs/example-reduce.gv: this. * doc/figs/example-shift.dot: Rename as... * doc/figs/example-shift.gv: this. * doc/figs/example.dot: Rename as... * doc/figs/example.gv: this. * doc/local.mk: Adjust. 2013-07-25 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-07-25 Akim Demaille version 3.0 * NEWS: Record release date. 2013-07-25 Akim Demaille regen 2013-07-25 Akim Demaille news: prepare 3.0 * NEWS (3.0): Reorder. 2013-07-25 Akim Demaille tests: fix invalid assignment when using variants in C++11 * tests/c++.at (Exception safety): In variant mode $$ is an instance of Object. Assigning YY_NULL in C++98 is incorrect, but behaves ok, as it assigns YY_NULL=0 using Object::operator= (char v). It is wrong in C++11 as there is operator for "$$ = nullptr". 2013-07-25 Akim Demaille yacc: beware of "uninitialized uses" warnings Again some issues with the fact that yylval is reported by GCC as possibly not initialized in some cases. Here, the case at hand is the %destructor. I am still not convinced that it is worth going all the trouble of using pragmas to disable temporarily some warnings, instead of just initializing the looking symbol once for all, but that's what Paul voted for, see . * data/c.m4 (b4_attribute_define): Define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_INITIAL_VALUE here, as we will need them in the generation of the destructor function, which is defined in yacc.c before yyparse, which was in charge of defining these macros. * data/yacc.c (b4_declare_scanner_communication_variables): Simplify: trying to factor the definitions of the case pure and impure is too complex. Actually, it is not even clear that this macro should really exist, as even the calls are complex. Be careful not to issue a lone ";", as this is a statement, and C90 forbids declarations after statements ; so write "YY_INITIAL_VALUE(Decl;)", not "YY_INITIAL_VALUE(Decl);". 2013-07-25 Akim Demaille gnulib: update 2013-07-03 Akim Demaille tests: skip C++ tests if we can't compile a simple program There are possible conflicts between gnulib replacement functions (in ) and their C++ wrappers (in ). Trying to address these in configure seems too hard, and I don't know how to fix the issue in gnulib. Cowardly avoid the problem by skipping C++ tests when this happens. Reported by Stefano Lattarini. http://lists.gnu.org/archive/html/bug-bison/2013-06/msg00001.html * tests/atlocal.in (BISON_CXX_WORKS): Also set it to "skip" if we can't compile a simple program using . * tests/local.at: Comment changes. 2013-07-03 Akim Demaille tests: fix 'find' portability issues Reported by Stefano Lattarini. http://lists.gnu.org/archive/html/bug-bison/2013-06/msg00000.html * tests/output.at (AT_CHECK_OUTPUT): Use Perl instead. 2013-06-24 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-06-24 Akim Demaille version 2.7.91 * NEWS: Record release date. 2013-06-24 Akim Demaille NEWS: prepare for 2.7.91 * NEWS (2.7.91): Java push parsers. 2013-06-24 Akim Demaille java: rename YYMORE as YYPUSH_MORE for consistency with C http://lists.gnu.org/archive/html/bison-patches/2013-06/msg00008.html * data/lalr1.java, doc/bison.texi, tests/javapush.at: s/YYMORE/YYPUSH_MORE. 2013-06-21 Akim Demaille tests: fix Java push failure when running with BISON_USE_PUSH_FOR_PULL * tests/javapush.at (Trivial Push Parser with api.push-pull verification): When push for pull is enabled, there is one such function generated. 2013-06-21 Akim Demaille style: minor changes in the Java tests * tests/java.at (AT_CHECK_JAVA_GREP): Ignore the exit status. * tests/javapush.at (AT_CHECK_JAVA_GREP): Be more alike the previous one. Formating changes. Remove stray debugging "jj" file. 2013-06-21 Akim Demaille java: push: do not reset the error counter * data/lalr1.java (parse): here, when in push-pull is in "both" mode. This breaks the test suite, for instance make check TESTSUITEFLAGS='-d 388 BISON_USE_PUSH_FOR_PULL=1'. More generally make maintainer-push-check. 2013-06-14 Akim Demaille build: add Valgrind suppression file for GNU/Linux * build-aux/linux-gnu.valgrind: New. * build-aux/local.mk: Ship it. * configure.ac: Use it. 2013-06-13 Dennis Heimbigner java: add push-parser support * data/lalr1.java: Capture the declarations as m4 macros to avoid duplication. When push parsing, the declarations occur at the class instance level rather than within the parse() function. Change the way that the parser state is initialized. For push-parsing, the parse state declarations are moved to "push_parse_initialize()", which is called on the first invocation of "push_parse()". The %initial-action code is also inserted after the invocation of "push_parse_initialize()". The body of the parse loop is modified to return values at appropriate points when doing push parsing. In order to make push parsing work, it is necessary to divide YYNEWSTATE into two states: YYNEWSTATE and YYGETTOKEN. On the first call to push_parse(), the state is YYNEWSTATE. On all later entries, the state is set to YYGETTOKEN. The YYNEWSTATE switch arm falls through into YYGETTOKEN. YYGETTOKEN indicates that a new token is potentially needed. Normally, with a pull parser, this new token would be obtained by calling "yylex()". In the push parser, the value YYMORE is returned to the caller. On the next call to push_parse(), the parser will return to the YYGETTOKEN state and continue operation. * tests/javapush.at: New test file for java push parsing. * tests/testsuite.at: Use it. * tests/local.mk: Adjust. * doc/bison.texi (Java Push Parser Interface): New. 2013-06-11 Akim Demaille build: ship all the files, even if the C++ compiler is broken * examples/calc++/local.mk: Be sure to ship calc++.test even if the current C++ compiler is not sufficient to run the tests. 2013-06-05 Dennis Heimbigner style: comment changes in Java skeleton * data/lalr1.java: Here. 2013-06-03 Akim Demaille tests: fix a G++ warning * tests/c++.at: Use YY_NULL instead of 0 for the null pointer. And formatting changes. 2013-06-03 Akim Demaille build: fix a warning from clang * src/muscle-tab.c: Declare local functions static. 2013-05-30 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-05-30 Akim Demaille version 2.7.90 * NEWS: Record release date. 2013-05-30 Akim Demaille style: syntax-check fixes * data/yacc.c, src/Sbitset.c, src/Sbitset.h, src/muscle-tab.h, * src/output.c, src/parse-gram.y, src/reader.c, src/symtab.c, * src/uniqstr.c, src/uniqstr.h: Fix space before parens. * cfg.mk (_space_before_paren_exempt): Add needed exceptions. 2013-05-30 Akim Demaille xml: use %empty in the text output * data/xslt/xml2text.xsl: here. 2013-05-30 Akim Demaille build: locally disable new GCC warnings that fail on Flex generated code * configure.ac: here. 2013-05-30 Akim Demaille fix a memory leak * src/print-xml.c (num_escape_bufs): New. (print_xml): Be sure to release all the escape_bufs. 2013-05-30 Akim Demaille regen 2013-05-30 Akim Demaille build: be sure to include config.h first in the generated parser Using %code for config.h is wrong, as some headers will already have been included by Bison. In some cases, e.g., glibc's string.h, this results in some declaration not being made for lack of definition of _GNU_SOURCE, which is performed by config.h. * src/parse-gram.y: here. 2013-05-29 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: post-release administrivia version 2.7.1 regen 2013-05-29 Petr Machata drop unused options --raw, -n, -e, --include and -I * --raw appears to be ignored. It was marked as obsolete in the commit ec3bc39, and documented as no longer supported as of 1.29 (2001-09-07). Support for %raw appears to have been dropped in e9955c83 on 2002-06-11, but --raw was kept around. Maybe it's time to drop it as well? * Commit e9955c83 dropped support for %no-parser as well, and converted it to option. --no-parser was later dropped in 728c4be2 on 2007-08-12, but -n was kept around, probably as an omission. All three are documented as removed since 2.3b (2008-05-27). * -e existed for a single day in 2001. It was introduced in eeeb962b on 2001-11-27. The handling was removed in c7925b99 on 2001-11-28, but "e" was kept in the list of short options. Probably an omission. * --include appears to be dead code. The option sets a variable, but that variable is not used anywhere. It was added in f6bd5427 on 2001-11-26 as a %-directive, with comments that it's not yet implemented. It was converted to a command-line option later, but doesn't seem to ever have been actually implemented. 2013-05-28 Akim Demaille gnulib: update 2013-04-22 Akim Demaille diagnostics: always point to the first directive Some directives cannot be used several times (e.g., a given symbol may only have a single printer). In case of repeated definitions, an error is issued for the second definition, yet it is not discarded, and becomes the definition used for the rest of the file. This is not consistent with the idea that multiple definitions are not allowed: discard any repeated directive. * src/symtab.c (symbol_type_set, symbol_code_props_set) (semantic_type_code_props_set, symbol_class_set, symbol_translation): Discard repeated directives. * tests/input.at (Default %printer and %destructor redeclared) (Per-type %printer and %destructor redeclared): Update expectations. 2013-04-22 Akim Demaille tests: factor test for printer/desctructor redefined * tests/input.at (Default %printer and %destructor redeclared): Introduce AT_TEST to factor. 2013-04-22 Akim Demaille diagnostics: use appropriate location for useless precedence/associativity * src/symtab.c (symbol_precedence_set): Use prec_location, not location (which is the first occurrence of the symbol, possibly just %token). Also, as redefinitions are not allowed, keep the first values, not the subsequent ones. * tests/conflicts.at, tests/existing.at, tests/regression.at: Adjust. 2013-04-22 Akim Demaille tests: factor duplicate expected warnings * tests/existing.at: Instead of "t ? abc : aBc", write "a(t?b:B)c". 2013-04-19 Akim Demaille tests: enable -Wsign-compare and fix corresponding warnings -Wsign-compare was disabled for bison's own code, following gnulib's approach. However, the generated parsers should not trigger such warnings. Reported by Efi Fogel. http://lists.gnu.org/archive/html/help-bison/2013-04/msg00018.html See also http://stackoverflow.com/questions/16101062 for the weird "-(unsigned)i" piece of code. * configure.ac (warn_tests): Enable -Wsign-compare. * data/location.cc (position::add_): New. (position::lines, position::columns): Use it. * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): Fix signedness issues. 2013-04-18 Akim Demaille muscle: check more cases of %define variables with code values * data/bison.m4 (b4_percent_define_check_kind): Fix overquotation. (api.location.type, api.position.type): Check they have code values here. * data/c++.m4 (api.location.type): No longer checked here. (parser_class_name): Check it here. * data/java.m4 (api.value.type, init_throws, lex_throws, parser_class_name) (throws, annotations, extends, implements): Check they have code values. * doc/bison.texi: Fix every incorrect occurrence of %define. Document the additional syntax for %define: code values. Document the additional syntax for -D/-F: string and code values. * tests/calc.at, tests/headers.at, tests/input.at, tests/java.at, * tests/local.at: Fix dependencies. 2013-04-18 Akim Demaille regen 2013-04-18 Akim Demaille parser: do not convert $ and @ in code values of %define variables * src/parse-gram.y (value: "{...}"): Just strip the braces, but pass the value as is. 2013-04-18 Akim Demaille parser: no longer use the "braceless" non-terminal The purpose of this symbol was only to factor function calls. As a result the actions were indeed simpler, but the grammar was somewhat uselessly obfuscated. Get rid of this symbol, but introduce functions to simplify dependencies. There is no (intended) changes of behavior here. * src/parse-gram.y (strip_braces, translate_code( (translate_code_braceless): New. (braceless): Remove, use "{...}" instead, and one of the previous functions depending on the context. (STRING, "%{...%}", EPILOGUE): Declare as , instead of , the difference between both is useless (well, I couldn't make sense of it, even after having read the initial commit that introduced them). (%union): Remove the now useless "chars" type. Adjust the printers. * src/scan-gram.l: Adjust. 2013-04-18 Akim Demaille regen 2013-04-18 Akim Demaille style: avoid %{...%} in our parser * src/parse-gram.y (%{...%}): Split in %code and %code requires. * src/location.h: Add missing includes for self containedness. 2013-04-18 Akim Demaille style: use %code for local function declarations in our parser * src/parse-gram.y (version_check, gram_error, char_name, lloc_default): Move their prototypes from %{...%} to %code. (YYLLOC_DEFAULT, YY_LOCATION_PRINT): Move from %{...%} to %code. (current_lhs): Move its implementation to the epilogue. 2013-04-16 Akim Demaille regen 2013-04-16 Akim Demaille muscle: check the kind of api.prefix, api.location.type * data/bison.m4: Check api.prefix. * data/c++.m4: Check api.location.type. * doc/bison.texi: Fix uses of api.value.type, api.prefix, api.location.type. Document {...} values for %define. * src/parse-gram.y: Fix use of api.prefix. * tests/calc.at: Fix uses of api.location.type. * tests/input.at: Check api.prefix, and api.location.type. 2013-04-15 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-04-15 Akim Demaille version 2.7.1 * NEWS: Record release date. 2013-04-15 Akim Demaille regen 2013-04-15 Akim Demaille muscle: enforce definition syntax for keyword variables * src/muscle-tab.c (muscle_percent_define_get_kind) (muscle_percent_define_check_kind): New. (muscle_percent_define_default): Variables with a default value are of "keyword" kind. (muscle_percent_define_flag_if, muscle_percent_define_check_values): Check that the variable is of keyword kind. * data/bison.m4: Likewise, but in M4. That is to say... (b4_percent_define_default): Define the kind when the variable is undefined. (b4_percent_define_check_kind): Use a better error message. (_b4_percent_define_check_values, _b4_percent_define_check_values): Former "enum" variables should be defined using the keyword syntax. * doc/bison.texi: Update. A couple of fixes. * tests/input.at (%define keyword variables): New. 2013-04-15 Akim Demaille muscle: let -D/-F support the three kinds of %define variable values See http://lists.gnu.org/archive/html/bison-patches/2013-04/msg00012.html * src/getargs.c (getargs): Recognize {value} and "value" for -D and -F. 2013-04-15 Akim Demaille muscle: minor refactoring * src/muscle-tab.c (muscle_percent_define_default): Reduce the scopes. 2013-04-15 Akim Demaille muscle: minor simplification which uncovers a missing warning * src/muscle-tab.c (muscle_percent_define_ensure): Discover the virtues of || to factor conditionals. * NEWS: As api.pure is no longer flagged as "used" by accident, we now have warnings for useless definitions. * tests/calc.at: So remove api.pure settings when running C++ tests, since C++ skeletons use a pure interface. 2013-04-15 Akim Demaille muscle: factor the field retrieval * src/muscle-tab.c (muscle_percent_define_get_raw): New. Use it where appropriate. (location_decode): No longer fetch the value from the table, take the value as argument. 2013-04-15 Akim Demaille muscle: factor the handling of used variables * src/muscle-tab.c (muscle_percent_define_use): New, corresponding to b4_percent_define_use. Use it where appropriate. 2013-04-15 Akim Demaille muscle: factor the computation of variable names * src/muscle-tab.c (muscle_name): New. Use it. Propagate "uniqstr" as value type instead of plain "char const *". 2013-04-15 Akim Demaille muscle: factor the kind check in M4 * data/bison.m4 (b4_percent_define_check_kind): New. Use it to check api.token.prefix. * data/c++.m4: Check the kind of api.namespace. * doc/bison.texi: Update a reference to former 'namespace' variable. * tests/input.at ("%define" code variables): Check api.namespace. 2013-04-15 Akim Demaille muscle: factor conditionals on defined %define variables * data/bison.m4 (b4_percent_define_ifdef_): New. Use it where appropriate. 2013-04-11 Akim Demaille api.token.prefix: use code values * data/bison.m4: Remove useless (and incorrect: m4_* instead of b4_*) default assignment to api.token.prefix. Check that api.token.prefix is assigned code. * tests/input.at (%define code variables): New test. * NEWS, doc/bison.texi, tests/c++.at, tests/calc.at, * tests/java.at, tests/local.at: Adjust to use braces. 2013-04-11 Akim Demaille c++: fix several issues with locations Reported by Daniel Frużyński. http://lists.gnu.org/archive/html/bug-bison/2013-02/msg00000.html * data/location.cc (position::columns, position::lines): Check for underflow. Fix some weird function signatures. (location): Accept signed integers as arguments where appropriate. Add operator- and operator+=. * doc/bison.texi (C++ position, C++ location): Various fixes and completion. * tests/c++.at (C++ Locations): New tests. 2013-04-11 Akim Demaille muscles: be sure that %code snippets are not glue together on a single line Recently "braceless" in the parser was changed so that an eol was no longer added to the value. This is not correct when a %code is used multiple times, because the syncline of the next snippet might be appended to the last (and not ended) line of the previous snippet. * src/muscle-tab.h (muscle_grow): Make it private. * src/muscle-tab.c (muscle_grow): Accept a fourth argument: a required terminator. Adjust callers. * tests/input.at (Multiple %code): New. 2013-04-11 Akim Demaille style: fix comments * tests/actions.at: Fix incorrect "prototype". 2013-04-10 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: glr.cc: fix a clang warning maint: update copyright years build: fix VPATH issue build: avoid clang's colored diagnostics in the test suite tests: please clang and use ".cc", not ".c", for C++ input gnulib: update skeletons: avoid empty switch constructs lalr1.cc: fix compiler warnings yacc.c: do not use __attribute__ unprotected tests: style changes 2013-04-09 Akim Demaille api.value.type: use keyword/brace values Suggested by Joel E. Denny. http://lists.gnu.org/archive/html/bison-patches/2013-03/msg00016.html * data/bison.m4 (b4_percent_define_get_kind): New. (b4_variant_flag): Check that api.value.type is defined as the 'variant' keyword value. * data/c.m4 (_b4_value_type_setup_keyword): New. (b4_value_type_setup): Use it to simplify reading. Use b4_define_silent. Decode api.value.type, including its type. (b4_value_type_define): Likewise. * data/c++.m4 (b4_value_type_declare): Adjust the decoding of api.value.type, taking its kind into account. * doc/bison.texi: Adjust all the examples to the new syntax. * NEWS: Ditto. * tests/types.at: Adjust 2013-04-09 Akim Demaille api.value.type: diagnose guaranteed failure with --yacc Instead of generating invalid C code, generate an error when --yacc and '%define api.value.type union' are used together. * data/bison.m4: Issue an error in this case. * tests/types.at (%yacc vs. %define api.value.type union): New, check this error. * doc/bison.texi (Type Generation): Document it. * tests/output.at: Check that '-o y.tab.c' and '-y' behave equally wrt generated file names. * NEWS (Use of YACC='bison -y'): New. Promote the use of 'bison -o y.tab.c'. 2013-04-09 Akim Demaille doc: style changes * doc/bison.texi (Destructor Decl, Printer Decl): Group series of %token and %type together. 2013-04-09 Akim Demaille doc: display locations in error as recommended by GNU Coding Standards * doc/bison.texi (Actions and Locations): here. 2013-04-09 Akim Demaille doc: api.value.type union * doc/bison.texi (Type Generation): New section. (Multi-function Calc): Convert to use api.value.type=union. 2013-04-09 Akim Demaille doc: move the section about "%union" where types are discussed * doc/bison.texi (Union Decl): Move to... (Defining Language Semantics): here. 2013-04-09 Akim Demaille doc: deprecate #define YYSTYPE in favor of %define api.value.type * doc/bison.texi: Convert examples with YYSTYPE to use api.value.type. Deprecate YYSTYPE. 2013-04-09 Akim Demaille value type: accept "->" in type tags Provide a means to dereference pointers when defining tags. One example could be: %code requires { typedef struct ListElementType { union value { int intVal; float floatVal; char* charptrVal; } value; struct ListElementType* next; } ListElementType; } %union { ListElementType* list; } %token value.charptrVal> STRING %token value.intVal> INTEGER %token value.floatVal> REAL %type ElementList LiteralType * src/scan-code.l, src/scan-gram.l: Accept "->" in tags. * tests/types.at: Add more test cases to cover this case. 2013-04-09 Akim Demaille style: simplify the scanning of type tags * src/scan-gram.l: Remove the rule for simple tags: the "complex" case subsumes it. It was more efficient, but duplicated the code for a negligible benefit. 2013-04-09 Akim Demaille api.value.type: implement proper support, check, and document * data/c.m4 (b4_symbol_type_register, b4_type_define_tag) (b4_symbol_value_union, b4_value_type_setup_union) (b4_value_type_setup_variant, b4_value_type_setup): New. (b4_value_type_define): Use it to set up properly the type. Handle the various possible values of api.value.type. * data/c++.m4 (b4_value_type_declare): Likewise. * data/lalr1.cc (b4_value_type_setup_variant): Redefine. * tests/types.at: New. Exercise all the C/C++ skeletons with different types of api.value.type values. * tests/local.mk, tests/testsuite.at: Use it. * doc/bison.texi (%define Summary): Document api.value.type. * NEWS: Advertise it, together with api.token.constructor. 2013-04-09 Akim Demaille m4: allow the definition of side-effect only macros * data/bison.m4 (b4_divert_kill, b4_define_silent): New. * data/c.m4: Comment change. 2013-04-09 Akim Demaille variant: fix inconsistent quotation * data/variant.hh (b4_char_sizeof): De-overquote. (b4_value_type_declare): De-underquote. 2013-04-09 Akim Demaille m4: style changes in error messages * data/bison.m4: Use $0 to denote the current macro's name. 2013-04-08 Akim Demaille glr.cc: fix a clang warning * data/glr.cc (b4_epilogue): Be sure to end with an end-of-line, so that the file does end with one. 2013-04-08 Akim Demaille maint: update copyright years Run "make update-copyright". 2013-04-08 Akim Demaille build: fix VPATH issue * Makefile.am (update-b4-copyright, update-package-copyright-year): Fix path to build-aux. 2013-04-08 Akim Demaille build: avoid clang's colored diagnostics in the test suite The syncline tests, which try to recognize compiler diagnostics, are confused by escapes for colors. * configure.ac (warn_tests): New, to factor the warnings for both C and C++ tests. Add -fno-color-diagnostics to it. * tests/local.at (AT_TEST_TABLES_AND_PARSE): Do not remove glue together compiler flags. 2013-04-08 Akim Demaille tests: please clang and use ".cc", not ".c", for C++ input When fed with foo.c, clang++ 3.2 answers: clang: error: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use *.cc and *.hh for C++. 2013-04-08 Akim Demaille gnulib: update 2013-04-08 Akim Demaille skeletons: avoid empty switch constructs Reported by Rob Conde. http://lists.gnu.org/archive/html/bug-bison/2013-03/msg00003.html * data/c.m4 (b4_symbol_actions): Rename as... (_b4_symbol_actions): this. (b4_symbol_actions): New wrapper. Do not emit empty switches. Adjust all b4_symbol_actions callers. 2013-04-08 Akim Demaille lalr1.cc: fix compiler warnings Reported by Rob Conde. http://lists.gnu.org/archive/html/bug-bison/2013-03/msg00003.html * data/stack.hh (operator=, stack(const stack&)): Make this class uncopyable, i.e., "undefine" these operators: make them private and don't implement them. (clear): New. * data/lalr1.cc: Use it instead of an assignment. (parser): Make this class uncopyable. 2013-04-08 Akim Demaille yacc.c: do not use __attribute__ unprotected Reported by Victor Khomenko. http://lists.gnu.org/archive/html/bug-bison/2013-04/msg00001.html * data/glr.c (YYUSE, __attribute__): Fuse their definition into... * data/c.m4 (b4_attribute_define): this new macro. * data/yacc.c, data/glr.c: Use it. 2013-04-05 Akim Demaille api.namespace: demonstrate and use {...} values instead of "..." values * tests/c++.at, tests/input.at: Use "%define api.namespace {foo}" instead of using quotes. * tests/local.at (AT_SETUP_STRIP, AT_NAME_PREFIX): Recognize uses of braces instead of quotes. * doc/bison.texi: Use braces for api.namespace's values. 2013-04-05 Akim Demaille grammar: do not add a \n at the end of blocks of code Now that we use "braceless" (which is {...} blocks of code with initial and final braces stripped) to denote "short" values (such as api.namespaces), the added end-of-line is a nuisance. As a matter of fact, this extra-safety was useless, as every expansion of "braceless" (aka, "user code") is followed by an end of line. * src/parse-gram.y, src/parse-gram.c (braceless): Instead of replacing the final brace by \n, just delete the brace. 2013-04-04 Akim Demaille regen 2013-04-04 Akim Demaille grammar: record the kind of %define variable values Provide a means to tell the difference between "keyword" values (e.g., %define api.pull both), "string" values (e.g., %define file.name "foo"), and "code" values (e.g., %define api.namespace {calc}). Suggested by Joel E. Denny. http://lists.gnu.org/archive/html/bison-patches/2013-03/msg00016.html * src/muscle-tab.h, src/muscle-tab.c (muscle_kind, muscle_kind_new) (muscle_kind_string): New. (muscle_percent_define_insert): Take the kind as new argument. Insert it in the muscle table. Adjust callers. * src/getargs.c: Adjust callers. * src/parse-gram.y: Ditto. (content.opt): Remove, replaced by... (value): this new non-terminal, whose semantics value is stored in the new "value" union member. Provide a printer. Support values in braces in additions to keyword and string values. fuse me 2013-04-04 Akim Demaille style: fix comments * src/muscle-tab.c (muscle_percent_define_ensure): Update obsolete comments. 2013-04-04 Akim Demaille regen 2013-04-04 Akim Demaille grammar: style changes * src/parse-gram.y (PARAM_TYPE): Remove useless typedef guard. There's a header guard. Use 'yyo' with %printer. Use a consistent style for %union one-liners. 2013-04-04 Akim Demaille grammar: split %union to group together related aspects * src/parse-gram.y (INT): Fuse the %type and %token declaration. Move its %union right before its introduction. (%union): Split in several %unions, right before their use. 2013-04-04 Akim Demaille muscle: refactor * src/muscle-tab.c (muscle_lookup, muscle_entry_new): New. (muscle_insert, muscle_grow, muscle_find_const, muscle_find): Use them. 2013-04-03 Akim Demaille style: comment changes * src/muscle-tab.c: Move the documentation of public functions to... * src/muscle-tab.h: here. Fix comment consistency issues. 2013-04-03 Akim Demaille muscle: minor refactoring * src/muscle-tab.h (MUSCLE_INSERT_C_STRING): Use MUSCLE_INSERT_STRING. 2013-03-06 Akim Demaille regen 2013-03-06 Valentin Tolmer gram: correct token numbering in precedence declarations In a precedence declaration, when tokens are declared with a litteral character (e.g., 'a') or with a identifier (e.g., B), Bison behaved differently: the litteral tokens would be numbered first, and then the other ones, leading to the following grammar: %right A B 'c' 'd' being numbered as such: 'c' 'd' A B. * src/parse-gram.y (symbol.prec): Set the symbol number when reading the symbols. * tests/conflicts.at (Token declaration order: literals vs. identifiers): New. 2013-03-04 Akim Demaille maint: update autoconf submodule * submodules/autoconf: Up to master. No significant changes in the files we use (m4sugar.m4 and foreach.m4). 2013-03-04 Akim Demaille diagnostics: no longer include the yacc category in -Wall It would be a pity to warn the users against Bison features... http://lists.gnu.org/archive/html/bison-patches/2013-02/msg00107.html * src/complain.h, src/complain.c (Wall): Disable Wyacc. (Weverything): New (hidden so far) category which really denotes all the categories (what used to be Wall). (warnings_args, warnings_types): Adjust. (warning_argmatch): Now !none = Weverything and conversely, no longer Wall. * NEWS, doc/bison.texi, src/getargs.c: Adjust the documentation. * tests/input.at (-Werror is not affected by -Wnone and -Wall): Adjust by not using a -Wyacc type of warning. 2013-03-04 Akim Demaille grammar: no longer detect and cure missing semicolon at end of actions Bison 3.0 is already breaking backward compatibility with other features. It is an appropriate time to drop this feature. Note that it was disabled when --yacc is passed. See http://lists.gnu.org/archive/html/bison-patches/2013-02/msg00102.html Basically, revert e8cd1ad655bcc704b06fb2f191dc3ac1df32b796. * src/scan-code.l (braces_level, need_semicolon, in_cpp): Remove. Remove every rule needed to detect and add missing semicolon. * tests/actions.at (Fix user actions without a trailing semicolon): Remove. * NEWS: Adjust. 2013-03-04 Akim Demaille build: stop using bison -y * Makefile.am (YACC): Pass -o y.tab.c, so that ylwrap is happy, and yet we don't pass --yacc to bison. (AM_YFLAGS): Disable Yacc warnings. 2013-02-23 Akim Demaille c++: rename b4_semantic_type_declare as b4_value_type_declare This is to match the names used in C and api.value.type, even if the parser actually defines semantic_type. * data/c++.m4 (b4_semantic_type_declare): Rename as... (b4_value_type_declare): this. * data/variant.hh: Likewise. 2013-02-23 Akim Demaille news: typo * NEWS: here. 2013-02-23 Akim Demaille style: space changes in the tests * tests/local.at: here. 2013-02-22 Akim Demaille style: formatting changes in the doc * doc/bison.texi: Use @file where appropriate. 2013-02-19 Akim Demaille tests: fix invalid C++11 code * tests/c++.at (Object): Somehow instances of Object were assigned YY_NULL, which is 0 most of the time (that case passes), but is nullptr in C++11, and there is nothing in Object to support such an assignment (failure). Use 0 as value, and provide the needed assignment operator. Also, use a more natural order within the class definition. 2013-02-19 Akim Demaille tests: fix failures with G++ 4.8 in Flex scanner * configure.ac (WARN_NO_NULL_CONVERSION_CXXFLAGS): Rename as... (FLEX_SCANNER_CXXFLAGS): this. Pass -Wno-zero-as-null-pointer-constant to G++ if it supports it. * examples/calc++/local.mk: Adjust. 2013-02-19 Akim Demaille regen 2013-02-19 Akim Demaille gnulib: update 2013-02-19 Akim Demaille style: rename variant private members * data/variant.hh (buffer, tname, as_, raw, align_me): Rename as... (yybuffer_, yytname_,yyas_, yyraw, yyalign_me): these. 2013-02-19 Akim Demaille style: space changes * data/variant.hh: Be sure to leave a space before arguments in function calls. 2013-02-19 Akim Demaille variant: fix G++ 4.4 warnings The changes by Théophile Ranquet about type punning issues need to be extend to in-place new to please G++ 4.4.7. * data/variant.hh (variant::as_): New, factors the casts that avoid compiler warnings. (as, build): Use them. 2013-02-18 Akim Demaille news: spell fixes * NEWS: here. 2013-02-18 Akim Demaille diagnostics: factor and enhance messages about duplicate rule directives When reporting a duplicate directive on a rule, point to its first occurrence: one.y:11.10-15: error: only one %empty allowed per rule %empty {} %empty ^^^^^^ one.y:11.3-8: previous declaration %empty {} %empty ^^^^^^ And consistently discard the second one. * src/complain.h, src/complain.c (duplicate_directive): New. * src/reader.c: Use it where appropriate. * src/symlist.h, src/symlist.c (symbol_list): Add a dprec_location member. * tests/actions.at: Adjust expected output. 2013-02-18 Akim Demaille style: no longer use backquotes * tests/actions.at, tests/atlocal.in, tests/c++.at, tests/calc.at, * tests/conflicts.at, tests/existing.at, tests/glr-regression.at, * tests/input.at, tests/java.at, tests/local.at, tests/sets.at, * tests/synclines.at, doc/bison.texi, lib/libiberty.h, lib/timevar.h: Use single quotes. 2013-02-18 Akim Demaille style: no longer use backquotes * README, REFERENCES, TODO, configure.ac, data/README, data/bison.m4, * data/c++.m4, data/c.m4, data/java.m4, data/lalr1.cc, * data/lalr1.java, data/yacc.c, doc/local.mk, etc/bench.pl.in, * src/conflicts.c, src/files.c, src/getargs.c, src/gram.h, src/lalr.c, * src/location.c, src/location.h, src/muscle-tab.c, src/muscle-tab.h, * src/output.c, src/parse-gram.c, src/parse-gram.y, src/print-xml.c, * src/print.c, src/reader.c, src/reduce.c, src/scan-skel.l, * src/symtab.h, src/system.h, src/tables.c: Use single quotes, as currently recommended by the GNU Coding Standards. 2013-02-18 Akim Demaille style: no longer use backquotes in messages * src/getargs.c (usage): Use single quotes. 2013-02-18 Akim Demaille doc: use %empty instead of /* empty */ * doc/bison.texi: Change the comments into explicit %empty. 2013-02-18 Akim Demaille doc: introduce %empty and -Wempty-rule * doc/bison.texi (Grammar Rules): Make it a @section which contains... (Rules Syntax): this new subsection (with the previous contents of "Grammar Rules". (Empty Rules): New subsection, extracted from the former "Grammar Rules". Document %empty. (Recursion): New a subsection of "Grammar Rules". Complete a few index entries. (Bison Options): Document -Wempty-rule. 2013-02-18 Akim Demaille report: use %empty to denote empty rules * src/gram.c (rule_rhs_print): Use %empty for empty rules. * tests/conflicts.at, tests/regression.at, tests/sets.at: Adjust. 2013-02-18 Akim Demaille diagnostics: %empty enables -Wempty-rule * src/complain.h, src/complain.c (warning_is_unset): New. * src/reader.c (grammar_current_rule_empty_set): If enabled -Wempty-rule, if not disabled. * tests/actions.at (Implicitly empty rule): Check this feature. Also check that -Wno-empty-rule does disable this warning. 2013-02-18 Akim Demaille -Wempty-rule: diagnose empty rules without %empty * src/complain.h, src/complain.c (warning_empty_rule, Wempty_rule): New warning category. (warnings_args, warnings_types): Adjust. * src/reader.c (grammar_rule_check): Check the empty rules are flagged by %empty. * tests/actions.at (Implicitly empty rule): New. * tests/existing.at: Add expected warnings. 2013-02-18 Akim Demaille tests: use %empty * tests/actions.at, tests/input.at, tests/reduce.at, * tests/regression.at: here. 2013-02-18 Akim Demaille regen 2013-02-18 Akim Demaille parser: use %empty Avoid that Bison's own use of "bison -Wall" trigger warnings. * src/parse-gram.y: Use %empty for every empty rule. 2013-02-18 Akim Demaille grammar: introduce %empty Provide a means to explicitly denote empty right-hand sides of rules: instead of exp: { ... } allow exp: %empty { ... } Make sure that %empty is properly used. With help from Joel E. Denny and Gabriel Rassoul. http://lists.gnu.org/archive/html/bison-patches/2013-01/msg00142.html * src/reader.h, src/reader.c (grammar_current_rule_empty_set): New. * src/parse-gram.y (%empty): New token. Use it. * src/scan-gram.l (%empty): Scan it. * src/reader.c (grammar_rule_check): Check that %empty is properly used. * tests/actions.at (Invalid uses of %empty, Valid uses of %empty): New. 2013-02-16 Akim Demaille getargs: minor simplification * src/getargs.c (flag_argmatch): Simplify the handling of "none". 2013-02-16 Akim Demaille style: move argument handling of -W into the diagnostics module This allows to reduce the number of public interfaces. * src/getargs.c (--yacc): Use warning_argmatch instead of tweaking directly warnings_flag (which will be private). (warning_argmatch, warnings_argmatch): Move to... * src/complain.h, src/complain.c: here. * src/getargs.h, src/getargs.c (warnings_args, warnings_types): Move to... * src/complain.c: here, now private. * src/complain.h (severity, warnings_flag): Move to... * src/complain.c: here, now private. 2013-02-16 Akim Demaille diagnostics: revamp the handling of -Werror Recent discussions with Joel E. Denny (http://lists.gnu.org/archive/html/bison-patches/2013-02/msg00026.html) show that it is desirable to tell the difference between an option that was explicitly disabled with -Wno-foo, as opposed to be left unset. The current framework does not allow this. Instead of having a first int to store which options are enabled, and another to store which are turned into errors, use an array that for each warning category tells its status: disabled, unset, warning, error. * src/complain.h, src/complain.c (warning_bit): New enum. (warnings): Use it. (severity): New enum. (warnings_flag): Now an array of severity. (errors_flag): Remove, now done by warnings_flag. (complain_init): New function, to initialie warnings_flag. (warnings_are_errors): New Boolean, for -Werror. * src/complain.c (warning_severity): New. (warnings_print_categories, complains): Use it. * src/getargs.c (warning_argmatch): Adjust to use warnings_flag. (warnings_argmatch): Ditto. Handle -Werror and -Wno-error here. (getargs): Adjust. * src/main.c (main): Call complain_init. * tests/input.at (Invalid options): Add more corner cases. 2013-02-14 Akim Demaille options: simplify the handling of -W * src/getargs.c (warnings_argmatch, warning_argmatch): Simplify by replacing function arguments with their actual values. (WARNING_ARGMATCH): Remove, useless. Adjust callers. 2013-02-14 Akim Demaille options: don't accept "error=" for -f and -r * src/getargs.c (warning_argmatch, warnings_argmatch, WARNINGS_ARGMATCH): New. Use them for -W/--warning. They are copied from... (flag_argmatch, flags_argmatch, FLAGS_ARGMATCH): these. Simplify by removing the support for "error". * tests/input.at (Invalid options): New. * TODO (Laxism in Bison invocation arguments): Remove. 2013-02-14 Akim Demaille diagnostics: factor the list of warning names * src/getargs.h, src/getargs.c (warnings_args, warnings_types): Make them public. * src/complain.h, src/complain.c (warnings_print_categories): Its only use outside complain.c was removed in a recent commit, so make it static. Simplify its implementation. Use warnings_args and warnings_types. * src/muscle-tab.c (muscle_percent_define_check_values): Make it silent. 2013-02-14 Akim Demaille diagnostics: no longer pretty-print rules in error messages, carets suffice * src/gram.c (grammar_rules_useless_report): Let -fcaret handle the pretty-printing of the guilty rules. (rule_print): Inline in its only use. * tests/conflicts.at, tests/existing.at, tests/reduce.at, * tests/regression.at: Adjust. * NEWS: Document. 2013-02-14 Akim Demaille options: no longer document warnings when diagnosing an invalid -W The argmatch functions accept prefixes of the alternatives (like getopt does for long options). Bison uses this to document the warning categories. This is troublesome: it duplicates the --help documentation, it is not gettextized, it is displayed with ugly quotes (because argmatch uses it to display the list of possible answers), and it prevents straighforward uses of the tables of valid warning categories (for instance so that warning diagnostics end with the name of the warning). The "hidden" option --trace uses the same trick, but it does not need to be translated, nor to be described in --help. * src/getargs.c (warnings_args): Remove pseudo documentation. Comment changes. 2013-02-11 Akim Demaille tests: enlarge the allowed duration for calc tests Hydra "often" fails on this test: 252. calc.at:658: 252. Calculator %glr-parser api.pure parse.error=verbose %debug %locations %defines api.prefix="calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count} (calc.at:658): FAILED * tests/calc.at: Give 200s instead of 100s. Use AT_DEBUG_IF. 2013-02-11 Akim Demaille debug: improve the display of symbol lists * src/symtab.c (symbol_print): Remove useless quotes (the symbol already has quotes). Prefer fputs. * src/symlist.c (symbol_list_syms_print): Likewise. Fix separators. 2013-02-09 Akim Demaille style: minor changes * src/complain.c: Space changes. * src/reader.c: Comment changes. Avoid && in assertions. * src/location.c: Move comments to... * src/location.h: here. * src/symlist.h, src/symlist.c: Create a pseudo section for members that apply to the rule. 2013-02-08 Akim Demaille news: restructure, document variants for C++ * NEWS: here. 2013-02-08 Akim Demaille c++: api.token.constructor requires api.value.type=variant Eventually it should also support "union". * data/glr.cc: Move this check to... * data/c++.m4: here, as lalr1.cc is affected too. 2013-02-05 Akim Demaille build: restore C90 compatibility * src/parse-gram.y, src/parse-gram.c: Don't use // comments. 2013-02-05 Akim Demaille doc: use @group to improve page breaking * doc/bison.texi: here. 2013-02-04 Akim Demaille style: rename internal "stype" as "union_members" for clarity "stype" is quite unclear, and it also collides with the former %define variable that had the same name (replaced by api.value.type). * src/parse-gram.y (stype): Rename as... (union_members): this. * data/bison.m4: Adjust. (b4_user_stype): Rename as... (b4_user_union_members): this. * data/c++.m4, data/c.m4: Adjust. * src/parse-gram.c: regen. 2013-02-04 Akim Demaille tests: improve the language independance layer * tests/local.at (_AT_LANG_DISPATCH): New, shamelessly stolen from Autoconf's _AT_LANG_DISPATCH. (AT_LANG_DISPATCH): New. (AT_YYERROR_FORMALS, AT_YYERROR_PROTOTYPE, AT_YYERROR_DECLARE_EXTERN) (AT_YYERROR_DECLARE, AT_YYERROR_DEFINE, AT_MAIN_DEFINE, AT_COMPILE) (AT_FULL_COMPILE): Use AT_LANG_DISPATCH instead of an ad hoc m4_case. 2013-02-04 Akim Demaille regen 2013-02-04 Akim Demaille style: space changes in the parser * src/parse-gram.y: Fix spaces. 2013-02-04 Akim Demaille parser: use api.pure full * src/parse-gram.y: Use api.pure full instead of silly macro tricks. 2013-02-04 Akim Demaille style: use a for loop instead of a while loop, and scope reduction * src/reader.c (packgram): Improve readability. The parser calls grammar_current_rule_end at the end of every rhs, which adds a NULL to separate the rules. So there is no need to check whether "p" is non-null before proceeding. 2013-02-01 Theophile Ranquet variants: stylistic change * data/variant.hh (tname): Respect the GNU Coding Standards for this pointer's declaration. 2013-02-01 Theophile Ranquet grammar: free the association tracking graph The graph introduced by Valentin wasn't free'd after use. * src/symtab.c (assoc_free): New, clear the array of linked lists with... (linkedlist_free): This, new. (print_precedence_warnings): Call assoc_free when done. (print_assoc_warnings): Free used_assoc after use. 2013-02-01 Theophile Ranquet tests: use AT_FULL_COMPILE where possible * tests/c++.at (C++ Variant-based Symbol, Variants): Here. Rename the generated input files to use .y instead of .yy, as a requirement for using AT_FULL_COMPILE instead of a combination of AT_BISON_CHECK and AT_BISON_COMPILE_CXX. 2013-02-01 Theophile Ranquet variants: avoid type punning issue This is based on what is recommended by both Scott Meyers, in 'Effective C++', and Andrei Alexandrescu and Herb Sutter in 'C++ Coding Standards'. Use a static_cast on void* rather than directly use a reinterpret_cast, which can have nefarious effects on objects. However, even though following this guideline is good practice in general, I am not quite sure how relevant it is when applied to conversions from POD to objects. Actually, it might very well be the opposite: isn't this exactly what reinterpret_cast is for? What we really want *is* to transmit the memory map as a series of bytes, which, if I am correct, falls into the kind of "low level" hack for which this cast is meant. In any case, this silences the warning, which will be greatly appreciated by anyone using variants with a compiler supporting -fstrict-aliasing. * data/variant.hh (as): Here. * tests/c++.at (Exception safety, C++ Variant-based Symbols, Variants): Don't use NO_STRICT_ALIAS_CXXFLAGS (revert commit ddb9db15), as type punning is no longer an issue. * tests/atlocal.in, configure.ac (NO_STRICT_ALIAS_CXXFLAGS): Remove definition. * examples/local.mk (NO_STRICT_ALIAS_CXXFLAGS): Remove from AM_CXXFLAGS. * doc/bison.texi: Don't mention type punning issues. 2013-02-01 Theophile Ranquet todo: update Reformulate and give more details on my thoughts concerning the graphical visualization, and add an entry about a bug in the options processing for warnings as errors. * TODO: Here. 2013-02-01 Akim Demaille regen 2013-02-01 Akim Demaille location: pass the location first * src/location.h, src/location.c (location_print): For consistency with other data structures and other location_* routines, pass the location argument first. * src/complain.c: Adjust. (location_caret): Likewise. * src/parse-gram.y: Adjust. 2013-02-01 Akim Demaille symlist: use the right stream * src/symlist.c (symbol_list_syms_print): Use "f", not stderr. 2013-01-30 Akim Demaille tests: put two related tests together * tests/conflicts.at (Useless associativity warning): Move next to "Useless precedence warning". 2013-01-30 Akim Demaille news: name contributors * NEWS: here. 2013-01-30 Valentin Tolmer warnings: introduce -Wprecedence The new warning category "precedence" flags useless precedence and associativity. -Wprecedence can now be used, it is disabled by default. The warnings about precedence and associativity are grouped into one, and the testsuite was corrected accordingly. * src/complain.h (warnings): Introduce "precedence". * src/complain.c (warnings_print_categories): Adjust. * src/getargs.c (warnings_args, warning_types): Likewise. * src/symtab.h, src/symtab.c (print_associativity_warnings): Remove. * src/symtab.h (register_assoc): Correct arguments. * src/symtab.c (print_precedence_warnings): Print both warnings together. * doc/bison.texi (Bison options): Document the warnings and provide an example. * tests/conflicts.at, tests/existing.at, tests/local.at, * tests/regression.at: Adapt the testsuite for the new category (-Wprecedence instead of -Wother where appropriate). 2013-01-30 Akim Demaille build: avoid clang's colored diagnostics in the test suite The syncline tests, which try to recognize compiler diagnostics, are confused by escapes for colors. * configure.ac (warn_tests): New, to factor the warnings for both C and C++ tests. Add -fno-color-diagnostics to it. * tests/local.at (AT_TEST_TABLES_AND_PARSE): Do not remove glue together compiler flags. 2013-01-30 Akim Demaille build: please Clang++ 3.2+ on Flex scanners Clang++, with -Wall, rejects code generated by Flex (for C scanners): CXX examples/calc++/examples_calc___calc__-calc++-scanner.o In file included from examples/calc++/calc++-scanner.cc:1: error: implicit conversion of NULL constant to 'bool' [-Werror,-Wnull-conversion] if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)] : __null) ) { ~ ^~~~~~ false * configure.ac (WARN_NO_NULL_CONVERSION_CXXFLAGS): Compute it. * examples/calc++/local.mk (examples_calc___calc___CXXFLAGS): Use it. 2013-01-30 Valentin Tolmer grammar: record used associativity and print useless ones Record which symbol associativity is used, and display useless ones. * src/symtab.h, src/symtab.c (register_assoc, print_assoc_warnings): New * src/symtab.c (init_assoc, is_assoc_used): New * src/main.c: Use print_assoc_warnings * src/conflicts.c: Use register_assoc * tests/conflicts.at (Useless associativity warning): New. Due to the new warning, many tests had to be updated. * tests/conflicts.at tests/existing.at tests/regression.at: Add the associativity warning in the expected results. * tests/java.at: Fix the java calculator's grammar to remove a useless associativity. * doc/bison.texi (mfcalc example): Fix associativity to remove warning. 2013-01-29 Valentin Tolmer grammar: warn about unused precedence for symbols Symbols with precedence but no associativity, and whose precedence is never used, can be declared with %token instead. The used precedence relationships are recorded and a warning about useless ones is issued. * src/conflicts.c (resolve_sr_conflict): Record precedence relation. * src/symtab.c, src/symtab.h (prec_nodes, init_prec_nodes) (symgraphlink_new, register_precedence_second_symbol) (print_precedence_warnings): New. Record relationships in a graph and warn about useless ones. * src/main.c (main): Print precedence warnings. * tests/conflicts.at: New. 2013-01-29 Theophile Ranquet variants: remove the 'built' assertions When using %define parse.assert, the variants come with additional variables that are useful for development purposes. One is a Boolean indicating if the variant is built (to make sure we don't read a non-built variant), and the other is a string describing the stored type. There is no need to have both of these, the string is enough. * data/variant.hh (built): Remove. 2013-01-29 Akim Demaille style: indentation fixes * src/parse-gram.y: here. 2013-01-29 Akim Demaille maint: be sure to neutralize out-of-tree paths from our parser * tests/bison.in: Adjust to support fixed versions of ylwrap. 2013-01-29 Theophile Ranquet m4: generate a basic_symbol constructor for each symbol type Recently, there was a slightly vicious bug hidden in the make_ functions: parser::symbol_type parser::make_TEXT (const ::std::string& v) { return symbol_type (token::TOK_TEXT, v); } The constructor for symbol_type doesn't take an ::std::string& as argument, but a constant variant. However, because there is a variant constructor which takes an ::std::string&, this caused the implicit construction of a built variant. Considering that the variant argument for the symbol_type constructor was cv-qualified, this temporary variant was never destroyed. As a temporary solution, the symbol was built in two stages: symbol_type res (token::TOK_TEXT); res.value.build< ::std::string&> (v); return res; However, the solution introduced in this patch contributes to letting the symbols handle themselves, by supplying them with constructors that take a non-variant value and build the symbol's own variant with that value. * data/variant.hh (b4_symbol_constructor_define_): Use the new constructors rather than building in a temporary symbol. (b4_basic_symbol_constructor_declare, b4_basic_symbol_constructor_define): New macros generating the constructors. * data/c++.m4 (basic_symbol): Invoke the macros here. 2013-01-29 Theophile Ranquet c++: minor stylistic changes * data/c++m4: Remove useless comment lines. * data/variant.hh (self_type): Use this typedef instead of variant. (b4_symbol_constructor_define_): Remove commented-out line, and stylistic change (avoid blank line). 2013-01-29 Akim Demaille c++: please G++ 4.8 with -O3: type puning issue * tests/c++.at (Exception safety): Now that this test covers variants, pass -fno-strict-aliasing to g++. 2013-01-29 Akim Demaille c++: please G++ 4.8 with -O3: array bounds * data/c++.m4, data/lalr1.cc (by_state, by_type): Do not use -1 to denote the absence of value, as GCC then fears that this -1 might be used to dereference arrays (such as yytname). Use 0, which corresponds to $accept, which is valueless (the needed property: the symbol destructor must not try to reclaim the memory associated with the symbol). 2013-01-29 Akim Demaille c++: use more explicit types than int * data/c++.m4 (b4_public_types_declare): Declare token_number_type soon. Introduce symbol_number_type (wider than token_number_type). Clarify the requirement that kind_type from by_state and by_type denote the _input_ type (required by the constructor), not the stored type. Use symbol_number_type and token_number_type where appropriate, instead of int. * data/lalr1.cc: Adjust to these changes. Propagate "symbol_number_type". Invoke "type_get ()" instead of read "type" directly. 2013-01-29 Akim Demaille c++: value_type -> kind_type * data/c++.m4, data/lalr1.cc (by_type, by_state): Rename 'value_type' as 'kind_type', as it is clearer. 2013-01-29 Akim Demaille c++: improve the signature of yysyntax_error_ * data/lalr1.cc: This function is const. It takes a symbol_number_type. 2013-01-29 Akim Demaille c++: style changes * data/lalr1.cc: Formatting changes. And name changes. 2013-01-28 Akim Demaille doxygen: upgrade Doxyfile, and complete it * doc/Doxyfile.in: Let doxygen upgrade it. (INCLUDE_PATH): Point to lib too. (PROJECT_BRIEF): New. (EXCLUDE): Update to reflect the current file hierarchy. 2013-01-28 Akim Demaille maint: fix syntax-check issues * cfg.mk: Ignore strcmp in local.at. * tests/conflicts.at: Use AT_PARSER_CHECK. * tests/regression.at: Preserve the exit status of the generated parsers. * tests/local.mk ($(TESTSUITE)): Map @tb@ to a tabulation. * tests/c++.at, tests/input.at, tests/regression.at: Use @tb@. * cfg.mk: (space-tab): There are no longer exceptions. 2013-01-28 Akim Demaille tests: please C90 compilers * tests/actions.at, tests/conflicts.at: Use /* ... */ comments. Let "main" return a value. 2013-01-28 Akim Demaille maint: update todo * TODO: Remove fixed items. 2013-01-28 Akim Demaille news: minor improvements * NEWS: Name some more contributors. Restructure slightly. 2013-01-28 Akim Demaille tests: please clang and use ".cc", not ".c", for C++ input When fed with foo.c, clang++ 3.2 answers: clang: error: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use *.cc and *.hh for C++. 2013-01-28 Akim Demaille tests: formatting changes * tests/local.at: Restore proper indentation. 2013-01-28 Theophile Ranquet c++: better inline expansion Many 'inline' keywords were in the declarations. They rather belong in definitions, so move them. * data/c++.m4 (basic_symbol, by_type): Many inlines here. * data/lalr1.cc (yytranslate_, yy_destroy_, by_state, yypush_, yypop_): Inline these as well. (move): Move the definition outside the struct, where it belongs. 2013-01-28 Akim Demaille tests: check that using variants is exception safe * tests/local.at: (Slightly) improve the regexp by escaping '.' when it denotes a point. (AT_VARIANT_IF): New. * tests/c++.at (Exception Safety): Run it for variants too. 2013-01-28 Akim Demaille tests: remove useless %defines Many tests were using %defines because C++ skeletons used to require it. * tests/actions.at, tests/c++.at, tests/input.at, tests/regression.at: Remove useless %defines. 2013-01-28 Akim Demaille c++: remove now-useless operators Now that symbols behaves properly, we can eliminate special routines that are no longer needed. * data/c++.m4, data/glr.cc, data/lalr1.cc, data/variant.hh: Remove useless assignment operators and copy constructors. As a consequence, remove useless includes for "abort". 2013-01-28 Akim Demaille tests: enable support for --debug * tests/c++.at (Variants): Here. And remove useless clutter when api.token.constructor is enabled. 2013-01-28 Akim Demaille c++: revamp the support for variants The current approach was too adhoc: the symbols were not sufficiently self-contained, in particular wrt memory management. The "new" guideline is the one that should have been followed from the start: let the symbols handle themslves, instead of leaving their users to it. It was justified by the will to avoid gratuitious moves and copies, but the current approach does not seem to be slower, yet it will probably be simpler to adjust to support move semantics from C++11. The documentation says that the %parse-param are available from the %destructor. In retrospect, that was a silly design decision, which we can break for variants, as its a new feature. It should be phased out for non-variants too. * data/variant.hh: A variant never knows if it stores something or not, it is up to its users to store this information. Yet, in parse.assert mode, make sure the empty/filled variants are properly used. (b4_symbol_constructor_define_): Don't call directly the symbol constructor, to save a useless temporary. * data/stack.hh (push): Steal the pushed value instead of duplicating it. This will simplify the callers of push, who handled this "move" approach themselves. * data/c++.m4 (basic_symbol): Let -1, as kind, denote the fact that a symbol is empty. This is needed for instance when shifting the lookahead: yyla is given as argument to "push", and its value is then moved on the stack. But then yyla must be declared "empty" so that its destructor won't be called. (basic_symbol::move): New. Move the responsibility of calling the destructor from yy_destroy to ~basic_symbol in the case of variants. * data/lalr1.cc (stack_symbol_type): Now a derived class from its previous value, so that we can add a constructor from a symbol_type. (by_state): State -1 means empty. (yypush_): Factor, by calling one overload from the other one, and using the new semantics of stack::push. No longer reclaim by hand the memory from rhs symbols, since now that we store objects with proper destructors, they will be reclaimed automatically. Conversely, be sure to delete yylhs. * tests/c++.at (C++ Variant-based Symbols): New "unit" test for symbols. 2013-01-28 Akim Demaille c++: formatting and comment changes * data/c++.m4, data/lalr1.cc, data/stack.hh, data/variant.hh: Fix indentation. Fix some comments. 2013-01-27 Valentin Tolmer tests: add token declaration order test * tests/conflicts.at: New test. 2013-01-27 Akim Demaille regen 2013-01-27 Valentin Tolmer grammar: preserve token declaration order In a declaration %token A B, the token A is declared before B, but in %left A B (or with %precedence or %nonassoc or %right), the token B was declared before A (tokens were declared in reverse order). * src/symlist.h, src/symlist.c (symbol_list_append): New. * src/parse-gram.y: Use it instead of symbol_list_prepend. * tests/input.at: Adjust expectations. 2013-01-25 Akim Demaille tests: improve test group titles * tests/local.at (AT_SETUP_STRIP): AT_SETUP does not behave properly with new-lines in its argument. Remove them. Fix the handling of %define with quotes. 2013-01-25 Akim Demaille c: no longer require stdio.h when locations are enabled Recent changes (in 2.7) introduced a dependency on both FILE and fprintf, which are "available" only in %debug mode. This was to define yy_location_print_, which is used only in %debug mode by the parser, but massively used by the test suite to output the locations in yyerror. Break this dependency: the test suite should define its own routines to display the locations. Eventually Bison will provide the user with a means to display locations, but not yet. * data/c.m4 (b4_yy_location_print_define): Use YYFPRINTF instead of fprintf directly. * data/yacc.c (b4_yy_location_print_define): Invoke it only in %debug mode, so that stdio.h is included (needed for FILE*), and YYFPRINTF is defined. * tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DEFINE): Declare and define location_print and LOCATION_PRINT. * tests/actions.at, tests/existing.at, tests/glr-regression.at, * tests/input.at, tests/named-refs.at, tests/regression.at: Adjust to use them. Fix the expected line numbers (as the prologue's length has changed). 2013-01-25 Akim Demaille c: minor simplification in the debug code * data/c.m4 (yy_symbol_print): Minor factoring. 2013-01-25 Akim Demaille c++: display locations as C does See commit 3804aa260b956dd012adde3894767254422a5fcf. * data/location.cc (operator<<): Display location exactly as is done in C skeletons. * tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): Also define AT_FIRST_LINE, AT_LAST_LINE, AT_FIRST_COLUMN, AT_LAST_COLUMN. * tests/actions.at (Location Print): Also check C++ skeletons. 2013-01-25 Akim Demaille tests: highlight empty right-hand sides * tests/actions.at, tests/c++.at, tests/headers.at, * tests/input.at: here. 2013-01-25 Akim Demaille news: prepare for 2.8 * NEWS: Restructure. Name contributors. 2013-01-21 Akim Demaille tests: generalize default main for api.namespace * tests/local.at (AT_NAME_PREFIX): Also match api.namespace. (AT_MAIN_DEFINE): Take it into account. * tests/c++.at, tests/headers.at: Use AT_NAME_PREFIX. (AT_CHECK_NAMESPACE): Rename as... (AT_TEST): this. 2013-01-21 Akim Demaille tests: improve factoring of the main function * tests/local.at (AT_MAIN_DEFINE): If %debug is used, check if -d/--debug is passed to the generated parser, and enable the traces. Return exactly the result of yyparse, so that we can check exit code 2 too. * tests/actions.at, tests/glr-regression.at, tests/regression.at: Use AT_MAIN_DEFINE, helping AT_BISON_OPTION_PUSHDEFS where needed, preferably to option -t. 2013-01-21 Akim Demaille tests: factor the definition of main With Théophile Ranquet. * tests/local.at (AT_MAIN_DEFINE): New. (AT_YYERROR_DEFINE): Improve formatting. * tests/actions.at, tests/c++.at, tests/conflicts.at, * tests/glr-regression.at, tests/input.at, tests/regression.at, * tests/skeletons.at, tests/torture.at: Adjust. * tests/c++.at: Add missing %skeleton for a PUSHDEFS, and a missing PUSH/POPDEFS for another test. 2013-01-21 Akim Demaille tests: minor refactoring * tests/named-refs.at: Use AT_FULL_COMPILE where applicable. 2013-01-21 Akim Demaille diagnostics: avoid useless caret stuttering * src/scan-code.l: When reporting a missing ending ';', don't display the guilty action twice. 2013-01-21 Theophile Ranquet examples: please clang * doc/bison.texi (calc++-scanner.ll): Don't output useless yyinput function. 2013-01-21 Theophile Ranquet tests: better silencing of unused argument warnings input.yy:35:44: error: unused parameter 'msg' [-Werror,-Wunused-parameter] void yy::parser::error (std::string const& msg) ^ * tests/c++.at (C++ GLR parser identifier shadowing): Don't name unused argument, use YYUSE instead of a direct cast to void. 2013-01-21 Theophile Ranquet bench: compatibility for Bison <= 2.7 There used to be a bug in some skeletons, which caused the expansion of 'yylval' and 'yylloc', generating these errors: input.cc:547:16: error: expected ',' or '...' before '(' token #define yylval (yystackp->yyval) ^ input.yy:29:39: note: in expansion of macro 'yylval' int yylex (yy::parser::semantic_type *yylval) ^ This bug is fixed by 'skel: better aliasing of identifiers', but a workaround is useful when benchmarking against older versions of Bison, which are still affected by the bug. * etc/bench.pl.in: Rename yylval to yylvalp and yylloc to yyllocp in base grammar 'list'. 2013-01-15 Theophile Ranquet c++: remove useless inlines * data/c++.m4 (basic_symbol): Keep 'inline' in the prototypes, but don't duplicate it in the implementation. * data/variant.hh (variant): 'inline' is not needed when the implementation is provided in the class definition. 2013-01-15 Theophile Ranquet c++: m4 stylistic change * data/c++.m4 (syntax_error): Fix the indentation of 'inline'. 2013-01-14 Theophile Ranquet c++: silence warnings * data/c++.m4 (basic_symbol::operator=): Unused parameter. * tests/c++.at (C++ GLR parser identifier shadowing): Here too. - 2013-01-14 Theophile Ranquet news: typos * NEWS: Fix a typo, use YYSTYPE rather than semantic_type. 2013-01-12 Akim Demaille regen 2013-01-12 Akim Demaille maint: update copyright years Suggested by Stefano Lattarini. Run "make update-copyright". 2013-01-12 Akim Demaille build: fix VPATH issue * Makefile.am (update-b4-copyright, update-package-copyright-year): Fix path to build-aux. 2013-01-11 Theophile Ranquet carets: document default activation * NEWS: Announce it. * doc/bison.texi: Adjust. 2013-01-11 Theophile Ranquet carets: show them in more tests * tests/input.at, tests/named-refs.at: Here. 2013-01-11 Theophile Ranquet carets: activate by default * src/getargs.c (feature_flag): Here. * tests/local.at (AT_BISON_CHECK_, AT_BISON_CHECK_NO_XML): Deactivate carets for the testsuite, by default. * tests/input.at: Adjust the locations for command line definitions. 2013-01-11 Theophile Ranquet variants: document move and swap * data/variant.hh (swap): Doc. (build): Rename as... (move): This, more coherent naming with clearer meaning. * data/c++.m4 (move): Adjust. 2013-01-11 Theophile Ranquet c++: privatize variant blind copies * data/variant.hh (variant, operator=): Make private. * data/c++.m4 (operator=): New, to avoid needing a definition of that operator for each class member (such as a possible variant). * data/glr.cc, data/lalr.cc: Add the necessary include for the abort. 2013-01-11 Akim Demaille glr.c: fix an unused argument issue * data/glr.c (yyuserAction): "Use" yyrhslen, as in variant mode, we might not use it. 2013-01-11 Akim Demaille glr.c: style changes * data/glr.c (yyuserAction): Use a size_t for sizes. 2013-01-11 Akim Demaille c.m4: style fix * data/c.m4 (b4_parse_param_use): Add missing space before paren. 2013-01-11 Theophile Ranquet skel: better aliasing of identifiers * data/glr.c, data/yacc.c: Avoid emitting useless defines. * data/glr.cc: Restore prefixes for epilogue. 2013-01-11 Theophile Ranquet glr.cc: fatal if using api.token.ctor without variants * data/glr.cc: Here. 2013-01-11 Theophile Ranquet skel: correctly indent switch cases * data/bison.m4 (b4_type_action_): Here. 2013-01-11 Theophile Ranquet variants: assert changes * data/variant.hh (swap): More asserts can't hurt. Don't perform useless swaps. (build): Deactivate problematic asserts, pending further investigation. (variant): Prohibit copy construction. 2013-01-11 Theophile Ranquet lalr1.cc: use a vector for the symbol stack * data/lalr1.cc: Adjust includes. * data/stack.hh (push, pop): Use push_back and pop_back. (operator []): Access vector from the end. 2013-01-11 Theophile Ranquet lalr1.cc: change symbols implementation A "symbol" groups together the symbol type (INT, PLUS, etc.), its possible semantic value, and its optional location. The type is needed to access the value, as it is stored as a variant/union. There are two kinds of symbols. "symbol_type" are "external symbols": they have type, value and location, and are returned by yylex. "stack_symbol_type" are "internal symbols", they group state number, value and location, and are stored in the parser stack. The type of the symbol is computed from the state number. The class template symbol_base_type factors the code common to stack_symbol_type and symbol_type. It uses the Curiously Recurring Template pattern so that we can always (static_) downcast to the exact type. symbol_base_type features value and location, and delegates the handling of the type to its parameter. When trying to generalize the support for variant, a significant issue was revealed: because stack_symbol_type and symbol_type _derive_ from symbol_base_type, the type/state member is defined _after_ the value and location. In C++ the order of the definition of the members defines the order in which they are initialized, things go backward: the value is initialized _before_ the type. This is wrong, since the type is needed to access the value. Therefore, we need another means to factor the common code, one that ensures the order of the members. The idea is simple: define two (base) classes that code the symbol type ("by_type" codes it by its type, and "by_state" by the state number). Define basic_symbol as the class template that provides value and location support. Make it _derive_ from its parameter, by_type or by_state. Then define stack_symbol_type and symbol_type as basic_symbol, basic_symbol. The name basic_symbol was chosen by similarity with basic_string and basic_ostream. * data/c++.m4 (symbol_base_type): Remove, replace by... (basic_symbol): which derives from its parameter, one of... (by_state, by_type): which provide means to retrieve the actual type of symbol. (symbol_type): Is now basic_symbol. (stack_symbol_type): Is now basic_symbol. * data/lalr1.cc: Many adjustments. 2013-01-11 Theophile Ranquet bench: add %b directive to use a specific Bison For example, $ bench.pl -v '%s lalr1.cc & %d variant & ( %b ~/old-bison/bin/bison | %b ~/new-bison/bin/bison )' -g list -i 10000 * etc/bench.pl.in: Here. 2013-01-09 Akim Demaille regen 2013-01-04 Akim Demaille gnulib: update 2012-12-31 Akim Demaille doc: use deffn to declare the list of %define variables * doc/bison.texi (%define Summary): Use @deffn instead of @table, it spares a lot of width, especially in PDF, and looks nicer in the other formats too. It is also more consistent with the rest of the document. 2012-12-31 Akim Demaille doc: minor completion and fixes * doc/bison.texi (%define Summary): Provide more history to some variables. 2012-12-31 Akim Demaille java: stype is obsoleted by api.value.type This is consistent with the other %define variable names. * data/java.m4: Use api.value.type instead of stype. * doc/bison.texi, NEWS: Document that change. * src/muscle-tab.c (muscle_percent_variable_update): Provide backward compatibility. * tests/java.at: Adjust. 2012-12-31 Akim Demaille doc: fix html build * doc/local.mk (bison.html): Fix dependencies. 2012-12-31 Akim Demaille todo: remove erroneous task * tests/input.at: Check that there are no warnings about stray $ and @ in the epilogue. * TODO: Remove the correponding task. 2012-12-31 Akim Demaille gnulib: update 2012-12-28 Akim Demaille regen 2012-12-28 Akim Demaille syncline: one line is enough So far we were issuing two lines for each syncline change: /* Line 356 of yacc.c */ #line 1 "src/parse-gram.y" This is a lot of clutter, especially when reading diffs, as these lines change often. Fuse them into a single, shorter, line: #line 1 "src/parse-gram.y" /* yacc.c:356 */ * data/bison.m4 (b4_syncline): Issue a single line. Comment improvements. (b4_sync_start, b4_sync_end): Issue a shorter comment. * data/c++.m4 (b4_semantic_type_declare): b4_user_code must be on its own line as it might start with a "#line" directive. 2012-12-28 Akim Demaille regen 2012-12-28 Akim Demaille maint: restore ANSI 89 compliance * data/bison.m4, src/conflicts.c, src/files.c, src/output.c, * src/symtab.c: Use /* ... */ comments only. Declare variables before statements. 2012-12-28 Akim Demaille graph: minor simplification * src/gram.c (print_lhs): Use %*s to indent. * src/print_graph.c (print_lhs): Use obstack_printf. Became simple enough to be inlined in... (print_core): here. Use a "rule*" instead of an index in "rules[]". 2012-12-28 Akim Demaille closure, gram: add missing const * src/closure.h, src/closure.c, src/gram.h, src/gram.c: Add some missing const where appropriate. 2012-12-27 Theophile Ranquet carets: properly display when no line feed is present * src/location.c (location_caret): finish the line with one whether or not it is present in input. Rewrite code without getline. (cleanup_caret): Reset the caret_info global. * bootstrap.conf: No longer require getline. 2012-12-27 Theophile Ranquet scanner: reintroduce unput for missing end tokens Unput was no longer used since a POSIX-compatiblity issue with Flex 2.5.31, which has been adressed in newer versions of Flex. See this discussion: This partially reverts commit aa4180418fff518198e1b0f2c43fec6432210dc7. * src/scan-gram.l (unexpected_end): Here. * tests/input.at: Adjust for new order of error reports. 2012-12-27 Akim Demaille tables: scope reduction * src/tables.c (default_goto): Make it easier to understand. 2012-12-27 Akim Demaille regen 2012-12-27 Akim Demaille skeletons: fix comments The commit 38de4e570fdc7c8db9633c3b2054e565d8c1c6b9 underquoted the content of the comments, which resulted in losing square brackets in the comments. Besides, some other invocations were underquoting the effective arguments. * data/c.m4 (b4_comment_): Properly quote the comment. (b4_comment_, b4_comment): Move to... * data/c-like.m4: here, so that... * data/java.m4: can use it instead of its own copy. * data/bison.m4 (b4_integral_parser_tables_map): Fix some comments. * data/lalr1.cc, data/lalr1.java, data/yacc.c: Comment fixes. * data/lalr1.cc: Reorder a bit to factor some CPP directives. 2012-12-27 Akim Demaille maint: which -> whose Apparently, I was confusing both. * data/bison.m4, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Use "whose" where appropriate. 2012-12-26 Akim Demaille tables: scope reduction * src/tables.c (matching_state): here. 2012-12-26 Akim Demaille tables: scope reduction * src/tables.c (token_actions): here. 2012-12-26 Akim Demaille tables: scope reduction * src/tables.c (save_row): here. 2012-12-26 Akim Demaille tables: scope reduction * src/tables.c (save_column, pack_vector): Reduce the scope to emphasize the structure of the code. Rename the returned value "res" to make understanding easier. 2012-12-26 Akim Demaille tables: use size_t where appropriate These changes aim at making the code easier to understand. * src/tables.c (tally): This is a size, always >= 0, so make it a size_t. 2012-12-26 Akim Demaille tables: style changes * src/tables.c: Prefer < to >. Fix/complete some comments. Remove useless parens. 2012-12-26 Akim Demaille skeletons: no longer call yylex via a CPP macro The YYLEX existed only to support YYLEX_PARAM, which is now removed. This macro was a nuisance, since incorrect yylex calls where pointed the macro _use_, instead of its definition. * data/c.m4 (b4_lex_formals, b4_lex): New. * data/glr.c, data/yacc.c: Use it. * data/lalr1.cc (b4_lex): New. Use it. squash! skeletons: no longer call yylex via a CPP macro 2012-12-26 Akim Demaille YYLEX_PARAM: drop support * data/yacc.c, doc/bison.texi: Remove YYLEX_PARAM support. * NEWS: Document it. 2012-12-26 Akim Demaille examples: minor improvements * examples/variant.yy: Don't use debug_stream(), obsoleted. Use <*>. 2012-12-26 Akim Demaille skeletons: factor comments about symbols * data/variant.hh (b4_char_sizeof_): Rename as... * data/bison.m4 (b4_symbol_tag_comment): this. Provide more documentation about b4_symbol_*. 2012-12-26 Akim Demaille c: improve the definition of public types * data/c.m4 (b4_token_enum): Improve comments. (b4_value_type_define, b4_location_type_define): New, extracted from... (b4_declare_yylstype): here. Separate the typedefs from the union/struct definitions. 2012-12-26 Akim Demaille doc: update variant usage * doc/bison.texi, examples/variant.yy: Use "%define api.value.type variant", instead of "%define variant". 2012-12-26 Akim Demaille tests: check the "%define variant" is deprecated. * tests/input.at: Rename some AT_SETUP to avoid that AT_SETUP_STRIP thinks they contain %define directives. ("%define" backward compatibility): Merge tests together to speed up the test suite, and to make maintenance easier (multiple AT_CHECK means multiple runs of the test suite to be sure to have updated all the error messages). Check the "%define variant" is properly obsoleted. 2012-12-23 Akim Demaille %define variables: support value changes in deprecation * src/muscle-tab.c (define_directive): Be robust to "assignment" containing '='. (muscle_percent_variable_update): Upgrade "variant" to "api.value.type". Support such upgrade patterns. Adjust callers. * data/bison.m4: Use api.value.type for variants. * tests/c++.at: Adjust tests. 2012-12-23 Akim Demaille diagnostics: treat obsolete %define variable names as obsolete directives Instead of warning: deprecated %define variable name: 'namespace', use 'api.namespace' [-Wdeprecated] display (in -fno-caret mode): warning: deprecated directive: '%define namespace foo', use '%define api.namespace foo' [-Wdeprecated] and (in -fcaret mode): warning: deprecated directive, use '%define api.namespace toto' [-Wdeprecated] %define namespace toto ^^^^^^^^^ This is in preparation of cases where not only the variable is renamed, but the values are too: warning: deprecated directive: '%define variant', use '%define api.value.type variant' [-Wdeprecated] * src/muscle-tab.c (define_directive): New. (muscle_percent_variable_update): Take the value as argument, and use it in the diagnostics. Loop with a pointer instead of an index. * tests/input.at (%define backward compatibility): Adjust. 2012-12-23 Akim Demaille diagnostics: factor the deprecated directive message * src/complain.h, src/complain.c (deprecated_directive): New. * src/muscle-tab.c: Use it. 2012-12-23 Akim Demaille variant: produce stable results Improve the output by ensuring a well defined order for type switches. * src/uniqstr.h: Style changes for macro arguments. (UNIQSTR_CMP): Replace by... (uniqstr_cmp): this. * src/uniqstr.c (uniqstr_cmp): New. Produce well defined results. * src/output.c: Use it. 2012-12-23 Akim Demaille uniqstr: formatting changes * src/uniqstr.h: Sort functions by object type. 2012-12-23 Akim Demaille skeletons: fix an error message * data/bison.m4 (b4_flag_if): Display the invalid value. 2012-12-23 Akim Demaille tests: improve titles * tests/local.at (AT_SETUP_STRIP): New. (AT_SETUP): Use it to shorten the test titles: remove %defines, %language and %skeleton whose arguments suffice. * tests/synclines.at: Use more precise AT_SETUP. 2012-12-23 Akim Demaille c++: comment changes * data/c++.m4, data/glr.cc, data/lalr1.cc: Convert some /* ... */ comments to //. 2012-12-23 Akim Demaille c++: use // comments in the output This is mostly used for the license header, the synclines, and the generated tables: - /* STOS_[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + // STOS_[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. static const unsigned char yystos_[]; * data/c.m4: Comment changes. (b4_comment_): Expand the text argument. Before this change, we were actually formatting M4 code as a C comment, and then expand it. (b4_comment): Fix the closing of comments: there is no reason to add the (line) prefix before the closing "*/". * data/c++.m4 (b4_comment): New. 2012-12-21 Akim Demaille maint: disable sc_prohibit_test_backticks * cfg.mk: here. And fix typos. Reported by Stefano Lattarini. 2012-12-21 Akim Demaille maint: more syntax-checks * cfg.mk (sc_prohibit_tab_based_indentation, sc_prohibit_test_backticks) (sc_preprocessor_indentation, sc_space_before_open_paren): New, stolen from Coreutils (2e9f5ca4ebbbdb6a9fa2dd3d5add3f7720a172d7). 2012-12-21 Akim Demaille debug: no longer generate tabs * src/closure.c, src/derives.c, src/nullable.c, tests/sets.at: Use spaces. 2012-12-21 Akim Demaille style changes: run cppi Run it in src/ for a start. * src/AnnotationList.h, src/InadequacyList.h, src/Sbitset.h, * src/closure.c, src/complain.h, src/flex-scanner.h, src/getargs.h, * src/gram.h, src/graphviz.h, src/ielr.h, src/location.h, * src/muscle-tab.h, src/named-ref.h, src/relation.h, src/scan-code.h, * src/state.h, src/symtab.h, src/system.h, src/uniqstr.h: Reindent preprocessor directives. 2012-12-21 Akim Demaille style changes: untabify * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl, m4/flex.m4, * tests/glr-regression.at, tests/torture.at: here. 2012-12-21 Akim Demaille tests: be robust to set -e. * examples/test (run): here. 2012-12-19 Akim Demaille variants: prohibit simple copies The "variant" structure provides a means to store, in a typeless way, C++ objects. Manipulating it without provide the type of the stored content is doomed to failure. So provide a means to copy in a type safe way, and prohibit typeless assignments. * data/c++.m4 (symbol_type::move): New. * data/lalr1.cc: Use it. * data/variant.hh (b4_variant_define): Provide variant::copy. Let variant::operator= abort. We cannot undefine it, yet, as it is still uses by the implicit assigment in symbols, which must also be disabled. 2012-12-19 Akim Demaille variant: more assertions Equip variants with more checking code. Provide a means to request includes. * data/variant.hh (b4_variant_includes): New. * data/lalr1.cc: Use it. * data/variant.hh (variant::built): Define at the end, as a private member. (variant::tname): New. Somewhat makes "built" useless, but let's keep both for a start, in case using "typeinfo" is considered unacceptable in some environments. Fix some formatting issues. 2012-12-19 Akim Demaille gnulib: update 2012-12-19 Akim Demaille skeletons: fix output directives * data/lalr1.cc, data/location.cc, data/glr.cc: Use b4_output_begin. Broken during a merge. 2012-12-19 Akim Demaille yacc.c: style changes * data/yacc.c (b4_lex_param): Provide arguments with a name. 2012-12-19 Akim Demaille glr.cc: simplifying the handling of parse/lex params The fact that glr.cc uses glr.c makes the handling of parse params more complex, as the parser object of glr.cc must be passed to the parse function of glr.c. Yet not all the functions need access to the parser object. * data/glr.cc (b4_parse_param_wrap): New. Use them. 2012-12-19 Akim Demaille glr: rename lex params * data/glr.c (b4_lex_param): Rename as... (b4_lex_formals): this, for consistency. Provide arguments a name. (LEX): Adjust. 2012-12-19 Akim Demaille glr.c: move function declaration earlier * data/glr.c (yypstack, yypdumpstack): Declare earlier, to make it easier to call them from other functions. 2012-12-19 Akim Demaille %define variables: backward compatibility * src/muscle-tab.c (muscle_percent_variable_update): Accept lex_symbol. Reported by Roland Levillain. 2012-12-16 Akim Demaille diagnostics: improve -fcaret for list of accepted values Instead of input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither' %define api.push_pull "neither" ^^^^^^^^^^^^^ input.y:1.9-21: accepted value: 'pull' %define api.push_pull "neither" ^^^^^^^^^^^^^ input.y:1.9-21: accepted value: 'push' %define api.push_pull "neither" ^^^^^^^^^^^^^ input.y:1.9-21: accepted value: 'both' %define api.push_pull "neither" ^^^^^^^^^^^^^ report input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither' %define api.push_pull "neither" ^^^^^^^^^^^^^ input.y:1.9-21: accepted value: 'pull' input.y:1.9-21: accepted value: 'push' input.y:1.9-21: accepted value: 'both' * src/complain.h (no_caret): New. * src/complain.c (error_message): Use it. * src/muscle-tab.c (muscle_percent_define_check_values): Use it. * src/scan-skel.l (flag): Ditto. * tests/input.at: Adjust and check. 2012-12-16 Akim Demaille skeletons: simplify the handling of default api.location.type * data/bison.m4 (b4_bison_locations_if): New. * data/glr.cc, data/lalr1.cc: Use it. 2012-12-16 Akim Demaille tests: address syntax-check failures * cfg.mk: Ignore failures in timevar (uses GCC style configuration, not gnulib's). * doc/local.mk: Space changes. * lib/main.c, tests/calc.at: Remove useless HAVE_ tests. 2012-12-15 Akim Demaille remove duplicate definitions * src/system.h: here, inherited from a merge. 2012-12-15 Akim Demaille tests: style changes * tests/glr-regression.at: Issue yyerror before yylex. 2012-12-15 Akim Demaille doc: fix dependencies * doc/local.mk: here. 2012-12-14 Akim Demaille doc: style fixes * doc/bison.texi: Add a couple of missing @var and @code. 2012-12-14 Theophile Ranquet doc: fix build dependencies Suggested by Nick Bowler * doc/local.mk: Avoid overwriting Automake's rules. 2012-12-14 Akim Demaille Merge branch 'origin/maint' * origin/maint: maint: credit Wojciech Polak maint: post-release administrivia version 2.7 yacc.c: scope reduction tests: C90 compliance fix C90 compliance glr.c: scope reduction gnulib: update 2012-12-14 Theophile Ranquet symtab: add missing initializations * src/symtab.c (semantic_type_new): Here. 2012-12-14 Theophile Ranquet symtab: fix some leaks * src/symlist.c (symbol_list_free): Deep free it. * src/symtab.c (symbols_free, semantic_types_sorted): Free it too. (symbols_do, sorted): Call by address. 2012-12-14 Theophile Ranquet tests: remove use of PARSE_PARAM * tests/header.at: Here. 2012-12-13 Akim Demaille maint: credit Wojciech Polak * NEWS, THANKS: He is the author of XML support (including XSLTs). 2012-12-12 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-12-12 Akim Demaille version 2.7 * NEWS: Record release date. 2012-12-12 Akim Demaille yacc.c: scope reduction * data/yacc.c (yysyntax_error): here. 2012-12-12 Akim Demaille tests: C90 compliance * tests/synclines.at: here. 2012-12-12 Akim Demaille fix C90 compliance * data/glr.c, src/graphviz.h, src/ielr.c, src/scan-gram.l, * src/system.h, tests/actions.at, tests/glr-regression.at: Do not use // comments. Do not introduce variables after statements. Provide "main" with a return value. 2012-12-12 Akim Demaille glr.c: scope reduction * data/glr.c (yyreportSyntaxError): Reduce the scope of yysize1 (now yysz). 2012-12-12 Akim Demaille gnulib: update 2012-12-10 Theophile Ranquet Merge remote-tracking branch 'origin/maint' * origin/maint: news: prepare for forthcoming release doc: explain how mid-rule actions are translated error: use better locations for unused midrule values doc: various minor improvements and fixes tests: ignore more useless compiler warnings tests: be robust to C being compiled with a C++11 compiler build: beware of Clang++ not supporting POSIXLY_CORRECT maint: post-release administrivia version 2.6.90 build: fix syntax-check error. cpp: simplify the Flex version checking macro news: improve the carets example and fix a typo cpp: improve the Flex version checking macro carets: improve the code maint: update news build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs build: drop -Wcast-qual gnulib: update 2012-12-09 Akim Demaille news: prepare for forthcoming release * NEWS: Fill paragraph. Reorder. Update examples. Remove line for 2.6.90. 2012-12-09 Akim Demaille doc: explain how mid-rule actions are translated * doc/bison.texi (Actions in Mid-Rule): Mention and use named references. Split into three subsections, among which... (Mid-Rule Action Translation): this new section. 2012-12-09 Akim Demaille error: use better locations for unused midrule values On %% exp: {;} {$$;} { $$ = $1; } instead of reporting (with -fcaret -Wmidrule-value) midrule.y:2.6-8: warning: unset value: $$ [-Wmidrule-values] exp: {;} {$$;} { $$ = $1; } ^^^ midrule.y:2.6-27: warning: unused value: $2 [-Wmidrule-values] exp: {;} {$$;} { $$ = $1; } ^^^^^^^^^^^^^^^^^^^^^^ report midrule.y:2.6-8: warning: unset value: $$ exp: {;} {$$;} { $$ = $1; } ^^^ midrule.y:2.10-14: warning: unused value: $2 exp: {;} {$$;} { $$ = $1; } ^^^^^ * src/reader.c (grammar_rule_check): When warning about the value of a midrule action, use the location of the midrule action instead of the location of the rule. the location of the part of the rule. * tests/actions.at (Default %printer and %destructor for mid-rule values): Adjust expectations * tests/input.at (Unused values with default %destructor): Ditto. (AT_CHECK_UNUSED_VALUES): Ditto. And use -fcaret. 2012-12-09 Akim Demaille doc: various minor improvements and fixes * doc/figs/example.dot, doc/figs/example.y: New. * doc/bison.texi: Prefer "token" to TOKEN. Use @group where appropriate. Adjust with style changes in the output (State 0, not state 0). Fix some @ref that were missing the third argument. Fix some incorrect line numbers. Use "nonterminal", not "non-terminal". Fix overfull and underfull TeX hboxes. Put the comments in the index. Remove duplicate index entries. Fuse glossary entries where appropriate. (Understanding): Improve the continuity between sections. Use example.dot to show the whole graph. * doc/Makefile.am: Adjust. 2012-12-09 Akim Demaille tests: ignore more useless compiler warnings * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore complains about using c++ to compile C. 2012-12-09 Akim Demaille tests: be robust to C being compiled with a C++11 compiler * tests/glr-regression.at: Use YY_NULL instead of NULL. Comment changes. 2012-12-09 Akim Demaille build: beware of Clang++ not supporting POSIXLY_CORRECT * m4/c-working.m4 (BISON_LANG_COMPILER_POSIXLY_CORRECT): New. (BISON_C_COMPILER_POSIXLY_CORRECT): Use it. For consistency with C++, also define BISON_C_WORKS. * m4/cxx.m4 (BISON_CXX_COMPILER_POSIXLY_CORRECT): New. * configure.ac: Use it. * tests/atlocal.in: Get its result. Propagate properly CXX values when used to compile C. When POSIXLY_CORRECT, adjust BISON_C_WORKS and BISON_CXX_WORKS. * tests/local.at (AT_COMPILE): Use BISON_C_WORKS. 2012-12-07 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-12-07 Akim Demaille version 2.6.90 * NEWS: Record release date. 2012-12-07 Akim Demaille build: fix syntax-check error. * cfg.mk: Exclude names-refs, it includes a "double" if (end of first line, first of second line below). test.y:43.12-44.59: symbol not found in production: if if-stmt-a: IF expr[cond] THEN stmt.list[then] ELSE stmt.list[else] FI ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2012-12-07 Theophile Ranquet cpp: simplify the Flex version checking macro * src/flex-scanner,h (FLEX_VERSION): Consider YY_FLEX_SUBMINOR_VERSION defined. 2012-12-07 Theophile Ranquet news: improve the carets example and fix a typo * NEWS: Here. 2012-12-07 Theophile Ranquet cpp: improve the Flex version checking macro * src/flex-scanner.h (FLEX_VERSION): Here. 2012-12-07 Theophile Ranquet carets: improve the code * src/location.c: Remove duplicate documentations. (caret_info): Stylistic change. (location_caret): Many reworks. 2012-12-07 Akim Demaille maint: update news * NEWS: There is no 2.6.6, remove its stub. 2012-12-07 Akim Demaille build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs Fixes a -Werror failure of xalloc.h used in src. From Eric Blake. http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00006.html * configure.ac: Check whether GCC pragma diagnostic push/pop works. Enable these warnings for bison if it does. Enable these warnings for the test suite anyway. 2012-12-07 Akim Demaille build: drop -Wcast-qual Suggested by Jim Meyering. http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00017.html * configure.ac (warn_common): Remove -Wcast-qual. 2012-12-07 Akim Demaille gnulib: update 2012-12-06 Theophile Ranquet Merge remote-tracking branch 'origin/maint' * origin/maint: misc: pacify the Tiny C Compiler cpp: make the check of Flex version portable misc: require getline c++: support wide strings for file names doc: document carets tests: enhance existing tests with carets errors: show carets getargs: add support for --flags/-f 2012-12-06 Theophile Ranquet misc: pacify the Tiny C Compiler * src/graphviz.c (conclude_red): Remove a useless return. 2012-12-05 Theophile Ranquet cpp: make the check of Flex version portable This was problematic with tcc 0.9.25 * src/flex-scanner.h (FLEX_VERSION_GT): Rewrite and rename as... (FLEX_VERSION): This. 2012-12-05 Theophile Ranquet misc: require getline * bootstrap.conf: Here, used by src/location.c. * src/getargs.c (long_options): Rename --flags to --feature. 2012-12-05 Akim Demaille c++: support wide strings for file names Reported by Mark Boyall. http://lists.gnu.org/archive/html/help-bison/2011-08/msg00002.html * data/location.cc (operator<<): Be templated on the type of output stream. * tests/headers.at (Several parsers): Adjust. 2012-12-05 Theophile Ranquet doc: document carets * NEWS: Announce it. * doc/bison.texi (Bison Options): Here. 2012-12-05 Theophile Ranquet tests: enhance existing tests with carets * tests/actions.at: Unset value. * tests/conflicts.at: Rule useless due to conflicts. * tests/input.at: Missing terminator, unexpected end of file, command line redefinition of variable. * tests/named-refs.at: Many errors. * tests/reduce.at: Useless nonterminals and rules. * tests/regression.at: Large token. 2012-12-05 Theophile Ranquet errors: show carets * src/locations.c (caret_info): New, persistant information useful for... (location_caret): New, print a caret. (cleanup_caret): Release caret_info cleanly, call it... * src/main.c (main): Here. * src/complain.c (error_message): Call location_caret here. 2012-12-05 Theophile Ranquet getargs: add support for --feature/-f Introduce -fdiagnostics-show-caret * src/getargs.c (feature_flag): New global. * src/getargs.h (feature): New enum. 2012-12-05 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: getargs: don't label --language/-l as experimental getargs: fix the locations of command-line input errors: indent missing action code semicolon warning 2012-12-04 Theophile Ranquet getargs: don't label --language/-l as experimental * NEWS: Announce it. * doc/bison.texi, src/getargs.c (usage): Here. 2012-12-03 Akim Demaille tests: minor improvements * tests/calc.at (AT_CHECK_SPACES): To speed up, accept several files at once, and factor some calls. 2012-12-03 Theophile Ranquet getargs: fix the locations of command-line input * src/getargs.c (command_line_location): Here. * tests/input.at: Adjust. 2012-12-03 Theophile Ranquet errors: indent missing action code semicolon warning Also, remove a duplicate #define. * src/scan-code.l (SC_RULE_ACTION): Here. * tests/actions.at: Adjust. 2012-12-03 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: parser: accept #line NUM m4: use a safer pattern to enable/disable output tests: beware of gnulib's need for config.h gnulib: update yacc.c, glr.c: check and fix the display of locations formatting changes glr.c: remove stray macro 2012-12-03 Akim Demaille parser: accept #line NUM * src/scan-gram.l (scanner): Accept '#line NUM'. (handle_syncline): Adjust to the possible missing file name. 2012-12-03 Akim Demaille m4: use a safer pattern to enable/disable output Work on some other areas of Bison revealed that some macros expanded to be expanded only once were actually expanded several times. This was due to the fact that changecom was not properly restored each time, and macro names appearing in comments were then expanded. Introduce begin/end macros which are easier to match that changecom()/changecom(#). * data/bison.m4 (b4_output_begin, b4_output_end): New. * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, * data/location.cc, data/stack.hh, data/yacc.c: Use them. 2012-12-03 Akim Demaille tests: beware of gnulib's need for config.h * tests/skeletons.at, tests/torture.at: Be sure to include config.h where appropriate. 2012-11-30 Akim Demaille gnulib: update * lib/yyerror.c: Include config.h since the following stdio.h might be from gnulib. 2012-11-30 Akim Demaille yacc.c, glr.c: check and fix the display of locations In some case, negative column number could be displayed. Make YY_LOCATION_PRINT similar to bison's own implementation of locations. Since the macro is getting fat, make it a static function. Reported by Jonathan Fabrizio. * data/c.m4 (yy_location_print_define): Improve the implementation, and generate the yy_location_print_ function. Adjust YY_LOCATION_PRINT. * tests/actions.at (Location Print): New tests. 2012-11-30 Akim Demaille formatting changes * data/c.m4: Fix comments, put macros in a more natural order. Space changes (from M-x whitespace-cleanup). * src/location.c: Fix spaces. * tests/actions.at: Space changes. 2012-11-30 Akim Demaille glr.c: remove stray macro * data/glr.c (YYOPTIONAL_LOC): Remove, unused since commit 769a8ef9bcb5e14d0be9d0869f5dca20ab093930. 2012-11-29 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: doc: minor fixes doc: improve the index doc: introduce api.pure full, rearrange some examples yacc.c: support "%define api.pure full" local.at: improvements 2012-11-29 Akim Demaille doc: minor fixes * doc/bison.texi: Use stderr for error messages. Meta-variables are usually spelled in lower case. Use @code for function names. 2012-11-29 Akim Demaille doc: improve the index * doc/bison.texi: Fix uses of "deffn" so that the arguments of the directives do not show in the index. Remove a duplicate entry for api.pure. 2012-11-29 Theophile Ranquet doc: introduce api.pure full, rearrange some examples * NEWS: Add entry. * doc/bison.texi (%define Summary): Show the old Yacc behaviour. (Parser Function): Move parse-param examples here. (Pure Calling): Remove parse-param examples. (Error Reporting): Don't show the old behavior, stick to 'full'. 2012-11-29 Theophile Ranquet yacc.c: support "%define api.pure full" This makes the interface for yyerror() pure without the need for a spurious parse_param. * data/yacc.c (b4_pure_if, b4_pure_flag): New definition, accept three states. (b4_yacc_pure_if): Rename as... (b4_yyerror_arg_loc_if): This, and use b4_pure_flag. * tests/actions.at (%define api.pure): Modernize. * test/calc.at (Simple LALR Calculator): Modernize. * tests/local.at (AT_YYERROR_ARG_LOC_IF): Adjust. 2012-11-28 Akim Demaille tests: check variants without locations * tests/c++.at (Variants): Support non-use of locations, and check its support. 2012-11-26 Theophile Ranquet local.at: improvements * tests/local.at (AT_YYERROR_FORMALS): Make llocp const. (AT_PURE_AND_LOC_IF, AT_GLR_OR_PARAM_IF): Remove, expand... (AT_YYERROR_ARG_LOC_IF): Here, and use m4_join for readability. 2012-11-26 Akim Demaille tests: use -fno-strict-aliasing with variants Reported by Théophile Ranquet. * configure.ac (NO_STRICT_ALIAS_CXXFLAGS): New. * tests/c++.at, tests/atlocal.in, examples/local.mk: Use it. 2012-11-26 Akim Demaille tests: remove leftover * tests/atlocal.in: Remove duplicate handling of --compile-c-with-cxx. 2012-11-26 Akim Demaille doc: use %precedence instead of nonassoc when associativity is not wanted * doc/bison.texi: here. Formatting changes in some grammars. Fix a %prec into %precedence. 2012-11-26 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: yacc.c: always initialize yylloc scanner: issue a single error for groups of invalid characters tests: formatting changes doc: one of the fixes for an ambiguous grammar was ambiguous too doc: fix the dangling else with precedence directives doc: prefer "token" to TOKEN doc: formatting changes scanner: use explicit "ignore" statements 2012-11-26 Akim Demaille Merge remote-tracking branch 'origin/branch-2.6' into maint * origin/branch-2.6: yacc.c: always initialize yylloc doc: one of the fixes for an ambiguous grammar was ambiguous too doc: fix the dangling else with precedence directives doc: prefer "token" to TOKEN doc: formatting changes 2012-11-23 Theophile Ranquet yacc.c: always initialize yylloc The initial location might be used if the parser starts by an empty reduction, so really ensure proper initialization of the initial location. The previous approach fails for PostgreSQL, which uses Reported by Peter Eisentraut. http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00023.html With help from Théophile Ranquet. * data/yacc.c (b4_declare_scanner_communication_variables): Be sure to initialize yylloc, even when its structure is unknown. (yyparse): Simplify the call to b4_dollar_pushdef. * tests/actions.at (Initial location): Check of similar pattern as in the case of PostgreSQL. 2012-11-23 Akim Demaille scanner: issue a single error for groups of invalid characters * src/scan-gram.l: Scan groups of invalid characters together. * tests/input.at, tests/named-refs.at: Adjust. 2012-11-23 Akim Demaille tests: formatting changes * tests/named-refs.at: Here. 2012-11-23 Akim Demaille doc: one of the fixes for an ambiguous grammar was ambiguous too Reported by Аскар Сафин. http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00024.html * doc/bison.texi (Reduce/Reduce): Fix the resulting ambiguity using precedence/associativity directives. 2012-11-22 Akim Demaille doc: fix the dangling else with precedence directives * doc/bison.texi (Non Operators): New node. (Shift/Reduce): Point to it. Don't promote "%expect n" too much. 2012-11-22 Akim Demaille doc: prefer "token" to TOKEN This is more readable in short examples. * doc/bison.texi (Shift/Reduce): here. Make "win" and "lose" action more alike. 2012-11-22 Akim Demaille doc: formatting changes * doc/bison.texi: Use @group. 2012-11-14 Akim Demaille scanner: use explicit "ignore" statements * src/scan-gram.l: here. 2012-11-13 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: tests: close files in glr-regression xml: match DOT output and xml2dot.xsl processing xml: factor xslt space template graph: fix a memory leak xml: documentation output: capitalize State 2012-11-12 Theophile Ranquet tests: close files in glr-regression * tests/glr-regression.at: Here. 2012-11-12 Theophile Ranquet xml: match DOT output and xml2dot.xsl processing Make the DOT produced by XSLT processing equivalent to the one made with the --graph option. * data/xslt/xml2dot.xsl: Stylistic changes, and add support for reductions. * doc/bison.texi (Xml): Update. * src/graphviz.c (conclude_red): Minor stylistic changes to DOT internals. (output_red): Swap enabled and disabled reductions output, for coherence with XSLT output. * src/print_graph.c (print_core): Minor stylistic change to States' output. (print_actions): Swap order of output for reductions and transitions. * tests/local.at (AT_BISON_CHECK_XML): Ignore differences in order. * tests/output.at: Adjust to changes in DOT internals. 2012-11-12 Theophile Ranquet xml: factor xslt space template * data/xslt/bison.xsl (space): New, import from... * data/xslt/xml2text.xsl: Here. 2012-11-12 Theophile Ranquet graph: fix a memory leak * src/graphviz.c (output_red): Here. 2012-11-12 Theophile Ranquet xml: documentation The XML output combined with the XSL Transformations provided in data/ are incredibly useful, they should be documented. * doc/bison.texi (Xml): New node. 2012-11-12 Theophile Ranquet output: capitalize State * src/print.c (print_state): Here. * tests/conflicts.at, tests/existing.at, tests/local.at, tests/reduce.at, tests/regression.at, tests/sets.at: Adjust. 2012-11-12 Akim Demaille tests: fix syntax-check errors Reported by Théophile Ranquet. * tests/c++.at: Use AT_PARSER_CHECK. Avoid using "strcmp", which triggers an error from syntax-check. 2012-11-12 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: address syntax-check errors. tests: use valgrind where appropriate tests: use valgrind where appropriate tests: don't expect $EGREP to support -w tests: more possible error compiler messages for "#error" 2012-11-12 Akim Demaille maint: address syntax-check errors. * cfg.mk: Ignore the "error" call in tests/c++.at, it is not to be translated. * doc/bison.texi: Fix incorrect @pxref use. * po/POTFILES.in: Add missing file. * src/print_graph.c: Remove useless include. 2012-11-12 Akim Demaille tests: use valgrind where appropriate Reported by Théophile Ranquet. * cfg.mk (sc_at_parser_check): New. * tests/c++.at: Fix use of AT_CHECK vs. AT_PARSER_CHECK. 2012-11-12 Akim Demaille Merge remote-tracking branch 'origin/branch-2.6' into maint * origin/branch-2.6: tests: use valgrind where appropriate tests: don't expect $EGREP to support -w 2012-11-10 Akim Demaille tests: use valgrind where appropriate Reported by Théophile Ranquet. * tests/glr-regression.at: Rewrite some test cases so that AT_PARSER_CHECK, which runs valgrind, is exposed with the parser, not with "echo". * tests/local.at, tests/regression.at, tests/headers.at: Use AT_PARSER_CHECK for generated parsers. 2012-11-08 Akim Demaille tests: don't expect $EGREP to support -w Does not work on Solaris 10. Reported by Dennis Clarke. http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00009.html * tests/headers.at (Several parsers): Use Perl instead. While at it, run it only once, on all the generated headers. Adjust to YY_NULL be defined in position.hh. 2012-11-08 Akim Demaille tests: more possible error compiler messages for "#error" * tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust for Clang. Verified with GCC 4.0, 4.2 to 4.8, and Clang 2.9, 3.2: none skip. 2012-11-08 Akim Demaille regen 2012-11-08 Akim Demaille Merge branch 'maint' * origin/maint: regen maint: post-release administrivia version 2.6.5 regen tests: syntax-check tests: beware of compilers that do not support POSIXLY_CORRECT gnulib: update 2012-11-08 Akim Demaille regen 2012-11-08 Akim Demaille Merge branch 'branch-2.6' into maint * origin/branch-2.6: maint: post-release administrivia version 2.6.5 regen tests: syntax-check tests: beware of compilers that do not support POSIXLY_CORRECT gnulib: update 2012-11-07 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-11-07 Akim Demaille version 2.6.5 * NEWS: Record release date. 2012-11-07 Akim Demaille regen 2012-11-07 Akim Demaille tests: syntax-check * tests/actions.at: Fix typo. 2012-11-07 Akim Demaille tests: beware of compilers that do not support POSIXLY_CORRECT Running "maintainer-release-check" on OS X with Clang 2.9 fails, because "clang-mp-2.9 -o test -g test.c" launches "/usr/bin/dsymutil test -o test.dSYM" which fails with "error: unable to open executable '-o'". * m4/c-working.m4 (BISON_CHECK_WITH_POSIXLY_CORRECT) (BISON_C_COMPILER_POSIXLY_CORRECT): New. * configure.ac: Use the latter. * tests/atlocal.in (POSIXLY_CORRECT_IS_EXPORTED): New. * tests/local.at (AT_BISON_CHECK_WARNINGS_): Use it instead of computing its value each time. (AT_QUELL_VALGRIND): Skip tests that cannot work because of compilers that do not support POSIXLY_CORRECT. 2012-11-07 Akim Demaille gnulib: update 2012-11-06 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: (24 commits) tests: calc: modernize the use of locations tests: remove useless location initializations lalr1.cc: always initialize yylval. tests: check that C and C++ objects can be linked together. yacc.c: also disable -Wuninitialized. glr.cc, yacc.c: initialize yylloc properly yacc.c, glr.c: a better YY_LOCATION_PRINT yacc.c: simplify initialization doc: formatting changes c++: fix position operator signatures tests: remove useless location initialization. tests: fix locations in C tests: handle %parse-param in the generated yyerror tests: simplifications grammars: fix display of nul character in error message tests: sort tests: cosmetic changes comment changes autoconf: update gnulib: update ... 2012-11-06 Akim Demaille Merge branch 'branch-2.6' into maint * origin/branch-2.6: (24 commits) tests: calc: modernize the use of locations tests: remove useless location initializations lalr1.cc: always initialize yylval. tests: check that C and C++ objects can be linked together. yacc.c: also disable -Wuninitialized. glr.cc, yacc.c: initialize yylloc properly yacc.c, glr.c: a better YY_LOCATION_PRINT yacc.c: simplify initialization doc: formatting changes c++: fix position operator signatures tests: remove useless location initialization. tests: fix locations in C tests: handle %parse-param in the generated yyerror tests: simplifications grammars: fix display of nul character in error message tests: sort tests: cosmetic changes comment changes autoconf: update gnulib: update ... 2012-11-06 Akim Demaille tests: calc: modernize the use of locations * tests/calc.at: Don't initialize the location, let the parser do it. Use a $printer. Change some testing input to be easier to distinguish (instead of always "0 0" for instance). 2012-11-06 Akim Demaille tests: remove useless location initializations * tests/actions.at, tests/calc.at: here. 2012-11-06 Akim Demaille lalr1.cc: always initialize yylval. * data/lalr1.cc: here. 2012-11-06 Akim Demaille tests: check that C and C++ objects can be linked together. * tests/local.at (AT_SKIP_IF_CANNOT_LINK_C_AND_CXX): New. * tests/headers.at (Several parsers): Use it. 2012-11-06 Akim Demaille yacc.c: also disable -Wuninitialized. * data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN): For some versions of GCC, -Wmaybe-uninitialized alone does not suffice. 2012-11-06 Akim Demaille glr.cc, yacc.c: initialize yylloc properly There are several issues to address here. One is that yylloc should be initialized when possible. Another is that the push parser needs to update yypushed_loc when the user modified it. And if the parser starts by a reduction of an empty, it uses the first location on the stack, which, therefore, must also be initialized to this initial location. This is getting complex, especially since because initializing a global (impure interface) is different from initializing a local variable. To simplify, the local yylloc is not initialized during its definition. * data/c.m4 (b4_yyloc_default_define): Replace by... (b4_yyloc_default): this. Adjust dependencies. * data/glr.cc: Initialize yylloc. * data/yacc.c (b4_declare_scanner_communication_variables): Initialize yylloc during its definition. Don't define yyloc_default. (yypush_parse): The location formal is not const, as we might initialize it. (yyparse): Define yyloc_default. Use it before running the user initial action. Possibly update the first location on the stack, and the pushed location after the user initial action. * tests/actions.at (Initial locations): Check that the initial location is correct. 2012-11-06 Akim Demaille yacc.c, glr.c: a better YY_LOCATION_PRINT * data/c.m4 (b4_yy_location_print_define): New. Now issues "short" locations, e.g., "1.1" instead of "1.1-1.1". Was initially a function, but then we face "static but unused" warnings. Simpler as a macro. * tests/local.at, data/glr.c, data/yacc.c: Use it instead of duplicating. * tests/actions.at: Adjust expectations. 2012-11-06 Akim Demaille yacc.c: simplify initialization * data/yacc.c: Fuse the initializations of yyssp, yyss and the like. Remove an obsolete comment: we do initialize these initial stack members (in some cases). 2012-11-05 Akim Demaille doc: formatting changes * doc/bison.texi: In a pointer type. 2012-11-05 Akim Demaille c++: fix position operator signatures * data/location.cc (operator+=, operator-=): Remove const from return type. 2012-11-05 Akim Demaille tests: remove useless location initialization. * tests/glr-regression.at: here. glr.c does initialize yylloc. 2012-11-05 Akim Demaille tests: fix locations in C * tests/local.at (AT_YYERROR_DEFINE): Don't display the end of the location if it is not after its beginning. * tests/actions.at, tests/cxx-type.at: Adjust the expected output. 2012-11-05 Akim Demaille tests: handle %parse-param in the generated yyerror * tests/local.at (AT_PARSE_PARAMS): New. (AT_YYERROR_FORMALS, AT_YYERROR_DEFINE): Use it to add the parse-param to yyerror. * tests/calc.at, tests/regression.at: Use AT_YYERROR_DEFINE and AT_YYERROR_DECLARE, now that they handle properly the parse-params. Be sure to let AT_BISON_OPTION_PUSHDEFS now what parse-params are used. 2012-11-05 Akim Demaille tests: simplifications * tests/actions.at (Exotic Dollars): Formatting changes. Use AT_FULL_COMPILE. (AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove useless initialization of @$. 2012-11-01 Akim Demaille lalr1.cc: rename lex_symbol as api.token.constructor * data/bison.m4 (b4_lex_symbol_if): Rename as... (b4_token_ctor_if): this. Depend upon api.token.constructor. * data/c++.m4, data/lalr1.cc: Adjust. * doc/bison.texi: Fix all the occurrences of lex_symbol. * etc/bench.pl.in: Adjust. * examples/variant.yy: Likewise. * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Handle AT_TOKEN_CTOR_IF. * tests/c++.at: Adjust to using api.token.constructor and AT_TOKEN_CTOR_IF. Simplify the test of both build call styles. (AT_CHECK_VARIANTS): Rename as... (AT_TEST): this. And undef when done. 2012-11-01 Akim Demaille examples: simplify/improve * examples/variant.yy: Put yylex in yy::, and simplify accordingly. Minor formatting changes. 2012-11-01 Akim Demaille bison.m4: support b4_*_if macros whose name differ from their variable * data/bison.m4 (b4_percent_define_if_define_, b4_percent_define_if_define): Accept a second argument. 2012-11-01 Akim Demaille grammars: fix display of nul character in error message Reported by Marc Mendiola. http://lists.gnu.org/archive/html/help-bison/2012-10/msg00017.html * gnulib: Update to get quote_mem. * src/scan-gram.l: Use it. * tests/input.at (Invalid inputs): Additional checks. * tests/named-refs.at: Likewise. 2012-11-01 Akim Demaille tests: sort * tests/regression.at (Invalid inputs, Invalid inputs with {}): Move to... * tests/input.at: here, for consistency. 2012-11-01 Akim Demaille tests: cosmetic changes * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): Improve the displayed title. 2012-11-01 Akim Demaille comment changes * data/lalr1.cc: here. 2012-11-01 Akim Demaille autoconf: update There are comment changes only in the files we use. 2012-11-01 Akim Demaille gnulib: update 2012-10-28 Akim Demaille regen 2012-10-28 Akim Demaille yacc.c: initialize yylval and yylloc. When generating a pure push parser, the initialization of yylval and yylloc may not be visible to the compiler. With warnings enabled, GCC 4.3.6, 4.4.7, 4.5.4, and 4.6.3 report uninitialized uses of yylval/yylloc. Using local pragmas to disable these warnings is not supported before 4.6, and 4.6 does not support it properly. So initialize yylval and yylloc at their definition. Reported by Peter Simons. See http://lists.gnu.org/archive/html/bison-patches/2012-10/msg00133.html * data/c.m4 (b4_yyloc_default_define): New. * data/yacc.c: Use it when locations are requested. (YYLVAL_INITIALIZE): Replace by... (YY_INITIAL_VALUE): this. (yyparse): Initialize yylloc and yylval. Therefore, remove the initialization of yylloc's field. * data/glr.c: Likewise. 2012-10-26 Theophile Ranquet graphs: fix spacing refactoring * src/print_graph.c (print_lhs, print_core): Here. 2012-10-26 Theophile Ranquet tests: make deprecation tests more specific * tests/input.at (Deprecated directives): Here, don't generate unrelated errors or warnings. 2012-10-26 Theophile Ranquet tests: fix AT_BISON_CHECK_WARNINGS_ stderr rewriting * tests/input.at (Deprecated directives): Avoid spurious error. * tests/locat.at (AT_BISON_CHECK_WARNINGS): Adjust for recent changes. 2012-10-26 Theophile Ranquet scan-skel.l: consider m4 notes as related to "complaint" errors * src/scan-skel.l (flag): Here. 2012-10-26 Theophile Ranquet warnings: distinguish context information based on warning type * src/scan-code.l (show_sub_message, show_sub_messages): Take a new warnings argument. 2012-10-26 Theophile Ranquet warnings: fix early exit of warnings treated as errors Treating warnings as errors caused Bison to exit earlier than needed, making it hide warnings that would have been printed had -Werror not been set. Also, fix a bug that caused some context information of errors to not be shown. * src/complain.c (complaint_issued): Rename as... (complaint_status): This, and change its type from boolean to * src/complain.h (err_status): This, new enumeration. * src/main.c (main): Adjust (only finish early if an actual complaint was risen, not a mere warning treated an error). * src/reader.c: Adjust. 2012-10-26 Theophile Ranquet tests: reindent for legibility * tests/local.at (AT_BISON_CHECK_WARNINGS_): Here. 2012-10-26 Akim Demaille build: fix Texinfo compilation * doc/local.mk: fix dependencies. 2012-10-26 Akim Demaille regen 2012-10-26 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: (46 commits) doc: minor style change maint: use gendocs's new -I option regen yacc.c: do not define location support when not using locations maint: be compilable with GCC 4.0 tests: address a warning from GCC 4.4 tests: don't use options that Clang does not support tests: restore the tests on -Werror regen parse-gram: update the Bison interface fix comment maint: post-release administrivia version 2.6.4 regen 2.6.4: botched 2.6.3 maint: post-release administrivia version 2.6.3 gnulib: update tests: check %no-lines NEWS: warnings with clang ... 2012-10-26 Akim Demaille Merge branch 'branch-2.6' into maint * origin/branch-2.6: regen yacc.c: do not define location support when not using locations maint: be compilable with GCC 4.0 tests: address a warning from GCC 4.4 tests: don't use options that Clang does not support tests: restore the tests on -Werror regen parse-gram: update the Bison interface fix comment 2012-10-26 Akim Demaille doc: minor style change * doc/figs/example-reduce.txt: here. 2012-10-26 Akim Demaille maint: use gendocs's new -I option * gnulib: Update gendocs. * cfg.mk (gendocs_options_): New. 2012-10-26 Akim Demaille regen 2012-10-26 Akim Demaille yacc.c: don't use _Pragma GCC diagnostic with 4.6 Reported by Peter Simons. http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00033.html * data/yacc.c (b4_declare_scanner_communication_variables): 4.7 seems fine though. 2012-10-26 Akim Demaille regen 2012-10-26 Akim Demaille yacc.c: do not define location support when not using locations * data/yacc.c (YYLLOC_DEFAULT, YYRHSLOC): Don't define when not using locations. 2012-10-26 Akim Demaille maint: be compilable with GCC 4.0 The "shadows a global declaration" warning in GCC 4.0 was a bit annoying. It does not like that a type name be used in a prototype of a function (not the implementation, just the declaration): In file included from src/LR0.c:38: src/reader.h:56: warning: declaration of 'named_ref' shadows a global declaration src/named-ref.h:35: warning: shadowed declaration is here It does not like either when a global variable name is used in a prototype. Flex 2.5.37 generates this prototype: void gram_set_debug (int debug_flag ); * src/getargs.h, src/getargs.c (debug_flag): Rename as... (debug): this. Adjust dependencies. * src/reader.h: Don't use "named_ref" as a formal argument name. 2012-10-26 Theophile Ranquet misc: document TESTSUITEFLAGS in README-hacking * README-hacking: Document -j and -k flags. 2012-10-26 Theophile Ranquet deprecation: add tests * tests/input.at (Deprecated directives warn, Non-deprecated directives don't, Unput doesn't mess up locations): New tests. 2012-10-25 Akim Demaille tests: address a warning from GCC 4.4 236. torture.at:465: testing Exploding the Stack Size with Alloca ... ../../../tests/torture.at:474: bison -o input.c input.y ../../../tests/torture.at:474: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o input input.c $LIBS stderr: cc1: warnings being treated as errors input.y: In function 'main': input.y:60: error: 'status' may be used uninitialized in this function * tests/torture.at (AT_DATA_STACK_TORTURE): Initial status to avoid the previous error. 2012-10-25 Akim Demaille tests: don't use options that Clang does not support * configure.ac (WARN_CFLAGS, WARN_CXXFLAGS): Do not include options that Clang does not support. 2012-10-25 Akim Demaille tests: restore the tests on -Werror When run as /bin/sh, Bash sets the shell variable POSIXLY_CORRECT to y. The test suite checks for the envvar POSIXLY_CORRECT to turn of some tests not supported in POSIX mode. Restore these tests. Reported by the Hydra build farm, from Rob Vermaas. * tests/local.at (AT_BISON_CHECK_WARNINGS_): Check the envvar POSIXLY_CORRECT, not the shell variable. 2012-10-25 Akim Demaille regen 2012-10-25 Akim Demaille parse-gram: update the Bison interface * src/parse-gram.y (%pure-parser, %name-prefix): Replace with... (%define api.pure, %define api.prefix) * src/location.h, src/scan-gram.h: Adjust to api.prefix. 2012-10-25 Akim Demaille fix comment * data/c.m4 (b4_YYDEBUG_define): here. 2012-10-24 Theophile Ranquet regen 2012-10-24 Theophile Ranquet deprecation: issue warnings in scanner * src/parse-gram.y: Move the handling of (three) deprecated constructs ... * src/scan-gram.l: ...Here, and issue warnings. (DEPRECATED): New. 2012-10-23 Akim Demaille Merge branch 'branch-2.6' into maint * origin/branch-2.6: maint: post-release administrivia version 2.6.4 regen 2.6.4: botched 2.6.3 2012-10-23 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-10-23 Akim Demaille version 2.6.4 * NEWS: Record release date. 2012-10-22 Akim Demaille regen 2012-10-22 Akim Demaille 2.6.4: botched 2.6.3 * NEWS: here. 2012-10-22 Akim Demaille Merge branch '2.6.3' into maint * 2.6.3: (22 commits) maint: post-release administrivia version 2.6.3 gnulib: update tests: check %no-lines NEWS: warnings with clang warnings: avoid warnings from clang tests: no longer disable -O compiler options yacc.c: initialize yylval in pure-parser mode skeletons: style changes tests: minor improvements tests: use $PERL instead of perl build: look for Perl in configure. tests: fix sed portability issues tests: diff -u is not portable maint: word changes lalr1.cc: fix test suite portability maint: fix an erroneous include tests: check that headers are self contained doc: add missing documentation for --report headers: move CPP guards into YY_*_INCLUDED to avoid collisions ... 2012-10-22 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-10-22 Akim Demaille version 2.6.3 * NEWS: Record release date. 2012-10-22 Akim Demaille gnulib: update 2012-10-22 Akim Demaille tests: check %no-lines * tests/synclines.at: here. 2012-10-22 Akim Demaille NEWS: warnings with clang * NEWS: here. 2012-10-22 Akim Demaille warnings: avoid warnings from clang Fix the following warning parse-gram.c:2078:14: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality] if (((yyn) == (-91))) ~~~~~~^~~~~~~~ parse-gram.c:2078:14: note: remove extraneous parentheses around the comparison to silence this warning if (((yyn) == (-91))) ~ ^ ~ parse-gram.c:2078:14: note: use '=' to turn this equality comparison into an assignment if (((yyn) == (-91))) ^~ = 1 error generated. and the following one: input.cc:740:1: error: function declared 'noreturn' should not return [-Werror,-Winvalid-noreturn] static void yyMemoryExhausted (yyGLRStack* yystackp) __attribute__ ((__noreturn__)); static void yyMemoryExhausted (yyGLRStack* yystackp) { YYLONGJMP (yystackp->yyexception_buffer, 2); } ^ 1 warning and 1 error generated. This is Apple clang version 3.1 (tags/Apple/clang-318.0.61). * data/c.m4 (b4_table_value_equals): Use (!!(A == B)) instead of (A == B) to avoid this warning. Any reasonable compiler should generate the same code. * src/uniqstr.h (UNIQSTR_EQ): Likewise. * data/glr.c (LONGJMP): abort after longjmp to pacify clang. 2012-10-22 Akim Demaille tests: no longer disable -O compiler options Tests are running without -O since f377f69fec28013c79db4efe12bbb9d48987fb2c because some warnings (about yylval not being initialized) show only when GCC is given -O2. The previous patch fixes the warnings. Run the test suite with compiler options unmodified. * tests/atlocal.in (O0CFLAGS, O0CXXFLAGS): Remove, use CFLAGS and CXXFLAGS. 2012-10-22 Paul Eggert yacc.c: initialize yylval in pure-parser mode See http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00024.html (spreading over September and October). * data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN) (YY_IGNORE_MAYBE_UNINITIALIZED_END, YYLVAL_INITIALIZE): New macros. Use them to suppress an unwanted GCC diagnostic. 2012-10-22 Akim Demaille skeletons: style changes * data/yacc.c, data/glr.c: Prefer Title case for (CPP) macro arguments. 2012-10-22 Akim Demaille tests: minor improvements * tests/c++.at: Space changes. Use AT_YYERROR_DEFINE. * tests/local.at (AT_YYERROR_DEFINE): Issue errors on unknown languages. 2012-10-22 Akim Demaille tests: use $PERL instead of perl * tests/atlocal.in (PERL): New. Sort. * tests/calc.at, tests/input.at, tests/local.at, tests/regression.at, * tests/skeletons.at, tests/synclines.at, tests/torture.at: here. 2012-10-22 Akim Demaille build: look for Perl in configure. Bison uses "/usr/bin/perl" or "perl" in several places, and it does not appear to be a problem. But, at least to make it simpler to change PERL on the make command line, check for perl in configure. * configure.ac (PERL): New. * doc/Doxyfile.in, doc/Makefile.am, tests/bison.in: Use it. 2012-10-22 Akim Demaille tests: fix sed portability issues Reported by Didier Godefroy, . * tests/calc.at (AT_CHECK_SPACES): Use Perl. 2012-10-22 Akim Demaille tests: diff -u is not portable Reported by Didier Godefroy . * tests/existing.at (AT_LALR1_DIFF_CHECK): Skip if diff -u does not work. 2012-10-22 Akim Demaille maint: word changes * README-hacking (Typical errors): Improve wording. 2012-10-22 Akim Demaille lalr1.cc: fix test suite portability Reported by Rob Vermaas' Hydra build farm on x86_64-darwin 10.2.0 with G++ 4.6.3. * tests/headers.at (Several parsers): Include AT_DATA_SOURCE_PROLOGUE in the files to compile. * data/location.cc: Do not include twice string and iostream (once by position.hh, and then by location.hh). * README-hacking (Typical errors): Some hints for other maintainers. 2012-10-22 Theophile Ranquet maint: fix an erroneous include This fixes test 130 (Several parsers). * data/location.cc: Include rather than since we really need << on strings for instance. * NEWS: Document this. 2012-10-22 Akim Demaille tests: check that headers are self contained Reported by Alexandre Duret-Lutz. * tests/headers.at (Several parsers): here. 2012-10-22 Akim Demaille doc: add missing documentation for --report * doc/bison.texi (Bison Options): Document --report's "solved", "all", and "none". 2012-10-22 Akim Demaille headers: move CPP guards into YY_*_INCLUDED to avoid collisions See . * data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED. * tests/headers.at: Adjust. * NEWS, doc/bison.texi: Document. 2012-10-22 Akim Demaille minor changes. * NEWS: Word changes. * doc/bison.texi: Spell check. Fix minor issues. * tests/headers.at: Comment and formatting changes. 2012-10-22 Akim Demaille gnulib: update 2012-10-19 Akim Demaille gnulib: update 2012-10-19 Akim Demaille xml: slight improvement of the DOT output This was completely forgotten... Nothing about XML is actually documented... * data/xslt/xml2dot.xsl: Use boxes, and Courier font. 2012-10-19 Akim Demaille maint: check for dot before using it * configure.ac: here. * doc/Makefile.am: Use $(DOT). Ship the generated files, to spare the user the need for Graphviz. 2012-10-18 Theophile Ranquet graphs: documentation Note that 'make web-manual' fails. * NEWS: Document these changes. * doc/Makefile.am: Adjust to generate example files. * doc/bison.texi: Add a Graphviz section after "Understanding::", the section describing the .output file, because these are similar. * doc/figs/example-reduce.dot, doc/figs/example-reduce.txt, doc/figs/example-shift.dot, doc/figs/example-shift.txt: New, minimal examples to illustrate the documentation. 2012-10-18 Theophile Ranquet graphs: add tests, introducing -k graph * tests/output.at (AT_TEST): New. Use it to add 6 --graph tests. 2012-10-18 Theophile Ranquet graphs: change the output format of the rules Use something similar to the report file. * src/print_graph.c (print_lhs): New, obstack equivalent of rule_lhs_print. (print_core): Use here. 2012-10-18 Theophile Ranquet graphs: style changes * src/graphviz.c (start_graph): Use courier font. (conclude_red): Use commas to separate attributes. Show the acceptation as a special reduction, with a blue color and an "Acc" label. Show the lookahead tokens between square brackets. (output_red): No longer label default reductions. * src/print_graph.c (print_core): Refactor spacing, and print an additional space between a rule's rhs and its lookahead tokens. Also, capitalize "State". (print_actions): Style, move a declaration. 2012-10-18 Theophile Ranquet graphs: address an issue with R/R conflicts All disabled reductions should now be shown as such. * src/graphviz.c (output_red): Here. (conclude_red): New. 2012-10-16 Akim Demaille news: spell check * NEWS: here. 2012-10-16 Akim Demaille Merge branch 'maint' * origin/maint: java: use api.location.type and api.position.type 2012-10-16 Akim Demaille variables: use singular in %define variable names See http://lists.gnu.org/archive/html/bison-patches/2012-02/msg00045.html * doc/bison.texi, src/lalr.c, src/main.c, src/muscle-tab.c, * src/print.c, src/reader.c, src/tables.c, tests/conflicts.at, * tests/input.at, tests/reduce.at: s/lr.default-reductions/lr.default-reduction/ s/lr.keep-unreachable-states/lr.keep-unreachable-state/. * NEWS: Document. 2012-10-16 Akim Demaille java: fixes * data/java.m4: Remove stray M4 characters. 2012-10-16 Akim Demaille api.tokens.prefix -> api.token.prefix See http://lists.gnu.org/archive/html/bison-patches/2012-02/msg00045.html Note that api.tokens.prefix has not been released, yet. * NEWS, data/bison.m4, doc/bison.texi, tests/c++.at, * tests/calc.at, tests/java.at, tests/local.at: Do it. * src/muscle-tab.c (muscle_percent_variable_update): Ensure backward compatibility. 2012-10-15 Theophile Ranquet scan-skel.l: shift complain_args arguments Because argv[0] is never used, shift it out from the argument list. * src/complain.c (complain_args): Here. * src/scan-skel.l (at_complain): Adjust argv and argc. 2012-10-15 Theophile Ranquet scan-skel.l: formatting changes * src/scan-skel.l (fail_for_at_directive_too_few_args): Here. 2012-10-12 Akim Demaille java: use api.location.type and api.position.type * data/java.m4: here. * NEWS, doc/bison.texi, tests/java.at: Adjust. 2012-10-12 Akim Demaille Merge branch 'maint' * origin/maint: tests: check %no-lines tests: minor simplification graphs: stylistic changes. graphs: minor style changes graphs: show reductions graphs: style: prefix state number with "state" graphs: style: use left justification for states graphs: style: prefix rules and change shapes obstack: import obstack_finish0 from master c++: api.location.type muscles: a function for backward compatibility maint: more macros 2012-10-12 Akim Demaille tests: check %no-lines * tests/synclines.at: here. 2012-10-12 Akim Demaille tests: minor simplification * tests/headers.at (Several parsers): Use *.y even for C++. 2012-10-11 Akim Demaille graphs: stylistic changes. * src/graphviz.c (output_red): Comment and formatting changes. 2012-10-11 Theophile Ranquet graphs: minor style changes * src/graphviz.c (output_red): Fix C90 issues. Reduce variable scopes. 2012-10-11 Theophile Ranquet graphs: show reductions * src/graphviz.c (output_red): New, show reductions on the graph. (no_reduce_bitset_init): New, initialize a bitset. (print_token): New, print a lookahead token. (escape): New, print "foo" as \"foo\" because Dot doesn't like quotes within a label. * src/graphviz.h : Adjust. * src/print_graph.c (print_actions): Call output_red here. 2012-10-11 Theophile Ranquet graphs: style: prefix state number with "state" * src/print_graph.c (print_core): Here. 2012-10-11 Theophile Ranquet graphs: style: use left justification for states The label text of nodes is centered "by default" (by the use of '\n' as a line feed). This gives bad readability to the grammar rules shown in state nodes, a left justification is much nicer. This is done by using '\l' as the line feed. In order to allow \l in the DOT file, changes to the quoting system seem necessary. * src/print_graph.c (print_core): Escape tokens here, instead of... * src/graphviz.c (output_node): Here... (escape): Using this, new. 2012-10-11 Theophile Ranquet graphs: style: prefix rules and change shapes * src/graphviz.c (start_graph): Use box rather than ellipsis. * src/print_graph.c (print_core): Prefix rules with their number. 2012-10-11 Theophile Ranquet obstack: import obstack_finish0 from master * src/system.h (obstack_finish0): New. 2012-10-11 Akim Demaille Merge branch 'maint' * origin/maint: NEWS: warnings with clang warnings: avoid warnings from clang tests: no longer disable -O compiler options yacc.c: initialize yylval in pure-parser mode skeletons: style changes lalr1.cc: document exception safety lalr1.cc: check exception safety of error handling lalr1.cc: check (and fix) %printer exception safety lalr1.cc: check (and fix) %initial-action exception safety lalr1.cc: fix exception safety lalr1.cc: check exception safety. lalr1.cc: indentation fixes. lalr1.cc: don't leave macros define to nothing tests: minor improvements tests: use $PERL instead of perl build: look for Perl in configure. tests: fix sed portability issues tests: diff -u is not portable 2012-10-09 Akim Demaille c++: api.location.type This feature was introduced in 95a2de5695670ae0df98cb3c42141cad549f0204 (which is part of 2.5), but not documented. Give it a proper name, and make it public. * data/c++.m4, data/lalr1.cc, data/glr.cc, data/java.m4: Use api.location.type instead of location_type. * src/muscle-tab.c (muscle_percent_variable_update): Map the latter to the former. * tests/local.at: Adjust. * tests/calc.at: Use api.location.type. Leave tests/java.at with location_type, at least for the time being, to cover both names. * doc/bison.texi: Document api.location.type. (User Defined Location Type): New. * NEWS: Update. 2012-10-09 Akim Demaille muscles: a function for backward compatibility Based on commit 171ad99d6421935a278656be6dc7161591835d00 from master. * src/muscle-tab.c (muscle_percent_variable_update): New. (muscle_percent_define_insert): Use it. Define the variables with their initial value. 2012-10-09 Akim Demaille maint: more macros * src/output.c (ARRAY_CARDINALITY): Move to... * src/system.h: here. (STREQ, STRNEQ): new. 2012-10-08 Akim Demaille NEWS: warnings with clang * NEWS: here. 2012-10-08 Akim Demaille warnings: avoid warnings from clang Fix the following warning parse-gram.c:2078:14: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality] if (((yyn) == (-91))) ~~~~~~^~~~~~~~ parse-gram.c:2078:14: note: remove extraneous parentheses around the comparison to silence this warning if (((yyn) == (-91))) ~ ^ ~ parse-gram.c:2078:14: note: use '=' to turn this equality comparison into an assignment if (((yyn) == (-91))) ^~ = 1 error generated. and the following one: input.cc:740:1: error: function declared 'noreturn' should not return [-Werror,-Winvalid-noreturn] static void yyMemoryExhausted (yyGLRStack* yystackp) __attribute__ ((__noreturn__)); static void yyMemoryExhausted (yyGLRStack* yystackp) { YYLONGJMP (yystackp->yyexception_buffer, 2); } ^ 1 warning and 1 error generated. This is Apple clang version 3.1 (tags/Apple/clang-318.0.61). * data/c.m4 (b4_table_value_equals): Use (!!(A == B)) instead of (A == B) to avoid this warning. Any reasonable compiler should generate the same code. * src/uniqstr.h (UNIQSTR_EQ): Likewise. * data/glr.c (LONGJMP): abort after longjmp to pacify clang. 2012-10-08 Akim Demaille tests: no longer disable -O compiler options Tests are running without -O since f377f69fec28013c79db4efe12bbb9d48987fb2c because some warnings (about yylval not being initialized) show only when GCC is given -O2. The previous patch fixes the warnings. Run the test suite with compiler options unmodified. * tests/atlocal.in (O0CFLAGS, O0CXXFLAGS): Remove, use CFLAGS and CXXFLAGS. 2012-10-08 Paul Eggert yacc.c: initialize yylval in pure-parser mode See http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00024.html (spreading over September and October). * data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN) (YY_IGNORE_MAYBE_UNINITIALIZED_END, YYLVAL_INITIALIZE): New macros. Use them to suppress an unwanted GCC diagnostic. 2012-10-08 Akim Demaille skeletons: style changes * data/yacc.c, data/glr.c: Prefer Title case for (CPP) macro arguments. 2012-10-06 Akim Demaille lalr1.cc: document exception safety * NEWS: here. * doc/bison.texi (Destructor Decl, C++ Parser Interface): and there. 2012-10-06 Akim Demaille lalr1.cc: check exception safety of error handling * tests/c++.at (Exception safety): Don't use swap here, it is useless. Cover more test cases: yyerror, YYERROR, YYABORT, and error recovery. (Object): Instead of just keeping a counter of instances, keep a list of them. 2012-10-06 Akim Demaille lalr1.cc: check (and fix) %printer exception safety * tests/c++.at (Exception safety): Let the parser support the --debug option. On 'p', throw an exception from the %printer. * data/lalr1.cc (yyparse): Do not display the values we discard, as it uses %printer, which might have thrown the exception. 2012-10-06 Akim Demaille lalr1.cc: check (and fix) %initial-action exception safety * data/lalr1.cc: Check size > 1, rather than size != 1, when cleaning the stack, as at the beginning, size is 0. * tests/c++.at (Exception safety): Check exception safety in %initial-action. 2012-10-06 Akim Demaille lalr1.cc: fix exception safety lalr1.cc does not reclaim its memory when ended by an exception. Reported by Oleksii Taran: http://lists.gnu.org/archive/html/help-bison/2012-09/msg00000.html * data/lalr1.cc (yyparse): Protect the whole yyparse by a try-catch block that cleans the stack and the lookahead. 2012-10-06 Akim Demaille lalr1.cc: check exception safety. * tests/c++.at (Exception safety): New. 2012-10-06 Akim Demaille lalr1.cc: indentation fixes. * data/lalr1.cc (yyparse): here. Untabify a block of code. 2012-10-06 Akim Demaille lalr1.cc: don't leave macros define to nothing * data/lalr1.cc (YY_SYMBOL_PRINT, YY_REDUCE_PRINT, YY_STACK_PRINT): Define to something so that, for instance, "if (foo) YY_SYMBOL_PRINT" is valid even when !YYDEBUG. 2012-10-06 Akim Demaille tests: minor improvements * tests/c++.at: Space changes. Use AT_YYERROR_DEFINE. * tests/local.at (AT_YYERROR_DEFINE): Issue errors on unknown languages. 2012-10-05 Akim Demaille tests: use $PERL instead of perl * tests/atlocal.in (PERL): New. Sort. * tests/calc.at, tests/input.at, tests/local.at, tests/regression.at, * tests/skeletons.at, tests/synclines.at, tests/torture.at: here. 2012-10-05 Akim Demaille build: look for Perl in configure. Bison uses "/usr/bin/perl" or "perl" in several places, and it does not appear to be a problem. But, at least to make it simpler to change PERL on the make command line, check for perl in configure. * configure.ac (PERL): New. * doc/Doxyfile.in, doc/Makefile.am, tests/bison.in: Use it. 2012-10-05 Akim Demaille tests: fix sed portability issues Reported by Didier Godefroy, . * tests/calc.at (AT_CHECK_SPACES): Use Perl. 2012-10-05 Akim Demaille tests: diff -u is not portable Reported by Didier Godefroy . * tests/existing.at (AT_LALR1_DIFF_CHECK): Skip if diff -u does not work. 2012-10-04 Akim Demaille Merge branch 'maint' * origin/maint: maint: word changes lalr1.cc: fix test suite portability maint: fix an erroneous include tests: check that headers are self contained doc: add missing documentation for --report 2012-10-04 Akim Demaille scan-skel: use the scanner to reject all invalid directives * src/scan-skel.l: Use a simpler and more consistent pattern escaping scheme. Catch all the invalid directives here by just removing the previous catch-all-but-alphabetical rule. 2012-10-04 Theophile Ranquet scan-skel: recognize the @directives directly in scanner * src/scan-skel.l (at_directive, at_init): New. (at_ptr): New, function pointer used to call the right at_directive function (at_basename, etc.). (outname): Rename as... (out_name): this, for consistency with out_lineno. 2012-10-04 Theophile Ranquet scan-skel: split @directive functions * src/scan-skel.l (at_directive_perform): Split as... (at_basename, at_complain, at_output): these. 2012-10-04 Theophile Ranquet errors: support indented context info in m4 macros * TODO: Address the issue, so remove it. * data/bison.m4: Use b4_error with [[note]] rather than a complain_at for context information. * src/complain.c (complain_args): Take an additional argument, an indentation pointer, to allow the dispatching of context information. * src/complain.h (complain_args): Adjust prototype. * src/scan-skel.l (at_directive_perform): Recognize the new @note mark. * tests/input.at: Adjust. 2012-10-04 Theophile Ranquet errors: factor b4_error @directives Instead of @complain, @warn, and @fatal, use a unique @complain directive. This directive's first argument is "complain", "warn", etc. * data/bison.m4 (m4_error): Here. * src/scan-skel.l (at_directive_perform): Adjust. (flag): Replace the switch by safer and more explicit if branches. 2012-10-04 Theophile Ranquet errors: pointerize complain_at_indent * src/complain.c (complain_at_indent): Rename as... (complaint_indent): This, and take the location as a pointer. * src/complain.h, src/muscle-tab.c, src/reader.c, src/scan-code.l, src/symtab.c: Adjust. 2012-10-04 Akim Demaille maint: word changes * README-hacking (Typical errors): Improve wording. 2012-10-04 Akim Demaille lalr1.cc: fix test suite portability Reported by Rob Vermaas' Hydra build farm on x86_64-darwin 10.2.0 with G++ 4.6.3. * tests/headers.at (Several parsers): Include AT_DATA_SOURCE_PROLOGUE in the files to compile. * data/location.cc: Do not include twice string and iostream (once by position.hh, and then by location.hh). * README-hacking (Typical errors): Some hints for other maintainers. 2012-10-03 Theophile Ranquet maint: fix an erroneous include This fixes test 130 (Several parsers). * data/location.cc: Include rather than since we really need << on strings for instance. * NEWS: Document this. 2012-10-03 Akim Demaille tests: check that headers are self contained Reported by Alexandre Duret-Lutz. * tests/headers.at (Several parsers): here. 2012-10-03 Akim Demaille doc: add missing documentation for --report * doc/bison.texi (Bison Options): Document --report's "solved", "all", and "none". 2012-10-01 Akim Demaille build: use gnulib's non-recursive-gnulib-prefix-hack Suggested by Jim Meyering. * etc/prefix-gnulib-mk: Remove, as it is now provided by... * bootstrap.conf (modules): the non-recursive-gnulib-prefix-hack module. * build-aux/.gitignore, configure.ac, m4/.gitignore: Adjust. 2012-10-01 Akim Demaille warnings: simplify the m4 interface * data/bison.m4 (error_at): Replace... (error): this. (b4_warn, b4_complain, b4_fatal): Bounce to their _at equivalent, with empty location. * src/scan-skel.l (at_directive_perform): Simplify accordingly. 2012-10-01 Theophile Ranquet warnings: separate flags_argmatch This function is now a mere iterator that calls flag_argmatch, a new function, that matches a single option parameter. * src/getargs.c (flag_argmatch): New, taken from... (flags_argmatch): Here. 2012-10-01 Theophile Ranquet warnings: refactoring The code here was too confusing, this seems more natural. * src/complain.c (error_message): Move the indentation check and the category output to complains. Also, no longer take a 'warnings' argument. (complains): Factor calls to error_message. 2012-10-01 Theophile Ranquet formatting changes * src/complain.c: Here. 2012-10-01 Theophile Ranquet warnings: organize variadic complaints call Move the dispatch of variadic complains to complain.c, rather than do it in a scanner. * src/complain.h, src/complain.c (complain_args): New. * src/scan-skel.l (at_directive_perform): Use it. 2012-10-01 Theophile Ranquet warnings: fusion of complain and complain_at These functions are very similar, and keeping them seperate makes future improvements difficult, so merge them. This impacts 89 calls. * src/bootstrap.conf: Adjust. * src/complain.c (complain, complain_at): Merge into... (complain): this. (complain_args): Adjust. * src/complain.h, src/conflicts.c, src/files.c, src/getargs.c, * src/gram.c, src/location.c, src/muscle-tab.c, src/parse-gram.y, * src/reader.c, src/reduce.c, src/scan-code.l, src/scan-gram.l, * src/scan-skel.l, src/symlist.c, src/symtab.c: Adjust. 2012-10-01 Theophile Ranquet warnings: remove spurious suffixes on context Rectify a bug that introduced suffixes out of place. * src/complainc.c (complains): Handle all three special warning bits. * src/scan-code.l (show_sub_message): Remove useless argument. * tests/named-refs.at: Adjust. 2012-10-01 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: headers: move CPP guards into YY_*_INCLUDED to avoid collisions minor changes. 2012-10-01 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: gnulib: update errors: indent "user token number redeclaration" context 2012-10-01 Akim Demaille headers: move CPP guards into YY_*_INCLUDED to avoid collisions See . * data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED. * tests/headers.at: Adjust. * NEWS, doc/bison.texi: Document. 2012-10-01 Akim Demaille minor changes. * NEWS: Word changes. * doc/bison.texi: Spell check. Fix minor issues. * tests/headers.at: Comment and formatting changes. 2012-09-28 Akim Demaille gnulib: update 2012-09-28 Theophile Ranquet errors: indent "user token number redeclaration" context This is the continuation of the work on the readability of errors context. * src/symtab.c (user_token_number_redeclaration): Use complain_at_indent to output with increased indentation level. * tests/input:at: Apply this change. 2012-09-27 Theophile Ranquet errors: don't display "warnings treated as errors" This line doesn't add any meaningful information anymore, the appended [-Werror=CATEGORY] is enough. It is actually more insightful, as it allows to distinguish warnings treated as errors from those that aren't. This line is also removed by gcc 4.8. * src/complain.c (set_warnings_issued): The only action left was checking if the error bit corresponding to the warning issued was set, and that function was only called once. Therefore, remove it, and do its job directly in the caller... (complains): here. * src/complains.h: Adjust. * tests/input.at: Adjust. * NEWS: Document this change. 2012-09-27 Akim Demaille errors: change output, and improve -y coherence The prefix of warnings treated as errors is now "error: ". Also, their suffix now reflects the changes in the Werror option format. An output for -Werror=other used to be: bison: warnings being treated as errors input.y:1.1: warning: stray ',' treated as white space [-Wother] It is now: bison: warnings being treated as errors input.y:1.1: error: stray ',' treated as white space [-Werror=other] The line "warnings being treated as errors" no longer adds any info, it will be removed in a forthcoming change. * NEWS: Add entry "Enhancement of the -Werror" * doc/bison.texi: Move the warnings-as-error to a new bullet. * src/complain.c (complains): Refactor, change the prefix of warnings that are treated as errors. (warnings_print_categories): Support for [-Werror=CATEGORY] display * src/getargc.c (getargs): -y implies -Werror=yacc * tests/input.at: Update expected --yacc output for coherence. 2012-09-27 Theophile Ranquet errors: introduce the -Werror=CATEGORY option This new option is a lot more flexible than the previous one. Its details will be discussed in the NEWS and info file, in a forthcoming change. If no category is specified (ie: used as simply "-Werror"), the functionality is the same as before. * src/complain.c (errors_flag): New variable. (set_warning_issued): Accept warning categories as an argument. * src/complain.h (Wall): Better definition. * src/getargs.c (flags_argmatch): Support for the new format. (usage): Update -Werror to -Werror[=CATEGORY] format. * src/complain.c (errors_flag): New variable. (set_warning_issued): Accept warning categories as an argument. * src/complain.h (Wall): Better definition. * src/getargs.c (flags_argmatch): Support for the new format. (usage): Update -Werror to -Werror=[CATEGORY] format. 2012-09-26 Akim Demaille Merge branch 'maint' * maint: warnings: introduce -Wdeprecated in the usage info errors: prefix the output with "error: " errors: indent "invalid value for %define" context errors: indent "%define var" redefinition context errors: indent "symbol redeclaration" context errors: indent "result type clash" error context 2012-09-26 Theophile Ranquet warnings: introduce -Wdeprecated in the usage info The deprecated warning, introduced some time ago, was not displayed in the usage message. This patch addresses the issue. * src/getargs.c (usage): Insert here. 2012-09-26 Akim Demaille regen 2012-09-26 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: regen yacc: fix handling of CPP guards when no header is generated gnulib: update 2012-09-26 Theophile Ranquet errors: prefix the output with "error: " This improves readability. This is also what gcc does. * NEWS: Document this change. * src/complain.c (complain_at): Prefix all errors with "error: ". (complain_at_indent, warn_at_indent): Do not prefix the context information of errors, which are basically just indented errors. * tests/conflicts.at, tests/glr-regression.at, tests/input.at, tests/named-refs.at, tests/output.at, tests/push.at, tests/regression.at, tests/skeletons.at: Apply this change. 2012-09-26 Theophile Ranquet errors: indent "invalid value for %define" context This is the continuation of the work on the readability of errors context. For example, what used to be: input.y:1.9-29: invalid value for %define variable 'foo' : 'bar' input.y:1.9-29: accepted value: 'most' is now: input.y:1.9-29: invalid value for %define variable 'foo' : 'bar' input.y:1.9-29: accepted value: 'most' * src/muscle-tab.c (muscle_percent_define_check_values): Use complain_at_indent to output with increased indentation level. * tests/input:at: Apply this change. 2012-09-26 Theophile Ranquet errors: indent "%define var" redefinition context This is the continuation of the work on the readability of errors context. For example, what used to be: input.y:2.9-11: %define variable 'var' redefined input.y:1.9-11: previous definition is now: input.y:2.9-11: %define variable 'var' redefined input.y:1.9-11: previous definition * src/muscle-tab.c (muscle_percent_define_insert): Use complain_at_indent to output with increased indentation level. * tests/input.at: Apply this change. 2012-09-26 Theophile Ranquet errors: indent "symbol redeclaration" context This is the continuation of the work on the readability of errors context. For example, what used to be: input.y:5.10-24: %printer redeclaration for input.y:3.11-25: previous declaration is now: input.y:5.10-24: %printer redeclaration for input.y:3.11-25: previous declaration * NEWS: Document this change. * src/symtab.c (symbol_redeclaration, semantic_type_redeclaration, user_token_number_redeclaration, default_tagged_destructor_set, default_tagless_destructor_set, default_tagged_printer_set, default_tagless_printer_set): Use complain_at_indent to output with increased indentation level. * tests/input.at: Apply this change. 2012-09-26 Theophile Ranquet errors: indent "result type clash" error context This used to be the format of the error report: input.y:6.5-10: result type clash on merge function 'merge': [...] input.y:2.4-9: previous declaration In order to distinguish the actual error from the context provided, we rather this new output: input.y:6.5-10: result type clash on merge function 'merge': [...] input.y:2.4-9: previous declaration Another patch will introduce an "error: " prefix to all non-indented lines, giving yet better readability to the reports. * src/complain.h (SUB_INDENT): Move to here. * src/reader.c (record_merge_function_type): Use complain_at_indent to output with increased indentation level. * src/scan-code.l (SUB_INDENT): Remove from here. * tests/glr-regression.at: Apply this change. 2012-09-25 Akim Demaille warnings: use the regular interface for s/r and r/r conflicts The current routines used to display s/r and r/r conflicts are both inconvenient from the programmer point of view (they do not use the warning infrastructure) and for the user (the messages are rather terse, not necessarily pleasant to read, and because they don't use the same routines, they look different). It was due to the belief (dating back to the initial checked-in version of Bison) that, at some point, POSIX Yacc mandated the format for these messages. Today, the Open Group's manual page for Yacc, , explicitly states that the format of these messages is unspecified. See commit be7280480c175bed203883f524c7dcd6cf37c13d and . For a discussion on the chosen warning format, see http://lists.gnu.org/archive/html/bison-patches/2012-09/msg00039.html In an effort to factor the handling of errors and warnings, use the Bison warning routines to report these messages. * src/conflicts.c (conflicts_print): Rewrite with clearer sections about S/R and then R/R conflicts. (conflict_report): Remove, inlined in its sole caller... (conflicts_output): here. * tests/conflicts.at, tests/existing.at, tests/glr-regression.at, * tests/reduce.at, tests/regression.at: Adjust the expected results. * NEWS: Update. 2012-09-25 Akim Demaille regen 2012-09-25 Akim Demaille yacc: fix handling of CPP guards when no header is generated When no header was to be generated, Bison would issue: /* In a future release of Bison, this section will be replaced by #include "". */ #ifndef YY_ # define YY_ It now properly generates nothing. * data/c.m4 (b4_cpp_guard_open, b4_cpp_guard_close): Issue nothing when the file name is empty. * data/yacc.c: Do not generate the above comment when there is no header to generate. * NEWS: Update. 2012-09-25 Akim Demaille gnulib: update 2012-09-21 Akim Demaille conflicts: refactor the counting routines * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Rename as... (count_sr_conflicts, count_rr_conflicts): these. Use size_t for counts. (count_sr_conflicts, count_rr_conflicts): New. Use them. 2012-09-21 Akim Demaille %expect-rr is for GLR only * src/conflicts.c (conflicts_print): Complain about %expect-rr if not in GLR mode, regardless of the number of reduce/reduce conflicts. * tests/conflicts.at (%expect-rr non GLR): New test. * NEWS: Update. 2012-09-21 Akim Demaille TODO: lalr1.cc master vs maint * TODO: here. 2012-09-21 Akim Demaille c++: coding style fixes * data/lalr1.cc, tests/c++.at: Formatting changes. 2012-09-21 Akim Demaille Revert "introduced a GCC-like -Werror=type" This reverts commit 981c53e257f1974854edc4f6ad0e88c7f18e2bea. 2012-09-21 Akim Demaille Revert "made previous commit less hairy" This reverts commit fd01e1d05ea3e627033d148b5400b99a18ac7ba3. 2012-09-21 Akim Demaille Revert "new Werror report format fixed in a test" This reverts commit 41511178a71ebaf81bde7ffc682c575537af45cb. 2012-09-21 Theophile Ranquet new Werror report format fixed in a test * tests/input.at : replaced [-Wyacc] with [-Werror=yacc] todo: fix the other failed test of the suite, tests/conflicts.at:1554 2012-09-21 Theophile Ranquet made previous commit less hairy * src/getargs.c : here 2012-09-20 Theophile Ranquet introduced a GCC-like -Werror=type * src/complain.h : errors_flag variable * src/complain.c : actual stuff happens here * src/conflits.c : differentiated SR and RR conflicts * src/getargs.c : flags_argmatch recognizes the new -Werror format 2012-09-04 Akim Demaille regen 2012-09-04 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: remove useless file update files to ignore remove useless include use locale-indep. c_is* functions for parsing, not isspace, isprint etc gnulib: update --help: include a place to report translation issues tests: style changes tests: fix push-pull test yacc.c: style changes 2012-09-04 Akim Demaille maint: remove useless file * externals/bootstrap.cfg: Remove. This file was used by a specific build system. It was added to the master repository by accident. 2012-09-04 Akim Demaille update files to ignore * doc/.gitignore: Don't ignore split info files as we don't split our info file. See . 2012-09-04 Akim Demaille remove useless include * src/system.h: Don't include sys/types.h. Reported by Eric Blake, . (FUNCTION_PRINT): Remove, unused. 2012-09-03 Jim Meyering use locale-indep. c_is* functions for parsing, not isspace, isprint etc * src/parse-gram.y: Include "c-ctype.h". (add_param): Parse with c_isspace, not isspace. * src/parse-gram.c: Likewise. * src/scan-gram.l: Include c-ctype.h, not ctype.h. (SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER): Use c_isspace and c_isprint, not ctype.h's locale-dependent functions. 2012-09-03 Akim Demaille gnulib: update 2012-09-03 Akim Demaille --help: include a place to report translation issues http://lists.gnu.org/archive/html/bug-bison/2012-08/msg00007.html shows that it is useful to help users report translation issues. While at it, include other informative bits that the coreutils shows. * src/getargs.c (usage): Report more URLs where the user can refer to. Mostly copied/pasted from coreutils' emit_ancillary_info function. 2012-09-03 Akim Demaille news: style changes * NEWS: Minor improvements. 2012-09-03 Akim Demaille use -Wdeprecated for obsolete %define variable names * src/muscle-tab.c (muscle_percent_variable_update): Here. * tests/input.at (%define backward compatibility): Update expectations. 2012-09-03 Akim Demaille introduce -Wdeprecated GCC seems to be using "deprecated" consistently over "obsoleted", so use -Wdeprecated rather than -Wobsolete. * src/complain.h (warnings): Add Wdeprecated. * src/complain.c (warnings_print_categories): Adjust. * src/getargs.c: Likewise. * doc/bison.texi: Document it. * src/scan-code.l: Use this category for the trailing ';' support. * tests/actions.at: Adjust expected output. 2012-09-03 Akim Demaille undefined but unused is a warning * src/symtab.c (symbol_check_defined): Undeclared symbols are only a warning. * tests/input.at (Undeclared symbols used for a printer or destructor): Rename as... (Undefined symbols): this, and check this case. * NEWS: Doc it. 2012-09-03 Akim Demaille glr.cc: %defines is no longer mandatory * data/glr.cc: No longer require %defines. When it is not given, define the position and location classes instead of including their headers. (b4_shared_declarations): Use the original parse-params. * data/glr.c (b4_shared_declarations): Define only if undefined. * tests/actions.at, tests/calc.at: No longer force the use of %defines for glr.cc. * NEWS: Doc it. 2012-09-03 Akim Demaille todo: check push parsers 2012-09-03 Akim Demaille style: remove useless C++ provisio * src/complain.h: here. 2012-09-03 Akim Demaille parser: style changes * src/parse-gram.y: Avoid deprecated directives. 2012-09-03 Akim Demaille doc: address a fixme * doc/bison.texi (Calc++ Parser): Add a cross-reference. 2012-09-03 Akim Demaille style changes * data/glr.cc, tests/actions.at: Fix comments. * src/symtab.h, src/symtab.c: Fix indentation/comments. * src/symlist.c: Fix indentation. 2012-08-31 Akim Demaille tests: style changes * tests/torture.at (AT_DATA_STACK_TORTURE): M4 style changes to improve readability. Fix an assertion which, because of a <= instead of ==, did not check new_status as visibly meant. (get_args): New. 2012-08-31 Akim Demaille tests: fix push-pull test * tests/torture.at: %push-pull-parser is no longer supported. 2012-08-31 Akim Demaille yacc.c: style changes * data/yacc.c: (yytoken): Define with initial value. 2012-08-12 Akim Demaille refactoring: define variables with a value * src/muscle-tab.c: Where possible, fuse definition and initial assignment. 2012-08-12 Akim Demaille minor refactoring: shorten variable names * src/scan-skel.l (at_directive_argc, at_directive_argv) (AT_DIRECTIVE_ARGC_MAX): Rename as... (argc, argv, ARGC_MAX): these, as there is no possible confusion. (flags): New. (QPUTS): Remove, inline its only use. 2012-08-12 Akim Demaille obstacks: simplifications * src/system.h (obstack_finish0): New. Use it to simplify several uses. * src/muscle-tab.h (MUSCLE_INSERTF): New. * src/muscle-tab.c: Use obstack_printf where simpler. 2012-08-12 Akim Demaille minor refactoring in user code scanning * src/scan-code.l (show_sub_message, show_sub_messages): Instead of a Boolean, take a "warnings" argument. Avoid storing printf-like format strings in a variable, so that GCC can check them. 2012-08-12 Akim Demaille minor refactoring in user code scanning * src/scan-code.l (show_sub_message): New, extracted from... (show_sub_messages): here. 2012-08-03 Akim Demaille tests: strengthen the trailing spaces check * tests/calc.at: here. * data/glr.c: Fix accordingly. 2012-08-03 Akim Demaille regen 2012-08-03 Akim Demaille Merge branch 'maint' * origin/maint: maint: post-release administrivia version 2.6.2 NEWS: update. yacc: remove trailing end of line at end of file thanks: fix a contributor name gnulib: update tests: synch line -> syncline, for consistency tests: synclines: style changes tests: synclines: fix perl invocation regen c++: trailing end-of-lines in %parse-param tests: simplify 2012-08-03 Akim Demaille regen 2012-08-03 Akim Demaille remove support for lint Basically revert commit 12ce2df60d16961eaa03a5aa009eeaa645e4e1cb. http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00004.html * data/c.m4, data/glr.c, data/yacc.c (YYID): Remove. No longer use ARGSUSED. * src/getargs.c: Restore simpler inclusion of getopt.h (anyway, since then we now use gnulib which certainly protects us from such issues). 2012-08-03 Akim Demaille skeletons: renamings after knr removal * data/c.m4 (b4_yydestruct_generate, b4_yy_symbol_print_generate): Rename as... (b4_yydestruct_define, b4_yy_symbol_print_define): these, for consistency. * data/glr.c, data/glr.cc, data/yacc.c: Adjust. 2012-08-03 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-08-03 Akim Demaille version 2.6.2 * NEWS: Record release date. 2012-08-02 Akim Demaille c++: fix a comment * data/c++.m4: Be sure to attach a ';' to its declaration, otherwise it appears in the preceding comment. 2012-08-02 Akim Demaille skeletons: simplify after knr removal * data/c.m4 (b4_yydestruct_generate, b4_yy_symbol_print_generate): They no longer need an argument, it has a single possible value. * data/glr.c, data/yacc.c: Adjust. 2012-08-02 Akim Demaille skeletons: renamings after knr removal * data/c.m4 (b4_c_comment_, b4_c_args, b4_c_function_def) (b4_c_function_decl, b4_c_formals, b4_c_call, b4_c_arg): Rename as... (b4_comment, b4_args, b4_function_define, b4_function_declare, b4_formals, b4_function_call, b4_arg): these. * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Adjust. 2012-08-02 Akim Demaille skeletons: b4_args -> b4_join to prepare forthcoming changes * data/bison.m4 (b4_args, _b4_args): Rename as... (b4_join, _b4_join): these. * data/c++.m4, data/lalr1.cc, data/variant.hh: Adjust. 2012-08-02 Akim Demaille regen 2012-08-02 Akim Demaille YYPARSE_PARAM: drop support * data/yacc.c: No longer support it. * doc/bison.texi, tests/headers.at: Adjust. * NEWS: Document. 2012-08-02 Akim Demaille skeletons: remove K&R C support * data/c.m4 (b4_c_modern, b4_c_knr_formal_names, b4_c_knr_formal_decls) (b4_c_knr_formal_decl, b4_c_formal_names, b4_c_formal_decls) (b4_c_formal_decl): Remove. (b4_c_ansi_formal_names, b4_c_ansi_formal_decls, b4_c_ansi_formal_decl): Rename as... (b4_c_formal_names, b4_c_formal_decls, b4_c_formal_decl): these. * data/glr.c, data/glr.cc, data/yacc.c: Adjust. 2012-08-02 Akim Demaille NEWS: update. * NEWS: Catch up with the other changes from 2.6.1. 2012-08-02 Akim Demaille yacc: remove trailing end of line at end of file There are still spurious spaces at the end of some lines. But this is addressed in the master branch, and I am reluctant to try to backport this. * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: here. * tests/calc.at (AT_CHECK_SPACES): New. Use it. Be sure not to introduce trailing empty lines in the *.y files. * NEWS: Doc it. * cfg.mk (syntax-check): Remove the exception. 2012-08-02 Akim Demaille thanks: fix a contributor name * THANKS: On his request. 2012-08-01 Akim Demaille gnulib: update 2012-08-01 Akim Demaille tests: synch line -> syncline, for consistency * tests/synclines.at: Do it, as "syncline" is used consistently everywhere else in Bison. 2012-08-01 Akim Demaille tests: synclines: style changes * tests/synclines.at (AT_TEST_SYNCLINE): Rename as... (AT_TEST): this. Use pushdef/popdef. Formatting changes. Use '+' instead of '*' where appropriate. 2012-08-01 Akim Demaille tests: synclines: fix perl invocation Reported by Summum Bonum. * tests/synclines.at: Fix Perl invocation: its -f is not like sed's. 2012-08-01 Akim Demaille regen 2012-08-01 Akim Demaille c++: trailing end-of-lines in %parse-param * src/parse-gram.y (add_param): No only skip ' ' and '\t', skip all leading and trailing spaces. * tests/regression.at (Lex and parse params): Check it. * NEWS: Document it. 2012-08-01 Akim Demaille tests: simplify * tests/regression.at: Remove useless compilations: AT_FULL_COMPILE includes the compilation by bison. 2012-07-31 Akim Demaille todo: more items * TODO: $ in the epilogue, and obstack_copy. 2012-07-31 Akim Demaille Merge branch 'maint' * maint: use obstack_printf scanner: restore a missing start condition gnulib: update maint: post-release administrivia version 2.6.1 gnulib: update maint: fix some syntax-check issues tests: do not depend on __cplusplus to decide for C++ or C output 2012-07-31 Akim Demaille tests: comment changes * tests/actions.at, tests/input.at: here. 2012-07-31 Akim Demaille tests: really check the set of generated files * tests/output.at (AT_CHECK_OUTPUT): It used to check that the expected files are indeed generated, but it did not check that there are no additional ones. Do that, and adjust expectations (in particular alphabetical order). 2012-07-31 Akim Demaille lalr1.cc: do not create stack.hh without %defines * data/stack.hh (b4_stack_define): New. * data/lalr1.cc: Use it when %defines is not passed. * tests/output.at: Adjust expected output. 2012-07-31 Akim Demaille lalr1.cc: location.hh and position.hh are not generated without %defines * data/location.cc (b4_position_define, b4_location_define): New. (location.hh, position.hh): Generate only if %defines. * data/lalr1.cc: therefore, define these classes when locations are needed, but headers are not generated. * tests/output.at: Check that these files are not generated. * NEWS: Document. 2012-07-31 Akim Demaille lalr1.cc: no longer require %defines. * data/lalr1.cc: Generate the parser header only when %defines is passed. * tests/calc.at: Check it. 2012-07-31 Akim Demaille skeletons: style changes * data/glr.c, data/lalr1.cc: Use more consistent comments, and YY_NULL declaration. 2012-07-31 Akim Demaille glr.cc, lalr1.cc: define b4_shared_declarations * data/glr.cc, data/lalr1.cc: here. The name is no longer right, but at least it is consistent with the other skeletons. 2012-07-31 Akim Demaille glr.cc: no longer require location support * data/glr.cc: Use b4_locations_if where appropriate. * data/lalr1.cc: M4 quotation changes to highlight code duplication with glr.cc. * tests/calc.at: Check glr.cc with and without %location. While at it, fuse multiple %parse-params into one. * tests/actions.at: Simplify. * NEWS: Doc this. Some other wording changes. 2012-07-31 Akim Demaille use obstack_printf This is not just nicer, it is also much safer, since we were using sprintf... * bootstrap.conf: Require it. * src/system.h (obstack_fgrow1, obstack_fgrow2, obstack_fgrow3) (obstack_fgrow4): Remove. Adjust dependencies. 2012-07-30 Akim Demaille scanner: restore a missing start condition $ flex src/scan-skel.l src/scan-skel.l:145: multiple <> rules for start condition SC_AT_DIRECTIVE_ARGS src/scan-skel.l:145: multiple <> rules for start condition SC_AT_DIRECTIVE_SKIP_WS This is warning, and it seems there are no means to make it an error. * src/scan-skel.l: Restore the start-condition INITIAL for an <> clause. 2012-07-30 Akim Demaille gnulib: update 2012-07-30 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-07-30 Akim Demaille version 2.6.1 * NEWS: Record release date. 2012-07-30 Akim Demaille gnulib: update 2012-07-27 Akim Demaille maint: fix some syntax-check issues * cfg.mk: Nuke the following warnings which are confused by our text reports (that state that the error token is number 256). prohibit_magic_number_exit ../../doc/bison.texi:8170:error (256) ../../tests/conflicts.at:570:error (256) ../../tests/conflicts.at:673:error (256) ../../tests/conflicts.at:811:error (256) ../../tests/conflicts.at:1154:error (256) ../../tests/regression.at:281:error (256) ../../tests/regression.at:582:error (256) maint.mk: use EXIT_* values rather than magic number 2012-07-27 Akim Demaille regen 2012-07-27 Akim Demaille tests: do not depend on __cplusplus to decide for C++ or C output Since we do support compiling C code with a C++ compiler. * tests/actions.at (Qualified $$ in actions): Use AT_SKEL_CC_IF. 2012-07-27 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: (29 commits) regen synclines: remove spurious empty line also support $$ in the %initial-action skeletons: b4_dollar_pushdef and popdef to simpify complex definitions regen printer/destructor: translate only once factor the handling of m4 escaping news: schedule the removal of the ";" hack style changes in the scanners regen support $$ in printers and destructors scan-code: factor the handling of the type in $$ muscles: fix another occurrence of unescaped type name glr.cc: fix the handling of yydebug gnulib: update formatting changes tests: fix an assertion tests: adjust to GCC 4.8, which displays caret errors be sure to properly escape type names obstack_quote: escape and quote for M4 muscles: shuffle responsabilities muscles: make private functions static muscles: rename private functions/macros obstack_escape: escape M4 characters remove dead macro maint: style changes doc: avoid problems with case insensitive file systems configure: fix botched quoting news: fix typo. 2012-07-27 Akim Demaille regen 2012-07-27 Akim Demaille synclines: remove spurious empty line * data/bison.m4 (b4_syncline): Do not start with an empty line. 2012-07-27 Akim Demaille also support $$ in the %initial-action scan-code.l is already passing argument to b4_dollar_dollar for the initial acton, but its definition (of b4_dollar_dollar) does not use this argument. Generalize this definition, and use it for the %initial-action too. * data/c.m4 (b4_dollar_dollar_, b4_dollar_pushdef, b4_dollar_popdef): Instead of expecting a pointer, require a value, and use ".". Since they are now generic enough, move to... * data/c-like.m4: this new file. * data/c.m4, data/java.m4: Load it. * data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Use b4_dollar_pushdef for the %initial-action. * tests/actions.at: Check that. * data/Makefile.am: Adjust. * NEWS, doc/bison.texi: Document. 2012-07-27 Akim Demaille skeletons: b4_dollar_pushdef and popdef to simpify complex definitions M4 is really making it uselessly hard to define macros that define macros. * data/c.m4 (b4_dollar_pushdef, b4_dollar_popdef): New. Use it. 2012-07-27 Akim Demaille regen 2012-07-27 Akim Demaille printer/destructor: translate only once Currently "%printer {...} a b c d e f" translates the {...} six times. Not only is this bad for time and space, it also issues six times the same warnings. * src/symlist.h, src/symlist.c (symbol_list_destructor_set) (symbol_list_printer_set): Take the action as code_props instead of const char *. * src/parse-gram.y: Translate these actions here. * src/scan-code.h: Comment change. * tests/input.at: Check that warnings are issued only once. 2012-07-27 Akim Demaille factor the handling of m4 escaping The conversion from @ to @@ and so forth is coded is too many different places. Factor, a bit. * src/scan-code.l: Instead of duplicating the logic of obstack_escape, use it. It sure is less efficient, but the cost is negligible. This allows to factor rules that are alike. And to factor some start-condition clauses. * tests/input.at (Stray $ or @): New. * NEWS: Document it. 2012-07-27 Akim Demaille news: schedule the removal of the ";" hack scan-code.l is significantly more complex because of this. * NEWS: Doc it. 2012-07-27 Akim Demaille style changes in the scanners * src/scan-code.l, src/scan-skel.l: Use a more traditional indentation style for start-conditions. Prefer "continue" to a comment, for empty actions. Strip useless {}. Remove useless start-condition clauses. 2012-07-26 Akim Demaille regen 2012-07-26 Akim Demaille support $$ in printers and destructors * src/scan-code.l (SC_SYMBOL_ACTION): Accept $$, not just $$. * data/c.m4 (b4_dollar_dollar_): New. (b4_symbol_actions): Let b4_dollar_dollar use b4_dollar_dollar_. * NEWS, doc/bison.texi: Document it. * tests/actions.at: Check this for C and C++. 2012-07-26 Akim Demaille scan-code: factor the handling of the type in $$ * src/scan-code.l (fetch_type_name): New. (handle_action_dollar): Use it. (gt_ptr): Remove, useless. 2012-07-26 Akim Demaille muscles: fix another occurrence of unescaped type name * src/output.c (quoted_output): Split into... (quoted_output, string_output): these. Use the former when outputting a type_name. * tests/input.at: Check this case. * src/symtab.h: Comment changes. 2012-07-26 Akim Demaille glr.cc: fix the handling of yydebug * data/glr.cc (yydebug_): Remove, unused. (set_debug_level, debug_level): Work on yydebug instead. * doc/bison.texi, NEWS: Document this. 2012-07-26 Akim Demaille gnulib: update 2012-07-26 Akim Demaille formatting changes * src/symtab.h: here. 2012-07-26 Akim Demaille tests: fix an assertion * tests/local.at (AT_YYLEX_DEFINE): Be sure to check the array against its length, not its size in bytes. 2012-07-26 Akim Demaille tests: adjust to GCC 4.8, which displays caret errors With GCC 4.8, the tests on synclines are skipped. Transform input.y:1:2: error: #error "1" #error "1" ^ into input.y:1: #error "1" * tests/synclines.at (AT_SYNCLINES_COMPILE): Do it, using Perl instead of sed. 2012-07-26 Akim Demaille be sure to properly escape type names * src/scan-code.l: Use obstack_quote when passing type_name to m4. * tests/input.at (Code injection): New. * NEWS: Document it. Thanks to Paul Eggert for the wording. 2012-07-26 Akim Demaille obstack_quote: escape and quote for M4 * src/system.h (obstack_quote): New. * src/muscle-tab.c: Use it instead of obstack_escape where applicable. * src/scan-code.l: Since obstack_quote supports NULL, leave type_name as NULL instead of defaulting to "". 2012-07-26 Akim Demaille muscles: shuffle responsabilities * src/muscle-tab.c (muscle_boundary_grow): Be in charge of quotation, instead of leaving this to the caller. 2012-07-26 Akim Demaille muscles: make private functions static * src/muscle-tab.h, src/muscle-tab.c (muscle_boundary_grow) (muscle_location_grow): Now static. 2012-07-26 Akim Demaille muscles: rename private functions/macros * src/muscle-tab.c (MUSCLE_COMMON_DECODE, muscle_string_decode) (muscle_location_decode): Not related to muscles, rename as... (COMMON_DECODE, string_decode, location_decode): these. 2012-07-26 Akim Demaille obstack_escape: escape M4 characters * src/muscle-tab.h (MUSCLE_OBSTACK_SGROW): This is not related to muscles, so move to, and rename as... * src/system.h (obstack_escape): this. Adjust dependencies. 2012-07-26 Akim Demaille remove dead macro * src/system.h (DEFAULT_TMPDIR): Remove, unused. 2012-07-26 Akim Demaille maint: style changes * src/scan-code.l: Remove useless braces. Formatting changes. Prefer NULL to 0. * src/muscle-tab.c, src/system.h: Formatting changes. 2012-07-24 Akim Demaille doc: avoid problems with case insensitive file systems makeinfo --html generates index.html, and the node "Index" will result in Index.html. On case insensitive file systems, such as on Mac OS X by default, this results in a single, invalid, file (Texinfo 4.13). See http://lists.gnu.org/archive/html/bug-texinfo/2012-07/msg00032.html * doc/bison.texi (Index): Rename as... (Index of Terms): this. 2012-07-24 Stefano Lattarini (tiny change) configure: fix botched quoting * configure.ac: In the AC_SUBST call on 'VALGRIND_PREBISON'. Without this change, when running ./configure, I see: ... checking for valgrind... valgrind ./configure: line 35221: -q: command not found checking for Java compiler... gcj -C -fsource=1.3 -ftarget=1.4 ... 2012-07-24 Akim Demaille regen 2012-07-24 Akim Demaille yystype, yyltype: remove. * data/c.m4: here. * NEWS: Doc it. 2012-07-22 Akim Demaille regen 2012-07-22 Akim Demaille YYFAIL: remove. * data/lalr1.java, data/yacc.c, src/scan-code.l: Remove YYFAIL support. * NEWS, TODO: Update. 2012-07-22 Akim Demaille todo: update. * TODO: obsolete items. 2012-07-22 Akim Demaille regen. 2012-07-22 Akim Demaille space changes. * data/bison.m4 (b4_symbol_action): Remove spurious eol in the output. 2012-07-22 Akim Demaille parser: fix %printer usage. * src/parse-gram.y: Instead of stderr, using yyo. 2012-07-22 Akim Demaille parser: factor the handling of code_props * src/parse-gram.y: Now that %printer and %destructor are treated equally, let... (code_props_type): handle them. 2012-07-22 Akim Demaille parser: factor handling of type tags * src/parse-gram.y: Now that <*> and <> are processed like regular tags, let... (tag): handle them. 2012-07-22 Akim Demaille regen. 2012-07-22 Akim Demaille simplify the handling of <> and <*>'s code_props. Currently they are treated in separated variables, contrary to other code_props. This duplicates code (and messages for translators) uselessly, as demonstrated by the fact that thanks to this patch, now useless <*> and <> code_props are reported like the others. * src/parse-gram.y (generic_symlist_item): Treat "<*>" and "<>" as regular type tags. * src/symlist.h, src/symlist.c (symbol_list_default_tagged_new) (symbol_list_default_tagless_new,SYMLIST_DEFAULT_TAGGED) (SYMLIST_DEFAULT_TAGLESS): Remove. * src/symtab.h, src/symtab.c (default_tagged_code_props) (default_tagless_code_props, default_tagged_code_props_set) (default_tagless_code_props_set): Remove. (symbol_code_props_get): Default to <*> or <>'s code_props. * tests/actions.at: Complete expected errors: there are new warnings. * tests/input.at: Likewise. (Useless printers or destructors): Extend. 2012-07-22 Akim Demaille allow modification on retrieved code_props. The logic to compute the %printer or %destructor to used (i.e., a code_props) is implemented twice: one, of course, in symbol_code_props_get, and another time in symbol_check_defined to record the fact that a code_props is used (so that we can reported unused ones). Let the former use the latter. I would probably use "mutable" in C++ and keep these guys const, but this is C. And casting away constness triggers warnings. * src/scan-code.h, src/scan-code.l (code_props_none): Is not const. * src/symtab.h, src/symtab.c (symbol_code_props_get): The symbol is not const. (symbol_check_defined): Use it. 2012-07-22 Akim Demaille maint: regen. 2012-07-22 Akim Demaille maint: fix bison's own header guards. Because I'm using a VPATH build with an absolute srcdir, I have GRAM__USERS_AKIM_SRC_GNU_BISON_SRC_PARSE_GRAM_H. Before, I was using a relative srcdir, and had GRAM_______SRC_PARSE_GRAM_H (coming from ../../). Let it be GRAM_SRC_PARSE_GRAM_H. * tests/bison.in: Do not depend on the value of $top_srcdir for Bison itself. If we were to use relative paths from .c to .y, we would not have this problem. 2012-07-22 Akim Demaille maint: add missing const. * src/symtab.h, src/symtab.c (symbol_print): here. 2012-07-22 Akim Demaille style changes. * src/parse-gram.y, src/symtab.c: Space changes. * src/symtab.h: Comment changes. 2012-07-22 Akim Demaille autoconf: update. * submodules/autoconf: here. No significant changes for our use of m4sugar.m4. 2012-07-22 Akim Demaille output: no longer use b4_tokens. * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, data/yacc.c: Since the previous commit, b4_tokens_define and the like no longer need b4_tokens. * src/output.c (token_definitions_output): Remove. 2012-07-22 Akim Demaille output: use the token list to define the yytokentype There are currently two systems used to pass information about tokens to m4: the original one, and another, which is used for instance for printers and destructors, variants etc. Move to using only the latter. * data/bison.m4 (b4_symbol_map, b4_token_visible_if) (b4_token_has_definition, b4_any_token_visible_if, b4_token_format): New. * data/c++.m4, data/c.m4, data/glr.c, data/java.m4: Adjust to use them. 2012-07-20 Akim Demaille tests: fix VPATH issue * examples/test: With an absolute VPATH build, "../" is incorrect. 2012-07-20 Akim Demaille news: fix typo. * NEWS: here. Reported by Ben Pfaff. 2012-07-19 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: update gnu-web-doc-update. maint: post-release administrivia version 2.6 maint: prepare for release 2.6 maint: post-release administrivia version 2.5.91 maint: prepare NEWS. maint: fix spaces. tests: adjust to case where the C compiler is actually a C++ compiler tests: fix dependencies doc: fix Texinfo command maint: Valgrind on OS X. tests: be sure that backups are safe. maint: dead comment. tests: refactor for legibility. tests: refactor the bison invocations. maint: fix syntax-check ignore patterns. gnulib: update gnulib: update. gnulib: update 2012-07-19 Akim Demaille maint: update gnu-web-doc-update. * gnulib: here. 2012-07-19 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-07-19 Akim Demaille version 2.6 * NEWS: Record release date. 2012-07-19 Akim Demaille maint: prepare for release 2.6 * NEWS: here. 2012-07-18 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-07-18 Akim Demaille version 2.5.91 * NEWS: Record release date. 2012-07-18 Akim Demaille maint: prepare NEWS. 2012-07-18 Akim Demaille maint: fix spaces. * build-aux/Makefile.am: here. 2012-07-18 Akim Demaille tests: adjust to case where the C compiler is actually a C++ compiler * tests/atlocal.in (CC_IS_CXX): New. * tests/headers.at (Several parsers): Use it. 2012-07-18 Akim Demaille tests: fix dependencies * tests/Makefile.am: we need atconfig and atlocal to be up to date when calling testsuite. 2012-07-18 Akim Demaille doc: fix Texinfo command * doc/bison.texi: In parens, use @pxref. 2012-07-18 Akim Demaille maint: Valgrind on OS X. * configure.ac (VALGRIND_PREBISON): New. * tests/Makefile.am (maintainer-check-valgrind): Use it. * etc/darwin11.4.0.supp: New. * configure.ac, etc/Makefile.am: Use it. * configure.ac: Disable Valgrind on Mac OS X. * README-hacking: Explain why. 2012-07-17 Akim Demaille tests: be sure that backups are safe. * tests/local.at (at_save_special_files): here. 2012-07-17 Akim Demaille maint: dead comment. * etc/README: here. 2012-07-17 Akim Demaille tests: refactor for legibility. * tests/local.at (AT_BISON_CHECK_WARNINGS, AT_BISON_CHECK_WARNINGS_): New. 2012-07-17 Akim Demaille tests: refactor the bison invocations. * tests/local.at (m4_null_if, AT_BISON_CHECK_): New. 2012-07-17 Akim Demaille maint: fix syntax-check ignore patterns. * cfg.mk: here. 2012-07-17 Akim Demaille gnulib: update 2012-07-16 Akim Demaille gnulib: update. * gnulib: Update so that gitlog-to-changelog support --srcdir. * Makefile.am: Use it. 2012-07-10 Akim Demaille gnulib: update * bootstrap, build-aux/.gitignore, gnulib, m4/.gitignore: update. 2012-07-06 Akim Demaille maint: minor fixes * NEWS: restore missing entry. * cfg.mk: Adjust to *.texinfo -> *.texi. * src/symtab.c: Spaces fixes. 2012-07-06 Akim Demaille tests: address g++-4.8 warnings. list.yy: In function 'yy::parser::symbol_type yylex()': list.yy:107:29: error: typedef 'token' locally defined but not used [-Werror=unused-local-typedefs] typedef yy::parser::token token; ^ * tests/c++.at (AT_CHECK_VARIANTS): here. 2012-07-06 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: update release instructions maint: post-release administrivia version 2.5.90 build: fix gen-ChangeLog call. gnulib: update. tests: fix SKIP_IF for Java. api.prefix: incompatible with %name-prefix. api.prefix: strengthen the tests and fix push-parsers. skeletons: style changes. NEWS: minor changes. api.prefix: improve the documentation for YYDEBUG. gnulib: update. 2012-07-06 Akim Demaille maint: update release instructions * README-hacking: here. 2012-07-05 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-07-05 Akim Demaille version 2.5.90 * NEWS: Record release date. 2012-07-05 Akim Demaille build: fix gen-ChangeLog call. * Makefile.am: Be sure to catch errors, and fix option name 2012-07-05 Akim Demaille gnulib: update. * gnulib/build-aux/do-release-commit-and-tag: Fix. 2012-07-05 Akim Demaille tests: fix SKIP_IF for Java. * tests/local.at (AT_JAVA_COMPILE): here. 2012-07-05 Akim Demaille api.prefix: incompatible with %name-prefix. * data/bison.m4: Make it incompatible. * tests/input.at: Check that it is. 2012-07-05 Akim Demaille api.prefix: strengthen the tests and fix push-parsers. * tests/calc.at: Check api.prefix in addition to %name-prefix. * tests/headers.at: Check push parsers and pure interface. * tests/local.at: Use YYLTYPE renamed. * data/yacc.c (b4_declare_yyparse_push_): Handle api.prefix. * doc/bison.texi: Style changes. 2012-07-05 Akim Demaille skeletons: style changes. * data/bison.m4: Define default values after having defined the support macros. Kill a dead comment. 2012-07-05 Akim Demaille NEWS: minor changes. * NEWS: style changes. 2012-07-05 Akim Demaille api.prefix: improve the documentation for YYDEBUG. * doc/bison.texi: Explain how api.prefix is applied to YYDEBUG. 2012-07-05 Akim Demaille gnulib: update. * bootstrap, gnulib: Update. * cfg.mk (syntax-check): Don't check "error" usage in bison.texi. 2012-07-04 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: tests: headers.at: strengthen. glr.cc: do not override C++ definitions by C macros. YYLLOC_DEFAULT: factor, and don't export it in headers. api.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc. tests: portability fixes. c++: fewer #includes in the headers. glr.cc: formatting changes. tests: more logs. api.prefix: also rename YYDEBUG. 2012-07-04 Akim Demaille tests: headers.at: strengthen. * tests/headers.at (Several headers): Be stricter when checking the exported macros. 2012-07-04 Akim Demaille glr.cc: do not override C++ definitions by C macros. * data/glr.c: here. * data/glr.cc: Fix overquotation. * tests/headers.at: Comment changes. 2012-07-04 Akim Demaille YYLLOC_DEFAULT: factor, and don't export it in headers. * data/c++.m4, data/c.m4 (b4_yylloc_default_define): New. * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it. * data/glr.cc: Do not define YYLLOC_DEFAULT in the header file, but in the implementation one. 2012-07-04 Akim Demaille api.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc. The following mixture is insane: #define YYSTYPE_IS_TRIVIAL PREFIX_STYPE_IS_TRIVIAL #if (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL) since, of course YYSTYPE_IS_TRIVIAL is defined. Instead we could define YYSTYPE_IS_TRIVIAL as PREFIX_STYPE_IS_TRIVIAL only when the later is defined, but let's avoid stacking CPP on top of M4: rather, use #if (defined PREFIX_STYPE_IS_TRIVIAL && PREFIX_STYPE_IS_TRIVIAL) * data/glr.c, data/yacc.c: Use YYSTYPE_IS_TRIVIAL, YYSTYPE_IS_DECLARED, YYLTYPE_IS_TRIVIAL and YYLTYPE_IS_DECLARED under their api.prefix-renamed name. 2012-07-04 Akim Demaille tests: portability fixes. Reported by Hydra. * tests/headers.at (Several headers): Be sure to include config.h in the files to compile. 2012-07-04 Akim Demaille c++: fewer #includes in the headers. * data/lalr1.cc: Define YY_NULL in the *.cc file, it is not needed in the header. * data/location.cc: iosfwd suffices. 2012-07-04 Akim Demaille glr.cc: formatting changes. * data/glr.cc: here. 2012-07-04 Akim Demaille tests: more logs. * tests/headers.at (Several parsers): Here. 2012-07-04 Akim Demaille api.prefix: also rename YYDEBUG. The testsuite in master has shown weird errors for the "Mulitple Parsers" tests: the caller of p5.parse() received some apparently random value, while tracing p5.parse() showed that the function was consistently returning 0. It happens when mixing several parser headers, some generated without %debug, others with. In particular the C++ parser was generated with %debug, i.e., with: #ifndef YYDEBUG # define YYDEBUG 1 #endif and compiled separatedly. Yet, its header was included after the one of another parser, this time without %debug, i.e., with #ifndef YYDEBUG # define YYDEBUG 0 #endif in its header. As a result, the parser was compiled with YYDEBUG set, but its header was used without. Since the layout of the objects are then completely different, boom. Therefore, do not change the value of YYDEBUG. Rather, use it as a default value for DEBUG. * data/c.m4 (b4_YYDEBUG_define): New. (b4_declare_yydebug): Rename as... (b4_yydebug_declare): this, for consistency. * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it. * NEWS: Document it. 2012-07-02 Akim Demaille formatting changes. * data/lalr1.cc: here. 2012-07-02 Akim Demaille NEWS: spell fixes. * NEWS: here. Reported by Stefano Lattarini. 2012-07-02 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: NEWS: spell check. api.prefix. 2012-07-02 Akim Demaille NEWS: spell check. * NEWS: here. 2012-06-29 Akim Demaille api.prefix. * data/c.m4 (b4_api_prefix, b4_api_PREFIX): New. (b4_prefix, b4_union_name, b4_token_enums, b4_declare_yylstype): Use them. * data/glr.c, data/yacc.c, data/glr.cc, data/lalr1.cc: Use them to change the prefix of exported preprocessor symbols. * src/getargs.c (usage): Ditto. * tests/headers.at (Several parsers): New. * tests/local.at (AT_API_PREFIX): New. AT_YYSTYPE, AT_YYLTYPE): Adjust. * doc/bison.texi (Multiple Parsers): Move documentation of %name-prefix to... (Table of Symbols): here. (Multiple Parsers): Document api.prefix. (%define Summary): Point to it. Use @code for variable names. (Bison Options): -p/--name-prefix are obsoleted. * NEWS: Announce api.prefix. 2012-06-29 Victor Santet warnings: display warnings categories * src/complain.c (error_message): Call 'warnings_print_categories'. * src/gram.c (grammar_rules_useless_report): Display itself warning category. * tests/actions.at, tests/conflicts.at, tests/existing.at, tests/input.at, tests/named-refs.at, tests/output.at, tests/reduce.at, tests/regression.at, tests/skeletons.at: Adjust. * NEWS: Document this. 2012-06-29 Victor Santet warnings: be ready to print warnings categories A function to print warnings categories, like -Wyacc, -Wother, etc. * src/complain.h, src/complain.c (print_warning_categories): New function. * src/output.c (ARRAY_CARDINALITY): Move it to file 'src/system.h'. * src/complain.h (enum warnings): New value, 'silent', "complain" must not display the warning type. 2012-06-29 Akim Demaille maint: prepare forthcoming changes * src/gram.c (rule_rhs_print): Do not print new line anymore. (rule_print): Make it static. * src/closure.c, src/derives.c, src/gram.c: Adjust. 2012-06-29 Victor Santet style changes * src/complain.c, src/reader.c, src/reduce.c, src/main.c: Fix indentation. Simplify a bit. 2012-06-28 Akim Demaille regen. 2012-06-28 Victor Santet warnings: factoring: complaints * src/complain.c (error_message): Accept warning categories (an integer) as argument. Location is a 'const location *' instead of 'location *'. (ERROR_MESSAGE): Delete it. * src/complain.c, src/complain.h (complains): New function. (complain, complain_at, complain_at_indent): Generic functions for complaints. Call 'complains'. (warn_at, warn_at_indent, warn, yacc_at, midrule_value_at) (fatal_at, fatal): Delete them. Adjust dependencies. * src/complain.h (enum warnings): New fields 'complaint' and 'fatal'. * bootstrap.conf (XGETTEXT_OPTIONS): Adjust. 2012-06-28 Victor Santet warnings: move them to complain.c. * src/getargs.h, src/getargs.c (warnings, warnings_flags): Move to... * src/complain.h, src/complain.c: Here. 2012-06-28 Victor Santet warnings: rename the categories Forthcoming changes will use the warning categories much more often, so shortening them will improve readability. * src/complain.c, src/complain.h, src/conflicts.c, * src/getargs.c, src/getargs.h, src/gram.c (enum warnings): s/warnings_/W/g. 2012-06-28 Akim Demaille fix merge. * data/bison.m4: Use b4_error_verbose_if after it was defined. 2012-06-28 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: tests: use the generalized default yylex. tests: AT_YYERROR_DEFINE: prepare for list of ints. skeletons: no longer define YYLSP_NEEDED. c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE. 2012-06-28 Akim Demaille tests: use the generalized default yylex. * tests/actions.at, tests/glr-regression.at, tests/regression.at: here. 2012-06-28 Akim Demaille tests: AT_YYERROR_DEFINE: prepare for list of ints. * tests/local.at (AT_YYERROR_DEFINE): Don't add quotes, check their presence to detect char/int types. * tests/actions.at, tests/conflicts.at, tests/glr-regression.at, * tests/push.at, tests/regression.at: Adjust. 2012-06-27 Akim Demaille skeletons: no longer define YYLSP_NEEDED. * data/c.m4, data/glr.cc: here. * NEWS, TODO: Adjust. 2012-06-27 Akim Demaille c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE. * src/output.c (prepare_symbols): Do not define b4_token_table. (prepare): Define b4_token_table_flag. * data/bison.m4 (b4_token_table_if): New. Arm it when error-verbose. * data/glr.c, data/yacc.c (YYTOKEN_TABLE): Remove. Use m4. * data/lalr1.cc: Likewise. (YYERROR_VERBOSE): Remove. * NEWS, doc/bison.texi: Document this. 2012-06-26 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: use *.texi. 2012-06-26 Akim Demaille maint: use *.texi. This is more consistent with the other packages, and Automake-NG supports only *.texi. * doc/bison.texinfo: Rename as... * doc/bison.texi: this. * doc/Makefile.am, examples/calc++/Makefile.am: Adjust. 2012-06-26 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: tests: do not output m4 set up. tests: use the generic yyerror function. tests: use assert instead of plain abort. tests: improve the generic yylex implementation. tests: generalize the compilation macros. tests: fix confusion between api.prefix and name-prefix. maint: gitignores. yacc: work around the ylwrap limitation. 2012-06-26 Victor Santet warnings: raise warning for useless printers or destructors * src/scan-code.h (code_props): Add field 'is_used'. (CODE_PROPS_NONE_INIT): Adjust. * src/scan-code.l (code_props_plain_init, code_props_symbol_action_init) (code_props_rule_action_init): Instead of implementing several times the initialization of the code_props structures, use code_props_none_init. * src/symtab.c (symbol_check_defined): If a symbol does not have a destructor (resp. printer) but has a type which has a destructor (resp. printer), then set field 'is_used' to true. (semantic_type_check_defined): If a type has a destructor (resp. printer) but all symbols of this type have already a destructor (resp. printer), then raise a warning. * tests/input.at (Useless printers or destructors): New. 2012-06-26 Akim Demaille tests: do not output m4 set up. * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use a diversion to avoid outputting comments etc. Removes 17k lines from testsuite (10% of the number of lines). 2012-06-26 Akim Demaille tests: use the generic yyerror function. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Factor. Use AT_YYERROR_DEFINE. Therefore, instead of using stdout, use and check stderr. * tests/glr-regression.at (Uninitialized location when reporting ambiguity): Use AT_YYERROR_DEFINE. 2012-06-26 Akim Demaille tests: use assert instead of plain abort. * tests/actions.at, tests/calc.at, tests/conflicts.at, * tests/cxx-type.at, tests/glr-regression.at, tests/input.at, * tests/named-refs.at, tests/regression.at, tests/torture.at, * tests/local.at: Prefer assert to abort. 2012-06-26 Akim Demaille tests: improve the generic yylex implementation. * tests/local.at (AT_YYSTYPE, AT_YYLTYPE): New. (AT_YYLEX_FORMALS): Use them. (AT_YYLEX_DEFINE): Be independent of the location implementation. 2012-06-26 Akim Demaille tests: generalize the compilation macros. * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): If OUTPUT ends with ".o", then append the "natural" extension for the input file (.c or .cc). If there is no source, pass -c. * tests/headers.at, tests/input.at, tests/regression.at: Adjust. 2012-06-26 Akim Demaille tests: fix confusion between api.prefix and name-prefix. * tests/local.at (AT_NAME_PREFIX): Take api.prefix into account. (AT_API_PREFIX): Rename as... (AT_API_prefix): this. Do not take %name-prefix into account. Fix misuses. 2012-06-26 Akim Demaille maint: gitignores. 2012-06-25 Victor Santet warnings: useless semantic types * src/symtab.h (symbol_list): Represent semantic types as structure 'semantic_type'. * src/symlist.c (symbol_list_type_new): Allocate this structure. (symbol_list_code_props_set): Set this semantic type's status to used if it was not declared. * src/symtab.c (semantic_types_sorted): New. (semantic_type_new): Set the new semantic type's location appropriately. (symbol_check_defined): If a symbol has a type, then set this type's status to "declared". (semantic_type_check_defined, semantic_type_check_defined_processor): Same as symbol_check_defined and symbol_check_defined_processor, but for semantic types. (symbol_check_defined): Check semantic types usefulness. * src/symtab.h (semantic_type): New fields 'location' and 'status'. * src/symtab.h, src/symtab.c (semantic_type_new) (semantic_type_from_uniqstr, semantic_type_get): Accept a location as a supplementary argument. * tests/input.at (Unassociated types used for printer of destructor): New. * tests/c++.at (AT_CHECK_VARIANTS): Fix an error caught by this commit. 2012-06-25 Akim Demaille yacc: work around the ylwrap limitation. * data/yacc.c (b4_shared_declarations): Include the header guards. Do not include the header in the *.c file, duplicate it. * NEWS (Future Changes): Extend, and announce the forthcoming change about the use of the parser header. 2012-06-25 Akim Demaille fix for printers and destructors. The previous "code_props: factor more" patch sends has_%printer etc. to m4, instead of has_printer. * src/output.c (prepare_symbol_definitions): Fix value of pname. 2012-06-25 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: tests: more uniformity. tests: handle locations in a more generic way. tests: handle locations in the generic yyerror functions. tests: fix AT_CHECK_CALC. tests: improve infrastructure tests: factor. skeletons: minor style changes tests: AT_LANG. c skeletons: factor the declaration of yylloc and yylval. news: condemn YYPARSE_PARAM and YYLEX_PARAM. maint: regen. 2012-06-22 Akim Demaille code_props: factor more. * src/symtab.h, src/symtab.c (code_props_type_string): No longer static. * src/output.c (CODE_PROPS): Remove, we can now iterate on both the destructor and the printer. (SET_KEY2): New. 2012-06-22 Victor Santet maint: factor the handling of %printer and %destructor There is too much code duplication between %printer and %destructor. We used to have two functions for each action: the first one for destructors, the second one for printers. Factor using a 'code_props_type', and an array of code_props instead of two members. * src/symlist.h, src/symlist.c (symbol_list_destructor_set) (symbol_list_printer_set): Fuse into... (symbol_list_code_props_set): this. * src/symtab.h, src/symtab.c (default_tagged_destructor) (default_tagged_printer): Fuse into... (default_tagged_code_props): this. (default_tagless_destructor, default_tagless_printer) (default_tagless_code_props): Likewise. (code_props_type_string): new. (symbol_destructor_set, symbol_destructor_get, semantic_type_destructor_set) (default_tagged_destructor_set, default_tagless_destructor_set) (symbol_printer_set, symbol_printer_get, semantic_type_printer_set) (default_tagged_printer_set, default_tagless_printer_set): Replace by... (symbol_code_props_set, symbol_code_props_get, semantic_type_code_props_set) (default_tagged_code_props_set, default_tagless_code_props_set): these. * src/parse-gram.y (grammar_declaration): Adjust. * src/output.c (CODE_PROP, grammar_declaration): Ditto. * src/reader.c (symbol_should_be_used): Ditto. 2012-06-22 Akim Demaille tests: more uniformity. * tests/local.at (AT_LEX_FORMALS, AT_LEX_ARGS, AT_LEX_PRE_FORMALS) (AT_LEX_PRE_ARGS): Rename as... (AT_YYLEX_FORMALS, AT_YYLEX_ARGS, AT_YYLEX_PRE_FORMALS) (AT_YYLEX_PRE_ARGS): these, for consistency. (AT_API_PREFIX): Take %name-prefix into account. (AT_YYLEX_PROTOTYPE): New. Use it. * tests/actions.at, tests/calc.at, tests/cxx-type.at: Adjust to use them. 2012-06-22 Akim Demaille tests: handle locations in a more generic way. * tests/local.at (AT_YYERROR_PROTOTYPE): New. Use it. * tests/cxx-type.at: Extensive revamp to use a more traditional quotation scheme, and to use the generic yyerror implementation. Prefer Autotest macros to CPP macros. * tests/java.at: . 2012-06-22 Akim Demaille tests: handle locations in the generic yyerror functions. * tests/local.at (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE) (AT_YYERROR_DEFINE): Handle locations for C and C++. * tests/calc.at: Use it for C++ (as C has extra arguments which are not yet handled by AT_BISON_OPTION_PUSHDEFS). * tests/actions.at: Adjust. 2012-06-22 Akim Demaille tests: fix AT_CHECK_CALC. * tests/calc.at (AT_CHECK_CALC): Contrary to its documentation, the test was skipped if given a second argument. Unused feature, remove it. 2012-06-22 Akim Demaille tests: improve infrastructure * tests/local.at (AT_LANG): Use c++ instead of cxx for C++. Adjust dependencies. (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE): Issue nothing for C++/Java. (AT_YYERROR_DEFINE): Use m4_case. (AT_JAVA_COMPILE): Use AT_SKIP_IF. 2012-06-21 Akim Demaille tests: factor. * tests/glr-regression.at, tests/output.at, tests/push.at, * tests/regression.at, tests/torture.at, tests/actions.at: Use AT_YYLEX_* and AT_YYERROR_*. 2012-06-21 Akim Demaille skeletons: minor style changes * data/glr.c, data/yacc.c: here. 2012-06-21 Akim Demaille tests: AT_LANG. * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Define/undefine AT_LANGE (AT_LANG_COMPILE): New. (AT_FULL_COMPILE): Use AT_LANG. 2012-06-21 Victor Santet symtab: refactoring Prepares forthcoming changes. * src/symtab.c (symbols_do): Accept the hash table and the sorted list as arguments. Adjust dependencies. 2012-06-21 Akim Demaille maint: address syntax-check issues. * examples/calc++/local.mk: Space changes. * src/files.c: Avoid unmarked_diagnostics. * src/output.c: Remove useless include. 2012-06-21 Akim Demaille c skeletons: factor the declaration of yylloc and yylval. There is one difference: now, even without --defines, we generate extern declarations for these variables. The factoring is worth it. * data/c.m4 (b4_declare_yylstype): Declare them. * data/glr.c, data/yacc.c: Adjust. 2012-06-21 Akim Demaille news: condemn YYPARSE_PARAM and YYLEX_PARAM. * NEWS: here. (Bison 1.875): Add %parse-param and %lex-param. * doc/bison.texinfo: Spello. 2012-06-20 Akim Demaille fix warnings for useless %printer/%destructor The previous commit, which turns into a warning what used to be an error: %printer {} foo; %% exp: '0'; has two shortcomings: the warning is way too long (foo is reported to be useless later), and besides, it also turns into a warning much more serious errors: %printer {} foo; %% exp: foo; Reduce the amount to warnings in the first case, restore the error in the second. * src/symtab.h (status): Add a new inital state: undeclared. * src/symtab.c (symbol_new): Initialize to undeclared. (symbol_class_set): Simplify the logic of the code that neutralize the "redeclared" warning after the "redefined" one. (symbol_check_defined): "undeclared" is also an error. * src/reader.c (grammar_current_rule_symbol_append): Symbols appearing in a rule are "needed". * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set): An unknown symbol appearing in a %printer/%destructor is "used". * src/reduce.c (nonterminals_reduce): Do not report as "useless" symbols that are not used (e.g., those that for instance appeared only in a %printer). * tests/input.at (Undeclared symbols used for a printer or destructor): Improve the cover the cases described above. 2012-06-20 Akim Demaille gitignore: test-driver. 2012-06-20 Akim Demaille maint: style changes. * src/reduce.c (reduce_grammar_tables): Define variables with their initial value. 2012-06-20 Akim Demaille news: fixes. * NEWS: Fix spelling. 2012-06-20 Victor Santet warnings: used but undeclared symbols are warnings We used to raise an error if a symbol appears only in a %printer or %destructor. Make it a warning. * src/symtab.h (status): New enum. (symbol): Replace the binary "declared" with the three-state "status". Adjust dependencies. * src/symtab.c (symbol_check_defined): Needed symbols are an error, whereas "used" are simply warnings. * src/symlist.c (symbol_list_destructor_set, symbol_list_printer): Set symbol status to 'used' when associated to destructors or printers. * input.at (Undeclared symbols used for a printer or destructor): New. 2012-06-20 Akim Demaille maint: regen. * Makefile.am (regen): New target. 2012-06-20 Akim Demaille regen. 2012-06-20 Akim Demaille maint: regen. * Makefile.am (regen): New target. 2012-06-19 Akim Demaille tests: enhance AT_YYERROR_DEFINE. * tests/local.at: Handle the fact that locations are no longer needed with lalr1.cc. 2012-06-19 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: maint: formatting changes. tests: support api.prefix. tests: pacify font-lock-mode. tests: remove test covered elsewhere. tests: factor the declaration/definition of yyerror and yylex. regen. tests: portability issues. tests: call the parser from another compilation unit. glr.c, yacc.c: declare yydebug in the header. skeletons: use header guards. tests: improve AT_FULL_COMPILE. tests: reorder. tests: strengthen the test on generated headers inclusion yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it. yacc.c: factor. 2012-06-19 Akim Demaille maint: formatting changes. * NEWS: Fix indentation of code snippets. Untabify. 2012-06-17 Akim Demaille tests: support api.prefix. * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Define AT_API_PREFIX. (AT_YYERROR_DEFINE, AT_YYERROR_DECLARE_EXTERN, AT_YYLEX_DECLARE_EXTERN) (AT_YYLEX_DEFINE): Use it. * tests/input.at, tests/regression.at, tests/torture.at: Add AT_BISON_OPTION_PUSHDEFS/POPDEFS. 2012-06-17 Akim Demaille tests: pacify font-lock-mode. * tests/local.at: here. 2012-06-17 Akim Demaille tests: remove test covered elsewhere. * tests/headers.at (%union and --defines): Remove, pretty useless and insignificant. 2012-06-17 Akim Demaille tests: factor the declaration/definition of yyerror and yylex. * tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DECLARE_EXTERN) (AT_YYERROR_DEFINE, AT_YYLEX_DECLARE, AT_YYLEX_DECLARE_EXTERN) (AT_YYLEX_DEFINE): New. Must be used inside AT_BISON_OPTION_PUSHDEFS/POPDEFS pair. * tests/actions.at, tests/conflicts.at, tests/glr-regression.at, * tests/headers.at, tests/input.at, tests/named-refs.at, * tests/regression.at, tests/skeletons.at, tests/synclines.at, * tests/torture.at: Use them. 2012-06-17 Akim Demaille regen. 2012-06-17 Akim Demaille tests: portability issues. * tests/calc.at (AT_CALC_MAIN): Missing include reported by Hydra. 2012-06-15 Akim Demaille tests: call the parser from another compilation unit. In order to improve the testing of %defines, which exports the interface of the generated parser, change the calc.at tests so that when %defines is passed, main will be in another compilation unit. It loads the generated header. * tests/calc.at (AT_CALC_MAIN): New. Includes the definition of the global variables. Therefore, now declare them from the %requires section of the parser. Adjust to yydebug and yyparse being renamed by %name-prefix. 2012-06-15 Akim Demaille glr.c, yacc.c: declare yydebug in the header. * data/c.m4 (b4_declare_yydebug): New. * data/glr.c, data/yacc.c (b4_shared_declarations): Use it. Remove the corresponding code from the parser body. * NEWS: Doc this. 2012-06-15 Akim Demaille skeletons: use header guards. * data/glr.c, data/glr.cc, data/yacc.c: here. * NEWS: Document it. 2012-06-15 Akim Demaille tests: improve AT_FULL_COMPILE. * tests/local.at: Accept a third argument. Simplify quotation pattern. Calls for better refactoring, but will suffice for a while. 2012-06-15 Akim Demaille tests: reorder. * tests/calc.at (power): Move its definition, as a preparation for forthcoming changes. And space changes. 2012-06-15 Akim Demaille tests: strengthen the test on generated headers inclusion * tests/headers.at (AT_TEST_CPP_GUARD_H): Accept Bison directives. (Invalid CPP headers): Check glr. 2012-06-15 Akim Demaille yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it. This is already what glr.c and lalr1.cc do. * data/yacc.c: here. 2012-06-15 Akim Demaille maint: xfdopen, and scope reduction. * src/files.h, src/files.c (xfdopen): New. * src/output.c (output_skeleton): Use it. Reduce the scope of argv. 2012-06-15 Akim Demaille maint: space changes * configure.ac, src/complain.c: space changes. 2012-06-13 Akim Demaille yacc.c: factor. yacc.c used to include two almost identical sections: one for the *.h file, and another for the *.c file. The main difference is that in the *.c file we used the yy* names (as %name-prefix is handled by "#define yy* *" before), while the *.hh used * names. Keep only the later. If this is troublesome, b4_shared_declarations can easily take the desired prefix as argument. * data/yacc.c (b4_shared_declarations): New. Use it to factor duplicated declarations. 2012-06-13 Stefano Lattarini (tiny change) cosmetics: prettify names for compiled object for bison * src/local.mk (src_bison_SHORTNAME): Define to "bison". 2012-06-13 Akim Demaille lalr1.cc: spello. * data/lalr1.cc: Reported by Gilles Espinasse. 2012-06-13 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: skeletons: factor yacc.c and glr.c. glr.c: minor refactoring. tests: remove all the -On flags. maint: fix spello. maint: improve release procedure instructions. gnulib: update readme-release. maint: cfg.mk: manual title. maint: cfg.mk: simplify maint: post-release administrivia 2012-06-12 Akim Demaille skeletons: factor yacc.c and glr.c. yacc.c and glr.c share common declarations. Their YYLTYPE are exactly equal, and their YYSTYPE are sufficiently alike to be fused (its declaration was protected by YYSTYPE_IS_DECLARED in yacc.c, but not in glr.c). Besides, yacc.c duplicated the definitions of YYLTYPE and YYSTYPE (*.h/*.c). * data/c.m4 (b4_declare_yylstype): New. * data/yacc.c, data/glr.c: Use it. 2012-06-12 Akim Demaille glr.c: minor refactoring. * data/glr.c (b4_shared_declarations): Move from the generated file section, to the M4 prologue. 2012-06-12 Akim Demaille tests: remove all the -On flags. * tests/atlocal.in: Here. Reported by Gilles Espinasse. 2012-06-12 Akim Demaille maint: fix spello. * README-hacking: Here. * THANKS: Reported by Gilles Espinasse. 2012-06-12 Akim Demaille maint: improve release procedure instructions. * gnulib: Update, in particular (README-release). * bootstrap.conf: don't require gendocs, provided by gnu-web-doc-update, provided by readme-release. * README-hacking: Update accordingly. 2012-06-07 Akim Demaille gnulib: update readme-release. * gnulib (readme-release): Now includes the modules it promotes. * bootstrap.conf: Simplify accordingly. 2012-06-07 Akim Demaille maint: cfg.mk: manual title. * cfg.mk (manuel_title): New. 2012-06-07 Akim Demaille maint: cfg.mk: simplify * cfg.mk: Remove bits provided by maint.mk. 2012-06-07 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-06-05 Akim Demaille maint: an envvar equal to "00" is 0. * src/output.c (prepare): here. Reported by Paul Eggert. 2012-06-05 Akim Demaille maint: don't use mbsr?chr. Basically, revert ba60c39547a445dee3e07920931b4d7a81843868's move to mbs* functions, which was prompted by -DGNULIB_POSIXCHECK. See and following. * bootstrap.conf: No longer ask for them. * src/files.c, src/getargs.c, src/location.c, * src/parse-gram.c, src/parse-gram.y, src/scan-gram.l, * src/symtab.c: s/mbs(r?chr)/str$1/g. 2012-06-05 Akim Demaille maint: use xconcat-filename. * bootstrap.conf (gnulib_modules): Request it. * src/output.h, src/output.c (compute_pkgdatadir): Rename as... (pkgdatadir): this. Adjust dependencies. * src/output.c (output_skeleton): Reduce the scope of "in". Use xconcatenated_filename to simplify the construction of the qualified paths to m4sugar.m4, bison.m4, and the selected skeleton. There are a few minor differences: the new code uses strchr instead of mbschr (but this was not really justified), and the new code does not garantee a single slash even if $BISON_PKGDATADIR ends with several (which was considered more accurate). See the discussion at . 2012-06-05 Akim Demaille maint: minor simplification * src/output.c (prepare): Assign use_push_for_pull_flag's value at its declaration. 2012-06-05 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: version 2.5.1 NEWS: prepare for 2.5.1. maint: update release procedure maint: fix comment typos maint: post-release administrivia 2012-06-05 Akim Demaille version 2.5.1 * NEWS: Record release date. 2012-06-05 Akim Demaille NEWS: prepare for 2.5.1. * NEWS: Be compliant with do-release-commit-and-tag. 2012-06-05 Akim Demaille maint: update release procedure * bootstrap.conf: Request do-release-commit-and-tag and readme-release. * README-hacking: Adjust. 2012-06-05 Jim Meyering maint: fix comment typos Using http://github.com/lyda/misspell-check, massage its output into sed commands to perform the suggested changes. Initially, I filtered out the THRU->Through changes, because that failed to retain capitalization in the grammar token. Instead, do this manually, beforehand: sed -i s/THRU/THROUGH/ tests/existing.at git ls-files|misspellings -f -|perl -nl \ -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \ -e '($file,$n,$l,$r)=($1,$2,$3,$4); $q="'\''"; $r=~s/$q/$q\\$q$q/g;'\ -e 'print "sed -i $q${n}s!$l!$r!$q $file"'|bash 2012-05-24 Akim Demaille build: regen. 2012-05-24 Akim Demaille Merge tag 'v2.5.1_rc2' Bison 2.5.1_rc2. * tag 'v2.5.1_rc2': (34 commits) Bison 2.5.1_rc2. doc: fixes. build: fix ChangeLog generation. c++: compute the header guards. skeletons: remove support for unused directive. lalr1.cc: improve Doxygen documentation. lalr1.cc: extract stack.hh. news: convert to double quotes. space changes. build: do not prototype flex-generated functions. build: fix ChangeLog generation. Bison 2.5.1_rc1. tests: save/restore Autotest special files when checking XML support. tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES. tests: honor TESTSUITEFLAGS in all the check targets. build: do not enable c++ warnings on 0 when nullptr is not supported. maint: update gnulib. build: config.in.h. build: move silent rules. glr.c: reduce variable scopes. maint: maintainer-release-check. maint: shush a syntax-check. maint: prefer "commit message" to "log entry". command line: fix minor leaks. maint: we no longer maintain the ChangeLog. maint: fix the generation of the synclines for bison's parser. maint: regen. maint: import the xmemdup0 gnulib module. maint: remove left-over gnulib modules. maint: ignore files imported by autopoint. build: AC_PROG_LEX: use more readable variable names. maint: regen src/parse-gram.[ch] maint: simplify parse-gram.y maint: s/strncpy/memcpy/, when equivalent 2012-05-23 Akim Demaille maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2012-05-23 Akim Demaille Bison 2.5.1_rc2. * NEWS: Update. 2012-05-23 Akim Demaille doc: fixes. * doc/bison.texinfo: Fix errors spotted by syntax-check. 2012-05-23 Akim Demaille build: fix ChangeLog generation. * gnulib: Update to get newest gitlog-to-changelog. * bootstrap: Update. * Makefile.am (gen-ChangeLog): Fix for Bison's git log style. 2012-05-21 Akim Demaille c++: compute the header guards. This is a frequent request. Recently pointed out by Wei Song, . * data/c.m4 (b4_tocpp, b4_cpp_guard, b4_cpp_guard_open) (b4_cpp_guard_close): New. * data/lalr1.cc, data/location.cc, data/stack.hh: Use them. * TODO (Header Guards): Move to... * NEWS: here. Formatting changes. 2012-05-21 Akim Demaille skeletons: remove support for unused directive. * src/scan-skel.l (@dir_prefix@): Remove support, has never been used, not even in the commit that introduced it, 2b81e969ea04c1a6502928ba7e847ec8ff7dcb2f. 2012-05-21 Akim Demaille lalr1.cc: improve Doxygen documentation. * data/location.cc: Qualify file names with directory name. 2012-05-21 Akim Demaille lalr1.cc: extract stack.hh. See commit 51bacae6b58fd5c6cce861f00440dc917384625e. * data/stack.hh: New, extracted from... * data/lalr1.cc: here. * data/Makefile.am: Adjust. 2012-05-21 Akim Demaille news: convert to double quotes. * NEWS: Convert from `quoted' to "quoted". Reported by Stefano Lattarini. http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00039.html 2012-05-21 Akim Demaille space changes. * src/flex-scanner.h: Indent nested cpp directives. 2012-05-21 Akim Demaille build: do not prototype flex-generated functions. Some versions of Flex, possibly modified by the distribution package maintainers, have incompatible signatures. Since newer versions of Flex prototype their functions, avoid the conflicts in that case. Reported by Stefano Lattarini. . * src/flex-scanner.h (FLEX_VERSION_GT): New. Use it to issue prototypes for flex-generated functions only for versions up to 2.5.31, in accordance with the comment. See commit dc9701e848f27ae64b6ddcf809580998667d60f2. Use it to define yylex_destroy when needed. 2012-05-16 Akim Demaille build: fix ChangeLog generation. * Makefile.am (gen-ChangeLog): Fix for VPATH builds. 2012-05-14 Akim Demaille Bison 2.5.1_rc1. * NEWS: Update. * src/parse-gram.c, src/parse-gram.h: Regen. 2012-05-11 Akim Demaille tests: save/restore Autotest special files when checking XML support. Currently the test 248, "parse-gram.y: LALR = IELR", fails BISON_TEST_XML is set. * tests/local.at (AT_BISON_CHECK_XML): Belt: Save/restore files. * tests/regression.at (parse-gram.y: LALR = IELR): Suspenders: Don't rely on expout. Each one of these changes suffices. 2012-05-11 Akim Demaille tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES. Some of our macros play with expout and other Autotest special files, which may break their callers (e.g., currently TESTSUITEFLAGS='248 BISON_TEST_XML=1' fails). There is already some support for this. Expand it to be ready to use it elsewhere. * tests/local.at (AT_RESTORE_SPECIAL_FILES, AT_SAVE_SPECIAL_FILES) (at_save_special_files, at_restore_special_files): New. (AT_BISON_CHECK_NO_XML): Use them. 2012-05-11 Akim Demaille tests: honor TESTSUITEFLAGS in all the check targets. * tests/Makefile.am (installcheck-local): Simplify. (maintainer-check-posix, maintainer-check-valgrind): Honor $(TESTSUITEFLAGS). 2012-05-11 Akim Demaille build: do not enable c++ warnings on 0 when nullptr is not supported. * configure.ac (WARN_CXXFLAGS): Enable -Wzero-as-null-pointer-constant only when nullptr is supported.. 2012-05-11 Akim Demaille maint: update gnulib. * bootstrap, gnulib: Update. 2012-05-09 Akim Demaille build: config.in.h. Historically we used config.hin (where everybody else used config.h.in) to please DOS. Now that we use gnulib, there are already tons of files with several dots, especially *.in.h. * configure.ac: Rename config.hin as config.in.h. 2012-05-09 Akim Demaille build: move silent rules. * tests/Makefile.am: In the generation of the test suite. 2012-05-09 Akim Demaille glr.c: reduce variable scopes. * data/glr.c: Where appropriate, fuse variable declarations followed by assignments by variable declarations with a value. Where appropriate, introduce new scopes to limit variable spans. 2012-05-08 Akim Demaille maint: maintainer-release-check. * tests/Makefile.am (maintainer-release-check): New. * Makefile.am (MAINTAINER_CHECKS): New. Support maintainer-release-check. * README-hacking: Document it, and syntax-check too. 2012-05-08 Akim Demaille maint: shush a syntax-check. * cfg.mk: lib/timevar is not planned to be gnulib'ed, as it comes from GCC. 2012-05-08 Akim Demaille maint: prefer "commit message" to "log entry". * README-hacking: here. Suggested by Stefano Lattarini. 2012-05-08 Akim Demaille command line: fix minor leaks. * src/getargs.c (getargs): Free pointers before allocating them new content. 2012-05-08 Akim Demaille maint: we no longer maintain the ChangeLog. * .gitattributes: No need to merge it. * README-hacking: Update release instructions. 2012-05-06 Akim Demaille maint: fix the generation of the synclines for bison's parser. * tests/bison.in: Import from master the changes that make this script generate synclines that are independant of the builddir/srcdir user's set up. 2012-05-06 Akim Demaille maint: regen. * src/parse-gram.c, src/parse-gram.h: Regen. 2012-05-06 Akim Demaille maint: import the xmemdup0 gnulib module. * bootstrap.conf: Require this module. * src/parse-gram.y: Include xmemdup0.h. 2012-05-06 Akim Demaille maint: remove left-over gnulib modules. * bootstrap.conf (gnulib_modules): Remove pipe-posix. * lib/.gitignore, m4/.gitignore: Remove files that we no longer use. 2012-05-06 Akim Demaille maint: ignore files imported by autopoint. * m4/.gitignore: here. 2012-05-06 Akim Demaille build: AC_PROG_LEX: use more readable variable names. * m4/flex.m4 (AC_PROG_LEX): Prefer LEX_IS_FLEX to FLEX. Prefer true/false to yes/no for such variables. * configure.ac: Adjust. 2012-05-06 Jim Meyering maint: regen src/parse-gram.[ch] 2012-05-06 Jim Meyering Akim Demaille maint: simplify parse-gram.y * src/parse-gram.y (add_param): Use xmemdup0 in place of xmalloc+memcpy, and strspn in place of an open-coded loop. 2012-05-06 Jim Meyering maint: s/strncpy/memcpy/, when equivalent * src/output.c (output_skeleton): Use memcpy, not strncpy, since the source is known to fit in the destination buffer. * src/parse-gram.y (%skeleton): Likewise. 2012-05-04 Akim Demaille glr.c: formatting changes. * data/glr.c: Fix indentation. 2012-05-04 Akim Demaille Merge remote-tracking branch 'origin/master' * origin/master: glr.c: untabify. glr.cc: untabify. glr.cc: formatting changes. glr.cc: remove unused signature. glr.cc: properly declare locations are const where appropriate. doc: fix @xref. 2012-05-04 Akim Demaille glr.c: untabify. * data/glr.c: here. 2012-05-04 Akim Demaille glr.cc: untabify. * data/glr.cc: here. 2012-05-04 Akim Demaille glr.cc: formatting changes. * data/glr.cc: Fit in 80 columns. 2012-05-04 Akim Demaille glr.cc: remove unused signature. * data/glr.cc (yydestruct_): Not used, remove. It is yydestruct which is used. 2012-05-04 Akim Demaille glr.cc: properly declare locations are const where appropriate. * data/glr.cc (yyerror): The location is const. 2012-05-04 Akim Demaille doc: fix @xref. * doc/bison.texinfo: here. 2012-05-04 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: (22 commits) tests: ignore code coverage/profiling failure messages doc: fix some invalid @ref. build: fix previous commit. install-pdf: fix. NEWS: Update. %printer: support both yyo and yyoutput. doc: mfcalc: demonstrate %printer. tests: style changes. build: require Flex. build: flex.m4: check for Flex. build: flex.m4: quote properly. build: flex.m4. build: autoconf: update. glr: eliminate last bits of unwanted locations. NEWS: 2.6 will drop K&R. TODO: remove dead items. TODO: import from master. gnulib: update. maint: update NEWS. doc: fix index. doc: fix documentation of YYERROR. c++: more YY_NULL 2012-05-02 Akim Demaille tests: ignore code coverage/profiling failure messages The Hydra buildfarm provides code coverage analysis. For some reason, in some test cases, code coverage data seem to be incompatible, and generate error messages at parser run-time. Ignore these messages so that (i) these tests do pass, (ii) coverage results be provided by Hydra. * tests/local.at (AT_PARSER_CHECK): Ignore messages for failed merges of code coverage/profiling results. 2012-04-16 Akim Demaille doc: fix some invalid @ref. * doc/bison.texinfo: Fix incorrect @ref uses. 2012-04-16 Akim Demaille build: fix previous commit. * bootstrap: Update from gnulib. 2012-04-16 Akim Demaille install-pdf: fix. * gnulib: Fix install-pdf in po/ and runtime-po/. Reported by Hans Aberg. Fixed by Joel E. Denny. http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html 2012-04-16 Akim Demaille NEWS: Update. * NEWS: Spell check. (%printer): is now documented. 2012-04-16 Akim Demaille %printer: support both yyo and yyoutput. lalr1.cc used to support yyo, but not yyoutput. Support both, but document only yyoutput (at least until there is some consensus on this). * data/c.m4 (yy_symbol_value_print): Also support yyo. * data/glr.cc (yy_symbol_value_print_): Support both yyo and yyoutput. * data/lalr1.cc: Also support yyoutput. * doc/bison.texinfo: Explicitly use yyoutput in the examples. * examples/mfcalc/mfcalc.test: Test the -p option. 2012-04-16 Akim Demaille doc: mfcalc: demonstrate %printer. * doc/bison.texinfo (Printer Decl): New. Number mfcalc.y snippets so that they are output in the proper order. (The mfcalc Main): Use yydebug. (Debugging): Simplify the text. (Enabling Traces, Mfcalc Traces, The YYPRINT Macro): New. (Table of Symbols): Document YYPRINT and YYFPRINTF. 2012-04-16 Akim Demaille tests: style changes. * tests/input.at: Use "print" in %printer instead of "destroy". It is unused, so we don't care, yet it is less surprising. * tests/actions.at: Comment changes. 2012-04-16 Akim Demaille %printer: support both yyo and yyoutput. lalr1.cc used to support yyo, but not yyoutput. Support both, but document only yyoutput (at least until there is some consensus on this). * data/c.m4 (yy_symbol_value_print): Also support yyo. * data/glr.cc (yy_symbol_value_print_): Support both yyo and yyoutput. * data/lalr1.cc: Also support yyoutput. * doc/bison.texinfo: Explicitly use yyoutput in the examples. * examples/mfcalc/mfcalc.test: Test the -p option. 2012-04-16 Akim Demaille doc: mfcalc: demonstrate %printer. * doc/bison.texinfo (Printer Decl): New. Number mfcalc.y snippets so that they are output in the proper order. (The mfcalc Main): Use yydebug. (Debugging): Simplify the text. (Enabling Traces, Mfcalc Traces, The YYPRINT Macro): New. (Table of Symbols): Document YYPRINT and YYFPRINTF. 2012-04-16 Akim Demaille tests: style changes. * tests/input.at: Use "print" in %printer instead of "destroy". It is unused, so we don't care, yet it is less surprising. * tests/actions.at: Comment changes. 2012-04-10 Akim Demaille build: require Flex. * configure.ac: Require Flex. 2012-04-10 Akim Demaille build: flex.m4: check for Flex. * m4/flex.m4 (_AC_PROG_LEX_YYTEXT_DECL): Check that $LEX supports some of the Flex options, and exclusive start conditions. Define FLEX to 'yes'/'', as AC_PROG_CC does for GCC. 2012-04-10 Akim Demaille build: flex.m4: quote properly. * m4/flex.m4: Use quotes more systematically. 2012-04-10 Akim Demaille build: flex.m4. * m4/flex.m4: New. An exact copy of what is in Autoconf currently. 2012-04-10 Akim Demaille build: autoconf: update. * submodules/autoconf: Update. There are no changes in data/m4sugar/foreach.m4, and the changes in data/m4sugar/m4sugar.m4 are minor. 2012-04-10 Akim Demaille glr: eliminate last bits of unwanted locations. * data/glr.c (YYLTYPE): Do not define when locations are not demanded. Adjust all dependencies. 2012-04-10 Akim Demaille NEWS: 2.6 will drop K&R. * NEWS: here. (glr.c): Fix a spello. 2012-04-09 Akim Demaille TODO: remove dead items. * TODO (Documentation, %printer, Java): Remove, already done (or just waiting for approval). (Fortran, BTYacc): Remove, there does not seem to be demand. 2012-04-09 Akim Demaille TODO: import from master. * TODO: Copy the current version. 2012-04-08 Akim Demaille tests: fix bison wrapper. * tests/bison.in (PERL): Fix. 2012-04-08 Akim Demaille doc: fix some invalid @ref. * doc/bison.texinfo: Fix incorrect @ref uses. 2012-04-08 Akim Demaille build: extexi: support out-of-order blocks. * examples/extexi (%file_output): Remove. (&process): Accept "FILE: BLOCK-NUM" requests. 2012-04-08 Akim Demaille build: look for Perl in configure. Bison uses "/usr/bin/perl" or "perl" in several places, and it does not appear to be a problem. But, at least to make it simpler to change PERL on the make command line, check for perl in configure. * configure.ac (PERL): New. * doc/Doxyfile.in, doc/local.mk, examples/local.mk, * tests/bison.in: Use it. 2012-04-08 Akim Demaille maint: rewrite extexi in Perl. * examples/extexi: Rewrite in Perl. * examples/local.mk (extract): Adjust. 2012-04-07 Akim Demaille build: simplify clean. * doc/local.mk (CLEANFILES): Since the previous commit, there a no longer such files. * Makefile.in (CLEANFILES): Initialize here. 2012-04-07 Akim Demaille gnulib: update. * bootstrap.conf (bootstrap_sync): True again. It was disabled while waiting for changes to be integrated in gnulib's bootstrap, which was done long ago. * bootstrap, gnulib: Update. 2012-04-04 Akim Demaille maint: update NEWS. * NEWS: Fix entry about __attribute__. Reorder by "decreasing" order of importance. 2012-04-04 Akim Demaille doc: fix index. http://lists.gnu.org/archive/html/bison-patches/2012-04/msg00006.html * doc/bison.texinfo: Avoid using @def* variant with more than the defined entity as main entity, as it results in an incorrect index. For instance, don't document {return YYERROR;}, which results in a single index entry "return YYERROR;", but rather as typed function whose return type is "type", and whose argument list is ";". 2012-04-04 Akim Demaille doc: fix documentation of YYERROR. * doc/bison.texinfo (Table of Symbols): Fix the documentation of YYERROR by copying that from "Action Features". 2012-04-01 Akim Demaille build: fix distcheck issues. For some reason it seems that texi2dvi -o no longer forces --clean mode, so we have stray TeX compilation files staying in top_builddir since TeX is run from there. While at it, upgrade the generation of the (completely obsolete) reference card. Target PDF. * doc/local.mk (TEXI2DVI): Pass --build-dir. (CLEANDIRS): More accurate. (doc/refcard.dvi): Replace with... (doc/refcard.pdf): this. Adjust dependencies. 2012-04-01 Akim Demaille build: don't rely on $< in non-pattern rules. * doc/local.mk, tests/local.mk: here. Reported by Stefano Lattarini. 2012-04-01 Akim Demaille doc: upgrade Doxyfile. * doc/Doxyfile.in: Run doxygen -u. Prompted by Tim Landscheidt. 2012-04-01 Akim Demaille doc: help Doxygen find our files. * doc/Doxyfile.in (INCLUDE_PATH): here. 2012-04-01 Tim Landscheidt Fix Doxygen generation and clean-up. * doc/Doxyfile.in: Amend OUTPUT_DIRECTORY. * doc/local.mk (html-local): Amend working directory. (CLEANDIRS): Fix "html", remove "latex". 2012-04-01 Tim Landscheidt Fix Doxygen comment. * src/InadequacyList.h: s###. 2012-04-01 Akim Demaille c++: more YY_NULL Caught by maintainer-check-g++. * data/glr.c, data/lalr1.cc, data/yacc.c, tests/cxx-type.at, * tests/glr-regression.at, tests/push.at: When simple to do, avoid expliciting the null ptr. Otherwise use YY_NULL. 2012-04-01 Akim Demaille c++: more YY_NULL Caught by maintainer-check-g++. * data/glr.c, data/lalr1.cc, data/yacc.c, tests/cxx-type.at, * tests/glr-regression.at, tests/push.at: When simple to do, avoid expliciting the null ptr. Otherwise use YY_NULL. 2012-04-01 Akim Demaille Merge remote-tracking branch 'origin/maint' * origin/maint: bump to 2012 in skeletons. build: remove ancient Autoconf tests. doc: c++: complete the location documentation. c++: locations: provide convenience constructors. c++: locations: remove useless "inline". glr: do not use locations when they are not requested c++: use nullptr for C++11. build: simplify and improve the compiler warnings for tests. gnulib: update. maint: formatting changes. NEWS: update. Java: Fix syntax error handling without error token. tests: beware of -pedantic on large #line numbers. tests: when using the C++ compiler, use its flags too. 2012-04-01 Akim Demaille bump to 2012 in skeletons. * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, * data/location.cc, data/yacc.c: Bump copyright year ranges. 2012-04-01 Akim Demaille build: remove ancient Autoconf tests. lib/subpipe.c was removed in 47fa574761319b0a422691223c9b8a9a72f36aa2. * m4/subpipe.m4: Remove. * configure.ac (BISON_PREREQ_SUBPIPE): Remove. 2012-03-31 Akim Demaille doc: c++: complete the location documentation. * data/location.cc (position::initialize, location::initialize): Also accept line and column, with default values. * doc/bison.texinfo (C++ position, C++ location): New nodes. Describe more thoroughly these classes. Fix several Texinfo misuses. 2012-03-31 Akim Demaille c++: locations: provide convenience constructors. * data/location.cc (position::position): Accept file, line and column as arguments with default values. Always qualify initial line and column literals as unsigned. (location::location): Provide convenience constructors. 2012-03-31 Akim Demaille c++: locations: remove useless "inline". * data/location.cc: "inline" is implicit when defining methods in the class definition. 2012-03-31 Akim Demaille glr: do not use locations when they are not requested When the test suite runs with -O2 and warnings enabled, G++ complains of locations being used, but not initialized. The simplest is to not use locations. * data/glr.c (b4_locuser_formals, b4_locuser_args): New. Use them when locations should not be used. Use b4_locations_if where appropriate. (yyuserAction): Modify the order to the arguments to make it more alike the other routines, and to make use of b4_locuser_args simpler. 2012-03-31 Akim Demaille c++: use nullptr for C++11. C++11 introduces "nullptr" which plays the role of C's NULL, in replacement of "0". Fix the C++ skeletons to avoid warnings about uses of "0" in place of "nullptr", and improve C skeletons to also use this "nullptr" when compiled with a C++11 compiler. * configure.ac: More C++ warnings. * NEWS (2.5.1): Document this. * data/c++.m4, data/c.m4 (b4_null_define): New. (b4_null): Use YY_NULL instead of 0. * data/glr.c, data/lalr1.cc, data/location.cc, data/yacc.c: Call b4_null_define/b4_null where appropriate. Use YY_NULL instead of NULL. * data/location.cc (initialize): Accept a default argument, YY_NULL. * tests/actions.at, tests/calc.at: Adjust. * data/glr.c, lib/libiberty.h, src/system.h (__attribute__): Do not disable it when __STRICT_ANSI__ is defined, as, for instance, it disables the __attribute__((unused)) which protects us from some compiler warnings. This was already done elsewhere in Bison, in 2001, see 4a0d89369599a2cea01f4fbdf791f426a02cb5a3. * tests/regression.at: Adjust output. 2012-03-30 Akim Demaille build: simplify and improve the compiler warnings for tests. * configure.ac (warn_common, warn_c, warn_cxx): New. Use them to compute independently the options supported by the C and C++ compilers. Don't AC_SUBST the variables passed to gl_WARN_ADD: it does it for us. (WARN_CFLAGS_TEST, WARN_CXXFLAGS_TEST): Don't aggregate $WARN_CFLAGS and $WARN_CXXFLAGS in them now, leave it to atlocal.in. (O0CFLAGS, O0CXXFLAGS): Move their definition to... * tests/atlocal.in: here. Be more systematic between C and C++. Reorder to factor between variables. Propagate all of the variables when --compile-c-with-cxx. 2012-03-30 Akim Demaille gnulib: update. 2012-03-30 Akim Demaille maint: formatting changes. * src/system.h: Indent CPP directives using cppi. 2012-03-27 Akim Demaille NEWS: update. * NEWS: Java fixes, more about the doc changes, liby issues. 2012-03-27 Tim Landscheidt Java: Fix syntax error handling without error token. * data/lalr1.java (YYParser::parse): Here. * tests/java.at: Add test case. 2012-03-24 Akim Demaille tests: beware of -pedantic on large #line numbers. * tests/local.at (AT_TEST_TABLES_AND_PARSE): Don't pass -pedantic when compiling large canonical-LR parsers. Reported by Tys Lefering. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00025.html 2012-03-24 Akim Demaille tests: when using the C++ compiler, use its flags too. * tests/local.at: Go for colors. (--compile-c-with-cxx): New option. We used to pass "CC=$CXX" as command line argument, but it was not possible to adjust CFLAGS accordingly in atlocal, since it is loaded before assignments on the command line are honored (so that the command line takes precedence). * tests/atlocal.in: Implement it. * tests/local.mk: Use it. 2012-03-24 Akim Demaille tests: style changes in the Makefile. * tests/local.mk: Prefer passing variable assignment by the command line, instead of the environment, so that it is reported in the logs. Prefer single quotes for shell literal strings. 2012-03-24 Akim Demaille tests: beware of -pedantic on large #line numbers. * tests/local.at (AT_TEST_TABLES_AND_PARSE): Don't pass -pedantic when compiling large canonical-LR parsers. Reported by Tys Lefering. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00025.html 2012-03-24 Akim Demaille tests: when using the C++ compiler, use its flags too. * tests/local.at: Go for colors. (--compile-c-with-cxx): New option. We used to pass "CC=$CXX" as command line argument, but it was not possible to adjust CFLAGS accordingly in atlocal, since it is loaded before assignments on the command line are honored (so that the command line takes precedence). * tests/atlocal.in: Implement it. * tests/local.mk: Use it. 2012-03-24 Akim Demaille tests: fix dependencies. * tests/local.mk (check_SCRIPTS): Add atlocal and atconfig so that they are properly updated before running tests. (RUN_TESTSUITE_deps): New. Use it to factor the dependencies of "*-check" targets, especially those that don't bounce to the regular "check-local" target, since then they don't benefit from the proper dependencies (such as atlocal). 2012-03-19 Akim Demaille Merge remote-tracking branch 'fsf/maint' * fsf/maint: (404 commits) doc: update the --verbose report format. doc: spell check. doc: stmt, not stmnt. doc: save width. doc: reformat grammar snippets. doc: use only @example, not @smallexample. doc: style changes. doc: minor fixes to "Understanding" section tests: minor fixes/simplifications tests: be robust to quote style. maint: update gnulib. tests: be robust to POSIXLY_CORRECT being defined. doc: fix environment issues. regen. tests: fix regressions. glr: fix ambiguity reports. doc: stylistic improvements. maint: address sc_prohibit_doubled_word. maint: address sc_prohibit_always-defined_macros. maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC. ... 2012-03-19 Akim Demaille doc: spell fix. * doc/bison.texinfo: here. Reported by Tim Landscheidt. 2012-03-19 Akim Demaille doc: update the --verbose report format. * doc/bison.texinfo (Understanding): Adjust to match the current format. 2012-03-19 Akim Demaille doc: spell check. * doc/bison.texinfo: here. 2012-03-19 Akim Demaille doc: stmt, not stmnt. * doc/bison.texinfo: s/stmnt/stmt/g. This is a much more common abbreviation for "statement". 2012-03-19 Akim Demaille doc: save width. * doc/bison.texinfo (Language and Grammar): Use the same layout for an example in all the versions, i.e., keep as general case what used to be used only for Info. 2012-03-19 Akim Demaille doc: reformat grammar snippets. * doc/bison.texinfo: Convert the grammar examples to use a narrower style. This helps fitting into the @smallbook constraints. http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html 2012-03-19 Akim Demaille doc: use only @example, not @smallexample. * doc/bison.texinfo: Convert all @smallexamples into @examples. Adjust layout where needed. 2012-03-19 Akim Demaille doc: style changes. * doc/bison.texinfo: Avoid line width issues with TeX. Upgrade ancient messages. Move some comments to better looking places. Add more @group. (Mfcalc Symbol Table): Reduce variable scopes. Prefer size_t for sizes. Prefer declarations with an initial value. Fix a @group environment. 2012-03-19 Paul Eggert doc: minor fixes to "Understanding" section * doc/bison.texinfo (Understanding): Minor wording fixes and improvements. Fixes problems reported in . 2012-03-19 Akim Demaille doc: update the --verbose report format. * doc/bison.texinfo (Understanding): Adjust to match the current format. 2012-03-19 Akim Demaille doc: spell check. * doc/bison.texinfo: here. 2012-03-19 Akim Demaille doc: stmt, not stmnt. * doc/bison.texinfo: s/stmnt/stmt/g. This is a much more common abbreviation for "statement". 2012-03-19 Akim Demaille doc: save width. * doc/bison.texinfo (Language and Grammar): Use the same layout for an example in all the versions, i.e., keep as general case what used to be used only for Info. 2012-03-19 Akim Demaille doc: reformat grammar snippets. * doc/bison.texinfo: Convert the grammar examples to use a narrower style. This helps fitting into the @smallbook constraints. http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html 2012-03-19 Akim Demaille doc: use only @example, not @smallexample. * doc/bison.texinfo: Convert all @smallexamples into @examples. Adjust layout where needed. 2012-03-19 Akim Demaille doc: style changes. * doc/bison.texinfo: Avoid line width issues with TeX. Upgrade ancient messages. Move some comments to better looking places. Add more @group. (Mfcalc Symbol Table): Reduce variable scopes. Prefer size_t for sizes. Prefer declarations with an initial value. Fix a @group environment. 2012-03-19 Akim Demaille c.m4: better newline control with b4_parse_param_use. * data/c.m4: Use m4_ifvaln instead of m4_ifval where applicable. (b4_parse_param_use): Switch order between two nested "if"s to avoid useless empty lines. Adjust callers to avoid useless lines. 2012-03-19 Akim Demaille glr.c: remove (broken) support for YYPRINT. YYPRINT uses yytoknum which glr does not define. Since YYPRINT is considered obsolete, and did not work, don't fix its support, remove it from glr.c. * data/c.m4 (yy_symbol_value_print): Use YYPRINT only for yacc.c. * TODO: Done. 2012-03-17 Paul Eggert doc: minor fixes to "Understanding" section * doc/bison.texinfo (Understanding): Minor wording fixes and improvements. Fixes problems reported in . 2012-03-15 Akim Demaille TODO: update. 2012-03-15 Akim Demaille gnulib: update. 2012-03-13 Akim Demaille tests: minor fixes/simplifications * tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs, quotation, and default value assignments. Ensure a proper value to the numeric variables. Reported by Lie Yan. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html 2012-03-13 Akim Demaille maint: fix distcheck. * examples/local.mk (MAINTAINERCLEANFILES): Complete, and rename as... (CLEANFILES): this, * examples/calc++/local.mk, examples/mfcalc/local.mk, * examples/rpcalc/local.mk (CLEANFILES): Add the generated files. 2012-03-13 Akim Demaille tests: minor fixes/simplifications * tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs, quotation, and default value assignments. Ensure a proper value to the numeric variables. Reported by Lie Yan. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html 2012-03-09 Akim Demaille tests: be robust to POSIXLY_CORRECT being defined. * tests/local.at (AT_BISON_CHECK_NO_XML): Check if POSIXLY_CORRECT is defined, not if it is defined to 1. Reported by Lie Yan. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html 2012-03-09 Akim Demaille tests: be robust to quote style. See . * src/main.c (main): Define the quoting style we use. * tests/atlocal.in: Use ASCII style quotes during the tests. 2012-03-09 Akim Demaille maint: update gnulib. * gnulib: update. * src/scan-gram.l: Don't use the (former version of) STREQ. 2012-03-09 Akim Demaille tests: remove quote magic from the bison test wrapper. Basically, revert 4c4d35394d1bdb4dc3392482ab002bc111a3378f. * tests/bison.in: Leave bison's stderr as is. 2012-03-09 Akim Demaille tests: be robust to quote style. See . * src/main.c (main): Define the quoting style we use. * tests/atlocal.in: Use ASCII style quotes during the tests. 2012-03-09 Akim Demaille avoid direct strncmp calls. Before this change, bison would accept either .tab and _tab equivalently, whatever the current platform. Besides, it was not obeying everywhere to the possible definition of TAB_EXT to something else than .tab. For consistency, handle only TAB_EXT (".tab" on non DJGPP platforms). Support for "_tab" is neither documented, nor tested. * src/system.h (STRNCMP_LIT): New. From Jim Meyering. (STRPREFIX_LIT): New. * src/files.c, src/getargs.c: Use it. 2012-03-06 Akim Demaille tests: be robust to POSIXLY_CORRECT being defined. * tests/local.at (AT_BISON_CHECK_NO_XML): Check if POSIXLY_CORRECT is defined, not if it is defined to 1. Reported by Lie Yan. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html 2012-02-24 Akim Demaille build: comment changes. * Makefile.am, examples/calc++/local.mk, examples/local.mk, * examples/mfcalc/local.mk, examples/rpcalc/local.mk, * lib/local.mk, src/local.mk, tests/local.mk: Make the copyright licenses more uniform. 2012-02-24 Akim Demaille build: fix more example extraction issues. * Makefile.am (dist_TESTS): New. (TESTS, EXTRA_DIST): Run and ship them. * examples/calc++/local.mk: examples/calc++/calc++.stamp no longer exists, don't try to ship it. (.yy.stamp): New recipe. Use it. * examples/calc++/local.mk, examples/mfcalc/local.mk, * examples/rpcalc/local.mk: Don't ship the sources. Adjust the CPPFLAGS: there is nothing left in srcdir. (MAINTAINERCLEANFILES): Remove, now we are in builddir. (TESTS): Rename as... (dist_TESTS): this. 2012-02-24 Akim Demaille maint: fix example extraction issues. calc++: don't rely on Automake to compile a C++ parser. Basically, revert commit 609b3d8096fb0cc1fa4d908b6e1a860ced260bda, Automake 1.11.3 is not safe enough for C++ parser. * examples/calc++/calc++-parser.hh: Remove. * examples/calc++/local.mk (examples/calc++/calc++-parser.stamp): New. examples: factor the extractions into a single step extexi had to be run in the extraction directory. Now, it can be given the files with expected output directory. This allows to use $(*_extracted) variables (before we had to list again their members, but limited to their base names). In turn, this also allows fusing the extraction recipes into a single one. Also, it is currently too hard (or requires too much duplication, since Make wants all the occurrences of the files to be prefixed with $(srcdir)/, which is something Automake cannot support for *_SOURCES) to work in the source tree. So extract, and compile scanners and parsers in the build tree. * examples/extexi (basename): New. (BEGIN): Now "file_wanted" maps base name to extracted file name. * examples/calc++/local.mk, examples/mfcalc/local.mk, * examples/rpcalc/local.mk: Fuse extraction rules into... * examples/local.mk: Here. (extract, extracted): New. 2012-02-23 Akim Demaille maint: use STREQ/STRNEQ. * doc/bison.texinfo: Space change. * src/system.h (STREQ, STRNEQ): New. * src/files.c, src/ielr.c, src/lalr.c, src/muscle-tab.c, * src/output.c, src/print.c, src/print_graph.c, * src/reader.c, src/scan-skel.l, src/tables.c, * src/uniqstr.c: Use them. * src/scan-gram.l: Do not use streq.h, use system.h's STREQ. * cfg.mk: The documentation is an exception. 2012-02-23 Akim Demaille doc: fix environment issues. * doc/bison.texinfo: Do not use @verbatim, in particular when we use @group inside. Use @quotation instead of @display for frequently asked questions, it looks much nicer. 2012-02-23 Akim Demaille doc: fix environment issues. * doc/bison.texinfo: Do not use @verbatim, in particular when we use @group inside. Use @quotation instead of @display for frequently asked questions, it looks much nicer. 2012-02-23 Akim Demaille regen. * src/parse-gram.h, src/parse-gram.c: regen. 2012-02-23 Akim Demaille tests: fix regressions. Exit status 63 is documented for version-mismatch. * bootstrap.conf (gnulib_modules): Remove sysexits. * src/system.h (EX_MISMATCH): Define. * src/parse-gram.y (version_check): Use it instead of EX_CONFIG. Missing includes. * tests/calc.at, tests/named-refs.at: Include assert.h. 2012-02-22 Akim Demaille maint: gitignore. * examples/mfcalc/.gitignore, examples/rpcalc/.gitignore: Fix. 2012-02-21 Akim Demaille regen. * src/parse-gram.c, src/parse-gram.h: regen. 2012-02-21 Akim Demaille tests: fix regressions. Exit status 63 is documented for version-mismatch. * bootstrap.conf (gnulib_modules): Remove sysexits. * src/system.h (EX_MISMATCH): Define. * src/parse-gram.y (version_check): Use it instead of EX_CONFIG. Missing includes. * tests/calc.at, tests/named-refs.at: Include assert.h. 2012-02-21 Akim Demaille tests: post-process stderr to normalize quotes. * tests/bison.in: Save bison's stderr, and convert gettextized quotes to plain ASCII. 2012-02-21 Akim Demaille glr: fix ambiguity reports. * tests/glr-regression.at (Ambiguity reports): New. 2012-02-21 Akim Demaille glr: fix ambiguity reports. Fix a regression introduced in commit 783aa653f4ca70a75919c8516b950494c612cbfe. * tests/glr-regression.at (Ambiguity reports): New. * data/glr.c (yyreportTree): Fix an offset error. 2012-02-19 Akim Demaille doc: stylistic improvements. * doc/bison.texinfo: Prefer "continue" to empty loop bodies. Add some @group/@end group to avoid poor page breaks. 2012-02-19 Akim Demaille maint: address sc_prohibit_doubled_word. * data/yacc.c, doc/bison.texinfo: Reword to avoid having to disable that check. * cfg.mk: No longer skip this test. 2012-02-19 Akim Demaille maint: address sc_prohibit_always-defined_macros. * cfg.mk: No longer skip it, except where EXIT_SUCCESS is used as a witness for stdlib.h. Skip this test when appropriate. * data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here. 2012-02-19 Akim Demaille maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC. * bootstrap.conf (gnulib_modules): Require progname. * src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it. * cfg.mk (exclude): New. Use it. Skip lib/main.c for bindtextdomain and set_program_name. 2012-02-19 Akim Demaille maint: remove stray file. * config.hin: Remove. 2012-02-19 Akim Demaille doc: stylistic improvements. * doc/bison.texinfo: Prefer "continue" to empty loop bodies. Add some @group/@end group to avoid poor page breaks. 2012-02-19 Akim Demaille doc: check the rpcalc. * doc/bison.texinfo: Tag rpcalc.y snippets. Add missing includes. (Rpcalc Rules): Don't issue leading tabs. Complete an Info menu. Use @result. * examples/rpcalc/local.mk: New. * examples/rpcalc/rpcalc.test: New. * examples/local.mk: Use them. * examples/mfcalc/mfcalc.test: Remove dup test. * examples/test: Disable debug traces. 2012-02-19 Akim Demaille regen. * src/parse-gram.c, src/parse-gram.h: Regen. 2012-02-19 Akim Demaille maint: address sc_prohibit_doubled_word. * data/yacc.c, doc/bison.texinfo: Reword to avoid having to disable that check. * cfg.mk: No longer skip this test. 2012-02-19 Akim Demaille maint: address sc_prohibit_always-defined_macros. * cfg.mk: No longer skip it, except where EXIT_SUCCESS is used as a witness for stdlib.h. Skip this test when appropriate. * data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here. 2012-02-19 Akim Demaille maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC. * bootstrap.conf (gnulib_modules): Require progname. * src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it. * cfg.mk (exclude): New. Use it. Skip lib/main.c for bindtextdomain and set_program_name. 2012-02-19 Akim Demaille maint: remove stray file. * config.hin: Remove. 2012-02-19 Akim Demaille bitset: fix an incorrect error message. * lib/bitset_stats.c: here. Reported by Stefano Lattarini. 2012-02-19 Akim Demaille maint: address some syntax-issues remaining after cherry-picking from master. * cfg.mk: Skip bison generated files, 2.5 is generating trailing blanks. This is already fixed in master. * tests/conflicts.at, tests/java.at: Fix white space issues. 2012-02-19 Akim Demaille regen. * src/parse-gram.c, src/parse-gram.h: Regen. 2012-02-19 Akim Demaille bitset: fix an incorrect error message. * lib/bitset_stats.c: here. Reported by Stefano Lattarini. 2012-02-19 Jim Meyering maint: reenable sc_m4_quote_check * cfg.mk (local-checks-to-skip): Reenable sc_m4_quote_check. * m4/dmalloc.m4: Add quotes. 2012-02-19 Akim Demaille maint: remove trailing empty lines. * cfg.mk: No longer skip sc_prohibit_empty_lines_at_EOF, except for parse-gram.h (generated). * examples/mfcalc/.gitignore, lib/.gitignore, m4/.gitignore, * po/.gitignore, runtime-po/.gitignore: Remove trailing/leading empty lines. 2012-02-19 Akim Demaille maint: avoid "magic number exit". * cfg.mk (local-checks-to-skip): No longer skip it. * bootstrap.conf (gnulib_modules): Add sysexits. * doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y, * src/system.h, tests/calc.at, tests/named-refs.at: Use assert where appropriate instead of "if (...) exit". Use symbolic exit status elsewhere. 2012-02-19 Akim Demaille maint: fix some syntax-check issues. * cfg.mk (local-checks-to-skip): Remove sc_prohibit_quotearg_without_use, sc_prohibit_strcmp, sc_unmarked_diagnostics, sc_useless_cpp_parens. (sc_unmarked_diagnostics): Skip DJGPP. * data/yacc.c, src/LR0.c, src/closure.c, * src/flex-scanner.h, src/gram.c, src/lalr.c, * src/print-xml.c, src/print.c, src/print_graph.c, * src/reader.c, src/reduce.c, src/tables.c: Don't use parens with cpp's defined. Remove useless includes. 2012-02-19 Akim Demaille maint: address a couple of syntax-check errors. * cfg.mk (local-checks-to-skip): Remove sc_error_message_period and sc_error_message_uppercase. Address the uncovered issues. * po/POTFILES.in: Add missing files. * src/symtab.c: Remove useless includes. * lib/bitset_stats.c, src/files.c, tests/glr-regression.at: Use conformant error messages. 2012-02-19 Akim Demaille maint: gnulib: upgrade. 2012-02-18 Akim Demaille maint: remove trailing empty lines. * cfg.mk: No longer skip sc_prohibit_empty_lines_at_EOF, except for parse-gram.h (generated). * examples/mfcalc/.gitignore, lib/.gitignore, m4/.gitignore, * po/.gitignore, runtime-po/.gitignore: Remove trailing/leading empty lines. 2012-02-18 Akim Demaille maint: regen. * src/parse-gram.c, src/parse-gram.h: regen. 2012-02-18 Akim Demaille maint: avoid "magic number exit". * cfg.mk (local-checks-to-skip): No longer skip it. * bootstrap.conf (gnulib_modules): Add sysexits. * doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y, * src/system.h, tests/calc.at, tests/named-refs.at: Use assert where appropriate instead of "if (...) exit". Use symbolic exit status elsewhere. 2012-02-18 Akim Demaille maint: fix some syntax-check issues. * cfg.mk (local-checks-to-skip): Remove sc_prohibit_quotearg_without_use, sc_prohibit_strcmp, sc_unmarked_diagnostics, sc_useless_cpp_parens. (sc_unmarked_diagnostics): Skip DJGPP. * data/yacc.c, src/LR0.c, src/closure.c, * src/flex-scanner.h, src/gram.c, src/lalr.c, * src/print-xml.c, src/print.c, src/print_graph.c, * src/reader.c, src/reduce.c, src/tables.c: Don't use parens with cpp's defined. Remove useless includes. 2012-02-18 Akim Demaille maint: address a couple of syntax-check errors. * cfg.mk (local-checks-to-skip): Remove sc_error_message_period and sc_error_message_uppercase. Address the uncovered issues. * po/POTFILES.in: Add missing files. * src/symtab.c: Remove useless includes. * lib/bitset_stats.c, src/files.c, tests/glr-regression.at: Use conformant error messages. 2012-02-18 Akim Demaille maint: gnulib: upgrade. 2012-02-17 Akim Demaille doc: mfcalc: fix includes. * doc/bison.texinfo: math.h is needed early. 2012-02-17 Akim Demaille examples: factor the test suite. * examples/mfcalc/test, examples/calc++/test: Extract the common bits into... * examples/test: here. (cwd): New. Use it to avoid a race on the temporary directory. Reported by Jim Meyering. * examples/mfcalc/test, examples/calc++/test: Rename into... * examples/mfcalc/mfcalc.test, examples/calc++/calc++.test: these. * examples/calc++/local.mk, examples/mfcalc/local.mk, * examples/local.mk: Adjust. 2012-02-17 Akim Demaille examples: fix the test suites. * examples/calc++/test, examples/mfcalc/test (me): Be more meaningfull: include the example name. (prog): Factor. (run): Avoid printf, use echo. Add missing parens. (cleanup): New. Call it on trap. Remove the previous "rm" that did the cleanup. Move into a private directory to avoid concurrency issues. Reported by Jim Meyering. 2012-02-17 Jim Meyering examples: link mfcalc with -lm for uses of pow, cos, atan, etc. * examples/mfcalc/local.mk (examples_mfcalc_mfcalc_LDADD): Define. 2012-02-16 Akim Demaille mfcalc: extract and exercise. * examples/mfcalc/local.mk, examples/mfcalc/test: New, based on calc++'s ones. * examples/local.mk: Include mfcalc/local.mk. 2012-02-16 Akim Demaille calc++: factor for other extracted tests. * Makefile.am (TESTS, check_PROGRAMS): Initialize here. * examples/local.mk (doc, extexi): Define here. * examples/calc++/local.mk: Adjust accordingly. * configure.ac: Ask for parallel-tests (for the way the logs are handled). * examples/calc++/test: As a consequence, always be verbose. ($prog): New. (run): Use it. Sort the tests in a more natural order (simplest first). 2012-02-16 Akim Demaille doc: mfcalc: send errors to stderr. * doc/bison.texinfo (Mfcalc Lexer): New. (Mfcalc Main): Move the definition of main and yyerror here, for clarity. Let yyerror report on stderr. 2012-02-16 Akim Demaille doc: fix mfcalc code. * doc/bison.texinfo (Multi-function Calc): Add missing includes. Fix the rendering of the result: use @result and remove the initial tabulation in the actual code. Fix stylistic issues: avoid the , operator. Add extexi mark-up. * examples/extexi: Also support @smallexample. 2012-02-16 Akim Demaille tests: c++: stylistic changes. * tests/c++.at: Don't use void for incoming arguments. Prefer cstdlib to stdlib.h. 2012-02-16 Jim Meyering tests: avoid c++ failure due to lack of getenv decl * tests/c++.at (Syntax error as exception): Avoid spurious failure at least when compiling with g++-4.7.x due to lack of declaration of getenv. Include . 2012-02-15 Akim Demaille maint: rely on Automake for parsers. * Makefile.am (AM_YFLAGS): Automake looks for "-d" alone. Move other options in here. (BISON): New. (YACC): Use it. (bison_SOURCES): Now that automake can see `-d' in AM_YFLAGS, we can rely on it to compile and ship the parser header files. Based on commit 737406a32c201471699bfa0843d1f432f3ec29ab and commit 3d6ca339083c278d907c9f030f4ba6bc5ecb07f2. 2012-02-15 Akim Demaille maint: trust Automake for parser headers. * examples/calc++/local.mk, src/local.mk: Now that automake can see `-d' in AM_YFLAGS, we can rely on it to compile and ship the parser header files. 2012-02-15 Akim Demaille maint: help Automake reading Yacc flags. * Makefile.am (AM_YFLAGS): Automake looks for "-d" alone. 2012-02-15 Akim Demaille calc++: rely on Automake. Rely on $(YACC) being the bison being built, and let Automake do the rest. It turned out to be much more difficult than anticipated, for various reasons, including some bad behavior from Automake 1.11.2 which (i) generates calc++-parser.h instead of calc++-parser.hh, and (ii) leaves an #include "y.tab.h" in the generated parser instead of #include "calc++-parser.h". The authors of Automake appear to be aware of the problem, http://lists.gnu.org/archive/html/automake/2011-05/msg00008.html so a simple work around will suffice for the time being. * examples/calc++/y.tab.h, examples/calc++/calc++-parser.hh: New. To work around Automake 1.11.2 issues. * examples/calc++/local.mk: Remove all the rules for compilation with bison, leave them to Automake. So provide it with "calc++-parse.yy" as a source file. (calc_sources_generated, calc_sources_extracted): Rename as. (calc_generated, calc_extracted): these. (calc_sources): New. Fix them. 2012-02-14 Akim Demaille maint: tidy the Makefile a bit. * src/local.mk: Put yacc related variables together. (AUTOMAKE_OPTIONS): Move to... * Makefile.am: here. Remove an old Emacs mode request which disables Automake support. * src/local.mk (YACC, AM_YFLAGS): Move to... * Makefile.am: here, as they will be used by other local.mks. 2012-02-14 Akim Demaille maint: de-recurse the handling of examples The directory was still using a local Makefile.am because it provides "scoped" Make variables: these examples are not meant to use the same CPPFLAGS etc. If we were to use the same -I set, we'd pick up gnulib's stdio.h for instance, which we do not want for these simple examples. Yet, as a result, the dependencies are less accurate, there is code duplication, etc. This is especially perceptible when trying to extract more examples from the documentation, as will be done in forthcoming changes. In order to make the tuning of CPPFLAGS easier, discard the predefined -I from Automake. * examples/calc++/Makefile.am: Rename as... * examples/calc++/local.mk: this. Adjust the paths which are now rooted in top_srcdir/top_builddir. Handle BISON_CXX_WORKS here, instead of the too crude previous approach that completely discarded the whole directory. ($(BISON)): Remove now useless bouncing recipe. (calc___CPPFLAGS): New. Stay away from -Ilib. * Makefile.am, configure.ac, examples/local.mk, * examples/calc++/test: Adjust. * configure.ac: Pass nostdinc to Automake. * src/local.mk, lib/local.mk (AM_CPPFLAGS): Move to... * Makefile.am: here. * src/local.mk, examples/calc++/Makefile.am (BISON, BISON_IN): Factor to... * Makefile.am: here. * tests/local.mk: Use it. 2012-02-14 Akim Demaille variant: fix the example. * examples/variant.yy: Adjust to "assert" being now "parse.assert". 2012-02-14 Akim Demaille maint: more authors. * AUTHORS: here. Suggested by Tys Lefering. 2012-02-14 Akim Demaille maint: add license headers. * examples/calc++/test, examples/variant.yy, AUTHORS, THANKS, * tests/atlocal.in, tests/bison.in: Add license headers. Reported by Tys Lefering. 2012-02-14 Akim Demaille maint: remove obsolete file. * etc/make-ChangeLogs: Remove (used for rcs to cvs migration!). Reported by Tys Lefering. 2012-02-14 Akim Demaille maint: more authors. * AUTHORS: here. Suggested by Tys Lefering. 2012-02-14 Akim Demaille maint: add license headers. * examples/calc++/test, examples/variant.yy, AUTHORS, THANKS, * tests/atlocal.in, tests/bison.in: Add license headers. Reported by Tys Lefering. 2012-02-14 Akim Demaille maint: remove obsolete file. * etc/make-ChangeLogs: Remove (used for rcs to cvs migration!). Reported by Tys Lefering. 2012-02-10 Akim Demaille lalr1.cc: also handle syntax_error when calling yylex. * data/lalr1.cc (parse): Catch syntax_error around yylex and forward them to errlab1. * tests/c++.at (Syntax error as exception): Check support for syntax exceptions raised by the scanner. * NEWS, doc/bison.texinfo: Document it. 2012-02-10 Akim Demaille tests: lalr1.cc: check syntax_error. * tests/c++.at (Syntax error as exception): New. 2012-02-10 Akim Demaille tests: don't require locations uselessly. * tests/c++.at (Syntax error discarding no lookahead): Contrary to 2.5, C++ parsers can work without locations. 2012-02-10 Akim Demaille maint: more silent rules. * tests/local.mk (TESTSUITE_AT): Include plackage.m4. Adjust dependencies. Make testsuite.at its first argument. (package.m4): Be silent. (testsuite): Be silent. Use $<. 2012-02-10 Akim Demaille skeletons: simplify the protections against "unused" warnings. * data/c.m4 (b4_parse_param_use): Also accept optional arguments to "use". Simplify callers. * data/glr.c (yyuserAction): Simplify use of b4_parse_param_use. (yy_reduce_print): Don't use b4_parse_param_use, as all the arguments _are_ used. * data/lalr1.cc (YY_SYMBOL_PRINT): Even when disabled, "use" the symbol argument. This neutralizes a warning in yypush_ when there are no symbols with a semantic values. (yy_destroy_): Remove useless "use" of yymsg. 2012-02-10 Akim Demaille glr: formatting changes. * data/glr.c: Split long strings. 2012-02-08 Akim Demaille use a more consistent quoting style. See . Use quotearg as often as possible instead of leaving the choice of the quotes to the translators. Use shorter messages. Factor similar messages to a single format, to make localization easier. * src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c * src/scan-code.l, src/scan-gram.l, src/symtab.c: Use quote() or quotearg_colon() on printf arguments instead of quotes in the format string. * data/bison.m4: Keep sync with the changes in muscle-tab.c. * tests/skeletons.at, tests/input.at, tests/regression.at: Adjust expected messages. 2012-02-08 Akim Demaille use a more consistent quoting style. See . Use quotearg as often as possible instead of leaving the choice of the quotes to the translators. Use shorter messages. Factor similar messages to a single format, to make localization easier. * src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c * src/scan-code.l, src/scan-gram.l, src/symtab.c: Use quote() or quotearg_colon() on printf arguments instead of quotes in the format string. * data/bison.m4: Keep sync with the changes in muscle-tab.c. * tests/skeletons.at, tests/input.at, tests/regression.at: Adjust expected messages. 2012-01-31 Jim Meyering maint: reenable sc_m4_quote_check * cfg.mk (local-checks-to-skip): Reenable sc_m4_quote_check. * m4/dmalloc.m4: Add quotes. 2012-01-31 Jim Meyering maint: force "make syntax-check" to pass by skipping failing tests * cfg.mk (local-checks-to-skip): Skip all currently-failing tests. Remove changelog-check; it's long gone. 2012-01-31 Akim Demaille maint: remove stray debug code. * src/Makefile.am (echo): Remove. 2012-01-31 Akim Demaille maint: space changes. * src/Makefile.am: Use 2 leading spaces for variable definition spreading over several lines. 2012-01-31 Akim Demaille maint: more silent-rules. * doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use $(AM_V_GEN) and $(AM_V_at) where appropriate. 2012-01-31 Jim Meyering do not ignore errors like ENOSPC,EIO when writing to stdout Standard output was never explicitly closed, so we could not detect failure. Thus, bison would ignore the errors of writing to a full file system and getting an I/O error on write, but only for standard output, e.g., for --print-localedir, --print-datadir, --help and some verbose output. Now, "bison --print-datadir > /dev/full" reports the write failure: bison: write error: No space left on device Before, it would exit 0 with no diagnostic, implying success. This is not an issue for "--output=-" or the other FILE-accepting command-line options, because unlike most other GNU programs, an output file argument of "-" is treated as the literal "./-", rather than standard output. * bootstrap.conf (gnulib_modules): Add closeout. * src/main.c: Include "closeout.h". Use atexit to ensure we close stdout. * .gitignore: Ignore new files pulled in via gnulib-tool. 2012-01-31 Akim Demaille maint: more silent-rules. * doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use $(AM_V_GEN) and $(AM_V_at) where appropriate. 2012-01-29 Jim Meyering do not ignore errors like ENOSPC,EIO when writing to stdout Standard output was never explicitly closed, so we could not detect failure. Thus, bison would ignore the errors of writing to a full file system and getting an I/O error on write, but only for standard output, e.g., for --print-localedir, --print-datadir, --help and some verbose output. Now, "bison --print-datadir > /dev/full" reports the write failure: bison: write error: No space left on device Before, it would exit 0 with no diagnostic, implying success. This is not an issue for "--output=-" or the other FILE-accepting command-line options, because unlike most other GNU programs, an output file argument of "-" is treated as the literal "./-", rather than standard output. * bootstrap.conf (gnulib_modules): Add closeout. * src/main.c: Include "closeout.h". Use atexit to ensure we close stdout. * .gitignore: Ignore new files pulled in via gnulib-tool. 2012-01-26 Akim Demaille tests: fix expected output. * tests/actions.at (YYBACKUP): here. 2012-01-26 Akim Demaille tests: fix expected output. * tests/actions.at (YYBACKUP): here. 2012-01-26 Akim Demaille maint: fix configure.ac Fix commit 1890a2a816dab86c23cc1d0af8fac3986335deb7. * configure.ac: Fix variable assignment. 2012-01-26 Akim Demaille yacc: fix YYBACKUP. Reported by David Kastrup: https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html. * data/yacc.c (YYBACKUP): Accept rhs size. Restore the proper state value. * TODO (YYBACKUP): Make it... * tests/actions.at: a new test case. * NEWS, THANKS: Update. 2012-01-26 Akim Demaille maint: update TODO. * TODO (Labeling the symbols): Remove, it's done ("Name references"). 2012-01-26 Akim Demaille maint: update THANKS. * THANKS: Update Tys's address, on his request. 2012-01-26 Akim Demaille maint: fix --gcc-warnings support. * configure.ac: Use enable_gcc_warnings instead of enableval, which is valid only with AC_ARG_ENABLE. 2012-01-26 Akim Demaille maint: silent-rules. * configure.ac: Ask for silent-rules support. Enable it by default. 2012-01-26 Akim Demaille maint: remove trailing blanks. * src/scan-code.l: Here. 2012-01-26 Akim Demaille yacc: fix YYBACKUP. Reported by David Kastrup: https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html. * data/yacc.c (YYBACKUP): Accept rhs size. Restore the proper state value. * TODO (YYBACKUP): Make it... * tests/actions.at: a new test case. * NEWS, THANKS: Update. 2012-01-25 Akim Demaille maint: update TODO. * TODO (Labeling the symbols): Remove, it's done ("Name references"). 2012-01-25 Akim Demaille maint: update THANKS. * THANKS: Update Tys's address, on his request. 2012-01-25 Akim Demaille maint: fix --gcc-warnings support. * configure.ac: Use enable_gcc_warnings instead of enableval, which is valid only with AC_ARG_ENABLE. 2012-01-25 Akim Demaille maint: silent-rules. * configure.ac: Ask for silent-rules support. Enable it by default. 2012-01-25 Paul Eggert tests: port to Solaris 10 'diff -u' * tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10, where "diff -u X X" outputs "No differences encountered" instead of outputting nothing. Reported by Tomohiro Suzuki in . 2012-01-25 Jim Meyering build: avoid possibly-replaced fprintf in liby-source, yyerror.c * lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf with a mere "%s\n" format. Always return 0 now, on the assumption that the return value was never used anyway. Don't include after all. This avoids a problem reported by Thiru Ramakrishnan in http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html * cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test. * THANKS: Update. 2012-01-24 Paul Eggert tests: port to Solaris 10 'diff -u' * tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10, where "diff -u X X" outputs "No differences encountered" instead of outputting nothing. Reported by Tomohiro Suzuki in . 2012-01-24 Jim Meyering maint: generate ChangeLog from git log * Makefile.am (gen-ChangeLog): New rule. (dist-hook): Depend on it. (EXTRA_DIST): Distribute the two ChangeLog-* files. * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. (bootstrap_post_import_hook): Ensure that ChangeLog exists. * build-aux/git-log-fix: New file. * ChangeLog-2012: Renamed ... * ChangeLog: ... from this. * ChangeLog-1998: Renamed ... * OChangeLog: ...from this * .gitignore: Add ChangeLog. 2012-01-24 Jim Meyering change more quotes in source, and adjust tests to match Run this command to change each `%s' to '%s' in source directories: git grep -l '`%s'\' src djgpp data \ |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g' * data/bison.m4: Affected per the above. * djgpp/subpipe.c: Likewise. * src/files.c: Likewise. * src/getargs.c: Likewise. * src/muscle-tab.c: Likewise. * src/reader.c: Likewise. * tests/glr-regression.at: Adjust to match. * tests/input.at: Likewise. * tests/push.at: Likewise. * tests/skeletons.at: Likewise. 2012-01-23 Jim Meyering quote consistently and make tests pass with new quoting from gnulib Updating to gnulib pulled in new quote and quotarg modules, by which quoting is now done like 'this' rather than `this'. That change induces many "make check" test failures. This change adapts code and tests so that "make check" passes once again. * src/scan-code.l: Quote like 'this', not like `this'. * src/scan-gram.l: Likewise. * src/symtab.c: Likewise. * tests/actions.at: Adjust tests to match. * tests/input.at: Likewise. * tests/named-refs.at: Likewise. * tests/output.at: Likewise. * tests/regression.at: Likewise. * lib/.gitignore: Regenerate. * m4/.gitignore: Likewise. 2012-01-23 Jim Meyering build: avoid possibly-replaced fprintf in liby-source, yyerror.c * lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf with a mere "%s\n" format. Always return 0 now, on the assumption that the return value was never used anyway. Don't include after all. This avoids a problem reported by Thiru Ramakrishnan in http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html * cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test. * THANKS: Update. 2012-01-23 Jim Meyering build: update gnulib and autoconf submodules to latest (cherry picked from commit 728415f885e5cb8e518c8576fa6e1f541e384130) 2012-01-23 Jim Meyering build: manually update bootstrap from gnulib, and adapt Updating to the latest bootstrap from gnulib involves more of a change than usual, and updating to the latest gnulib would involve its own set of challenges with the upcoming quoting changes, so we update bootstrap manually and separately. * bootstrap: Update from gnulib. * lib/Makefile.am: Initialize more variables to empty, so that gnulib.mk can append to them with "+=". * bootstrap.conf (gnulib_mk_hook): Remove. No longer honored. (gnulib_tool_option_extras): Generate gnulib.mk. 2012-01-23 Jim Meyering maint: include first * cfg.mk (exclude_file_name_regexp--sc_require_config_h_first): Exempt data/glr.c and data/yacc.c from the include-config.h-first requirement. 2012-01-23 Jim Meyering build: include from lib/yyerror.c * lib/yyerror.c: Include . 2012-01-23 Jim Meyering maint: list djgpp/subpipe.c in po/POTFILES.in * po/POTFILES.in: Add djgpp/subpipe.c. 2012-01-23 Jim Meyering maint: placate the space-TAB syntax-check * cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt tests/input.at and tests/c++.at, since they appear to use SP-TAB sequences deliberately. * OChangeLog: Remove space-before-TAB. 2012-01-23 Jim Meyering doc: correct typo: s/can not/cannot/ * doc/bison.texinfo (Bug Reports): s/can not/cannot/ And remove trailing blanks. 2012-01-23 Jim Meyering build: generalize etc/prefix-gnulib-mk This script hard-coded "libbison" and lib/gnulib.mk. Adjust the script to require a --lib-name=$gnulib_name option and a FILE argument like lib/$gnulib_mk. Also add support for --help and --version. * etc/prefix-gnulib-mk: Generalize. * bootstrap.conf (bootstrap_post_import_hook): Update its invocation. 2012-01-22 Jim Meyering maint: get gpl-3.0 from gnulib * bootstrap.conf (gnulib_modules): Add gpl-3.0. * doc/gpl-3.0.texi: Remove from version control, now that we get it via gnulib. * doc/.gitignore: Ignore it. 2012-01-20 Akim Demaille maint: be more robust to gnulib's FOO_H variables. * configure.ac: Instead of listing gnulib's variables, look for them among AC_SUBST variables. 2012-01-20 Jim Meyering maint: generate ChangeLog from git log * Makefile.am (gen-ChangeLog): New rule. (dist-hook): Depend on it. (EXTRA_DIST): Distribute the two ChangeLog-* files. * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. (bootstrap_post_import_hook): Ensure that ChangeLog exists. * build-aux/git-log-fix: New file. * ChangeLog-2012: Renamed ... * ChangeLog: ... from this. * ChangeLog-1998: Renamed ... * OChangeLog: ...from this * .gitignore: Add ChangeLog. 2012-01-19 Jim Meyering change more quotes in source, and adjust tests to match Run this command to change each `%s' to '%s' in source directories: git grep -l '`%s'\' src djgpp data \ |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g' * data/bison.m4: Affected per the above. * djgpp/subpipe.c: Likewise. * src/files.c: Likewise. * src/getargs.c: Likewise. * src/muscle-tab.c: Likewise. * src/reader.c: Likewise. * tests/glr-regression.at: Adjust to match. * tests/input.at: Likewise. * tests/push.at: Likewise. * tests/skeletons.at: Likewise. 2012-01-19 Jim Meyering quote consistently and make tests pass with new quoting from gnulib Updating to gnulib pulled in new quote and quotarg modules, by which quoting is now done like 'this' rather than `this'. That change induces many "make check" test failures. This change adapts code and tests so that "make check" passes once again. * src/scan-code.l: Quote like 'this', not like `this'. * src/scan-gram.l: Likewise. * src/symtab.c: Likewise. * tests/actions.at: Adjust tests to match. * tests/input.at: Likewise. * tests/named-refs.at: Likewise. * tests/output.at: Likewise. * tests/regression.at: Likewise. * lib/.gitignore: Regenerate. * m4/.gitignore: Likewise. 2012-01-19 Jim Meyering build: update gnulib and autoconf submodules to latest 2012-01-19 Jim Meyering build: manually update bootstrap from gnulib, and adapt Updating to the latest bootstrap from gnulib involves more of a change than usual, and updating to the latest gnulib would involve its own set of challenges with the upcoming quoting changes, so we update bootstrap manually and separately. * bootstrap: Update from gnulib. * Makefile.am: Initialize more variables to empty, so that gnulib.mk can append to them with "+=". * bootstrap.conf (gnulib_mk_hook): Remove. No longer honored. (bootstrap_post_import_hook): Instead, run the same command, etc/prefix-gnulib-mk lib/$gnulib_mk, via slightly different API. Temporarily disable "bootstrap_sync=true". * etc/prefix-gnulib-mk: Don't prepend "lib/" to tokens like -I$(... or "\". 2012-01-19 Jim Meyering maint: include first * cfg.mk (exclude_file_name_regexp--sc_require_config_h_first): Exempt data/glr.c and data/yacc.c from the include-config.h-first requirement. 2012-01-19 Jim Meyering build: include from lib/yyerror.c * lib/yyerror.c: Include . 2012-01-19 Jim Meyering maint: list djgpp/subpipe.c in po/POTFILES.in * po/POTFILES.in: Add djgpp/subpipe.c. 2012-01-19 Jim Meyering maint: placate the space-TAB syntax-check * cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt tests/input.at and tests/c++.at, since they appear to use SP-TAB sequences deliberately. * OChangeLog: Remove space-before-TAB. 2012-01-19 Jim Meyering maint: remove final trailing space * src/scan-gram.l (%): Remove single space at end of line. 2012-01-19 Jim Meyering maint: get gpl-3.0 from gnulib * bootstrap.conf (gnulib_modules): Add gpl-3.0. * doc/gpl-3.0.texi: Remove from version control, now that we get it via gnulib. * doc/.gitignore: Ignore it. 2012-01-19 Jim Meyering doc: correct typo: s/can not/cannot/ * doc/bison.texinfo (Bug Reports): s/can not/cannot/ And remove trailing blanks. usr/share/doc/libevent/ChangeLog000064400000305466152527147510012635 0ustar00Changes in version 2.1.8-stable (22 January 2017) Libevent 2.1.8-stable, it contains openssl fixes for resetting fd and using bufferevent_openssl_filter_new(). vagrant fixes, some build fixes, increased timeout for some tests (to reduce number of failures due to timing issues), date in RFC1123 format and running tests in parallel. There are highlighted changes above. Build fixes: o Fix _FILE_OFFSET_BITS redinition (solaris/autotools) (336f3b11 Azat Khuzhin) o util-internal: fix __func__ redefinition (netbsd) (253e7fa9 Azat Khuzhin) o Fix signedness differ for iov_base (solaris) (2c62062e Azat Khuzhin) o evutil_time: include when there is only sleep()/usleep() (3e75194c Azat Khuzhin) o http: fix formatter for pritnf for req->ntoread (osx) (1cbf26f6 Azat Khuzhin) Testing environment: o Merge branch 'automake-tests-parallel-v4' (*includes ci bits also*) (59e217df Azat Khuzhin) Vagrant env fixes: o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin) o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin) o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin) o vagrant: add centos box (ca591c5b Azat Khuzhin) Tests: o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin) o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin) o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin) o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin) Bugfixes: o Merge branch 'openssl-filter-fixes-v4' (83e0f43b Azat Khuzhin) o Merge branch 'date-rfc1123' (68def435,4798de6c,4545807d Azat Khuzhin) o Merge branch 'be-openssl-fd-reset-fix-v2' (86fa0070,32adf434 Azat Khuzhin) o Merge branch 'openssl-1.1-init-fixes-v2' (18a161f0 Azat Khuzhin) o Fix incorrect MIME type (23f9a20e johnsonlee) Trivial fixes: Documentation updates: o Update README.md (3821cca1 Breaker) Changes in version 2.1.7-rc (2 Novemer 2016) Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements and plus Vagrantfile for testing under multiple OS'es. Continious Integration: o Use coveralls.io via travis (9ac000c Azat Khuzhin) o travis-ci: use container-based infrastructure (7e12e96 Azat Khuzhin) o travis-ci/osx: fix compiling/linking openssl libraries (9d2f8d4 Azat Khuzhin) o travis-ci: use gcc-5 (fixes osx|gcc failures) (d7ceae5 Azat Khuzhin) o Testing with vagrant for 6 OS and cmake+autoconf (9585338 Azat Khuzhin) o travis-ci/osx: install lcov (e4e099b Azat Khuzhin) Build Improvements/Fixes: o Fix cmake -DEVENT__COVERAGE=ON (40fbffc Azat Khuzhin) o autogen.sh: learn about gmake (9376ac4 Azat Khuzhin) o autogen.sh: remove all autoconf/automake caches, if any (69cce25 Azat Khuzhin) o cmake: fix finding python2, and check that it is really 2 (3453c08 Azat Khuzhin) o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054) (43b69b2 Azat Khuzhin) o cmake: cleanup (dc624ad Zonr Chang) o cmake/win32: fix running regress, but fixing finding python2 interpreter (bcb990a Azat Khuzhin) o cmake: use PYTHON_EXECUTABLE to find python2 (a4d044c Azat Khuzhin) o Merge branch 'force-disable-clockgettime' (83c7cdf Azat Khuzhin) Code Improvements (core) o use ev_uint16_t instead of unsigned short for port (e983712 Thomas Bernard) o Merge branch 'contrib-guide-v2' (b9c5077 Azat Khuzhin) o poll: Prevent libevent from spinning if POLLNVAL occurs (675974c Tim Hentenaar) Testing: o test/regress: cover a polling of invalid fd (cb0df5c Tim Hentenaar) Code Improvements (bufferevent_openssl) o Make it build using OpenSSL 1.1.0 (3e9e0a0 Kurt Roeckx) o Don't call BIO_number_{read|written} on NULL BIOs. (6702da1 Adam Langley) o Switch from a 512 to 2048-bit RSA key. (f9803a6 Adam Langley) Trivial fixes: o Ignore temporary configure files (8fb08ae Azat Khuzhin) o README.md: fix typo: ar -> are (2361616 Simone Basso) o be: just a simple mistake, reinclude the (7521664 Seven) Changes in version 2.1.6-beta (4 July 2016) Libevent 2.1.6-beta contains mostly bug fixes (evbuffers, evthread, evdns, bufferevents, core, http, samples), improvements but mostly to fix some possible issues (EVHTTP_CON_LINGERING_CLOSE), a lot of new unit tests and new appveyor integration. Security Fixes (utils) o evutil_parse_sockaddr_port(): fix buffer overflow (329acc1 Azat Khuzhin) Security Fixes (evdns) o evdns: name_parse(): fix remote stack overread (96f64a0 Azat Khuzhin) o evdns: fix searching empty hostnames (ec65c42 Azat Khuzhin) New APIs (evdns) o New function to get address for nameserver. (537177d Nick Mathewson) New APIs (bufferevents) o expose bufferevent_incref/decref (with fewer modifications) (1ed6718 Mark Ellzey) New APIs (internal) o evdns: export cancel via callbacks in util (like async lib core/extra issues) (8cbe65d Azat Khuzhin) New APIs/Improvements (http) o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue" (ac448a7 Azat Khuzhin) o http: lingering close (like nginx have) for entity-too-large (9fde518 Azat Khuzhin) o http: read server response even after server closed the connection (680742e Azat Khuzhin) o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin) o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR (a50f5f0 Azat Khuzhin) o http: use IP address that we got before (if any) during retrying (54c887d Azat Khuzhin) Bugfixes (core) o Fix getaddrinfo under solaris (for multiprotocol case) (40730ae Azat Khuzhin) o Check for Mac OS X 10.4 kqueue bug properly (df6f99e Mark Mentovai) o event_reinit: make signals works after fork() without evsig_add() (88640aa Nicholas Marriott) o event_reinit: always re-init signal's socketpair (ad0c237 Nicholas Marriott) o Free event queues even for recursive finalizers (7c8d015 Azat Khuzhin) o Fix checking for make_base_notifiable() (f337296 Azat Khuzhin) o Set correct socklen for PF_INET6 sockaddr len (3499ad9 Mark Ellzey) o Fix garbage value in socketpair util function, stdint? (043ae74 Mark Ellzey) o fix the return value of event_deferred_cb_schedule_ (38cef64 Greg Hazel) o event_free_debug_globals_locks(): disable lock debugging (e5c87d1 Azat Khuzhin) o event: call event_disable_debug_mode() in libevent_global_shutdown() (941faae Azat Khuzhin) o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR (597c7b2 Azat Khuzhin) Bugfixes (evthread) o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case (e4556fc Azat Khuzhin) o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown() (ccc5593 Azat Khuzhin) Bugfixes (evdns) o evdns: avoid double-free in evdns_base_free() for probing requests (4db15e0 Azat Khuzhin) o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests (00313c5 Azat Khuzhin) o evdns: evdns_base_free(): free requests before namservers (14f84bb Azat Khuzhin) o evdns: fix randomize-case by make case-insensitive as required (9c238de Azat Khuzhin) Bugfixes (bufferevents) o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2) (3189eb0 Azat Khuzhin) o be_filter: avoid data stuck under active watermarks (b627ad8 Eduardo Panisset) o Fix bufferevent_pair to properly set BEV_EVENT_{READING,WRITING} on flush. (2851889 David Paschich) o be_openssl: clear all pending errors before SSL_*() calls (38e0f4a Azat Khuzhin) o be_sock: cancel in-progress dns requests (86dfd2c Azat Khuzhin) o be_sock: unfreeze buffers on fd changing (255525d Azat Khuzhin) o be_sock: bufferevent_socket_connect_hostname(): make it thread-safe (809bb39 Azat Khuzhin) o be_openssl: don't call do_write() directly from outbuf_cb (da52933 Azat Khuzhin) o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_() (0c66d32 Azat Khuzhin) o be_openssl: don't add events during bev creation (like be_sock) (f4b6284 Azat Khuzhin) o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL (f45d39d Bill Vaughan) o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there (877280d Azat Khuzhin) o be_openssl: don't call set_open_callbacks() if fd == -1 (e8a2da9 Azat Khuzhin) o be_openssl: get rid off hackish "fd_is_set", to fix some corner cases (40b0379 Azat Khuzhin) o be: we don't need to use getpeername() we we have conn_address (2c271e2 Azat Khuzhin) o Call underlying bev ctrl SET_FD on filtered bufferevents (c2aa7dc Mark Ellzey) o be_pair: release shared lock with the latest of bufferevent_pair (92a359e Azat Khuzhin) Bugfixes (http) o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL (17cc636 Mark Ellzey) o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin) o http: set fd to -1 unconditioally, to avoid leaking of DNS requests (7a4b472 Azat Khuzhin) o http: avoid leaking of fd in evhttp_connection_free() (f0e1341 Azat Khuzhin) o http: get fd from be layer during connection reset (4a53c54 Azat Khuzhin) o http: fix EVHTTP_CON_READ_ON_WRITE_ERROR when it doesn't supported by OS (2ff164a Azat Khuzhin) o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds (7c89999 Azat Khuzhin) o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin) o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin) o http: fix conflicts EVHTTP_CON_AUTOFREE and EVHTTP_CON_REUSE_CONNECTED_ADDR (4dc0979 Azat Khuzhin) o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out) (ab3bc69 Azat Khuzhin) o http: install timeout for read too during connect for ssl (040000d Azat Khuzhin) o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases (b0d3964 Azat Khuzhin) o http: fix detecting EOF without write (7ed02ac Azat Khuzhin) o evhttp: Fix failure to send all output data for POST/PUT requests (24eea0d John Ohl) o Fix evhttp_uriencode() regression. (c6b1ec1 Mark Ellzey) o removed unused vars (e94250c Mark Ellzey) o pointer overflow checks for evhttp_uriencode (72afe4c Zonr Chang) Bugfixes (evbuffers) o buffer: fix overflow check in evbuffer_expand_singlechain() (a3f4ccd Azat Khuzhin) o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer (26fd932 Azat Khuzhin) o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required (0abd039 Azat Khuzhin) o be_filter: actually disable output_filter during processing output (c031215 Simon Perreault) o evbuffer_add: Use last_with_datap if set, not last. (a8769ef Marcus Sundberg) o EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD (8674e4f jer-gentoo) Bugfixes (evconnlistener) o listener: unlock lev on error in listener_read_cb() (2a71b33 Azat Khuzhin) o Fix potential fd leak in listener_read_cb() (a695a72 Mark Ellzey) Testing o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris (43eb56c Azat Khuzhin) o test: replace sleeping with syncing pair in main/fork (16d220c Azat Khuzhin) o test/http: do not run tests that based on backlog filling (freebsd) (500b6b7 Azat Khuzhin) o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb" (4410e9d Azat Khuzhin) o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32 (a9e8cd6 Azat Khuzhin) o test/https_basic: increase timeout for complete write (fixes win32) (d5a2f2f Azat Khuzhin) o test: fix building with --disable-thread-support under win32 (a487706 Azat Khuzhin) o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin) o test/buffer: evbuffer_remove_buffer() with empty chains (prepend) (f0cfa14 Azat Khuzhin) o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer()) (2880ce6 Azat Khuzhin) o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin) o test/be_filter: creating test case for data stuck with active watermarks (766194b Eduardo Panisset) o test/http: avoid using conditionals with omitted operands (fixes VS2015) (2a4bf29 Azat Khuzhin) o test/http: don't mix declarations and code (fixes -Wdeclaration-after-statement) (aabf1c2 Azat Khuzhin) o test/buffer: fix leak in test_evbuffer_prepend() (c08d90b Azat Khuzhin) o test/buffer: avoid errors with --no-fork (reinitialize static vars) (e7d1e39 Azat Khuzhin) o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer (e77ff41 Azat Khuzhin) o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin) o test/bufferevent: check that output_filter disabled during processing output (ae28812 Azat Khuzhin) o test/listener: regression for missing unlock in listener_read_cb() (7d85651 Azat Khuzhin) o test/regress: add tests for evbuffer_add() breakage on empty last chain (d5ee739 Marcus Sundberg) o test/http: fix running some tests sequential (with --no-fork) (bddad71 Azat Khuzhin) o test/http: localize evhttp server structure (cbc3209 Azat Khuzhin) o test/dns: regression for empty hostname (d7348ba Azat Khuzhin) o test/http: fix SERVER_TIMEOUT tests under win32 (d49a658 Azat Khuzhin) o test/http: add a helper for creating timedout/failed request (376f107 Azat Khuzhin) o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin) o test/http: cover NS timed out during request cancellations separatelly (0c343af Azat Khuzhin) o test/http: request cancellation with resolving/{conn,write}-timeouts in progress (334340d Azat Khuzhin) o test/http: exit from the loop in the errorcb to wait cancellation (927ab33 Azat Khuzhin) o regress_clean_dnsserver(): reset global port vars (351207f Azat Khuzhin) o test/http: read_on_write_error: fix it for win32 (3b58169 Azat Khuzhin) o test/http: separate coverage for EVHTTP_CON_READ_ON_WRITE_ERROR (5c2b4c1 Azat Khuzhin) o test/http: cover "Expect: 100-continue" client-server interaction (31d8116 Azat Khuzhin) o test/http: *lingering tests shouldn't have "Expect: 100-continue" (ed469ab Azat Khuzhin) o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin) o test/http: avoid huge stack allocations to fix win32 builds (3166765 Azat Khuzhin) o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE (e122ca1 Azat Khuzhin) o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE (f41e1b0 Azat Khuzhin) o test: http/*: update expected HTTP codes for body exceeds `max_body_size` (addf2b9 Azat Khuzhin) o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR (d38a723 Azat Khuzhin) o test: increase buffer size for http/data_length_constraints to trigger EPIPE (0792e1e Azat Khuzhin) o test/tinytest_demo: include for win32 to fix tdm-gcc (f062bbe Azat Khuzhin) o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin) o test/regress: cover existing signal callbacks and fork() + event_reinit() (ceddc60 Azat Khuzhin) o test/regress: cover signals after fork() + event_reinit() (b075b81 Azat Khuzhin) o test/regress: main/fork: rewrite assertions by just removing event in callback (088d8b3 Azat Khuzhin) o test/dns: check exit code of evdns_getaddrinfo() (0b9d432 Azat Khuzhin) o test/dns: cover evdns_getaddrinfo() and evdns_base_free() with @fail_requests (4ad3483 Azat Khuzhin) o test/dns: cover @fail_requests for evdns_base_free() (d6c6fb4 Azat Khuzhin) o test/dns: more graceful coverage of @fail_requests (123d372 Azat Khuzhin) o test/ssl: cover busy-loop (i.e. {read,write}-blocked-on-{write,read} stuff) (da0ea7a Azat Khuzhin) o test/http: write_during_read for https (23c77b6 Azat Khuzhin) o test/http: connection_fail for https (7ea26f7 Azat Khuzhin) o test/http: stream_out for https (ac04968 Azat Khuzhin) o test/http: chunk_out for https (a71ffb9 Azat Khuzhin) o test/regress: fix ssl-less builds (need to make this prettier) (3160716 Azat Khuzhin) o test/http: allow dirty shutdown for ssl to fix https_incomplete (1ede326 Azat Khuzhin) o test/http: https basic (59714b4 Azat Khuzhin) o test/http: incomplete{,_timeout} for https (615490d Azat Khuzhin) o test/http: add simplest test for http/https/https_dirty_shutdown (93b19dc Azat Khuzhin) o test/http: https: retry coverage (7c2d24a Azat Khuzhin) o test/http: https server support (plus some helpers) (a7088ad Azat Khuzhin) o test/http: more sanity checks (a27c53c Azat Khuzhin) o test/ssl: export getkey()/getcert()/get_ssl_ctx()/init_ssl() for https (0c4c387 Azat Khuzhin) o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers (ad52602 Azat Khuzhin) o test/regress_be: socket_filter_inactive: check bufferevent after creation (f8081af Azat Khuzhin) o test/regress_be: cover finalizers from inactive to active queue (337684b Azat Khuzhin) o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin) o test/regress_http: fix compilation warnings (-Wmissing-field-initializers) (cd422e0 Azat Khuzhin) o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for) (f55db98 Azat Khuzhin) o tests/regress_dns: cover that randomize-case works case-insensitive (1e8bfbc Azat Khuzhin) o test: fix bufferevent/bufferevent_pair_release_lock in debug mode (3f749e9 Azat Khuzhin) o test: fix bufferevent/bufferevent_pair_release_lock for freebsd (79f9ace Azat Khuzhin) o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own (a0f308d Azat Khuzhin) o test/regress_be: introduce fake_listener_create() (37dc9e0 Azat Khuzhin) o test/regress_http: cover evhttp_request_own() (6f6fa0d Azat Khuzhin) o test/regress_http: cover write during read (3d15aeb Azat Khuzhin) o test/regress_http: verify that closecb will be called without multiple write (4be6c70 Azat Khuzhin) o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE (6ea6655 Azat Khuzhin) o test/regress_ssl: check events fd/pending after timeout triggered (cdafdf0 Azat Khuzhin) o test/regress_ssl: cover case when server didn't up (failed with timeout) (74845f1 Azat Khuzhin) o test/regress_ssl: covert that we can't change fd with underlying (df507af Azat Khuzhin) o test/regress_ssl: cover that events (read/write) at finish not pending (762edb4 Azat Khuzhin) o test/regress_ssl: cover fd manipulations (b78a829 Azat Khuzhin) o test/regress_ssl: convert open_ssl_bufevs() to mask (46bba73 Azat Khuzhin) o test/regress_ssl: convert client/server to mask too (3455991 Azat Khuzhin) o test/regress_ssl: cover "allow_dirty_shutdown" (0430327 Azat Khuzhin) o test/regress_ssl: convert regress_bufferevent_openssl() to bitmask (342e116 Azat Khuzhin) o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin) o test/regress_http: initialize "dns_base" to avoid reading trash (9f0bff3 Azat Khuzhin) o test/http: cover retrying with saved conn_address by shutting down dns server (f4874d8 Azat Khuzhin) o be_pair/regress: cover use of shared lock (lock/unlock/free) (a558fcd Azat Khuzhin) o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests (3540a19 Azat Khuzhin) Sample code o Fix memory leak in signal-test.c (666db91 basavesh.as) o sample/hello-world: exAmple, not eXMple (2d3cd35 kirillDanshin) o dns-example: allow to set ns from args (df19a97 Azat Khuzhin) o dns-example: convert to getopt() (32f8592 Azat Khuzhin) o http-connect: make it win32 compilable (1bf7595 Azat Khuzhin) o sample/https-client: allow to change path to ca-certificates (fdf713a Azat Khuzhin) o sample/https-client: check for ERR_remove_thread_state() existence (c4e9d9b Azat Khuzhin) o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state() (77ad68a Azat Khuzhin) o sample/https-client: add -timeout option (4637aa8 Azat Khuzhin) o sample/https-client: don't try to free uninitialized SSL (f3d7ff5 Azat Khuzhin) o sample/https-client: graceful exit with freeing memory (to make valgrind happy) (24a1f25 Azat Khuzhin) o https-client: correctly handle URLs with no path (like "https://host:port") (29a0482 Andrey Skriabin) o sample/http-connect: don't use assert() to make it work with NDEBUG (6dc71e7 Azat Khuzhin) o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin) o sample: add HTTP CONNECT tunnelling example using libevent http layer (1d34498 Azat Khuzhin) o Update dns-example. (620ff24 Mark Ellzey) Documentation o Update README.md (b8ec70c Mark Ellzey) o Update README.md (80faee9 Mark Ellzey) o Update README.md (ad4a897 Mark Ellzey) o Update README.md (a2b2e1e Mark Ellzey) o Update README.md (0dfa5dc Mark Ellzey) Code Improvements (evthread) o evthread: add evthread_get_{lock,condition}_callbacks() helpers (c0b34f6 Azat Khuzhin) Code Improvements (core) o util: make @sa const for evutil_socket_connect_() (a8d32c2 Azat Khuzhin) Code Improvements (http) o http: assert's that evbuffer_drain() success on connection reset (2185e63 Azat Khuzhin) o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin) o http: introduce evhttp_is_request_connection_close() helper (6540da3 Azat Khuzhin) Code Improvements (bufferevents) o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op (0ab88c2 Azat Khuzhin) o be_sock: sanity check in bufferevent_socket_set_conn_address() (eedbeff Azat Khuzhin) o be: replace sockaddr_storage with sockaddr_in6 for conn_address (3889612 Azat Khuzhin) o be: replace conn_address by full struct instead of pointer (e5615aa Azat Khuzhin) o bufferevent: move conn_address out from http into bufferevent (8bb3842 Azat Khuzhin) o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin) Cleanups (core) o Refactoring conditional directives that break parts of statements. (4b41eeb lzmths) o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting (a1b142b Azat Khuzhin) o tab (6e7a580 Greg Hazel) Cleanups (evbuffers) o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY (575ff67 Azat Khuzhin) Cleanups (bufferevents) o be_sock: evutil_getaddrinfo_async_() always return 0 (dbff101 Azat Khuzhin) o be_sock: drop be_sock_add() macro (useless and debug unfriendly) (fad5fe2 Azat Khuzhin) o be: introduce bufferevent_generic_adj_existing_timeouts_() (3c1f58f Azat Khuzhin) o be: add_event: use evutil_timerisset() (a96b73b Azat Khuzhin) o be_openssl: introduce be_openssl_auto_fd() helper (2a8a711 Azat Khuzhin) o be_openssl: introduce set_open_callbacks_auto() (510da71 Azat Khuzhin) Cleanups (http) o http: make fallback for EVHTTP_CON_READ_ON_WRITE_ERROR more cleaner (d405492 Azat Khuzhin) o http: coding style issue (365f181 Azat Khuzhin) Cleanups (evdns) o evnds: inline TEST_NAME macro to make debuggin easier (0c615f4 Azat Khuzhin) Portability Fixes o [#372] check for errno.h (3031617 Mark Ellzey) o Fixed Unicode issue in error messages. (e8b7895 Mattes D) o Assume that ke_udata is an integer type on CloudABI. (5602e45 Ed Schouten) o Add missing include of . (b2c68bc Ed Schouten) o Include , and optionally. (c1404b5 Ed Schouten) o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten) o Always define missing TAILQ functions from sys/queue.h (2828bdb Christopher Wiley) o Don't use BSD u_* types. (fd36647 Ed Schouten) o Remove BSD-ism: TIMEVAL_TO_TIMESPEC(). (193c7de Ed Schouten) o be: include all variations of headers for sockaddr_in6 struct (c212291 Azat Khuzhin) o be: fix sockaddr_in6 type definition for win32 (c42bc6b Azat Khuzhin) Continious Integration: o travis: split long lines, and make it cleaner (685a6a1 Azat Khuzhin) o travis: fix autotools on osx by reinstalling libtool (088ea5e Azat Khuzhin) o appveyor/autotools: link with openssl by passing LDFLAGS/CFLAGS (6fcfa25 Azat Khuzhin) o appveyor: image already had openssl installed (4634b85 Azat Khuzhin) o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only) (e9acc44 Azat Khuzhin) o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin) o appveyor: drop shallow_clone, since we use tags for detecting version in cmake (ac90133 Azat Khuzhin) o appveyor: support cmake & autotools using build matrix (like travis-ci has) (8f95015 Azat Khuzhin) o travis-ci/osx: relink gcc/g++ instead of clang (481481d Azat Khuzhin) o travis-ci: enable multi-os mode (osx, linux) (79917e4 Azat Khuzhin) o travis-ci: increase matrix (--disable-foo) (59649f7 Azat Khuzhin) o travis-ci: adjust alignment (c8be339 Azat Khuzhin) o travis: add builds without debug mode into matrix (3e56da2 Azat Khuzhin) o test: run regress with EVENT_DEBUG_MODE=1 and without (cf2cf2a Azat Khuzhin) o Update travis config for status updates (37453ab Mark Ellzey) o Use autotools for appveyor until cmake is fixed. (1cc2e29 Mark Ellzey) o Fix the link for appveyor OpenSSL installer (WIN32) (107d565 Mark Ellzey) o Forgot to install OpenSSL for appveyor (26164a5 Joakim Söderberg) o Add support for appveyor.com windows CI (5f89c37 Joakim Söderberg) Build Improvements/Fixes: o evutil: mark ai_find_protocol() static (prototype-less) (5a157c8 Azat Khuzhin) o cmake/solaris: set CMAKE_REQUIRED_LIBRARIES to fix functions detections (dc95823 Azat Khuzhin) o cmake/solaris: fix building (link with socket,nsl) (050bfc7 Azat Khuzhin) o cmake: check for ZLIB_INCLUDE_DIR, since we can have only library without headers (c4dfb93 Azat Khuzhin) o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin) o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON (de0c196 Azat Khuzhin) o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON (ecb0ec8 Azat Khuzhin) o cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) (e35f224 Azat Khuzhin) o cmake: do not use stderr for notifications/version-info (38716c6 Azat Khuzhin) o autoconf: fix --disable-thread-support build under win32 (bb09535 Azat Khuzhin) o buffer: don't mix code and declarations (8892f4c Azat Khuzhin) o Update gitignore file to ignore cscope gen'ed files (0aaa4fb Neeraj Badlani) o For non GCC/clang on OSX the -Wno-deprecated-declarations may not be valid (b5ca365 Rainer Keller) o automake: define serial-tests only if automake have this option (61179de Azat Khuzhin) o test/automake: don't use paralell test harness (since automake 1.12) (44d755e Azat Khuzhin) o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin) o libevent_core and libevent_extra also deserve a pkgconfig file (b8d7c62 Jan Heylen) o Ignore verify_tests.bat (win32 version) (0f2de10 Azat Khuzhin) o cmake: require 3.1 only for win32 to make it work under ubunty precise (87f7238 Azat Khuzhin) o cmake: require at least 3.1 for target_sources() (c46ead5 Azat Khuzhin) o cmake: fix adding of compiler flags, and now it will (36588e1 Azat Khuzhin) o Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too (f29f59e Azat Khuzhin) o test/regress_ssl: Fix compile problems for win32 (73d0360 Trond Norbye) o util: fix "%zu" format on TDM-gcc/MinGW-w64 (79b69d8 Azat Khuzhin) o cmake: don't define EVENT__NEED_DLLIMPORT always (fixes VS2013 static build) (49bd790 Azat Khuzhin) o Add missing return statement to del_wait_thread so libevent can build. (4f778ab Nick Mathewson) o cmake: fix building dns-example under win32 (missing getopt) (a1609a8 Azat Khuzhin) o visibility: align it to make it more readable (bb6b53d Azat Khuzhin) o cmake: Fix detection of ssize_t/SSIZE_T (7707f6b Azat Khuzhin) o Ignore more configure stuff (configure.lineno) (8d34302 Azat Khuzhin) o Fixed issue with cmake version generation (d56efd9 Mark Ellzey) o Cmake is now officially working. (7f9646d Mark Ellzey) o More cmake updates, lot's of missing definitions (49a5381 Mark Ellzey) o CMake syntax fixes fo .in files (6aad23d Mark Ellzey) o Revert "The Windows socket type is defined as SOCKET." (a264da8 Mark Ellzey) o CMAKE CMAKE CMAKE CLEANUPS (a9db46a Mark Ellzey) o Lot's of cmake updates (8b228e2 Mark Ellzey) o Provide a mechanism for building the library on Windows with different compiler flags. Add a batch file that builds it for the M[DT][d] options and performs a hunt and gather of the different output libraries. (ded8086 billsegall) o The Windows socket type is defined as SOCKET. (c9e6c3d billsegall) o autotools: fix getservbyname() detection (959a4c2 Azat Khuzhin) o Add missing for openssl_hostname_validation module (3316a21 Azat Khuzhin) o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard) o test/regress_be: drop debug __asm__(int3) to fix arm build (8240379 Azat Khuzhin) o event_debug_created_threadable_ctx_: fix compilation without debug mode (a068f2e Azat Khuzhin) o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn) o http: eliminate warning about "socklen" in evhttp_connection_connect_() (dfad1a4 Azat Khuzhin) o Updated gitignore (1dbb55d Mark Ellzey) o Update bench_httpclient.c (cb96931 Seungmo Koo) o *fix: bench_httpclient to support win32 (4e9325e zeliard) o Commented out a WIN32 threading / timing test for now (e84e269 Mark Ellzey) o Fix mixed declarations and code (forbidden by ISO C90) (0c7f217 Thomas Bernard) o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard) o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 (19ba454 Joakim Söderberg) o changed strtotimeval signature as per #211 (bdbc823 Xiao Bao Clark) o Added cmake-generated files to ignore list. (6c12bfe Matyas Dolak) o Ignore `make dist` generated files (8a2c6c7 Azat Khuzhin) Debugging o Debug mode option to error on evthread init AFTER other event calls. (dcfb19a Mark Ellzey) Changes in version 2.1.5-beta (5 January 2015) Security Fixes (evbuffers) o Avoid integer overflow bugs in evbuffer_add() and related functions. See CVE-2014-6272 advisory for more information. (d49bc0e88b81a5812116074dc007f1db0ca1eecd) New APIs (evconnlistener) o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak) Bugfixes (core) o Fix use-after-free error in EV_CLOSURE_EVENT callback (3cc0eac John Ohl) o Fix race caused by event_active (3c7d6fc vjpai) Bugfixes (evbuffer) o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (ba59923) o Consistently check for failure from evbuffer_pullup() (60f8f72) o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (fb7e76a) Bugfixes (windows, IOCP) o be async: avoid double close() (f133b86 Azat Khuzhin) Bugfixes (bufferevents) o Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE (2c82aa0 John Ohl) o make bufferevent_getwatermark api more robust (a21e510 ufo2243) o [Bugfix] fix bufferevent setwatermark suspend_read (b34e4ac ufo2243) o bufferevent_openssl: reset fd_is_set when setfd with -1 is called (3da84c2 Azat Khuzhin) o Fix compilation for older OpenSSL versions. (5c7282f Joakim Soderberg) New APIs (evhttp) o Add evhttp_connection_set_family() to set addrinfo->family for DNS requests (12c29b0 Azat Khuzhin) o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl) New APIs (core) o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard) Bugfixes (evdns) o Load hosts file on Windows. (a0b247c Vilmos Nebehaj) o Don't truncate hosts file path on Windows. (d0dc861 Vilmos Nebehaj) o Fix a crash in evdns related to shutting down evdns (9f39c88,e8fe749) o evdns: avoid read-after-free in evdns_request_timeout_callback() (61262a0 Azat Khuzhin) o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15) o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin) o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin) o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin) Bugfixes (evhttp) o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin) Testing o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin) o test: add family argument for http_connection_test_() (177b8a7 Azat Khuzhin) o test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC (42aefeb Azat Khuzhin) o test/http: add regress test for set family to AF_INET6 (3fbf3cc Azat Khuzhin) o Update to a more recent tinytest_macros. (8da5a18) o test/regress: add simplestsignal: to track reorder bugs separately (b897bef Azat Khuzhin) o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin) o More evbuffer_peek() test cases (154006a) o use correct tt macro for pointer compare (08c88ea) o regress_buffer: fix 'memcmp' compare size (79800df Maks Naumov) o Fix a use-after-free in unit tests. CID 752027 (3739057) o Fix a dead-code warning in unit tests. CID 1193548 (c119f24) o Use evutil_weakrand() in unit tests. (a677b72, 364c110) o Use a more precise calculation for max in time-ratelim.c (ca5b5c7) o Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from() (fb57b8b) o Fix several memory leaks in the unit tests. (89c1a3b) o Add test for evhttp_connection_free_on_completion (b0e9924 John Ohl) o Fix annoying heisenbug in test-time.c (cb73704) Sample code o Make http-server.c output into good html5 (6d72bdc) o Use FindClose for handle from FindFirstFile in http-server.c (6466e88) o https-client: add -retries argument, for connection retries (d9da844 Azat Khuzhin) Bugfixes (build) o Add missing headerfile for cmake (15d90cc Trond Norbye) o ignore one more test binary (b6593aa Michael Richardson) o ignore config.cache/test-driver files (c83f333 Mike Frysinger) o add a --disable-samples configure flag (0c492b3 Mike Frysinger) o Add a few files created by "make verify" to .gitignore. (1a8295a Pierre Phaneuf) o updates in cmake build (27bd9fa Sergey Nikulov) o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang) o Fix CMake shared library build (e69d910 Nobuaki Sukegawa) o Fix warnings when compiling with clang 3.5 (f5b4765 John Ohl) o Fix mixed declarations and code (forbidden by ISO C90) (8afbdbc Thomas Bernard) Bugfixes (miscellaneous) o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin) o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin) o [Bugfix] fix grammer error (3a4d249 ufo2243) o Change return type of evutil_load_windows_system_library_ to HMODULE (f691389) o Fix a c90 warning (76643dd) o Fix a typo in a doxygen comment. Reported by 亦得. (be1aeff) o remove trailing comma from enum (b361b8a Jean-Philippe Ouellet) Bugfixes (FreeBSD) o Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed. (6fd7394 Adrian Chadd) Changes in version 2.1.4-alpha (21 Mar 2014) Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make Libevent more useful, including support for early close detection with epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more evhttp callbacks, and more. There are also numerous bugfixes, including a number for finalize-related issues from 2.1.3-alpha; and an alternative (non-primary!) cmake-based build mechanism. New APIs (core) o Added event_base_get_num_events() (0fa107d Mobai Zhang) o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0) o Add event_base_active_by_signal by analogy (4865943) o Add access to max event count stats (5173bef, efbd3dc, 26230a2 Andrew Sweeney) o Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52 Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e) New APIs (evutil_secure_rng) o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7) New APIs (bufferevents) o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey) o Pass and return const for bufferevent_get_token_bucket_cfg (1c77fbb Mark Ellzey) o Add watermark introspection (4ce242b Ondřej Kuzník) o Add an option to trigger bufferevent I/O callbacks (61ee18b Ondřej Kuzník) o Add an option to trigger bufferevent event callbacks (a7384c7 Ondřej Kuzník) o Clarifications in response to merge req. comments (bd41947 Ondřej Kuzník) o Minor optimizations on bufferevent_trigger options (a3172a4) New APIs (evhttp) o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion) o add a http default content type option (5a5acd9 Nicolas Martyanoff) o http: implement new evhttp_connection_get_addr() api. (0c7f040 Azat Khuzhin) o Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer() (8d8decf Julien BLACHE) o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey) o Provide on request complete callback facility (b083ca0 Andrew Sweeney) o evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage (da86dda Andrew Sweeney) o Update unit test to make sure that the callback happens after the output data is written (b85f398 Andrew Sweeney) Features (evdns) o bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta) Features: (cmake build support) o Initial CMake commit. (e415196 Joakim Soderberg) o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg) o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg) o Generate a dummy evconfig-private.h so things build properly. (ce14def Joakim Soderberg) o Link libm on unix platforms. (58fcd42 Joakim Soderberg) o Added some GCC specific options. (19222e5 Joakim Soderberg) o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg) o Add copyright and licensing files for CMake modules. (c259d53 Joakim Soderberg) o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg) o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg) o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg) o Only test the event backends available on the system. (7ea4159 Joakim Soderberg) o Added a "make verify" target. (e053c4f Joakim Soderberg) o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg) o Get rid of deprecation warnings for OpenSSL on OSX 10.7+ (69c3516 Joakim Söderberg) o Fix kqueue support. (a831f2f Joakim Söderberg) o Added a test for testing if kqueue works with pipes. (2799b35 Joakim Söderberg) o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg) o Minimum required python version is 2.4. (968e97b Joakim Soderberg) o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg) o Add a "make verify_coverage" target generation coverage info. (f2483f8 Joakim Soderberg) o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg) o Only look for ZLib when it is used (if tests are included). (f780593 Joakim Soderberg) o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors. (dd413bd Joakim Soderberg) o Add CMake config and install targets. (f3446ed Joakim Soderberg) o Fix typo (4b754df Joakim Soderberg) o Some work on making it possible to simply do add_subdirectory() on the project. (49ab363 Joakim Soderberg) o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg) o Fix so that old nmake project still builds. (24d6466 Joakim Soderberg) o Rename README to README.md and use markdown to format. (d2bc39a Joakim Soderberg) o Update README with CMake build instructions. (604b8cc Joakim Soderberg) o Clean up the README some. (8d4cb35 JoakimSoderberg) o Forgotten headers for old nmake project compatability. (8697b99 Joakim Soderberg) o Change all uses of WIN32 to _WIN32 (4e14395 Joakim Söderberg) o Fix include bug. (2024467 Joakim Söderberg) o Check if we're on OSX before disabling deprecation in le-proxy (8b40a5b Joakim Söderberg) o Fix broken autotools build. (ae1bd82 Joakim Söderberg) o Disclaimerize cmake a little in the README (d03b5bf) o Fix CMake compile when OpenSSL is disabled. (e423d42 Joakim Söderberg) o CMake: Get rid of python not found warning when regress tests turned off. (d38d798 Joakim Söderberg) o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg) o Guard against EVENT_NOWIN32 being set during testing. (f1715b4 Joakim Soderberg) o Check for OSX when checking for clang. (e212c54 Joakim Soderberg) o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg) o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye) o Rename event_extras to event_extra (a0dd5df Trond Norbye) o Add option to build shared library (4545fa9 Trond Norbye) o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye) o Add cmake-related files to .gitignore (e061321 Trond Norbye) o Export event_extra not event_extras. (2b41bcf Joakim Söderberg) Bugfixes (core) o If evsel->del() fails, don't leave the evmap in an inconsistent state (9b5a527 Maxime Henrion) o Move event_debug_note_teardown_ before mm_free. (69b5c64) o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3) o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe) o Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed John Ohl) o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case (9805972) Bugfixes (evhttp) o Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion) o Fix an unlikely but possible error case for http connections (f22049e) o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum) Bugfixes on 2.0 (Windows) o Use windows vsnprintf fixup logic on all windows environments (e826f19) o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) (b8f5980 Frank Denis) Bugfixes (evutil_secure_rng) o When we seed from /proc/sys/kernel/random/uuid, count it as success (e35b540) o We should return after arc4random_buf() (1ea1f26 Makoto Kato) o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c) o Really remove RNG seeds from the stack (f5ced88) o Fix another arc4random_buf-related warning (e64a2b0) Bugfixes (bufferevents) o Initialize async bufferevent timeout CBs unconditionally (af9b2a7) Bugfixes (evdns) o Checking request nameserver for NULL, before using it. (5c710c0 Belobrov Andrey) o Fix SEGFAULT after evdns_base_resume if no nameservers installed. (14971a8 Azat Khuzhin) o Actually use the log facility for reporting evdns problems. (e1766a1) o Fix SEGFAULT after evdns_base_resume if no nameservers installed. (f8d7df8 Azat Khuzhin) o fix for ServFail from RIPE Atlas release (62f596b Antony Antony) Bugfixes (compilation) o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7) o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e) o Don't use return since return type is void and build error occurs using clang (838161d Makoto Kato) o Use void casts to suppress some "unchecked return value" warns (7080d55) o rpcgen: Generate regress.gen.[c,h] in build rather than src dir (243386c Ross Lagerwall) o Fix a compiler warning when checking for arc4random_buf linker breakage. (5cb3865) o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES (239d834) o Fix a c90 warning (c207682) o Fix consts in WIN32-Code/getopt*.[ch] (57abb35) Bugfixes (locks, synchronization) o Missed lock acquire/release in event_base_cancel_single_callback_() (d3d999a Azat Khuzhin) o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion) Bugfixes (leaks) o Avoid leaking segment mappings when offset is not a page multiple (d409514) Testing o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin) o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin) o Add checks for evhttp_connection_get_server() in unit tests. (fbc323b Maxime Henrion) o Fix a (failure-only) null dereference in the unit tests (1104d0b) o Fix a logic error in test_evbuffer_freeze (7765884) o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506) o Fix some crash-on-fail cases in DNS regression tests (87cd6f0) o DNS tests: add a missing check (f314900) o Finalize tests: add a missing check (82b6956) o test_evutil_rtrim: add another missing check. (e193c95) o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset (611e28b Azat Khuzhin) o regress_http: add tests for evhttp_connection_get_addr() (4dd500c Azat Khuzhin) o Update to the latest version of tinytest (7a80476) o Heap-allocate zlib data structure in regress_zlib tests (4947c18) Performance tweaks (core) o Avoid redundant syscall to make a nonblocking socket nonblocking (42c03da Maxime Henrion) o Avoid redundant syscall if making a socket cloexec twice (1f29b18) o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) Documentation o Document that arc4random is not a great cryptographic PRNG. (6e49696) o Small doxygen tweaks (6e67b51) o Try another doxygen tweak (ccf432b) o Clarify event_base_loop exit conditions (031a803) o Fix a typo (be7bf2c Ondřej Kuzník) o Document deferred eventcb behaviour (13a9a02 Ondřej Kuzník) o Typo fixes from Linus Nordberg (cec62cb, 8cd695b) o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee) Code Improvements (coverity) o Fix a pile of coverity warnings in the unit tests (867f401) o Fix coverity warnings in benchmark tools. (ff7f739) o Whoops; fix compilation in bench.c (544cf88) o Remove spurious checks in evrpc.c error cases (coverity) (991b362) o Fix a couple of compilation warnings in regress_http.c (860767e) o Fix even more coverity warnings. (d240328) o Stop checking for inet_aton; we don't use it. (f665d5c) o Add an include to evrpc-internal to fix openbsd compilation warning (5e161c6) Cleanups o Remove an unreachable return statement in minheap-internal.h (e639a9e) o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e) o Fix needless bufferevent includes in evdns.c (254c04e) o Fix a couple of "#ifdef WIN32" instances (88ecda3) o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd) Sample code o le-proxy: Fail more gracefully if opening listener fails (44b2491) o http-server: drop uri_root from base_url in http-server. (6171e1c Azat Khuzhin) o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky) o https-client: code cleanup (29af65e Alexey Ozeritsky) o https-client: Small tweaks to https-client.c (90786eb) o https-client: Set hostname for SNI extension (by f69m) (d1976f8) o https-client: add a cast to https-client.c (462e6b6) Changes in version 2.1.3-alpha (1 May 2013) Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans up the code in a couple of places. It has a new callback in evhttp for reporting errors during a request, a new feature for allowing evdns to not keep the event_base looping when there are no requests inflight, and example code for writing an https client. Libevent 2.1.3-alpha also has an important new (experimental) event finalization feature to allow safe event teardown in multithreaded programs. This ought to fix the longstanding bug with deadlocks in multithreaded use of SSL-based bufferevents that some people have been experiencing since Libevent 2.0. Core (event finalization) o Implement event_finalize() and related functions to avoid certain deadlocks (8eedeab) o Use finalization feature so bufferevents can avoid deadlocks (02fbf68) o Always run pending finalizers when event_base_free() is called (e9ebef8) o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a) o More documentation for finalization feature (a800b91) o Make the event_finalize* functions return an error code (5d11f4f) o Mark the finalize stuff as experiemental in case it needs to change (23e2e29) Evdns o evdns: New flag to make evdns not prevent the event loop from exiting (6b7fa62 Azat Khuzhin) Bugfixes (Core) o Make event_remove_timer behave correctly with persistent timers (5623e80) o Unit test for event_remove_timer with EV_PERSIST. (96150dd) o Double-check next timeout when adding events (9443868 Nate Rosenblum) o event_base_update_cache_time should be a no-op if the loop isn't running (5e6fa2a) Bugfixes (evhttp, crash fix, from 2.0) o fix #73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel) Bugfixes (compilation and portability, from 2.0) o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739) o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan) o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) (74d4c44 Kevin Bowling) o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat (817ea36) o Rename configure.in to configure.ac to appease newer autoconfs (0c79787) o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e) Bugfixes (resource leaks/lock errors on error, from 2.0) o Avoid leaking fds on evconnlistener with no callback set (69db261) o Avoid double-close on getsockname error in evutil_ersatz_socketpair (0a822a6) o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e) Documentation Fixes (from 2.0) o Fix a mistake in evbuffer_remove() arguments in example http server code (c322c20 Gyepi Sam) o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5) Documentation Fixes o minor documentation typos (809586a Patrick Pelletier) o Fix cut-and-paste err in whatsnew-2.1 (49905ac) o Fix comment to refer to sample/include.am correctly (9e8cdf3 Sebastian Hahn) o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke) o fix some hinky indentation in evhttp_make_request (80e220e Patrick Pelletier) o "buffer" spelling (a452811 Patrick Pelletier) o Specify return behavior in header for evbuffer_pullup() in corner case (cf8d1cd Dan Petro) o Clarify an important point about event_base_foreach_event() (920a5e6) Compilation Fixes/Tool Support o avoid valgrind false positive by zeroing epoll_event (1258614 Patrick Pelletier) o Fix harmless clang enum warning (b452a43 Sebastian Hahn) o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick Pelletier) o Make --disable-libevent-regress work again (787fd74) o Do not build strlcpy.c when it will have no code. (4914620) Portability Fixes o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff) o Preliminary changes for Minix3. (0dda56a Nicholas Heath) o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat (bf278b) o Avoid using $(top_srcdir) in TESTS. (2863c83) o build test/test-script.sh on systems with a less-featureful $< (f935e21) o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d) Evhttp changes: o Fix ipv6 support for http. When URL contain domain, not IP address. (71e709c Azat Khuzhin) o uri decode: fix for warning "use of uninitialised value" (64b6ece Azat Khuzhin) o uri decode: changed the test for the existence of the next character (e1903e3 Azat Khuzhin) o Move prototype of evhttp_decode_uri_internal() to http-internal.h (de8101a Azat Khuzhin) o Test: decoding just part of string with evhttp_decode_uri_internal() (1367653 Azat Khuzhin) o Add new error_cb for actual reporting of HTTP request errors. (7b07719 Azat Khuzhin) o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217 Azat Khuzhin) o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin) Testing o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin) o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode (2fad0f3) o Add a test with an active_later event at event_base_free time. (1c3147f) o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f) o Add some verbose notes to bufferevent unit tests (9d893c9) o New test for active_later->active transition on event_active (a153874) o New tests for event_base_foreach_event() (0b096ef) o Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time() (30ea291) o A test for event_get_assignment() (f09629e) o More unit tests for initializing common timeouts. (d596739) o Fix a bug in the new main/event_foreach test (702c9aa) Windows: o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af Patrick Pelletier) o a program to print out the error strings for winsock errors (7296512 Patrick Pelletier) o Fix a warning introduced in 0c6ec5d8 (eeb700c) o Fix another warning introduced in 0c6ec5d8 (ed26561) Examples (http) o Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl. (be46c99 Catalin Patulea) o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier) o https-client was putting newlines at 256-byte boundaries (42d7441 Patrick Pelletier) o better handling of OpenSSL errors (5754d96 Patrick Pelletier) o use Debian's default root certificate location (aacd674 Patrick Pelletier) o use iSECPartners code to validate hostname in certificate (64d9f16 Patrick Pelletier) o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5 Patrick Pelletier) o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier) o Another tweak to https-client.c (95acdaa) o Remove http_struct.h usage in sample/https-client.c (8a90a85) Changes in version 2.1.2-alpha (18 Nov 2012) Libevent 2.1.2-alpha includes more portable for monotonic timers, refactors much of Libevent's internal and external infrastructure, closes some longstanding gaps in the interface, makde other improvements. Ths log below tries to organize features by rough area of effect. It omits a few commits which were pure bugfixes on other commits listed below. For more detail, see the git changelogs. For more insight, see the "whatsnew-2.1.txt" document included in the Libevent 2.1.2-alpha distribution. Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable through 2.0.21-stable inclusive. Performance (core): o Replace pipe-based notification with EVFILT_USER where possible. This should make multithreaded programs on OSX and *BSD alert the main thread a little faster. (53a07fe) o Make th_base_lock nonrecursive. (9cd5acb) New/Changed API Functions: o New event_get_priority() function to return an event's priority (f90e255) o Add a bufferevent_get_priority() function (bd39554) o Add an event_base_loopcontinue() to tell Libevent to rescan for more events right away (7d6aa5e) o Add a new callback to get called on evbuffer_file_segment free (e9f8feb yangacer, 64051b9) o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman Puls, 232055e, ffe1643) o Add an event_remove_timer() to remove timer on an event without deleting it (e3b2e08) o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics (9dee36b) o Rename event_enable_lock_debuging() to ..._debugging(). (The old name should still work.) (07e132e) o Add missing implementation for event_enable_debug_logging (3b3e21d) PORTABLE MONOTONIC TIMERS: Libevent 2.1.2 includes internal support for monotonic timers on (nearly) all supported platforms, including Windows, and OSX. Libevent applications should now be more resilient to jumps forwards or backwards in the system clock. Also, on Linux systems with epoll, we now optionally support microsecond-level timeouts (whereas epoll only supports millisecond-precision timeouts). o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9) o Do not track use_monotonic field when is no monotonic clock (cb653a0) o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision (ddd69d3) o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7) o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a) o Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation (f5e4eb0) o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer (a2598ec) o Implement fast/precise monotonic clocks on Windows (2c47045) o Simple unit tests for monotonic timers (630f077) o Improve the monotonic-time unit test: make it check the step size (7428c78) o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision (26c7582) o Split out time-related evutil functions into a new evutil_time.c (c419485) o Split out time-related prototypes into time-internal.h (71bca50) o Add evutil_time.obj to Makefile.nmake (0ba0683) o Avoid giving a spurious warning when timerfd support is unavailable (1aaf9f0 Dave Hart) o Make test_evutil_monotonic a little more tolerant (def3b83) o Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE (9be5468) EVENT_BASE_ONCE LEAKS: If a callback added by event_base_once() is never invoked, Libevent no longer leaks internal memory. o Free dangling event_once objects on event_base_free() (c17dd59) o Add a unit test in which an event is created with event_base_once() but never fires (4343edf) TESTING SUPPORT, FIXES AND IMPROVEMENTS: Libevent now disables by default its unit tests that would touch the network, or that tend to fail on heavily-loaded systems. To re-enable them, invoke the ./test/regress program with the @all alias. o Simplify test.sh code significantly. (9b856fd Ross Lagerwall) o Make all tests that hit the network disabled by default (f2cea87) o Avoid a resource leak on error in http client benchmark (ea92fba) o Update to latest tinytest (911b4f0349377) (ef7c4f7) o Avoid (unlikely) overflow in bench_httpclient.c (5671033) o Shave 700 msec off the persistent_timeout_jump test (21205b8) o Check return value of write() in regress.c (c8009d2) o Make load-dependent monotonic timer tests off-by-default (2b6fe8b) o Add deferred_cb_skew to list of timing-dependent tests (34c8f31) o Avoid test -e; older shs don't have one. (f1bd938) o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) o Fix a couple of compile warnings in the unit tests (5a9a014) MISC: o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas Marriott, 3aa4415) INFRASTRUCTURE (Active-later events): As a simplification and optimization to Libevent's "deferred callback" logic (introduced in 2.0 to avoid callback recursion), Libevent now treats all of its deferrable callback types using the same logic it uses for active events. Now deferred events no longer cause priority inversion, no longer require special code to cancel them, and so on. o Refactor the callback part of an event into its own event_callback type (cba59e5) o Add "active later" event_callbacks to supersede deferred (745a63d) o event_base_assert_ok: check value of event_active_count for correctness (fec8bae) o Replace deferred_cbs with event_callback-based implementation. (ae2b84b) o Replace more deferred_cb names with event_callback (a4079aa) o Give event_base_process_active a single exit path (581b5be) o Restore our priority-inversion-prevention code with deferreds (c0e425a) o Refactor event_persist_closure: raise and extract some common logic (bec22b4) o Remove the unused bits from EVLIST_ALL (9889a3d) ||||||| merged common ancestors Changes in version 2.0.22-stable (?? Dec 2013) (As of 3b77d62829c4393bda6f9105a5d3b73b48a64b71.) BUGFIXES (evhttp) o fix #73 and fix http_connection_fail_test to catch it (crash fix) (b618204 Greg Hazel) o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum) BUGFIXES (compilation and portability) o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739) o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan) o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) (74d4c44 Kevin Bowling) o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat (817ea36) o Rename configure.in to configure.ac to appease newer autoconfs (0c79787) o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e) o Use windows vsnprintf fixup logic on all windows environments (e826f19) o Fix a compiler warning when checking for arc4random_buf linker breakage. (5cb3865) o Fix another arc4random_buf-related warning (e64a2b0) BUGFIXES (resource leaks/lock errors on error) o Avoid leaking fds on evconnlistener with no callback set (69db261) o Avoid double-close on getsockname error in evutil_ersatz_socketpair (0a822a6) o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e) o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) (b8f5980 Frank Denis) BUGFIXES (miscellaneous) o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c, bb52471) o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) BUFGIXES (evdns) o Checking request nameserver for NULL, before using it. (5c710c0 Belobrov Andrey) o Fix SEGFAULT after evdns_base_resume if no nameservers installed. (f8d7df8 Azat Khuzhin) BUGFIXES (evutil_secure_random) o When we seed from /proc/sys/kernel/random/uuid, count it as success (e35b540) o Document that arc4random is not a great cryptographic PRNG. (6e49696) o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7) o Really remove RNG seeds from the stack (f5ced88) DOCUMENTATION FIXES o Fix a mistake in evbuffer_remove() arguments in example http server code (c322c20 Gyepi Sam) o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5) Changes in version 2.0.21-stable (18 Nov 2012) BUGFIXES: o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch) o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch) o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev) o build: Use python2 rather than python (0eb0109 Ross Lagerwall) o build: Compile without warnings on mingw64 (94866c2) o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4) o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4) o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez) o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3) o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier) o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9) Changes in version 2.0.20-stable (23 Aug 2012) BUGFIXES: o core: Make event_pending() threadsafe. (be7a95c Simon Liu) o win32: avoid crash when waiting forever on zero fds. (160e58b) o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31) o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c) o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67) o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3) o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel) o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43) PORTABILITY FIXES: o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel) o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn) o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6) BUILD FIXES: o Add GCC annotations so that the vsprintf functions get checked properly (117e327) o Fix an unused variable warning on *BSD. (c0720c1) UNIT TEST FIXES: o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall) o Remove deadcode in http regression tests. Found by coverity. (5553346) o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777) o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d) o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d) o Fix resource leaks in the unit tests; found by coverity (270f279) o Add some missing null checks to unit tests; found by coverity (f021c3d) o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf) o Remove unused variable; spotted by coverity (6355b2a) o Add checks to various return values in unit tests. Found by coverity (b9e7329) o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0) Changes in version 2.0.19-stable (3 May 2012) BUGFIXES (CORE): o Refactor event_persist_closure: raise and extract some common logic (bec22b4) o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c) o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40) BUGFIXES (SSL): o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey) BUGFIXES (DNS): o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel) o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel) o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a) DOCUMENTATION FIXES: o Fix a typo in the bufferevent documentation (98e9119) o Add missing ) to changelog; spotted by rransom (4c7ee6b) o Fix the website URL in the readme (f775521) COMPILATION FIXES: o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae) o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn) o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg) FORWARD-COMPATIBILITY: o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2) TESTING/DEBUGGING SUPPORT: o dns-example.c can now take a resolv.conf file on the commandline (6610fa5) o Make some evdns.c debug logs more verbose (d873d67) o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd) Changes in version 2.0.18-stable (22 Mar 2012) BUGFIXES (core): o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42) BUGFIXES (kqueue): o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn) BUILD FIXES: o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey) o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey) o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn) BUGFIXES (dns): o Stop crashing in evdns when nameserver probes give a weird error (bec5068) Changes in version 2.0.17-stable (10 Feb 2012) BUGFIXES (core): o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5) o check for sysctl before we use it (358c745 Mike Frysinger) o Remove bogus casts of socket to int before calling ev_callback (f032516) o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720) o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc) o Fix a fd leak in event_reinit() (3f18ad1) o Do a memberwise comparison of threading function tables (c94a5f2 Nate R) o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill) o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6) o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott) BUGFIXES (evbuffer and bufferevents): o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg) o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812) BUGFIXES (evhttp): o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea) BUGFIXES (evdns): o evdns: fix a bug in circular-queue implementation (d6094b1) BUILD FIXES: o Fix a silly compilation error with the sun compiler (1927776 Colin Watt) o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c) DOCUMENTATION FIXES: o Slightly clarify evbuffer_peek documentation (7bbf6ca) o Update copyright notices to 2012 (e49e289) NEW APIS: o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker) TESTS AND TEST FIXES: o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7) o Add function to check referential integrity of an event_base (27737d5) o Check event_base correctness at end of each unit test (3312b02) o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187) o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259) Changes in version 2.0.16-stable (18 Nov 2011) BUGFIXES (core): o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov) o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles) o Fix compile warning from saying event2/*.h inside a comment (447b0ba) o Warn when unable to construct base because of failing make_base_notifiable (4e797f3) o Don't try to make notifiable event_base when no threading fns are configured (e787413) BUGFIXES (evbuffer): o unit test for remove_buffer bug (90bd620 Greg Hazel) o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c) BUGFIXES (bufferevent_openssl): o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey) o Move SSL rate-limit enforcement into bytes_to_read() (96c562f) o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey) BUGFIXES (dns) o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov) TESTING: o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov) o Test for commit aff6ba1 (f7841bf Leonid Evdokimov) o Style and comment tweaks for dns/leak* tests (5e42202) o improve test to remove at least one buffer from src (7eb52eb Greg Hazel) DOCUMENTATION: o Add note about evhttp_send_reply_end to its doxygen (724bfb5) o Update copyright dates to 2011. (3c824bd) o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid) o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem) Changes in version 2.0.15-stable (12 Oct 2011) BUGFIXES (DNS): o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov) o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov) BUFGIXES (bufferevents and evbuffers): o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex) o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9) BUGFIXES (event loop): o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a) DOCUMENTATION FIXES: o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov) o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel) BUILD AND TESTING FIXES: o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev) o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382) o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey) o Make write-checking fixes use tt_fail_perror (2b76847) o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7) Changes in version 2.0.14-stable (31 Aug 2011) BUGFIXES (bufferevents and evbuffers): o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch) o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn) o Fix handling of group rate limits under 64 bytes of burst (6d5440e) o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf) o Make rate limiting work with common_timeout logic (5b18f13) o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch) BUGFIXES (IOCP): o IOCP: don't launch reads or writes on an unconnected socket (495c227) o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b) o Have test-ratelim.c support IOCP (0ff2c5a) o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd) o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d) BUGFIXES (other): o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov) o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov) BUILD AND TESTING FIXES: o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston) o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart) o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn) Changes in version 2.0.13-stable (18 Jul 2011) BUGFIXES o Avoid race-condition when initializing global locks (b683cae) o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch) o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey) o Avoid a segfault when all methods are disabled or broken (27ce38b) o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a) o Add some missing checks for mm_calloc failures (89d5e09) o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d) o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab) o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid) o Use the correct printf args when formatting size_t (3203f88) o Complain if the caller tries to change threading cbs after setting them (cb6ecee) DOCUMENTATION FIXES AND IMPROVEMENTS o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac) o Update Doxyfile to produce more useful output (aea0555) TEST FIXES o Fix up test_evutil_snprintf (caf695a) o Fix tinytest invocation from windows shell (57def34 Ed Day) BUILD FIXES o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d) o Fix select.c compilation on systems with no NFDBITS (49d1136) o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott) o Don't break when building tests from git without python installed (b031adf) o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn) o Fix AIX build issue with TAILQ_FOREACH definition (e934096) Changes in version 2.0.12-stable (4 Jun 2011) BUGFIXES o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0) o Fix an assert-inducing fencepost bug in the select backend (d90149d) o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko) o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1) o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid) o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey) o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey) DOCUMENTATION: o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d) BUILD FIXES o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin) o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin) o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn) o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn) o Correctly detect openssl on windows (6619385 Sebastian Hahn) o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn) o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart) o Fix new warnings from GCC 4.6 (06a714f) o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin) o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin) o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin) o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin) o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin) o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin) o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin) o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin) o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn) o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin) o cygwin: make it possible to build DLLs (d54d3fc) Changes in version 2.0.11-stable (27 Apr 2011) [Autogenerated from the Git log, sorted and cleaned by hand.] BUGFIXES: o Fix evport handling of POLLHUP and POLLERR (b42ce4b) o Fix compilation on Windows with NDEBUG (cb8059d) o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye) o Detect and handle more allocation failures. (666b096 Jardel Weyrich) o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich) o Handle resize failures in the select backend better. (83e805a) o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b) o Make --enable-gcc-warnings a no-op if not using gcc (3267703) o Fix a type error in our (unused) arc4random_stir() (f736198) o Correctly detect and stop non-chunked http requests when the body is too long (63a715e) o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7) o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko) o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot) o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko) o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko) o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko) o Fix a crash bug in evdns server circular list code (00e91b3) o Handle calloc failure in evdns. (Found by Dave Hart) (364291e) o Fix a memory leak on win32 socket->event map. (b4f89f0) o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn) o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn) PORTABILITY: o Fall back to sscanf if we have no other way to implement strtoll (453317b) o Build correctly on platforms without sockaddr_storage (9184563) o Try to build correctly on platforms with no IPv6 support (713c254) o Build on systems without AI_PASSIVE (cb92113) o Fix http unit test on non-windows platforms without getaddrinfo (6092f12) o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0) o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn) o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn) o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn) o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn) o Check for allocation failures in apply_socktype_protocol_hack (637d17a) o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b) o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68) DEFENSIVE PROGRAMMING: o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7) BUGS IN TESTS: o Fix test.sh output on solaris (b4f89b6 Dave Hart) o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn) o Use %s with printf in test.sh (039b9bd) o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn) o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn) o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn) o add some (void) casts for unused variables (65707d7 Sebastian Hahn) o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn) o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn) o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn) o Remote some dead code from dns-example.c (744c745 Sebastian Hahn) o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn) BUILD FIXES: o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn) o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn) o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn) o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart) o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart) o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn) FEATURES: o Make URI parser able to tolerate nonconformant URIs. (95060b5) DOCUMENTATION: o Clarify event_set_mem_functions doc (926f816) o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924) o fix spelling mistake in whatsnew-2.0.txt (deb2f73) o Fix sample/http-server ipv6 fixes (eb692be) o Comment internal headers used in sample code. (4eb281c) o Be explicit about how long event loops run in event.h documentation (f95bafb) o Add comment to configure.in to explain gc-sections test logic (c621359) o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665) BUILD IMPROVEMENTS: Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes numerous other build system. Parallel builds should be faster, and all builds should be quieter. o Split long lists in Makefile.am into one-item-per-line (2711cda) o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall) o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier) o Use newer syntax for autoconf/automake init (7d60ba8) o Enable silent build rules by default. Override with V=1 (7b18e5c) o Switch to non-recursive makefiles (7092f3b) o Rename subordinate Makefile.ams to include.am (6cdfeeb) o Make quiet build even quieter (371a123) o New --quiet option for event_rpcgen.py (aa59c1e) o Be quiet when making regress.gen.[ch] (607a8ff) o Fix handling of no-python case for nonrecursive make (1e3123d) o We now require automake 1.9 or later. Modernize! (b7f6e89) o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall) o Use correct openssl libs and includes in pkgconfig file (d70af27) o Use the same CFLAGS for openssl when building unit tests as with libevent (1d9d511) DOCUMENTATION o Note that make_base_notifiable should not be necessary (26ee5f9) o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb) o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee) o Make it more clear that NOLOCK means "I promise, no multithreading" (9444524) o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall) o Make the Makefile.nmake warning slightly less dire (e7bf4c8) o Fix typo : events instead of evets (05f1aca Azat Khuzhin) o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart (6bde2ef Patrick Pelletier) EVHTTP: o ignore LWS after field-content in headers (370a2c0 Artem Germanov) o Clean up rtrim implementation (aa59d80) o Remove trailing tabs in HTTP headers as well. (ac42519) o Remove internal ws from multiline http headers correctly (c6ff381) o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af) o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren) o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in evhttp_connection_fail_ (7afbd60) o preserve errno in evhttp_connection_fail_ for inspection by the callback (36d0ee5 Patrick Pelletier) BUGFIXES: o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b) o Avoid double-free on error in evbuffer_add_file. Found by coverity. (6a81b1f) o Fix another possible uninitialized read in dns regression tests. Found by coverity. (13525c5) o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1) o Avoid memory leak in test_event_calloc unit test; found by coverity (92817a1) o Fix a shadowed variable in addfile_test_readcb; found by coverity (225344c) o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity (6487f63) o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786 Joachim Bauch) o Make event_base_getnpriorities work with old "implicit base" code (c46cb9c) o Simplify and correct evutil_open_closeonexec_ (0de587f) o Fix event_dlist definition when sys/queue not included (81b6209 Derrick Pallas) Changes in version 2.1.1-alpha (4 Apr 2012) Libevent 2.1.1-alpha includes a number of new features and performance improvements. The log below tries to organize them by rough area of effect. It omits some commits which were pure bugfixes on other commits listed below. For more detail, see the git changelogs. For more insight, see the "whatsnew-2.1.txt" document included in the Libevent 2.1.1-alpha distribution. Performance: Core o Replace several TAILQ users with LIST. LIST can be a little faster than TAILQ for cases where we don't need queue-like behavior. (f9db33d, 6494772, d313c29, 974d004) o Disabled code to optimize the case where we reinsert an existing timeout (e47042f, 09cbc3d) o Remove a needless base-notify when rescheduling the first timeout (77a96fd) o Save a needless comparison when removing/adjusting timeouts (dd5189b) o Possible optimization: split event_queue_insert/remove into separate functions. needs testing (efc4dc5) o Make event_count maintenance branchless at the expense of an extra shift. Needs benchmarking (d1cee3b) o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime comparison (2a83ecc) o Optimization in event_process_active(): ignore maxcb & endtime for highest priority events. (a9866aa Alexander Drozdov) o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95) o Remove the eventqueue list and the ev_next pointers. (604569b 066775e) Performance: Evbuffers o Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib) o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139) o Fix a bug in the improved EOL_CRLF code (d927965) o Remove a needless branch in evbuffer_drain() (d19a326) Performance: Linux o Infrastructure for using faster/fewer syscalls when creating sockets (a1c042b) o Minimize syscalls during socket creation in listener.c (7e9e289) o Use a wrapper function to create the notification pipe/socketpair/eventfd (ca76cd9) o Use pipes for telling signals to main thread when possible (a35f396) o Save syscalls when constructing listener sockets for evhttp (af6c9d8) o Save some syscalls when creating evdns sockets (713e570) o Save some syscalls when constructing a socket for a bufferevent (33fca62) o Prefer epoll_create1 on Linuxen that have it (bac906c) Performance: Epoll backend o Use current event set rather than current pending change when deciding whether to no-op a del (04ba27e Mike Smellie) o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6) o Clean up error handling in epoll_apply_one_change() a little (2d55a19) Performance: Evport backend o evport: use evmap_io to track fdinfo status. Should save time and RAM. (4687ce4) o evport: Remove a linear search over recent events when reactivating them (0f77efe) o evport: Use portev_user to remember fdinfo struct (276ec0e) o evport: don't scan more events in ed_pending than needed (849a5cf) o evport: Remove artificial low limit on max events per getn call (c04d927) o Reenable main/many_events_slow_add for evport in 2.1 (e903db3) Performance: Windows o Use GetSystemTimeAsFileTime to implement gettimeofday on win32. It's faster and more accurate than our old approach. (b8b8aa5) New functions and features: debugging o Add event_enable_debug_logging() to control use of debug logs (e30a82f) New functions and features: core o Add event_config function to limit time/callbacks between calls to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd) o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending (084e68f) o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov) o Make evbase_priority_init() and evbase_get_npriorities() threadsafe (3c55b5e) o New event_base_update_cache_time() to set cached_tv to current time (212533e Abel Mathew) o Add event_self_cbarg() to be used in conjunction with event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c, 33e43ef) o Add a new libevent_global_shutdown() to free all globals before exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b) o Use getifaddrs to detect our interfaces if possible (7085a45) o Add event_base_get_running_event() to get the event* whose cb we are in (c5732fd, 13dad99) New functions and features: building o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn) New functions and features: evbuffers o Add evbuffer_add_file_segment() so one fd can be used efficiently in more than one evbuffer_add_file at a time (e72afae, c2d9884, 3f405d2, 0aad014) o Fix windows file segment mappings (8254de7) o Allow evbuffer_ptr_set to yield a point just after the end of the buffer. (e6fe1da) o Allow evbuffer_ptr to point to position 0 in an empty evbuffer (7aeb2fd Nir Soffer) o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer) o support adding buffers to other buffers non-destructively (9d7368a Joachim Bauch) o prevent nested multicast references, reworked locking (26041a8 Joachim Bauch) o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer (d7a8b36 Andrea Montefusco, 54142c9) o Make evbuffer_file_segment_types adaptable (c6bbbf1) o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398) o Add evbuffer_copyout_from to copy data from the middle of a buffer (27e2225) New functions and features: bufferevents o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea) o Tweak allow_dirty_shutdown documentation (a44cd2b) o Fix two issues in the allow_dirty_shutdown code. (f3b89de) o Add a bufferevent_getcb() to find a bufferevent's current callbacks (a650394) o bufferevent: Add functions to set/get max_single_read/write values. (998c813 Alexander Drozdov) o bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a Catalin Patulea) New functions and features: evconnlisteners o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey, a270728) o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728) o Allow evconnlistener to be created in disabled state. (9593a33 Alexander Drozdov) o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too (4970329) Evhttp: o Add new evhttp_{connection_}set_timeout_tv() functions to set finger-grained http timeouts (6350e6c Constantine Verutin) o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey) o Add missing break to evhttp_parse_request_line (0fcc536) o Add evhttp callback for bufferevent creation; this lets evhttp support SSL. (8d3a850) o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758) o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra) Build improvements: o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on patches for correctness and robustness. (1fa7dbe Kevin Bowling) o Filter '# define' statements from autoconf and generate event-private.h (321b558 Kevin Bowling) o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling) o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93 Kevin Bowling) o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling) o Use a Configuration Header Template for evconfig-private.h (868f888 Kevin Bowling) o Fix a comment warning and add evconfig-private.h to .gitignore (f6d66bc Kevin Bowling) o Include evconfig-private.h in internal files for great good. (0915ca0 Kevin Bowling) o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) (ad03952 Kevin Bowling) o Prefer the ./configure evconfig-private.h in MinGW, just in case. (f964b72 Kevin Bowling) o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling) o Add evconfig-private to remaining files (ded0a09 Kevin Bowling) o Allow use of --enable-silent-rules for quieter compilation with automake 1.11 (f1f8514 Dave Hart) o Use "_WIN32", not WIN32: it's standard and we don't need to fake it (9f560b) o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin) o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin) o Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff. (674dc3d Harlan Stenn) o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn) o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b Harlan Stenn) o Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS). (46f1769 Zack Weinberg) o Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror (d46517e Sebastian Hahn) o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad) o Move libevent 1.x headers to include/, to put all public headers in one place. (bbea8d6) o Put #ifdef around some files to support alternate build systems. (76d4c92 Ross Lagerwall) o Also make win32select.c conditional for IDE users (bf2c5a7) Debugging: o Add a magic number to debug_locks to better catch lock-coding errors. (b4a29c0 Dave Hart) o munge the debug_lock signature before freeing it: it might help us catch use-after-free (f28084d) o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey) o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey) o Added usec debug in another area for debug (3baab0d Mark Ellzey) o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey) o more event dbg updates (6727543 Mark Ellzey) o Clarify event_enable_debug_logging a little (6207826) o Make --enable-verbose-debug option match its help text (10c3450) o Add argument checks to some memory functions in `event.c'. (c8953d1 Mansour Moufid) Testing: o More abstraction in test.sh (cd74c4e) o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer) o Tweaks to return types with end-of-buf ptrs (9ab8ab8) o Add an (internal) usleep function for use by unit tests (f25d9d3) o Synchronize with upstream tinytest (6c81be7) o Make test-changelist faster (7622d26) o Reduce the timeout in the main/fork test. (ab14f7c) o New evhttp function to adjust initial retry timeout (350a3c4) o Make regression tests run over 3x faster. (67a1763) o Use test_timeval_diff_eq more consistently (b77b43f) o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f) o When including an -internal.h header outside the main tree, do so early (95e2455) o Add a new test: test-fdleak which tests for fd leaks by creating many sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc) o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce) o Test more bufferevent_ratelim features (c24f91a) Documentation: o Improve evbuffer_ptr documentation (261ba63) o added comments to describe refcounting of multicast chains (ba24f61 Joachim Bauch) o Add doxygen for event_base_dump_events (cad5753) OSX: o Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds (1fb5cc6) KQueue: o Use SIG_IGN instead of a do-nothing handler for signal events with kqueue (148458e Zack Weinberg) evprc: o event_rpcgen.py now prints status information to stdout and errors to stderr. (ffb0ba0 Ross Lagerwall) Code improvement and refactoring: o Make event_reinit() more robust and maintainable (272033e) o Restore fast-path event_reinit() for slower backends (2c4b5de) o Check changelist as part of checking representational integrity (39b3f38) o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn) o Refactor the functions that run over every event. (c89b4e6) o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90) o Make event-config.h depend on Makefile.am (2958a5c) Build fixes: o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn) C standards conformance: o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69) o Convert event-config.h macros to avoid reserved identifiers (68120d9) o Generate event-config.h using the correct macros. (f82c57e) o Convert include-guard macro convention to avoid reserved identifiers (3f8c7cd) o Make event_rpcgen.py output conform to identifier conventions (372bff1) o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0) o Make the generated event-config.h use correct include guards (639383a) o Fix all identifiers with names beginning with underscore. (cb9da0b) o Make event_rpcgen.py output conform to identifier conventions, more (bcefd24) o Fix some problems introduced by automated identifier cleanup script (c963534) o Have all visible internal function names end with an underscore. (8ac3c4c) o Apply the naming convention to our EVUTIL_IS* functions (c7848fa) o Clean up lingering _identifiers. (946b584) o Fix doxygen to use new macro conventions (da455e9) Bugfixes: o Do not use system EAI/AI values if we are not using the system getaddrinfo. (7bcac07) Sample Code: o Fix up sample/event-test.c to use newer interfaces and make it actually work. (19bab4f Ross Lagerwall) o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross Lagerwall) o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall) o event-read-fifo: Use EV_PERSIST appropriately (24dab0b) usr/share/doc/iftop/ChangeLog000064400000017462152527155140012140 0ustar00Change log for iftop Attributions apply to all preceding items up to the next blank line. Unattributed items are by Paul Warren and Chris Lightfoot. 1.0 * Choose first running interface, rather than first "up" interface (Redhat #1403025) Robert Scheck * Support for unlimited number of lines of output for text mode Roman Hoog Antink * Fix handling of short packets Frédéric Perrin * Fix MAC address display Kevin Darbyshire-Bryant * Clean up libpcap on exit Brian Russell * Remove blinking cursor from UI Gerrit Renker * Treat multicast packets as incoming, rather than incoming (IPv4) or not at all (IPv6). Andreas Schwab * Minor fixes to the man page * Man page documentation of -t mode. * Compile time warning fixes. Markus Koschany * Added text output mode (-t option) Roman Hoog Antink (originally by Patrik Bless) * Fix for memory leak when DNS resolution is turned off http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677141 Olivier Allard-Jacquin * Various typos in the UI Gerben Roest * Documentation fixes A. Costa (via Debian) * Fix for armeb specific bug Lennert Buytenhek (via Debian) * Fix frozen order drives line totals crazy. Max Alekseyev (via Debian) * Fix for crash on arm. Joey Hess (via Debian) * Fixed behaviour of "-b" option. Eric Cooper (via Debian) * Support for PFLOG Interfaces Richard Tóth * Support for IPv6 * Fix for performance issue with address hashing * Fix for failing link address detection for GNU/kfreebsd * Multiple portability fixes Mats Erik Andersson * Improved behaviour of sort in sent/recv only mode Damián Viano * FreeBSD compilation fix * IPv6 reverse resolution Frédéric Perrin * Improved IPv6 code (removed s6_addr32 dependency) * Fixed support for DLT_NULL Scott Bertilson * Typo in usage message * Workaround for PuTTY issue (https://bugzilla.redhat.com/show_bug.cgi?id=546032) * Updates to licence text (change in FSF address) * Avoid an assertion failure if an "invalid" (as in outside of IPv4 or IPv6) address family is encountered (Red Hat bugs #839750, #847124, #868065, #961236 and #1007434) * enable building iftop with more recent versions of autoconf/automake * patch to remove compile time warnings * Fix to avoid system call in text mode wherever possible. Robert Scheck * Attempt to detect if interface is actually up when doing autodetection. * Fixed segfault when selecting interfaces with empty MAC address (e.g. gprs interface on Nokia N900) Graham Inggs * Avoid autodetecting wmaster interfaces * Experimental support for IEEE802_11 radiotap interfaces (DLT 127) * Fixed segfault / hang when supplying multiple -i options * Added missing docs for -m option. 0.17 12/02/06 * Display top scale in bytes when measuring in bytes Marcin Kryczek * Added support for ppp interfaces on FreeBSD (and others using DLT_PPP) * Fixed segfault bug in config file handling. * Fixes to man page William Robinet * Fix for hash table memory handling bug (caused segfaults on Mac OS X) * Header fixes for Mac OS X Ken McLeod * Fixes for compile time errors apparent on Mac OS 10.4.3 Georg Schwarz * Improvements to configure to support cross-compilation * Addition of "NO_SYSTEM" compiler flag to prevent subshell execution Tim Freeman * Fix to get hardware address on FreeBSD and OpenBSD Nicolas Bernard * Added 802.1q VLAN support Jacek Konieczny 0.16 28/02/04 * Added support for DLT_NULL * Fix for pthread.c behaviour on Solaris. * Build fixes for gcc 3.4+ Henne Vogelsang * Fixed behaviour of -n and -N options Klaus Sperner 0.15 10/11/03 * Added linear bar scales (default) ("L") * Added fixed upper limit for bandwidth * Choose which average bars display ("B") * Renamed some buttons and command line options * Added config file support * Added command line to turn of port resolution ("-N") * Fixed the search for libpcap in the configure script Thomas Schwinge * Updated RPM spec file Richard Lucassen 0.14 06/09/03 * Added forking resolver as fall-back resolver * Fixed DNS resolution so that no lookups are done if options.dns_resolution == 0 * Configure/compilation fixes for Mac OS X * MacOS interfaces to avoid by default Siri Dhyan Singh 0.13 11/06/03 * Fixed configure.in to properly specify libraries without the leading -l * Separated the IP/ethernet identifying routine from iftop.c into addrs_ioctl.c * Added addrs_dlpi.c, dlcommon.c, dlcommon.h to support the STREAMS DataLink Programming Interface on Solaris * Hacked options.h, options.c, iftop.c to enable promiscuous_but_choosy mode which runs the interface in promiscuous mode but filters out non-broadcast packets not addressed to or from the interface * Added NEWS, AUTHORS, ChangeLog * Improved interface auto-detect logic in iftop.c * Fixed configure.in to not overload prefix in the pcap test section Jonathan Abbey * Made errors during IP/MAC address discovery non-fatal * Added cummulative line totals ("T") 0.12 21/05/03 * Added 1-line display options ("t") * Added display scrolling ("j", "k") * Fixed code for obtaining hardware address (on Linux at least) * Added IP-based direction assignment 0.11 08/01/03 * Added support for token ring networks * Token ring network direction determination Martin Garton * Added autoconf/automake build system * Improved network interface auto selection 0.10 29/10/02 * User selectable sort criteria * On-the-fly filter code changes * Shell escape * Alternative resolver back-ends * Improved totals display * Added regexp based screen filtering * Fixed pause functionality * Change option names to be more like tcpdump 0.9 22/10/02 * Now works on FreeBSD * Added service resolution toggle ("R") * Added on-line help ("h") * More fixes to rate display * Improved interface selection (excludes lo:* and vmnet*) * Added bandwidth-in-bytes option. 0.8 17/10/02 * Added support for displaying port numbers * Minor fixes to rate display * Minor fix to netmask handling (specifying /32 was broken) * Updated RPM spec file Iain Lea * Added pause functionality (P) * Changed behaviour of source/dest traffic aggregation 0.7 02/10/02 * Fixed missing sll.h file. 0.6 28/08/02 * Fixed segfault bug affecting some systems * Added support for Linux cooked sockets Michael Bergbauer 0.5 26/08/02 * Added support for monitoring PPP interfaces * Converted longs to double longs in various places to avoid overflow problems * Minor bug fixes (usage messages, exit on error) * Improved selection of default interface when none specified 0.4 16/04/02 * No code changes * Added RPM spec file Riku Meskanen * Fixes to "make install" Steve Baker 0.3 13/04/02 * Fixed segfault bug. * Added src/dest aggregation. 0.2 02/04/02 * Added -n option to analyse traffic flows across a network boundary. * Added cumulative traffic totals. * Graphs now optional. * UI more responsive to key presses. * Auto-sizing bar graph scale. 0.1 29/3/02 * First release. usr/share/doc/gzip/ChangeLog000064400000254406152527215460011773 0ustar002018-03-05 Paul Eggert fflush: adjust to glibc 2.28 libio.h removal Problem reported by Daniel P. Berrangé in: https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html * lib/fbufmode.c (fbufmode): * lib/fflush.c (clear_ungetc_buffer_preserving_position) (disable_seek_optimization, rpl_fflush): * lib/fpending.c (__fpending): * lib/fpurge.c (fpurge): * lib/freadable.c (freadable): * lib/freadahead.c (freadahead): * lib/freading.c (freading): * lib/freadptr.c (freadptr): * lib/freadseek.c (freadptrinc): * lib/fseeko.c (fseeko): * lib/fseterr.c (fseterr): * lib/fwritable.c (fwritable): * lib/fwriting.c (fwriting): Check _IO_EOF_SEEN instead of _IO_ftrylockfile. * lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]: Define if not already defined. 2018-01-07 Jim Meyering version 1.9 * NEWS: Record release date. 2018-01-06 Paul Eggert gzexe: port to macOS mktemp Problem reported by Jeffrey Walton (Bug#30000). * gzexe.in, zdiff.in, zgrep.in: Don’t assume that mktemp works when given no arguments, as this is not true for macOS. Instead, use a syntax that should work with coreutils, NetBSD, and macOS. While we’re in the neighborhood, be more consistent about how program names are used in temporary file names. Also, watch out for TMPDIR values that are not absolute file names, since they can cause problems (e.g., leading "-"). 2018-01-03 Jim Meyering maint: update gnulib and copyright dates for 2018 * gnulib: Update to latest. * bootstrap: Update from gnulib. * all files: Run "make update-copyright". 2017-12-16 Jim Meyering build: update gnulib to latest 2017-11-24 Paul Eggert maint: zforce and zmore exit status cleanup Problem reported by Nelson H. F. Beebe. * zforce.in, zmore.in: On failure, exit with status 1 instead of with whatever failing status that printf or mv exited with. 2017-11-23 Paul Eggert gzexe: ensure file always exists * gzexe.in: When in a filesystem that does not support symlinks, use rm+cp rather than mv to make backups, so that the argument file always exists. 2017-11-23 Jim Meyering build: update gnulib to latest 2017-11-16 Jim Meyering gzexe: work even without the ability to make a hard link * gzexe.in: When ln -f fails to create a "~"-style backup, fall back to using mv -f. Reported by Bruno Haible in http://debbugs.gnu.org/29266 2017-11-15 Jim Meyering build: make each generated script unwritable * Makefile.am (.in): Ensure that each generated script is unwritable. This makes it less likely that someone (even me) will mistakenly modify one of those generated files. 2017-11-13 Jim Meyering zless, znew: exit 1 upon --help or --version write failure * zless.in: Exit 1 upon --help or --version write error. * znew.in: Likewise. 2017-11-12 Paul Eggert maint: script diagnostics status cleanup Problem reported by Bruno Haible (Bug#29266#20). * NEWS: Mention this. * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in: * zgrep.in, zless.in, zmore.in, znew.in: Use printf instead of echo if the argument might contain ‘\’, at least in theory. Don’t assume printf exits with status 1 on failure; it might be some other positive status. * gzexe.in: Use printf consistently instead of echo, and proscribe it instead of echo. tests: don’t be so strict about timestamps * tests/timestamp: We’ve had many false alarms about timestamps that are not gzip problems, but instead are problems with ‘touch’. Attempt to work around them by not trusting ‘touch’ so much. Problems and parts of solutions proposed by Bruno Haible. 2017-11-10 Paul Eggert build: update gnulib submodule to latest 2017-11-09 Jim Meyering gnulib: update to latest maint: use noreturn, not ATTRIBUTE_NORETURN Use gnulib's stdnoreturn module so we can include and the "noreturn" helper macro, thus replacing the definition and uses of ATTRIBUTE_NORETURN. * bootstrap.conf (gnulib_modules): Add stdnoreturn. * gzip.h (ATTRIBUTE_NORETURN): Remove definition. Include stdnoreturn.h and use "noreturn" for each ATTRIBUTE_NORETURN-adorned function declaration. * gzip.c (do_exit, try_help): Use "noreturn". tests: unpack-invalid: correct and clean up a test * tests/unpack-invalid: There was a logic error that would have caused this test to ignore a failure if first iteration of the loop set fail=1 and the second one reset it to 0. Also, use "returns_ 1 ...", to require an exit status of 1. 2017-11-07 Paul Eggert gzip: diagnose out-of-range MTIME This seems to be the problem reported by Bruno Haible for GNU/Hurd i386 with touch 8.26 and glibc 2.24 (Bug#29033#20). * NEWS: Document this. * gzip.c (get_method): If MTIME is out of range for this platform, warn and substitute the nearest in-range value, instead of silently ignoring it. (do_list): Remove no-longer-needed test for unknown time stamp. 2017-11-06 Paul Eggert misc: diagnose year-2038 configuration problems * bootstrap.conf (gnulib_modules): Add year2038. * m4/.gitignore: Add year2038.m4[ maint: remove IMPORT_FROM_GETTEXT * bootstrap.conf (IMPORT_FROM_GETTEXT): Remove. This is a relic from older Gnulib, and has no effect now. 2017-10-29 Jim Meyering tests/unpack-valid: port to printf that do not grok hex Many versions of printf do not handle hexadecimal in a format string, so this test would fail. * tests/init.cfg (hex_printf_): Copied from grep's tests/init.cfg. * tests/unpack-valid: Use hex_printf_. Reported by Bruno Haible in https://bugs.gnu.org/29033#26 gnulib: update to latest; also update tests/init.sh from gnulib gzip: fix bug with any upper case custom ('-S'-specified) suffix Any user-specified suffix with an upper case letter would fail to match desired file. * gzip.c (get_suffix): First, arrange to have only one return point rather than two. Put a lower-cased (just-malloc'd) copy of z_suffix in the suffix vector, and free it before returning. * tests/upper-suffix: New file. * tests/Makefile.am (TESTS): Add it. * NEWS: Mention it. Reported by meo@xenialab.it in https://bugs.gnu.org/29006 2017-10-16 Paul Eggert gzip: fix bug in unpack EOB check Problem reported by Vidar Holen (Bug#28861). * NEWS: Mention fix. * tests/unpack-valid: New test. * tests/Makefile.am (TESTS): Add it. * unpack.c (build_tree): Report an error if Huffman tree has too few leaves. * unpack.c (unpack): Fix check for EOB. Remove now-unnecessary check for code out of range. 2017-09-19 Jim Meyering maint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions * tailor.h: Don't define HAVE_UTIME_H. maint: avoid "make syntax-check" failure due to old-NEWS modification * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction. 2017-09-19 Paul Eggert gzexe: improve usage diagnostic * gzexe.in (usage): Reword for clarity (Bug#28514). misc: update --version copyright * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in: * zless.in, zmore.in, znew.in: Update copyright year in --version output to 2017. maint: prefer HTTPS to HTTP, FTP in URLs maint: copy bootstrap from Gnulib maint: port to GCC 7.2 * configure.ac (WERROR_CFLAGS): Avoid -Wduplicated-branches. * tailor.h (FALLTHROUGH): New macro, taken from Emacs. * gzip.c (main): Use it. maint: update .gitignore for recent Gnulib build: update gnulib submodule to latest 2017-05-07 Jim Meyering maint: also distribute a zip-compressed tarball * configure.ac (AM_INIT_AUTOMAKE): Add dist-zip, for those lacking gzip, 7zip, etc. Suggested by Karl Berry in https://bugs.gnu.org/25538. 2017-03-13 Paul Eggert gzip: port zdiff, zless to Busybox Problem reported by Denys Zagorui (Bug#26088). * tests/zdiff: Check that diff uses POSIX-format output. * zless.in (less_version): Don't exit merely because 'less -V' fails; instead, assume 'less' is compatible with an old version of the original 'less'. Busybox 'less -V' fails, but apparently its 'less' works anyway somehow. 2017-02-06 Jim Meyering tests: avoid failure when running with no tty * tests/help-version (zcat_setup): Export TERM=dumb, to avoid zless malfunction. Reported by Assaf Gordon in https://bugs.gnu.org/25636#8 gnulib: update to latest; and tests/init.sh and bootstrap maint: change "time stamp" to "timestamp" globally This avoids a new syntax-check failure. * ChangeLog-2007: Perform that change. * NEWS: Likewise. * algorithm.doc: Likewise. * doc/gzip.texi: Likewise. * gunzip.in: Likewise. * gzip.1: Likewise. * gzip.c: Likewise. * gzip.h: Likewise. * m4/.gitignore: Likewise. * sample/ztouch: Likewise. * tests/timestamp: Likewise. * unzip.c: Likewise. * zip.c: Likewise. * znew.1: Likewise. * cfg.mk: Update the old news hash accordingly. 2017-01-01 Jim Meyering maint: tweak a distcheck rule * dist-check.mk (my-distcheck): Don't use --disable-nls. That option is now unrecognized. maint: update gnulib and copyright dates for 2017 * gnulib: Update to latest. * all files: Run "make update-copyright". 2016-11-08 Jim Meyering maint: use "returns_" rather than explicit comparison with "$?" * tests/zdiff: Use "returns_ 1" rather than testing $? = 1. * tests/hufts: Likewise. * tests/timestamp: Likewise, but s/1/2/. 2016-11-04 Paul Eggert gzip: minor time stamp cleanups * NEWS: Document this. * gzip.c (get_method): Do not warn about MTIME out of range. This should avoid useless chatter on hosts with 32-bit time_t after the year 2038 (!). (do_list): Do not pass junk time stamp to localtime. (copy_stat): Do not report "time stamp restored" if restoration fails. gzip: --no-time cleanup Problem reported by Jim Meyering (Bug#24826). * gzip.c (longopts): Remove non-working no-time entry. (help) [UNDOCUMENTED]: Don't document it. gzip --no-name: avoid spurious warning Problem reported by Jim Meyering (Bug#24826). * tests/timestamp: Add a test from Jim Meyering to exercise the fix * zip.c (zip): Treat unknown time stamps as 0. 2016-10-24 Jim Meyering maint: update .gitignore files to ignore more generated files 2016-10-02 Jim Meyering maint: avoid unwarranted "make syntax-check" failure * tests/timestamp: Reorder "rm" arguments so the doubled-word syntax-check rule does not detect a false positive "in in" here. gnulib: update to latest 2016-09-07 Paul Eggert * doc/gzip.texi: Fix off-by-one timestamp. 2016-09-06 Paul Eggert gzip: fix some Y2038 etc. bugs * NEWS: Document this. * gzip.c (get_method): Warn about out-of-range MTIME, and ignore it instead of relying on possibly-undefined behavior. * tests/Makefile.am (TESTS): Add timestamp. * tests/timestamp: New test. * zip.c (zip): Warn about out-of-range file time stamp. 2016-08-29 Jim Meyering maint: fix gzip-specific syntax-check rule * cfg.mk (sc_gzip_copyright_check): This rule had two problems. It was failing erroneously (the copyright date in gzip.c is fine), yet it was complaining. The first problem is that the rule's diagnostic mentioned the wrong file: lib/version-etc.c, rather than ./gzip.c. The second problem is that it specified this file name via "in_files" rather than the "in_vc_files" variable. 2016-06-12 Paul Eggert gzip: fix port to Atari by not defining ASMV Problem reported by Helmut Karlowski in: http://bugs.gnu.org/23751 * tailor.h (ASMV) [ATARI || atarist]: Do not define. 2016-06-12 Paul Eggert gzip: drop mentions of Amiga, VMS These platforms were not supported anyway, and their code was suffering from bitrot. This patch may also fix some file name glitches on MS-Windowsish platforms. * bootstrap.conf (gnulib_modules): Add dosname. * gzip.c: Include dosname.h. (shorten_name, treat_dir): Use last_component rather than looking at path separators by hand. * tailor.h: Remove sections on porting to VMS and to Amiga, since dosname.h doesn't support these platforms anyway. (PATH_SEP2, PATH_SEP3, STDC_HEADERS, SUFFIX_SEP, RECORD_IO) (HAVE_CHOWN, HAVE_LSTAT, HAVE_SYS_DIR_H, direct): Remove. All uses removed. Many uses replaced by calls to ISSLASH and/or last_component. 2016-04-29 Jim Meyering maint: arrange for better URLs in generated announcement message * cfg.mk (url_dir_list): Define. I had been correcting the generated URLs by hand, just before the announcement. This is better. 2016-04-26 Jim Meyering maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.8 * NEWS: Record release date. gnulib: update to latest 2016-04-19 Paul Eggert gzip: simplify by closing ourselves This simplifies the previous fix, by avoiding the use of the closein module. That module was problematic, as gzip normally does not use stdio for output and never uses it for input. Also, it is a heavyweight module, as it drags many files into lib (c-ctype.c, c-ctype.h, closein.c, closein.h, closeout.c, closeout.h, close-stream.c, close-stream.h, config.charset, c-strcasecmp.c, c-strcaseeq.h, c-strcase.h, c-strncasecmp.c, fpending.c, fpending.h, freadahead.c, freadahead.h, localcharset.c, localcharset.h, mbrtowc.c, mbsinit.c, quotearg.c, quotearg.h, quote.h, ref-add.sin, ref-del.sin, streq.h, wctype-h.c, wctype.in.h) and into m4 (closein.m4, closeout.m4, close-stream.m4, codeset.m4, configmake.m4, fpending.m4, freadahead.m4, glibc21.m4, localcharset.m4, locale-fr.m4, locale-ja.m4, locale-zh.m4, mbrtowc.m4, mbsinit.m4, mbstate_t.m4, quotearg.m4, wctype_h.m4), and these files are thus no longer needed. * bootstrap.conf (gnulib_modules): Remove closein. * gzip.c: Don't include closein.h. (stdin_was_read): New static var. (main): Don't use close_stdin. Invoke finish_out to exit after outputting via stdio's stdout. Close stdin after reading it. Restore previous way of closing stdout. (treat_stdin): Record that stdin was read. (finish_out): New function. gzip: fix bug with -l output to pipes Problem reported by Christian Franke via Eric Blake in: http://bugs.gnu.org/23314 * NEWS: Mention this. * gzip.c (main): Do not close stdout twice when given -l. Instead, -l now just fflushes stdout, so that fdatasync can synchronize it if --synchronize is also specified. * tests/list: New test case. * tests/Makefile.am (TESTS): Add it. 2016-03-28 Paul Eggert Port to Oracle Solaris Studio 12.4 Problem reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/23133 * NEWS: Document this. * configure.ac (ASMV): Do not define if NO_ASM is anywhere in DEFS; it doesn't need to be surrounded by white space. * lib/match.c: Do not use x86 version if __x86_64__ is defined. 2016-03-27 Jim Meyering maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.7 * NEWS: Record release date. 2016-03-26 Paul Eggert Port to NetBSD 7.0 Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13 * gzexe.in, zdiff.in, zgrep.in: Don't rely on mktemp -t, as it has a different meaning in NetBSD. * tests/init.sh: Sync from Gnulib. Port to Alpine Linux which uses Busybox * Makefile.am (check-local): Use plain diff rather than 2016-03-24 Jim Meyering gzip: also honor GZIP=--rsyncable * gzip.c (main): Also accept --rsyncable when it is specified via the GZIP environment variable. I noticed this when gzip's "make dist" failed because maint.mk detected that gzip now honors --rsyncable, yet when it set GZIP_ENV to include that, and that propagated via automake-generated code to the GZIP setting used in the "make dist" rule, there, it was not honored, and caused "make dist" to fail. 2016-03-21 Paul Eggert Fix typo in previous patch Port to Solaris 11 /bin/sh * m4/shell.m4 (AC_PROG_SHELL): Reject Solaris 11 /bin/sh. A problem was reported by Nelson H. F. Beebe for OpenIndiana. I reproduced a problem with different symptoms on Solaris 11. Switching to Bash fixed it, and I hope this fixes it for OpenIndiana too, since both problems appear to be shell-related. 2016-03-18 Paul Eggert zgrep: with -f SPECIAL, read SPECIAL just once Problem reported by Fulvio Scapin in: http://bugs.gnu.org/22945 * NEWS: Document this. * tests/zgrep-f: Add a test. Adjust a test to cover the case of more than one line in -f's input. * zgrep.in (with_filename): With -f FILE, if FILE is stdin or not a regular file, copy it into a temporary and use the temporary. 2016-03-15 Paul Eggert gzip: port to AIX 7.1 + xlc V12.1 * inflate.c, unlzw.c, util.c: Include tailor.h after including any system include file that might in turn include signal.h for the first time, so that SIGPIPE is not #defined to 0 prematurely, which clashes with signal.h's SIGPIPE. 2016-03-15 Jim Meyering gnulib: update to latest maint: don't ignore gitlog-to-changelog failure * Makefile.am (gen-ChangeLog): Don't ignore failure of gitlog-to-changelog. This syncs to coreutils' copy of this rule. 2016-03-06 Paul Eggert gzip: pacify clang * gzip.c (do_list): Use 2D array of char for month abbreviations, as this is clearer anyway, and it pacifies Clang. Problem reported by Assaf Gordon in: http://bugs.gnu.org/22900#40 2016-03-06 Jim Meyering tests: port to systems for which ":" is not the PATH separator * Makefile.am (new_path): New variable. (check-local): Use $(PATH_SEPARATOR) rather than a literal ":", to avoid "make syntax-check" failure. 2016-03-06 Paul Eggert doc: minor --rsyncable doc fixes * doc/gzip.texi (Sample): Mention --rsyncable. * gzip.c (help): Sort and do not capitalize the new --rsyncable help string. gzip: minor zgrep cleanup * zgrep.in: Simplify previous change. gzip: port zgrep to Solaris 11.2 Problem reported by Assaf Gordon in: http://bugs.gnu.org/22900#11 * zgrep.in: Port to Solaris 11.2 /bin/sh (ksh 93u 2011-02-08), where $? is 256+SIG when a process was killed with signal SIG, and where 'exit 257' is equivalent to 'exit 1'. Apparently some other sh implementations use 256+128+SIG. So, instead of using plain 'exit $?', use the equivalent of 'exit ((128 * (128 <= $?)) + $? % 128)' within the script, and use the equivalent of 'kill -$($? % 128)' at the top level if the exit status is 128 or more. gzip: remove --__bindir * NEWS: Document this. * gzexe.in, gunzip.in, zcat.in, zcmp.in, zdiff.in, zegrep.in: * zfgrep.in, zforce.in, zgrep.in, zless.in, zmore.in, znew.in: Remove support for undocumented --__bindir option. Callers can set PATH instead; that's less error-prone. This fixes some 'make check' failures on my Solaris 11 box, which occurred because the test scripts were mistakenly testing the installed gzip rather than the gzip in the working directory. * Makefile.am (.in): Don't replace bindir. (check-local): Set PATH instead of using --__bindir. * tests/help-version (gunzip_setuphelp, gzexe_setuphelp) (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp) (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp) (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp) (znew_setuphelp): Remove. All uses removed. (lbracket_setup): Default args to empty. 2016-03-04 Jim Meyering tests: fix "make check" failure on AIX 7.1 * tests/Makefile.am (TESTS_ENVIRONMENT): Modernize: remove unused shell_or_perl_ function, and use an export_with_values function as grep does, to remove a lot of duplication. Reported by Assaf Gordon in http://debbugs.gnu.org/22900 2016-03-02 Rusty Russell gzip: support the --rsyncable option * deflate.c: Include verify.h. (RSYNC_WIN, RSYNC_SUM_MATCH): Define. (rsync_sum, rsync_chunk_end): Declare file-scoped globals. (lm_init): Initialize globals. (fill_window): Update rsync_chunk_end. (rsync_roll): New function. (RSYNC_ROLL): New macro. (FLUSH_BLOCK): Update for new "pad" parameter. (deflate_fast): Use RSYNC_ROLL and flush/pad. (deflate): Likewise. * trees.c (flush_block): Add "pad" parameter. * gzip.c (rsync): New global. (RSYNCABLE_OPTION, longopts, help): Add the option. (main): Set the new global. * gzip.h (rsync): Declare new global. (flush_block): Update prototype. * doc/gzip.texi: Document it. * gzip.1: Likewise. * bootstrap.conf: Use verify module. * NEWS (New feature): Mention it. * Makefile.am (check-local): Add tests and use AM_V__* command- hiding opions. Reported against Debian here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=118118 2016-02-28 Jim Meyering maint: dist-check.mk: remove .deps dirs before comparing "make distcheck" with automake-from-trunk would fail like this: ... Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old: .deps Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib: .deps Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib/glthread: .deps * dist-check.mk (my-distcheck): Remove all .deps directories before comparing the two hierarchies. 2016-02-28 Paul Eggert misc: update --version copyright * gunzip.in, gzexe.in, zcat.in, zdiff.in, zforce.in, zgrep.in: * zless.in, zmore.in, znew.in: Update copyright year in --version output to 2016. gzip: new option --synchronous This follows up on the earlier patch to avoid data loss near the system crashes. It makes the new behavior optional, with the default off. See: http://bugs.gnu.org/22768 * NEWS, doc/gzip.texi (Sample, Invoking gzip), gunzip.in (usage): * gzip.1, zcat.in (usage): Document this. * gzip.c (synchronous): New static var. (SYNCHRONOUS_OPTION): New constant. (longopts, help, main, treat_file): Add support for --synchronous. gzip: use constants, not fileno * gzip.c (main, treat_stdin, treat_file, get_method) (check_ofname): Prefer STDIN_FILENO to fileno (stdin), and similarly for STDOUT_FILENO. gzip: fdatasync output dir before unlinking This follows up on the earlier patch to avoid data loss near the system crashes. See: http://bugs.gnu.org/22768 * bootstrap.conf (gnulib_modules): Add dirname-lgpl, fdatasync, openat-safer, unistd-safer, unlinkat. * gzip.c: Include stddef.h, dirname.h. Include fcntl--.h instead of fcntl-safer.h. (RW_USER): Remove; no longer needed. (dfname, dfd): New static vars. (dot): New static const. (atdir_eq, atdir_set): New functions. (treat_file): Also fdatasync the output directory, if !keep. (treat_file, create_outfile, open_and_stat): Use dir fd for unlinkat and openat, if possible. (open_and_stat): Omit mode argument, since it was always the same. All callers changed. * lib/.gitignore, m4/.gitignore: Add new gnulib files. * tailor.h (PROTO, NO_STDIN_FSTAT, OPEN): Remove. Remove MACOS section, as this stuff would not work anyway now, and circa 2001 Apple stopped supporting Mac OS 9 and earlier. * zip.c: Do not include unistd.h and fcntl.h, as this file does not directly use any symbols defined by those headers. 2016-02-22 Paul Eggert fsync output file before closing Problem reported by Yanyan Jiang 蒋炎岩 in: http://bugs.gnu.org/22768 * NEWS: Document this. * bootstrap.conf (gnulib_modules): Add fsync. * gzip.c (treat_file): Call fsync just before closing the output. * lib/.gitignore, m4/.gitignore: Add fsync-related gnulib files. 2016-01-22 Jason Leschnik doc: correct a diagnostic in man page to match actual * gzip.1: s/no change/unchanged/ This addresses http://debbugs.gnu.org/22413 2016-01-01 Jim Meyering maint: update copyright year, bootstrap, init.sh Run "make update-copyright" and then... * gzip.c: Transform the copyright notice via s/2015/2016/. * gnulib: Update to latest. * tests/init.sh: Update from gnulib. * bootstrap: Likewise. 2015-11-01 Jim Meyering maint: avoid three warnings from the very latest gcc-built-from-git * unzip.c (unzip): Correct two format strings to match the types of the corresponding arguments. * unlzw.c (unlzw): Cast an "int" to unsigned to match expected type of %x. 2015-08-24 Jim Meyering maint: adjust copyright notices in *.in files to be consistent The copyright year ranges in *.in files were not being updated, because of a missing ", Inc." suffix. Add that, run run "make udpate-copyright", and ensure 2010..2015 year ranges are covered. * gunzip.in: Update copyright notice and year ranges. * gzexe.in: Likewise. * zcat.in: Likewise. * zdiff.in: Likewise. * zforce.in: Likewise. * zgrep.in: Likewise. * zless.in: Likewise. * zmore.in: Likewise. * znew.in: Likewise. 2015-08-24 Jim Meyering build: avoid -Wshift-negative-value warning Configured with --enable-gcc-warnings, a gcc-6.x build would fail with this: gzip.c:118:32: error: left shift of negative value #define OFF_T_MIN (~ (off_t) 0 << (sizeof (off_t) * CHAR_BIT - 1)) * gzip.c [OFF_T_MAX]: Define in terms of TYPE_MAXIMUM, not OFF_T_MIN. [OFF_T_MIN]: Remove now-unused definition. Include "intprops.h" for definiton of TYPE_MAXIMUM. * bootstrap.conf (gnulib_modules): Add intprops. 2015-07-30 Jim Meyering maint: remove dead code This package has not been compilable with -DCRYPT since commit v1.4-82-g9d1b943. Remove final vestiges. * bits.c (copy_block) [CRYPT]: Remove #ifdef'd code. * inflate.c (NEXTBYTE) [CRYPT]: Likewise. Prompted by a report from Flávio Medeiros that HEADER and T might be used uninitialized. 2015-03-17 Paul Eggert gzip: make the GZIP env var obsolescent * NEWS, gzip.1: * doc/gzip.texi (Environment, Tapes): Document this. * gzip.c (args): Remove static var; no longer needed now that 'main' frees it. All uses removed. (ENV_OPTION, shortopts): New constants. (main): Warn about nontrivial uses of GZIP. Reject dangerous uses. * tests/gzip-env: New test case. * tests/Makefile.am (TESTS): Add it. * util.c (add_envopt): Create new vector instead of adding to old one. Only use changed. 2015-03-13 Paul Eggert maint: adjust to recent gnulib * doc/.gitignore: Add gendocs_template_min. * lib/.gitignore: Add assure.h. 2015-02-08 Jim Meyering maint: ensure that --version's copyright date is current * cfg.mk (sc_gzip_copyright_check): Ensure we keep this copyright year number up to date. Reported by Paul Eggert. * gzip.c (license_msg): Include only the current year number, as is done in nearly every other program. gnulib: update to latest 2015-01-01 Jim Meyering maint: update copyright year ranges to include 2015; update gnulib 2014-11-10 Jim Meyering maint: move new NEWS entry into block for upcoming release * NEWS: Move the latest NEWS entry from the block for gzip-1.6 into the block for the upcoming release. 2014-11-10 Paul Eggert gzip: adjust -v output when -k is also specified Problem reported by Eric Benoit in: http://bugs.gnu.org/16401 * gzip.c (treat_file): When keeping a file, don't say it's replaced. * NEWS: Document this. * tests/keep: Test this. 2014-11-10 Jim Meyering maint: enable more syntax checks * cfg.mk (local-checks-to-skip): Remove several rule names from this list, thus enabling the corresponding checks. To fix some, I made syntactic changes to source files. In other cases, I exempted certain files from the checks. Add exemptions for these: sc_prohibit_atoi_atof = ^(gzip|sample/sub)\.c$$ sc_space_tab = ^lib/match\.c$$ sc_useless_cpp_parens = ^(lib/match\.c|tailor\.h)$$ * configure.ac: Add quotes to fix under-quoting. * deflate.c: Remove unnecessary cpp parentheses. * tests/Makefile.am (TEST_ENVIRONMENT): Remove space-before-TAB. * unlzw.c: Change some TABs to spaces. maint: avoid false positive match in check for double semicolon * cfg.mk (exclude_file_name_regexp--sc_prohibit_double_semicolon): Exempt the file, lib/match.c, from gnulib's new double-semicolon check. gnulib+bootstrap: update to latest * gnulib: Update the submodule. * bootstrap: Update from gnulib. 2014-10-10 Paul Eggert tests: use local dir for output Reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/18679 * tests/unpack-invalid: Use local directory, not /tmp, for output. 2014-08-10 Paul Eggert gzip: fix --suffix=z bug (Bug#18239) * gzip.c (get_suffix): Put --suffix string at the end of the list of suffixes if it is a suffix of one one them. * tests/z-suffix: New file. * tests/Makefile.am (TESTS): Add it. 2014-06-12 Paul Eggert zgrep: exit with status 0 if a file matches and there's no trouble Reported by Pavel Raiskup in: http://bugs.gnu.org/17760 * zgrep.in (res): Treat exit status 0 to be greater than 1. Also, exit immediately on software configuration error. 2014-06-07 Paul Eggert doc: use UTF-8 in the manual * doc/gzip.texi: Switch to UTF-8 encoding. Fix ASCIIisms. Don't use @sc; plain caps are fine for GNU manuals. maint: update .gitignore files * lib/.gitignore, m4/.gitignore: Adjust to match current sources. Also, sort. 2014-06-07 Jim Meyering maint: udpate all copyright notices via "make update-copyright" maint: update copyright year range in gzip.texi * doc/gzip.texi: Update copyright date. maint: update gnulib to latest and adapt streamsavedir usage * gnulib: Update module to latest. * gzip.c (treat_dir): Gnulib's streamsavedir API has changed: call it with a new argument, SAVEDIR_SORT_NONE, to retain the preceding behavior. 2014-03-06 Paul Eggert zless: improve gzip failure checking, and port to new -V format Problem reported by Jaroslaw Weglinski, and LESSOPEN change suggested by Mark Nudelman, in: http://bugs.gnu.org/16951 This doesn't fix bug 16951 entirely, as 'less' needs to be changed too, but it's a start. * zless.in (check_exit_status): New var. (LESSOPEN): Use it. (use_input_pipe_on_stdin): Adjust to output format on Fedora 20, where 'less -V' outputs "less 458 (POSIX regular expressions)" on the first line. 2013-10-24 Paul Eggert gzip: fix permissions issue on Solaris-like systems I.e., on systems that let users give files away. * gzip.c (do_chown): New function. (copy_stat): Use it, to change the group, then the permissions, then the owner. Idea suggested by Vladimir Marek in 2013-10-03 Paul Eggert znew: avoid denial-of-service issue Reported by Rich Burridge in . * znew.in: Rewrite to avoid the need for a temporary file in /tmp. That way, we avoid the need for set -C and worrying about denial of service. Use touch -r and chmod --reference rather than cpmod. Assume cp -p works, as it's now universal. Quote 'echo' args better, while we're at it. (warn, tmp, cpmod, cpmodarg): Remove. (GZIP): Unset, so that we needn't test for gzip extension. (ext): Now always '.gz'. * znew.1: Document the change of implementation assumptions. 2013-06-19 Paul Eggert Fix spelling typo in newly-added comment. tests: zgrep-signal race condition fix * tests/zgrep-signal: Check that Perl supports dup2. (exec_with_SIGPIPE_SIGDFL): Remove. (write_to_dangling_pipe): Simplify by moving more of it into Perl. Fix race condition, where subcommand writes to a pipe before the ":" command exits. Problem reported by Thorsten Glaser in . 2013-06-12 Paul Eggert zgrep: usage should say which grep options are not supported * zgrep.in (usage): Document which grep options are not supported. Problem reported by Liron Paryente in . 2013-06-11 Paul Eggert gzip: port util.c to Compaq C V6.5-303 * util.c (crc_32_tab): Move definition to front, since this compiler doesn't allow declarations of static arrays with incomplete types. Problem reported by Steven M. Schweda in . tests: zgrep-context assumes grep knows context * tests/Makefile.am (TESTS_ENVIRONMENT): Pass GREP too. * tests/zgrep-context: Check that the underlying grep supports context options. Problem reported by Steven M. Schweda in . doc: zgrep exit status, unsupported options * zgrep.1 (EXIT STATUS, BUGS): New sections. Problem reported by Bdale Garbee in . maint: port to platforms lacking SIGPIPE * tailor.h (SIGPIPE): Define to 0 if not defined. This fixes a porting bug introduced as part of 2012-11-16 syntax-check cleanup. Problem reported by Bdale Garbee in . 2013-06-09 Jim Meyering maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.6 * NEWS: Record release date. build: avoid automake warning that suggests use of subdir-objects * configure.ac (AM_INIT_AUTOMAKE): Use the subdir-objects option. build: avoid warning about deprecated use of automake's ACLOCAL_AMFLAGS * Makefile.am (ACLOCAL_AMFLAGS): Don't use this deprecated variable. * configure.ac: Do this instead: AC_CONFIG_MACRO_DIR([m4]). build: use more portable shell syntax in search of working shell * m4/shell.m4: Adjust sh/case syntax not to evoke a syntax error from Solaris 10's /bin/sh. build: update gnulib to latest, and bootstrap 2013-05-28 Jim Meyering tests: exercise the new --keep option * tests/keep: New file. * tests/Makefile.am (TESTS): Add it. 2013-05-28 Rodrigo Campos gzip: add "--keep" option to retain (don't delete) input files gzip now accepts the --keep (-k) option, for consistency with tools like xz, lzip and bzip2. With this option, gzip no longer removes named input files when compressing and decompressing. * doc/gzip.texi: Document it. * gzip.1: Likewise. * gunzip.in: Likewise. * NEWS: Likewise. * gzip.c: Add support for "--keep". 2013-04-15 Paul Eggert tests: redo patch for non-GNU gzip installed in /usr/local/bin Problem with previous patch reported by Antonio Diaz Diaz in . * tests/help-version (gunzip_setuphelp, gzexe_setuphelp) (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp) (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp) (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp) (znew_setuphelp): New functions, used when testing even --help. (zdiff_setup, zcat_setup, znew_setup, zgrep_setup, gzexe_setup): Use gzip_setuphelp to set --__bindir. 2013-04-10 Paul Eggert tests: work even if non-GNU gzip is installed in /usr/local/bin Problem reported by Antonio Diaz Diaz in . * tests/help-version (zdiff_setup, zcat_setup, znew_setup, zgrep_setup) (gzexe_setup): Pass --__bindir so that subsidiary programs are our own's, not /usr/local/bin's. This requires using 'eval' on the result. (zcmp_setup, gunzip_setup, zmore_setup, zless_setup, zforce_setup) (zegrep_setup, zfgrep_setup): Invoke one of the other setup functions, to make the patterns more obvious and simplify future maintenance. * zcmp.in, zegrep.in, zfgrep.in: Pass __bindir to subsidiary program. maint: adjust to Gnulib, Automake changes * .gitignore: Add *.trs. * lib/.gitignore: Add unused-parameter.h. tests: port to Solaris 10 /bin/sh * tests/Makefile.am (TESTS_ENVIRONMENT): Use "FOO=val; export FOO" rather than "export FOO=val", as the latter form doesn't work with Solaris /bin/sh. 2013-02-25 Paul Eggert gzip: port to DMF file systems * util.c (read_buffer): When reading a file with O_NONBLOCK, if the read fails with errno==EAGAIN, clear O_NONBLOCK and try again. Problem reported by Vitezslav Cizek in . 2013-02-05 Paul Eggert gzip: fix bug where you say "n" and gzip acts as if you said "y" Problem reported for GCC 4.7 x86-64 -O2 by Allan McRae in . * NEWS: Document this. Use consistent format in earlier note. * gzip.c: Include yesno.h. * gzip.h (yesno): Remove decl; that's yesno.h's job. 2013-01-06 Paul Eggert maint: adjust to Gnulib changes * lib/.gitignore: Add glthread, math.c, unistd.c, wctype-h.c. * m4/.gitignore: Remove inline.m4. 2013-01-04 Jim Meyering maint: update all copyright year number ranges Run "make update-copyright". build: update gnulib submodule to latest 2012-12-10 Paul Eggert diagnose unexpected EOF and zero lengths in packed data Problem reported by Aki Helin. * NEWS: Mention Aki's reports. * tests/unpack-invalid: New file, with test data suggested by Aki. * tests/Makefile.am (TESTS): Add it. * unpack.c (read_byte): New function. (look_bits, read_tree): Use it. (read_tree): Check against zero bit length Huffman code. gzip: diagnose invalid code in packed data * unpack.c (unpack): When encountering a code out of range, report it and fail rather than charging ahead with randomish output. Problem reported by Aki Helin. 2012-11-16 Jim Meyering maint: avoid new syntax-check failures * cfg.mk (_gl_TS_unmarked_extern_vars): Append nice_match, to avoid false-positive syntax-check failure on i686. * gzip.c (SIGPIPE): Remove definition. Now always provided via gnulib. * lib/.gitignore: xsize.c, added by gnulib-tool. 2012-11-16 Paul Eggert gzip: fix debugging/porting typo * unlzw.c (unlzw) [DEBUG]: Don't assume 'long' can be printed with %d. maint: merge build improvements from coreutils * configure.ac: Invoke gl_ASSERT_NO_GNULIB_POSIXCHECK. (--enable-gcc-warnings): Change help message. (gl_GCC_VERSION_IFELSE): New macro. Do not omit -Wunused-macros for main code. Adjust other -W options as per coreutils. * lib/Makefile.am (AM_CFLAGS): Use GNULIB_WARN_CFLAGS, not WARN_CFLAGS. * unlzw.c (REGISTERS, REG1, REG2, ..., REG16): Remove. All uses removed. These provoked -Wunused-macros warnings. This sort of fiddling with registers hasn't been needed for years. build: update gnulib submodule to latest maint: port to platforms lacking SIGPIPE * gzip.c (SIGPIPE): Define to 0 if not already defined. doc: bring up to date and fix troff typos * doc/gzip.texi (Overview): Update RFC URLs. * gzip.1: Likewise. Don't say "SEE ALSO" to programs that almost nobody has installed anymore. * gzip.1, zmore.1: Fix some troff typos. * zdiff.1: Clarify what happens with input files. Don't talk about temporary file names, as they're rarely used these days. 2012-10-24 Paul Eggert tests: exercise the grep -e portability fix Remove workaround for Solaris, since the bug should be fixed now. Suggested by Petr Sumbera in . * tests/zgrep-context, tests/zgrep-f: All uses removed. * tests/init.cfg (require_POSIX_grep_): Remove. 2012-10-23 Eric Blake build: default to --enable-gcc-warnings in a git tree Anyone building from cloned sources can be assumed to have a new enough environment, such that enabling gcc warnings by default will be useful. Tarballs still default to no warnings, and the default can still be overridden with --disable-gcc-warnings. * configure.ac (gl_gcc_warnings): Set default based on environment. 2012-10-20 Paul Eggert zgrep: do not assume standard 'grep' has -e On Solaris 11, /usr/bin/grep -e does not work. Problem reported by Petr Sumbera in . * Makefile.am (.in): Substitute @GREP@. * configure.ac (AC_PROG_GREP): Invoke. * zgrep.in (grep): Use @GREP@. 2012-08-14 Paul Eggert zgrep: do not assume GNU expr * zgrep.in: Do not assume '\+' has the GNU behavior in the BRE given to 'expr', as POSIX does not guarantee that. Come to think of it, use a shell pattern rather than 'expr', as this is more efficient. 2012-08-08 Jim Meyering tests: exercise the just-fixed part of zgrep * tests/zgrep-context: New file. * tests/Makefile.am (TESTS): Add it. 2012-08-08 Jim Meyering zgrep: handle a multi-digit context option like -15 * zgrep.in: Do not malfunction when given an option like -15. Before, it could end up treating the pattern as a file name: $ echo x | gzip | zgrep -15 x gzip: x.gz: No such file or directory * NEWS (Bug fixes): Mention it. Reported by Dan Bloch via Thomas Bushnell in https://bugs.launchpad.net/bugs/1032831 2012-08-07 Jim Meyering build: update gnulib, bootstrap and init.sh maint: fix misspellings in old ChangeLog and NEWS * ChangeLog-2007: s/Supress/Suppress/ * NEWS: Likewise. * cfg.mk (old_NEWS_hash): Update to match typo fix. 2012-06-19 Paul Eggert zmore: rewrite to fix bugs and assume POSIX Problem reported for Solaris 9 by Daniel in . Rather than figure out what exactly went wrong in Solaris 9 it was easier to rip out all the buggy compatibility and stty cruft. * zmore.in: Don't use stty or trap; simply pipe the output to 'more' and let it deal with signals and terminal control. Use printf, not 'echo', to avoid problems with backslashes. Don't assume ANS is not 's' in the environment. Use a 'more'-style header instead of rolling our own style. Paginate the header, too; the old behavior lost the header. * NEWS, zmore.1: Document this. 2012-06-17 Jim Meyering maint: add .mailmap * .mailmap: New file. Unify two spellings of Paul's name, to make git log output slightly cleaner. maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.5 * NEWS: Record release date. build: update gnulib for fixed maint.mk build: update gnulib submodule; bootstrap and init.sh, too * cfg.mk: Exempt crufty tailor.h from its use of "#define off_t...". * .gitignore, m4/.gitignore: Update semi-automatically (via bootstrap). 2012-04-24 Paul Eggert doc: document -rf change * NEWS: Document the ZFS fix. gzip: remove CLOSEDIR * gzip.c (CLOSEDIR): Remove; no longer used. gzip: port gzip -rf to ZFS Problem reported privately by Rich Burridge. * bootstrap.conf: Add savedir. * gzip.c: Include . (_D_EXACT_NAMELEN): Remove. (treat_dir): Use savedir rather than reading directory entries one at a time, to avoid revisiting an already-compressed file when using ZFS and the -rf flags are specified. * lib/.gitignore, m4/.gitignore: Ignore savedir-related files. 2012-03-18 Paul Eggert gzip: fix nondeterministic compression results Reported by Jakub Wilk in . * deflate.c (fill_window): Don't let garbage pollute the dictionary. 2012-01-11 Jim Meyering tests: make all test scripts executable; work with automake-1.12 * tests/Makefile.am (TESTS_ENVIRONMENT): Adapt to work with upcoming automake-1.12. * tests/mixed: Make executable. * tests/zgrep-f: Likewise. * tests/zgrep-signal: Likewise. * tests/znew-k: Likewise. build: accommodate newer bootstrap from gnulib * bootstrap.conf (gnulib_tool_option_extras): Add both --symlink and --makefile-name=gnulib.mk. * bootstrap: Update from gnulib. * tests/init.sh: Update from gnulib. * lib/Makefile.am: Initialize all of the following so that generated code in gnulib.mk may use += to append to those variables: AM_CFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST, MOSTLYCLEANDIRS, MOSTLYCLEANFILES, SUFFIXES, noinst_LTLIBRARIES. 2012-01-01 Jim Meyering maint: update all copyright year number ranges Run "make update-copyright". 2011-12-21 Paul Eggert zless: decompress stdin too, if less 429 or later * zless.in: Use LESSOPEN |- feature of less 429 or later. Problem reported by Jeroen Roovers via Mike Frysinger in . 2011-11-29 Jim Meyering build: update gnulib submodule to latest build: accommodate gnulib's new warnings with --enable-gcc-warnings * configure.ac (WERROR_CFLAGS): Disable two new warnings: -Wno-format-nonliteral, -Wno-unsuffixed-float-constants. * gzip.h (bi_reverse): Declare with _GL_ATTRIBUTE_CONST. (gzip_base_name): Declare with _GL_ATTRIBUTE_PURE. 2011-11-29 Jim Meyering tests: use "compare exp out", not "compare out exp" Likewise, when an empty file is expected, use "compare /dev/null out", not "compare out /dev/null". I.e., specify the expected/desired contents via the first file name. Prompted by a suggestion from Bruno Haible in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154 Run these commands: git grep -l -E 'compare [^ ]+ exp' \ |xargs perl -pi -e 's/\b(compare) (\S+) (exp\S*)/$1 $3 $2/' git grep -l -E 'compare [^ ]+ /dev/null' \ |xargs perl -pi -e 's,\b(compare) (\S+) (/dev/null),$1 $3 $2,' 2011-11-05 Jim Meyering build: update gnulib submodule to latest 2011-11-02 Paul Eggert * tests/zgrep-signal: Don't assume exit status 141 on PIPE signal. Problem reported by Eric Blake in . * tests/zgrep-signal: Use perl instead of a nonportable shell trap. Problem reported by Eric Blake in . * tests/zgrep-signal: Test for Fedora 15 signal bug. Also, don't assume that SIGPIPE is SIG_DFL on entry. 2011-11-02 Jim Meyering build: update gnulib submodule to latest tests: mixed: correct size-enumeration logic * tests/mixed (sizes): Fix misplaced "&& break" that made us test only with a size of 0, rather than all sizes in 0..64. maint: avoid "make syntax-check" failure * gzip.c (treat_stdin): Indent with spaces, not TABs. 2011-11-02 Paul Eggert * gzip.c (treat_stdin): If quiet, be quiet with plain gzip -q. Problem reported by Michaël Guitton in . 2011-08-10 Jim Meyering maint: remove amiga, atari, msdos, nt, os2, vms sub-directories, and all files therein. This was proposed months prior, and no one objected. * amiga/Makefile.gcc: Remove file. * amiga/Makefile.sasc: Likewise. * amiga/match.a: Likewise. * amiga/tailor.c: Likewise. * amiga/utime.h: Likewise. * atari/Makefile.st: Likewise. * msdos/Makefile.bor: Likewise. * msdos/Makefile.djg: Likewise. * msdos/Makefile.msc: Likewise. * msdos/doturboc.bat: Likewise. * msdos/gzip.prj: Likewise. * msdos/match.asm: Likewise. * msdos/tailor.c: Likewise. * nt/Makefile.nt: Likewise. * os2/Makefile.os2: Likewise. * os2/gzip.def: Likewise. * os2/gzip16.def: Likewise. * vms/Makefile.gcc: Likewise. * vms/Makefile.mms: Likewise. * vms/Makefile.vms: Likewise. * vms/Readme.vms: Likewise. * vms/gzip.hlp: Likewise. * vms/makegzip.com: Likewise. * vms/vms.c: Likewise. * Makefile.am (EXTRA_DIST): Remove those file names. build: use largefile module and update to latest gnulib * configure.ac: Remove AC_SYS_LARGEFILE, subsumed by ... * bootstrap.conf (gnulib_modules): ...this. Use largefile module. * gnulib: Update to latest. 2011-07-12 Jim Meyering maint: update init.sh and bootstrap from gnulib * bootstrap: Update from gnulib. * tests/init.sh: Update from gnulib. maint: use gnulib's realloc-gnu and malloc-gnu modules * bootstrap.conf (gnulib_modules): Use realloc-gnu and malloc-gnu, rather than the now-deprecated realloc and malloc modules. build: update gnulib submodule to latest 2011-06-21 Paul Eggert * deflate.c: Export nice_match to assembler. (static_unless_ASMV): New macro. (nice_match): Use it. 2011-06-08 Jim Meyering build: fix "make syntax-check" * cfg.mk (_gl_TS_unmarked_extern_vars): Add good_match. build: avoid link failure: this time on i686 linux * deflate.c (good_match): Must not be static, since it may be used from lib/match.c. 2011-05-14 Jim Meyering build: avoid link failure on at least i386-FreeBSD7.2 * deflate.c (match_start, prev_length, max_chain_length): Do not declare these as static. On some types of system/arch, they are used via match_.s. * cfg.mk (_gl_TS_unmarked_extern_vars): Mark those three variables as known-extern: match_start, prev_length, max_chain_length. 2011-05-13 Jim Meyering avoid new build failure on a system without * bits.c: Don't include "crypt.h", now that it's deleted. maint: use gnulib's new readme-release module * bootstrap.conf (gnulib_modules): Add readme-release. (bootstrap_epilogue): Add the recommended perl one-liner. * README-release: Remove file; it is now generated from gnulib. * .gitignore: Add it. 2011-05-09 Jim Meyering build: update gnulib submodule to latest maint: prepare for gnulib's new tight-scope syntax-check rule * cfg.mk (_gl_TS_dir): Define. (_gl_TS_unmarked_extern_vars): Define. maint: declare many variables to be static * deflate.c: Likewise. * gzip.c: Likewise. * gzip.h: Likewise. * inflate.c: Likewise. * trees.c: Likewise. * unzip.c: Likewise. * util.c: Likewise. maint: remove crypt.[ch] stubs * Makefile.am (gzip_SOURCES): Remove crypt.c (EXTRA_DIST): Remove crypt.h * crypt.c, crypt.h: Remove files. * unpack.c: Don't #include "crypt.h" * zip.c: Likewise * util.c: Likewise. * unzip.c: Likewise. maint: limit scope of several functions * deflate.c (longest_match): Move extern declaration into #if-ASMV block. [!ASMV]: Define as static. * inflate.c: Remove unnecessary prototypes. ANSI-declify functions and declare them to be static. maint: remove all uses of OF((...)) prototype-hiding macro * bits.c: Remove all uses of OF. * deflate.c: Likewise. * gzip.c: Likewise. * inflate.c: Likewise. * lzw.h: Likewise. * trees.c: Likewise. * unlzh.c: Likewise. * unpack.c: Likewise. * util.c: Likewise. * gzip.h: Likewise. (OF): Remove its definition, too. maint: prepare for tight-scope rule: use noinst_HEADERS * Makefile.am (EXTRA_DIST): Move lzw.h and gzip.h from here to ... (noinst_HEADERS): ...here. For convenience, since the tight-scope rule uses $(noinst_HEADERS). 2011-04-14 Jim Meyering maint: update bootstrap and init.sh from gnulib * bootstrap: Likewise. * tests/init.sh: Update from gnulib. maint: note that we'll remove amiga, atari, msdos, nt, os2, vms soon If someone can show that any of these are being used, let us know. * TODO: Note the plan to remove those directories this year. build: update gnulib submodule to latest maint: fix typos in vms manual: s/it\nit/\nit/ * vms/gzip.hlp: Remove doubled "it". 2011-04-10 Jim Meyering maint: fix typos in comment: s/to to/to/ * deflate.c: Remove doubled 'to's. 2011-03-20 Jim Meyering maint: stop using .x-sc_* files to list syntax-check exemptions Instead, use the new mechanism with which you merely use a variable (derived from the rule name) defined in cfg.mk to an ERE matching the exempted file names. * gnulib: Update to latest, to get maint.mk that implements this. * .x-sc_file_system: Remove file. * .x-sc_prohibit_tab_based_indentation: Likewise. * .x-sc_require_config_h: Likewise. * .x-sc_require_config_h_first: Likewise. * cfg.mk: Define variables to exempt the same files. 2011-03-18 Jim Meyering doc: correct README-release * README-release: Remove mention of -announce mailing list. Unlike coreutils, gzip does not have its own. doc: update release procedure * README-release: Resync from coreutils' file by the same name. 2011-01-03 Jim Meyering maint: update copyright year ranges to include 2011 Run "make update-copyright", so "make syntax-check" works in 2011. build: update gnulib submodule to latest maint: avoid failure of new test for bindtextdomain * cfg.mk (local-checks-to-skip): Add sc_bindtextdomain. 2010-12-02 Jim Meyering maint: avoid "make syntax-check" failure due to old-NEWS modification * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction. 2010-12-01 Paul Eggert * NEWS: The "gzip -f foo.gz" change occurred in 1.3.13, not 1.3.12 2010-11-10 Paul Eggert zgrep: don't assume traditional behavior with signal numbers * zgrep.in: Don't assume the exit status is the signal number plus 128, as POSIX doesn't require this. No need to kill self; exiting with large status is enough. Propagate all exit statuses greater than 1, not merely those in the range 129..143, as there's no need to treat that range specially (and it's not portable anyway). 2010-11-09 Paul Eggert zgrep: fix shell portability bug with -f; fix mishandling of "-e -" * tests/zgrep-f: Check for "zgrep -e -" bug, too. * zgrep.in: Don't assume that if the shell redirects fd 6, then this redirection is visible to the subsidiary grep. POSIX doesn't guarantee this visibility except for file descriptors 0, 1, and 2, and ksh does not support it. Problem reported by Thomas Schulz in . Also, fix a related bug: "-e -" was mishandled. These two bugs were introduced by commit 5b54db4546b84ec97ff57a62f8ddb98faacf77f2 dated 2009-10-09. (escape): Change the convention: do not assume that a stray X is present at the end of the last line. All uses changed. There was no longer any need for this convention, and fixing this made it a bit easier to use 'sed' in a later part of the fix. 2010-11-08 Paul Eggert maint: fix copyright dates that were munged by a maintenance script * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in: * zgrep.in, zless.in, zmore.in, znew.in: A script went awry when updating copyright dates in gzip's shell scripts. It should update comments to look like "# Copyright (C) 2007, 2010 Free Software Foundation, Inc." (with a set of years) and version messages to look like "Copyright (C) 2010 Free Software Foundation, Inc." (with just the most-recent year). Instead, it sometimes ignored one, sometimes the other, and typically put ranges into version messages. Fix all this stuff by hand, using dates that I divined from the change logs (so they're a bit more accurate than script-generated dates). We need to fix the script before it runs in 2011. 2010-10-23 Jim Meyering maint: anchor patterns in .gitignore files * doc/.gitignore: Anchor patterns. * lib/.gitignore: Likewise. * m4/.gitignore: Likewise. maint: update bootstrap and init.sh from gnulib * bootstrap: Update. * tests/init.sh: Update. 2010-10-23 Rob Vermaas maint: update to latest gnulib; use fdutimens, not gl_futimens * gzip.c (copy_stat): Use fdutimens, not gl_futimens. * gnulib: Update to latest. 2010-10-23 Jim Meyering maint: accommodate stricter syntax-check Avoid #if, #define and #undef of always-defined symbols. * gzip.c (ELOOP, SIGPIPE): Remove unneeded cpp directives. * tailor.h (HAVE_DIRENT_H, HAVE_FCNTL_H, HAVE_UNISTD_H, MSDOS): (O_BINARY): Likewise. maint: make our use of gnulib's init.sh conform * tests/help-version: Make use of init.sh conform. * tests/helin-segv: Likewise. * tests/help-version: Likewise. * tests/hufts: Likewise. * tests/memcpy-abuse: Likewise. * tests/mixed: Likewise. * tests/null-suffix-clobber: Likewise. * tests/stdin: Likewise. * tests/trailing-nul: Likewise. * tests/zdiff: Likewise. * tests/zgrep-f: Likewise. * tests/zgrep-signal: Likewise. * tests/znew-k: Likewise. 2010-10-10 Jim Meyering maint: describe policy on copyright year number ranges * README: Mention coreutils' long-standing policy on use of M-N ranges in copyright year lists. Requested by Richard Stallman. 2010-09-15 Paul Eggert zgrep: fix parsing of -Eh options * zgrep.in: Update list of single-letter options to match what's in GNU grep. Add -h as an alias for --no-filename. Bug reported by Vladimir Sidorenko in . 2010-08-17 Paul Eggert gzip: fix NO_SIZE_CHECK for VMS * gzip.c (do_list): Use if, not #if. * tailor.h (NO_SIZE_CHECK) [defined(VAXC) || defined(VMS)]: Define. * zip.c (zip): Simplify conditional, which was incorrect at any rate for VMS. 2010-08-15 Paul Eggert algorithm.doc: mention Internet RFC 1952 and modernize a bit * algorithm.doc: Update to mention header-CRC and Internet RFC 1952. Also, remove the crypto stuff, which never worked. Inspired by that same suggestion of Greg Roelofs. gzip: Use 0x%04x instead of %x when printing 16-bit checksums * gzip.c (get_method): Use 0x%04x, not %x, to print 16-bit checksums. Inspired by a suggestion of Greg Roelofs in http://lists.gnu.org/archive/html/bug-gzip/2010-08/msg00004.html 2010-08-03 Paul Eggert maint: update bootstrap * bootstrap, bootstrap.conf, tests/init.sh: Merge from gnulib. 2010-07-19 Paul R. Eggert gzip: don't assume C99, and don't assume overlapping memcpy should work * tailor.h (NOMEMCPY): Remove. memcpy is entitled to not work on overlapping blocks. * inflate.c (inflate_codes): Don't put decl after statement. Omit NOMEMCPY. * gzip.c (get_method): don't assume size_t can be printed with %u 2010-07-02 Paul Eggert Mention that gzip -d now handles FHCRC. 2010-07-02 Paul Eggert Decode FHCRC flag properly, as per Internet RFC 1952. Problem reported by Greg Roelofs in: http://lists.gnu.org/archive/html/bug-gzip/2010-06/msg00003.html * gzip.c (discard_input_bytes): New function. (get_method): Check header checksum, if given. We never generate it, but other programs may. * gzip.h (HEADER_CRC): Renamed from CONTINUATION. All uses changed. * tailor.h [defined __50SERIES]: Remove PRIMOS stuff that was obsolete anyway and would have made this patch harder to maintain. (get_char, put_char): Remove. * zip.c (zip): Use put_byte instead of the now-removed put_char. 2010-07-01 Paul Eggert Don't assume that sizeof (long) == 4 when computing statistics. * gzip.c (get_method): Don't assume sizeof (long) == 4. * zip.c (zip): Likewise. Update Info-ZIP name and coordinates (thanks to Greg Roelofs). 2010-05-11 Paul Eggert * doc/gzip.texi (Sample): Fix backslash quoting problem. Problem reported by Ole Tange in . 2010-04-26 Jim Meyering build: update gnulib submodule to latest maint: remove primos support * Makefile.am (EXTRA_DIST): Remove all primos/ files. * primos/build.cpl: Remove file. * primos/ci.opts: Likewise. * primos/include/errno.h: Likewise. * primos/include/fcntl.h: Likewise. * primos/include/stdlib.h: Likewise. * primos/include/sysStat.h: Likewise. * primos/include/sysTypes.h: Likewise. * primos/primos.c: Likewise. * primos/readme: Likewise. 2010-04-08 Jim Meyering build: include cfg.mk in the distribution tarball * Makefile.am (EXTRA_DIST): Add cfg.mk. 2010-04-07 Eric Blake maint: ignore more built files * .gitignore: Add version files. 2010-04-07 Jim Meyering tests: help-version: cross-check PATH in tests * tests/help-version: Cross-check $VERSION and --version output. * tests/Makefile.am (TESTS_ENVIRONMENT): Export VERSION=$(VERSION). tests: improve help-version * tests/help-version: Use fail_, rather than echo+Exit. tests: pull help-version from grep build: keep --version strictly up to date Before this change, in development, gzip's --version output could lag behind reality by a couple deltas or by a "-dirty" suffix. That would lead to spurious failure of the new --version-$VERSION PATH cross-check. * Makefile.am (version.c, version.h): New rules. (BUILT_SOURCES): Set/append. (noinst_LIBRARIES, noinst_libver_a_SOURCES): Define. (gzip_LDADD): Add libver.a. (DISTCLEANFILES): Define. * gzip.c (license): Use Version, not VERSION. 2010-04-06 Jim Meyering tests: (portability) use st, not "status" as variable name * tests/zgrep-signal: Do not use status as a variable name, per autoconf's documentation that it is not portable to some shells. tests: s/framework_failure/framework_failure_/ tests: update init.sh from gnulib * tests/init.sh: Update from gnulib. tests: run most tests via tests/Makefile.am * Makefile.am (SUBDIRS): List tests after ".". Move most test-related things from here to ... * tests/Makefile.am: ... here. * configure.ac (AC_CONFIG_FILES): Add tests/Makefile. * tests/helin-segv: Adjust. * tests/help-version: Likewise. * tests/hufts: Likewise. * tests/memcpy-abuse: Likewise. * tests/mixed: Likewise. * tests/null-suffix-clobber: Likewise. * tests/stdin: Likewise. * tests/trailing-nul: Likewise. * tests/zdiff: Likewise. * tests/zgrep-f: Likewise. * tests/zgrep-signal: Likewise. * tests/znew-k: Likewise. tests: skip tests that use grep's -f and -E options, if they don't work * tests/init.cfg (require_grep_minus_f): New function. * tests/zgrep-f: Use require_grep_minus_f. Use path_prepend_. tests: arrange for skip and failure notices to go to stderr, not .log * tests/init.cfg: New file. Make init.sh's stderr_fileno_ match what the "exec 9>&2" we use in TESTS_ENVIRONMENT. * Makefile.am (EXTRA_DIST): Add it. 2010-04-06 Eric Blake maint: ignore generated files * .gitignore: Ignore recent gnulib additions. maint: update bootstrap * bootstrap: Use latest copy from gnulib/build-aux. 2010-04-05 Jim Meyering build: use gnulib's lib-ignore module * bootstrap.conf (gnulib_modules): Add lib-ignore, in case it helps. * Makefile.am (AM_LDFLAGS): Define it. maint: let configure-invoked cpp emit diagnostics to config.log * configure.ac: Do not discard CPP's stderr. build: update gnulib submodule to latest, and adapt * cfg.mk: Update to use new _sc_search_regexp interface. Run this: perl -pi -e 's/\b_prohibit_regexp\b/_sc_search_regexp/;' -e 's/\bmsg=/halt=/; s/\bre=/prohibit=/;' cfg.mk and then adjust backslashes so they still line up. * cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it. * msdos/tailor.c (fcalloc): Mark a diagnostic for translation, to placate stricter syntax-check, even though no one uses this file. use assembly code matcher when possible * configure.ac (ASCPPPOST): Backslash-escape "#" in AC_SUBST'd variable, to keep make from seeing it as a comment-introducer. Based on a patch by Petr Pisar. * lib/Makefile.am (match.$(OBJEXT)): Use AM_V_GEN and AM_V_at. * lib/match.c: Don't include . It would impede configure-time assembler test. * .x-sc_require_config_h: Exempt lib/match.c from syntax-check. * .x-sc_require_config_h_first: Likewise. 2010-03-20 Jim Meyering do not use stat.st_mtime of a non-regular file * gzip.c: Include "timespec.h". (treat_stdin): Use st_mtime only from a regular file. This matters at least on Cygwin 1.7.1-1, for which a stdin-pipe has the mtime of /dev/null, rather than the gzip-documented-for-pipes "current time". Reported by Denis Excoffier. 2010-02-22 Jim Meyering tests: exercise the fix for the decompression data-loss bug * tests/null-suffix-clobber: New file. * Makefile.am (TESTS): Add it. gzip: fix a data-loss bug when decompressing with --suffix='' * gzip.c (main): Disallow an empty --suffix=S also with -d. Otherwise, "gzip -d -S '' F.gz" would ask if it's ok to remove the existing file, "F.gz"; if you reply "yes", you'd lose all of that data. Use of an empty suffix was already rejected in compression mode. * gzip.1 (--suffix (-S)): Do not recommend to use "gunzip -S '' *". Describe how the suffix is used when decompressing, too. * NEWS (Bug fixes): mention the fix. Reported by Ripduman Sohan. tests: add ---presume-input-tty option, solely for testing * gzip.c: Include . (presume_input_tty): New global. (main): Set it. (treat_stdin, check_ofname): Use it. 2010-02-07 Jim Meyering doc: minor adjustment to README-release * README-release: Tweak description, to sync from coreutils. tests: add the help-version sanity tests from coreutils * tests/help-version: New file, from coreutils. * Makefile.am (TESTS): Add it. tests: make distcheck invoke "make syntax-check" and other tests * dist-check.mk: New file, from coreutils. * cfg.mk: Include it. * Makefile.am (distcheck-hook): New rule, to make us use it. zcmp: consistently indicate failure with exit status of 2 * zcmp.in: Exit with status of 2 (not 1), when writing --help or --version output fails, to be more like cmp. 2010-02-03 Jim Meyering tests: add more tests of gzip -cdf * tests/mixed: Test "gzip -cdf" for a range of small uncompressed files. tests: flip and adjust mixed test, now that the bug is fixed * NEWS (Bug fixes): Mention the fix. * Makefile.am (XFAIL_TESTS): Move tests/mixed from here... (TESTS): ...to here. * tests/mixed: Comment out the currently (always?) failing part. 2010-02-03 Mark Adler gzip -cdf now handles concatenation of gzip'd and uncompressed data * util.c (copy): Change semantics so as to honor a decremented inptr. * gzip.c (get_method): When needed (-cdf), decrement inptr rather than clearing it -- and output the first magic byte. 2010-02-03 Dmitry V. Levin zgrep: terminate gracefully when a pipeline is interrupted by a signal zgrep is not terminated gracefully when its grep/sed pipeline is terminated by a signal. For example, a command like zgrep -F .TH /usr/share/man/man1/*.gz | head continues working long after the "head" process completes. Another example, a command like zgrep unmatched-pattern /usr/share/man/man1/*.gz cannot be interrupted by sending a SIGQUIT with Ctrl-\ key, it outputs zgrep: line 221: test: : integer expression expected and goes on. * zgrep.in: Terminate gracefully when the grep/sed pipeline is terminated by a signal. * tests/zgrep-signal: New test. * Makefile.am (TESTS): Add it. 2010-02-03 Jim Meyering maint: teach "make syntax-check" the space-only indentation rule * cfg.mk (sc_prohibit_tab_based_indentation): New rule, from coreutils. (sc_prohibit_emacs__indent_tabs_mode__setting): Likewise. * bootstrap: Remove "indent-tabs-mode: nil" directive. * .x-sc_prohibit_tab_based_indentation: New file. 2010-02-02 Jim Meyering global: convert indentation-TABs to spaces Transformed via this shell code: t=$'\t' git ls-files \ | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \ | grep -vE 'tests/pr/|help2man' \ | xargs grep -lE "^ *$t" \ | xargs perl -MText::Tabs -ni -le \ '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_' 2010-02-02 Dmitry V. Levin wrapper scripts: write diagnostics to stderr, not to stdout * zforce.in: In case of usage error, output short error diagnostics to stderr instead of printing help text to stdout. * zmore.in: Likewise. * znew.in: Likewise. 2010-02-02 Jim Meyering gzip -cdf mishandles some concatenated input streams: test it * tests/mixed: Exercise "gzip -cdf" bug. * Makefile.am (XFAIL_TESTS): Add it. Mark Adler reported the bug. tests: move the hufts-segv test to its own file * tests/hufts: New test. * Makefile.am (TESTS): Add tests/ (check-local): Remove the hufts-segv test from this rule. tests: begin moving tests into their own files * Makefile.am (TESTS): Add tests/stdin. (check-local): Move the stdin check to its own file: * tests/stdin: New script. tests: remove unnecessary use of "path_prepend_ ." It is unnecessary, since Makefile.am's TESTS_ENVIRONMENT setting already adds the top build directory, and besides, is only marginally useful when running stand-alone, since it presumes that the script is being run from the top build directory. * tests/helin-segv: Remove unnecessary use of path_prepend_. * tests/memcpy-abuse: Likewise. * tests/trailing-nul: Likewise. * tests/zdiff: Likewise. * tests/zgrep-f: Likewise. tests: note that znew-k test depends on length of temp file name * tests/znew-k: Tweak diagnostic, factor and add a surprising comment. 2010-02-01 Jim Meyering build: update gnulib submodule to latest 2010-02-01 Dmitry V. Levin fix "znew -K" to work without use of compress utility * znew.in: Change -K option to imply -t, do not use compress(1). * znew.1: Document it. * tests/znew-k: New test. * Makefile.am (TESTS): Add it. 2010-01-20 Jim Meyering maint: update README-release procedure * README-release: sync from coreutils. post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.4 * NEWS: Record release date. tests: exercise the segfault fix * tests/helin-segv: New test. * Makefile.am (TESTS): Add it. gzip -d: do not clobber stack for valid input on x86_64 * unlzw.c (unlzw): Avoid integer overflow. Aki Helin reported the segfault along with an input to trigger the bug. * NEWS (Bug fixes): Mention it. maint: avoid a minor "make syntax-check" failure * .x-sc_file_system: Exempt NEWS, since it includes a literal from an old diagnostic. maint: remove unused file: README-alpha * README-alpha: Remove unused file. build: update gnulib submodule to latest 2010-01-11 Yuxi Zhang gzip -d: use memcpy more often * inflate.c (inflate_codes): Use memcpy (rather than slower memcopy-like code) in more cases. 2010-01-11 Jim Meyering build: do not override gnulib-provided AM_CFLAGS options Avoid a warning from automake: lib/Makefile.am:24: AM_CFLAGS multiply defined in condition TRUE ... lib/gnulib.mk:30: ... `AM_CFLAGS' previously defined here lib/Makefile.am:20: `lib/gnulib.mk' included from here * lib/Makefile.am (AM_CFLAGS): Append $(WARN_CFLAGS) and $(WERROR_CFLAGS), i.e., use "+=", not "=". This was introduced via 2009-12-17 commit 0341fc22, "build: with --enable-gcc-warnings, use -Werror", but fortunately is not a bug, because the definition it would have overridden was always empty. 2010-01-10 Jim Meyering gzip -d would fail with a CRC error... ...for some inputs, and some memcpy implementations. It is possible that an offending input has to be compressed "from FAT filesystem (MS-DOS, OS/2, NT)", since the sole reproducer no longer evokes a CRC error when uncompressed and recompressed on a GNU/Linux system. Also, using an unpatched reverse-memcpy-gzip on over 100,000 inputs on a GNU/Linux system did not turn up another reproducer. * inflate.c (inflate_codes): Don't call memcpy with overlapping regions. Properly detect when source and destination overlap. * tests/memcpy-abuse: New test, to trigger misbehavior. * Makefile.am (TESTS): Add it. * NEWS (Bug fixes): Mention it. Reported by Alain Magloire in http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/307 2010-01-08 Jim Meyering tests: switch to gnulib's init.sh test infrastructure * tests/test-lib.sh: Remove file. * tests/init.sh: New file, from gnulib. * tests/trailing-nul: Use the new file. * tests/zdiff: Likewise. * tests/zgrep-f: Likewise. * Makefile.am (EXTRA_DIST): List tests/init.sh, not test-lib.sh. build: update gnulib submodule to latest 2010-01-03 Jim Meyering maint: record update-copyright options for this package * cfg.mk: Next time, just run "make update-copyright". 2010-01-01 Jim Meyering maint: update all FSF copyright year lists to include 2010 Use this command: git ls-files |grep -vE '^(\..*|COPYING|gnulib)$' |xargs \ env UPDATE_COPYRIGHT_USE_INTERVALS=1 build-aux/update-copyright 2009-12-31 Jim Meyering maint: newer gnulib; don't hard-code my GPG key ID * cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it. * gnulib: Update to lastest. 2009-12-30 Jim Meyering build: update gnulib submodule to latest maint: remove lots of obsolete #if...HAVE_* checks Remove many always-true cpp tests like #ifdef HAVE_UNISTD_H, #ifdef HAVE_FCNTL_H and #ifdef SSIZE_MAX. * gzip.c: As above. * gzip.h: Likewise. * inflate.c: Likewise. * tailor.h: Likewise. * unlzw.c: Likewise. * util.c: Likewise. * zip.c: Likewise. build: add a syntax-check * cfg.mk (sc_prohibit_obsolete_HAVE_HEADER_H): New rule. build: with --enable-gcc-warnings, use -Werror * Makefile.am (AM_CFLAGS): Enable $(WERROR_CFLAGS). * lib/Makefile.am (AM_CFLAGS): Enable both $(WARN_CFLAGS) and $(WERROR_CFLAGS). build: quiet warnings from util.c * configure.ac (warnings): Add -Wno-overflow and -Wno-type-limits. build: avoid warning about possibly-no-return functions * gzip.h (read_error, write_error): Mark these functions as "no-return". build: avoid warning about ignored chown/fchown return value * bootstrap.conf (gnulib_modules): Add ignore-value. * gzip.c: Include "ignore-value.h". (copy_stat): Explicitly ignore chown and fchown failure build: update gnulib submodule to latest 2009-11-20 Jim Meyering build: unlzw.c: avoid warnings about unused macros * configure.ac: Turn off -Wunused-macros. build: avoid warnings about unused macros * unzip.c (LOCTIM): Comment out unused macro. * deflate.c (EQUAL): Remove definition. Use "0" at sole point of use. build: util.c: avoid warnings about add_envopt * util.c (add_envopt): The parameter "env" was used for two conflicting purposes. One use required a const char* parameter, while the other was used as an argument to free, which must not be "const". Rename the parameter and use a new local variable for the second role. build: avoid many const-related warnings * gzip.c: Add "const" to many variables, to avoid compiler warnings. * util.c (add_envopt): Make 3rd parameter const (gzip_error): Make sole parameter const. * gzip.h: Update prototypes. build: avoid warnings from -Wstrict-prototypes * gzip.c (main): Declare using a prototype. (progerror): Likewise. And make parameter const. build: use gnulib's fdopendir module * bootstrap.conf (gnulib_modules): Add fdopendir. * gzip.c (treat_dir): Don't depend on HAVE_FDOPENDIR. Gnulib now guarantees its availability. * configure.ac: Don't check for fdopendir here. build: enable many warnings * configure.ac: Add support for --enable-gcc-warnings. * bootstrap.conf (gnulib_modules): Add manywarnings. * Makefile.am (AM_CFLAGS): Add (WARN_CFLAGS) # $(WERROR_CFLAGS) maint: tweak formatting of bootstrap.conf * bootstrap.conf (gnulib_modules): Unindent list. maint: cfg.mk: remove factored-out ftp host/dir definitions * cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable): (gnu_rel_host, url_dir_list): Remove definitions. The defaults, now provided by maint.mk, are the same. * gnulib: Update for latest, including those maint.mk additions. build: "make stable" emitted an invalid gnupload command * cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major. * README-release: Change another s/major/stable/. 2009-10-30 Jim Meyering post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.3.14 * NEWS: Record release date. build: accommodate new syntax-check test * amiga/tailor.c (_expand_args): Change each of three uses of "exit(20)" to "exit(EXIT_FAILURE)". * sample/add.c: Include . (main): Use EXIT_FAILURE and EXIT_SUCCESS, not 1 and 0. * sample/sub.c (main): Likewise. * sample/zread.c (main): Likewise. build: update gnulib submodule to latest build: link with $(LIB_CLOCK_GETTIME) * Makefile.am (gzip_LDADD): Add $(LIB_CLOCK_GETTIME), now that utimens pulls in gettime. (FILES_TO_CHECK): Remove $(gzip_LDADD), now that it may contain -lrt. 2009-10-28 Jim Meyering msdos: fix syntax in Makefile.djg * msdos/Makefile.djg (gzip): Change each of two leading 8-space sequences to a TAB. Reported by Allan Mui. 2009-10-20 Jim Meyering build: do not use AC_PREFIX_PROGRAM * configure.ac: Do not use "AC_PREFIX_PROGRAM(gzip)". It would induce behavior that is so surprising that it is probably universally considered to be buggy, these days. Reported by Zube in http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/273 2009-10-10 Jim Meyering gzip: add tests for today's bug fix * tests/trailing-nul: New file. Test for today's fix. * Makefile.am (TESTS): Add new script. * NEWS (Bug fixes): Mention it. 2009-10-10 Daniel Barkalow gzip: don't fail when there is exactly one trailing NUL byte * gzip.c (get_method): Require the second byte of magic only if the first byte was nonzero. 2009-10-09 Jim Meyering build: enable automake color- and parallel-test options * configure.ac (AM_INIT_AUTOMAKE): Enable color-tests and parallel-tests. zgrep: portability improvements; exercise "-f -" * zgrep.in: Adjust loop not to use seq; it's not portable enough. Fail if we don't find a free file descriptor. (exists): New function; Use it in place of less portable "test -e". Testing for existence of /dev/fd/$fd doesn't work on Solaris 10, since all 256 always exist (as char devices), but testing for /proc/$$/fd/$fd does work, so do that instead. * Makefile.am (TESTS): Add tests/zgrep-f. * tests/zgrep-f: New test; exercise this bug. * NEWS (Bug fixes): Mention it. 2009-10-09 Carl Worth zgrep: handle "-f -" the same way that it works with grep Before this change, echo needle|zgrep -f - haystack.gz would not work. * zgrep.in: When the pattern comes from stdin, redirect it to a different file descriptor, since we're about to use stdin. 2009-10-09 Jim Meyering zdiff would exit 2 (error) rather than 1 for differences * zdiff.in: Save and restore cmp's exit status around a case statement that would otherwise clobber its value. * NEWS (Bug fixes): Mention it. * tests/zdiff: New test; exercise both bugs. * tests/test-lib.sh: New file. From coreutils. * Makefile.am (EXTRA_DIST): Add tests/test-lib.sh. (TESTS): Add tests/zdiff. (TESTS_ENVIRONMENT): Define. From coreutils. (EXTRA_DIST): Append all $(TESTS). zdiff: fix malfunction when operating on two gzip'd inputs zdiff would fail to print differences in two compressed inputs * zdiff.in: Don't let cmp output mix with echo'd gzip exit status values. Report and fix from Jörg-Volker Peetz via * NEWS (Bug fixes): Mention it. build: update gnulib submodule to latest 2009-10-07 Jim Meyering build: update gnulib submodule to latest 2009-10-06 Jim Meyering maint: clarify web-doc-update instructions * README-release: sync a tiny change from coreutils. 2009-10-03 Jim Meyering build: update gnulib submodule to latest doc: use gnu-web-doc-update module * bootstrap.conf (gnulib_modules): Add it. 2009-10-02 Jim Meyering doc: describe release procedure * README-release: New file. 2009-10-01 Jim Meyering maint: make cfg.mk slightly more generic * cfg.mk (url_dir_list): Don't hard-code "coreutils". Use $(PACKAGE). 2009-09-30 Jim Meyering post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.3.13 * NEWS: Record release date. build: update gnulib submodule to latest maint: update bootstrap script * bootstrap (with_gettext): Update from coreutils. maint: pull in two release-related modules from gnulib * bootstrap.conf (gnulib_modules): Add announce-gen and gnupload. build: use more gnulib modules for better POSIX compliance * bootstrap.conf (gnulib_modules): Add modules exposed via make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \ |perl -lne '/.* use gnulib module (\S+).*/ and print $1' \ |sort |uniq -c|sort -nr Add these: calloc close fclose fprintf-posix lstat malloc perror printf-posix realloc 2009-09-30 Karl Berry doc: update to FDL 1.3, minor clean-up * NEWS, README, TODO: Update FDL s/1.2/1.3/. 2009-09-28 Karl Berry doc: update gzip.texi * doc/gzip.texi: FDL 1.3+ Consistently (de)capitalize section names. "User's" is not correct; seems best to simplify the title. Throw in some "GNU"'s. Make direntries be what we actually want. Detabify. 2009-09-26 Jim Meyering maint: temporarily exempt failing syntax-check tests * cfg.mk (local-checks-to-skip): Add the list of currently-failing tests, to exempt them from "make syntax-check". gzip: don't use an uninitialized file descriptor gzip interprets an argument of "-" as indicating stdin, but when "-" is not the first name on the command line, it doesn't work. * gzip.c (treat_stdin): Initialize "ifd". Patch and fine description by Lasse Collin in http://www.mail-archive.com/bug-gzip@gnu.org/msg00213.html * Makefile.am (check-local): Exercise the fix. Based on the above. * NEWS (Bug fixes): Mention this. maint: use a git submodule for gnulib * .gitmodules: New file, to track gnulib. * gnulib: New file, created by running this: git submodule add git://git.sv.gnu.org/gnulib.git gnulib maint: update existing copyright year lists to include 2009 * bootstrap.conf (gnulib_modules): Add update-copyright. maint: include first in many files maint: avoid another "make syntax-check" failure * lib/Makefile.am (match.$(OBJEXT)): Use $(ASCPPPOST), not @ASCPPPOST@. maint: remove RCS $Id$ variables and comments maint: change spelling in comments: s/filesystem/file system/ maint: don't use "the the" * msdos/doturboc.bat: s/the the/the/. maint: remove trailing blanks maint: remove useless if-before-free tests * gzip.c (do_exit): Remove useless if-before-free tests. maint: remove useless casts to avoid "make syntax-check" failures * gzip.c (do_exit): Remove anachronistic cast. * inflate.c (huft_free): Likewise. * util.c (add_envopt): Likewise. * vms/vms.c (vms_expand_args): Likewise. maint: new file: .prev-version * .prev-version: New file, to record previous version number. 2009-09-06 Jim Meyering build: avoid spurious warnings from clang * gzip.h (gzip_error): Declare with ATTRIBUTE_NORETURN. maint: update build-from-scratch infrastructure * bootstrap: Modernize. * bootstrap.conf: Modernize. * cfg.mk: New file. 2009-08-18 Jim Meyering inflate: avoid a leak on a error path * inflate.c (inflate_dynamic): Don't leak maint: ignore a few generated files * lib/.gitignore: ignore more generated files. tests: add a test for just-fixed bug * tests/hufts-segv.gz: New file, from bug report. * Makefile.am (EXTRA_DIST): Add tests/hufts-segv.gz. (check-local): Exercise the bug. tests: don't misinterpret a failing test as successful * Makefile.am (check-local): Exit "1" upon failure, not 0. 2009-08-18 Thiemo Nagel avoid creating an undersized buffer for the hufts table A malformed input file can cause gzip to crash with a segmentation violation or hang in an endless loop. Reported in . * NEWS (Bug fixes): Mention it. 2009-08-18 Jim Meyering avoid silent data loss e.g., on NFS, due to unchecked close of stdout * gzip.c: Include "closein.h". (main): Use atexit (close_stdin); * bootstrap.conf (gnulib_modules): Add closein. Prompted by Mark Kidwell's report and patch in http://bugs.debian.org/538187 * NEWS (Bug fixes): Mention it. * */.gitignore: Update. build: require automake-1.11 and produce xz-compressed tarballs, too * configure.ac: Require automake-1.11. Use the dist-xz option. build: avoid non-srcdir build failure * Makefile.am (gzip.doc.gz): Use $(srcdir)/gzip.doc, not gzip.doc. Don't redirect directly to $@. Use $(AM_V_GEN). (gzip.doc, .in): Don't redirect directly to $@. Use $(AM_V_GEN). * NEWS: Add template header for upcoming release. build: enable git-version-gen, automake silent rules, generate ChangeLog * configure.ac (AC_INIT): Use git-version-gen. Use AM_SILENT_RULES([yes]). (AM_INIT_AUTOMAKE): Drop gnits; conflicts with git-version-gen versions. * bootstrap.conf (gnulib_modules): Use getopt-gnu Ensure ChangeLog exists, for automake. rather than obsolete "getopt" module. Add gitlog-to-changelog. Add git-version-gen. Add gnu-make, gnumakefile and maintainer-makefile. * Makefile.am (dist-hook, gen-ChangeLog): New rules, to generate ChangeLog and insert it into the distribution tarball. (EXTRA_DIST): Add ChangeLog-2007. maint: retire the last VC'd ChangeLog file * ChangeLog-2007: Rename from ChangeLog. From now on, the ChangeLog file will be generated automatically from commit logs. maint: rename .cvsignore files to .gitignore * .gitignore: Renamed from .cvsignore. * doc/.gitignore: Likewise. * lib/.gitignore: Likewise. * m4/.gitignore: Likewise. usr/share/doc/libtool/ChangeLog000064400004330552152527223070012463 0ustar002015-02-15 Gary V. Vaughan version 2.4.6 * NEWS: Record release date. 2015-02-06 Gary V. Vaughan libtool: don't execute automake and autoconf on every invocation. Regression from 2.4.2 was causing noticable slow-down in builds that call libtool many times. * build-aux/ltmain.in (func_help): Override func_help() from gl/build-aux/options-parser to only run automake --version and autoconf --version when libtool --help is executed on the command line. * NO-THANKS: Add Robert Yang. Reported by Robert Yang 2015-01-20 Gary V. Vaughan maint: undo copyright years regression. * gl/build-aux/options-parser: Undo copyright years regression. * bootstrap: Regenerate. bootstrap: sync with upstream. * gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/options-parser: Sync with upstream. * bootstrap: Regenerate. 2015-01-20 Pavel Raiskup libtool: respect config.site LT_SYS_LIBRARY_PATH Libtool generator code needs to remember the configure time LT_SYS_LIBRARY_PATH content to allow config.status properly instantiate default LT_SYS_LIBRARY_PATH libtool run-time value; Thats because config.status has no idea what the contents of config.site file is (by default). * m4/libtool.m4 (_LT_CONFIG): Use the _LT_DECLared $configure_time_lt_sys_library_path variable as the default for LT_SYS_DLSEARCH_PATH at run-time. (_LT_SYS_DYNAMIC_LINKER): Don't change ac_cv_* variable if it is not necessary. New $configure_time_lt_sys_library_path variable. * NEWS: Update. libtool.m4: typofix, subst last '$' with quadrigraph * m4/libtool.m4 (_LT_LIBTOOL_TAG_VARS): Encase the configure/libtool shared function into parseable borders; for testing purposes. (func_munge_path_list): Typo s/$/@S|@/. * tests/configure-funcs.at: New testcase. * Makefile.am (TESTSUITE_AT): Mention new testcase. * NEWS: Update. tests: fix an ltdl dryrun race condition. * tests/testsuite.at (LT_AT_ACLOCAL): Inject a 1 second sleep after aclocal to ensure subsequently generated autotools files will be newer. * NEWS: Update. 2015-01-19 Gary V. Vaughan maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 2.4.5 * NEWS: Record release date. 2015-01-18 Gary V. Vaughan maint: update copyright statements to include 2015. * AUTHORS, HACKING, Makefile.am, NEWS, README.md, TODO, bootstrap, bootstrap.conf, build-aux/edit-readme-alpha, build-aux/git-hooks/commit-msg, build-aux/ltmain.in, cfg.mk, configure.ac, doc/libtool.texi, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser, libltdl/README, libltdl/configure.ac, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__argz_.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c, libltdl/lt__alloc.c, libltdl/lt__argz.c, libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c, libltdl/lt_error.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/ltdl.mk, libltdl/slist.c, libtoolize.in, m4/autobuild.m4, m4/libtool.m4, m4/ltargz.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.in, m4/lt~obsolete.m4, m4/m4.m4, tests/am-subdir.at, tests/archive-in-archive.at, tests/bindir.at, tests/cdemo.at, tests/cmdline_wrap.at, tests/configure-iface.at, tests/convenience.at, tests/ctor.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at, tests/depdemo.at, tests/deplib-in-subdir.at, tests/deplibs-ident.at, tests/deplibs-mingw.at, tests/destdir.at, tests/dlloader-api.at, tests/dumpbin-symbols.at, tests/duplicate_conv.at, tests/duplicate_deps.at, tests/duplicate_members.at, tests/early-libtool.at, tests/exceptions.at, tests/execute-mode.at, tests/exeext.at, tests/export-def.at, tests/export.at, tests/f77demo.at, tests/fail.at, tests/fcdemo.at, tests/flags.at, tests/help.at, tests/indirect_deps.at, tests/infer-tag.at, tests/inherited_flags.at, tests/install.at, tests/lalib-syntax.at, tests/libtool.at, tests/libtoolize.at, tests/link-order.at, tests/link-order2.at, tests/loadlibrary.at, tests/localization.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/lt_dlopen.at, tests/lt_dlopen_a.at, tests/lt_dlopenext.at, tests/ltdl-api.at, tests/ltdl-libdir.at, tests/mdemo.at, tests/need_lib_prefix.at, tests/no-executables.at, tests/nocase.at, tests/nonrecursive.at, tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/pic_flag.at, tests/recursive.at, tests/resident.at, tests/runpath-in-lalib.at, tests/search-path.at, tests/shlibpath.at, tests/slist.at, tests/standalone.at, tests/static.at, tests/stresstest.at, tests/subproject.at, tests/sysroot.at, tests/tagdemo.at, tests/template.at, tests/testsuite.at, tests/versioning.at, tests/with-pic.at: Update copyright statement to include 2015. * cfg.mk: Adjust old_NEWS_hash accordingly. 2015-01-16 Gary V. Vaughan gnulib: sync with upstream. * gnulib: Sync with upstream. * doc/.gitignore: Regenerate. 2015-01-16 Pavel Raiskup libtoolize: fix ltdl installation order. Fixes regression caused by commit 99a808be. Makefile.in has aclocal.m4 as prerequisite, so Makefile.in should be installed later to avoid unnecessary rebuild by (versioned) aclocal. * Makefile.am (pkgltdl_files): Move the Makefile.in file down in the list after aclocal.m4. * tests/libtoolize.at: Adjust to match reordered output. 2014-12-12 Gary V. Vaughan libtool: check Sun Pro CXX ABI postdeps at libtool time. * m4/libtool.m4 (_LT_PREPARE_CC_BASENAME): Factor cc_basename calculation into a shell function... (_LT_CONFIG_SAVE_COMMAND): ...and expand it into generated libtool script. (_LT_CC_BASENAME): Adjust accordingly. (_LT_FUNC_SUNCC_CSTD_ABI): Remove from here... * build-aux/ltmain.in (func_suncc_cstd_abi): ...and reimplement here. * m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Remove postdeps augmentation from here... * build-aux/ltmain.in (func_mode_link): ...and reimplement here just before postdeps are added. * NEWS: Update. libtool: more carefully avoid automatic -Cstd -Crun on Sun Pro CXX. * m4/libtool.m4 (_LT_FUNC_SUNCC_CSTD_ABI): New function factored out of repeated code. Take note of other known -Cstd incompatible compiler flags. (_LT_SYS_HIDDEN_LIBDEPS): Use it to determine whether -Cstd -Crun can be safely added to postdeps with Sun Pro CXX. * NEWS: Update. * NO-THANKS: Add Marc Glisse. Reported by Marc Glisse libtool: take care not to double-apply LT_SYS_LIBRARY_PATH. * m4/libtool.m4 (_LT_CONFIG_SAVE_COMMANDS): Copy configure-time LT_SYS_LIBRARY_PATH settings as default, but allow run-time override. (_LT_SYS_DYNAMIC_LINKER): Save the unmunged sys_lib_dlsearch_path_spec value, and use it for _LT_DECL, but then munge it with LT_SYS_LIBRARY_PATH for use in ltdl.m4 macros, such as LT_SYS_DLSEARCH_PATH. 2014-12-11 Pavel Raiskup libtool: support LT_SYS_LIBRARY_PATH for adjusting bad guesses. Revert 8728e07 and 440fee6. Some GNU/Linux distributions install libraries into /lib64 (or /usr/lib64) on 64-bit machines, while /lib (/usr/lib respectively) stays for multilib variant. Other distributions keep /usr/lib for 64-bit variant and reserve other directory for multilib. Detection of what approach a given system uses is difficult, however, especially because Glibc's ldconfig does not report the full and correct list of search paths. Allow the user to adjust Libtools heuristically determined search paths with the new LT_SYS_LIBRARY_PATH environment variable at both compile-time, when libtool is called, and at configure time. * m4/libtool.m4 (_LT_PREPARE_MUNGE_PATH_LIST): Define a new function to munge a libtool path list according to a user supplied colon-delimited path. (_LT_SYS_DYNAMIC_LINKER): Require _LT_PREPARE_MUNGE_PATH_LIST. Mark LT_SYS_LIBRARY_PATH as precious to autoconf (to survive automatic "autoreconf"). Call the new func_munge_path_list function on sys_lib_dlsearch_path_spec - this propagates results to generated libtool script. (_LT_CONFIG): Expand _LT_PREPARE_MUNGE_PATH_LIST into generated libtool script. * build-aux/ltmain.in (func_mode_link): Call it to adjust sys_lib_dlsearch_path according to LT_SYS_LIBRARY_PATH. * doc/libtool.texi: Document new LT_SYS_LIBRARY_PATH. * doc/notes.texi: Likewise. * NEWS: Update. References: http://thread.gmane.org/gmane.comp.gnu.libtool.general/8339/focus=8345 2014-12-11 Gary V. Vaughan maint: fix syntax-check failures. * m4/m4.m4 (AC_PROG_GNU_M4): Reverse some test arguments for sc_prohibit_test_const_follows_var. Remove some spurious braces for sc_useless_braces_in_variable_drefs. bootstrap: sync with upstream. * gl/build-aux/extract-trace (func_find_tool): Quote a bare variable expansion in a test argument. * bootstrap: Regenerate. 2014-12-05 Gary V. Vaughan libtool: s390x is also a 64bit glibc/ELF platform. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LIB): Add s390x to glibc/ELF compatible CPUs that have /lib64 and /usr/lib64 in sys_lib_dlsearch_path_spec. Reported by Pavel Raiskup 2014-12-04 Gary V. Vaughan libtool: for 64bit GNU arches, add /lib64 and /usr/lib64 to sys_lib_dlsearch_path. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) : If $host_cpu contains "64", add /lib64 and /usr/lib64 to sys_lib_dlsearch_path_spec. Reported by Orion Poplawski, Christian Rössel, Olly Betts et. al. libltdl: fix gcc compiler warning for unused attributes. * libltdl/ltdl.c, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: For at least gcc 4.8.3 and 4.9.1, __attribute__((__unused)) should follow the unused parameter declaration. * NO-THANKS: Add Дилян Палаузов. Reported by Дилян Палаузов 2014-12-04 Eric Bavier tests: do not assume compiler prefers shared libraries. Testing whether -static-libtool-libs causes a non-libtool library to be linked dynamically is effectively a test of the compiler's preference in this case. The Cray compiler prefers static libraries if not told otherwise. * tests/static.at [static linking flags for programs]: Do not expect -static-libtool-libs to fail. 2014-12-04 Norihiro Tanaka libtool: fix sys_lib_dlsearch_path_spec for ia64 HP-UX. The run-time loader does not search /usr/local or subdirectories by default on ia64 HP-UX. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Fix sys_lib_dlsearch_path_spec for ia64 HP-UX. * NEWS: Update. 2014-12-04 Gary V. Vaughan libltdl: edit AM_CPPFLAGS correctly for libltdl/Makefile.am. * libltdl/ltdl.mk (AM_CPPFLAGS): Make sure the sed expression to remove the first libltdl/ on each line is not confused by misuse of linebreaks. * Makefile.am (lt_Makefile_am): Also edit out the duplicated include paths after libltdl/ elimination. * NEWS: Update. Reported by Michael Wobst 2014-12-04 Tijl Coosemans libtool: commit forgotten soname_spec for freebsd-elf in bb7cef9. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) : Set soname_spec correctly, per original patch. * NEWS: Update. 2014-12-03 Gary V. Vaughan bootstrap: sync with upstream for runtime M4 checking functions. * gl/build-aux/extract-trace: Sync with upstream for runtime M4 checking functions. * bootstrap: Regenerate. * NEWS: Update. configury: bail out early if GNU M4 is not on the path. Now that libtoolize requires an installed GNU M4 to parse configure.ac and aclocal.m4 sources for libltdl macros, let the user know at configure time when it is missing. * m4/m4.m4: New file for rejecting non-GNU and buggy GNU versions of M4. Copied from GNU Autoconf m4.m4. * Makefile.am (lt_aclocal_m4_deps): Add m4/m4.m4. * configure.ac (AC_PROG_GNU_M4): Call it. * NEWS: Update. Reported by Michael Felt 2014-11-29 Gary V. Vaughan maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 2.4.4 * NEWS: Record release date. gnulib: sync with upstream. * gnulib: sync with upstream. 2014-11-29 Michael Haubenwallner libtool: optional filename-based shlib versioning on aix. Support filename-based shared library versioning on AIX with the lib.so library filename extension, which is used with runtime linking only. Runtime linking is enabled by the -brtl linker flag for executables and the -G linker flag for Shared Objects. The behaviour is similar to Linux/SVR4 DT_SONAME, hence the name "aix-soname=svr4". * Makefile.am (TESTS_ENVIRONMENT): Pass with_aix_soname value via lt_cv_with_aix_soname into testsuite. * configure.ac: AC_SUBST with_aix_soname for testsuite. * libltdl/loaders/dlopen.c (vm_open): Use RTLD_MEMBER flag for dlopen when the filename does specify an archive member between "()". Otherways, retry with appending LT_SHARED_LIB_MEMBER when loading fails without but archive file seems to exist. * m4/libtool.m4 (dynamic_linker): Describe configured shared library versioning variant according to with_aix_soname and runtime linking. (soname_spec, library_names_spec, shlibpath_overrides_runpath) (postinstall_cmds, postuninstall_cmds, hardcode_direct) (hardcode_direct_absolute, no_undefined_flag) (allow_undefined_flag): Set according to with_aix_soname and runtime linking configuration. (export_symbols_cmds): Decorate symbols with the weak keyword. (archive_expsym_cmds): Create both shared libraries according to with_aix_soname and runtime linking configuration. Filter -brtl linker flag from compiler_flags for shared libraries due to its side effects. (enable_static): Respect with_aix_soname for disabling as well. * m4/ltdl.m4 (LT_SHARED_LIB_MEMBER): Define, set based on the value of the shared_archive_member_spec libtool variable. * m4/ltoptions.m4 (_LT_WITH_AIX_SONAME): New. Provides commandline option --with-aix-soname=aix|svr4|both. Declares $shared_archive_member_spec as libtool variable. (_LT_SET_OPTIONS): Define LT_INIT options "aix-soname=aix", "aix-soname=svr4", "aix-soname=both". Default is "aix-soname=aix". * doc/libtool.texi (LT_INIT): Document new options. * tests/deplibs-ident.at: To define whether this test should XFAIL, use hardcode_action, hardcode_direct, hardcode_direct_absolute configuration settings instead of platforms aix, bitrig, hppa-hpux, interix or openbsd. * tests/versioning.at: When shared_archive_member_spec is defined and LDFLAGS contain -brtl, we can run the versioning check. * NEWS: Update. 2014-11-28 Tijl Coosemans libtoolize: no need for umask 0 now that copying does not use tar. The umask calls seem to be left over as a workaround for several releases ago when libtoolize copied libltdl sources with the help of tar. Now that we use cp or ln -s exclusively, this just needlessly makes the files world writable; we should just respect the users' own umask setting. * libtoolize.in (func_copy): Remove umask 0 calls and simplify. 2014-11-28 Gary V. Vaughan maint: syntax-checks don't like ${ even in comments! * m4/ltdl.m4: Fix a comment to appease syntax-check rules. 2014-11-28 Tijl Coosemans libtool: use a modern library version scheme for freebsd-elf. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Adopt downstream patch used by FreeBSD for versioned library filenames. * build-aux/ltmain.in (func_mode_link): Replace conflicting freebsd-elf version_type case branches with a single calculation setting major and versuffix to match downstream FreeBSD. libtool: split sco version into its own type. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Set version type to "sco" for sco based hosts. * build-aux/ltmain.in (func_mode_link): Accept new "sco" version_type as equivalent to freebsd-elf. 2014-11-28 Gary V. Vaughan configury: detect dlsym underscore prefix without dlopen self. * m4/ltdl.m4 (LT_FUNC_DLSYM_USCORE): Compile, load and get the address of a symbol from a separate loadable module, rather than assuming dlopen self works. * NEWS: Update. Reported by KO Myung-Hun 2014-11-26 Gary V. Vaughan ltdl: fix a long standing duplicate `-ldl' bug in the link line. * m4/ltdl.m4 (LT_LIB_DLLOAD): Save contents of LIBS before calling AC_SEARCH_LIBS, which prepends to LIBS by default, and restore afterwards. We set LIBADD_DLOPEN and LIBADD_SHL_LOAD so that dynamic loader libraries can be added selectively only where they are needed. * NEWS: Update. 2014-11-21 Michael Haubenwallner tests: do not test undef symbols across shlibs on AIX. On AIX, undefined symbols across shared libraries can work only when the main program explicitly exports those symbols. As this is bad practice anyway and -no-undefined should be preferred, we skip this. * tests/template.at: Skip test with undef syms across libraries on AIX. tests: question mark is extended regex for non-GNU grep. Accepting \? for at-most-once in basic regex is a GNU grep extension, not accepted by AIX grep for example. * tests/libtool.at: Use \{0,1\} instead of ? with GREP. 2014-11-18 Gary V. Vaughan maint: Fox a resent smelling mystique. * build-aux/git-log-fix: ChangeLog edit. Reported by Eric Blake bootstrap: make sure gnulib file droppings are removed. * bootstrap.conf (libtool_cleanup_empty_dirs): Recent bootstrap updates set source_base to null, so we need to use ${x:-y} to override the null. Autoconf Shellology says that ancient BSD /bin/sh chokes on :- defaults, but bootstrap is a developer tool, and so we can reasonably expect a developer to have a working /bin/sh to run the bootstrap script. bootstrap: add missing debug preambles. * bootstrap.conf (libtool_prep, func_require_ltdl_dir) (libtool_require_package_url): Add missing $debug_cmd calls. 2014-11-18 Vincent Lefevre NEWS: Fix an ancient spelling mistake. * NEWS: s/propogate/propagate/. * cfg.mk (old_NEWS_hash): Update. 2014-11-17 Vincent Lefevre libtool: fix comment typo. * m4/libtool.m4: Fix -fvisbility=hidden typo in a comment. 2014-11-04 Gary V. Vaughan maint: fix a syntax-check failure. * tests/cmdline_wrap.at (fail_list): quote test arguments to satisfy failing syntax-checks. libtool: fix universal library building on darwin. * build-aux/ltmain.in (func_extract_archives): $basename is now spelled $sed_basename. * NO-THANKS: Update. Reported by Misty De Meo tests: update fat binary test case for modern darwin. * tests/darwin.at: Use "-arch x86_64", which works on modern Apple hardware, rather than "-arch ppc", which generally does not. tests: fix false positive in failed test check for cmdline_wrap.at. * tests/cmdline_wrap.at (fail_list): non-matching globs return as a plain unexpanded string, so we also need to test for file existence before expanding into fail_list. bootstrap: sync with upsteram. * gl/build-aux/bootstrap.in: Sync with upstream. * bootstrap: Regenerate. 2014-11-04 KO Myung-Hun libtool: support versioning on OS/2. * build-aux/ltmain.in (func_mode_link) <*-os2*>: Set major and versuffix. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) <*-os2*>: Set version_type to windows. Add a version information to soname_spec. * NEWS: Update. libtool: support -export-symbols and -export-symbols-regex on OS/2. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) <*-os2*>: Set archive_expsym_cmds. * NEWS: Update. libtool: add -os2dllname option. On OS/2, if there are many DLLs whose prefix is the same and very long, the resulting DLLs are overwritten. Provide a new option to force a DLL name. * build-aux/ltmain.in (func_mode_help): Add a description for -os2dllname. (func_mode_link): Add -os2dllname. * doc/libtool.texi: Document it. * NEWS: Update. libtool: fix DLL creation/installation/uninstallation on OS/2. OS/2 can only load a DLL with a base name of 8 characters or less. Also, on OS/2 don't install or uninstall using a link. * build-aux/ltmain.in: Do not strip an import lib. * m4/libtool.m4: Set variables to fix DLL creation, installation and uninstallation. libtool: support -Zxxx options used on OS/2. * build-aux/ltmain.in (func_mode_link): Add -Z* case, treating them specially on os2 only. libtool: set lt_cv_deplibs_check_method to pass_all on OS/2. * m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD): Same as the title. libtool: there is no need to relink DLLs on OS/2. * build-aux/ltmain.in (func_mode_link) <*-os2*>: need_relink=no. ltdl: OS/2 uses other APIs to load a DLL than LoadLibrary() on Windows. * m4/ltdl.m4: Remove os2* from a list for loadlibrary.la. libtool: support to link against static libraries on OS/2. * m4/libtool.m4 (_LT_COMPILER_PIC): Set lt_prog_compiler_static to $wl-static. libtool: don't eliminate duplications in $postdeps and $predeps on OS/2 * build-aux/ltmain.h (libtool_validate_options): Add *os2* to the list. 2014-11-03 Gary V. Vaughan configury: create installation dir before writing to it. * Makefile.am (install-scripts-local): Don't forget to make the installation target directory before writing to it. * NO-THANKS: Update. Reported by Allan McRae maint: .PHONY rules to protect gmake from pathological file names. * Makefile.am (.PHONY): Add install-scripts-local, check-interactive, check-noninteractive-old, check-noninteractive-new and check-noninteractive. 2014-11-02 Arkadiusz Miśkiewicz tests: fix typo in cmdline_wrap skip check. * tests/cmdline_wrap.at (fail_list): fix a typo in loop script text. 2014-11-02 Gary V. Vaughan libtoolize: don't forget to remove old non-gnulib argz files. * libtoolize.in (all_pkgltdl_files): Add back argz.c and argz_.h, as installed by previous libtool releases. libltdl: move libltdl argz module into LT namespace. To avoid clashes with gnulib argz module in ltdl client projects, move ours into its own namespace. * libltdl/argz_.h, libltdl/argz.c, m4/argz.m4: Move from here... * libltdl/libltdl/lt__argz_.h, libltdl/lt__argz.c, m4/ltargz.m4: ...to here. * Makefile.am, libltdl/libltdl/lt__glibc.h, libltdl/ltdl.mk, libtoolize.in, m4/ltdl.m4: Adjust accordingly. * tests/libtoolize.at, tests/ltdl-api.at, tests/nonrecursive.at, tests/old-ltdl-iface.at: Adjust for different libtoolize output. * libltdl/.gitignore: Adjust accordingly. * NEWS: Update. Reported by Pavel Raiskup maint: whitespace cleanup. * Makefile.am ($(thanks)): Fix several whitespace syntax-check failures. 2014-11-02 Pavel Raiskup libtoolize: do not remove gnulib files with --force. * libtoolize.in (func_require_seen_libtool): Do not remove snippet/* files which are from Gnulib. 2014-10-30 Gary V. Vaughan tests: set bindir and libdir at configure time. In particular, openSuSE on x86_64 uses CONFIG_SITE to set libdir to "${exec_prefix}/lib64", which confuses testcases that check the contents of "${prefix}/lib". In general, tests that expect to find installed files in specific directories should explicitly set those directories at configure time. * tests/testsuite.at (LT_AT_CONFIGURE): Make sure exec_prefix, bindir and libdir point to known subdirectories we can check the contents of later on in a test case. (prefixdir): Rename from this... (prefix): ...to this. All test cases that set or use the config prefix directory must now refer to `prefixdir` for the helper macros in this file to work in hostile build environments such as CONFIG_SITE setting openSuSE. * tests/demo.at, tests/depdemo.at, tests/mdemo.at, tests/tagdemo.at: Adjust accordingly. Reported by Peter Breitenlohner. 2014-10-29 Reuben Thomas libtool: -rdynamic support for tcc. * m4/libtool.m4 (_LT_LINKER_SHLIBS) : Set export_dynamic_flag_spec appropriately when using tcc. libtool: preliminary support for tcc on linux*. * m4/libtool.m4 (_LT_LINKER_SHLIBS) : Set archive_cmds and ld_shlibs appropriately when using tcc. * NEWS: Update. 2014-10-29 Gary V. Vaughan maint: fix README-alpha version match. With simplified release version numbering (thank you, git!), be careful to recognize four part alpha versions, or short git revision suffixed alpha versions correctly. * Makefile.am (re_odd_version): Remove. (re_alpha_version): Recognize alpha version numbers. ($(readme)): Adjust accordingly. maint: autogenerate THANKS. More automation == less time wasted on menial tasks. * build-aux/thanks-gen: script inspired by coreutils. * Makefile.am (THANKS): Based on rule from coreutils/Makefile.am. * NO-THANKS: New file. Configure thanks-gen output. * THANKS: Remove. maint: fix prefix and suffix installs for libtoolize. * Makefile.am (install-data-local): Depend on new install-scripts-local, and move libtoolize install from here... (install-scripts-local): ...to here. Pass libtoolize destination through program transform expression. (uninstall-hook): Likewise, prior to removal. * NEWS: Update. * THANKS: Update. Reported by Václav Zeman 2014-10-27 Gary V. Vaughan maint: move Peter O'Gorman and Ralf Wildenhues to past maintainers. * AUTHORS: Move Peter O'Gorman and Ralf Wildenhues from current to past maintainers list. maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 2.4.3 * NEWS: Record release date. bootstrap: sync with upstream. * gl/build-aux/bootstrap.in, gl/build-aux/funclib.sh: Sync with upstream. * bootstrap: Regenerate. testsuite: fixes required for `make distcheck CC=g++`. * tests/demo.at (Pdemo conf): Overide _LT_DEMO_SETUP foo.h to declare foo2. * tests/mdemo.at (_LT_SETUP): Don't wrap `sub` dectlaration in C++ guards, because sub.c is also compiled with g++ in this test. * tests/old-ltdl-iface.at (old.c): Add a return type to main declaration as required by C++. maint: fix a typo in THANKS. * THANKS: s/macports\.com/macports.org/ syntax-check: use strlcpy instead of strncpy. * libltdl/loaders/dyld.c (vm_sym): Use strlcpy to pacify syntax checks. * libltdl/ltdl.c (try_dlopen): Likewise. 2014-10-25 Gary V. Vaughan libtool: fix GCC linking with -fstack-protector. * build-aux/ltmain.in (func_mode_link): Pass -fstack-protector* to the linker as it is required at link time to resolve libssp symbols. From Yaakov Selkowitz libtool: support Mac OS 10.10 and newer. The current template mistakenly treats a MACOSX_DEPLOYMENT_TARGET value of "10.10" as "10.1" followed by junk. Thinking that the build is targeting 10.1 Puma instead of 10.10 Yosemite, it tells the linker to ignore undefined symbols instead of dynamically resolving them. This can cause runtime crashes* and will affect subsequent versions of OS X. * libtool.mk (_LT_REQUIRED_DARWIN_CHECKS): Improve case match so as to reject 10.10.x on the 10.1 and 10.2 branch. * THANKS: Add Lawrence Velázquez. From Lawrence Velázquez bootstrap: commit latest to avoid regeneration at build time. * bootstrap: Regenerate. gnulib: sync with upstream. * gnulib: Sync with upstream. 2014-05-13 Peter Rosin libtool: delay expansion of $ECHO until the wrapper script runs Expanding $ECHO too early leads to unquoted \n when ECHO='printf %s\n'. Fixes bug#17478. Reported by Egmont Koblinger. * build-aux/ltmain.in (func_emit_wrapper) [fast_install]: Quote the $ECHO, and delay the expansion. 2014-05-06 Peter Rosin libtool: fix nm test for MSYS/MinGW The check for the -B option of nm does not work as intended on MSYS/MinGW. MSYS converts /dev/null to the DOW/Windows "equivanent" special file NUL, but the MinGW nm treats this file as any empty file. This means that you might end up with some fallback nm instead of the desired nm. This is not normally a problem, but if one nm is built without lto support, it starts to matter. Fixes sr #108558, reported by LRN. * m4/libtool.m4 (LT_PATH_NM) [MSYS]: Use a non-existant file instead of /dev/null when checking if nm supports -B. 2014-05-05 Peter Rosin libtool: speed up ltwrapper_script detection in execute mode Execute mode is slow and might even DOS the computer in extreme cases when a parameter is a big binary file without newlines. Work around this with different truncation if a suitable dd utility is found. Fixes bug#13472 and bug#16662. Reported by Pavel Raiskup and Nick Bowler. * m4/libtool.m4 (_LT_PATH_DD): New macro, for finding a dd utility that works for the below purpose. (_LT_CMD_TRUNCATE): New macro, for finding out how to truncate binary pipes (fallback to the old sed truncation if no suitable dd is found in _LT_PATH_DD). (_LT_SETUP): Require _LT_CMD_TRUNCATE. (LT_INIT): Require Autoconf 2.62, as needed by _LT_PATH_DD. * build_aux/ltmain.in (func_lalib_p): Factor out the actual "generated by libtool" test into... (func_generated_by_libtool_p): ...this new function... (func_ltwrapper_script_p): ...so that it can be reused here, when truncating the pipe according to _LT_CMD_TRUNCATE. * THANKS: Update. 2014-05-02 Peter Rosin libtool: prevent lto from stripping the magic cookie from the cwrapper Whole program optimization may remove unused symbols unless told they are really needed. Fixes sr #108559 reported by LRN. * build-aux/ltmain.in (func_emit_cwrapperexe_src:MAGIC_EXE): Try to ensure that the magic cookie is preserved. 2014-02-12 Peter Rosin tests: sprinkle -no-undefined when linking libraries * tests/duplicate_conv.at, tests/f77demo.at, tests/fcdemo.at: Here. 2014-02-12 Peter Rosin libtool: actually strip -Wl when relinking with $LD Fixes the regression from commit v2.4.2.444 which is causing a testsuite failure in duplicate_conv.at (seen on Cygwin). * build-aux/ltmain.in (func_mode_link): $reload_cmds typically starts with "$LD$reload_flag ..." when $LD is used to relink. Make the case expression match that when checking if $LD is in fact used to relink. 2014-02-10 Peter Rosin bootstrap: fix description of func_sort_ver to match recent sort change gl/build-aux/funclib.sh: Update comment to match reality. bootstrap: Regenerate. 2014-02-05 Gary V. Vaughan doc: remove redundant "in order to" phrase where possible. * doc/libtool.texi: Remove many occurrences of the redundant phrase "in order to", where ever "to" is as clear or clearer. * THANKS: Add attribution. Reported by Dave Yost 2014-02-03 Bruce Korb (tiny change) bootstrap: check for git tree with .git/. in case of soft links. * gl/build-aux/bootstrap.in (func_require_git): Use `test -d .git/.` to defeat soft-links versus non-GNU test. * bootstrap: Regenerate. * THANKS: Remove duplicate Bruce Korb entry. 2014-01-27 Gary V. Vaughan (tiny change) bootstrap: use `-d .git` to check whether we are in a git tree. * gl/build-aux/bootstrap.in (func_require_git): .git is not a regular file, use -d to check its existence. * bootstrap: Regenerate. * THANKS: Add Bruce Korb. Reported by Bruce Korb 2014-01-17 Rainer Orth libtool: opt_duplicate_compiler_generated_deps is harmful on Solaris Fix for http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452. * build-aux/ltmain.in (libtool_validate_options): disable the opt_duplicate_compiler_generated_deps optimization for Solaris2 so that gcc-4.9+ compiled C++ code with -Wl,-Bdirect on 64-bit Solaris x86 can avoid unwinding failures caused by accidental mixing of the libc and libgcc_s unwinders in a single executable. 2014-01-15 Gary V. Vaughan bootstrap: check for git checkout correctly. * gl/bulid-aux/bootstrap.in (func_require_git): Use .git instead of .gitignore to recognise a git checkout. * bootstrap: Regenerate. 2014-01-11 Todd C. Miller (tiny change) libtoolize: don't remove install-sh. If you are not using automake, libtoolize would remove install-sh. It needs the same treatment as config.guess and config.sub. * libtoolize.in (func_require_seen_libtool): Remove install-sh from $all_pkgaux_files, the list of files removed by `libtoolize --force`. * THANKS: Add Todd C. Miller. * NEWS: Update. 2014-01-07 Gary V. Vaughan options-parser: --version works with 'DO NOT EDIT' preamble again. * gl/build-aux/options-parser (func_version): Don't quit on first leading '##' line, otherwise DO NOT edit warnings prevent version information from being extracted correctly. * bootstrap: Regenerate. bootstrap: specify particular version in buildreq with =x.y. * gl/build-aux/bootstrap.in (func_check_versions): If the version number begins with '=' then it must match the installed version of the named tool exactly. * gl/doc/bootstrap.texi (buildreq): Document the '=vernum' feature. * bootstrap: Regenerate. 2014-01-05 Gary V. Vaughan bootstrap: remove conftest.sed file droppings. * gl/build-aux/funclib.sh: Remove conftest.sed when no longer needed. * bootstrap: Regenerate. 2014-01-04 Gary V. Vaughan bootstrap: replace spurious hyphen in some section comments. * gl/build-aux/bootstrap.in: replace spurious hypen in same section header comments with a space. * gl/build-aux/extract-trace, gl/build-aux/options-parser: Likewise. * bootstrap: Regenerate. 2014-01-03 Gary V. Vaughan inline-source: DO NOT EDIT warning only for top-level file. * gl/build-aux/inline-source (func_include): When recursing, pass through the value of `magic` so that only the very first #! magic number has a DO NOT EDIT warning injected. * bootstrap: Regenerate. inline-source: gawk doesn't have boolean constants. I've been writing a lot of Lua lately, but still a silly mistake:( * gl/build-aux/inline-source (func_include): Use `magic` variable to count #! lines found, and only output the DO NOT EDIT warning after the first one. edit-readme-alpha: adjust for recent README edits. * build-aux/edit-readme-alpha: Adjust regexps for recent README improvements. * README.md: Fix a SPACE-TAB sanity check failure. bootstrap: fix test-dollar sanity check failure. * gl/build-aux/bootstrap.in (func_ensure_README): quote argument. * bootstrap: Regenerate. libtool: rearrange header comments for correct version/help extraction. * m4/libtool.m4 (_LT_COPYING): Rearrange the comments output to the generated libtool script so that --version and --help behave the same as pre-funclib.sh revisions. (_LT_CONFIG_SAVE_COMMANDS): Likewise. README: Tweak into markdown format and fix some bitrot. * README: Moved from here... * README.md: ...to here. Make some changes to be valid markdown format, and fix some inaccuracies in text that is out of date. * .gitignore: Add README. bootstrap: support automake README requirement. * gl/build-aux/bootstrap.in (func_ensure_README): New function. Link missing README to existing alternative naming. (require_automake_options): New functions. Fetch AM_INIT_AUTOMAKE options from configure.ac. (func_reconfigure): If we're using automake, and it's not in foreign mode, link a README file if possible. * bootstrap: Regenerate. configury: use bootstrap ChangeLog management feature. * gl/build-aux/bootstrap.in (func_autoreconf): Accept an optional directory argument to pass to $AUTORECONF. Update doc-comment. * bootstrap.conf (func_reconfigure): Remove. Don't completely overwrite bootstrap's func_reconfigure, shadowing auto-ChangeLog management. (func_autopoint, func_libtoolize): Overwrite these un-needed calls instead. (libtool_autoreconf_libltdl): New hook function to run second autoreconf in libltdl directory. (libtool_force_changelog): Remove. This is all handled by bootstrap's func_reconfigure again. * bootstrap: Regenerate. bootstrap: force remove file droppings from previous run. Now that we generate bootstrap.new with no write permission, we have to force remove it before writing now content to the file. * bootstrap.in (require_bootstrap_uptodate): Remove old bootstrap.new output. * bootstrap: Regenerate. inline-source: add a DO NOT EDIT notice to generated files. * gl/build-aux/inline-source (func_include): Add a DO NOT EDIT notice below the #! magic number of generated files. * gl/build-aux/bootstrap.in (func_require_bootstrap_uptodate): Remove write bit from regenerated bootstrap.new if it differs from incumbent bootstrap. Change the update instructions to recommend `mv -f` to cope with no write permission on old bootstrap script. bootstrap: move included files below DO NOT EDIT comment. * gl/build-aux/bootstrap.in: Reorder sections to load external libraries as late as possible, leaving DO NOT EDIT comment visible near the top of the generated bootstrap script. maint: use before-save-hook in Emacs footers. Updating to Emacs 24 now gives me warnings about write-file-hooks being obsolete. * gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser: Set before-save-hook in Emacs file footers instead of obsolete write-file-hooks. libtoolize: use printf '%s\n' unconditionally. It's been a year since the as_echo probes were removed in Autoconf, so we can follow suit and remove our equivalent bs_echo probing now. Retain $ECHO in case users need to override default printf calls in museum piece environments. * gl/build-aux/funclib.sh (ECHO): Default to 'printf %s\n'. (bs_echo): Remove. Adjust all bs_echo callers to use $ECHO instead. * bootstrap: Regenerate. * NEWS: Update. 2014-01-02 Gary V. Vaughan bootstrap: push Peter's version sort fix back into funclib.sh. Peter's a7462c5 fix was applied to the generated bootstrap script instead of the funclib.sh source, and had have been overwritten the next time bootstrap was regenerated. * gl/build-aux/funclib.sh (func_sort_ver): Sort numerically on the non-primary keys as well. * bootstrap: Regenerate, with the change applied. 2014-01-01 Gary V. Vaughan maint: change history. * NEWS: Remove alpha release header. * cfg.mk (old_NEWS_hash): Update. libtool: only strip -Wl when linking with $LD. * build-aux/ltmain.in (func_mode_link): Don't strip -Wl from the linker flags, except when linking with $LD, otherwise compiler drivers that don't recognize and pass linker flags through will choke on unrecognized options. bootstrap: fix gitlog-to-changelog detection. * gl/build-aux/bootstrap.in (func_ifcontains): Use a for loop that relies on $IFS for element splitting instead of a one-shot case glob that is not tolerant to \n in $gnulib_modules. * THANKS: Add Reuben Thomas. Reported by Reuben Thomas maint: update copyright notices to include 2014. * .x-update-copyright: New file. Exclude files not owned by this project from update-copyright rules. * doc/libtool.texi: Replace m-dash with n-dash in texinfo copyright notice so that update-copyright matches correctly. Undo bogus copyright updates to example output from gdb session. Bump copyright year. * Changelog.old: Revert bogus updates from previous years without .x-update-copyright. AUTHORS, HACKING, Makefile.am, NEWS, README, THANKS, TODO, bootstrap, bootstrap.conf, build-aux/edit-readme-alpha, build-aux/git-hooks/commit-msg, build-aux/ltmain.in, cfg.mk, configure.ac, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser, libltdl/README, libltdl/argz.c, libltdl/argz_.h, libltdl/configure.ac, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c, libltdl/lt__alloc.c, libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c, libltdl/lt_error.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/ltdl.mk, libltdl/slist.c, libtoolize.in, m4/argz.m4, m4/autobuild.m4, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.in, m4/lt~obsolete.m4, tests/am-subdir.at, tests/archive-in-archive.at, tests/bindir.at, tests/cdemo.at, tests/cmdline_wrap.at, tests/configure-iface.at, tests/convenience.at, tests/ctor.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at, tests/depdemo.at, tests/deplib-in-subdir.at, tests/deplibs-ident.at, tests/deplibs-mingw.at, tests/destdir.at, tests/dlloader-api.at, tests/dumpbin-symbols.at, tests/duplicate_conv.at, tests/duplicate_deps.at, tests/duplicate_members.at, tests/early-libtool.at, tests/exceptions.at, tests/execute-mode.at, tests/exeext.at, tests/export-def.at, tests/export.at, tests/f77demo.at, tests/fail.at, tests/fcdemo.at, tests/flags.at, tests/help.at, tests/indirect_deps.at, tests/infer-tag.at, tests/inherited_flags.at, tests/install.at, tests/lalib-syntax.at, tests/libtool.at, tests/libtoolize.at, tests/link-order.at, tests/link-order2.at, tests/loadlibrary.at, tests/localization.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/lt_dlopen.at, tests/lt_dlopen_a.at, tests/lt_dlopenext.at, tests/ltdl-api.at, tests/ltdl-libdir.at, tests/mdemo.at, tests/need_lib_prefix.at, tests/no-executables.at, tests/nocase.at, tests/nonrecursive.at, tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/pic_flag.at, tests/recursive.at, tests/resident.at, tests/runpath-in-lalib.at, tests/search-path.at, tests/shlibpath.at, tests/slist.at, tests/standalone.at, tests/static.at, tests/stresstest.at, tests/subproject.at, tests/sysroot.at, tests/tagdemo.at, tests/template.at, tests/testsuite.at, tests/versioning.at, tests/with-pic.at: Bump copyright year. gnulib: update to latest upstream revision. * gnulib: Update. tests: gcj cannot reliably compile directly to .o from .java Some 4.3.x and 4.4.x releases of gcj insert a spurious 'dummy' symbol into every object file when compiling directly from .java to .o: * tests/convenience.at (GCJ): make .class files from .java sources first, and then compile those to native objects. This works around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42143 2014-01-01 Gary V. Vaughan testsuite: with SunStudio12.x f77, don't fail on system symbols Modern SunStudio f77 is just a wrapper for f90, which explains why current master fails these test groups with: Undefined first referenced symbol in file __f90_slw_ch .libs/foof2.o __f90_sslw .libs/foof2.o __f90_eslw .libs/foof2.o ld: fatal: symbol referencing errors. No output written to .libs/libfoo2.so.0.0.0 So we allow some undefined symbols in the libraries, which are resolved by the $(FLIBS) added to the final binaries in the tests. This seems like the simpler, and less error inducing solution to me (compared to adding $(FLIBS) to every library LDFLAGS line). * tests/f77demo.at (libfoo_la_LDFLAGS, libfoo2_la_LDFLAGS) (libfoo3_la_LDFLAGS, libmix_la_LDFLAGS): Remove -no-undefined flag. * tests/fcdemo.at: Likewise. 2014-01-01 Gary V. Vaughan maint: use $SED and $GREP, not sed and grep in all scripts. Choosing between hardcoding a tool's name, or using the shell variable with a path to the user's prefered implementation or configure's idea of the best available is a premature optimisation. * build-aux/ltmain.in, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, libtoolize.in: Use $SED and $GREP consistently throughout, instead of hardcoding sed and grep. * bootstrap: Regenerate. tests: use TESTS_ENVIRONMENT for EGREP and FGREP. Be consistent about passing commands to the testsuite, and use TESTS_ENVIRONMENT consistent. * Makefile.am (TESTS_ENVIRONMENT): Add EGREP and FGREP. * tests/testsuite.at: Remove EGREP and FGREP extractions from generated libtool script. tests: use $GREP throughout. Trust the user, and use $GREP from TESTS_EVVIRONMENT uniformly. * Makefile.am (TESTS_ENVIRONMENT): Add GREP setting. * tests/am-subdir.at, tests/archive-in-archive.at, tests/bindir.at, tests/configure-iface.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at, tests/destdir.at, tests/dumpbin-symbols.at, tests/early-libtool.at, tests/execute-mode.at, tests/export-def.at, tests/export.at, tests/f77demo.at, tests/fcdemo.at, tests/flags.at, tests/help.at, tests/inherited_flags.at, tests/install.at, tests/lalib-syntax.at, tests/libtool.at, tests/libtoolize.at, tests/localization.at, tests/lt_dladvise.at, tests/lt_dlopen.at, tests/lt_dlopenext.at, tests/ltdl-api.at, tests/ltdl-libdir.at, tests/mdemo.at, tests/old-m4-iface.at, tests/pic_flag.at, tests/resident.at, tests/runpath-in-lalib.at, tests/search-path.at, tests/static.at, tests/sysroot.at, tests/template.at, tests/testsuite.at, tests/versioning.at: Replace all hardcoded grep invocations with $GREP. tests: use $SED throughout. Trust the user, and use $SED from TESTS_ENVIRONMENT uniformly. Hardcoding 'sed' for "simple" edits is a premature optimisation. * tests/cdemo.at, tests/cmdline_wrap.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at, tests/duplicate_conv.at, tests/duplicate_members.at, tests/execute-mode.at, tests/export.at, tests/inherited_flags.at, tests/install.at, tests/libtoolize.at, tests/mdemo.at, tests/need_lib_prefix.at, tests/old-m4-iface.at, tests/sysroot.at, tests/tagdemo.at, tests/testsuite.at: Replace all hardcoded sed invocations with $SED. tests: run cmdline_wrap last, or not at all if anything else failed. * Makefile.am (TESTSUITE_AT): Move stresstest.at and cmdline_wrap.at to the end of the list. * tests/cmdline_wrap.at: If previous tests have failed, then we already know that rerunning them will fail too, so save time by skipping in that case. configury: remove spurious g modifier in sed expression. * Makefile.am (rebuild): Remove useless g modifier from sed expression. configury: use $(SED) where input does not end in newline. On Solaris machines the system sed does not process the last line of input unless it ends with a newline, which means it cannot be used to massage the output of git-version-gen, because it deliberately omits the terminating newline. * Makefile.am (rebuild): Use the sed command found by configure, which has a better chance of working properly than the first sed on PATH. tests: skip fcdemo checks when $FC cannot compile fortran90. Avoid spurious fcdemo failures when Autoconf picks f77 or similar for a fortran90 compiler. * tests/testsuite.at (LT_AT_TAG): Using FC and FCFLAGS from make TESTS_ENVIRONMENT, check that we really can compile fortran90 or else skip. funclib.sh: improve comments. * gl/build-aux/funclib.sh: Add a comment explaining the need for extra SED and GREP searches. 2013-12-09 Peter Rosin maint: fix out-of-tree autoreconf w/o manual rebootstrap build-aux/ltmain.in: Look for funclib.sh and options-parser in the same location ltmain.in is found. 2013-11-19 Peter Rosin bootstrap: fix version sort Reported by Ozkan Sezer who suffered from makeinfo 4.13 being detected as lesser than the required makeinfo 4.8. * bootstrap (func_sort_ver): Sort numerically on the non-primary keys as well. 2013-11-08 Peter Rosin tests: Use a basic grep that matches the basic regexp style. Fixes a testsuite failure on Cygwin. * tests/tagdemo.at: Use grep instead of egrep. 2013-10-29 Gary V. Vaughan bootstrap: fix a quoting error. * gl/build-aux/bootstrap.in (func_require_buildreq_autoconf): Quote the extracted version number correctly so that it is displayed in verbose mode. 2013-10-28 Gary V. Vaughan funclib.sh: simplify version comparison functions. * gl/build-aux/funclib.sh (func_sort_ver): Much simplified. (func_lt_ver): New function, return true if arguments are in ascending order. * gl/build-aux/bootstrap.in: Simplify with func_lt_ver. * gl/build-aux/do-release-commit-and-tag.diff: Likewise. * bootstrap: Regenerate. Co-Authored-by: Paul Eggert 2013-10-28 Gary V. Vaughan bootstrap: show found GREP and SED in verbose mode. * gl/build-aux/bootstrap.in (EGREP, FGREP, GREP, SED): Remove. These are already set by funclib.sh. (func_prep): After --verbose has been processed, show the paths to GREP and SED found by funclib.sh. * bootstrap: Regenerate. refactor: simplify program path searching in funclib.sh. * gl/build-aux/funclib.sh (func_path_progs): New function. Factor out common code from GREP and SED searches. (func_check_prog_sed, func_check_prog_grep): New functions, for non-common code. (scriptversion): Update. * bootstrap: Regenerate. bootstrap: search for a non-truncating grep binary. On at least Unixware 7.1.4, the first grep binary on PATH is unable to process the extract-trace scripts. * gl/build-aux/funclib.sh (GRUP): Search PATH for a grep binary that doesn't truncate its own output if available, and set GREP accordingly. * Makefile.am (SCRIPT_ENV): Add setting for GREP. * bootstrap: Regenerate. Reported by Tim Rice. bootstrap: search for a non-truncating sed binary. On at least Unixware 7.1.4, the first sed binary on PATH is unable to process the extract-trace scripts. * gl/build-aux/funclib.sh (PATH_SEPARATOR): Set to : or ; according to a feature test. (func_executable_p): New function. (SED): Search PATH for a sed binary that doesn't truncate its own output if available, and set SED accordingly. (scriptversion): Update. * Makefile.am (SCRIPT_ENV): New macro, for propagating configured variables. (ltdl_ac_aux_dir, $(ltmain_sh), install-data-local): Use it. * bootstrap: Regenerate. Reported by Tim Rice. 2013-10-27 Gary V. Vaughan tests: use autotest as_unset rather than rerolling $unset locally. On at least Unixware 7.1.4, the shell variable 'unset' gets set to 'no' during the testsuite run, breaking several test cases. We should have been using Autotest $as_unset anyway. * tests/testsuite.at (unset): Remove test and variable setting. (LT_AT_MAKE): Use $as_unset as provided by autotest boilerplate instead of our own $unset. * tests/demo.at (uninstalled libraries ave priority): Likewise. Reported by Tim Rice. maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. 2013-10-26 Gary V. Vaughan version 2.4.2.418 * NEWS: Record release date. gnulib: update to latest upstream revision. * gnulib: Update. gnulib: use func_sort_ver instead of GNU sort -V in do-release-commit-and-tag. * gl/build-aux/do-release-commit-and-tag: Source funclib.sh and then use portable func_sort_ver rather than force installation of all GNU coreutils just for sort -V support. refactor: move func_sort_ver from bootstrap.in to funclib.sh. * gl/build-aux/bootstrap.in (func_sort_ver): Move from here... * gl/build-aux/funclib.sh (func_sort_ver): ...to here. * bootstrap: Regenerate. tests: use K&R main() syntax for old-ltdl-iface.at. At least Mac OS 10.8.5 clang chokes on the previous 'const void *argv[]' parameter, but since we don't use it anyway, keep to the theme of old api support and use K&R syntax. * tests/old-ltdl-iface.at (old.c): Use 'main ()' instead of unportable 'int main (int argc, const void *argv[])'. libltdl: bump -version-info revision by 1. The only changes to libltdl sources since v2.4.2 have been cosmetic and stylistic. * libltdl/ltdl.mk (LTDL_VERSION_INFO): For a release with no interface changes C:R:A becomes C:R+1:A. maint: Update README-release for Makefile.inc -> ltdl.mk rename. * gl/top/README-release.diff: s/Makefile.inc/ltdl.mk/g maint: bump serials on m4 sources changed since v2.4.2. * m4/argz.m4: Bump serial to 6. * m4/libtool.m4: Bump serial to 58. * m4/ltdl.m4: Bump serial to 19. * m4/ltoptions.m4: Bump serial to 8. maint: fix a syntax-check violation from commit 12641bd. * build-aux/ltmain.in (func_mode_link): Reverse test operands to forestall misinterpretation of contests of shell variable as operand 1. 2013-10-10 Vadim Zeitlin (tiny change) libtool: Don't fall back to static libraries if building them was disabled If -no-undefined was not specified but the platform didn't support shared libraries with undefined symbols (e.g. Cygwin/ MinGW), static libraries were built instead of shared ones, even if building them was explicitly disabled with --disable- static configure option. Fix this by stopping with a fatal error if a shared library can't be built in this case instead of unexpectedly building a static library instead. * libltdl/config/ltmain.m4sh (func_mode_link()): Stop with fatal error when trying to build a shared library without -no- undefined on a platform not supporting undefined symbols in shared libraries. 2013-10-10 Brooks Moses libtool: Remove unneeded quotes in assignment. The quotes in this assignment cause "make syntax-check" to fail. Thus, this patch removes them. 2013-10-09 Fabian Groffen (tiny change) libtool: Fix x86_64-pc-solaris2.* GNU ld breakage Since commit [1] libtool tries to set a 64-bits target for GNU ld. However, it does so wrongly for x86_64-pc-solaris2.* targets, causing libtool to believe the linker is called ld_sol2. There is no such thing, and it obviously breaks things further down. Some people wrongly assume there is supposed to be an ld_sol2 on their systems, e.g. [2]. I think the original change is fragile, because it assumes it has all CHOSTs matched, then appends _sol2. In the wild, people have used amd64-pc-solaris2* too, so perhaps it would be safer if the code only appended _sol2 if there is actually an explicit target set. Anyhow, since the 64-bits sparc target is called sparc64-* or sparcv9-*, the sparc case is already correctly handled, so in the attached patch, I just added an x86_64-* case, although I could imagine relaxing the i?86 case to *86*-pc-solaris2* too. In any case, defaulting to a linker called ld_sol2 is wrong. [1] http://lists.gnu.org/archive/html/libtool-commit/2011-02/ msg00000.html [2] http://osdyson.org/issues/8 2013-10-09 Olivier Blin (tiny change) libtool: Fix detection of ld version with parentheses. ld from crosstool-NG reports a version string with an extra version number in a parenthetical note: GNU ld (crosstool-NG 1.13.0) 2.21.1 This made libtool assume that the ld version was the crosstool-NG version (1.13.0) instead of the real ld version (2.21.1). To fix the ld version string, this patch filters out any string between parentheses that is followed by a space. Because of this bug, filtering of exported symbols was not taking place with crosstool-NG toolchains. This issue has bee noticed when building pango, which exported harfbuzz symbols that should have remained hidden. 2013-10-09 Brooks Moses libtool: Fix comment indentation This trivial patch fixes indentation on a comment to match the style used elsewhere in m4/libtool.m4. 2013-10-09 DJ Delorie libtool: Add TPF settings for LT_SYS_DLOPEN_SELF * m4/libtool.m4: Since we know that all TPF builds are cross- builds, do not attempt to run linker tests during config. Use known constants instead, since we know how dlopen() is implemented. 2013-10-09 Vincent Lefevre (tiny change) libtool: Fix $wl setting for tcc on GNU systems (This addresses http://bugs.debian.org/663945. See there for more-detailed discussion.) tcc gained support for "-Wl,-rpath -Wl," in its commit 7fb0482a ("Support linker options passed in several -Wl param", 2012-03-14) but libtool doesn't know to use it. Teach it. Without this change, running "make check" on MPFR when it has been built with tcc and shared libraries doesn't work because libtool generates a -rpath option, which tcc doesn't support. 2013-10-09 Peter Johansson libtool: use AS_HELP_STRING in LT_WITH_SYSROOT help message. This patch fixes so help output is formatted similar with other macros using AS_HELP_STRING. Also it outputs '[=DIR]' as I suspect intended rather than '=DIR'. 2013-10-09 Joseph Prostko (tiny change) libtool: Haiku change for shlibpath_overrides_runpath Pretty much all changes to Haiku for Libtool have been upstreamed, however we currently have an incorrect value for shlibpath_overrides_runpath. It should be "no" instead of "yes". Previously Scott McCreary had submitted patches for us, but I told him I would work to get this committed, as he is quite busy lately. Here is a commit he made to our Haiku Ports site though, that shows the exact change I am proposing done against Libtool 2.4.2. http://ports.haiku-files.org/browser/haikuports/sys-devel/ libtool/patches/libtool-2.4.2.patch 2013-10-09 Brooks Moses (tiny change) Johannes Obermayr libtool: Discard "-mllvm $arg" options when linking. Clang accepts options of the form "-mllvm $arg", and passes the argument as an option to LLVM. These options caused problems for Libtool when linking; in some cases, the -mllvm option is passed through but the corresponding argument is dropped. (See for example http://llvm.org/bugs/show_bug.cgi?id=14716.) This patch resolves the issue by explicitly matching -mllvm and taking an argument. Since Clang never uses LLVM for linking, the matched "-mllvm $arg" option is irrelevant for the link step, and we can simply discard it once we've recognized it. 2013-10-09 Ondřej Bílka maint: Fix various comment and documentation typos. Ondřej writes: "Hi, this is upstream version of patch that I sent to gcc. I generated this patch with tool that I am writing: https://github.com/neleai/stylepp" (Note: The generated patch was adjusted to retain the non-US but correct spelling of 'rigourous' before commit. --Brooks) 2013-10-08 David 'Digit' Turner libtool: Add Android/Linux support. This patch adds proper Android support to libtool. The main issues are the following: - Versioned libraries are not supported by the platform and its build/packaging tools. - The dynamic linker is not GNU ld, there is no support for DT_RUNPATH. - Similarly, there is no ldconfig. 2013-09-17 Peter Rosin libtool: trust -print-search-dirs from recent GCC Alan Modra hints in [1] that -print-search-dirs was fixed in GCC 4.2(?), so that it nowadays automatically appends -print-multi-os-directory for the applicable directories. I.e. it should no longer be necessary for libtool to append a second ../lib64 when GCC has already done so. Also, the multi-os appending loop seems to have been added specifically for early (arguably broken) bi-arch enabled GCCs that printed -m32 directories even though -m64 was the default [2]. So, my conclusion is that we want any libtool magic to affect -print-search-dirs output from contemporary GCCs as little as possible, while continuing to append the -print-multi-os-directory for the legacy case. Fixes bug#15321 reported by Ozkan Sezer. [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20425 [2] http://lists.gnu.org/archive/html/bug-libtool/2006-09/msg00019.html * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): If any of the directories printed by -print-search-dirs ends with the content of -print-multi-os-directory, then assume that GCC adds the multi-os-directory where appropriate all by itself and hence don't try to second guess when to add it manually. * THANKS: Update. 2013-09-16 Gary V. Vaughan bootstrap: clean up spurious 'gnulib-cache.m4 missing' error. * gl/build-aux/bootstrap.in (func_reconfigure): Don't show an error when running without gnulib-cache.m4. * bootstrap: Regenerate. 2013-09-15 Gary V. Vaughan bootstrap: make ensure_changelog work for update mode projects. * gl/build-aux/bootstrap.in (func_bootstrap): Move func_changelog_ensure invocation from here... (func_reconfigure): ...to here. If gnulib_modules is empty, then grep gnulib-cache.m4 for gitlog-to-changelog before invoking func_changelog_ensure. * bootstrap: Regenerate. bootstrap: fetch defaults from gnulib-cache.m4 for non-imported projects. Recent changes uncovered some bugs in handling of gnulib-tool options for projects that check in gnulib-cache.m4 rather than keep a separate list of modules and options in bootstrap.conf. * gl/build-aux/bootstrap.in (func_require_doc_base) (func_require_gnulib_name, func_require_local_gl_dir): New functions to set defaults from gnulib-cache.m4 in projects that use gnulib-tool in --update mode. (func_require_gnulib_tool_base_options): Use them to fetch defaults. (func_require_gnulib_copy_cmd): New function to calculate the options required for gnlib-tool copy command. (func_gnulib_tool_copy_file): Simplify accordingly. (scriptversion): Bump. 2013-09-05 Gary V. Vaughan maint: normalise formatting of recent commit log entry. * build-aux/git-log-fix: Add a summary line to ChangeLog entry of most recent commit. 2013-09-05 Brooks Moses maint: add Brooks Moses to AUTHORS file. * AUTHORS: Add myself to committers list. 2013-08-29 Gary V. Vaughan bootstrap: gnulib_tool=true means no gnulib submodule. * gl/build-aux/bootstrap.in (func_require_gnulib_tool): No sneaking off and cloning gnulib when the user already specified gnulib_tool=true in their bootstrap.conf! * bootstrap: Regenerate. 2013-08-23 Alan Modra bootstrap: make first char of IFS a space. Putting tab first in IFS breaks func_echo_all usage of $*, resulting in failure of func_infer_tag to match a command line using a $CC with trailing spaces. The trailing spaces were stripped out of CC_expanded but words in $CC were separated by tabs. This didn't match the makefile expansion of $CC using the standard IFS with a first char of space. * gl/build-aux/funclib.sh (IFS): Make first char a space. * bootstrap: Regenerate. 2013-08-23 Gary V. Vaughan bootstrap: support --no-git and --no-po options. * gl/build-aux/bootstrap.in (bootstrap_parse_options): Accept --no-git as an alias for --skip-git for compatibility with gnulib bootstrap, and --no-po for symmetry. Reported by Mike Miller. bootstrap: support gnulib gnulib_tool_option_extras settings. * gl/build-aux/bootstrap.in (func_gnulib_tool): Even though we don't need it, support gnulib_tool_option_extras for bootstrap.conf ported from gnulib bootstrap. * bootstrap: Regenerate. Reported by Mike Miller. bootstrap: support sha1 binary on OpenBSD. * gl/build-aux/bootstrap.in (func_update_po_files): Remove the use of --status in a way that will suppress all error messages, but since this is only used to minimize updates, it shouldn't cause an issue. Look for a sha1 binary if the other SHA1SUM settings are not found. Also exit early if there is a problem updating the po file checksums. * bootstrap: Regenerate. Ported from a gnulib patch by Padraig Brady. bootstrap: support tools that don't accept '--version' in buildreq. * gl/build-aux/bootstrap.in (func_check_tool): Check whether there is an executable as given or on the command PATH. (func_check_version): Use func_check_tool to avoid invoking --version when buildreq specifies '-' for the version number. * bootstrap: Regenerate. Reported by Mike Miller. bootstrap: diagnose bad $buildreq formatting. Particularly when porting from gnulib bootstrap to libtool bootstrap, it's easy to forget the extra URL column used for error reporting. * gl/build-aux/bootstrap.in (func_check_versions): A non-URL pattern in the 3rd column of buildreq triggers a fatal error. * bootstrap: Regenerate. Reported by Mike Miller. 2013-08-23 Gary V. Vaughan (tiny change) bootstrap: support OpenBSD sed. * gl/build-aux/bootstrap.in (func_insert_if_absent): Work around the problem of OpenBSD sed not supporting '-' as a notation for standard input. * bootstrap: Regenerate. * THANKS: Add Mike Miller. Reported by Mike Miller. 2013-08-23 Steve Ellcey Gary V. Vaughan libtool: set correct linker ABI flags on mips64 linux. m4/libtool.m4 (_LT_ENABLE_LOCK): Select the n32 or n64 ABI when linking to match the ABI produced with the user's compiler flags. 2013-08-23 Gary V. Vaughan maint: correct many abuses of the word "which". * HACKING, NEWS, TODO, bootstrap, bootstrap.conf, build-aux/ltmain.in, cfg.mk, configure.ac, doc/libtool.texi, doc/notes.texi, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/doc/bootstrap.texi, libltdl/libltdl/lt_system.h, libltdl/loaders/loadlibrary.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c, libltdl/ltdl.c, libtoolize.in, m4/libtool.m4, m4/ltdl.m4, m4/ltsugar.m4, m4/lt~obsolete.m4, tests/exceptions.at, tests/need_lib_prefix.at, tests/static.at: Use "which" correctly, or replace with "that", "where" or "what" as appropriate. 2013-08-23 Brook Moses libtool: improve comments for _LT_ENABLE_LOCK implementation. * m4/libtool.m4 (_LT_ENABLE_LOCK): enhance comments to explain why the code looks odd with 32bit flags in the 64bit section and vice versa. 2013-08-22 Alan Modra libtool: fix refixed unmangled powerpc*le-linux support patch * m4/libtool.m4: fix refixed badly unmangled hunks from earlier powerpc*le changeset. Reported by Peter Rosin. libtool: refix unmangled powerpc*le-linux support patch * m4/libtool.m4: refix badly unmangled hunks from earlier powerpc*le changeset. Reported by Peter Rosin. 2013-08-22 Gary V. Vaughan libltdl: don't trip subdir-objects warning from Automake >= 1.14. Latest Automake releases now warn when subdir-objects is not specified in preparation for Automake 2.0. The option has been in Automake for more than a decade, so there's minimal risk of someone using the next release of Libtool alongside an ancient release of Automake when bootstrapping libltdl client projects. * libltdl/configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects. libtool: refactor powerpc*le-linux case branch expressions. libtool (_LT_ENABLE_LOCK): make inner case branch expressions consistent with outer case expression. Reported by Peter Rosin. 2013-08-22 Alan Modra libtool: fix mangled powerpc*le-linux support patch * m4/libtool.m4: unmangled badly pasted hunks from previous changeset. libtool: initial powerpc*le-linux support * m4/libtool.m4 (ld -m flags): Remove non-canonical ppc host match. Support little-endian powerpc linux host. 2013-06-17 Yaakov Selkowitz libtool: fix conversion warnings in cwrapper build-aux/ltmain.in (func_emit_cwrapperexe_src:main): XMALLOC wants a size_t. Also use int instead of intptr_t for the return value (which is fine since the _spawnv call is synchronous). (func_emit_cwrapper_src) [MSVC]: Remove the intptr_t helper define. (func_emit_cwrapperexe_src:find_executable): Use size_t for variables involved in strlen computations. (func_emit_cwrapperexe_src:lt_setenv): Likewise. (func_emit_cwrapperexe_src:lt_extend_str): Likewise. (func_emit_cwrapperexe_src:lt_update_exe_path): Likewise. THANKS: Update. 2013-04-28 Peter Rosin libtool: break all the way out when a good nm is found The current code tries to locate a compatible nm tool. It starts with a prefixed nm tool (great!) and includes a plain nm too (that's fine). The problem is that the code searches for the prefixed nm before the plain nm (normally fine), but doesn't break once it has found a valid match, and the plain nm ends up the winner. Report and analysis by Mike Frysinger. * m4/libtool.m4 (LT_PATH_NM): Break all the way out on a good match. 2013-01-28 Peter Rosin maint: update email address... * THANKS: ...of Jan Engelhardt. 2013-01-28 Jan Engelhardt doc: fix an orthographic error * doc/libtool.texi (Install mode): Ensure, not insure. 2013-01-27 Gary V. Vaughan bootstrap: fix func_insert_if_absent bugs. * gl/build-aux/bootstrap.in (func_insert_if_absent): Print verbose message when there is a new entry to add. Also, make sure to update the .gitignore file when changed. * bootstrap: Regenerate. * THANKS: Add Pádraig Brady. Reported by Pádraig Brady. bootstrap: factor out gnulib-tool option calculations. * gl/build-aux/bootstrap.in (func_gnulib_tool): Factor base option settings out... (require_gnulib_tool_base_options): ...to here. * bootstrap: Regenerate. syntax-check: fix a quoted_test_operand violation. * gl/build-aux/bootstrap.in (func_insert_if_absent): Make sure test operands are quoted correctly. * bootstrap: Regenerate. syntax-check: fix new SPACE-TAB violations. * build-aux/ltmain.in (func_dll_def_p): Replace SPACE-TAB by TAB-SPACE. * m4/libtool.m4 (_LT_DLL_DEF_P): Likewise. 2013-01-26 Bernhard Voelker Gary V. Vaughan bootstrap: always auto-add .gitignore files at the top. * gl/build-aux/bootstrap.in (func_gitignore_entries): New function. Strip comments and blank lines. (func_insert_sorted_if_absent): Renamed... (func_insert_if_absent): ...to this. Adjust all callers. Instead of comparing the sorted new file with the original, compare the line count, being careful to diagnose duplicate entries which would otherwise skew the count. 2013-01-26 Gary V. Vaughan maint: patch gitlog-to-changelog to reduce bogus warnings. Rather than trying to find a new useful warning among the 55 expected warnings from vanilla gitlog-to-changelog, patch it to elide the bogus warnings from duplicate log entries. * gl/bulid-aux/gitlog-to-changelog.diff: Omit-from-ChangeLog is a new log entry tag to skip legitimate log duplicates. * build-aux/git-log-fix: Instead of deleting all content of duplicates and generating a warning, append the new Omit-from-ChangeLog tag to elide silently. * Makefile.am *($(changelog)): Remove the 'expect 55 warnings' echo. 2013-01-22 Peter Rosin libtool: factor out the dll .def file test and improve it Resolves bug#13414. Problem reported by Erik van Pienbroek and Martin Doucha. build-aux/ltmain.in (func_mode_link): Factor out the test if a given symbol file is a module-definition (.def) file into... (func_dll_def_p): ...this function, which also improves the check. m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) : Similarly, factor out the test if a given symbol file is a module-definition (.def) file into... (_LT_DLL_DEF_P): ...this macro, which also improves the check. tests/export-def.at: New test. Makefile.am (TESTSUITE_AT): Add above test. NEWS: Update. THANKS: Update. 2013-01-21 Peter Rosin libtool: allow tabs in *_cmds variables This is in preparation for the next patch, which needs to have literal tab characters survive the evaluation of the *_cmds variables. build-aux/ltmain.in (func_execute_cmds, func_mode_link): Don't collapse tabs and surrounding whitespace into a single space when executing a tilde-separated cmds construct, instead keep any tabs intact. 2013-01-19 Peter Rosin libtool: avoid tabs in all *_cmds variables. This is in preparation for the next change, which will preserve tabs when the *_cmds variables are evaluated. Removing tabs first ensures that the libtool output stays the same when tabs are not collapsed with surrounding whitespace. m4/libtool.m4: Convert indenting tabs to spaces for all *_cmds variables. 2013-01-16 Peter Rosin libtool: align archive_cmds with archive_expsym_cmds for MSVC m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [MSVC] : Specify the import library name, aligning with archive_expsym_cmds. libtool: feed .def files verbatim to the MSVC linker m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [MSVC] : When the symbol list isn't really a symbol list, but instead a .def file, copy it to a file with .def extension so that MSVC recognizes it as a module-definition file and feed it verbatim. NEWS: Update 2013-01-15 Peter Rosin Revert "libtool: use false or : for $always_export_symbols, and simplify" This reverts commit 5ed7430fcb48c862c9d76ef497b73485d580338e, which is totally bogus as the variable is also set in libtool.m4. Sorry for the noise. libtool: use false or : for $always_export_symbols, and simplify * build-aux/ltmain.in (func_mode_link): Save a string comparison by setting $lways_export_symbols to false or : and using it directly as the first argument to if. Make sure that it is always initialized while at it. 2013-01-09 Peter Rosin tests: fix nits in path handling tests/bindir.at: func_save_and_prepend_path is already checking $bindirneeded internally, so remove checks from call sites. Add proper quoting while at it. (func_save_and_prepend_path): Use $PATH_SEPARATOR instead of a literal colon (in both instances). 2013-01-08 Peter Rosin libtool: simplify quoting and code for symbols exporting sed programs * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [MSVC] : Make the sed programs easier to read (and recover some backslashes for later in the process). 2013-01-03 Peter Rosin tests: don't feed -no-undefined to the linker during configure. * tests/deplibs-mingw.at: Restore LDFLAGS for the configure run so that the linker does not see -no-undefined. Makes the test pass instead of skip on MinGW. 2013-01-03 Gary V. Vaughan maint: note warnings during ChangeLog generation are normal. * Makefile.am ($(changelog)): Output a note that 55 empty commit log warning messages during ChangeLog generation are expected. git: ignore .serial file. * .gitignore: ignore .serial file. maint: fix recent badly formatted ChangeLog entry. * build-aux/git-log-fix: No empty lines in a single commit. syntax-check: fix a useless_quotes_in_assignment violation. * gl/build-aux/inline-source (func_require_AWK): Remove useless quotes. syntax-check: fix prohibit_strcmp syntax-check violation. * build-aux/ltmain.in (func_generate_dlsyms): Add a definition for STREQ, and then use it in place of !strcmp. docs: update copyright dates in libtool.texi. It seems `make update-copyright' missed the texinfo copyright notice. * doc/libtool.texi: Update copyright dates for 2013. 2013-01-03 Brad Smith libtool: add bitrig support. * build-aux/ltmain.in (func_mode_link): Add bitrig support. * m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE, LT_CMD_MAX_LEN) (_LT_SYS_DYNAMIC_LINKER, _LT_CHECK_MAGIC_METHOD) (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Ditto. * m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): Ditto. * tests/deplibs-ident.at(build tree relpaths): Ditto. * NEWS: Updated. 2013-01-01 Peter Rosin maint: check if git works before relying on it Makefile.am (m4/ltversion.m4): Take the opportunity to regenerate $(srcdir)/.serial whenever git is actually working. (git_version_gen): Provide a fallback version for the git-version-gen script to use when .tarball-version does not exist and git is not working. maint: really do update to latest upstream gnulib Commit 9a7071e668d044c1c47c855d2f0bc7cadb235071 "maint: update copyright notices to include 2013." states that this was done, but it actually was not. gnulib/: Update to latest upstream. 2013-01-01 Gary V. Vaughan maint: remove unsupported Tested-by: tag. * build-aux/git-log-fix: Tested-by: line should not appear in the ChangeLog. 2013-01-01 Peter Rosin bootstrap: update README-release patch gl/top/README-release.diff: Update to match latest gnulib changes. 2013-01-01 Gary V. Vaughan maint: update copyright notices to include 2013. * gnulib/: Update to latest upstream. * AUTHORS, ChangeLog.old, HACKING, Makefile.am, NEWS, README, THANKS, TODO, bootstrap, bootstrap.conf, build-aux/edit-readme-alpha, build-aux/ltmain.in, cfg.mk, configure.ac, doc/libtool.texi, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser, libltdl/README, libltdl/argz.c, libltdl/argz_.h, libltdl/configure.ac, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c, libltdl/lt__alloc.c, libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c, libltdl/lt_error.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/ltdl.mk, libltdl/slist.c, libtoolize.in, m4/argz.m4, m4/autobuild.m4, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.in, m4/lt~obsolete.m4, tests/am-subdir.at, tests/archive-in-archive.at, tests/bindir.at, tests/cdemo.at, tests/cmdline_wrap.at, tests/configure-iface.at, tests/convenience.at, tests/ctor.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at, tests/depdemo.at, tests/deplib-in-subdir.at, tests/deplibs-ident.at, tests/deplibs-mingw.at, tests/destdir.at, tests/dlloader-api.at, tests/dumpbin-symbols.at, tests/duplicate_conv.at, tests/duplicate_deps.at, tests/duplicate_members.at, tests/early-libtool.at, tests/exceptions.at, tests/execute-mode.at, tests/exeext.at, tests/export.at, tests/f77demo.at, tests/fail.at, tests/fcdemo.at, tests/flags.at, tests/help.at, tests/indirect_deps.at, tests/infer-tag.at, tests/inherited_flags.at, tests/install.at, tests/lalib-syntax.at, tests/libtool.at, tests/libtoolize.at, tests/link-order.at, tests/link-order2.at, tests/loadlibrary.at, tests/localization.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/lt_dlopen.at, tests/lt_dlopen_a.at, tests/lt_dlopenext.at, tests/ltdl-api.at, tests/ltdl-libdir.at, tests/mdemo.at, tests/need_lib_prefix.at, tests/no-executables.at, tests/nocase.at, tests/nonrecursive.at, tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/pic_flag.at, tests/recursive.at, tests/resident.at, tests/runpath-in-lalib.at, tests/search-path.at, tests/shlibpath.at, tests/slist.at, tests/standalone.at, tests/static.at, tests/stresstest.at, tests/subproject.at, tests/sysroot.at, tests/tagdemo.at, tests/template.at, tests/testsuite.at, tests/versioning.at, tests/with-pic.at: Bump copyright year. 2012-12-19 Peter Rosin libtool: Drop $LDFLAGS when invoking the toolchain m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [Solaris] : Drop $LDFLAGS as it is a user variable that is usually used when invoking libtool. As such, it should not be used by libtool when it invokes the toolchain as it contains options intended for libtool, not the toolchain. Fixes export.at and other tests that add -no-undefined to LDFLAGS. 2012-12-19 Richard Palo (tiny change) libtool: Add SONAME to the so when exporting explicit symbols on Solaris m4/libtool.m (_LT_LANG_CXX_CONFIG) [Solaris] : Feed -h $soname to the linker just as is done in archive_cmds. THANKS: Update. 2012-11-02 Peter Rosin libtool: add @INIT@ to the preloader, for data imports on Windows * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]: Adjust lt_cv_sys_global_symbol_to_cdecl so that it declares imported data symbols as __declspec(dllimport). Adjust lt_cv_sys_global_symbol_to_c_name_address and lt_cv_sys_global_symbol_to_c_name_address_lib_prefix so that they fill in "(void*) 0" for imported data symbols. Add new lt_cv_sys_global_symbol_to_import which finds imported data symbols if non-empty and export this variable to the libtool script in the global_symbol_to_import variable. Adjust lt_cv_sys_global_symbol_pipe so that data imports can be located. * build-aux/ltmain.in (func_generate_dlsyms): When data imports are present, as indicated by global_symbol_to_import, generate a relocation function lt_syminit that fills in the addresses of data imports at runtime and point to the new function with a new virtual @INIT@ entry in the symbol list. * libltdl/loaders/preopen.c (add_symlist): Look for the virtual @INIT@ symbol (i.e. lt_syminit) and call it. (vm_sym): Step past the @INIT@ symbol, if present. * tests/demo.at (dlmain.c): Call the @INIT@ symbol, if present. * NEWS: Update. 2012-11-02 Peter Rosin libtool: unify the global symbol transformations Since it is safe for $lt_cv_sys_global_symbol_to_cdecl to match with a simple /^T .* .*$/ type expression, it is ok for the other transformations as well. At least if you require at least one $symcode at the start of the line, so that the just generated output doesn't match the next sed expression. * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Unify the matching expressions in the sed programs that transform the extracted symbol lines. 2012-11-02 Peter Rosin libtool: break up long lines * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Break up long lines when assigning the sed scripts that transform the extracted symbol lines. 2012-10-25 Gary V. Vaughan bootstrap: use a decent awk if /bin/awk is hopeless. Bootstrap used to fail without an explicit AWK environment setting on machines with both nawk and awk, but where awk is a museum piece. * gl/build-aux/inline-source (AWK): Remove initial setting. (require_awk): Search PATH for a gawk, mawk or nawk before settling on awk, just like configure does. (func_include): Use it. bootstrap: be sure to register gnulib submodule. * gl/build-aux/bootstrap.in (require_gnulib_submodule): Register the gnulib submodule before updating it, even with a shallow clone of gnulib. * bootstrap: Regenerate. Reported by Robert Boehne. bootstrap: fix a typo in a find invocation. * gl/build-aux/bootstrap.in (require_buildreq_patch): Fix a typo. * bootstrap: Regenerate. bootstrap: bash versions 3.00.x do not have += functionality. * gl/build-aux/funclib.sh: Fix a typo in fork minimisation for bash versions 3.00.x. * bootstrap: Regenerate. maint: fix missing command error in make dist. * Makefile.am ($(readme)): Don't forget the 'test'! tests: fixup experr for addition whitespace in error prefix. Fix spurious test failures due to unmatched experr output. * tests/libtoolize.at, tests/old-ltdl-iface.at: Add the addition 2 spaces now used to justify error prefixes. bootstrap: use of ';' in sed scripts is not portable. * gl/build-aux/bootstrap.in (require_buildreq_automake) (require_dotgitmodules_parameters, require_package) (func_update_po_files): Use '\n' or -e to separate sed commands, instead of ';'. * gl/build-aux/extract-trace (func_autoconf_configure) (func_extract_trace_first): Likewise. * gl/funclib.sh: Likewise. (func_tr_sh): Likewise. * gl/build-aux/options-parser (func_usage_message): Likewise. * bootstrap: Regenerate. Reported by Robert Boehne. bootstrap: don't $tc_standout spaces, it's ugly! * gl/build-aux/funclib.sh (func_error): Move the prefix indent before $tc_standout to avoid bright red inverse spaces. * bootstrap: Regenerate. bootstrap: fix rectangle select induced trailing spaces. * gl/build-aux/funclib.sh (require_term_colors): Delete trailing whitespace. * bootstrap: Regenerate. bootstrap: display prerequisite program environment vars. Be more helpful when a prerequisite program from $buildreq cannot be located, by showing what variable to export if it is already installed but not in PATH. * gl/build-aux/bootstrap.in (func_check_versions): Display associated environment variables for not found prerequisite programs. * bootstrap: Regenerate. bootstrap: honor COLORTERM and USE_ANSI_COLORS. Plenty of machines use a terminfo database that doesn't have entries for color escape sequences, even though the terminal itself most likely supports ANSI color escapes. * gl/build-aux/funclib.sh (require_term_colors): If COLORTERM or USE_ANSI_COLORS are set, then ignore what terminfo says, and use standard ANSI color escape sequences. * bootstrap: Regenerate. bootstrap: make error messages prettier. * gl/build-aux/funclib.sh (func_error): Indent 'error' prefix by two additional spaces to line up nicely with 'warning' and 'running'. * bootstrap: Regenerate. 2012-10-24 Gary V. Vaughan bootstrap: emphasize command executions with terminal bold. * bootstrap.in (func_show_eval): Use $require_term_colors to embolden the command about to be executed in output. * bootstrap: Regenerate. * bootstrap.conf (libtool_build_prerequisites): Use the standard (colorful!) bootstrap func_show_eval here too. bootstrap: show output from 'make bootstrap-deps'. * bootstrap.conf (libtool_build_prerequisites): Add support for AM_V_GEN and AM_V_at to the temporary pre-configure Makefile. Instead of eliding non-error output from bootstrap-deps, show the results, with verbosity set according to $opt_verbose. * Makefile.am (m4/ltversion.m4, build-aux/ltmain.sh, libtool) (README): Fix the display rules to correctly fall-back to AM_DEFAULT_VERBOSITY when V=1 is not passed to make invocation. 2012-10-22 Gary V. Vaughan maint: fixup badly formatted ChangeLog entries. * build-aux/git-log-fix: Mostly missing category tags and refilling to 64 columns, but also deleting duplicate entries from merging the gary/reredo-test-operand-order branch. * g/build-aux/gitlog-to-changelog.diff: Local patch to prevent printing unqualified header lines for deleted duplicate patches. * THANKS: Put email address for Paul Seidler here... * build-aux/git-log-fix: ...and remove from ChangeLog here. bootstrap: regenerate to propagate Bob's func_split_equals fix. * bootstrap: regenerate. 2012-10-22 Mikhail Zabaluev (tiny change) configury: make LT_INIT options pic-only and no-pic work. * m4/ltoptions.m4 (_LT_WITH_PIC): Set pic_mode at m4 time. 2012-10-22 Bob Friesenhahn options-parser: fix regexp quoting error. * gl/build-aux/options-parser (func_split_equals): Fixed expr regexp quoting syntax error encountered with non-XSI shells. Problem was noticed under Solaris 10. 2012-10-21 Gary V. Vaughan syntax-check: fix violations and implement sc_old_style_quoting. Modern GNU ASCII quoting in output and comments is done 'like this'. * cfg.mk (sc_old_style_quoting): Try to catch most instances of `old style quoting' so that it is not accidentally re- introduced to the code. * HACKING, Makefile.am, NEWS, PORTING, README, TODO, bootstrap, bootstrap.conf, build-aux/edit-readme-alpha, build-aux/git-hooks/commit-msg, build-aux/ltmain.in, doc/libtool.texi, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser, libltdl/libltdl/slist.h, libltdl/loaders/loadlibrary.c, libltdl/ltdl.c, libltdl/slist.c, libtoolize.in, m4/argz.m4, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4, tests/cmdline_wrap.at, tests/configure-iface.at, tests/demo.at, tests/depdemo.at, tests/deplib-in-subdir.at, tests/deplibs-mingw.at, tests/destdir.at, tests/execute-mode.at, tests/f77demo.at, tests/fail.at, tests/inherited_flags.at, tests/libtool.at, tests/libtoolize.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/mdemo.at, tests/need_lib_prefix.at, tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/static.at, tests/stresstest.at, tests/testsuite.at, tests/versioning.at: Convert to upright quotes. tests: remove spurious shell variable braces. * tests/testsuite.at: Allow the shell braces syntax check to pass again. bootstrap: add missing bootstrap override module file. * gl/modules/bootstrap: Forgot to add this file in a previous commit. bootstrap: allow bootstrap.texi to pass syntax-check. * cfg.mk (sc_require_function_nl_brace): Skip texi files. * gl/doc/bootstrap.texi: Fix assorted syntax-check violations. bootstrap: move into local gl overrides directory. In order to work as if it were already adopted by upstream gnulib, put bootstrap and supporting scripts into the local gnulib overrides directory. * bootstrap, build-aux/extract-trace, build-aux/funclib.sh, build-aux/inline-source, build-aux/options-parser: Move from here... * gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser: ...to here. * gl/build-aux/options-parser (func_version): Show only the first copyright notice on files generated with inline-source. * gl/doc/bootstrap.texi: Developer documentation for bootstrap. * gl/modules/extract-trace, gl/modules/funclib.sh, gl/modules/inline-source, gl/modules/options-parser: Describe dependencies for gnulib-tool. * bootstrap.conf (gnulib_modules): Add extract-trace, inline-source and options-parser modules. * bootstrap: Regenerated from gnulib overrides as a mono- lithic script file using gl/build-aux/inline-source. 2012-10-20 Gary V. Vaughan tests: make sure AC_CONFIG_MACRO_DIR is still supported. * tests/old-m4-iface.at (AC_CONFIG_MACRO_DIR support): New test. Make sure we continue to support AC_CONFIG_MACRO_DIR using projects. libtoolize: select the first directory from AC_CONFIG_MACRO_DIRS. * tests/libtoolize.at (multiple AC_CONFIG_MACRO_DIRS directories): New test to ensure multiple directory arguments mork correctly. * libtoolize.in (func_require_ac_macro_dir): Use expr to discard any additional space delimited entries in the first AC_CONFIG_MACRO_DIRS argument. * bootstrap (func_require_macro_dir): Likewise. libtoolize: migrate to new AC_CONFIG_MACRO_DIRS api. * libtoolize.in (func_install_pkgmacro_files): Uee AC_CONFIG_MACRO_DIRS. (func_check_macros): Advise using AC_CONFIG_MACRO_DIRS. (require_ac_macro_dir): Give priority to AC_CONFIG_MACRO_DIRS. (require_macro_dir): Likewise. * bootstrap: Give priority to AC_CONFIG_MACRO_DIRS. * configure.ac: Define dummy AC_CONFIG_MACRO_DIRS for older Autotools, that is allow bootstrap with current release versions. Use AC_CONFIG_MACRO_DIRS instead of AC_CONFIG_MACRO_DIR. * tests/testsuite.at: Source build-aux/extract-trace for access to func_extract_trace. (LT_AT_ACLOCAL): Use it to get the AC_CONFIG_MACRO_DIRS argument to pass manually to aclocal for compatibility with old Automake. Add a fallback AC_CONFIG_MACRO_DIRS definition to acinclude.m4 in the test directory. (LT_AT_AUTORECONF): Likewise. * tests/cdemo.at, tests/configure-iface.at, tests/darwin.at, tests/demo.at, tests/depdemo.at, tests/early-libtool.at, tests/libtoolize.at, tests/mdemo.at, tests/no-executables.at, tests/nonrecursive.at, tests/old-ltdl-iface.at, tests/recursive.at, tests/subproject.at, tests/tagdemo.at, tests/template.at: Likewise. * doc/libtool.texi: Update. * NEWS: Update. 2012-10-19 Peter Rosin libtool: parse "dumpbin -headers" to get symbols exported from implibs * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [MSVC]: Extract symbols imported from DLLs by import libraries in the Microsoft dumpbin wrapper. (LT_PATH_NM): Add -headers option if dumpbin is the located name lister to feed the above new code. * NEWS: Update. libtool: make func_win32_libid work when the name lister is MS dumpbin * m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [MSVC]: Use func_win32_libid as file_magic_cmd when the name lister is MS dumpbin. (_LT_CMD_GLOBAL_SYMBOLS): Export the new veriable nm_interface to the libtool script. * build-aux/ltmain.in (func_cygming_gnu_implib_p) (func_cygming_ms_implib_p): Move up to before... (func_win32_libid): ...which now uses them to determine if the object is an import library when the nm_interface is "MS dumpbin". * NEWS: Update. 2012-10-19 Gary V. Vaughan bootstrap: always extract only the first AC_CONFIG_MACRO_DIR arg. Previous versions of bootstrap concatenated all the arguments to multiple invocations of AC_CONFIG_MACRO_DIR when extracting the macro_dir directory name. This change enforces correct and consistent behaviour. * libtoolize.in (func_require_macro_dir): Use the new func_extract_trace_first function to make sure the first argument is always used. (func_require_aux_dir, func_require_gnulib_mk) (func_require_source_base): Future proof these functions against multiple invocations or additional arguments to the macros they trace. bootstrap: extract *first* ACLOCAL_AMFLAGS -I argument. * bootstrap (func_require_macro_dir): .* is greedy, so _G_sed_scan as it was will always return the last -I argument, which is wrong. Move to a shell loop to ensure we always get the first -I argument if any. (code from libtoolize.in). bootstrap: use short gnu.org urls consistently. * bootstrap.conf (buildreq): Use gnu.org/s/ style urls to match the ones added automatically by the main bootstrap script. libtoolize: fix a misspelled variable name. * libtoolize.in (func_require_am_macro_dir): The loop uses _G_arg not _G_opt. Now spelled correctly. tests: always extract only the first AC_CONFIG_MACRO_DIR arg. Previous releases of libtoolize used the final invocation when there were several, and after the rewrite over extract-trace, all the invocation directories were concatenated. This change enforces correct and consistent behaviour. * tests/libtoolize.at (multiple AC_CONFIG_MACRO_DIR invocation): New test. * build-aux/extract-trace (func_extract_trace_first): New function for clients that source this file, which returns only the first argument to the first invocation of the named macros. * libtoolize.in (func_require_ac_macro_dir): Use it to make sure the first argument is always used. (func_require_ac_aux_dir, func_require_ac_ltdl_dir) (func_require_ac_ltdl_options): Future proof these functions against multiple invocations or additional arguments to the macros they trace. * News (Important incompatible changes): Note change in semantics. Reported by Eric Blake. tests: always extract only the first ACLOCAL_AMFLAGS include arg. * tests/libtoolize.at (libtoolize ACLOCAL_AMFLAGS extraction): New test. * libtoolize.in (func_check_macros): Display the correct advice when ACLOCAL_AMFLAGS specifies a macrodir, but AC_CONFIG_MACRO_DIR does not. doc: add a missing period following @xref. * doc/libtool.texi: Silence a warning by adding back a missing period. 2012-10-19 Peter Rosin libtool: avoid non-underscore symbols in the "dumpbin -symbols" wrapper If an object has a symbol lacking an expected leading underscore, the symbol name is not printed, but the symbol type is, leading to output such as: T _normal _normal T T _another _another when the expected output would have been something like: T _normal _normal T no_underscore no_underscore T _another _another However, symbols lacking an expected leading underscore are not "real" symbols, they are internal symbols which we don't care about, therefore drop them instead. * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [MSVC]: Output the whole symbol line in one go. * NEWS: Update. 2012-10-18 Peter Rosin libtool: unbreak Windows path quoting The lt_sed_naive_backslashify variable lost its lt_ prefix when m4sh was dropped. But not everywhere. * build-aux/ltmain.in (func_convert_core_file_wine_to_w32) (func_convert_core_msys_to_w32): Drop the lt_ prefix from the lt_sed_naive_backslashify variable. libtool: kill leftover m4 quoting * build-aux/ltmain.in (func_mode_compile): Use literal ] and [. 2012-10-18 Gary V. Vaughan syntax-check: exclude false positive nested quote test. * build-aux/funclib.sh (func_echo_infix_1): These quotes are not actually nested, so add an exclude marker for the syntax-check. libtool: don't set auxscriptsdir at bootstrap time. * build-aux/ltmain.in: Declare relative paths to aux scripts from source commands, for early inlining during bootstrap. * Makefile.am (bootstrap_edit): Move auxscriptsdir substitution from here.... (configure_edit): ...to here. ($(ltmain_sh)): Feed ltmain.in through inline-source as ltmain.sh is generated to remove relative paths to aux scripts. (install-data-local): Simplify. No need for special treatment for ltmain.sh during installation, since aux scripts have already been inlined. Reported by Peter Rosin. extract-trace: only source funclib.sh when $progname is extract-trace. * build-aux/extract-trace: $usage is too generic, and can cause sourced extract-trace to re-source options-parser. We already require that funclib.sh be sourced before sourcing options-parser, so it's safer to check that $progname is correct before sourcing options-parser again from here. 2012-10-18 Peter Rosin libtool: fix spelling nit * build-aux/ltmain.in (func_generate_dlsyms): Fix spelling nit. * libltdl/libltdl/lt_system.h: Likewise. * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Likewise. 2012-10-12 Gary V. Vaughan maint: remove m4sh support. Now that the code base has coalesced around a single option parser, there's no need for the unused getopt.m4sh and support. * build-aux/getopt.m4sh, build-aux/general.m4sh, tests/getopt-m4sh.at: Remove. * Makefile.am (m4sh_dir, LT_M4SH, general_m4sh, getopt_m4sh) (sh_files): Remove. (TESTSUITE_AT): Remove tests/getopt-m4sh.at. (TESTS_ENVIRONMENT): Remove M4SH. * bootstrap.conf (libtool_build_prerequisites): Remove M4SH. * configure.ac (M4SH): Remove. * HACKING (Editing `.m4sh' Files): Remove and renumber following sections. libtool: rewritten over funclib.sh instead of general.m4sh. * Makefile.am (ltmain_m4sh, ltmain_sh_edit): Remove. (ltmain_in): Path to ltmain.in. (ltmain_sh): Generate ltmain.sh from ltmain.in using $(bootstrap_edit). * build-aux/ltmain.m4sh: Remove. * build-aux/ltmain.in: Rewritten as a client of funclib.sh. libtoolize: inline sourced helper scripts during install. * build-aux/inline-source: New file. * Makefile.am (inline_source): Path to inline-source script. (EXTRA_DIST): Distribute inline-source too. (helper_scripts): Remove. (install-data-local): Inline sourced helper scripts during installation. Don't install helper_scripts. (uninstall-hook): Don't uninstall helper_scripts. libtoolize: rewritten over funclib.sh instead of general.m4sh. * Makefile.am (libtoolize_m4sh): Remove. (EXTRA_DIST): Delete libtoolize_m4sh. (libtoolize_in): Remove rule. (libtoolize): Apply bootstrap_edit to libtoolize.in too. * configure.ac (AC_CONFIG_SRCDIR): Refer to libtoolize.in. * libtoolize.m4sh: Remove. * libtoolize.in: Rewrite as a client of options-parser and the new funclib.sh, avoiding the m4sh expansion step. * tests/libtoolize.at, tests/old-ltdl-iface.at (experr): adjust to match funclib.sh error output. options-parser: correctly quote shell meta-characters in arguments. When any argument contains a shell meta-character, it needs to be quoted when passed around. We already pass parameter lists as space delimited strings of arguments, and pass the string through eval to turn it back into a list before re-assigning using `set'. To prevent the shell from interpreting any meta-characters during an `eval set dummy $argumentlist', they must be quoted again inside the quoted argument list. * build-aux/funclib.sh (func_quote_for_eval): Be careful to keep a separate tally of quoted and unquoted argument lists, to conform to the API of the single argument func_quote_for_eval implementation in build-aux/general.m4sh. * bulid-aux/options-parser (func_run_hooks): To account for the doubly quoted meta-character argument lists, we must eval the parameter reassignment `set' call separately from evaluating the dynamically named hook results variable. maint: factor common shell code into build-aux/funclib.sh. Moving potentially reusable code into a common file that can be sourced by clients, and adjusting for impedance mismatch or necessary renames during integration. * build-aux/funclib.sh: New file. * build-aux/options-parser (Shell normalisation) (User overrideable command paths, Global variables, func_append) (require_term_colors, func_echo, func_echo_infix_1, func_warn) (func_error, func_fatal_error, func_quote_for_eval, func_verbose): Move from here... * build-aux/funclib.sh (Shell normalisation, User overrideable command paths, Global variables, func_append) (require_term_colors, func_echo, func_echo_infix_1) (func_warn_and_continue, func_error, func_fatal_error) (func_quote_for_eval, func_verbose): ...to here. * build-aux/general.m4sh (func_arith, func_basename) (func_dirname, func_dirname_and_basename, func_echo_all) (func_grep, func_len, func_mkdir_p, func_mktempdir) (func_normal_abspath, func_relative_path, func_quote_for_expand) (func_stripname, func_show_eval, func_tr_sh): Move from here... * build-aux/funclib.sh(func_arith, func_basename) (func_dirname, func_dirname_and_basename, func_echo_all) (func_grep, func_len, func_mkdir_p, func_mktempdir) (func_normal_abspath, func_relative_path, func_quote_for_expand) (func_stripname, func_show_eval, func_tr_sh): ...to here. * bootstrap (usage message): Document `-no-warn' option. (func_append_u, func_warning): Move from here... * build-aux/funclib.sh (func_append_uniq, func_warning): ...to here. * bootstrap, build-aux/extract-trace: Source build-aux/funclib.sh before build-aux/options-parser. * build-aux/options-parser (usage, long_help_message): Set default values to match what is parsed by the unmodified parser. * build-aux/extract-trace (usage, long_help_message): Only set from func_main, so that clients sourcing this file can still use the correct defaults from build-aux/options-parser. * bootstrap (bootstrap_options_prep, bootstrap_parse_options): Move warning option parsing from here... * build-aux/option-parser (func_options_prep) (func_parse_options): ...to here, where all clients can benefit. * Makefile.am (funclib_sh): New macro; path to funclib.sh. (EXTRA_DIST): Add $(funclib_sh). libtoolize: source extract-trace rather than fork and execute each call. Rather than forking and executing a full $SHELL for each macro extraction, source the script and its dependencies into our execution space and use the provided func_extract_trace API. * libtoolize.m4sh: Source extract-trace from an appropriate directory determined presently by make. (func_extract_trace): Remove this wrapper. * Makefile.am (abs_aux_dir): Absolute path to extract-trace directory. (configure_edit): Inject abs_aux_dir into uninstalled libtoolize. (bin_SCRIPTS): Remove libtoolize. (uninstall-hook): Manually uninstall libtoolize. (install-data-local): Inject pkgauxdir into installed libtoolize during installation. options-parser: employ fork minimisation. * build-aux/options-parser (_G_HAVE_XSI_OPS): Environment overrideable defaults for bash and zsh, which are known to support XSI extensions. (_G_HAVE_PLUSEQ_OP): Similarly for new enough versions of bash, which are known to have += support. (func_append): Only perform the shell += probe when state of support is unknown. (func_split_equals, func_split_short_opt): Similarly for XSI probe to select fastest working implementation. options-parser: keep non-option arguments separate! * build-aux/options-parser (func_parse_options): When there is more than one non-option argument, "$*" forces all of them into a single string. Use ${1+"$@"} to set arguments correctly. options-parser: prefix usage message with "Usage: ". * build-aux/options-parser (func_usage_message): Prefix usage message with "Usage: ". bootstrap: work when using fallback shallow gnulib clone. Bootstrapping without --gnulib-srcdir creates a shallow gnulib clone to run gnulib-tool out of, except that the parent package is almost certainly using a revision of gnulib before just tha most recent 2 gnulib revisions. * bootstrap (func_require_gnulib_submodule): Pull the most recent 365 revisions, which ought to be enough for a well- maintained parent package. Don't forget to run 'git submodule update' to select the correct gnulib revision. bootstrap: require GNU make to bootstrap. Make is not installed by default in some environments, such as cygwin... which is slow enough already without having to wait for gnulib-tool, bootstrap and half of configure to complete before getting an error. * bootstrap.conf (buildreq): Add recent GNU make to bootstrap requirements. Now missing make is diagnosed in the earliest part of bootstrap. maint: simplify "Local variables:" footer with time-stamp-pattern. * bootstrap, build-aux/extract-trace, build-aux/options-parser (Local variables): Use time-stamp-pattern to set number of searched lines to 10, and to replace time-stamp-start, time-stamp-end and time-stamp-format. 2012-10-08 Peter Rosin tests: skip the with-pic test only if DLL_EXPORT is defined For some systems with PIC as default, the test was inadvertently skipped. Issue introduced in commit 4440d65. * tests/with-pic.at: Skip the test for systems that define DLL_EXPORT. Reported by Roumen Petrov. tests: rerefix line ending problems on MinGW. The previous commit broke Linux->MinGW cross-compiling. * tests/mdemo.at: Normalize line endings after $EGREP. Reported by Roumen Petrov. 2012-10-06 Peter Rosin tests: refix line ending problems on MinGW. In commit 22f5750, one of the hunks actually introduced line ending problems. Revert that hunk. * tests/mdemo.at: Use AT_DATA for expected output when the output from compiled programs is fed through $EGREP. tests: use dry runs in both parts of 'check link mode operation' MSVC exits with status 2 instead of the expected 1 when a real link is attempted. * tests/libtool.at (check link mode operation): Use a dry run and expect a clean exit status instead of expecting a fail. 2012-10-06 Gary V. Vaughan tests: sanitise the libtool quote checking Autotests. Carefully comment the maze of quoting and escaping needed to pass through M4, $SHELL, and grep before regexp matching. * tests/libtool.at (quote shell meta-characters in filenames): Split backslash into a separate test group, because it needs additional escaping. Use grep consistently for the entire test group. Use AT_CHECK rather than LT_AT_CHECK to avoid problems with escaping literal $ correctly with LT_ESCAPE. Use the correct number of backslashes for each sub-group. Escape double-quote literals portably. Reported by Peter Rosin. tests: ensure mdemo.at doesn't rely on installed libltdl. * tests/mdemo.at (configuer.ac): Build an included convenience libltdl. (Makefile.am): Add subdir-objects. Remove override rules from legacy mdemo tests to reuse parent libltdlc.la. (LT_AT_CHECK_CONFIG): Add --with-included-ltdl to configure arguments so that test cases always use the subproject libltdl in preference to any installed libltdl. Reported by Peter Rosin. tests: allow for unstable fortran output ordering. Due to differences in line-endings between C stdout and Fortran stdout, as well as unpredictable output ordering between platforms and runtimes, weaken success criteria to not require the entire output of fortran programs to match a test case. * itests/fcdemo.at, tests/f77demo.at (_LT_CHECK_EXECUTE): Improve comments, and weaken test case to grep for a known line in the f77 runtime output. 2012-10-05 Peter Rosin tests: make LT_AT_HOST_DATA retain whitespace on MinGW Fixes issues with depdemo.at, f77demo.at and fcdemo.at. * tests/testsuite.at (LT_AT_HOST_DATA) [MinGW]: Keep leading and trailing spaces and tabs when converting line endings. tests: fix line ending problems on MinGW * tests/cdemo.at: Use LT_AT_HOST_DATA for expected output from compiled programs. * tests/demo.at: Likewise. * tests/depdemo.at: Likewise. * tests/f77demo.at: Likewise. * tests/fcdemo.at: Likewise. * tests/mdemo.at: Likewise. * tests/tagdemo.at: Likewise. 2012-10-05 Gary V. Vaughan tests: remove last vestiges of the legacy test harness. All legacy tests have been fully migrated to Autotest, so no need to cling to the legacy scaffolding any more. * tests/defs.m4sh: Delete file. * configure.ac (AM_INIT_AUTOMAKE): Remove unused color-tests and parallel-tests options. * Makefile.am (defs_m4sh, defs_in, defs, TESTS): Remove. Adjust all dependencies. tests: migrate legacy tagtrace.test to Autotest. * tests/tagtrace.test: Delete file. * tests/libtool.at (test LT_SUPPORTED_TAG interface): Add Autotest equivalent. * Makefile.am (TESTS): Remove tests/tagtrace.test. tests: migrate legacy objectlist.test to Autotest. * tests/objectlist.test: Delete file. * tests/libtool.at (check objectlist file operation): Add Autotest equivalent. * Makefile.am (TESTS): Remove tests/objectlist.test. tests: migrate legacy link.test and link-2.test to Autotest. * tests/link.test, tests/link-2.test: Delete files. * tests/libtool.at (Check link operation): Add Autotest equivalent. * Makefile.am (TESTS): Remove tests/link.test and tests/link-2.test. tests: migrate legacy nomode.test to Autotest. * tests/nomode.test: Delete file. * test/libtool.at (Check help output, No mode diagnostic): Add equivalent tests in Autotest. * Makefile.am (TESTS): Remove tests/nomode.test. tests: migrate legacy suffix.test to Autotest. * tests/suffix.test: Delete file. * tests/libtool.at (Transform source suffices): Add Autotest equivalent. * Makefile.am (TESTS): Remove tests/suffix.test. tests: migrate legacy quote.test to Autotest. * tests/quote.test: Moved from here... * tests/libtool.at: ...to here, and updated to Autotest. * Makefile.am (TESTS): Remove tests/quote.test. (TESTSUITE_AT): Add tests/libtool.at. 2012-10-04 Gary V. Vaughan maint: add missing 2012 copyright to newly pushed old files. * tests/cdemo.at, tests/demo.at, tests/depdemo.at, tests/f77demo.at, tests/fcdemo.at, tests/mdemo.at, tests/tagdemo.at (Copyright): Update with missing 2012. syntax-check: remove test/demo directories from exemption regexps. * cfg.mk (exclude_file_name_regex--sc_bindtextdomain) (exclude_file_name_regexp--sc_program_name): Remove. The excluded directories no longer exist. (exclude_file_name_regexp--sc_prohibit_strcmp): Remove subexpression for matching removed demo directories. configure: remove unused conditionals and support for order only rules. Clean up some more unused cruft. * configure.ac (HAVE_CXX, HAVE_F77, HAVE_FC, HAVE_GCJ, HAVE_RC): Remove. These were only used by the recently removed legacy tests. [order-only prerequisites]: Ditto. bootstrap: remove support for `-r' and `reconf_dirs'. With all those extra demo directories out of the way, we can revert to a more canonical bootstrap process, and jettison the cruft that was only there to work around the pain of needing to autoreconf 11 directories. Bootstrap is now an order of magnitude faster. * bootstrap.conf (require_ltdl_dir): New function. Factored out of `libtool_build_prerequisites'. (libtool_build_prerequisites): Adjust. (func_reconfigure): Use `require_ltdl_dir' to determine the name of the other directory we need to autoreconf during bootstrap. (libtool_options_prep, libtool_parse_options) (libtool_validate_options): Remove. tests: let pic_flag and with-pic Autotests work on non-VPATH builds. * tests/pic_flag.at: Use _LT_DEMO_SETUP to generate a demo style project, rather than relying on $abs_top_srcdir/configure. * tests/with-pic.at: Likewise. * Makefile.am (TESTSUITE_AT): Move tests/pic_flag.at and tests/with-pic.at so that they run immediately following tests/demo.at. tests: migrate legacy tests/fcdemo tests to Autotest. Along with the demise of the last demo directory, so all the cruft for re-autotooling and distributing the additional directories is no longer necessary. * tests/fcdemo.at: New autotest groups, based on... * tests/fcdemo-conf.test, tests/fcdemo-exec.test, tests/fcdemo-make.test, tests/fcdemo-shared-exec.test, tests/fcdemo-shared-make.test, tests/fcdemo-shared.test, tests/fcdemo-static-exec.test, tests/fcdemo-static-make.test, tests/fcdemo-static.test: ...these legacy tests, now removed. * tests/fcdemo/Makefile.am, tests/fcdemo/README, tests/fcdemo/configure.ac, tests/fcdemo/cprogram.c, tests/fcdemo/foo.h, tests/fcdemo/fooc.c, tests/fcdemo/foof.f90, tests/fcdemo/foof2.f90, tests/fcdemo/foof3.f90, tests/fcdemo/fprogram.f90: Remove. * configure.ac (CONF_SUBDIRS, DIST_MAKEFILE_LIST): Remove. * Makefile.am (DIST_SUBDIRS, FC_TESTS, clean-local-legacy) (configure-subdirs, distclean-recursive, distdir) (fake-distclean-legacy, $(DIST_MAKEFILE_LIST)): Remove. (COMMON_TESTS): Rename from this... (TESTS): ...to this. tests: migrate legacy tests/f77demo tests to Autotest. * tests/f77demo.at: New autotest groups, based on... * tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared-exec.test, tests/f77demo-shared-make.test, tests/f77demo-shared.test, tests/f77demo-static-exec.test, tests/f77demo-static-make.test, tests/f77demo-static.test: ...these legacy tests, now removed. * tests/f77demo/Makefile.am, tests/f77demo/README, tests/f77demo/configure.ac, tests/f77demo/cprogram.c, tests/f77demo/foo.h, tests/f77demo/fooc.c, tests/f77demo/foof.f, tests/f77demo/foof2.f, tests/f77demo/foof3.f, tests/f77demo/fprogram.f: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/f77demo. tests: migrate legacy tests/mdemo2 tests to Autotest. This test was just a small non-ltdl aware library to load a library from the legacy mdemo test, which in turn used ltdl to call functions from modules. No need to create a whole other test group with copies of everything from mdemo setup - just tack the additional test on the end of the mdemo group. * tests/mdemo.at (link with library that loads ltdl modules): New test, based on... * tests/mdemo2-conf.test, tests/mdemo-exec.test, tests/mdemo-make.test: ...these legacy tests, now removed. * tests/mdemo2/Makefile.am, tests/mdemo2/README, tests/mdemo2/configure.ac, tests/mdemo2/main.c: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/mdemo2. * Makefile.am: Adjust. tests: migrate legacy tests/mdemo tests to Autotest. * tests/mdemo.at: New autotest groups, based on... * tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared-exec.test, tests/mdemo-shared-inst.test, tests/mdemo-shared-make.test, tests/mdemo-shared-unst.test, tests/mdemo-shared.test, tests/mdemo-static-exec.test, tests/mdemo-static-inst.test, tests/mdemo-static-make.test, tests/mdemo-static-unst.test, tests/mdemo-static.test, tests/mdemo-unst.test: ...these legacy tests, now removed. * tests/mdemo/Makefile.am, tests/mdemo/README, tests/mdemo/configure.ac, tests/mdemo/foo.h, tests/mdemo/foo1.c, tests/mdemo/foo2.c, tests/mdemo/main.c, tests/mdemo/mlib.c, tests/mdemo/sub.c: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/mdemo. * Makefile.am: Adjust. tests: migrate legacy tests/pdemo tests to Autotest. This test was a thinly veiled copy of the basic legacy demo-conf.test series, with the addition of long file names that are not unique in the first 17 characters of their name, mashed up with the cmdline_wrap.at max_cmd_len limits. Migrating to Autotest means that this test will be automatically rerun with max_cmd_len=24 as cmdline_wrap.at recurses through the whole testsuite, so the migrated pdemo test is now simply another test case in demo.at with longer file names. * test/demo.at (linking with long file names): New test, based on... * tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test: ...these legacy tests, now removed. * tests/pdemo/Makefile.am, tests/pdemo/configure.ac, tests/pdemo/foo.h, tests/pdemo/longer_file_name_dlmain.c, tests/pdemo/longer_file_name_foo.c, tests/pdemo/longer_file_name_foo2.c, tests/pdemo/longer_file_name_hell1.c, tests/pdemo/longer_file_name_hell2.c, tests/pdemo/longer_file_name_hello.c, tests/pdemo/longer_file_name_main.c: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/pdemo. * Makefile.am: Adjust. tests: migrate legacy tests/tagdemo tests to Autotest. * tests/tagdemo.at: New autotest groups, based on... tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared-exec.test, tests/tagdemo-shared-make.test, tests/tagdemo-shared.test, tests/tagdemo-static-exec.test, tests/tagdemo-static-make.test, tests/tagdemo-static.test, tests/tagdemo-undef-exec.test, tests/tagdemo-undef-make.test, tests/tagdemo-undef.test: ...these legacy tests, now removed. * tests/tagdemo/.gitignore, tests/tagdemo/Makefile.am, tests/tagdemo/README, tests/tagdemo/baz.cpp, tests/tagdemo/baz.h, tests/tagdemo/configure.ac, tests/tagdemo/conv.cpp, tests/tagdemo/conv.h, tests/tagdemo/foo.cpp, tests/tagdemo/foo.h, tests/tagdemo/main.cpp: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/tagdemo. * Makefile.am: Adjust. tests: migrate legacy tests/depdemo tests to Autotest. * tests/depdemo.at: New autotest groups, based on... * tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast-exec.test, tests/depdemo-nofast-inst.test, tests/depdemo-nofast-make.test, tests/depdemo-nofast-unst.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared-exec.test, tests/depdemo-shared-inst.test, tests/depdemo-shared-make.test, tests/depdemo-shared-unst.test, tests/depdemo-shared.test, tests/depdemo-static-exec.test, tests/depdemo-static-inst.test, tests/depdemo-static-make.test, tests/depdemo-static-unst.test, tests/depdemo-static.test, tests/depdemo-unst.test: ...these legacy test cases, now removed. * tests/depdemo/Makefile.am, tests/depdemo/README, tests/depdemo/configure.ac, tests/depdemo/l1/Makefile.am, tests/depdemo/l1/l1.c, tests/depdemo/l1/l1.h, tests/depdemo/l2/Makefile.am, tests/depdemo/l2/l2.c, tests/depdemo/l2/l2.h, tests/depdemo/l3/Makefile.am, tests/depdemo/l3/l3.c, tests/depdemo/l3/l3.h, tests/depdemo/l4/Makefile.am, tests/depdemo/l4/l4.c, tests/depdemo/l4/l4.h, tests/depdemo/main.c, tests/depdemo/sysdep.h: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/depdemo. * Makefile.am: Adjust. tests: migrate legacy tests/demo tests to Autotest. * tests/demo.at: New autotest groups, based on... * tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast-exec.test, tests/demo-nofast-inst.test, tests/demo-nofast-make.test, tests/demo-nofast-unst.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic-exec.test, tests/demo-nopic-make.test, tests/demo-nopic.test, tests/demo-pic-exec.test, tests/demo-pic-make.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared-exec.test, tests/demo-shared-inst.test, tests/demo-shared-make.test, tests/demo-shared-unst.test, tests/demo-shared.test, tests/demo-static-exec.test, tests/demo-static-inst.test, tests/demo-static-make.test, tests/demo-static-unst.test, tests/demo-static.test, tests/demo-unst.test: ...these legacy test cases, now removed. * tests/demo/Makefile.am, tests/demo/README, tests/demo/configure.ac, tests/demo/dlmain.c, tests/demo/foo.c, tests/demo/foo.h, tests/demo/hell1.c, tests/demo/hell2.c, tests/demo/hello.c, tests/demo/main.c: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/demo. * Makefile.am: Adjust. tests: migrate legacy tests/cdemo tests to Autotest. * tests/cdemo.at: New Autotest groups, based on... * tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared-exec.test, tests/cdemo-shared-make.test, tests/cdemo-shared.test, tests/cdemo-static-exec.test, tests/cdemo-static-make.test, tests/cdemo-static.test, tests/cdemo-undef-exec.test, tests/cdemo-undef-make.test, tests/cdemo-undef.test: ...these legacy test cases, now removed. tests/cdemo/Makefile.am, tests/cdemo/README, tests/cdemo/configure.ac, tests/cdemo/foo.c, tests/cdemo/foo.h, tests/cdemo/main.c: Remove. * configure.ac (CONF_SUBDIRS): Remove tests/cdemo. * Makefile.am: Adjust. maint: distribute a single ChangeLog file. * ChangeLog.1996, ChangeLog.1997, ChangeLog.1998, ChangeLog.1999, ChangeLog.2000, ChangeLog.2001, ChangeLog.2002, ChangeLog.2003, ChangeLog.2004, ChangeLog.2005, ChangeLog.2006, ChangeLog.2007, ChangeLog.2008, ChangeLog.2009, ChangeLog.2010: Remove. Content moved from here... * ChangeLog.old: ...to here. * Makefile.am (EXTRA_DIST): Update list of ChangeLog files. (changelog_old): New variable to hold path to ChangeLog.old file. ($(changelog)): Update to concatenate non-distributed ChangeLog.old file to distributed ChangeLog after git log entries. syntax-check: fix violations and implement sc_prohibit_space_semicolon. No need for a spurious space before a command ending semi-colon. * cfg.mk (sc_prohibit_space_semicolon): New test to catch accidental reintroduction of spurious spaces removed by this changeset. * bootstrap, build-aux/general.m4sh, build-aux/ltmain.m4sh, libltdl/lt__strl.c, m4/libtool.m4, m4/ltdl.m4, tests/bindir.at: Remove spurious spaces. 2012-10-03 Gary V. Vaughan Merge branch 'gary/reredo-test-operand-order' The original manually applied changeset 962aa91 contained several errors (some corrected by subsequent patches on master, others not) and many unrelated (although in this case, correct) changes were also committed in the same changeset. The merged branch gary/reredo-test-operand-order factors the unrelated changes out into separate commits, and performs the work that should have been in 962aa91 with a script, the results of which were then painstakingly inspected for errors. This merge moves the corrections for errors made in the original manual patch from the branch onto master. Please inspect the many separate changesets on the branch rather than the original patch when you bisect or otherwise find your way to an error caused by 962aa91. 2012-10-02 Gary V. Vaughan tests: simplify some shell code. * tests/fail.at: Simplify. * tests/static.at: Likewise. libtool: unroll complex nested compound statements * build-aux/ltmain.m4sh: Use an if statement instead of ugified compound statements. libtool: unroll nested if into a single case statement. * build-aux/ltmain.m4sh (func_mode_link): Unroll a hard to understad nested if statement into a more readable single case statement. libtool: simplify $skipped_export blocks * build-aux/ltmain.m4sh (func_mode_link): Save an if statement with '$skipped_export && { block; }' instead of 'if $skipped_export; then block; fi'. libtool: simplify an if statement * build-aux/ltmain.m4sh (func_mode_link): Reverse the branch order for an if statement for readability. * m4/libtool.m4: Likewise. libtool: save an if statement, with a compound statement. * build-aux/ltmain.m4sh (func_mode_link): Simplify. libtool: simplify multiple string tests * build-aux/ltmain.m4sh (func_mode_link): Save test invocations by using 'test x,y = "$a,$b"' instead of 'test x = "$a" && test y = "$b"'. * m4/libtool.m4: Likewise. libtool: fold if into a compound OR statement when more readable * build-aux/ltmain.m4sh (func_mode_link): For readability, use 'test string = "$var" || { stuff; }' in preference to 'if test string != "$var"; then stuff; fi'. libtool: use false or : for $rmforce, and simplify * build-aux/ltmain.m4sh (func_mode_uninstall): Save a string comparison by setting $rmforce to false or : and using it directly as the first argument to if. libtool: use false or : for $wrappers_required, and simplify * build-aux/ltmain.m4sh (func_mode_link): Save a string comparison by setting $wrappers_required to false or : and using it directly with a ored block rather than an if statement. libtool: use false or : for $linkalldeplibs, and simplify * build-aux/ltmain.m4sh (func_mode_link): Save a string comparison by setting $linkalldeplibs to false or : and using it directly as the first argument to if. libtool: use false or : for $valid_a_lib, and simplify * build-aux/ltmain.m4sh (func_mode_link): Save a string comparison by setting $valid_a_lib to false or : and using it directly as the first argument to if. libtool: use false or : for $found, and simplify * build-aux/ltmain.m4sh (func_mode_link): Save a string comparison by setting $found to false or : and using it directly as the first argument to if. libtool: use false or : for $alldeplibs, and simplify * build-aux/ltmain.m4sh (func_mode_link): Save a string comparison by setting $alldeplibs to false or : and using it directly as the first argument to if. libtool: use false or : for $preload, and simplify * build-aux/ltmain.m4sh (func_mode_link): Save a string comparison by setting $preload to false or : and using it directly instead of if statements. libtool: use false or : for $my_pic_p, and simplify * build-aux/ltmain.m4sh (func_generate_dlsyms): Save a string comparison by setting $my_pic_p to false or : and using it directly instead of calling if. Adjust all callers. libtool: use false or : for $finalize, and simplify * build-aux/ltmain.m4sh (func_mode_install): Save a string comparison by setting $finalize to false or : and using it directly as the first argument to if. libtool: use false or : for $isdir, and simplify * build-aux/ltmain.m4sh (func_mode_install): Save a string comparison by setting $isdir to false or : and using it directly as the first argument to if. syntax-check: [REDO] fix violations and implement sc_prohibit_test_const_follows_var. To safely use a non-literal fist argument to 'test', you must always prepend a literal non-'-' character, but often the second operand is a constant that doesn't begin with a '-' already, so always use 'test a = "$b"' instead of the noisy 'test "X$b" = Xa'. * cf.mk (sc_prohibit_test_const_follws_var): New syntax-check rule to ensure we don't reintroduce noisy test operands. bootstrap, build-aux/extract-trace, build-aux/general.m4sh, build-aux/ltmain.m4sh, configure.ac, doc/libtool.texi, libtoolize.m4sh, m4/argz.m4, m4/libtool.m4, m4/ltdl.m4, tests/bindir.at, tests/defs.m4sh, tests/demo-relink.test, tests/demo/configure.ac, tests/depdemo-relink.test, tests/destdir.at, tests/duplicate_conv.at, tests/fail.at, tests/getopt-m4sh.at, tests/help.at, tests/libtoolize.at, tests/link-2.test, tests/link-order2.at, tests/lt_dlopenext.at, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/need_lib_prefix.at, tests/nocase.at, tests/pdemo/configure.ac, tests/pic_flag.at, tests/search-path.at, tests/shlibpath.at, tests/static.at, tests/sysroot.at, tests/tagtrace.test, tests/testsuite.at, tests/with-pic.at: Swap operands to avoid useless noise. 2012-09-19 Peter Rosin tests: skip with-pic test when no "real" pic flag is used. * tests/with-pic.at: Windows uses "-DDLL_EXPORT -DPIC" as the pic "flag", but never applies it to static libraries. Cater for this and skip if no "real" pic flag is in use. 2012-09-16 Gary V. Vaughan syntax-check: fix texinfo formatting flagged by prohibit_undesirable_word_seq. * doc/libtool.text: Fix several misuses of @xref and @pxref so that the prohibit_undesirable_word_seq syntax check passes again. syntax-check: remove useless_braces_in_variable_derefs. * build-aux/general.m4sh: Remove spurious braces around ${ZSH_VERSION} dereference. * build-aux/ltmain.m4sh (func_mode_link): Likewise for ${wl}. syntax-check: skip prohibit_strncpy. * cfg.mk (local-checks-to-skip): sc_prohibit_strncpy. syntax-check: skip prohibit_always_true_header_tests rule. * cfg.mk (local-checks-to-skip): Add sc_prohibit_always_true_header_tests. maint: Revert "bootstrap: delete unneeded README-release patch" This reverts commit 11cd425e7d47111956381dba28f8c1b34e14653f. These instructions are hard to find for new maintainers, so it's good to keep them to hand with the release notes. And the additional distchecks are important prior to a release. maint: remove unused cvsu script. * build-aux/cvsu: Remove. This script is not useful now that Libtool's repository is hosted in git. * Makefile.am (build_scripts): Remove cvsu reference. maint: run update-copyright for missing 2011 and 2012 years. See maintain.texi (Copyright Notices) for rules for maintaining the years in copyright notices. * All Files (Copyright): Updated with missing 2011 and 2012. bootstrap: use gnulib update-copyright script. See maintain.texi (Copyright Notices) for rules for maintaining the years in copyright notices. * bootstrap.conf (gnulib_modules): Add update-copyright. * cfg.mk (update-copyright-env): Set environment variables for update-copyright script. bootstrap: update bootstrap script to latest upstream. * bootstrap, build-aux/options-parser: apply upstream fixes and enhancements. git: don't complain about new parallel tests driver and file droppings. * build-aux/.gitignore: Ignore parallel `test-driver' script. * tests/.gitignore: Ignore `test-driver' .trs file droppings. gnulib: update local gnulib patches. * gl/build-aux/announce-gen.diff: Remove hunks adopted upstream. * gl/build-aux/do-release-commit-and-tag.diff: Refresh this patch to match current gnulib. gnulib: update gnulib submodule. bootstrap: ensure there is a ChangeLog before running automake. Automake refuses to run in GNU-mode unless there is a ChangeLog file in the top-level directory. * bootstrap.conf (libtool_force_changelog): Create a dummy ChangeLog. libtoolize: improve verbose mode output. * libtoolize (func_require_seen_ltdl) (func_require_seen_libtool): Output success message in verbose mode. 2012-08-22 Peter O'Gorman libtool: Add the 'n' to then. * m4/libtool.m4: fix typo. Reported by Brad Smith. 2012-08-22 Andreas Schwab libtool: Pass through -g* so that debugging information is not dropped * ltmain.m4sh (func_mode_link): Pass through -g*. 2012-08-22 David Edelsohn libtool: AIX PIC shared library support * m4/libtool.m4 (_LT_COMPILER_PIC): Add -fPIC to GCC and GXX for AIX. 2012-08-22 Brad Smith libtool: Update/simplify OpenBSD support * m4/libtool.m4: Forget about 11 year old releases. 2012-08-19 Peter Rosin libtool: quote progpath properly Attempt to handle spaces in paths better. * build-aux/ltmain.m4sh (func_mode_install, func_mode_link): Quote $progpath. * THANKS: Update. 2012-04-19 Mike Frysinger libtool: Handle getconf returning "undefined". * m4/libtool.m4: Check for "undefined" from `getconf`. 2012-03-17 Peter Rosin bootstrap: delete unneeded README-release patch * gl/top/README-release.diff: Delete. 2012-03-16 Peter O'Gorman libtool: Fix typo that caused sys_lib_search_path_spec to be wrong. * m4/libtool.m4: s/lt_fooi/lt_foo/. Reported by Paul Seidler. 2012-02-21 Samuel Thibault libtool: Improve GNU/Hurd support. * m4/libtool.m4: Add gnu* match where it was missing. 2012-02-19 Titus von Boxberg libtool: Accept clang's -stdlib linker flag. build-aux/ltmain.m4sh: Don't drop the -stdlib= flag. 2012-02-19 Juergen Reuter libtool: Enable nagfor fortran compiler support * build-aux/ltmain.m4sh: nagfor compatible version string. * m4/libtool.m4: nagfor support. 2012-02-19 Juergen Reuter libtool: Fixing -shared error message for nagfor compiler. * m4/libtool.m4: Fix -shared. 2012-02-19 Pavel (Pasha) Shamis ltdl: Improve debug error reporting in ltdl. * libltdl/ltdl.c: Print the error message if loading fails. 2012-02-19 Peter O'Gorman maint: Deleted unneeded gitlog-to-changelog patch * gl/build-aux/gitlog-to-changelog.diff: Delete. 2012-02-02 Roumen Petrov (tiny change) fixup: restore EXPORTS test Commit v2.4.2-120-g962aa91 syntax-check: fix violations and implement sc_prohibit_test_const_follows_var inadvertedly reversed the meaning of the comparison. * build-aux/ltmain.m4sh (func_mode_link) [cygwin|mingw|cegcc]: Restore the EXPORTS test. We need to look at the symbols when it's _not_ already a .def file (in which case we trust the user input blindly). 2012-01-30 Peter Rosin cwrapper: avoid surplus strlen calculations. * build-aux/ltmain.m4sh (func_emit_cwrapperexe_src:lt_update_exe_path): Avoid surplus strlen calculations. 2011-12-24 Gary V. Vaughan bootstrap: fix Autoconf version typo. * build-aux/options-parser: s/2\.62/2.68/ gnulib: update gnulib submodule. Among others, this fixes the reference to a local commit. * gnulib: Updated to todays master HEAD revision. * gl/top/README-release.diff: Update to account for changes to gnulib/top/README-release since the last gnulib update. 2011-12-18 Gary V. Vaughan libtool: make fork minimisation compatible with dash and zsh. * build-aub/general.m4sh (lt_HAVE_PLUSEQ_OP): Instead of using $((..)) arithmetic, which causes an error on dash, use a case based bash version check. (lt_HAVE_ARITH_OP, lt_HAVE_XSI_OPS): Also short circuit the feature probing forks and set these automatically when zsh is detected. Reported by Stefano Lattarini. bootstrap: adopt autoconf echo normalization code. Dash shipped with Ubutu-11.10 as /bin/sh, among others, still has a crippled echo builtin that mis-handles backslashes. * build-aux/options-parser (bs_echo): Adopt the autoconf echo normalization code to find a suitable replacement for buggy echo commands. Adjust all uses of echo to $bs_echo. * build-aux/extract-trace (func_extract_trace, func_main): Likewise. * bootstrap: To retain some execution speed on platforms with buggy builtin echo, replace most occurrences of `echo' with `$bs_echo' - except where its arguments will obviously never contain backslashes or be overly long. Reported by Reuben Thomas. libtool: minimise forks per invocation under bash. * build-aux/general.m4sh (lt_HAVE_PLUSEQ_OP, lt_HAVE_ARITH_OP) (lt_HAVE_XSI_OPS): Set these without forking a test script when running under bash, to avoid a few unnecessary forks. 2011-12-13 H.J. Lu libtool: Support x32. * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32. 2011-12-08 Gary V. Vaughan maint: disable prohibit_always-defined_macros syntax check. Aside from Apple grep silently failing to run this test and report violations, libtool still uses non-gnulib versions of dirent.h and argz.h which use the same macros, but are not always-defined. * cfg.mk (local-checks-to-fix): Move sc_prohibit_always-defined_macros from here... (local-checks-to-skip): ...to here. Reported by Peter O'Gorman. tests: s/snippit/snippet/. * tests/demo/foo.h, tests/pdemo/foo.h: Spell `snippet' correctly. Reported by Stefano Lattarini. tests: make sure file restore traps are called correctly on AIX. * tests/demo-noinst-link.test (func_save_files): set the restore trap outside a function, otherwise AIX 5.3 /bin/sh will run the trap at the end of the function, instead of when the script exits. * tests/demo-relink.test (func_save_files): Ditto. * tests/depdemo-relink.test (func_save_files): Ditto. Reported by Stefano Lattarini. maint: eliminate some more spurious leading Xs. * m4/libtool.m4: Reverse argument order to eliminate spurious leading X's. bootstrap: put back missing spaces before parens. * bootstrap (func_require_buildreq_autobuild) (func_require_buildreq_automake): Vi's delete word command is too greedy and also eats trailing whitespace before following non-word-chars. Put back the spaces it ate so that syntax-checks pass once again. libtoolize: refactor copying filter creation. Prevent the various require_filter functions from becoming too long by factoring common code into new functions. * libtoolize (func_make_relative_dir_filter) (func_make_relative_ltdl_filter): New functions. Generalize and consolidate the various similar snippets for concatenating together the sed scripts for func_copy filtering. (require_filter_Makefile_am, require_filter_aclocal_m4) (require_filter_configure_ac): Simplify. (require_ltdl_relative_aux_dir): Remove. (require_ltdl_relative_macro_dir): Ditto. maint: pick XSI funcs at runtime, not configure time. Determine, on a function by function basis, what XSI features are available in the shell that is actually running the script, rather than the one that was picked at configure time by the re-execution engine. * m4/libtool.m4 (_LT_PROG_FUNCTION_REPLACE) (_LT_PROG_REPLACE_SHELLFNS): Remove. (_LT_CHECK_SHELL_FEATURES): Remove tests for XSI and += support. * build-aux/general.m4sh (func_append, func_append_quoted) (func_arith, func_len, func_basename, func_dirname) (func_dirname_and_basename, func_stripname): List both enhanced and fallback implementations, and choose one based on whether the enhanced features required by the fastest version are available. * build-aux/getopt.m4sh (func_split_short_opt) (func_split_long_opt): Ditto. * build-aux/ltmain.m4sh (func_lo2o, func_xform): Ditto. * tests/getopt-m4sh.at: Add tests for enhanced and fallback implementations of func_arith, func_len, func_stripname and func_dirname_and_basename. * NEWS: Updated. maint: share useful functions from general.m4sh. * build-aux/ltmain.m4sh (func_append, func_append_quoted) (func_arith, func_len): Removed from here... * build-aux/general.m4sh (func_append, func_append_quoted) (func_arith, func_len): ...and added to here. (func_dirname, func_dirname_and_basename, func_normal_abspath) (func_relative_path): Use func_append. * tests/getopt-m4sh.at (_LT_AT_FALLBACK_FUNC_EXTRACT): Removed. Fallback functions are now in any m4sh generated file automatically. libtoolize: reorder function definitions to keep func_filter_* together. * libtoolize: Restore asciibetical order, so that all the filter function definitions are together. libtoolize: use _filter as a prefix for better ordering. * libtoolize.m4sh (require_Makefile_am_filter) (require_ltdl_mk_filter, require_aclocal_m4_filter) (require_configure_ac_filter): Rename these functions from this... (require_filter_Makefile_am, require_filter_ltdl_mk) (require_filter_aclocal_m4, require_filter_configure_ac): ...to this, respectively. Adjust all callers. (Makefile_am_filter, ltdl_mk_filter, aclocal_m4_filter) (configure_ac_filter): Rename these global variables from this... (filter_Makefile_am, filter_ltdl_mk, filter_aclocal_m4) (filter_configure_ac): ...to this, respectively. libtoolize: rename ltdl.mk filter function. * libtoolize.m4sh (require_Makefile_inc_filter): Rename from this... (require_ltdl_mk_filter): ...to this. Adjust all callers. bootstrap: escape quotes properly in generated functions. * bootstrap: Although not a real bug, for consistency, be sure to correctly escape single quotes inside a single quoted function generator. bootstrap: reorder function definitions to keep func_buildreq_* together. * bootstrap: Restore asciibetical order, so that all the buildreq function definitions are together. bootstrap: use _buildreq as a prefix for better ordering. * bootstrap (require_autobuild_buildreq) (require_autoconf_buildreq, require_automake_buildreq) (require_autopoint_buildreq, require_libtoolize_buildreq) (require_patch_buildreq): Rename from these... (require_buildreq_autobuild, require_buildreq_autoconf) (require_buildreq_automake, require_buildreq_autopoint) (require_buildreq_libtoolize, require_buildreq_patch): ...to these, respectively. Adjust all callers. bootstrap: ensure consistent function header comments. * bootstrap (require_bootstrap_uptodate) (require_buildtools_uptodate): Use `require_...' in header comment for these functions to be consistent with the rest, rather than `func_require_...'. bootstrap: make sure patch is available to bootstrap if necessary. Make sure we're not lacking any functionality provided by the incumbent gnulib bootstrap script, and where it's easy to do so (like it is here), provide better functionality! * bootstrap (require_patch): Make sure that PATCH expands to the best `patch' command available on the system, honouring overrides in the users environment. (require_patch_buildreq): Automatically add a requirement for a patch command to buildreq when there are diff files in $local_gl_dir. (func_require_buildtools_uptodate): Call require_patch_buildreq before testing build tool versions. (func_gnulib_tool_copy_file): Make sure PATCH is set before using gnulib-tool to copy files. 2011-11-26 Gary V. Vaughan m4: fix logic error leading to -fno-rtti being added wrongly. * m4/libtool.m4 (_LT_COMPILER_OPTION): Negate comparison so that compiler flags are added correctly. maint: Fix generated ChangeLog typos. * build-aux/git-log-fix: Spell Stefano Lattarini's name correctly. Don't use my home email address for GNU commits. 2011-11-25 Gary V. Vaughan syntax-check: fix violations and implement sc_useless_braces_in_variable_derefs. Until now, libtool sources have used braced variable names seemingly at random! Almost always the braces are just noise, so remove all the unnecessary ones. * cfg.mk (sc_useless_braces_in_variable_derefs): New syntax check rule to ensure we only reintroduce braced variable dereferences if they are followed by a valid variable name character. build-aux/general.m4sh, build-aux/git-hooks/commit-msg, build-aux/ltmain.m4sh, build-aux/options-parser, configure.ac, libltdl/configure.ac, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, tests/defs.m4sh, tests/demo-nopic.test, tests/depdemo/configure.ac, tests/flags.at, tests/link.test, tests/objectlist.test, tests/quote.test, tests/static.at: Remove spurious braces. syntax-check: fix violations and implement sc_prohibit_sed_s_comma. I like to name temporary directories that I will remove shortly with two leading commas so that they sort lexicographically at the top of `ls' output. Now, `./configure --prefix=`pwd`/,,inst' works again, for the first time in several years. * cfg.mk (sc_prohibit_sed_s_comma): Comma is too common a character to use routinely as the separator for sed substitutions on file paths and other variables determined by the user, causing bugs like the one I describe above. Make sure we don't accidentally reintroduce any comma separators in future. * Makefile.am, bootstrap, bootstrap.conf, build-aux/extract-trace, build-aux/general.m4sh, build-aux/git-hooks/commit-msg, build-aux/git-log-fix, build-aux/ltmain.m4sh, libtoolize.m4sh, m4/libtool.m4, m4/ltdl.m4, tests/cdemo-undef.test, tests/cmdline_wrap.at, tests/darwin.at, tests/defs.m4sh, tests/getopt-m4sh.at, tests/install.at, tests/libtoolize.at, tests/mdemo/Makefile.am, tests/need_lib_prefix.at, tests/sysroot.at, tests/tagdemo-undef.test, tests/testsuite.at: Try to use `|' as the default separator wherever possible, otherwise something else that doesn't occur in the substitution expression. * NEWS: Updated. syntax-check: fix violations and implement sc_prohibit_bare_basename. * cfg.mk (sc_prohibit_bare_basename, sc_prohibit_basename_with_sed): Make sure not to go back to using occasional `|$basename' or `|$dirname' syntax. * build-aux/git-hooks/commit-msg, build-aux/ltmain.m4sh, * build-aux/options-parser, tests/fcdemo-conf.test, * tests/fcdemo-shared.test, tests/fcdemo-static.test, * tests/libtoolize.at: Fix violations. tests: migrate tests/sh.test checks to syntax-checks. Some modernization of the legacy testsuite. * tests/sh.test: Remove. * Makefile.am (COMMON_TESTS): Adjust. * cfg.mk (sc_libtool_m4_cc_basename, sc_prohibit_bracket_as_test) (sc_prohibit_nested_quotes, sc_prohibit_set_dummy_without_shift) (sc_prohibit_set_minus_minus, sc_prohibit_test_binary_operators) (sc_prohibit_test_dollar, sc_prohibit_test_minus_e) (sc_prohibit_test_unary_operators, sc_prohibit_test_X) (sc_prohibit_Xsed_withou_X, sc_require_function_nl_brace): Functionally identical tests to what used to be performed by sh.test, only with coverage of all files. * bootstrap, build-aux/edit-readme-alpha, build-aux/extract-trace, build-aux/getopt.m4sh, build-aux/ltmain.m4sh, configure.ac, m4/libtool.m4, m4/ltdl.m4, tests/bindir.at, tests/configure-iface.at, tests/cwrapper.at, tests/darwin.at, tests/defs.m4sh, tests/demo-hardcode.test, tests/dlloader-api.at, tests/exceptions.at, tests/getopt-m4sh.at, tests/lalib-syntax.at, tests/link-2.test, tests/link-order2.at, tests/loadlibrary.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/lt_dlopen_a.at, tests/lt_dlopenext.at, tests/need_lib_prefix.at, tests/nonrecursive.at, tests/recursive.at, tests/resident.at, tests/standalone.at, tests/static.at, tests/stresstest.at, tests/subproject.at, tests/sysroot.at, tests/tagtrace.test, tests/testsuite.at: Fix violations of the new syntax checks. syntax-check: fix violations and implement sc_useless_quotes_in_assignment. Contrary to popular belief, Bourne shell does not resplit RHS of assignments after expansion, so if there are no unquoted shell metacharacters or whitespace, the quotes are useless. * cfg.mk (_sc_search_regexp_or_exclude): A variation of gnulib's _sc_search_regexp that also allows individual exclusions at the site of what would otherwise match by adding a comment. (sc_useless_quotes_in_assignment): New syntax-check rule to ensure we don't reintroduce useless quoted assignments. * bootstrap, bootstrap.conf, build-aux/edit-readme-alpha, build-aux/general.m4sh, build-aux/getopt.m4sh, build-aux/ltmain.m4sh, build-aux/options-parser, configure.ac, doc/libtool.texi, libtoolize.m4sh, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, tests/cwrapper.at, tests/defs.m4sh, tests/lalib-syntax.at, tests/libtoolize.at, tests/lt_dlopenext.at, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/need_lib_prefix.at, tests/no-executables.at, tests/quote.test, tests/suffix.test: Remove spurious quotes. syntax-check: fix violations and implement sc_useless_quotes_in_case. Contrary to popular belief, Bourne shell does not resplit case expressions after expansion, so if there are no unquoted shell metacharacters or whitespace, the quotes are useless. * cfg.mk (sc_useless_quotes_in_case): New syntax-check rule to ensure we don't reintroduce useless quoted case expressions. * build-aux/ltmain.m4sh, m4/libtool.m4, tests/bindir.at, tests/darwin.at, tests/defs.m4sh, tests/demo-hardcode.test, tests/demo-nopic.test, tests/link-2.test, tests/quote.test, tests/sysroot.at: Remove spurious quotes. maint: quote $file correctly in bootstrap. * bootstrap (func_insert_sorted_if_absent): Don't forget the double quotes, since we can't control the content of $file. Reported by Stefano Lattarini. build: fix a quoting bug when regenerating with bootstrap_edit. * Makefile.am (m4/ltversion.m4, build-aux/ltmain.sh): The bootstrap_edit make macro already contains double quotes, so when echoing it, don't surround it with more double quotes since it is not escaped. 2011-11-17 Gary V. Vaughan dist: hook syntax-check into `make distcheck'. To make sure we don't accidentally release anything with failing syntax-checks, have `make distcheck' run the syntax-checks automatically. * Makefile.am (distcheck-hook): New rule depending on syntax-check. syntax-check: enable sc_prohibit_always_true_header_tests. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_always_true_header_tests from list of disabled checks, because it no longer flags any violations. syntax-check: enable sc_program_name. * cfg.mk (local-checks-to-skip): Remove sc_program_name list of disabled checks. (exclude_file_name_regexp--sc_program_name): Don't check demo programs for use of set_program_name. syntax-check: enable sc_bindtextdomain. * cfg.mk (local-checks-to-skip): Remove sc_bindtextdomain list of disabled checks. (exclude_file_name_regexp--sc_bindtextdomain): Don't check demo programs for use of bindtextdomain. syntax-check: fix violations and implement sc_trailing_blank-non-rfc3676. * cfg.mk (local-checks-to-fix): Move sc_trailing_blank from here... (local-checks-to-skip): ...to here, because otherwise it flags valid RFC3676 signature blocks. (sc_trailing_blank-non-rfc3676): An improved sc_trailing_blank implementation that doesn't flag signature blocks as violations. * Makefile.am, bootstrap.conf, doc/PLATFORMS, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4, libltdl/m4/lt~obsolete.m4, tests/archive-in-archive.at, tests/convenience.at, tests/darwin.at, tests/depdemo/l1/l1.c, tests/depdemo/l2/l2.c, tests/depdemo/l3/l3.c, tests/depdemo/l4/l4.c, tests/f77demo/README, tests/f77demo/cprogram.c, tests/f77demo/foof.f, tests/f77demo/foof2.f, tests/f77demo/foof3.f, tests/f77demo/fprogram.f, tests/fcdemo/README, tests/fcdemo/cprogram.c, tests/fcdemo/foof.f90, tests/fcdemo/foof2.f90, tests/fcdemo/foof3.f90, tests/fcdemo/fprogram.f90, tests/mdemo/README, tests/mdemo/main.c, tests/mdemo/mlib.c, tests/objectlist.test, tests/static.at, tests/template.at, tests/testsuite.at: Remove trailing blanks. syntax-check: fix violations and re-enable sc_useless_cpp_parens. * cfg.mk (local-checks-to-fix): Remove sc_useless_cpp_parens from list of disabled checks. * doc/libtool.texi, libltdl/argz.c, libltdl/argz_.h, build-aux/ltmain.m4sh, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/shl_load.c, libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/m4/libtool.m4, tests/demo/foo.h, tests/depdemo/sysdep.h, tests/exceptions.at, tests/export.at, tests/pdemo/foo.h, tests/stresstest.at: Remove useless parens in cpp `#if defined(foo)' statements. syntax-check: fix violations and re-enable sc_space_tab. * cfg.mk (local-checks-to-fix): Remove sc_space_tab from list of disabled checks. (exclude_file_name_regexp--sc_space_tab): Don't flag space-tab sequences in diff files as an error. * Makefile.am, build-aux/general.m4sh, build-aux/git-hooks/commit-msg, build-aux/ltmain.m4sh, libltdl/loaders/dyld.c, libltdl/loaders/shl_load.c, libltdl/ltdl.h, libltdl/ltdl.mk, libltdl/slist.c, libtoolize.m4sh, m4/ltoptions.m4, tests/demo/dlmain.c, tests/depdemo/main.c, tests/libtoolize.at, tests/lt_dladvise.at, tests/pdemo/longer_file_name_dlmain.c, tests/sh.test, tests/static.at, tests/stresstest.at, tests/template.at: Fix space-tab sequences by reversing them in regexps, and deleting leading spaces in indentation. syntax-check: fix violations and re-enable sc_prohibit_undesirable_word_seq. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_undesirable_word_seq from list of disabled checks. * doc/libtool.texi, build-aux/ltmain.m4sh, libltdl/m4/libtool.m4, libtoolize.m4sh: Replace all uses of "can not" with "cannot". syntax-check: fix violations and re-enable sc_probibit_test_minus_ao. * cfg.mk (local-checks-to-fix): Remove sc_probhibit_test_minus_ao from list of disabled checks. (exclude_file_name_regexp--sc_prohibit_tests_minus_ao): The matches from this syntax-check in libtool.m4 are all bogus. syntax-check: fix violations and re-enable sc_prohibit_strcmp. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_strcmp from list of disabled checks. (exclude_file_name_regexp--sc_prohibit_strcmp): Ignore violations in libtool.texi and any demo C files. * libltdl/libltdl/lt__private.h (strneq, streq): Renamed from this... (STRNEQ, STREQ): ..to this. Adjust all callers. * tests/slist.at: Add STREQ definition. Change all !strcmp calls to STREQ. * build-aux/ltmain.m4sh (func_emit_cwrapperexe_src): Add and use STREQ definition. syntax-check: fix violations and re-enable sc_prohibit_stddef_without_use. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_stddef_without_use from list of disabled checks. * libltdl/argz.c, libltdl/lt__dirent.c, libltdl/slist.c: Remove spurious stddef.h #include lines. syntax-check: fix violations and re-enable sc_prohibit_magic_number_exit. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_magic_number_exit from list of disabled checks. * ltmain.c: Removed unused file. syntax-check: fix violations and re-enable sc_prohibit_have_config_h. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_have_config_h from list of disabled checks. * tests/f77demo/foo.h, tests/fcdemo/foo.h: Remove spurious HAVE_CONFIG_H guards for #include . syntax-check: fix violations and re-enable sc_prohibit_empty_lines_at_EOF. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_empty_lines_at_EOF from list of disabled checks. * THANKS, libltdl/argz.c, libltdl/config/getopt.m4sh, tests/f77demo/README, tests/f77demo/cprogram.c, tests/f77demo/fprogram.f, tests/fcdemo/README, tests/fcdemo/cprogram.c, tests/libtoolize.at, tests/mdemo/README, tests/mdemo2/README, tests/pdemo-inst.test: Remove spurious empty lines from the end of these files. syntax-check: fix violations and re-enable sc_prohibit_doubled_word. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_doubled_word from list of disabled checks. * build-aux/general.m4sh (func_quote_for_eval): Remove one of a pair of "and"s in a comment. * tests/lt_dladvise.at (hint_global): Remove one of a pair of consecutive "to"s split across lines in a comment. syntax-check: fix violations and re-enable sc_prohibit_cvs_keyword. * cfg.mk (local-checks-to-fix): Remove sc_prohibit_cvs_keyword from list of disabled checks. * tests/tagdemo/README: Remove spurious CVS keyword. syntax-check: fix violations and re-enable sc_makefile_at_at_check. At some point we were supporting some undetermined `broken make', as evidenced by having carried the following code since 2003: ## use @LIBLTDL@ because some broken makes do not accept ## macros in targets, we can only do this because our LIBLTDL ## does not contain $(top_builddir). @LIBLTDL@: $(top_distdir)/libtool \ ... However, we've also had *many* cases of macros in targets for just as long, so most likely we never fully supported makes allegedly broken in this way. As of this release, we explicitly no longer support make implementations that do not accept macros in targets. * cfg.mk (local-checks-to-fix): Remove sc_makefile_at_at_check from list of disabled checks. * configure.ac (order-only prerequisites): Test with the order-only pipe symbol in a macro. * Makefile.am, tests/mdemo/Makefile.am: Convert all @FOO@ to $(FOO). syntax-check: fix violations and re-enable sc_makefile_TAB_only_indentation. * cfg.mk (local-checks-to-fix): Remove sc_makefile_TAB_only_indentation from list of disabled checks. * Makefile.am (libltdl/Makefile.am): Replace leading spaces with TABs. * libltdl/Makefile.am (libltdl_libltdl_la_SOURCES): Ditto. syntax-check: fix violations and re-enable sc_m4_quote_check. * cfg.mk (local-checks-to-fix): Remove sc_m4_quote_check from list of disabled checks. * libltdl/m4/libtool.m4 (_LT_CHECK_OBJDIR): Quote LT_OBJDIR correctly. syntax-check: fix violations and re-enable sc_file_system. * cfg.mk (local-checks-to-fix): Remove sc_file_system from list of disabled checks. (VC_LIST_ALWAYS_EXCLUDE_REGEX): Match mail directory correctly to avoid running its contents through syntax-check. * build-aux/ltmain.m4sh (func_mode_link): Use correct spelling for "file system". * libltdl/ltdl.c (try_dlopen): Ditto. * tests/dlloader-api.at: Ditto. syntax-check: fix violations and re-enable sc_error_message_uppercase. * cfg.mk (local-checks-to-fix): Remove sc_error_message_uppercase from list of disabled checks. (exclude_file_name_regexp--sc_error_message_uppercase): Don't match cvsu, which is not our file to edit. * doc/libtool.texi: Use lowercase error message in example. syntax-check: rationale for disabling sc_cast_of_x_alloc_return_value. * cfg.mk: Note that we support C++ compilation of libltdl, which in turn requires that *alloc return values be cast correctly. syntax-check: fix violations and re-enable sc_cast_of_argument_to_free. * cfg.mk (local-checks-to-fix): Remove sc_cast_of_argument_to_free from list of disabled checks. * build-aux/ltmain.m4sh, libltdl/libltdl/lt__alloc.h, libltdl/lt__dirent.c: Casting argument to free is never necessary. syntax-check: fix violations and re-enable sc_avoid_if_before_free. * cfg.mk (local-checks-to-fix): Remove sc_avoid_if_before_free from list of disabled checks. According to gnulib/doc/free.texi: "On old platforms such as SunOS4, @code{free (NULL)} fails. However, since all such systems are so old as to no longer be considered ``reasonable portability targets,'' this module is no longer useful." * libltdl/libltdl/lt__alloc.h (FREE, MEMREASSIGN): Don't protect against freeing NULL bug on SunOS4. syntax-check: skip sc_unmarked_diagnostics. * cfg.mk (local-checks-to-fix): Move sc_unmarked_diagnostics from here... (local-checks-to-skip): ...to here. libtoolize: rename `libltdl/config' directory to standard `build-aux'. In addition to moving the autoconf auxiliary script directory into the place expected by GNU developers ($top_srcdir/build-aux) we also simplify libtoolize somewhat by having libltdl use whatever directory was specified by the parent project. This is much more flexible, allows libltdl client projects to also use a single canonical `$top_srcdir/build-aux' auxiliary script directory, and maintains backward compatibility with existing projects that wish to continue using $ltdl_dir/config. * libltdl/config: Moved whole directory from here... * build-aux: ...to here. * libtoolize.m4sh (func_install_pkgaux_subproject): Remove. (func_install_pkgaux_parent): Remove. (func_install_pkgaux_files): Considerably simplified now that we have only a single auxiliary directory to worry about. (subproject_aux_dir): Remove. * bootstrap.conf (libtool_readme_release_package_substitutions): No need to substitute our old unusual aux_dir location into README-release any more. * cfg.mk (_build-aux): Now that we use the standard location for this directory, no need to set this variable either. * configure.ac (AC_INIT): git-version-gen has moved. (AC_CONFIG_AUX_DIR): Adjust. * Makefile.am (stamp-mk, auxexefiles, auxfiles) (install-data-local): Use build-aux instead of config. (libltdl/stamp-mk): Ditto. * libltdl/configure.ac, tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/fcdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto. * tests/defs.m4sh (aux_dir): Ditto. * tests/configure-iface.at, tests/getopt-m4sh.at, tests/libtoolize.at, tests/subproject.at, tests/testsuite.at: Ditto. * Makefile.am (ltdl_ac_aux_dir): Extract at build-time... * libtoolize.m4sh (require_ltdl_ac_aux_dir): ...so that libtoolize can access it at runtime without requiring GNU M4 via the extract-trace script. (require_Makefile_am_filter): Use it to determine whether the aux_dir declared in the current (parent) project configure is compatible with the declarations in installed ltdl autotools source files. (require_configure_ac_filter): New function to perform similar checks and rewrite configure.ac during installation if necessary. * NEWS: Updated. libtoolize: aux scripts go in ltdl dir when parent has no configure. When using libtoolize to install subproject libltdl into a parent project that does not use autotools, set the default directory for auxiliary scripts inside libltdl rather than littering the parent project with files it doesn't use. * libtoolize.m4sh (func_require_ac_aux_dir): In verbose mode, report results like other require_ funcs. (func_require_aux_dir): Put subproject auxiliary files into ltdl directory where libltdl/configure will be able to find `install-sh' and others. libtoolize: simplify runtime by substituting pkgauxdir. * Makefile.am (configure_edit): Substitute pkgauxdir. * libtoolize.m4sh (func_install_pkgaux_subproject) (func_install_pkgaux_parent, extract_trace): Use it. libtoolize: generate require_ltdl_relative_aux_dir definition. * libtoolize.m4sh (require_ltdl_relative_macro_dir): Change to be generated function... (require_ltdl_relative_aux_dir): ...so that we can easily generate this very similar function from the same code. libtoolize: rename `libltdl/m4' directory to standard `m4'. In addition to moving the autoconf macro directory into the place expected by GNU developers ($top_srcdir/m4), we also simplify libtoolize somewhat by having libltdl use whatever directory was specified by the parent project. This is much more flexible, allows libltdl client projects to also use a single canonical `$top_srcdir/m4' macro directory, and maintains backward compatibility with existing projects that wish to continue using $ltdl_dir/m4. * libltdl/m4: Moved to it's parent directory. * Makefile.am (ACLOCAL_AMFLAGS, BUILDCHECK_ENVIRONMENT) (libltdl/Makefile.am, libltdl/aclocal.m4): Adjust. * configure.ac (AC_CONFIG_MACRO_DIR): Adjust. * libltdl/configure.ac (AC_CONFIG_MACRO_DIR): Remove. The libtoolize script can pick up the project macro directory from ACLOCAL_AMFLAGS in libltdl/Makefile.am, saving us from needing to regenerate configure for the sake of a different macro directory declared in the libltdl using client project. * libtoolize.m4sh (func_install_pkgmacro_subproject): Remove. (func_install_pkgmacro_parent): Remove. (subproject_macro_dir): Remove. (require_libltdl_Makefile_am, require_ltdl_aclocal_amflags) (require_ltdl_am_macro_dir): New functions, generated at runtime by adding libltdl/Makefile.am to the generation loop. (func_install_pkgmacro_files): Considerably simplified now that we have only a single macro directory to worry about. (require_ltdl_relative_macro_dir): New function. Calculate the relative path from $ltdl_dir to the parent project macro_dir. (require_Makefile_am_filter): Depending on $ltdl_mode, edit Makefile.am ACLOCAL_AMFLAGS to use the parent project macro directory if necessary. (require_aclocal_m4_filter): Make sure m4_includes point to the correct macro directory by editing the file as it is copied into the parent project. (func_install_pkgltdl_files): Use the filters. (func_check_macros): Remove various advice that no longer applies with an always shared macro directory. (func_require_ltdl_dir): Don't default ltdl_dir to subproject when `--ltdl' was not given. (func_require_ltdl_mode): Leave ltdl_mode empty when ltdl_dir is not set. (func_require_macro_dir): Default to $ltdl_dir/m4 in subproject mode with no other directory implied by AC_CONFIG_MACRO_DIR or ACLOCAL_AMFLAGS, otherwise m4 as before. * tests/libtoolize.at: Match new "creating file `Makefile.am'" messages correctly. (subproject ltdl with non-shared directories): This test no longer makes sense, so repurposed... (subproject ltdl with non-canonical macro dir): ...this, to ensure subproject ltdl continues to automatically share the parent macro directory. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Use new location of macro_dir. * NEWS: Updated. libtoolize: rename `Makefile.inc' to standard `ltdl.mk'. * libltdl/Makefile.inc: Moved from here... * libltdl/ltdl.mk: ...to here. * Makefile.am, bootstrap.conf, tests/libtoolize.at, tests/nonrecursive.at: Adjust. * libtoolize.m4sh (func_install_pkgltdl_files): Set the destination file to `Makefile.inc' if grep finds an include for that name in a top-level Makefile.am. (func_check_macros): Print a deprecation warning if use of the old `Makefile.inc' convention is found. * tests/old-ltdl-iface.at: New test for renaming and warning correctly when `Makefile.inc' convention is still in use. * NEWS: Updated. libtoolize: refactor ACLOCAL_AMFLAGS extraction. Another simple refactor to simplify following changesets. * libtoolize.m4sh (require_Makefile_am, require_aclocal_amflags) (require_am_macro_dir): Generate these functions at runtime. libtoolize: rename require_makefile_am to require_Makefile_am. A simple refactoring to keep the next change self-contained. * libtoolize.m4sh (require_makefile_am): Renamed from this... (require_Makefile_am): ...to this. libtoolize: simplify copying of files that are edited during install. * libltdl/Makefile.inc (EXTRA_DIST): Don't list autotools files that Automake automatically adds to a (subproject) distribution... * Makefile.am (EXTRA_DIST): ...although, our layout is a bit odd because we reuse libltdl/Makefile.inc in non-recursive mode in our own tree, so we do need to add those very same files here... * libtoolize.m4sh (require_Makefile_am_filter) (require_Makefile_inc_filter): ...all of which means we no longer need to manually remove those files at libtoolize time. These two new functions are factored out of... (func_fixup_Makefile): ...this old function, now removed. (func_copy): Add support for an optional sed script as the last argument to filter the content of a file as it is copied. (func_install_pkgltdl_files): Much simplified by $require_ the relevant filter scripts and passing them to func_copy. libtoolize: simplify file-copying and -linking call-graph. * libtoolize.m4sh (TAR): Remove. (func_copy_some_files, func_copy_cb): Remove. (func_copy): Refactor from all of the above, and simplify. No need to use $TAR to preserve timestamps when copying, since we've been running touch right afterwards anyway. Adjust all callers to use the new argument footprint. (func_serial_update, func_keyword_update): Delete any pre- existing destination file when used with `--force' before calling func_copy, now that the hardcoded special cases are not in there any more. (func_install_pkgmacro_subproject) (func_install_pkgaux_subproject): Use our own file loop - func_copy subsumes all the checks previously in func_copy_some_files, but operates on only one file at a time. (func_install_pkgltdl_files): Similarly, handle aclocal.m4 and configure special cases here, before calling func_copy. * tests/libtoolize.at: Make sure we match corrected "copying `configure.ac'" output. maint: generate full and correct ChangeLog. * gnulib: Updated to pick up gitlog-to-changelog multi-author support. * gl/build-aux/gitlog-to-changelog.diff: Use gnulib-rejected patch for '(tiny change)' support. * Makefile.am (ChangeLog): Use gitlog-to-changelog --amend=F option. * libltdl/config/git-hooks/commit-msg: New commit message hook for git. * libltdl/config/git-log-fix: New file, with ChangeLog fixes. * HACKING (Using git): Update. 2011-11-16 Gary V. Vaughan options-parser: provide a saner pluggable API. It's much too easy to forget that the functions you hook into the option parser need to return unconsumed options in the variable `func_run_hooks_result'; better to follow the convention used in the rest of bootstrap and return results in a variable named after the function with `_result' appended. * libltdl/config/options-parser (func_run_hooks): implement this new API. (Option parsing): Update the example in the header comment for this section to reflect the changes. * bootstrap (bootstrap_options_prep, bootstrap_parse_options) (bootstrap_validate_options): Adjust. * bootstrap.conf (libtool_options_prep, libtool_parse_options) (libtool_validate_options): Ditto. bootstrap: display accurate usage message. After splitting bootstrap up, we also lost bootstrap's usage message, and were incorrectly displaying a partial extract-trace message. * bootstrap (usage): Set appropriately. bootstrap: accept --gnulib-srcdir=/path/to/gnulib again. During the split of bootstrap into options-parser and extract-trace, the generic long-option splitting code got lost. * libltdl/config/options-parser (func_parse_options): Add the code to split any long option separated by an equals from its optarg back in. Reported by Roumen Petrov. 2011-11-15 Gary V. Vaughan gnulib: update gnulib submodule. Among others, this fixes a bug in _build-aux expansion so that `make syntax-check' works again. * gnulib: Updated to today's master HEAD revision. * gl/top/maint.mk.diff: Remove. This patch has been applied upstream already. libtoolize: remove NL2SP and initialisation. There's only a single use of NL2SP, and that is redundant. * libtoolize.m4sh (func_serial_update): Factor away use of NL2SP. (NL2SP, SP2NL): Remove initialisation. bootstrap: remove consumed options from the list to be processed. Fix a bug where processed bootstrap options were not removed from the queue, and eventually flagged as unknown in the pluggable option parser driver. * bootstrap (bootstrap_parse_options) (bootstrap_validate_options): Follow the pluggable option parser API correctly, and set func_run_hooks_result to the list of remaining unconsumed options. Reported by Roumen Petrov. 2011-11-14 Gary V. Vaughan libtoolize: refactor $opt_quiet, func_echo and func_echo_once. Instead of long sequences checking for setting of $opt_quiet, followed by one or more func_echo variations, add and use a new function func_whisper - the complement of func_verbose. * libtoolize.m4sh (func_whisper): New function. Adjust all callers previously using `$opt_quiet || func_echo ...'. (func_whisper_once): Ditto, for `$opt_quiet || func_echo_once ...'. (func_whisper_hdr): New function, adjust all callers previously using `func_whisper_once ...; func_whisper ...'. (func_whisper_error_header): Ditto, but calling func_error. (func_echo_once): Remove. libtoolize: update a bit-rotted comment. * libtoolize (func_copy_cb): Since this comment was written, the function has been changed to timestamp files as it copies. Update the comment to reflect that. general.m4sh: relative path to the same directory is `.'. * general.m4sh (func_relative_path): We sometimes want to use the result of this function directly, rather than purely as a prefix, so we need to return `.' when both directories end up at the same location. ltmain.sh: append relative path trailing slashes explicitly. In addition to being more idiomatic, and hence minimising suprises, seeing the slash written explicity when appending to the result of a relative path calculation is a lot more readable. * libltdl/config/general.m4sh (func_relative_path): Don't append an implicit trailing slash... * libltdl/config/ltmain.m4sh (func_mode_link): ...write it explicitly at the time of use. 2011-11-09 Gary V. Vaughan build: use pkgauxdir for local install and uninstall rules. * Makefile.am (pkgauxdir): Set it correctly. (uninstall-hook): Use it for pkgaux_scripts and pkgaux_data_files. (install-data-local): Ditto. Remove `config/' prefix from extract-trace and option-parser items. 2011-11-08 Gary V. Vaughan install: correct a typo in pkgaux_files location. * Makefile.am (install-data-local): Install pkgaux_files directly from $(aux_dir) [./libltdl/config at the moment]. libtoolize: order pkgltdl_files to avoid reconfiguration. * Makefile.am (pkgltdl_files): aclocal.m4 depends on configure.ac, and will cause spurious reconfiguration of freshly `libtoolize --ltdl' tree if we don't ensure configure.ac is the older of these two files. * tests/libtoolize.at: Adjust expout order to match. build: remove an over-exuberant $(srcdir) prefix. * Makefile.am (git_version_gen): No need for an extra $(srcdir) in the path when we always use after `cd $(srcdir). libtoolize: massage installed auxiliary script list at make time. * Makefile.am (configure_edit): Rename pkgconfig_files substitution to pkgaux_files, and add pkgaux_install_files and pkgaux_parent_files substitutions for atlocal. (pkgauxdir): Where to install pkgaux_files. (auxfiles): Removed, and replaced by... (pkgaux_parent_files, pkgaux_install_files, pkgaux_data_files): ...these, which separate the files lists more logically for easier installation, and use by libtoolize.m4sh. (uninstall-hook): Adjust. (tests/atlocal): Adjust. * bootstrap.conf (libtool_link_libltdl_subdirs): Adjust. * libtoolize.m4sh (func_install_pkgconfig_files) (func_install_pkgconfig_subproject) (func_install_pkgconfig_parent, func_install_pkgconfig_files) (all_pkgconfig_files): Renamed to... (func_install_pkgaux_files, unc_install_pkgaux_subproject) (func_install_pkgaux_parent, func_install_pkgaux_files) (all_pkgaux_files): ...these, resp. Adjust all callers. (func_massage_pkgconfig_files): Removed. (pkgaux_files): List of all auxiliary scripts substituted from Makefile. libtoolize: massage installed libltdl file list at make time. * libtoolize.m4sh (pkgltdldir, pkgdatadir): Put installable libltdl files in pkgdatadir. When testing, and _lt_pkgdatadir is set, adjust to look in libltdl subdirectory. (func_massage_pkgltdl_files): Removed function and only caller, because... (pkgltdl_files): ...we substitute the pre-massaged files directly... (func_install_pkgltdl_files): ...from here. Adjust installation of specially handled additional files. * Makefile.am (ltdldir): Location of libltdl files in source tree. (ltdldest, ltdldatafiles): Removed. (pkgltdl_files): New pre-massaged list of libltdl sources. (install-data-local, uninstall-hook): Use it. * tests/libtoolize.at: Reorder expected output to match actual libtoolize output. libtoolize: massage installed macro list at make time. * libtoolize.m4sh (func_massage_aclocal_DATA): Removed function and only caller, because... (pkgmacro_files): ...we substitute the pre-massaged files directly... (func_install_pkgmacro_files): ...from here. * Makefile.am (pkgmacro_files): New pre-massaged list of aclocal macros used by func_install_pkgmacro_files. (configure_edit): Substitute pkgmacro_files instead of aclocalfiles. libtoolize: use only space delimited file lists. We don't install any files with whitespace in their file name, so using colon delimited lists to make that possible was a premature optimisation and an unneeded complication. * libtoolize.m4sh (func_copy_some_files): Remove IFS twiddling, and just pull space delimited files in a for loop idiomatically. (func_massage_aclocal_DATA, func_install_pkgmacro_subproject) (func_install_pkgmacro_parent, func_install_pkgmacro_files) (func_massage_pkgltdl_files, func_massage_pkgconfig_files): Append to file lists with space delimiter. libtoolize: remove sed based configure scanning. * libtoolize (func_scan_files): Removed function and callers. (require_seen_ltdl, require_seen_libtool): Factor out remaining functionality of former sed based scanning. (func_check_macros): Adjust. * NEWS: Updated. libtoolize: refactor ltdl_mode discovery. * libtoolize.m4sh (require_ac_ltdl_mode) (require_ac_ltdl_options, require_ltdl_mode): New functions factored out of func_scan_files for scanning and setting ltdl_mode and friends. (func_scan_files): Remove the factored out code. (func_install_pkgmacro_files, func_install_pkgltdl_files) (func_install_pkgconfig_files, func_check_macros): Adjust. libtoolize: refactor ltdl_dir discovery. * libtoolize.m4sh (require_ac_ltdl_dir, require_ltdl_dir): New functions factored out of func_scan_files for scanning and setting ac_ltdl_dir and ltdl_dir resp. (func_scan_files): Remove the factored out code. (func_fixup_Makefile, func_serial_update_check) (func_install_pkgltdl_files, func_install_pkgconfig_subproject) (func_check_macros): Adjust. libtoolize: refactor aux_dir discovery. * libtoolize.m4sh (require_ac_aux_dir, require_aux_dir): New functions factored out of func_scan_files for scanning and setting aux_dir and friends. (func_scan_files): Remove the factored out code to scan configure.ac with sed, and then set macro_dir appropriately. (func_install_pkgconfig_subproject, func_install_pkgconfig_parent) (func_install_pkgmacro_files, func_check_macros): Adjust. libtoolize: install autoconf macros only if there is a $configure_ac. * libtoolize.m4sh (func_install_pkgmacro_files): If there is no $configure_ac in the parent project directory, and libtoolize is in subproject mode, then the parent project has no use for autoconf macros, so don't install them. * NEWS: Updated. libtoolize: display aux files output header for non-autoconf parents. * libtoolize.m4sh (func_install_pkgconfig_subproject): When the parent project does not use Autoconf, be sure to display an output header before copying auxiliary files despite not being able to scan for AC_CONFIG_AUX_DIR arguments. * NEWS: Updated. libtoolize: refactor macro_dir discovery around extract-trace script. * libtoolize.m4sh (func_extract_trace): Function to call $aux_dir/extract-trace. The name and footprint are the same as the core function in the extract-trace script file so that we can choose to source that file when the option processing becomes compatible with ours. (require_ac_macro_dir, require_aclocal_amflags) (require_am_macro_dir, require_macro_dir, require_makefile_am): New functions factored out of func_scan_files for scanning and setting macro_dir and friends. (func_scan_files): Remove the factored out code to scan configure.ac with sed, and then set macro_dir appropriately. (func_serial_update_check, func_install_pkgmacro_subproject) (func_install_pkgmacro_parent, func_install_pkgmacro_files) (func_check_macros): Adjust. * tests/libtoolize.at (Subproject ltdl without GNU M4): New test to ensure `libtoolize --subproject' continues to work without a GNU M4 dependency. * NEWS: Updated. libtoolize: refactor configure_ac discovery. Make a start on decomposing some of the giant functions at the heart of libtoolize into the much more flexible and manageable (albeit somewhat more verbose) model of self-organising $require_ function pointers. * libtoolize.m4sh (require_configure_ac): New function factored out of func_scan_files for setting $configure_ac appropriately, implementation taken from extract-trace script. (func_autoconf_configure): And similarly for ensuring that a filename which matches something Autoconf would read also has content that appears to be destined for Autoconf processing. (func_scan_files): Simplified the factored out code to a single require_configure_ac call. (func_install_pkgconfig_files, func_check_macros): Ditto. (seen_autoconf): Removed. bootstrap: split into reusable parts. * bootstrap: Bourne shell has no scoping, so be extremely careful with namespaces, functions in `^func_' and `^require_'; private variables in `^_G_', and public variables all well documented by comments. * libltdl/config/extract-trace: New file, containing the minimum of code previously in bootstrap plus a little glue to make the GNU M4 based autotools tracing function (as opposed to the kludgy sed extraction currently used everywhere else) a standalone script that can be executed or sourced. * libltdl/config/options-parser: New file, containing the pluggable options parser code shared between the other two. * bootstrap.conf: Adjust. * Makefile.am (EXTRA_DIST): Be sure to distribute the new extract-trace and options-parser scripts. (install-data-local): And install them where libtoolize can find them. tests: prefix absolute directory variables with 'abs_'. Avoid any possible confusion about the contests of thes variables compared to $aux_dir, $macro_dir and $src_dir in configure.ac, Makefile.am, libtoolize.m4sh and others. * tests/defs.m4sh (aux_dir, macro_dir, srcdir): Rename these... (abs_aux_dir, abs_macro_dir, abs_srcdir): ...to these resp. * tests/cdemo-shared-exec.test, tests/cdemo-shared-make.test, tests/cdemo-static-exec.test, tests/cdemo-static-make.test, tests/cdemo-undef-exec.test, tests/cdemo-undef-make.test, tests/demo-nofast-exec.test, tests/demo-nofast-inst.test, tests/demo-nofast-make.test, tests/demo-nofast-unst.test, tests/demo-nopic-exec.test, tests/demo-nopic-make.test, tests/demo-pic-exec.test, tests/demo-pic-make.test, tests/demo-shared-exec.test, tests/demo-shared-inst.test, tests/demo-shared-make.test, tests/demo-shared-unst.test, tests/demo-static-exec.test, tests/demo-static-inst.test, tests/demo-static-make.test, tests/demo-static-unst.test, tests/depdemo-nofast-exec.test, tests/depdemo-nofast-inst.test, tests/depdemo-nofast-make.test, tests/depdemo-nofast-unst.test, tests/depdemo-shared-exec.test, tests/depdemo-shared-inst.test, tests/depdemo-shared-make.test, tests/depdemo-shared-unst.test, tests/depdemo-static-exec.test, tests/depdemo-static-inst.test, tests/depdemo-static-make.test, tests/depdemo-static-unst.test, tests/f77demo-shared-exec.test, tests/f77demo-shared-make.test, tests/f77demo-static-exec.test, tests/f77demo-static-make.test, tests/fcdemo-shared-exec.test, tests/fcdemo-shared-make.test, tests/fcdemo-static-exec.test, tests/fcdemo-static-make.test, tests/mdemo-shared-exec.test, tests/mdemo-shared-inst.test, tests/mdemo-shared-make.test, tests/mdemo-shared-unst.test, tests/mdemo-static-exec.test, tests/mdemo-static-inst.test, tests/mdemo-static-make.test, tests/mdemo-static-unst.test, tests/sh.test, tests/tagdemo-shared-exec.test, tests/tagdemo-shared-make.test, tests/tagdemo-static-exec.test, tests/tagdemo-static-make.test, tests/tagdemo-undef-exec.test, tests/tagdemo-undef-make.test, tests/tagtrace.test: Adjust. maint: calculate required mkinstalldirs calls during `make install'. * Makefile.am (install-data-local): Make sure all destination directories are in place before copying files there, without hardcoding them. maint: substitute static directory names. By substituting just the directory name as passed to the macro, aux_dir can be used with or without $srcdir prefix, which is more flexible, and always means the same thing in each file, rather than sometimes being a directory name, sometimes relative to $top_srcdir. * configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR) (LT_CONFIG_LTDL_DIR): Don't force config.status substitutions with unexpanded shell variables. * Makefile.am, tests/defs.m4sh: Adjust. 2011-11-07 Peter Rosin libtoolize: fix spelling nit. * libtoolize (M4SH_GETOPTS): Fix spelling nit. 2011-11-07 Gary V. Vaughan tests: fix parsing of configure output by pic_flag.at. Close http://debbugs.gnu.org/9962. * tests/pic_flag.at (LT_AT_CONFIGURE): Make sure to configure with --disable-silent-rules so that the full output parsed by the rest of the test is available. Reported by Roumen Petrov. libtoolize: rename `--subproject' option, and make it work. * libtoolize (M4SH_GETOPTS): Remove `--standalone', which never worked, and add `--subproject' which sets ltdl_mode correctly. 2011-11-05 Gary V. Vaughan libtoolize: fix a scoping bug in func_aclocal_update_check. libtoolize.m4sh (func_aclocal_update_check): This body of this function used a global variable set by the outer loop of the caller. Fix to Use the function argument correctly. maint: rename the debug shell command variable to `debug_cmd'. Not only does it make more sense, it also matches bootstrap and others. * libtoolize.m4sh, libltdl/config/ltmain.m4sh, libltdl/config/getopt.m4sh, tests/defs.m4sh (opt_debug): Rename to debug_cmd. maint: dynamically strip unused scripts from libltdl Makefile. * configure.ac (pkgaux_scripts): Centrally maintain the complete list of aux scripts required to build libltdl, and which need to be installed by libtoolize --ltdl, and consequently need to be placed in $pkgdatadir by make install. * Makefile.am (libltdl/stamp.mk): Improved to strip the unused scripts not listed in pkgaux_scripts without the need for manual synchronisation. (auxexefiles): Removed. Replaced by new pkgaux_scripts substitution. (install-data-local): Adjust. build: substitute paths into defs.m4sh instead of recalculating. * Makefile.am (configure_edit): Add substitutions for aux_dir, macro_dir and srcdir. * tests/defs.m4sh: Don't recalculate srcdir. (aux_dir, macro_dir, srcdir): Convert to absolute paths. build: support AM_SILENT_RULES * configure.ac: Add AM_SILENT_RULES. * libltdl/configure.ac: Ditto, but only if defined. * Makefile.am (.version, ChangeLog, README, doc/notes.txt) (libtool, libtoolize, libtoolize.in, libltdl/Makefile.am) (libltdl/stamp-mk, m4/ltversion.m4, tests/atconfig, tests/defs) (tests/defs.in, tests/package.m4): Output an AM_SILENT_RULES-like GEN when V==0. * libltdl/Makfile.inc (libltdl/argz.h): Ditto. 2011-10-31 Gary V. Vaughan maint: add autobuild prerequisite only if autobuild.m4 is absent. * bootstrap (func_require_autobuild_buildreq): Skip if autobuild.m4 is already present. * bootstrap.conf (require_autobuild_bulidreq): No need to set this specially any more. maint: ensure bootstrap runs from dist tarball. * bootstrap (func_gnulib_tool_copy_file): When gnulib-tool is not available, check that there is a copy of the file from a previous run available before bailing out with a diagnostic. (func_install_gnulib_non_module_files): Don't diagnose missing files explicitly - func_gnulib_tool_copy_file takes care of it now. (func_require_checkout_only_file): In the diagnostic for not being in a source-controlled tree, note that `--force' must be used to rebootstrap. (func_require_gnulib_files_already_present): Removed. All the necessary checks are correctly performed in func_gnulib_tool_copy_file withot resorting to heuristics. (func_require_gnulib_mk): Don't continue to try to access gnulib-cache.m4 after discovering we're running from a dist tarball. (func_require_dotgitmodules_parameters): Skip if .gitmodules file is missing and git binary is not available. * bootstrap.conf (checkout_only_file): Set to HACKING, which is a non-distributed file. (libtool_cleanup_empty_dirs): Don't print spurious errors when trying to delete gnulib-tool droppings, in case gnulib-tool is not available on this run. tests: add a keyword `expensive' to very long running tests. * tests/cmdline_wrap.at, tests/stresstest.at (AT_KEYWORDS): Add `expensive'. * NEWS: Updated. libtoolize: fix some long-standing sed substitution bugs * libtoolize.m4sh (func_fixup_Makefile): `\\\\\$' in a " quoted script that is evaluated twice before execution becomes a `\$', which sed interprets as a literal $. The script will then delete any lines with a first non-whitespace character of `$'. Instead use `\\\\$' in single quotes, which sed eventually receives as `\\$' and correctly interprets as part of an instruction to delete otherwise empty lines ending with a `\'. Additionally the rest of the same sed script is no longer applied to comment lines to avoid munging the copyright header among others. * NEWS: Updated. 2011-10-27 Gary V. Vaughan maint: use gnulib's gitlog-to-changelog instead of a ChangeLog file. * ChangeLog: Removed. * HACKING (Editing 'ChangeLog'): Removed. Renumbered other sections to compensate. * bootstrap.conf (gnulib_modules): Add gitlog-to-changelog. * Makefile.am (ChangeLog): Generate the ChangeLog for 2011... (dist-hook): ...from the output of `git log' before rolling a distribution tarball. maint: use gnulib's git-version-gen instead of mkstamp. * libltdl/config/mkstamp: File removed. * bootstrap.conf (gnulib_modules): Add git-version-gen. * configure.ac (AC_INIT, package_revision): Use git-version-gen to calculate version number. (TIMESTAMP): Removed. * libtoolize.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4 (TIMESTAMP): Ditto. * Makefile.am (TIMESTAMP): Ditto. (MKSTAMP): Renamed from this... (git_version_gen): ...to this. Set revision here. An alpha is now a release with an odd micro relase number. (rebuild): Don't reset revision here. (build_scripts): Remove mkstamp, add git-version-gen. (EXTRA_DIST, BUILT_SOURCES): Add .version. (libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4, tests/package.m4): Don't depend on configure.ac or ChangeLog to determine when the version number has reved, use .version directly. (.version): Flush most recent configure calculated VERSION to disk. (dist-hook): Flush current VERSION to disk at dist time. (dotserial): Distributed file to cache the serial number for when git is not available to recalculate it when building from a release tarball. (dist-hook): Make sure .serial is created. (libltdl/config/ltversion.m4): Use .serial when it is present (in a dist tarball) or calculate with git otherwise (in a git working directory). (EXTRA_DIST): Add .serial file. maint: use gnulib's maint.mk and support scripts release procedure. * Makefile.maint: Removed. * configure.ac (LASTRELEASE, lt_major, lt_minor, lt_micro, lt_alpha): All removed. Makefile.maint was the only client. * HACKING (Release Procedure): Removed. * bootstrap.conf (gnulib_modules): Add announce-gen, do-release-commit-and-tag, gendocs, gnu-web-doc-update, gnupload and readme-release. * cfg.mk (manual_title): Set it for web-manual rule. (announcement_Cc_): Release announcement email addresses. * Makefile.am (build_scripts): Add to EXTRA_DIST additional files imported from gnulib for maint.mk release procedure. * NEWS: Updated. 2011-10-24 Gary V. Vaughan tests: ensure VPATH autom4te search path can find autotests. * Makefile.am (tests/testsuite): Passing only $(srcdir) include path to autom4te is unable to find tests/package.m4, and passing only $(srcdir)/tests breaks VPATH build searches for TESTSUITE_AT files, which are relative to $(srcdir)... so we pass both! * NEWS: Updated. Reported by Bob Friesenhahn. 2011-10-24 Karl Berry doc: modernize libtool.texi. * libtool.texi (@copying): Use this instead of @ifnottex; format for Texinfo; eliminate obsolete paragraph about TeX; use @insertcopying instead of duplicating text. (@syncodeindex): Move all to the Texinfo header, where they belong. (@dircategory): Use "Software development" instead of "GNU programming tools", for consistency; and align individual entries to avoid multiple lines; and move to after the copyright message. 2011-10-24 Gary V. Vaughan maint: don't make autobuild a hard bootstrap requirement. * bootstrap.conf (require_autobuild_buildreq): Reset this to ':' so that bootstrap doesn't auto-add autobuild to $buildreq. 2011-10-23 Gary V. Vaughan maint: use gnulib's maintainer-makefile module. * bootstrap.conf (gnulib_modules): Add maintainer-makefile. (gnulib_tool_options): Add --avoid=dummy now that we have a real module to import. * cfg.mk: New file. Customize maint.mk for Libtool. * Makefile.am (EXTRA_DIST): Add GNUmakefile, cfg.mk and maint.mk. maint: use gnulib's canonical fdl.texi. * doc/fdl.texi: Removed. * bootstrap.conf (gnulib_non_module_files): Add fdl.texi. maint: use gnulib's canonical COPYING files. * COPYING, libltdl/COPYING.LIB: Removed. * bootstrap.conf (gnulib_non_module_files): Add COPYING. (libtool_add_libltdl_copying): New func_gnulib_tool hook function to copy the canonical LGPL2 COPYING file from gnulib at bootstrap. maint: use gnulib's (pending saner) bootstrap script. * bootstrap: Replaced with gnulib script. * bootstrap.conf: New file with Libtool specific bootstrap configuration. * Makefile.am (EXTRA_DIST): Add bootstrap.conf. maint: add gnulib submodule. * configure.ac (GL_INIT, GL_EARLY): Initialise gnulib, and expand its configure time checks. * .gitmodules (gnulib): New file with configuration for our gnulib git submodule. 2011-10-22 Gary V. Vaughan maint: tidy, sort and consolidate .gitignore files. The `gnulib-tool' and gnulib `bootstrap' scripts maintain `.gitignore' files in asciibetical order, so reorder them now to avoid spurious patches later. Take advantage of putting recursive file ignore matches into `$top_srcdir/.gitignore' and remove repetitions from other `.gitignore' files. 2011-10-22 Gary V. Vaughan maint: don't run help2man on programs not-yet-built. * Makefile.am (doc/libtool.1, doc/libtoolize.1): Added a comment about why the dependencies here have to be a mite bizarre. tests: remove unused `aux_dir' variable from `getopt-m4sh.test'. * tests/getopt-m4sh.at (aux_dir): Remove unused variable. tests: DRYing out `tests/sh.test'. * Makefile.am (libtool_m4): Canonical location of libtool.m4 file. (lt_aclocal_m4_deps): Use it. maint: pass directory declarations in configure.ac into Makefile. * configure.ac (AC_CONFIG_AUX_DIR, LT_CONFIG_LTDL_DIR) (AC_CONFIG_MACRO_DIR): Append code to these functions to capture and propagate their directory arguments to Makefile. * Makefile.am (aux_dir, ltdl_dir, macro_dir): Remove declarations. * bootstrap (my_sed_trace): Also capture LT_CONFIG_LTDL_DIR into `$ltdl_dir'. : Output the extracted values of `aux_dir', `ltdl_dir' and `macro_dir' at the top of the quick'n'dirty bootstrap Makefile. maint: factor out ltmain.sh variable deletion. * Makefile.am (ltmain_sh_edit): Expand upon bootstrap edit by adding the extra line to delete boilerplate variable settings from libltdl/config/general.m4sh that don't apply here. (libltdl/config/ltmain.sh): Use it. maint: DRYing out `Makefile.am' file paths. * Makefile.am (aux_dir, macro_dir): Include `$(srcdir)' in declaration. Adjust all references. (doc_dir, ltdl_dir, m4sh_dir, tests_dir): New single location to hold directory paths, all including `$(srcdir)', to reduce typing. (LT_M4SH): Use `$m4sh_dir' as include directory. (defs): This one is for a file in the build-tree, so no leading `$(srcdir)'. CLEANUP: fix error from pushing too far up the branch. * Makefile.am (install-data-local): Undo character transposition from too early push of untested v2.4-17-gaf74d58. * ChangeLog (2010-09-16): Remove spurious entry. maint: use macro_dir consistently in all files. * Makefile.am: Replace all uses of m4dir with macrodir to match AC_CONFIG_MACRO_DIR. * libltdl/config/libtoolize.m4sh: Replace all uses of macrodir with macro_dir. * tests/defs.m4sh, tests/sh.test: Likewise. maint: use aux_dir consistently in all files. * Makefile.am, Makefile.maint: Replace all uses of auxdir with aux_dir to match AC_CONFIG_AUX_DIR. * libltdl/config/libtoolize.m4sh: Likewise. * tests/defs.m4sh, tests/getopt-m4sh.at: Likewise. Makefile: try to be robust against shell meta-chars in filenames. * Makefile.am: In each rule body, unless a make variable needs to be seen as multiple words by the shell (for word-splitting loops, or because it contains several commands), quote it. Use single quotes unless the shell needs to perform variable inter- polation, in which case use double quotes. 2011-10-20 Gary V. Vaughan maint: let make employ user's `SED' setting. * Makefile.am: Replace hard-coded `sed' with `$(SED)' through- out. maint: simplify and improve safety of bootstrap process. * Makefile.am (bootstrap_files): List files that need to be generated at bootstrap time before `./configure && make' can work. It turns out that this is considerably fewer files than we had thought necessary previously. (bootstrap-deps-prep): Ensure minimum set of required substitution variables are non-empty. (bootstrap-deps): Depend on `bootstrap' files. * bootstrap (Generate bootstrap dependencies): Now that `Makefile.am' is entirely responsible for rebuilding files at bootstrap time, we need only specify the new `bootstrap-deps' target, and supply values for the substitutions checked by `bootstrap-deps-prep'. * configure.ac (AC_CONFIG_SRCDIR): `libtoolize.in' is not here yet right after running `bootstrap'. So rely on the presence of `libltdl/config/libtoolize.m4sh', which is always there. build: eliminate superfluous temporary files from `Makefile.am'. * Makefile.am (CLEANFILES): Remove temporary file entries. (libtoolize.in, libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4) (tests/defs, tests/testsuite): Factor away temporary files. build: eliminate `ltmain.in' and `libtoolize.in' intermediate files. * Makefile.am (libltdl/config/ltmain.sh, libtoolize.in): Pipe the output of `$(LT_M4SH)' directly into `$(bootstrap_edit)' to avoid use of superfluous intermediate file. build: don't hardcode repeated long paths in Makefile rules. According to the DRY principle, scattering several copies of something across a file or project leads to pain. Let's not do that! * Makefile.am (Makefile_in, Makefile_inc, defs_in, defs_m4sh), (libtoolize_in, ltmain_m4sh, ltversion_in): New variables to hold the location of important files and targets. (EXTRA_DIST): Add the distributed ones by variable. (libtoolize, libltdl/Makefile.am, libltdl/m4/ltversion.m4) (libltdl/config/ltmain.sh, libltdl/stamp-mk, tests/defs) (tests/defs.in): Use the new variables to reduce noise and repetition. build: make better use of automatic variables in `Makefile.am'. * Makefile.am (libtoolize, libtoolize.in, libltdl/Makefile.am) (libltdl/config/mkstamp, libltdl/config/ltmain.m4sh) (libltdl/m4/ltversion.m4, tests/testsuite, tests/defs.in): Make better use of automatic variables. build: name temporary files in `Makefile.am' consistently. Sadly, we still have to jump through hoops for MICROS~1's very old, very broken 8.3 naming convention, so we have to be careful to be unique in the first 8 letters, and not to use two periods in a filename, otherwise we could use the much more elegent `temporary files use "$@T"' idiom: * Makefile.am (libltdl/m4/ltversion.m4): Rename temporary file to `ltversion.tmp'. (libltdl/config/ltmain.sh): Rename temporary file to `libltdl/config/ltmain.tmp'. (libtoolize): Rename temporary file to `libtoolize.tmp'. (tests/defs): Rename temporary file to `tests/defs.tmp' (tests/testsuite): Rename temporary file to `tests/testsuite.tmp'. (CLEANFILES): Append temporary files as we create rules that use them. build: factor Makefile.am `m4sh' invocations to LT_M4SH. * Makefile.am (LT_M4SH): Now that all directories are listed as fully qualified paths, the search path argument to M4SH is always the same, so factor it out into a variable. Adjust all callers. build: avoid unnecessary directory changes in Makefile rules. * Makefile.am (doc/notes.txt, libltdl/m4/ltversion.m4, (libltdl/config/ltmain.m4sh, libtoolize.in, libltdl/Makefile.am) (libltdl/config/mkstamp, tests/testsuite, tests/defs.in): Avoid unnecessary `cd' commands by using fully qualified paths to files outside of current directory. build: compare `revision' rather than `correctver' in Makefile.am. * Makefile.am (rebuild): Set the shell variable `revision' rather than `correctver' for clarity of purpose. (bootstrap_edit, libltdl/config/ltmain.sh): Adjust. (libltdl/m4/ltversion.m4): Likewise, and alse, instead of munging the serial number comment line with set, extract `macro_version' from this file, and compare it directly with `revision'. (libtool): Likewise for `package_revision'. build: avoid spurious bootstrap_edit call. * Makefile.am (tests/package.m4): @FOO@ substitutions have already been made by the time Makefile.am has been transformed into Makefile, so don't try to rerun the substitutions manually with $(bootstrap_edit) after the fact. 2011-10-18 Gary V. Vaughan Post-release administrivia. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version numbers. * NEWS: Add header line for next release. Release 2.4.2. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version numbers. * NEWS: Update version number. 2011-10-17 Gary V. Vaughan Replace leading spaces with tabs. * libltdl/m4/libtool.m4, libltdl/config/ltmain.m4sh: Replace leading spaces in source code with tabs to match surrounding code. Reported by Peter Rosin. Make a note to use gnu/linux for version_type. * libltdl/m4/libtool.m4 (version_type): Add a comment to change version_type setting from 'linux' to 'gnu/linux' during the next destabilising code refactoring. * libltdl/config/ltmain.m4sh: ditto. Requested by Richard Stallman. 2011-10-04 Bart Van Assche Typo fix - change func_apped into func_append * libltdl/config/ltmain.m4sh: Fix typo. 2011-10-02 Xin LI Avoid problems when FreeBSD goes to version 10. * libltdl/m4/libtool.m4: Remove mentions of freebsd1. Use dots for FreeBSD 2 and 3 detection to avoid future problems * libltdl/m4/ltmain.m4sh: ditto. 2011-09-25 Cristophe Jarry Avoid mentioning "Linux", use "GNU/Linux", if appropriate. * TODO: Don't use bare "Linux". * doc/libtool.texi: ditto. * doc/notes.texi: ditto. * libltdl/README: ditto. * libltdl/m4/libtool.m4: ditto. 2011-09-02 Peter O'Gorman Add flag to inhibit warnings. * libltdl/config/ltmain.m4sh: Add --no-warn, --no-warning flags. Reported by John David Anglin. 2011-04-10 Kurt Roeckx tagdemo: do not rely on picking up symbols from indirect deps. * tests/tagdemo/Makefile.am: Link to all libraries that the demo application uses. 2011-04-10 Svante Signell (tiny change) Set shlibpath_overrides_runpath for the Hurd. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [gnu] : Set to no. * THANKS: Update. 2011-03-22 Justin Lecher (tiny change) Rhys Ulerich Don't filter OPENMP flags (-openmp & -fopenmp) from linker lines. If -fopenmp if passed to gcc during linking, it will take care to add all necessary libs to link correctly for openmp support. Currently libtool filters those flags, similar as it was the case with the threading flags. This change handles the situation for the openmp support similar as before the thread support was fixed. http://lists.gnu.org/archive/html/bug-libtool/2010-12/msg00009.html http://lists.gnu.org/archive/html/bug-libtool/2011-03/msg00014.html * libltdl/config/ltmain.m4sh (func_mode_link): Treat OpenMP flags like pthreads flags. 2011-03-14 Ralf Wildenhues libtoolize: detect -I (without space) in ACLOCAL_AMFLAGS. * libtoolize.m4sh (func_scan_files): Also accept -I (without intervening space) in ACLOCAL_AMFLAGS. * THANKS: Update. Report from Jan Engelhardt. 2011-03-05 Peter O'Gorman On Mac OS X try .dylib as well as .so with lt_dlopenext * libltdl/m4/ltdl.m4: Define extra extension if module extension differs from shared lib extension. * libltdl/ltdl.c: Use it. * tests/darwin.at: Test it. * NEWS: Announce it. Reported by Hans Aberg, Michael Ellis, and others. 2011-02-14 Peter O'Gorman Install ltmain.sh without execute bit set. * Makefile.am: change install rule for ltmain.sh Reported by Křištof Želechovski. 2011-02-07 Ralf Wildenhues docs: fix copyright years in PDF version of the manual. * doc/libtool.texi: Fix copyright years. 2011-02-01 Ralf Wildenhues fix typo in ChangeLog 2011-02-01 Rainer Orth Fix LD setting for 64-bit Solaris 2/x86. * libltdl/m4/libtool.m4 (_LT_ENABLE_LOCK) [*-*-solaris*): Determine GNU ld options for 64-bit Solaris 2/x86. Detect gld 2.21 _sol2 emulations. 2011-01-27 Peter O'Gorman Don't loop through wrapper script arguments unnecessarily. * libltdl/m4/ltmain.m4sh: Check that argv contains " --lt-" before looping to remove wrapper script targetted arguments. Performance regression reported by Dan McGee. 2011-01-20 Gerald Pfeifer (tiny change) Remove support for FreeBSD 1.x. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) (_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which soon would incorrectly match FreeBSD 10.0. * NEWS, THANKS: Update. 2011-01-19 Peter O'Gorman Don't let verbose linker messages influence test results. * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Ignore stderr during tests for -flag unless it contains "flag". * tests/darwin.at: Add test. Reported by Jeremy Huddleston and also by David Fang. 2011-01-09 John David Anglin (tiny change) Fix relink mode to use absolute path if hardcode_minus_L. * libltdl/config/ltmain.m4sh (func_mode_link): Use absolute path when hardcoding with -L. 2011-01-09 Ralf Wildenhues Fix $wl setting for Solaris Studio 12.2 f90 on GNU/Linux. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] : Set to '-Qoption ld ' if we detect Sun Fortran version 8.4 or newer. Report by Terry Dontje. 2011-01-07 Peter Rosin Convert file name to toolchain format when blessing archives. * libltdl/config/ltmain.m4sh (func_mode_install): When executing old_postinstall_cmds and old_archive_cmds, convert $oldlib to a format appropriate for the tool and provide that in $tool_oldlib. Also use $tool_oldlib when stripping old libraries. * libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): Use $tool_oldlib as argument to $RANLIB. * THANKS: Update. Report by Dan McMahill. 2011-01-02 Ralf Wildenhues Bump copyright years. * ChangeLog.2010: New, rotated from ... * ChangeLog: ... here. * Makefile.am (EXTRA_DIST): Add ChangeLog.2010. * NEWS, libltdl/config/ltmain.m4sh: Bump copyright years. * libltdl/m4/libtool.m4 (_LT_COPYING, LT_OUTPUT): Likewise. * libtoolize.m4sh: Likewise. * doc/libtool.texi: Likewise. 2010-12-20 Ian Lance Taylor * libltdl/m4/libtool.m4 (LT_LANG): Add Go. (AC_PROG_GO): Provide. (_LT_SYS_HIDDEN_LIBDEPS): Add Go case. (_LT_LANG_GO_CONFIG): Define. (LT_PROG_GO): Define. (AC_PROG_GO): Define if not defined. * libltdl/config/ltmain.m4sh: Match *.go. * doc/libtool.texi (LT_INIT): Mention Go. (Tags): Mention Go. * configure.ac: Enable Go. * NEWS: Update. 2010-12-20 Brice De Bruyne (tiny change) Also turn off -fuse-linker-plugin for postdep_objects computation. * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Add -fno-use-linker-plugin to temporary compile flags if necessary, to fix C++ postdep_objects setting with -flto -fuse-linker-plugin. * NEWS, THANKS: Update. 2010-12-20 KO Myung-Hun (tiny change) Set command line length limit for OS/2. * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN) [os2] : Set to 8192 to avoid long test. 2010-12-20 Ralf Wildenhues Fix PIC flags with mpif77 using ifort on GNU/Linux. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux]: Match Intel compiler also using $CC -V output, to avoid false negatives with compiler drivers like mpif77. Report by Christian Rössel. 2010-12-16 Ralf Wildenhues Fix PIC flags with MPI wrappers using Portland on GNU/Linux. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux]: Match Portland compilers also using $CC -V output, to avoid false negatives with MPI compiler drivers. Report by Christian Rössel. * libltdl/m4/libtool.m4 (_LT_SETUP): Fix quoting for PATH_SEPARATOR. 2010-12-15 KO Myung-Hun (tiny change) Ralf Wildenhues Fix PATH_SEPARATOR handling for OS/2. * Makefile.am (update_mans): Quote $(PATH_SEPARATOR). * libltdl/m4/libtool.m4 (_LT_SETUP): Add _LT_DECL for PATH_SEPARATOR. * libltdl/config/general.m4sh: Use PATH_SEPARATOR when computing $progpath. * THANKS: Update. 2010-12-10 Ralf Wildenhues Fix nvcc PIC setting on darwin. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) : Prepend -Xcompiler to nonempty variable setting rather than hard-coding -Xcompiler -fPIC, for darwin. * NEWS, THANKS: Update. Report by Paweł Daniluk. Honor $AUTOCONF, $AUTOMAKE in --help output. * libltdl/config/getopt.m4sh (func_help): Use $AUTOCONF and $AUTOMAKE if set, for --version outout. docs: Libtool configuration diagram. * doc/libtool.texi (Integrating libtool): Add diagrams explaining the dependencies between Libtool files. Suggestion by Ethan Mallove. 2010-11-15 Ralf Wildenhues Eliminate hardcode_libdir_flag_spec_ld tag variable. * libltdl/config/ltmain.m4sh (func_mode_link): Set $wl to empty if $LD is used for creating shared libraries. Do not use hardcode_libdir_flag_spec_ld any more. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) (_LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG, _LT_SYS_DYNAMIC_LINKER) : Remove all instances of the tag variable. (_LT_LINKER_SHLIBS) [linux, xlf] : Set variable, including ${wl}. Fixes hardcoding in programs created by XL Fortran on GNU/Linux. * NEWS, THANKS: Update. Report by Paul H. Hargrove. Rebuild menus in the manual. * doc/automake.texi: Rebuild menus (using ^C ^U ^A in emacs). Thanks to Ian Lance Taylor for the suggestion. 2010-11-07 Ollie Wild Modify --with-pic to support per-package configurations. * libltdl/m4/libtool.m4: Modify --with-pic to accept a list of package names. Modelled off --enable-shared. * tests/with-pic.at: New test. * Makefile.am (TESTSUITE_AT): Add tests/with-pic.at. * doc/libtool.texi (LT_INIT): Enhance documentation of --with-pic configure flag. * NEWS (New features): Mention that --with-pic now accepts a comma-separated list of package names. 2010-11-10 Ralf Wildenhues Fix cwrapper test failure with --disable-static. * tests/cwrapper.at (cwrapper and installed shared libraries): Compile program source without libtool, so we can be sure a non-PIC object will be created. 2010-11-01 Peter Rosin docs: Windows DLLs and headers. * doc/libtool.texi (Platform quirks): Add new subsection 'Windows DLLs'. * doc/libtool.texi (Platform quirks): Fix typo. 2010-10-30 Ralf Wildenhues docs: mention shell requirement for libtool script. * doc/libtool.texi (Invoking libtool): Document that the shell used to invoke libtool needs to be the same used to configure it. * THANKS: Update. Report by Markus Duft. 2010-10-15 Gary V. Vaughan libtool: remove redundant unsubstituted shell var defaults. * Makefile.am (libltdl/config/ltmain.sh): Boilerplate code from libltdl/config/general.m4 sets some default shell variables designed to be substituted by `$(configure_edit)'. Actually, `libtool' uses the language tag values for those variables, and `ltmain.m4sh' is not passed through `$(configure_edit)', so they are just noise. Edit them out at bootstrap time. 2010-10-15 Gary V. Vaughan maint: don't leak developer GREP, SED etc into distribution file. * Makefile.am: Having rearranged the file, now apply the actual changes to follow-up. (edit): Split into two parts... (bootstrap_edit): ...substitutions that should happen at bootstrap time... (configure_edit): ...and substitutions that should not happen until configure time. * Makefile.am (libltdl/m4/ltversion.m4, libltdl/config/ltmain.sh) (libtoolize.in, tests/package.m4): Use bootstrap_edit. (libtoolize, tests/defs): Use configure_edit. * HACKING (Release Procedure): Remove the note to workaround the bug fixed by this changeset. * NEWS (Bug fixes): Mention that this bug is now fixed. Reported by Joerg Sonnenberger. maint: rearrange Makefile.am in preparation for a follow-up patch. * Makefile.am (Libtool scripts.): Move this section below the `Bootstrap.' section... (libtoolize.in): ...except this one which is generated at bootstrap time, and was added into the `Bootstrap.' section. (Libltdl.): Move this section below the `Libtool scripts.' section. 2010-10-15 Ralf Wildenhues Fix linking from only convenience archives with gfortran on Darwin. * libltdl/m4/libtool.m4 (_LT_DARWIN_LINKER_FEATURES): Update macro comment header. [darwin, F77, FC] : Set to yes if whole_archive_flag_spec is nonempty. Fixes convenience.at test suite failures with gfortran 4.2 on Darwin. * THANKS: Update. Report by Paul Laight. Fix bindir check logic, and relax non-bindir case for AIX. * tests/bindir.at (bindir install tests): Rewrite checks for place of the installed shared library in two separate tests, depending on whether -bindir is supposed to have an effect or not. In the positive case, make the test stricter so that we reject libraries in $libdir. In the negative case, do not require a major version number in the $libdir file name, for AIX without runtimelinking. If tmpdir creation fails, skip the test. Use fewer bindir directory names for testing, to speed up the test. Also mention MSVC style DLL name in comment. Report by Peter Rosin. tests: remove unneeded 'bindir compile check' test. * tests/bindir.at (bindir compile check): Remove. 2010-10-14 Peter Rosin tests: fix $EXEEXT typo. * tests/depdemo-relink.test (func_restore_files): Use $EXEEXT instead of $EXEXT. 2010-10-12 Simon Josefsson Matěj Týč Ralf Wildenhues docs: improve description of -no-undefined. * doc/libtool.texi (Link mode): Fix -no-undefined description. (Inter-library dependencies): Use Windows not AIX as example system. Clarify need for symbol resolution at library creation time. 2010-10-09 Paolo Bonzini Add missing sysroot resolution. * libltdl/config/ltmain.m4sh (func_mode_link): Resolve sysroot when fetching the install directory of dependent libraries. Reported by Lionel Landwerlin , patch by Khem Raj . * THANKS: Reorder entries, add Khem and Lionel. 2010-10-07 Roumen Petrov Add test case for 69e77671 (cwrapper PATH manipulation order) * tests/cwrapper.at: Add new test 'cwrapper and installed shared libraries.' 2010-10-04 Peter Rosin cwrapper: split long lines when dumping the wrapper script. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): If the wrapper script contains long lines, split them for readability and to conform with C standards. * tests/cwrapper.at (cwrapper string length): New test, making sure we don't regress. msvc: handle symbols from different files independently. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) : Make all sections viable for symbol extraction again when the symbols from a new file starts. Fixes tests/tagdemo-make.test for MSVC 10. * tests/dumpbin-symbols.at: New test, making sure we don't regress. * Makefile.am (TESTSUITE_AT): Update. 2010-09-27 Peter Rosin tests: check if sys_lib_search_path_spec works on MSVC. * tests/search-path.at (sys_lib_search_path on w32): New test, making sure v2.2.10-207-g09142ea doesn't regress. Skip need_lib_prefix.at on systems without lib prefix on libraries. * tests/need_lib_prefix.at [MSVC, OS/2]: Skip this test on systems that do not have libraries prefixed with lib. tests: clean up importing and exporting on w32. Makes the touched tests pass for MSVC when DLLs are built. * tests/demo/Makefile.am, tests/pdemo/Makefile.am: Define BUILDING_LIBHELLO when building libhello.la. * tests/demo/foo.h, tests/pdemo/foo.h (nothing) : Export variable when building the libhello dll and import when using libhello. For GCC and non-w32, and when building a static libhello, leave as an ordinary extern. * tests/pdemo/foo.h [Cygwin]: Remove unneeded and "dead" export and import logic (LIBFOO_DLL is always undefined). * tests/pdemo/longer_file_name_foo.c, tests/pdemo/longer_file_name_foo2.c (_LIBFOO_COMPILATION_): Not useful before, even less so now. Removed. * tests/depdemo/l1/Makefile.am: Define BUILDING_LIBL1 when building libl1.la. * tests/depdemo/l2/Makefile.am: Define BUILDING_LIBL2 when building libl2.la. * tests/depdemo/l3/Makefile.am: Define BUILDING_LIBL3 when building libl3.la. * tests/depdemo/l4/Makefile.am: Define BUILDING_LIBL4 when building libl4.la. * tests/depdemo/l1/l1.h, tests/depdemo/l2/l2.h, tests/depdemo/l3/l3.h, tests/depdemo/l4/l4.h : Export variables when building the associated library dll and import when using the library. For GCC and non-w32, and when building static libraries, leave as an ordinary extern. 2010-09-26 Ralf Wildenhues docs: do not refer to Libtool version with dlopen functionality. * doc/libtool.texi (Dlopened modules): Remove broken reference to what should have been Libtool 0.9g. Report by Roumen Petrov. 2010-09-23 Peter Rosin msvc: don't try to export import descriptors. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw] [pw32, cegcc] : Don't export symbols in import libraries related to describing what dll(s) the import library is importing. Fixes problem in tests/demo-make.test and some other tests. 2010-09-22 Ralf Wildenhues Fix regression in command-line length computation. * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN): Use `env echo' rather than possibly-undefined func_fallback_echo, to ensure we fork and exec for this test. * NEWS: Update. Regression introduced in v2.2.6-39-g9c3d4d8. 2010-09-22 Gary V. Vaughan Post-release administrivia. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version numbers to 2.4.1a. * NEWS: Add header line for next release. Release 2.4. * libltdl/Makefile.inc (LTDL_VERSION_INFO): We've added the static libprefix interface, so new version-info is C+1:0:R+1. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version numbers. * NEWS: Update version number. manual: web-manual index.html clashes with @node Index. * doc/libtool.texi (Index): Renamed to `Combined Index'. tests: ISO C++ forbids declaration of 'v1' with no type. * tests/lt_dlexit.at (lt_dlexit unloading libs): Added an explicit int type to declaration of 'v1' to prevent compilation failure with C++. 2010-09-22 Peter Rosin tests: reloadable objects do not work on MSVC, SKIP test. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw, pw32, cegcc] : Indicate that reloadable objects do not work. * tests/duplicate_conv.at: Skip last test if reloadable objects do not work. * doc/libtool.texi (libtool script contents) : Document how to indicate that reloadable objects do not work. 2010-09-21 Peter Rosin msvc: eliminate spaces in the library search path. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [mingw, cygwin] : The LIB path variable telling where MSVC looks for libraries is likely to contain directory names with spaces. Convert those directory names to the short 8.3 DOS form (i.e. without spaces) when storing them in sys_lib_search_path_spec, as that is a space separated variable. 2010-09-21 Ralf Wildenhues Revert to per-language libpath computation on AIX. * libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Accept tagname argument. Use global cache variable lt_cv_aix_libpath to override per-language tag variables for the libpath value. Fix the sed script to remove trailing space. (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Pass tag argument to _LT_SYS_MODULE_PATH_AIX. Tracked down and reported by Rainer Tammer. 2010-09-21 Gary V. Vaughan maint: edit-readme-alpha shouldn't try to re-edit during dist. * libltdl/config/edit-readme-alpha: If README is non-writable assume that it is being run from distcheck, and skip the edit with a warning (to help diagnose cases where the heuristic is not correct). However, if README has already been edited to the alpha text, quietly skip without an error message. 2010-09-20 Eric Blake maint: drop autobuild requirement * HACKING: Update. build: ship autobuild.m4, to reduce bootstrap requirement * libltdl/m4/.gitignore: Drop autobuild.m4. * libltdl/m4/autobuild.m4: New file, copied from autobuild. * configure.ac (AB_INIT): Unconditionally call it. 2010-09-20 Peter Rosin Ralf Wildenhues libltdl: Make sure preloaded symbols are declared extern "C". * libltdl/ltdl.h (LTDL_SET_PRELOADED_SYMBOLS): Move the declaration of lt__PROGRAM__LTX_preloaded_symbols to global scope and make sure it has "C" linkage. Makes exceptions.at succeed on MSVC. 2010-09-20 Peter Rosin tests: __declspec (dll{ex,im}port) in tests/exceptions.at * tests/exceptions.at (common.h, module.h, lib.h) [w32]: Use __declspec (dllimport) and __declspec (dllexport) instead of the less portable __attribute__ ((dllimport)) and __attribute__ ((dllexport)). Makes the test compile on MSVC. 2010-09-19 Peter Rosin tests: Import items from liba1 for MSVC. * tests/lt_dlexit.at (b1.c) [MSVC]: Import function f1 and variable v1 from liba1 when using them from modb1. Makes the test pass on MSVC. 2010-09-18 Ralf Wildenhues tests: avoid distcheck failure with --disable-ltdl-install. * tests/ltdl-libdir.at (libdir of installed modules): Skip if $LIBLTDL does not exist. 2010-09-18 Gary V. Vaughan maint: use sed instead of maintaining 2 README files. * README.alpha: Deleted. It was mostly identical to README. * libltdl/config/edit-readme-alpha: New script to edit the contents of README in the dist tree prior to tarring up. * Makefile.am (dist-hook): Run it before rolling alpha release tarball. maint: improve README's `Obtaining the Latest Sources'. * README (Obtaining the Latest Sources): Add instructions for obtaining stable, alpha and nightly snapshot tarballs. * README.alpha (Obtaining the Latest Sources): Adjust to match. maint: reformat README `The Test Suites' for consistency. * README (The Test Suites): Reformatted for consistency. * README.alpha (The Test Suites): Adjust to match. maint: improve `Reporting Bugs' in README and README.alpha. * README (Reporting Bugs): Rewritten to a more complete and concise guide to providing a good bug report. * README.alpha (Reporting Bugs): Adjust to match. maint: consolidate Introductions of README and README.alpha. * README (Introduction): Rewritten to a more logical order for first time users, incorporating some additional text that was previously only in README.alpha. * README.alpha (Introduction): Adjust to match. maint: copy the Version Numbering section into README.alpha. * README.alpha (Version Numbering): No less useful for users of alpha releases. Copied from README. 2010-09-17 Peter Rosin tests: actually detect missing 'test' in 'if "$foo" = ...'. * tests/sh.test: Remove extra backslash in regex. Copy over DLL_EXPORT handling from C to C++ for non-GCC on w32. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [mingw, cygwin, os2] [pw32, cegcc]: Copy over the DLL_EXPORT handling from C to C++. 2010-09-17 Ralf Wildenhues LTO: consistently accept -fwhopr* and -flto* for GCC. * libltdl/config/ltmain.m4sh (func_mode_link): Accept -fwhopr*. * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Also match -flto*. 2010-09-17 Charles Wilson Fix order of PATH manipulation in cwrapper and shwrapper * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src:main): Call lt_update_exe_path before lt_update_lib_path, to ensure that the temporary rpath values (which include the OBJDIRs of uninstalled libtool libraries) precede installation and final -rpath directories. (func_emit_wrapper): Prepend $dllsearchpath to PATH before prepending $temp_rpath to $shlibpath_var; similar rationale as above. Reported by Jon Turney 2010-09-17 Charles Wilson Document libtool variable to_host_file_cmd. * doc/libtool.texi (libtool script contents:to_host_file_cmd): Document variable. (libtool script contents:to_tool_file_cmd): Prefer `build platform' to `build system'; Ditto `host platform'. 2010-09-16 Charles Wilson Fix sh.test failure introduced in 72064249 * libltdl/config/ltmain.m4sh (func_mode_link): Avoid poor syntax. 2010-09-16 Ralf Wildenhues tests: avoid localization failure due to unstable compiler messages. * tests/testsuite.at (LT_AT_NORMALIZE_COMPILER_OUTPUT): Attempt to normalize temporary file names in error messages. Fixes 'localized compiler messages' test failure on Darwin when creating fat (multi-ABI) libraries. 2010-09-13 Peter Rosin Prefer $NM @file when the toolchain isn't native to $build. * libltdl/config/ltmain.m4sh (func_mode_link): Avoid calculating the command line length and take the @file branch *if* the file names needs to be converted for the toolchain and the @file branch works. Fixes problems in stresstest.at when doing a cross from Cygwin to MinGW using MinGW native tools (a.k.a. a "faked" cross), and for the specific case of MSVC on Cygwin it makes the test pass. 2010-09-15 Gary V. Vaughan maint: improve README instructions for fetching latest version. * README, README-alpha (Obtaining the Latest Sources): New section, describing use of savannah repositories and bootstrap. * README.alpha (Reporting Bugs): Remove git instructions in favour of a reference to the new `Obtaining the Latest Sources' section. 2010-09-14 Eric Blake maint: ship .xz, not .lzma * configure.ac (AM_INIT_AUTOMAKE): Prefer better file format. * Makefile.maint (git-release, git-dist, prev-tarball) (new-tarball, diffs): Use correct extension. * HACKING: Update instructions. * .gitignore: Ignore .xz files. 2010-09-13 Ralf Wildenhues doc: avoid long lines in input and output, indexing fixes. * doc/libtool.texi (Linking libraries) (Module loaders for libltdl): Manually line-wrap examples, to avoid long lines. (Libltdl interface, User defined module data) (Module loaders for libltdl): Wrap long @deftypefun input lines using trailing '@'. Use @deftypefun rather than @deftp where appropriate, and add spaces in @deftypefun lines to fix the index entries generated from these lines. (Cheap tricks): Use @smallexample rather than @example, to avoid long lines. docs: @file and @option markup fixes. * doc/libtool.texi (Creating object files, Linking libraries) (Linking executables, Link mode, Finish mode, Autoconf macros) (Using Automake, Inter-library dependencies, Dlpreopening) (Linking with dlopened modules, Finding the dlname) (Libltdl interface, Test descriptions, Multiple dependencies): Add @option where needed, replace @samp with @file as appropriate. 2010-09-12 Peter Rosin * .gitignore: Ignore *.obj files for MSVC (and w32 in general). Adjust to moved auxiliary files and add compile. * HACKING (Maintenance Notes): Adjust to moved files. Add the compile script. * Makefile.maint (fetch): Also fetch the compile script. 2010-09-12 Ralf Wildenhues tests: avoid empty AT_DATA contents, for zsh. * tests/libtoolize.at (libtoolize macro serial update) (libtoolize config files serial update, LIBTOOLIZE_OPTIONS): Do not create empty files with AT_DATA, the latter is documented to require a final newline. Fixes testsuite failures with zsh 4.3.10. 2010-09-12 Charles Wilson When assigning $linklib value, honor [-all]-static[-libtool-libs] * libltdl/config/ltmain.m4sh (func_mode_link): When prefer_static_libs and static library exists, ensure old_library name is used as $linklib. Fixes failure on mingw when both static and shared libraries are present. 2010-09-12 Ralf Wildenhues tests: work around zsh use of $options variable. * tests/getopt-m4sh.at: Rename $options to $opts, the former is special for zsh 4.3.10. Fix AC_NO_EXECUTABLES test failure on IRIX 6.5. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [irix]: Cache result of link check for -Wl,-exported_symbol. * tests/no-executables.at (AC_NO_EXECUTABLES): Set lt_cv_irix_exported_symbol, to avoid link check. 2010-09-12 Jürgen Reuter (tiny change) Ralf Wildenhues Initial support for the NAG Fortran compiler on GNU/Linux. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] : New set of entries, for NAG Fortran 5.1 and 5.2. * NEWS: Update. 2010-09-12 Ralf Wildenhues Fix getopt.m4sh to require Autoconf 2.62 or newer. * libltdl/config/getopt.m4sh (m4_version_prereq): Require 2.62, not 2.61. 2010-09-11 Charles Wilson Correct typo: $sharedlib_from_linklib_cmd missing '_cmd' * libltdl/config/ltmain.m4sh (func_generate_dlsyms): Fix obvious typo, $sharedlib_from_linklib_cmd missing '_cmd'. 2010-09-10 Peter Rosin Convert file name to toolchain format when invoking $NM. * libltdl/config/ltmain.m4sh (func_generate_dlsyms) (func_win32_libid, func_cygming_gnu_implib_p) (func_cygming_ms_implib_p): When using the name lister to find symbols in files, convert the file names to a format appropriate for the tool. Fixes testsuite issues in mdemo-static-make.test and mdemo-make.test when doing a cross from Cygwin/Wine to MinGW using MinGW native tools (a.k.a. a "faked" cross). 2010-09-09 Peter Rosin Fix dependency tracking for MSYS/MinGW. * libltdl/config/ltmain.m4sh (func_to_tool_file): Add lazy argument which allows the user to specify conversions that are not desired. (func_mode_compile): Don't convert source files on MSYS, as MSYS does it for us. This fixes a regression introduced by "Use func_to_tool_file instead of fix_srcfile_path". Reported by Charles Wilson. 2010-09-08 Peter Rosin Mention adjustment of naming of MSVC import libraries in NEWS. * NEWS: Mention the change in import library naming on MSVC. 2010-09-07 Peter Rosin Adjust naming of MSVC import libraries. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [mingw, cygwin] [pw32, cegcc] : Adjust naming of the import library from foo-.lib to foo.dll.lib, to avoid clashes with the static library for unversioned libraries. (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [mingw, cygwin, pw32] [cegcc] : Explicitely name the import library to match the above. Fixup texi typo in previous. * doc/libtool.texi (libtool script content) : Add missing 'code' command. Convert POSIX file names to toolchain format for MSVC * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [cygwin, mingw, pw32, cegcc] : Make sure the -outputresource: file name for the manifest tool is in w32 format. : Likewise for the MSVC command file containing the exports and the output file name. * libltdl/config/ltmain.m4sh (func_mode_link): Precalculate the toolchain format of the output_objdir file name and store it in the tool_output_objdir variable. Also replace any occurrence of @TOOL_OUTPUT@ in postlink_cmds with the toolchain version of the @OUTPUT@ content. * doc/libtool.texi (libtool script content): Update description of postlink_cmds to mention @TOOL_OUTPUT@. 2010-09-06 Peter Rosin Use func_to_tool_file instead of fix_srcfile_path. * libltdl/config/ltmain.m4sh (func_mode_compile): Replace the fix_srcfile_path hook with a call to func_to_tool_file. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin,mingw,pw32] [cegcc]: Drop fix_srcfile_path. * doc/libtool.texi (libtool script contents): Likewise. * NEWS: Mention that fix_srcfile_path has been replaced. Convert file names to toolchain format in $NM and $AR @files. * libltdl/config/ltmain.m4sh (func_mode_link): When listing symbols and when creating archives using command files (or response files), make sure that both the name of the command file and the content are made up of file names in a format appropriate for the tool. Fixes stresstest.at on MSYS when run with low command line length. Convert file names to toolchain format when linking. * libltdl/config/ltmain.m4sh (func_mode_link): When exporting symbols and when linking using command files (or response files), make sure that both the name of the command file and the content are made up of file names in a format appropriate for the tool. Fixes problems in stresstest.at on MSYS when run with low command line length. Add file name conversion from $build to toolchain. * configure.ac: Ensure to_tool_file_cmd is available to Makefile. * libltdl/m4/libtool.m4 (_LT_PATH_CONVERSION_FUNCTIONS): Add cache variable lt_cv_to_tool_file_cmd that describes how to convert file names from $build to toolchain format. * libltdl/config/ltmain.m4sh (func_to_tool_file): New function that utilizes the above. * Makefile.am: Ensure to_tool_file_cmd is included in TEST_ENVIRONMENT so that it is passed to (old testsuite) tests. * testsuite.at: Ensure to_tool_file_cmd is passed as a variable setting on the configure line for (new testsuite) tests. * doc/libtool.texi (libtool script content): Update with to_tool_file_cmd description. (Cygwin to MinGW Cross): Update to mention lt_cv_to_tool_file_cmd. 2010-09-02 Ralf Wildenhues tests: avoid spurious test failure due to library mode on HP-UX. * tests/help.at (debug tracing): Use $lt_INSTALL not cp for install mode, the latter will not overwrite an existing library with mode 555. 2010-09-01 Charles Wilson Path conversion documentation * doc/libtool.texi (Platform quirks): Add new subsections 'Cross compiling' and 'File name conversion'. 2010-09-01 Ralf Wildenhues tests: avoid spurious pic_flag test failure on HP-UX 10.20. * tests/pic_flag.at (override pic_flag at configure time): Match HP-UX 10.20 cc warning about unknown options, to skip the test. tests: fix localization test for GCC on HP-UX 11.00. * tests/localization.at (localized compiler messages): Be sure to switch the locale only for the actual compiler commands, so we don't pick up warnings from helper tools such as diff which may not have the locale installed. Avoid leaking make flags into testsuite results. * tests/defs.m4sh: Unset MFLAGS, MAKEFLAGS, MAKELEVEL, __MKLVL__ and MAKE_JOBS_FIFO. * tests/testsuite.at: Likewise. Fixes warnings in test logs when the user uses 'make -jN check' and inner $MAKE invocations can't connect to the job server. Fixes spurious failures of configure-iface.at and of demo-noinst-link tests with BSD and Tru64 make if the user uses 'make -k', as the exit status of the latter is not reliable. 2010-09-01 Gary V. Vaughan Remove announce-gen.m4sh and mailnotify.m4sh. * libltdl/config/announce-gen.m4sh: Removed. This script has no apparent connection to libtool functionality, and mostly duplicates the better maintained gnulib announce-gen script. * libltdl/config/mailnotify.sh: Removed. This script was used by only clcommit.m4sh and announce-gen.m4sh, both of which are now removed too. * Makefile.maint (announce-gen, libltdl/config/mailnotify): Targets removed. * bootstrap: Remove the mailnotify regeneration warning. * HACKING (Release Procedure): Remove references to announce-gen. (Alpha release note template, Full release note template): Reinstated from before announce-gen was introduced. Remove clcommit.m4sh. * clcommit.m4sh: Removed. This script was written to help keep ChangeLog and commit messages in sync when committing to CVS, and is an anachronism now that Libtool uses git. * Makefile.maint (commit): Target removed. * bootstrap: Don't generate commit. * HACKING (Release Procedure): Adjusted. 2010-08-31 Peter Rosin archive-in-archive.at passes with Microsoft lib. * tests/archive-in-archive.at: Tighten test to check that the desired object files are indeed part of the archive. Microsoft lib still passes, so remove the expected failure for that case. Dump archiver output to the log when testing @file support. * libltdl/m4/libtool.m4 (_LT_PROG_AR): Redirect stdout to config.log when testing for @file support. Suggested by Ralf Wildenhues. Silence archiver output when testing @file support. * libltdl/m4/libtool.m4 (_LT_PROG_AR): Redirect stdout and stderr to the bit bucket when testing for @file support. 2010-08-31 Gary V. Vaughan Remove double `Generated from foo.m4sh' lines. We now require a modern Autoconf to bootstrap libtool, which will add the `Generated by ...' boiler-plate automatically, so we can remove the hand-rolled @configure_input@ substitutions we had been doing: * clcommit.m4sh, libtoolize.m4sh, tests/defs.sh, libltdl/config/announce-gen.m4sh, libltdl/config/ltmain.m4sh, libltdl/config/mailnotify.m4sh: Remove @configure_input@. * Makefile.am (edit): Remove configure_input substitution. (libtoolize, libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4) (tests/defs): Don't set `$input' shell variable. * Makefile.maint (announce_gen, libltdl/config/mailnotify) (commit): Likewise. 2010-08-31 Peter Rosin Extract the archive name from the .la file and use $AR (not ar). * Makefile.am: Pass AR through to the testsuite. * tests/archive-in-archive.at: Bump copyright year. Extract archive name from the .la file instead of hardcoding the name, and allow different archivers. Also clarify that the tested functionality is currently broken. 2010-08-30 Ralf Wildenhues tests: skip -Wall -Werror with Tru64 cc in cwrapper test. * tests/cwrapper.at (cwrapper for uninstalled executables): Use a link test rather than a compile test to flesh out unknown compiler flags starting with -W; Tru64/OSF1 cc will happily accept `-Wall -Werror' as indication to pass flags on to subprocesses. tests: avoid getopt-m4sh failures when autom4te is not available. * tests/getopt-m4sh.at (_LT_AT_GETOPT_M4SH_SETUP): Check $M4SH --version, skip on failure. tests: mark 'syntax of .la files' as XFAIL, expose failure. * tests/lalib-syntax.at (syntax of .la files): Assert that the string returned by lt_dlerror after a failure is non-NULL, so the failure shows up on systems other than Solaris. Mark test as expected to fail. Suggested by Bob Friesenhahn. 2010-08-30 Eric Blake Simplify recent configure quoting portability workaround. * configure.ac: Simplify setting of timestamp_string. 2010-08-30 Charles Wilson Update path conversion warning messages * libltdl/config/ltmain.m4sh (func_convert_file_check): Update comments and warning message. (func_convert_path_check): Update warning message. 2010-08-29 Peter Rosin Fix typo when renaming path conversion functions. * tests/testsuite.at: Ensure to_host_file_cmd is passed as a variable setting on the configure line for (new testsuite) tests. 2010-08-29 Ralf Wildenhues Support GCC LTO on GNU/Linux. * libltdl/config/ltmain.m4sh (func_mode_link): Allow through flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols starting with __gnu_lto. (_LT_LINKER_SHLIBS) [linux] : Add $pic_flag for GCC. (_LT_LANG_CXX_CONFIG) [linux] : Likewise. (_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o. * NEWS: Update. Disable GCC LTO for verbose library extraction. * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Temporarily append -fno-lto or -fno-whopr to CFLAGS if CC or CFLAGS (which are substituted with the per-language variables here) contain -flto or match -fwhopr*, respectively. Save and restore CFLAGS properly inside libtool.m4 macros. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Use different temporary variables for saved and restored values of $LIBS, $CFLAGS, to avoid overlap with the *_CONFIG macros. (_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG) (_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Also save and restore $CFLAGS, and override it with per-language flags, so that in case output_verbose_link_cmd uses $CFLAGS, the right flags are used. Work around yet another shell quoting portability issue. * configure.ac: Avoid nonportable quoted alternate variable value in unquoted here document, so Solaris 10 sh and Tru64 ksh do not print spurious extra quotes. Silence order-only configure test for AIX make. * configure.ac: Also drop standard output, for AIX 5.1 make. 2010-08-28 Charles Wilson Minor sysroot fixups. * libltdl/m4/libtool.m4 (_LT_WITH_SYSROOT): Fix typo. * tests/sysroot.at: Search also for crt0.o to accommodate cygwin. 2010-08-28 Charles Wilson [cygwin|mingw|cross-compile]: Path conversion support. * configure.ac: Ensure to_host_file_cmd is available to Makefile. * TODO: Document QoI issue with file name conversion functions. * libltdl/m4/libtool.m4 (_LT_PATH_CONVERSION_FUNCTIONS): New function sets libtool variable $to_host_file_cmd, and employs cache. (_LT_SETUP): Require it. * tests/testsuite.at: Ensure to_host_file_cmd is passed as a variable setting on the configure line for (new testsuite) tests. * Makefile.am (TESTS_ENVIRONMENT): Ensure to_host_file_cmd is included so that it is passed to (old testsuite) tests. * libltdl/config/general.m4sh: Define $lt_sed_naive_backslashify here. * libltdl/config/ltmain.m4sh ($to_host_file_cmd, $to_host_path_cmd): New variables. (func_cygpath): New function. (func_init_to_host_path_cmd): New function. (func_to_host_path): Renamed to... (func_to_host_file): Refactored to... (now uses $to_host_file_cmd). (func_convert_core_file_wine_to_w32): Here. New function. (func_convert_core_msys_to_w32): Here. New function. (func_convert_file_check): Here. New function. (func_convert_file_noop): Here. New function. (func_convert_file_msys_to_w32): Here. New function. (func_convert_file_cygwin_to_w32): Here. New function. (func_convert_file_nix_to_w32): Here. New function. (func_convert_file_msys_to_cygwin): New function. (func_convert_file_nix_to_cygwin): New function. (func_to_host_pathlist): Renamed to... (func_to_host_path): Refactored to... (now uses $to_host_path_cmd and func_init_to_host_path_cmd). (func_convert_path_check): Here. New function. (func_convert_path_front_back_pathsep): Here. New function. (func_convert_core_path_wine_to_w32): Here. New function. (func_convert_path_noop): Here. New function. (func_convert_path_msys_to_w32): Here. New function. (func_convert_path_cygwin_to_w32): Here. New function. (func_convert_path_nix_to_w32): Here. New function. (func_convert_path_msys_to_cygwin): New function. (func_convert_path_nix_to_cygwin): New function. 2010-08-28 Ralf Wildenhues Fix symlist variable path to use _WIN32 instead of __WINDOWS__. * libltdl/config/ltmain.m4sh, libltdl/libltdl/lt_system.h, libltdl/m4/libtool.m4, tests/demo/foo.h, tests/pdemo/foo.h: Change __WINDOWS__ to _WIN32. Report by Charles Wilson. Add $pic_flag to archive_cmds and archive_expsym_cmds. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [GNU ld, netbsd]: Add $pic_flag if ELF. [GNU ld, solaris]: Likewise. [GNU ld, default case]: Likewise. [!GNU ld, freebsd, dragonfly]: Add $pic_flag. [!GNU ld, GCC, hpux9]: Add $pic_flag. [!GNU ld, GCC, hpux10]: Replace -fPIC with $pic_flag [!GNU ld, GCC, hpux11, !hppa*64]: Replace -fPIC with $pic_flag. [!GNU ld, GCC, irix5, irix6, nonstopux]: Add $pic_flag. [!GNU ld, GCC, osf4, osf5]: Likewise. [!GNU ld, GCC, solaris]: Likewise. (_LT_LANG_CXX_CONFIG) [hpux9]: Add $pic_flag if $GXX. [hpux10, hpux11, !hppa*64]: Replace -fPIC with $pic_flag. [irix5, irix6]: Add $pic_flag if $GXX. [osf4, osf5]: Likewise. [solaris]: Add $pic_flag if $GXX and not GCC 2.7. Uniform const'ness of symlist variable lt_preloaded_symbols. On some systems, lt_preloaded_symbols may not be declared const due to relocation issues. C99 requires qualification to match for compatible declarations, so ensure we declare const'ness in the same way everywhere; link-time optimization may otherwise rightfully complain about inconsistencies. Since ltdl.h may not depend upon config.h, rely on system defines for choosing const'ness. * NEWS: Update. * doc/libtool.texi (Dlpreopening): Document this issue. * libltdl/config/ltmain.m4sh (func_generate_dlsyms): [__WINDOWS__, __CYGWIN__, _WIN32_WCE]: Define LT_DLSYM_CONST according to system defines. Remove old shell cruft. Use LT_DLSYM_CONST for lt_${my_prefix}_LTX_preloaded_symbols. * libltdl/libltdl/lt_system.h (LT_DLSYM_CONST): Likewise, define LT_DLSYM_CONST according to system defines. * tests/demo/foo.h (LT_DLSYM_CONST): Likewise. * tests/pdemo/foo.h (LT_DLSYM_CONST): Likewise. * tests/demo/dlmain.c (lt_dlsymlist): Use LT_DLSYM_CONST. * tests/pdemo/longer_file_name_dlmain.c (lt_dlsymlist): Likewise. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Likewise for configure test code. * libltdl/ltdl.c (preloaded_symbols): Use LT_DLSYM_CONST. * libltdl/ltdl.h (LTDL_SET_PRELOADED_SYMBOLS): Likewise. 2010-08-28 Dave Korn Ensure cwrapper magic string is not optimized away. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Declare MAGIC_EXE as volatile. Report by Charles Wilson. 2010-08-28 Ralf Wildenhues Fix quoting in non-XSI func_xform, for IRIX sh. * libltdl/config/ltmain.m4sh (func_xform): Remove spurious extra M4 quotes. Fix response file test for unreliable exit status of IRIX ar. * libltdl/m4/libtool.m4 (_LT_PROG_AR): IRIX ar will not fail over a command-line argument specifying a nonexistent file (such as `@FILE'), so ensure failure with a reponse file containing a nonexistent file. Also, use lt_* variable prefix for temporary variables. Fix AC_LANG_PROGRAM warnings from git Autoconf. * libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Fix underquoted AC_LANG_PROGRAM call. (LT_PROG_AR): Use AC_LANG_PROGRAM. (_LT_LINKER_SHLIBS) [irix, GCC]: Use the right source for the given language. * NEWS: Update. 2010-08-22 Ralf Wildenhues fix AIX testsuite regression * libltdl/config/ltmain.m4sh (func_resolve_sysroot): Partly revert v2.2.10-83-gc45a288: Do not absolutize path here, only do sysroot replacement. (func_mode_link): Adjust. 2010-08-22 Charles Wilson fix --mode=finish * libltdl/config/ltmain.m4sh (func_mode_finish): Invert then/else blocks of the "if $opt_dry_run" conditional. 2010-08-15 Paolo Bonzini improve code for sysroot --mode=finish * libltdl/config/ltmain.m4sh (func_mode_finish): Change sysroot_regex and sysroot_cmd delimiter from pipe to slash. Wrap the entire for loop with "if $opt_dry_run...fi" and print an explanatory message for the --dry-run case. 2010-08-12 Paolo Bonzini add libtool --mode=finish mode for sysroot * doc/libtool.texi (Finish mode): Document behavior when *.la files are passed. * libltdl/config/ltmain.m4sh (func_mode_finish): Eliminate sysroot or `=' signs representing it from files in $libs. * tests/sysroot.at (SYSROOT_TESTS): Test for presence of sysroot references before running libtool --mode=finish, and for absence afterwards. reorganize parsing of --mode=finish arguments * libltdl/config/ltmain.m4sh (func_mode_finish): Split arguments for directories and *.la files. fix sysroot handling for deplibs of preopened libtool libs * libltdl/config/ltmain.m4sh: Pass $dependency_libs of preopened libtool through func_resolve_sysroot. fix sysroot tests to pass on Fedora 13 * tests/sysroot.at: Link $prefix/include into the sysroot as well, as required by newer GCC. 2010-07-29 Paolo Bonzini initial version of the NEWS entry * NEWS: Document sysroot support. add sysroot test * Makefile.am (TESTSUITE_AT): Add tests/sysroot.at. * tests/sysroot.at: New. emit sysrooted paths when installing .la files * libltdl/config/ltmain.m4sh (func_replace_sysroot): New. (func_mode_link): Prepend paths in $libdir with the sysroot. Further, replace the sysroot with = (using func_replace_sysroot) whenever such a path is written in a .la file. process postdeps to include sysrooted paths * libltdl/m4/libtool.m4 (_LT_FUNC_STRIPNAME_CNF): New (from Charles Wilson). (_LT_SYS_HIDDEN_LIBDEPS): Require it. Use func_stripname_cnf to convert sysroot (-L= and -R=) usage in postdeps. Adjust the code because -L, -R and -l flags will now always be separated from the rest of the argument. handle sysrooted paths when reading dependencies to la files * libltdl/config/ltmain.m4sh (func_mode_execute, func_mode_install, func_mode_link): Whenever a .la file occurs in another .la file, expand the sysroot path in it. 2010-07-28 Paolo Bonzini teach libtool -L= and -R= * libltdl/config/ltmain.m4sh (func_resolve_sysroot): New. (func_mode_link): Always pass result of stripping -L and -R to func_resolve_sysroot before using it. Remove absolute path expansion when func_resolve_sysroot subsumes it. Expand sysroot in -rpath. When processing dependent libraries also resolve sysroot paths there. add --with-sysroot * libltdl/m4/libtool.m4 (_LT_HOST_NONCANONICAL, _LT_WITH_SYSROOT): New. (LT_SETUP): Require _LT_WITH_SYSROOT. handle sysroot flags * libltdl/config/ltmain.m4sh (func_mode_link): Recognize --sysroot option. 2010-08-27 Ralf Wildenhues * NEWS: Only bootstrapping needs new Automake and Autoconf. check-interactive and check-noninteractive for both testsuites. * Makefile.am (COMMON_TESTS, TESTS): Split into ... (NONINTERACTIVE_TESTS, INTERACTIVE_TESTS): ... these new variables. (check-interactive-new): Rename from check-interactive. (check-noninteractive-new): Rename from check-noninteractive. (check-interactive-old, check-noninteractive-old): New targets. (check-interactive, check-noninteractive): Depend on the respective targets for the old and the new test suites. * doc/libtool.texi (Test descriptions): Simplify description about check-interactive and check-noninteractive. Add index entries. Adjust docs for renaming and for parallel-tests. * README: Update example TESTS setting. * README.alpha: Likewise. * doc/libtool.texi (Test descriptions): Update for test renaming, adjust descriptions accordingly. Update VERBOSE handling for parallel-tests driver. * tests/defs.m4sh: Default to verbose output, drop now-unneeded handling of 'VERBOSE=no'. * README: Update example usage. * README.alpha: Likewise. * doc/libtool.texi (Test descriptions, When tests fail): Remove unneeded VERBOSE recommendations. Point to per-test log files and test-suite.log summary file. Enable parallel-tests test driver for the old testsuite. * configure.ac: New configure test to find out whether `make' supports order-only prerequisites; set @ORDER@ accordingly. (AM_INIT_AUTOMAKE): Enable parallel-tests option. * tests/defs.m4sh (prefix): Derive install prefix for tests from the test name, to avoid clashes. * Makefile.am (CXX_TESTS, F77_TESTS, FC_TESTS, COMMON_TESTS): Reformat. Adjust for renamed tests. Add dependencies between the respective log files of the tests, to ensure proper ordering. Use order-only dependencies if possible, between test groups that use the same directory. (clean-local-legacy): Remove `_inst-*' directories as well. Prompted by suggestion from Bob Friesenhahn. New alias scripts for old tests run more than once. * tests/cdemo-shared-exec.test, tests/cdemo-shared-make.test, tests/cdemo-static-exec.test, tests/cdemo-static-make.test, tests/cdemo-undef-exec.test, tests/cdemo-undef-make.test, tests/demo-nofast-exec.test, tests/demo-nofast-inst.test, tests/demo-nofast-make.test, tests/demo-nofast-unst.test, tests/demo-nopic-exec.test, tests/demo-nopic-make.test, tests/demo-pic-exec.test, tests/demo-pic-make.test, tests/demo-shared-exec.test, tests/demo-shared-inst.test, tests/demo-shared-make.test, tests/demo-shared-unst.test, tests/demo-static-exec.test, tests/demo-static-inst.test, tests/demo-static-make.test, tests/demo-static-unst.test, tests/depdemo-nofast-exec.test, tests/depdemo-nofast-inst.test, tests/depdemo-nofast-make.test, tests/depdemo-nofast-unst.test, tests/depdemo-shared-exec.test, tests/depdemo-shared-inst.test, tests/depdemo-shared-make.test, tests/depdemo-shared-unst.test, tests/depdemo-static-exec.test, tests/depdemo-static-inst.test, tests/depdemo-static-make.test, tests/depdemo-static-unst.test, tests/f77demo-shared-exec.test, tests/f77demo-shared-make.test, tests/f77demo-static-exec.test, tests/f77demo-static-make.test, tests/fcdemo-shared-exec.test, tests/fcdemo-shared-make.test, tests/fcdemo-static-exec.test, tests/fcdemo-static-make.test, tests/mdemo-shared-exec.test, tests/mdemo-shared-inst.test, tests/mdemo-shared-make.test, tests/mdemo-shared-unst.test, tests/mdemo-static-exec.test, tests/mdemo-static-inst.test, tests/mdemo-static-make.test, tests/mdemo-static-unst.test, tests/tagdemo-shared-exec.test, tests/tagdemo-shared-make.test, tests/tagdemo-static-exec.test, tests/tagdemo-static-make.test, tests/tagdemo-undef-exec.test, tests/tagdemo-undef-make.test: New files. Require Automake 1.11.1 for Libtool, enable color-tests. * configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1. Enable color-tests. (LTDL_SUBDIR_LIBOBJS): Remove now-obsolete conditional and feature test for Autoconf 2.59 and Automake 1.9.x workaround. * Makefile.am: Simplify accordingly. * bootstrap: Remove obsolete WORKING_LIBOBJ_SUPPORT workarounds for Autoconf 2.59 and Automake 1.9.6. 2010-08-23 Charles Wilson Fix syntax for cygwin-cross libltdl/m4/argz.m4: Add quotes around variable, which may contain the multiword value 'guessing no'. 2010-08-22 Ralf Wildenhues configure: use Autobuild AB_INIT if available. * configure.ac: Call AB_INIT if it is defined, with $autobuild_mode as argument, to be set at configure time. Set AB_VERSION to the Libtool version string. * HACKING: Update. Fix getopt tests to skip with Autoconf < 2.61. * tests/getopt-m4sh.at (_LT_AT_GETOPT_M4SH_SETUP): Skip the test if 'autom4te --language=m4sh' exits 63 because version 2.61 is required. Allows the testsuite to complete successfully with Autoconf 2.59 and Automake 1.9.6. Tidy and fix clean and distclean rules for old testsuite. * Makefile.am (clean-local-legacy): Use $(CONF_SUBDIRS) instead of hard-coding the list of test directories. Use $(AM_MAKEFLAGS). (fake-distclean-legacy): New phony rule, to create fake Makefile files if needed so that the automake-generated distclean-recursive rule can work properly. (distclean_recursive): New helper variable. (distclean-recursive): Depend on fake-distclean-legacy. 2010-08-22 Paolo Bonzini Fix sed_make_literal_regex. * libltdl/config/general.m4sh (sed_make_literal_regex): Fix definition. 2010-08-15 Paolo Bonzini Factor the sed command used to make a regex from a literal. * libltdl/config/general.m4sh (sed_make_literal_regex): New. * libltdl/config/ltmain.m4sh (func_cygming_dll_for_implib_fallback_core): Use it. Suggested by Ralf Wildenhues. 2010-08-21 Rainer Tammer (tiny change) Avoid issues with AIX resident shared libraries in old testsuite. * tests/defs.m4sh [aix]: Remove file mode permission for others, so shared libraries are not kept in memory after execution. Fixes failures of repeated mdemo-inst.test with on AIX 5.3. 2010-08-21 Ralf Wildenhues Skip part of versioning test on AIX. * tests/versioning.at (versioning): The AIX linker always records the unversioned library name, even with runtimelinking, so skip the execution test for the incompatibly upgraded library. Report by Rainer Tammer. Remove dead code from versioning test. * tests/versioning.at (versioning): No need to build unused prog3. 2010-08-20 Ralf Wildenhues Don't hide the table of contents in the manual. * doc/libtool.texi: Move the table of contents to the beginning. Prompted by patch from Bruno Haible against Automake. Remove superfluous dependency in Makefile.am. * Makefile.am (tests/demo-conf.test): Remove dependency on libtool, this test is a primary source and not generated. Bump copyright years in manual. * doc/libtool.texi: Bump copyright years. 2010-08-13 Peter Rosin Allow the use of a listing file if the archiver supports it. * libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): Move detection of a suitable archiver... (_LT_PROG_AR): ...to here. New macro, also detect if the archiver supports a listing file with the new variable archiver_list_spec. * libltdl/config/ltmain.m4sh: If the archiver supports a listing file, use it when max_cmd_len is exceeded. This is needed for tool chains such as MSVC which do not support piece by piece linking (-r -o). * doc/libtool.texi (libtool script contents): Update with archiver_list_spec description. 2010-08-10 Gary V. Vaughan (tiny change) Make testsuite compatible with Autoconf 2.62 again. * tests/getopt-m4sh.at (AT_CHECK): Autotest 2.62 chokes on unquoted '#' in AT_CHECK, so replace all uses with '@%:@' quadrigraph. Suggested by Eric Blake Reported by Ralf Wildenhues 2010-08-09 Ralf Wildenhues Fix more problematic code from "Add func_append_quoted and do..." * libltdl/config/ltmain.m4sh (func_mode_link): Revert back func_append instances that as assignments relied on the shell not performing word splitting on the right hand side of the assignment. Fix another typo on "Add func_append_quoted and do..." * libltdl/config/ltmain.m4sh (func_mode_link): Fix regression in computation of finalize_rpath introduced in v2.2.10-40-g0da7d80, fixing several testsuite failures on AIX. Report by Rainer Tammer. 2010-08-07 Ralf Wildenhues Avoid unwanted error message in configure output. * libltdl/m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Try print in subshell, so eventual `print: not found' is hidden reliably. Fix compilation of program sources on AIX. * tests/lt_dlopenext.at (lt_dlopenext error messages): Do not use $LIBTOOL when compiling plain object, AIX by default does not enable static archives. * tests/ltdl-libdir.at (libdir of installed modules): Likewise. Report by Rainer Tammer. Do not call toplevel configure in non-VPATH build. * tests/deplibs-mingw.at (deplibs without file command): Use LT_AT_CONFIGURE for consistency, update comment about why it might fail. * tests/pic_flag.at (override pic_flag at configure time): Skip test if we are building in-tree. Report by Rainer Tammer. Allow running pic_flag test with different shell. * tests/testsuite.at (LT_AT_CONFIGURE): Accept optional second argument specifying the configure script to run. * tests/pic_flag.at (override pic_flag at configure time): Use LT_AT_CONFIGURE. Ensure not to reverse preserving of --debug for relinking/finish. * libltdl/config/ltmain.m4sh (func_check_version_match): Only preserve '--debug' switch if $opt_debug is not equal to ':'. * tests/help.at (debug tracing): New test group. Report by Rainer Tammer. 2010-08-06 Ralf Wildenhues Fix AC_NO_EXECUTABLES test failure on AIX. * libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Wrap link test in AC_CACHE_VAL, using cache variable $lt_cv_aix_libpath. * tests/no-executables.at (AC_NO_EXECUTABLES): Preset it, to avoid link test. Bug report by Rainer Tammer. Fix ltdl-libdir test for C++ compilers. * tests/ltdl-libdir.at (libdir of installed modules): Declare module function as extern "C". 2010-08-04 Ralf Wildenhues Let `libtool' without arguments point to `--help' again. * libltdl/config/ltmain.m4sh (func_check_version_match): Remove duplicate and wrong error check. * tests/help.at (standard command line options): Extend test. Report by Rainer Tammer. Avoid syntax error due to shift of nonexistent parameter. * libltdl/config/ltmain.m4sh : Only shift if there is a positional parameter to shift. Fixes `libtool --help' when dash is used. Report by Rainer Tammer. Fix testsuite errors due to shell quoted parameter expansion issue. * tests/getopt-m4sh.at (_LT_AT_GETOPT_M4SH_SETUP): Insert space between double-quoted and unquoted shell parameter, as bash 4.0.28 doesn't add one in its output if the expansion of the second one starts with a space. (short option splitting, enhanced shell short option splitting) (long option splitting, XSI long option splitting): Add space in expected output. Fixes testsuite failures on AIX, FreeBSD, etc. Report by Rainer Tammer. 2010-08-03 Ralf Wildenhues Fix build failure with AIX sh due to shell quoting error. * libltdl/config/ltmain.m4sh (func_append_quoted): Document that this function inserts a separator space. (func_mode_compile): Do not pass extra space here. Fixes regression introduced in v2.2.10-49-gc13532a. Report by Rainer Tammer. 2010-08-02 Ralf Wildenhues Fix pic_flag test unportabilities. * tests/pic_flag.at (override pic_flag at configure time): Skip test if the compiler produces a warning containing `fpic'. Do not use nonportable `grep -e', for Solaris. Report by Charles Wilson. 2010-08-01 Paolo Bonzini Fix bug in postdeps computation * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Actually concatenate $prev and $p. 2010-07-26 Charles Wilson Don't always skip XSI tests * tests/getopt-m4sh.at: Use new signature as implemented by de8a0992b21b76a13c302cf48588ad5f6042595c, when determining whether to test Extended-shell functions. 2010-07-18 Peter Rosin * tests/stresstest.at: Link with main.lo when liba is shared and linking main with -no-install. 2010-07-18 Peter Rosin * tests/stresstest.at [MSVC]: dllimport all imported variables. 2010-07-17 Peter Rosin dllimport the variable for MSVC in link-order.at * tests/link-order.at [MSVC]: Makes the test pass by dllimporting imported variables when working with shared libraries. 2010-07-08 Peter Rosin Ralf Wildenhues Make preloading heed libname_spec. Fixes testsuite failure for lt_dladvise.at on MSYS/MSVC. * libltdl/ltdl.c (libprefix): New static variable describing the prefix of static archives. (try_dlopen): Use libprefix. * libltdl/m4/ltdl.m4 (_LTDL_SETUP): Export prefix of static archives to config.h. Also fix assignment of LTDLOPEN to be more efficient and less error prone while at it. 2010-07-08 Gary V. Vaughan Rename _LT_PROG_XSI_REPLACE macro to _LT_PROG_FUNCTION_REPLACE. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Rename to _LT_PROG_REPLACE_SHELLFNS. (_LT_PROG_XSI_REPLACE): Rename to _LT_PROG_FUNCTION_REPLACE. (_LT_PROG_FUNCTION_REPLACE): Change decorator comment to use 'Extended shell' rather than 'XSI' on successful replacement. * libltdl/config/general.m4sh (func_dirname, func_basename) (func_dirname_and_basename, func_stripname): Change decorator comment to use 'extended shell' rather than 'XSI' on fallback implementations. * libltdl/config/getopt.m4sh (func_split_short_opt) (func_split_long_opt): Ditto. * libltdl/config/ltmain.m4sh (func_append, func_append_quoted) (func_arith, func_len, func_lo2o, func_xform): Ditto. * tests/getopt-m4sh.at (_LT_AT_XSI_FUNC_EXTRACT): Rename to _LT_AT_EXTENDED_SHELL_FUNC_EXTRACT. (_LT_AT_EXTENDED_SHELL_FUNC_EXTRACT): Change regular expression to match new replacable function decorator comments. 2010-07-08 Peter Rosin Optimize assignment of output_la. * libltdl/config/ltmain.m4sh (func_mode_link): Save two fork/exec instances. Report by Ralf Wildenhues. 2010-07-08 Gary V. Vaughan Fix a cut-n-pasto in "2010-07-07 Charles Wilson" patch. * libltdl/config/ltmain.m4sh (func_mode_link): Remove spurious variable dereference. 2010-07-07 Gary V. Vaughan Tidy m4 comment header underline. * libltdl/m4/libtool.m4 (_LT_CHECK_SHAREDLIB_FROM_LINKLIB): Make sure hyphens in function name comment header underline line up. 2010-07-07 Charles Wilson [cygwin|mingw] fix dlpreopen with --disable-static * libltdl/config/general.m4sh (func_tr_sh): New function. * libltdl/config/ltmain.m4sh (func_generate_dlsyms) [cygwin|mingw]: Obtain DLL name corresponding to import library by using value stored in unique variable libfile_$(transliterated implib name). If that fails, use $sharedlib_from_linklib_cmd to extract DLL name from import library directly. Also, properly extract dlsyms from the import library. (func_mode_link) [cygwin|mingw]: Prefer to dlpreopen DLLs over static libs when both are available. When dlpreopening DLLs, use linklib (that is, import lib) as dlpreopen file, rather than DLL. Store name of associated la file in unique variable libfile_$(transliterated implib name) for later use. (func_win32_libid): Accomodate pei-i386 import libs as well as pe-i386. (func_cygming_dll_for_implib): New function. (func_cygming_dll_for_implib_fallback): New function. (func_cygming_dll_for_implib_fallback_core): New function. (func_cygming_gnu_implib_p): New function. (func_cygming_ms_implib_p): New function. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust sed expressions for lt_cv_sys_global_symbol_to_c_name_address and lt_cv_sys_global_symbol_to_c_name_address_lib_prefix as trailing space after module name is optional. (_LT_LINKER_SHLIBS) [cygwin|mingw][C++]: Set exclude_expsyms correctly for $host. Simplify regular expression in export_symbols_cmds. (_LT_LINKER_SHLIBS) [cygwin|mingw|pw32][C]: Set exclude_expsyms correctly for $host. Enable export_symbols_cmds to identify DATA exports by _nm_ prefix. (_LT_CHECK_SHAREDLIB_FROM_LINKLIB): New macro sets sharedlib_from_linklib_cmd variable. (_LT_DECL_DLLTOOL): New macro ensures DLLTOOL is always set. 2010-07-05 Peter Rosin * tests/export.at [MSVC]: dllimport all imported variables. 2010-07-01 Ralf Wildenhues Peter Rosin Support for response files with $NM. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) : New tag variable. Set it to '@' if input files can be passed to $NM in a file named with the '@' option. * libltdl/config/ltmain.m4sh (func_mode_link): When nm_file_list_spec is nonempty, use it to avoid skipped_export. * doc/libtool.texi (libtool script contents): Document new variable. 2010-07-04 Ralf Wildenhues Fix ccache test for MSVC. * tests/static.at (ccache -all-static): Ignore compiler stderr. Reported by Peter Rosin. 2010-07-03 Charles Wilson Avoid false failures caused by filesystem interaction * tests/dlloader-api.at (dlloader API): Use uglified names for pseudo-modules. 2010-07-03 Peter Rosin Fix typo in "Add func_append_quoted and do..." * libltdl/config/ltmain.m4sh (func_mode_compile): Use func_append_quoted instead of func_append. 2010-07-02 Peter Rosin Don't trigger file name expansion when embedding manifests. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ cygwin, mingw, cegcc ] : Remove all spaces in the case statement of postlink_cmds to make file name expansion more unlikely. (_LT_LANG_CXX_CONFIG): Likewise, but also add the missing |. 2010-07-01 Peter Rosin Fix regression caused by "Add func_append_quoted and do..." * libltdl/config/ltmain.m4sh (func_mode_link): Remove leftover "_libs" trash. 2010-06-28 Peter Rosin For MSVC, embed the manifest as a resource in the executable. Fixes a lot of testsuite failures with MSVC 2003 (v8.0) and above (and perhaps also MSVC .Net) related to running programs that have been moved (e.g. installed) without their manifests also having been moved. * libltdl/m4/libtool.m4 (_LT_PATH_MANIFEST_TOOL): New macro that locates the Manifest Tool (mt) and verifies that it is indeed the manifest tool. The result is stored in the new variable MANIFEST_TOOL. (_LT_LINKER_SHLIBS) : New tag variable. [ cygwin, mingw, cegcc ] : Embed the manifest file as a resource. Make sure the embedding work regardless of if the @OUTPUT@ file name includes a trailing $EXEEXT. (_LT_LANG_CXX_CONFIG): Likewise. (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Require the above _LT_PATH_MANIFEST_TOOL. * libltdl/config/ltmain.m4sh (func_mode_link): After linking a program, replace @OUTPUT@ in $postlink_cmds and then execute the commands. * doc/libtool.texi (libtool script contents): Document new postlink_cmds variable. (LT_INIT): Add that the MANIFEST_TOOL environment variable can be used to override the manifest tool to use. * tests/exeext.at: New. Make sure linking with both -o prog and -o prog$EXEEXT works. * Makefile.am (TESTSUITE_AT): Update. (TESTS_ENVIRONMENT): Propagate $(MANIFEST_TOOL) to the testsuite. * NEWS: Add note of the new MANIFEST_TOOL environment variable. 2010-06-24 Peter Rosin Add MSVC support. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [mingw, cygwin]: Add support for the Microsoft C/C++ Compiler (cl) relying on help from the compile script in Automake. * NEWS: Add note of the above. 2010-07-01 Gary V. Vaughan Skip `enhanced shell option appending' test when not available. * tests/getopt-m4sh.at [enhanced shell option appending]: _LT_AT_XSI_FUNC_EXTRACT will not be able to find the enhanced libtool func_append function if the replacement wasn't substituted by configure, since the decorator comments will be different - in that case simply skip the test. 2010-06-30 Gary V. Vaughan Add func_append test cases for smart and retarded implementations. * tests/getopt-m4sh.at (_LT_AT_FALLBACK_FUNC_EXTRACT): New macro to extract a fallback function implementation from ltmain.m4sh. [option appending]: Use it for a test of the fallback implementation of func_append. [enhanced shell option appending]: And also test the enhanced implementation. * libltdl/config/ltmain.m4sh (func_append_quoted): Fix missing \\ to escape a quoted space for eval. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Fix missing $ in dereference of func_append inline replacement for retarded shells. 2010-06-29 Gary V. Vaughan Correct func_split_short_opt comment cut-n-pasto. * libtool/config/getopt.m4sh (func_split_short_opt): Fix the function comment. Use a real XSI compliant func_split_short_opt substitution. * libtool/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Remove test ${foo:n:m} substrings, instead adding a ${foo%??} check to the existing XSI tests. (_LT_PROG_XSI_SHELLFNS): Remove the ${foo:n:m} based func_split_short_opt substitution in favour of a properly XSI compliant substitution. Suggested by Paolo Bonzini. 2010-06-28 Gary V. Vaughan Add func_append_quoted and do inline func_append substitutions. * libtool/config/ltmain.m4sh: Replace all occurrences of `foo="$foo bar"' with func_append. No decorator comment was added since /func_append [a-zA-Z0-9_]* "/ is already an excellent match regexp, and additional comments would only complicate things. (func_append_quoted): New function that quotes a value with func_quote_for_eval before appending it. To avoid quoting the whitespace in the passed value, a single whitespace is added automatically. Changed callers where possible. * libtool/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Perform a `+=' implementation substitution for func_append_quoted. More importantly, systematically replace matching func_append calls with inline `+=' when supported (for maximum speed), and longhand `foo="$foo bar"' otherwise to avoid the function overhead. Add an XSI replacement for func_split_short_opt, with test cases. * libltdl/config/getopt.m4sh (m4go_shortnoargs): Remove 'v' now that getopt.m4sh doesn't steal that letter for the --version short option. * libltdl/config/ltmain.m4sh (M4SH_GETOPTS): We can now use 'v' as a short option for '--verbose'. * libltdl/config/getopt.m4sh (m4go_printopts): Add back in the leading '-' for remaining non-argument short options. (func_split_short_opt): Use the correct sed script variable. * libltdl/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Also ensure that XSI substring extraction is supported. (_LT_PROG_XSI_SHELLFNS): Use XSI substring extraction to split short options to avoid unnecessary forks if the host shell supports that. * tests/getopt-m4sh.at: New tests for getopt.m4sh coverage. * Makefile.am (TESTSUITE_AT): Add getopt-m4sh.at. (TESTS_ENVIRONMENT): Pass M4SH and SED for substition into the m4sh expansion performed in tests/getopt-m4sh.at. 2010-06-27 Gary V. Vaughan Add missing case branch terminators. * libltdl/config/ltmain.m4sh: Fixed everal case branches with missing ';;' terminators. Use TAB-SPACE in preference to SPACE-TAB. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_REPLACE): Some editors might optimise away the SPACE in SPACE-TAB sequences, so use TAB-SPACE just in case. Reported by Ralf Wildenhues Amend a missed opt_mode rename instance in ltmain.m4sh. * libltdl/config/ltmain.m4sh : Rename to opt_mode. Fix portability regressions in today's earlier changeset. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_REPLACE): `sed -i' is not portable; use `mv -f ...|| cp -f ...' instead. Add an initial backslash to sed `c' substitutions with leading whitespace, so that indentation is not removed by some non-POSIX compliant sed implementations. (_LT_PROG_XSI_SHELLFNS): Display a diagnostic warning message if one or more XSI function replacements failed. getopt.m4sh generated libtool option parser, and XSI improvements. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Moved portable shell versions of various utility functions from here... * libltdl/config/getopt.m4sh (func_split_long_opt): ...to here... * libltdl/config/general.m4sh (func_dirname, func_basename) (func_dirname_and_basename, func_strip_name): ...here... * libltdl/config/ltmain.m4sh (func_append, func_arith, func_len) (func_lo2o, func_xform): ...and here. * libltdl/config/libtool.m4 (_LT_PROG_XSI_REPLACE): New macro that expands into a sed command for replacing the contents of a suitably decorated shell function with an alternate XSI implementation. (_LT_PROG_XSI_SHELLFNS): Use it to replace the portable shell versions of the functions above with equivalent XSI implementations that avoid unnecessary forks if the host shell supports that. * libltdl/config/ltmain.m4sh: Replace hand written shell code with a call to M4SH_GETOPTS. Rename some option variables in the client code to match the generated option parser settings. * libltdl/config/general.m4sh (func_echo, func_error) (func_warning): Use $opt_mode instead of obsoleted $mode in message leader. * libltdl/config/getopt.m4sh (m4_version_prereq): This file requires m4sugar.m4 from Autoconf-2.61 or newer. 2010-06-24 Charles Wilson [cygwin] Refactor C++ exception handling for Win32 correctness * tests/exception.at (common.h): New file, refactored from (module.h): Move declaration of modexc to libcommon. Include common.h. Use explicit import/export markings for symbols when building on win32 or cygwin. (common.cpp): New file. (module.cpp): Ensure correct symbols markings when including module.h. (lib.h): Use explicit import/export markings for symbols when building on win32 or cygwin. (lib.cpp): Ensure correct symbol markings when including lib.h. (main.cpp): Include common.h. (commands): Ensure correct symbol markings when compiling main.cpp, and lib.cpp, and module.cpp. Add command to compile common.cpp, and to link libcommon.la. Add libcommon.la when linking module.la and main. Add command to install libcommon.la. 2010-06-21 Gary V. Vaughan Ensure getopts.m4sh is compatible with Autoconf-2.61 and newer. * libltdl/config/getopt.m4sh (m4_chomp): Ensure this macro is implemented even if Autoconf's m4sugar.m4 doesn't provide it. (m4go_expand): New macro based on Autoconf-2.64 m4_expand. Use it everywhere incase m4sugar.m4 doesn't have an implementation. (m4_ifnblank): Replace all uses with m4_ifval, which was available long before m4_ifnblank was introduced. 2010-06-20 Ralf Wildenhues Fix clean mode for HP-UX 11.31 sh. * libltdl/config/ltmain.m4sh (func_mode_uninstall): Do not try to match a null string in a case pattern, even with surrounding spaces. Fixes `lt_dlopenadvise library loading' test. Add comment for exception handling module unloading issue. * tests/exceptions.at (C++ exception handling): Add comment for last patch. Fix flags test failure when ld is used as linker. * tests/flags.at (passing CC flags through libtool): When $LD is used for linking libraries, ensure flags passed with `-Wc,' are not passed through to $LD, but flags passed with `-Wl,' use $wl when linking programs. Fixed testsuite failure on HP-UX 10.20. 2010-06-19 Charles Wilson [cygwin] Fix segfault in C++ exception handling test * tests/exceptions.at (main.cpp:exceptions_in_module): Move dlclose outside catch block; otherwise __cxa_end_catch (part of the cygwin g++ ABI) accesses pointers to data inside unloaded DLL. This is a platform ABI-specific bug, but is likely common to many platforms' g++ and/or other C++ compilers. 2010-06-19 Ralf Wildenhues Fix srcdir computation for manual runs of old tests. * tests/defs.m4sh: Strip trailing `/tests' from srcdir, to allow `$srcdir/tests/FOO.test' to be run from the top build directory. Clean up @var handling in the manual. * doc/libtool.texi: Throughout the manual, replace @var with @samp or @code as appropriate, ensure the argument of remaining @var uses are lower-case. Let the bootstrap script fail upon errors. * bootstrap: Enable errexit. Fix execute mode test for OSF/1 5.1. * tests/execute-mode.at (execute mode): Do not use grep -F with an empty pattern. * THANKS: Update. Report by Jay K. Use config.cache variable for PIC flag, to allow override. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) : Save result, and allow override, through cache variable lt_cv_prog_compiler_pic{,_CXX,_F77,_FC}. The cache variable needs to contain an eventual -DPIC. * tests/pic_flag.at (override pic_flag at configure time): New file, new test. * Makefile.am (TESTSUITE_AT): Update. * NEWS, THANKS: Update. Suggestion by Joakim Tjernlund and Paolo Bonzini. 2010-06-16 Ralf Wildenhues Optimize func_ltwrapper_scriptname to assume a cwrapper. * libltdl/config/ltmain.m4sh (func_ltwrapper_scriptname): Do not call func_ltwrapper_executable_p again here, this function is documented to allow being called with wrapper executables. Fix bootstrap script to cope with changed AC_INIT arguments. * bootstrap: When extracting PACKAGE and VERSION from AC_INIT arguments, be sure to remove a 'GNU ' prefix and lowercase the package name for PACKAGE. Also set PACKAGE_NAME and PACKAGE_URL appropriately for GNU software. Pass these variables to the make commands creating tests/package.m4 and other files. * Makefile.am (edit): Fix substitution of PACKAGE_NAME and PACKAGE_STRING. * libltdl/config/announce-gen.m4sh: Use @PACKAGE@ not @PACKAGE_STRING@. 2010-06-15 Peter Rosin On Windows, find potential libs regardless of file name case. * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD), libltdl/config/ltmain.m4sh (func_mode_link): On Windows, find potential libs regardless of file name case. * tests/nocase.at: New test, to check for regressions of the above. * Makefile.am: Add above new test. * doc/libtool.texi (libtool script contents): Document new variables. * NEWS: Updated. 2010-06-15 Philip Allison (tiny change) Avoid GCC -Wall compiler warning in dlopen self test. * libltdl/m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): Fix unused variable warning in test program. * THANKS: Update. 2010-06-15 Ralf Wildenhues Fix cleaning of uninstalled w32 shell wrapper in subdirs. * libltdl/config/ltmain.m4sh (func_mode_uninstall): Do not override global objdir variable, instead use odir for the directory of to-be-removed files. Drop unneeded origobjdir. Report by Charles Wilson. 2010-06-14 Ralf Wildenhues Enable colored Autotest testsuite output if available. * tests/testsuite.at: Move AT_INIT call down to late in the file, all prior code can go beforehand. Call AT_COLOR_TESTS if defined. 2010-06-14 Peter O'Gorman Pass resident test with --disable-shared too. * tests/resident.at: use LTDL_SET_PRELOADED_SYMBOLS. 2010-06-13 Peter O'Gorman Test with --disable-shared at release time too. * HACKING: Note it. Avoid failure for --disable-shared. * tests/lt_dladvise.at: Hack. Use LTDL_SET_PRELOADED_SYMBOLS to avoid failure. * tests/exceptions.at: Use it. 2010-06-13 Ralf Wildenhues Print Libtool project URL in program --help output. * configure.ac (AC_INIT): Set PACKAGE argument to `GNU Libtool', so Autoconf knows this is GNU software. For Autoconf < 2.64, if AC_PACKAGE_URL is not defined, substitute PACKAGE_URL. * Makefile.am (edit): Substitute PACKAGE_URL. ($(srcdir)/tests/package.m4): Also depend on Makefile.am. Define AT_PACKAGE_URL, for `tests/testsuite --help' output. * libltdl/config/getopt.m4sh (func_help): Also extract comment lines that mention a home page and general GNU help. * libltdl/config/ltmain.m4sh: Use @PACKAGE_BUGREPORT@ instead of hard-coded list address. Also mention Libtool home page and general GNU help web page. * libtoolize.m4sh: Likewise. 2010-06-12 Peter Rosin Ralf Wildenhues Improve libdir usage from within ltdl on MinGW. * libltdl/ltdl.c (parse_dotla_file) [__WINDOWS__]: Read the libdir entry in the .la file, but accept it only if it is not a unix-style absolute name. * tests/ltdl-libdir.at: New test that checks if ltdl finds an installed module via the libdir variable in the .la file. On MinGW, use a Windows-style libdir name including drive spec. * Makefile.am: Add above. 2010-06-11 Peter O'Gorman Skip bindir install test if we're not building shared. * tests/bindir.at: Skip install test if necessary. * THANKS: Update. Report by Michael E Faenza. 2010-06-11 Gary V. Vaughan Use getopt.m4sh to generate libtoolize option parser. * libtoolize.m4sh: Replace hand written shell code with a call to M4SH_GETOPTS. Move some premature initialization from the preamble to the main part of the script. Exit with an error on spurious additional non-option arguments. (envopts): Integrate LIBTOOLIZE_OPTIONS pre-parsing into the main option parsing loop. (opt_copy): Use in place of and in the reverse sense of the old opt_link variable. 2010-06-10 Peter O'Gorman Create reloadable object files with non-pic objects too. * libltdl/config/ltmain.m4sh: When not building a shared library, use the non-pic objects to create a reloadable object, because pic objects do not exist. 2010-06-10 Ralf Wildenhues Ensure libltdl is up to date for check-local. * Makefile.am (LTDL_BOOTSTRAP_DEPS): New variable. (all-local): Use it to simplify dependencies. (testsuite_deps_uninstalled): Add $(LTDL_BOOTSTRAP_DEPS). Report by Peter Rosin. 2010-06-10 Gary V. Vaughan Support shell tracing inside functions even with ksh. * libltdl/config/getopt.m4sh: Set $opt_debug to be either `:' or `set -x' depending on whether --debug was parsed to match usage in libtoolize.m4sh and ltmain.m4sh. * clcommit.m4sh, libltdl/config/announce-gen.sh: Instead of `$opt_debug && ...', use `test "$opt_debug" != ":" && ...'. * clcommit.m4sh, libltdl/config/announce-gen.m4sh, libltdl/config/getopt.m4sh, libltdl/connfig/mailnotify.m4sh: Execute at the start of functions to cater to ksh, which resets `-x' inside shell functions. Fix a typu in HACKING. * HACKING (Release Procedure): s/Makeflie/Makefile/. 2010-06-09 Ralf Wildenhues Factorize testing gcj installation in the testsuite. * tests/testsuite.at (LT_AT_TAG): For the GCJ tag, actually try to compile a .java file when deciding whether to skip. (LT_AT_EXEC_TAG): New macro, to also ensure runnability. * tests/convenience.at (Java convenience archives): Use LT_AT_EXEC_TAG, simplify accordingly. * tests/flags.at (passing lt_tag flags through libtool): Use m4_defn for tag so LT_AT_TAG works. * tests/infer-tag.at (GCJ inferred tag): Simplify. * THANKS: Update. Report by Warren Dodge. 2010-06-09 Peter O'Gorman Skip demo-nopic tests if SELinux policy will cause failure. * tests/demo-nopic.test: Check SELinux policy and skip if necessary. 2010-06-09 Gary V. Vaughan Set SCM version number to 2.2.11a. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.11a. * NEWS: Updated. GNU Libtool 2.2.10 was released. Prepare for next release. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.10. * NEWS: Update version number. Fix a quoting bug with ./commit -a 'A U Thor'. * clcommit.m4sh (func_commit): Use func_show_eval when calling git, so that the previously func_quote_for_eval()ed $git_flags is expanded properly. 2009-09-15 Peter Rosin Don't try the MSYS libdir path on MinGW. * libltdl/ltdl.c (parse_dotla_file) [mingw]: The absolute libdir path in the .la file is recorded as an MSYS (POSIX style) path. Make sure it isn't tried when locating the shared library. * NEWS: Updated. 2010-06-09 Gary V. Vaughan Simplify license variations, and add missing license texts. * ChangeLog, ChangeLog.1996, ChangeLog.1997, ChangeLog.1998, ChangeLog.1999, ChangeLog.2000, ChangeLog.2001, ChangeLog.2002, ChangeLog.2003, ChangeLog.2004, ChangeLog.2005, ChangeLog.2006, ChangeLog.2007, ChangeLog.2008, ChangeLog.2009, NEWS: Add all-permissive license. * HACKING, README, README.alpha, TODO: Relax license to RMS encouraged all-permissive terms. * libltdl/README: Ditto. I added the original license text in 2007, and there's no need for it to be so long for such a trivial file. * libltdl/config/getopt.m4sh, libltdl/general.m4sh: Cvs-utils is dead, and I am the author of these files, so consolidated license terms to match regular Libtool licensing. * HACKING (Licensing Rules): Update wording, and list of files for the all permissive license. (GPL with CVS-Utils exception clause): Removed. No files have these license any more. (GPL with Libtool exception clause): Ditto, only libltdl/README used to be distributed with this variation. * AUTHORS: Add GPL license text. Fix a type in the 2.2.8 release notes. * NEWS: s/ romoted/ promoted/ in the 2.2.8 release notes. Don't warn about the blank line inserted into git commit message. * clcommit.m4sh: When searching for accidental commits of mutliple changes, ignore the second line of the message, which we inserted earlier to support "git log --oneline". Enable correct extraction of multiline copyright from --version. * libltdl/config/getopt.m4sh: Wrap copyright notice at 76 columns. (func_version): Don't omit spaces when merging multiline copyright notices. * clcommit.m4sh, libtoolize.m4sh: Wrap copyright notice at 76 columns. * NEWS (2.2.8): BlueGene compiler tests were performed on BG/P systems, not BG/L. Reported by Christian Rössel 2010-06-08 Ralf Wildenhues Fix testsuite helper macros to not hide failure. * tests/testsuite.at (LT_AT_CONFIGURE, LT_AT_MAKE): Do not wrap AT_CHECK in a subshell, so that failures are properly propagated; instead, move environment changes inside the AT_CHECK code. Report and analysis by Peter Rosin. Avoid autom4te warning about unnamed diversion. * libltdl/config/getopt.m4sh: Use diversion name KILL not -1. 2010-06-07 Ralf Wildenhues Make versioning test stricter for w32, enable shared libs. * tests/versioning.at (versioning): Add -no-undefined to LDFLAGS. (test_uninstalled): Also move $bindir out of the way temporarily. Fix versioning test for LDFLAGS=-Wl,--as-needed. * tests/versioning.at (versioning): For the library update hypotheses, ensure the unchanged library libb isn't accidentally relinked against the new liba, by not reinstalling libb. Fixes testsuite failure for the incompatible update case with LDFLAGS=-Wl,--as-needed. * THANKS: Update. Report by Ryan Hill. 2010-06-06 Ralf Wildenhues Rewrite manual intro to be gender-neutral. * doc/libtool.texi (Introduction): Use gender-neutral formulation when addressing developers. 2010-06-05 Gary V. Vaughan Update and simplify all m4sh scripts to use latest getopt.m4sh. * clcommit.m4sh, libltdl/config/mailnotify.m4sh: Rewrite option parsing loop over M4SH_GETOPTS macro, and adjust all clients of option variables to use generated option names. Add missing quote for literal ? in a shell case statement. * libltdl/config/getopt.m4sh (m4go_shortnoargs): Quote initial ? correctly for use in a shell case statement. Quote command line arguments after --rcfile properly. * libltdl/config/announce-gen.m4sh (--rcfile): Quote remaining arguments shell variable expression correctly for eval. Shift correctly in numbered option argument collection. * libltdl/config/getopt.m4sh (_m4go_option): Argument list also needs to be `shift'ed in the shell option loop after processing a numbered argument collection. Fetch from new upstream host for config.guess and config.sub. * Makefile.maint (WGET_CGIT): Location of newest config.guess and config.sub upstream. (fetch): Fetch config.guess and config.sub from WGET_CGIT, rather than no-longer-updating WGET_SGO location. Update generated upload directive file format to v1.1. * Makefile.maint (git-dist, diffs): Update to generate v1.1 format directive files for ftp://ftp-upload.gnu.org/incoming/ftp. Fix web manual generation details in release instructions. * HACKING (Release Procedure): Move the instruction for generating web manuals for a new release to before the instruction that bumps the version numbers to the post release values. Set SCM version number to 2.2.9a. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.9a. * NEWS: Updated. GNU Libtool 2.2.8 was released. Prepare for next release. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.8. * NEWS: Update version number. * INSTALL, libltdl/config/install-sh, libltdl/config/config.guess, libltdl/config/config.sub, libltdl/config/texinfo.tex: Updated from canonical source. Provide an m4sh reimplementation of announce-gen. * libltdl/config/getopt.m4sh (M4SH_GETOPTS): New macro that takes a quoted m4 list of command line options to be parsed, and generates the shell code to parse those options and collect the results into appropriately named 'opt_xxx' shell variables. Also, add some private supporting macros, and improve the comments radically. * libltdl/config/announce-gen.m4sh: New file, to generate and optionally post (an enhancement over the gnulib perl script of the same name) a release announcement. * Makefile.maint (announce-gen): Build a new announce-gen script in the build directory, from the contents of libltdl/config/announce-gen.m4sh. * HACKING (Release Procedure): Update the instructions to use announce-gen. (Alpha release note template, Full release note template): Removed. 2010-05-22 Gary V. Vaughan Support "git log --oneline" in generated commit messages. * clcommit.m4sh (func_check_commit_msg): Insert an empty line between the ChangeLog entry summary line and the ChangeLog entry body, so that "git log --oneline" works properly. Bump copyright and version number. Reported by Ralf Wildenhues 2010-05-22 Ralf Wildenhues * HACKING: Set Reply-To: in announcement emails. 2010-05-21 Gary V. Vaughan Set SCM version number to 2.2.7c. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.7c. * NEWS: Updated. GNU Libtool 2.2.7b was released. Prepare for next release candidate. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.7b. * libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4, libltdl/m4/ltoptions.m4, libltdl/m4/lt~obsolete.m4: These files have been updated without a serial bump since the last release. * libltdl/Makefile.inc (LTDL_VERSION_INFO): Bump Revision, to account for bugfixes since the last release. * libltdl/config/install-sh, libltdl/config/config.guess, libltdl/config/config.sub, libltdl/config/texinfo.tex, INSTALL: Updated from canonical source. * NEWS: Update with missing entries from ChangeLog. * HACKING: Note workaround for developer tool-path leakage bug. Skip some tests in --disable-ltdl-install mode. * tests/dlloader-api.at, tests/exceptions.at, tests/lalib-syntax.at, tests/loadlibrary.at, tests/lt_dlopenext.at, tests/resident.at: Detect when these tests try to link against the not installed libltdl.la, and skip rather than FAIL. 2010-05-05 Peter Rosin Clarify versioning algorithm documentation. * doc/libtool.texi (Updating version info): Be explicit about setting age to zero on interface change. Reported by Jef Driesen 2010-05-04 Peter O'Gorman Ranlib is required with -force_load and fat archives. * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Run ranlib. Reported by Jeremy Huddleston 2010-04-09 Ralf Wildenhues Fix incompatible struct declarations. * doc/libtool.texi (Dlpreopening): Remove broken documentation of lt_dlsymbol and lt_dlsymlist. Document typedef lt_dlsymlist and symbol lt_preloaded_symbols according to the implementation. * tests/demo/dlmain.c (lt_symlist): Make struct anonymous ... (lt_dlsymlist): ... and typedef to this name. (lt_preloaded_symbols, main): Adjust. * tests/pdemo/longer_file_name_dlmain.c: Likewise. 2010-04-04 Ralf Wildenhues Use linker_flags not compiler_flags with $LD. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [linux] : With xlf and bgxlf compilers, when linking with $LD, use $linker_flags not $compiler_flags. 2010-03-31 Ralf Wildenhues Add FAQ, and FAQ entry for flags stripped at library link time. * doc/libtool.texi (FAQ, Stripped link flags): New nodes. (Wrapper executables): Replace bug address with macro. (Compile mode, Link mode): Document `-Wc,' and `-Xcompiler ' semantics better. * libltdl/config/ltmain.m4sh (func_mode_link): Rewrite comment for the flags that are passed through. Prompted by reports from Simon Richter , Török Edwin and Åke Sandgren . 2010-03-28 Ralf Wildenhues Fix preloader symbol list declaration in libltdl. * libltdl/ltdl.c (preloaded_symbols): Fix declaration to include array brackets. (lt_dlinit): Do not take address of preloaded_symbols. Fix typo in libtool --help output. * libltdl/config/ltmain.m4sh (func_mode_help): Fix typo in help output. Fix a couple of documentation errors. * doc/libtool.texi (Autoconf macros): Improve hyphenation. (Using libltdl): libltdl uses the Lesser General Public License, not the Library General Public License. Do not use @sc nor @acronym in the manual. * doc/libtool.texi: Remove all usage of @sc. 2010-03-19 Chris Demetriou Sort output of 'find' to enable deterministic builds. * libltdl/config/ltmain.m4sh (func_extract_archives): Sort output of 'find'. * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Likewise. * THANKS: Update. 2010-03-19 Ralf Wildenhues Unconditionally normalize LC_ALL, LANGUAGE in libtool script. * libltdl/config/ltmain.m4sh: Unconditionally set LC_ALL and LANGUAGE to 'C', to avoid semantic differences on MinGW under Chines locale. SCO issues with e.g. LANG=C are not known to be relevant today any more. Report by Pete Batard and Xiaofan Chen . 2010-03-17 Peter Rosin Preserve the last error when restoring the error mode. * libltdl/loaders/loadlibrary.c (wm_open): Don't rely on SetThreadErrorMode (or SetErrorMode) to not clobber the last error. Report by Ralf Wildenhues. Use Get/SetThreadErrorMode if they are available. * libltdl/loaders/loadlibrary.c (wrap_geterrormode): Replaced... (wrap_getthreaderrormode): ...by this function that checks first for GetThreadErrorMode, then GetErrorMode and makes use of either of those or... (fallback_getthreaderrormode): ...else falls back to this replacement function that implements the old workaround, which was previously implemented in... (fallback_geterrormode): ...this now renamed function. (geterrormode): Replaced... (getthreaderrormode): ...by this function pointer that points at either of wrap_getthreaderrormode, GetThreadErrorMode, GetErrorMode or fallback_getthreaderrormode. (wrap_setthreaderrormode): New function that checks if SetThreadErrorMode is supported by the system and makes use of it if it is. (fallback_setthreaderrormode): New function that is used otherwise that implements the old version using SetErrorMode. (setthreaderrormode): New function pointer that points at either of wrap_setthreaderrormode, SetThreadErrorMode or fallback_setthreaderrormode. (vm_open): Adjust to the above. 2010-02-28 Ralf Wildenhues Detect Sun compiler suite with 'sun'-prefixed names. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LANG_CXX_CONFIG) (_LT_SYS_HIDDEN_LIBDEPS) [solaris]: Accept compiler names sunCC, sunf77, sunf90, sunf95 in addition to CC, f77, f90, f95. * NEWS: Update. Report by Vadim Zeitlin. 2010-02-28 Pierre Ossman (tiny change) Ralf Wildenhues Fix deplibs check fallback for 64-bit Windows and Windows CE. * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD): Accept file formats 'pe-arm-wince' and 'pe-x86-64'. Add note about consistency with ... * libltdl/config/ltmain.m4sh (func_win32_libid): ... the respective pattern here; sync pattern from the former. * tests/deplibs-mingw.at (deplibs without file command): New file, new test. * Makefile.am (TESTSUITE_AT): Update. * NEWS: Update. 2010-02-24 Scott McCreary (tiny change) Update search path on Haiku for legacy system directory. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [haiku] : Replace legacy /boot/beos/system/lib directory with /boot/system/lib. * THANKS: Update. 2010-02-22 Ralf Wildenhues manual: fix detailmenu ordering. * doc/libtool.texi (Top): Add section for `Linking executables' in the detailmenu. 2010-02-21 Charles Wilson Guard against strerror()==NULL * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src:main): Check return value of strerror() using nonnull(). (func_emit_cwrapperexe_src:find_executable): Ditto. (func_emit_cwrapperexe_src:chase_symlinks): Ditto. 2010-02-21 Charles Wilson Document wrapper changes. * NEWS: Indicate new feature and incompatibility. * doc/libtool.texi [detailmenu]: Add reference to subsection 'Wrapper executables for programs', in Platform Quirks category. [Linking executables]: Mention wrapper executables, in addition to wrapper scripts. Add menu referencing subsection 'Wrapper executables for programs'. [Wrapper executables for programs]: New subsection. Documents cwrapper rationale and command line options. 2010-02-21 Charles Wilson Add --lt-* options to shell wrapper * libltdl/config/ltmain.m4sh (func_emit_wrapper): Call func_parse_lt_options early. Use func_exec_program. (func_emit_wrapper:func_parse_lt_options): New function. (func_emit_wrapper:func_lt_dump_args): New function. (func_emit_wrapper:func_exec_program_core): New function. (func_emit_wrapper:func_exec_program): New function. 2010-02-21 Charles Wilson Enable runtime cwrapper debugging; add tests * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Update comments. Initialize program_name. Eliminate _LENGTH variables for string constants. In debug mode, print a banner with known content before any other output. Remove LTWRAPPER_DEBUGPRINTF macro. Add constants and variables to support new --lt-debug option. (func_emit_cwrapperexe_src:ltwrapper_debugprintf): Renamed to... (func_emit_cwrapperexe_src:lt_debugprintf): this. Only print messages if lt_debug != 0. Ensure appearance of messages conforms to GCS. (func_emit_cwrapperexe_src:lt_fatal): Ditto. (func_emit_cwrapperexe_src:lt_error_core): Ditto. (func_emit_cwrapperexe_src): Update all callers to lt_fatal. Update all users of LTWRAPPER_DEBUGPRINTF (()) to call lt_debugprintf () directly. (func_emit_cwrapperexe_src:main): Consolidate option parsing. Ensure first use of lt_debugprintf occurs after option parsing. Add stanza to parse for --lt-debug and set lt_debug variable. Use strcmp rather than strncmp, where safe. * tests/cwrapper.at: Add new tests for --lt-debug and -DLT_DEBUGWRAPPER. 2010-01-31 Ralf Wildenhues Use --email with gendocs.sh. * Makefile.maint (web-manual): Pass bug reporting address to gendocs.sh. Make testsuite code C++ clean again. * tests/resident.at (resident modules): Fix for C++. 2010-01-29 Peter Rosin Ralf Wildenhues Testsuite exposure for dlloader API. * tests/dlloader-api.at: New file, new test. * Makefile.am (TESTSUITE_AT): Update. 2010-01-29 Peter Rosin * tests/loadlibrary.at: Fix C++ issues. 2010-01-20 Peter Rosin Report proper errors from the loadlibrary loader. * libltdl/loaders/loadlibrary.c (loadlibraryerror): New helper function that returns the latest Windows error as a string, or the provided default string on failure to do so. (LOADLIB_SETERROR): New macro that wraps previous to make it easy to use. (vm_open, vm_close, vm_sym): Make use of previous. (LOCALFREE): New macro to help free the Windows error string. (vl_exit): Make use of previous. * tests/loadlibarry.at: New file, new test that makes sure the loadlibrary loader reports non-standard error messages. * Makefile.am (TESTSUITE_AT): Add above test. 2010-01-02 Peter Rosin Use GetErrorMode if it is available. * libltdl/loaders/loadlibrary.c (wrap_geterrormode): New function that checks if GetErrorMode is supported by the system and makes use of it if it is. (fallback_geterrormode): New function that is used otherwise that implements the old workaround. (geterrormode): New function pointer that points at either of the above or directly at GetErrorMode. (vm_open): Make use of the above. 2010-01-11 Ralf Wildenhues Ensure functions from resident modules work in atexit handlers. * tests/resident.at (resident modules): New file, new test. * Makefile.am (TESTSUITE_AT): Adjust. Report by Bob Friesenhahn. Testsuite exposure for relative output file names and deplibs. * tests/deplib-in-subdir.at (deplib in subdir): New file, new test. * Makefile.am (TESTSUITE_AT): Update. Prompted by report from Bob Friesenhahn. 2010-01-11 Ralf Wildenhues Bob Friesenhahn Testsuite exposure for C++ exception handling. * tests/exceptions.at (C++ exception handling): New file, new test. * Makefile.am (TESTSUITE_AT): Update. Report by Bob Friesenhahn. 2010-01-06 Ralf Wildenhues Bump copyright years. * ChangeLog.2009: New, rotated from ... * ChangeLog: ... here. * Makefile.am (EXTRA_DIST): Add ChangeLog.2009. * NEWS, libltdl/config/ltmain.m4sh: Bump copyright years. * libltdl/m4/libtool.m4 (_LT_COPYING, LT_OUTPUT): Likewise. * libtoolize.m4sh: Likewise. 2009-12-30 Peter Rosin * libltdl/ltdl.c (lt_dlerror): Remove meaningless conditional. 2009-12-29 Peter Rosin * libltdl/ltdl.c (file_not_found): Fix typos in code comment. 2009-12-12 Ralf Wildenhues Replace last __oline__ instance. * libltdl/m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): Replace last __oline__ instance with $LINENO. 2009-12-09 Ralf Wildenhues Improve parsing of .la files in libltdl. * libltdl/ltdl.c (trim): Do not dump core upon missing quote in module .la file. * tests/lalib-syntax.at (syntax of .la files): New file, new test. * Makefile.am (TESTSUITE_AT): Add tests/lalib-syntax.at. Report by Bob Friesenhahn. 2009-12-05 Ralf Wildenhues Sane fallback initialization of $ECHO from $as_echo. * libltdl/config/general.m4sh: Use 'printf %s\n' if $as_echo is unset. * tests/testsuite.at: Likewise. * THANKS: Update. Report by Vadim Zeitlin and Peter Rosin. 2009-12-02 Ralf Wildenhues lt_dlloader_remove and lt_dlloader_find accept const arguments. * libltdl/lt_dlloader.c (lt_dlloader_remove, lt_dlloader_find): Accept `const char *' arguments, as documented. Cast them to `void *' for the slist machinery. * libltdl/libltdl/lt_dlloader.h: Adjust prototypes. Test and fix slist.c. * libltdl/libltdl/slist.h: Include stddef.h, for size_t. (slist_remove): Return pointer to SList, not void. * libltdl/slist.c: Include stdlib.h, for malloc and free. (slist_remove): Adjust prototype as above. (slist_sort): Do not loop forever on one-item list. * tests/slist.at (SList functionality): New file, new test. * Makefile.am (TESTSUITE_AT): Add tests/slist.at. 2009-11-30 Peter Rosin Please C++ compilers when calling strrchr. * libltdl/ltdl.c (has_library_ext): Match the return type of strrchr with the first argument to please C++ compilers. Report by Peter O'Gorman. 2009-11-29 Ralf Wildenhues Fix bindir and dlopen tests for C++ compilers (CC=g++). * tests/bindir.at (bindir basic lib test, bindir install tests): Include stdlib.h rather than declaring abort. * tests/lt_dlopenext.at (lt_dlopenext error messages): Use `extern "C"' annotation for dlsym'ed function in C++ mode. 2009-11-25 Peter Rosin Fix cross build issue in execute mode test. * tests/execute-mode.at: Skip test for cross builds. 2009-11-24 Ralf Wildenhues Enable symbol versioning with the GNU gold linker. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS): Accept 'GNU gold' in the version string. * NEWS, THANKS: Update. Report by Peter Fritzsche. Tighten regex for Portland C++ compiler for version 10. * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [linux]: Match a dot after version 1 through 5, so 10 and up don't match, and use weak symbols. * THANKS: Update. Report by Jeff Squyres and Brent Leback. 2009-11-16 Peter O'Gorman Update libltdl version to match 2.2.6b release. * libltdl/Makefile.inc: Make version 9:1:2 2009-11-14 Bob Friesenhahn Don't load module.la from current directory by default. * libltdl/ltdl.c (try_dlopen): Do not attempt to load an unqualified module.la file from the current directory (by default) since doing so is insecure and is not compliant with the documentation. * tests/testsuite.at: Qualify access to module.la file in current directory so that test passes. 2009-11-14 Peter O'Gorman Only use preopen loader to load preopened archives * libltdl/ltdl.c: Limit checking of .a to preopen loader. * tests/lt_dlopen_a.at: Add test. * Makefile.am: Add test. 2009-11-14 Ralf Wildenhues Recognize `pgfortran' as Portland compiler. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS): Accept `pgfortran*' too. Report by Jeff Squyres. 2009-11-04 Alexandre Oliva Ralf Wildenhues Fix verbose link extraction for multiply reconfigured GCC. * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) : Drop GCC lines "Configured with" that may contain unrelated flags. 2009-11-02 Eric Blake Allow gcc builds with -Wall -Werror. * libltdl/ltdl.c (try_dlopen): Use strlen rather than LT_STRLEN on an array that will never be NULL. 2009-11-01 Ralf Wildenhues Fix func_normal_abspath sed script for Solaris. * libltdl/config/general.m4sh (pathcar, pathcdr, removedotparts) (collapseslashes, finalslash): Use single quotes, for clarity. (removedotparts): Avoid \{N,M\} after subexpression \(...\), for Solaris /bin/sed. Improve versioning algorithm documentation. * doc/libtool.texi (Updating version info): Repeat the algorithms in different, hopefully simpler terms. * THANKS: Update. Prompted by Richard B. Kreckel. 2009-11-01 Ingo Weinhold (tiny change) Support for the Haiku operating system. * libltdl/config/ltmain.m4sh (func_mode_link): Add cases for `*-*-haiku*' alongside `*-*-beos*'. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, LT_LIB_M, _LT_COMPILER_PIC) (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Add cases for `haiku*'. * NEWS, THANKS: Update. 2009-11-01 Ralf Wildenhues Fix quoting of AS, DLLTOOL, and OBJDUMP for the libtool script. * libltdl/m4/ltoptions.m4 (AC_LIBTOOL_DLOPEN): Quote values of $AS, $DLLTOOL, and $OBJDUMP, so they can contain arguments. * THANKS: Update. Report by Matthijs Kooijman. 2009-09-18 Ralf Wildenhues Initial support for the Cuda Compiler Driver on Linux. * libltdl/config/ltmain.m4sh (func_mode_compile): Accept source file extensions `.cu' and `.cup'. * libltdl/m4/libtool.m4 (_LT_COMPILER_NO_RTTI, _LT_COMPILER_PIC) (_LT_LINKER_SHLIBS): Support for `nvcc' compiler driver. * NEWS, THANKS: Update. Report by Mahesh Narayanamurthi. 2009-09-12 Dave Korn Control where win32 DLLs get installed. * libltdl/config/general.m4sh (func_normal_abspath): New function. (func_relative_path): Likewise. * libltdl/config/ltmain.m4sh (func_mode_help): Document "-bindir". (func_mode_link): Accept new "-bindir" option and use it, if supplied, to place Windows DLLs. * tests/bindir.at: New file for install tests using "-bindir". * Makefile.am (TESTSUITE_AT): Add bindir.at. * doc/libtool.texi (Link Mode): Update documentation. * NEWS, THANKS: Update. 2009-09-11 Akim Demaille libtool: clean libconftest.a. * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Here. 2009-09-10 Peter Rosin func_win32_libid doesn't work with MS dumpbin * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD): The $NM interface is assumed to be BSD nm in func_win32_libid, so check for that before using it. 2009-09-07 Ralf Wildenhues Allow dlopen self test to work with gcc's -fvisibility=hidden. * libltdl/m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): Declare default visibility for the symbol we are going to test dlopen (NULL) when a GCC version is used that understands the visibility attribute, under the assumption that if -fvisibility=hidden will be used, the user code will be sufficiently annotated for visibility of needed symbols from the main executable. * THANKS: Update. Report by Josh Hursey against OpenMPI. Fix and split recent testsuite addition for compile/link flags. * tests/flags.at (passing flags through libtool): Split into ... (passing CC flags through libtool) (passing CXX flags through libtool) (passing F77 flags through libtool) (passing FC flags through libtool) (passing GCJ flags through libtool): ... these five tests, factorized with m4_foreach. Fix F77 and FC compile and link commands; add GCJ tag. Use LT_AT_TAG to correctly skip tags for which no compiler exists. Use $EXEEXT where appropriate. Drop unneeded use of reload_cmds. Reports by Peter Rosin and Peter O'Gorman. 2009-09-07 Peter O'Gorman Testsuite keyword 'interactive' and check-* rules. * Makefile.am (testsuite_deps, testsuite_deps_uninstalled): New variables. (check-local, installcheck-local): Use them. (check-interactive, check-noninteractive): New rules. * tests/link-order2.at (Link order of deplibs), tests/static.at (static linking flags for programs): Add keyword `interactive'. * doc/libtool.texi (Test descriptions): Document all keywords used in the Libtool test suite. * NEWS: Update. Fix failure test in the presence of --with-pic or -prefer-pic. * tests/fail.at (Failure tests): Run non-PIC failure test only if pic_mode is 'default' or 'no', rather than 'default' or 'yes' and also -prefer-pic has not been passed in $CFLAGS. * THANKS: Update. Report by Donn Washburn. Add testsuite exposure for passing of compiler and linker flags. * tests/flags.at (passing flags through libtool): New file, new test, for bug fixed in previous commit. * Makefile.am (TESTSUITE_AT): Add tests/flags.at. 2009-09-04 Peter Rosin Make -Wc,FLAG behave like -Xcompiler FLAG in link mode. * libltdl/config/ltmain.m4sh (func_mode_link): Remove "-Wc," instead of replacing it with "$wl" when linking programs through the compiler driver, just as is the case when linking libraries. * NEWS: Update. 2009-08-23 Lennart Poettering (tiny change) Shut up prototype warnings with recent GCC and -Wstrict-prototypes. * libltdl/config/ltmain.m4sh (func_generate_dlsyms): Use recent GCC's diagnostic pragma to override a -Wstrict-prototypes setting for the symbol list code. * THANKS: Update. 2009-08-23 Ralf Wildenhues Remove __oline__ from macros, for less spurious configure diffs. * libltdl/m4/libtool.m4 (_LT_ENABLE_LOCK, _LT_COMPILER_OPTION) (_LT_COMPILER_C_O, LT_PATH_NM): Replace __oline__ instances with $LINENO. * NEWS: Update. 2009-07-24 Roumen Petrov (tiny change) Fixup 'execute mode' test for w32. * tests/execute-mode.at (execute mode): Add missing $EXEEXT. (LDFLAGS): Add -no-undefined. 2009-07-01 Yaakov Selkowitz (tiny change) Charles Wilson [CXX] Use correct export_dynamic_flag_spec for PE-COFF $hosts * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [cygwin*|mingw*|pw32*|cegcc*]: Define export_dynamic_flag_spec as -Wl,--export-all-symbols here as well (see commit 5f2bbb494a2753afb2878c399cfd8316b7403a5b). 2009-06-29 Charles Wilson [mingw] Improve sys_lib_search_path_spec detection. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Fix handling of dos-style paths when parsing $CC -print-search-dirs output. 2009-06-28 Charles Wilson Finish adding alias for obsoleted AC_LIBTOOL_RC macro. * libltdl/m4/libtool.m4: Add reminder comment concerning aclocal-1.4 backwards compatibility. * libltdl/m4/lt~obsolete.m4: Remove unnecessary AC_DEFUN. 2009-06-27 Charles Wilson Add alias for obsoleted AC_LIBTOOL_RC macro. * libltdl/m4/libtool.m4: Add alias for obsoleted macro AC_LIBTOOL_RC. 2009-06-21 Charles Wilson Remove unneeded functions and options from cwrapper * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) [lt_opt_process_env_set]: Remove. [lt_opt_process_env_prepend]: Remove. [lt_opt_process_env_append]: Remove. [lt_split_name_value]: Remove. [file scope]: Don't declare removed functions. Remove constants and defines related to eliminated commandline options. [main]: Remove code related to eliminated commandline options --lt-env-set, --lt-env-prepend, --lt-env-append. 2009-06-19 Yaakov Selkowitz (tiny change) Charles Wilson Ensure LT_PATH_LD works when called before LT_INIT * libltdl/m4/libtool.m4 (LT_PATH_LD): AC_REQUIRE _LT_PROG_ECHO_BACKSLASH. 2009-06-14 Ralf Wildenhues Add versioning tests. * tests/versioning.at (versioning): New file, new test. * Makefile.am (TESTSUITE_AT): Adjust. Prompted by bug report from Mike Gorchak. 2009-06-14 Mike Gorchak (tiny change) Ralf Wildenhues Fix versioning computation for QNX. * libltdl/config/ltmain.m4sh (func_mode_link): Set `$current' and `$age' properly for version_type `qnx'. 2009-06-14 Ralf Wildenhues Avoid spurious localization testsuite failure on HP-UX/ia64. * tests/localization.at (localized compiler messages): Skip test if the compiler warning output contains `locale', for HP-UX. 2009-06-10 Ralf Wildenhues Fix concurrent extraction of convenience libraries on Darwin. * libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): New libtool variable `lock_old_archive_extraction', set to `yes' on darwin. * doc/libtool.texi (libtool script contents): Document it. * libltdl/config/ltmain.m4sh (func_extract_an_archive): Lock `ar x' invocation if `lock_old_archive_extraction' is yes. * tests/darwin.at (darwin concurrent library extraction): New test. * NEWS: Update. Report by Akim Demaille. 2009-06-07 Ralf Wildenhues Fix testsuite failure of lt_dlopenadvise test on FreeMiNT. * tests/lt_dladvise.at (lt_dlopenadvise library loading): Do not build moddepend for systems without shared libraries. Report by Alan Hourihane. testsuite: avoid failures due to old Automake. * tests/configure-iface.at (installable libltdl) (--with-ltdl-include/lib, --with-included-ltdl): Speficy libmodule_la_SOURCES in Makefile.am as the default source file naming scheme changed in Automake 1.8. * tests/nonrecursive.at (_LT_AT_LTDL_SETUP): Require Automake 1.9.6. * THANKS: Update. Report by Robert Garron. testsuite: add missing @LIBS@ in a link command line. * tests/old-m4-iface.at (AC_WITH_LTDL): Use @LIBS@ when linking. Report by Patrice Fromy. testsuite: cope when some installed libltdl.la has been removed. * tests/old-m4-iface.at (AC_WITH_LTDL): Pass --with-included-ltdl to configure, to ensure we do not accidentally link against a previously installed libltdl.so where the corresponding .la file has been removed, thus we do not add a run path, and the runtime linker then fails to find libltdl.so.7. * tests/configure-iface.at (--with-ltdl-include/lib): Remove -L flags from LDFLAGS to avoid picking up an installed libltdl outside of the default locations. * THANKS: Update. Prompted by report from Patrice Fromy. 2009-06-07 Vincent Torri (tiny change) Fix C wrapper invocation for ceGCC hosts (cegcc and mingw32ce). * libltdl/config/ltmain.m4sh (func_mode_link): do not generate C wrapper for cegcc and mingw32ce hosts. (func_emit_cwrapperexe_src): remove useless check on __MINGW32CE__. 2009-06-07 Ralf Wildenhues Don't pick up double-quotes from /etc/ld.so.conf on Ubuntu. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ] : Remove embedded double quotes from paths picked up from /etc/ld.so.conf. Fixes libltdl compile failure on Ubuntu 7.10. * THANKS: Update. Report by Camilo La Rota. 2009-06-06 Richard Sandiford Fix GNU nm invocation for AIX. * libldtl/m4/libtool.m4 (_LT_LINKER_SHLIBS) : Modify the GNU-nm-on-AIX version so that it adds weak defined symbols to the export list. Build AIX shared libraries with binutils 2.19.50+. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) : New variable to control whether the GNU ld or native ld interface is used. Set to "no" for GNU ld 2.19.50+ on AIX, otherwise mirror $with_gnu_ld. Update the warning message that is printed when using GNU ld on AIX. Adjust the whole_archive_flag_spec value for GNU ld on AIX. * NEWS, THANKS: Update. 2009-05-27 Peter O'Gorman Don't run compiler checks twice. libltdl/m4/libtool.m4 (_LT_PROG_FC, _LT_PROG_F77, _LT_PROG_CXX): Remove these macros. libltdl/m4/lt~obsolete.m4: Add removed macros here. libltdl/m4/libtool.m4 (_LT_LANG_FC_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_CXX_CONFIG): Remove references to removed macros, and move functionality here. NEWS: Update. 2009-05-05 Rainer Emrich (tiny change) Peter Rosin Ralf Wildenhues Fix cross compilation for HPPA/64 with a BSD file command. * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [hpux10.20*, hpux11*, !ia64] : Match the dot in `PA-RISC 2.0' literally. Adjust hppa*64* pattern to also match BSD `file' output, used in cross compilation setups. * THANKS: Update. Report and initial patch by Rainer Emrich, refined by Peter Rosin. 2009-05-05 Ralf Wildenhues libtoolize: ignore trailing junk on scriptversion line. * libtoolize.m4sh (func_install_update): Ignore semi-colon or comment-sign and all following characters when parsing a `scriptversion' line in one of the auxiliary scripts; recent Automake-provided script have a stylized comment to induce Emacs to use UTC. Exposed by the `libtoolize config files serial update' test. 2009-05-02 Ralf Wildenhues Skip localization test when setlocale is not functional. * tests/localization.at (localized compiler messages): Skip test when there is a warning about `LC_ALL'. * THANKS: Update. Report by Maciej Helminiak. 2009-05-02 Alan Hourihane (tiny change) Improved support for FreeMiNT. * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN) [mint]: Hard-code command line length limit to 8192, to avoid long test. * NEWS, THANKS: Update. 2009-05-02 Ralf Wildenhues Initial port for BlueGene BG/L. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [linux]: Detect bgxl*, bgf*, mpixl* compilers. * NEWS, THANKS: Update. Report, feedback and testing by John R. Cary and Christian Rössel. manual: fix grammaros. * doc/libtool.texi (Dlpreopening): Fix grammaro. (C header files): Remove duplicate word. Allow through -tp=* at link time, for pgcc. * libltdl/config/ltmain.m4sh (func_mode_link): Portlant Group pgcc uses `-tp=PROCESSOR' for target processor selection; allow the flag through at link time. Report by Ethan Mallove. Fix quoting of eval'ed variable. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Double-quote $lt_cv_sys_global_symbol_pipe for eval, like we do in ltmain, in order to preserve TABs and multiple adjacent whitespace. Report by Bruno Haible. 2009-04-22 Ralf Wildenhues Cope better with missing `makeinfo' in `bootstrap'. * bootstrap: Update `./doc/notes.txt' last so missing `makeinfo' does not cause a broken tree. * THANKS: Update. Report by Christian Rössel. 2009-03-29 Yaakov Selkowitz (tiny change) Charles Wilson [cygwin] Improve operation with gcc4 * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [cygwin*]: Add w32api to sys_lib_search_path_spec without overriding gcc's own search path. 2009-03-29 Yaakov Selkowitz (tiny change) Charles Wilson Use correct export_dynamic_flag_spec for PE-COFF $hosts * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin*|mingw*|pw32*|cegcc*]: Define export_dynamic_flag_spec as -Wl,--export-all-symbols, as required by GNU ld for PE-COFF. 2009-03-29 Charles Wilson Improve compatibility with older automake * libltdl/m4/lt~obsolete.m4: Add AC_DEFUNs for _LT_PREPARE_SED_QUOTE_VARS and _LT_PROG_ECHO_BACKSLASH. Report by Yaakov Selkowitz. 2009-03-20 Peter Rosin LT_OUTPUT should always create the libtool script. * libltdl/m4/libtool.m4 (LT_OUTPUT): Make LT_OUTPUT ignore the --no-create configure option, and assume that the user wants to use an up-to-date libtool script if the LT_OUTPUT macro is present. * tests/early-libtool.at: Make sure we do not regress. 2009-01-26 Peter Rosin Don't settle for any dumpbin/link program as name lister. * libltdl/m4/libtool.m4 (LT_PATH_NM): When locating dumpbin or link -dump, check if they appear to really be capable of name listing, in order to eliminate e.g. link from coreutils. This makes the name lister decision fall back on nm as the default if no acceptable candidate is found, which mainly happens on (arguably broken) cross compiles. * NEWS: Update * THANKS: Update Reports by Rudolf Leitgeb and Peter Kjellerstedt. 2009-03-03 Ralf Wildenhues Document INNER_TESTSUITEFLAGS, drop leading space. * README: Document INNER_TESTSUITEFLAGS. * tests/cmdline_wrap.at (Run tests with low max_cmd_len): When using INNER_TESTSUITEFLAGS on the testsuite invocation, drop leading space after "-k libtool", so that the user may further limit the set of tests to be run. 2009-03-02 Ralf Wildenhues Fix low max_cmd_len template test on UnixWare. * libltdl/config/ltmain.m4sh (func_mode_link): When expanding $reload_cmds, always put objects in $reload_objs rather than adding them to the command line, to allow more general command lines in reload_cmds. Ensure $reload_objs contains a leading space. * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*, sco3.2v5*, sco5v6*] : For CC, invoke prelinker before creating reloadable object. (_LT_CMD_RELOAD) : Declare as _LT_TAGDECL, not _LC_DECL. (_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG) (_LT_LANG_GCJ_CONFIG) : Initialize from default (C tag) value. * THANKS: Update. Report and analysis by Tim Rice and John Wolfe. 2009-02-28 Ralf Wildenhues * doc/libtool.texi (Distributing libltdl, Test descriptions): Add missing parentheses. 2009-02-28 Tim Rice Fix C++ template handling for old archives on UnixWare 7.1.4. * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*, sco3.2v5*, sco5v6*] : For CC, add template prelink step before archiving. Fixes template.at test failures. 2009-02-28 Török Edwin (tiny change) Ralf Wildenhues Do not add bogus directory arguments to link command lines. * libltdl/config/ltmain.m4sh (func_mode_link): Ensure $path is always initialized before it is used. Reported for zsh, for which $path contains $PATH entries even after "emulate sh", see . 2009-02-28 Andreas Schwab Ralf Wildenhues Remove remaining references to CVS. * bootstrap: Remove references to CVS. * README.alpha: Likewise. * clcommit.m4sh: Likewise. * doc/libtool.texi: Bump copyright years. (libtool script contents): Describe macro_revision as revision without reference to CVS. 2009-02-16 Ralf Wildenhues Do not pass $INSTALL via TESTS_ENVIRONMENT. * Makefile.am (TESTS_ENVIRONMENT): Set lt_INSTALL, not INSTALL, so that a bogus relative path to the install-sh script in the source tree is not propagated to the configure scripts of the old test suite. * tests/testsuite.at: Adjust. * tests/install.at (Install tests): Likewise. 2009-02-03 Ralf Wildenhues Kurt Roeckx New test for lt_dlopenext error message. * tests/lt_dlopenext.at (lt_dlopenext error messages): New file, with new test, with sources taken from the Autobook example. * Makefile.am: Update. 2009-02-03 Kurt Roeckx lt_dlopenext sets error upon successful library load. * libltdl/ltdl.c (lt_dlopenadvise): Fix bogus error on successful loading of library with lt_dlopenext. Report by Kaiwang Chen in . 2009-02-01 Ralf Wildenhues Fix sed script in install.at. * tests/install.at (Install tests): Fix typo in sed script, fixes test failure on HP-UX. Fix $INSTALL in testsuite with relative path to install-sh. * tests/testsuite.at: If `$INSTALL' points to in-tree install-sh, override a possibly-relative path to it with an absolute one. install mode: do not pass `-m $install_override_mode' to cp. * libltdl/config/ltmain.m4sh (func_mode_install): New variable $install_cp, factor test when `cp' is used for installation. Do not pass mode override to cp. Fixes `libtool --mode=install cp ...' on HP-UX; cp should not be used for libraries that might be needed by programs invoked during the installation process. Fix sed script portability issue in func_version. * libltdl/config/getopt.m4sh (func_version): Remove space in `/\./! {' sed command, to please HP-UX sed. 2009-01-31 Jeff Squyres Ralf Wildenhues New test for bogus lt_dlopen error message. * tests/lt_dlopen.at (lt_dlopen error messages): New file, new test, marked as XFAIL for now. * Makefile.am: Adjust. Report and reproducible test case by Jeff Squyres. 2009-01-31 Ralf Wildenhues execute mode: do not transform *.lo or *.la arguments. * libltdl/config/ltmain.m4sh (func_mode_execute): Do not check arguments matching *.lo or *.la for script wrappers. * tests/execute-mode.at (execute mode): Add tests. * NEWS, THANKS: Update. Report by Paul Biggar. Nonexistent `main' does not guarantee link failure. * tests/fail.at (Failure tests): Use an unresolved symbol, rather than non-presence of `main', to provoke a link failure also on QNX. Only check for failure of the libtool script if the link without libtool would have failed, too. Report by Mike Gorchak. Use AT_CHECK more liberally in duplicate members test. * tests/duplicate_members.at (duplicate members in archive tests): Wrap link commands in AT_CHECK, they might fail, as seen on QNX. * THANKS: Update. Report by Mike Gorchak. 2009-01-30 Akim Demaille Fix cwrapper warnings from MSVC 2005. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) [file scope]: define _CRT_SECURE_NO_DEPRECATE. 2009-01-29 Akim Demaille Fix bootstrap with older libtool.m4 in reach of aclocal. * libltdl/m4/lt~obsolete.m4: Add stub definitions for _LT_REQUIRED_DARWIN_CHECKS and _LT_AC_PROG_CXXCPP. Fix func_exec_init. * tests/defs.m4sh (func_exec_init): Instead of using the undefined my_dir, call func_dirname_and_basename and use its result. (func_make): For consistency, don't use the useless local variable my_dir. 2009-01-29 Ralf Wildenhues Document --mode short-hands better, and test them. * doc/libtool.texi (Invoking libtool): Give examples for using the `--mode=MODE' short-hand `MODE', or abbreviations thereof. * libltdl/config/ltmain.m4sh: Mention the short-hand for MODE in the --help output. * tests/help.at (mode short-hands): New test group. Suggestion by Bruno Haible. func_version copes with multi-line copyright headers. * libltdl/config/getopt.m4sh (func_version): Slurp in copyright lines until a period is found. * libltdl/config/ltmain.m4sh: Multi-line copyright is ok to use now. * tests/help.at (standard command line options): New file, new tests. Make this test group the first one for libtool tests, moving the banner ... * tests/duplicate_members.at: ... from here. * Makefile.am (TESTSUITE_AT): Add tests/help.at. 2009-01-29 Akim Demaille Ralf Wildenhues Normalize compiler output due to compiler wrappers. * tests/testsuite.at (LT_AT_NORMALIZE_COMPILER_OUTPUT): New macro, to normalize ccache and distcc output. * tests/localization.at (localized compiler messages): Use it. 2009-01-29 Peter Rosin Make modified libtool script in cwrapper test executable * tests/cwrapper.at: Make modified libtool script executable. Report by Roumen Petrov. 2009-01-28 Akim Demaille Clean space uses. * libtoolize.m4sh: Remove trailing spaces. Use , as some editors remove "useless" spaces in . 2009-01-26 Peter Rosin AWK is required, make sure it is set. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS: Make sure AWK is set (automake brings it in, but is not always used). Fixes old-m4-iface.at on MSYS/MSVC. 2009-01-25 Mike Frysinger Fix typo in libtool install mode documentation. * libltdl/config/ltmain.m4sh (func_mode_help): Change -inst-prefix to -inst-prefix-dir. * doc/libtool.texi (Install mode): Likewise. 2009-01-24 Charles Wilson Add -Wall to cwrapper tests. * tests/cwrapper.at: Add -Wall existing tests. Add additional round of tests with -Wall alone. 2009-01-24 Charles Wilson [cygwin|mingw] cwrapper cleanups. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) [file scope]: re-organized includes and portability macros. Avoid oldnames on MINGW32 and MSVC for setmode/stat/chmod/getcwd/putenv. Declare _putenv on MINGW32 when -ansi. Use namespaced macro LT_DEBUGWRAPPER. 2009-01-24 Peter Rosin Expand exit status test in LT_AT_NOINST_EXEC_CHECK correctly * tests/testsuite.at (LT_AT_NOINST_EXEC_CHECK): STATUS is argument $3, not $2. 2009-01-23 Charles Wilson Add tests for cwrapper with -std=c89 and -std=c99 * tests/cwrapper.at: New file. * Makefile.am: Add tests/cwrapper.at. 2009-01-22 Peter Rosin Unify line endings in localization test. * tests/testsuite.at: Update copyright year. (LT_AT_UNIFY_NL): Add macro that unifies line endings on platforms that suffer from such confusion. * tests/localization.at: Use it. Update copyright year. Fixes the test on MSYS/MSVC. 2009-01-21 Charles Wilson [cygwin|mingw] Fix compile warnings when -std=c89. * libltdl/config/ltmain.m4sh (func_emit_wrapper_part1): move contents to... (func_emit_wrapper_part2): move contents to... (func_emit_wrapper): here. (func_emit_cwrapperexe_src) [file scope]: Remove variables script_text_part1 and script_text_part2. (func_emit_cwrapperexe_src) [lt_dump_script]: New function. (func_emit_cwrapperexe_src) [main]: Call it. 2009-01-21 Charles Wilson Minor cygwin cleanup * libltdl/config/ltmain.m4sh (func_generate_dlsyms): Correct case pattern for cygwin. 2009-01-19 Ralf Wildenhues Avoid failure due to Cygwin path detection bug. * tests/execute-mode.at (execute mode): Ignore noise on stderr; Cygwin might consider `d\"e' to be a DOS-style path and warn. Report by Charles Wilson. 2009-01-19 Robert Millan Support GNU/kOpenSolaris. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [kopensolaris*-gnu]: Recognize GNU/kOpenSolaris. * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): Likewise. * NEWS, THANKS: Update. 2009-01-19 Ralf Wildenhues Another LT_AT_EXEC_CHECK fixup. * tests/shlibpath.at (shlibpath_overrides_runpath): Use LT_AT_EXEC_CHECK instead of AT_CHECK. 2009-01-19 Roumen Petrov (tiny change) Add missing $EXEEXT to java test. * tests/convenience.at (Java convenience archives): Add $EXEEXT. 2009-01-19 Ralf Wildenhues Bump copyright years. * ChangeLog.2008: New, rotated from ... * ChangeLog: ... here. * Makefile.am (EXTRA_DIST): Add ChangeLog.2008. * NEWS, libltdl/config/ltmain.m4sh: Bump copyright years. * libltdl/m4/libtool.m4 (_LT_COPYING, LT_OUTPUT): Likewise. * libtoolize.m4sh: Likewise. 2009-01-14 Peter Rosin Fix flakey mdemo-dryrun test on MSYS (again!) * tests/mdemo-dryrun.test: ls -l in MSYS sometimes shows year, not time, for really fresh files. Add sleep 1 call at yet another strategic position. Makes the test pass reliably for MSYS/MinGW. 2008-12-19 Akim Demaille Fix copyright notice. * libltdl/config/ltmain.m4sh: Add missing comma. 2008-12-17 Ralf Wildenhues Add cache variables to link tests. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_LINKER_SHLIBS): Add cache variables to tests that require the linker to work. For shlibpath_overrides_runpath, this also changes the semantics to let the result from the C compiler take precedence. * tests/no-executables.at (AC_NO_EXECUTABLES): New file. * Makefile.am: Update. * NEWS: Update. Report of shlibpath_overrides_runpath issue by Mike Frysinger, report of GCC issue by Andreas Schwab. 2008-11-28 Paolo Bonzini Fix inadvertent commit. * bootstrap: Revert. 2008-11-28 Paolo Bonzini Fix manual typo. * doc/libtool.texi (LT_INIT): Use correct config.status invocation. Reported by Akim Demaille. 2008-11-28 Paolo Bonzini Do not use $ECHO within eval-ed `...`, as %s\\n becomes %s\n. * HACKING: Document func_echo_all. * libltdl/m4/libtool.m4: Use it within backticks that appear in eval-ed variables. Reported by Akim Demaille. 2008-11-24 Ralf Wildenhues Fix func_infer_tag $ECHO usage; some testsuite exposure. * libltdl/config/ltmain.m4sh (func_infer_tag): Use func_echo_all rather than $ECHO for possibly multiple arguments. * tests/infer-tag.at (inferred tag, CXX inferred tag) (F77 inferred tag, FC inferred tag, GCJ inferred tag): New file, new tests. * Makefile.am: Adjust. * tests/runpath-in-lalib.at (Runpath in libtool library files): Add $EXEEXT overlooked in patch yesterday. 2008-11-23 Ralf Wildenhues Fix expout and experr line ending issues. * tests/testsuite.at (LT_AT_HOST_DATA): Renamed from.. (_LT_AT_TRANSLATE_TEXT_OUTPUT): ..this. (LT_AT_EXEC_CHECK, LT_AT_NOINST_EXEC_CHECK): Do not use _LT_AT_TRANSLATE_TEXT_OUTPUT any more. * tests/configure-iface.at: Use LT_AT_HOST_DATA instead of AT_DATA for `expout' files. * tests/lt_dladvise.at (lt_dlopenadvise library loading): Likewise. * tests/need_lib_prefix.at (enforced lib prefix): Likewise. Report by Roumen Petrov. Relax link-order2 test for systems with partial wrong order. * tests/link-order2.at (Link order of deplibs.): On w32 (and others, e.g., AIX), the wrongly linked executable picks up only one instance of the bad function instead of two; relax the test to accept this; we still require the right link order with the correctly linked executable. Reported by Roumen Petrov and others. 2008-11-23 Roumen Petrov Ralf Wildenhues Add $EXEEXT to all linked programs in the new testsuite. * tests/convenience.at, tests/ctor.at, tests/darwin.at, tests/deplibs-ident.at, tests/duplicate_conv.at, tests/duplicate_deps.at, tests/duplicate_members.at, tests/export.at, tests/fail.at, tests/indirect_deps.at, tests/inherited_flags.at, tests/link-order.at, tests/link-order2.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/need_lib_prefix.at, tests/runpath-in-lalib.at, tests/search-path.at, tests/shlibpath.at, tests/static.at, tests/stresstest.at, tests/template.at, tests/testsuite.at: Use $EXEEXT throughout, except in Makefile.am snippets where automake takes care of it, and in testsuite macros that take care of the extension. Reports by Roumen Petrov and Alon Bar-Lev. 2008-11-23 Ralf Wildenhues Adjust executable run tests to cwrapper changes. * tests/testsuite.at (LT_AT_EXEC_CHECK): Accept fifth argument ARGS-OR-STATUS-ADJUST, for command-line arguments and/or exit status flattening. Rewrite to prefer the executable with the `.exe' prefix over one without. Test exit status against expected exit status, not against zero, when determining whether this may be a cross-compilation-induced result. (LT_AT_NOINST_EXEC_CHECK): Likewise. * tests/static.at (static linking flags for programs): Adjust calls. Report by Roumen Petrov. No trailing period in Autotest test group names. * tests/link-order.at (Link order test): Drop trailing period from test name. * tests/link-order2.at (Link order of deplibs): Likewise. 2008-11-23 Vincent Torri (tiny change) Fix func_emit_cwrapperexe_src for WinCE: no errno support. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) [__MINGW32CE__]: Do not use errno, do not include errno.h and remove calls related to errno when using the mingw32ce compiler. 2008-11-23 Ralf Wildenhues No libm in WinCE. * libltdl/m4/libtool.m4 (LT_LIB_M) [cegcc*]: This system has only a dummy libm, ignore. Report by Vincent Torri. Fix import library detection for WinCE. * libltdl/config/ltmain.m4sh (func_win32_libid): Work for pe-arm-wince import libraries. * NEWS: Update. Report by Vincent Torri. 2008-11-23 Ralf Wildenhues Eric Blake Fix $ECHO test to not influence other _AS_DETECT_SUGGESTED code. * libltdl/m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Fix test to not influence further tests registered with _AS_DETECT_SUGGESTED and do not use a PATH below /tmp, to avoid influence by a third party. 2008-11-23 Alon Bar-Lev (tiny change) Fix func_win32_libid for 64-bit Windows. * libltdl/config/ltmain.m4sh (func_win32_libid): Accept file format 'pe-x86-64'. * NEWS: Update. 2008-11-23 Ralf Wildenhues Avoid newlines in some AT_CHECK commands. * tests/standalone.at (linking libltdl without autotools): Wrap lines with dnl, to avoid turning off tracing of AT_CHECK. * tests/subproject.at (linking libltdl without autotools): Likewise. Replace uses of $SED $basename. * libltdl/config/ltmain.m4sh (func_mode_link): Replace instances of `$ECHO ... | $SED' with calls to func_basename. * libtoolize.m4sh (func_copy, func_serial) (func_massage_aclocal_DATA): Likewise, replace with func_dirname_and_basename. * tests/defs.m4sh (func_configure_nofail, func_make, func_exec): Likewise. No need to prepend $progname with './'. * libltdl/config/general.m4sh (func_dirname_and_basename): $ECHO copes with leading hyphens now, so do not mangle $progname any more. Revenge of the $ECHO. Kill most uses of Xsed. * libltdl/config/general.m4sh: Replace all uses of `$ECHO "X..." | $Xsed' with `$ECHO "..." | $SED', and employ further trivial simplifications. Replace $ECHO with echo where appropriate. (func_echo_all): New function. * libltdl/config/getopt.m4sh: Likewise simplifications. * libltdl/config/ltmain.m4sh: Likewise. * libltdl/m4/libtool.m4: Likewise. (LT_CMD_MAX_LEN): Use func_fallback_echo, to ensure that the command line is passed through an exec* function. * libtoolize.m4sh: Likewise simplifications. Use func_echo_all to implement --dry-run. * tests/defs.m4sh: Likewise simplifications. * tests/quote.test: Likewise simplifications. Fix matching of Sun Fortran compiler on Linux. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [ linux ]: Also match `Sun Ceres Fortran' compiler; reorder with C compiler matching. * THANKS: Update. Report by Ethan Mallove. 2008-11-21 Charles Wilson Fix --verbose option; add new --no-{silent|quiet|verbose} options. * libltdl/config/ltmain.m4sh (usage): Document new options --no-silent/--no-quiet and --no-verbose. (func_enable_tag): Handle new options. Modified --verbose to actually activate opt_verbose. New behavior: --silent disables both "normal" output and func_verbose output. --verbose enables both "normal" output and func_verbose output. --no-silent enables "normal" output, but does not affect func_verbose output. --no-verbose disables func_verbose output, but does not affect "normal" output. * NEWS: announce new options --no-silent/--no-quiet, and --no-verbose. * doc/libtool.texi: document new options --no-silent/--no-quiet and --no-verbose. 2008-11-20 Ralf Wildenhues Fix match patterns for cegcc*. * libltdl/config/ltmain.m4sh (func_mode_link): Match '*cegcc*' instead of '*cegcc' for $host_os. * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD): Likewise. * tests/lt_dladvise.at (lt_dlopenadvise library loading): Likewise. * libltdl/m4/ltoptions.m4 (AC_LIBTOOL_DLOPEN): Match '*-*-cegcc*' for $host. Ensure $ac_aux_dir is initialized for LIBTOOL_DEPS. * libltdl/m4/libtool.m4 (LT_INIT): Require AC_CONFIG_AUX_DIR_DEFAULT. * tests/old-m4-iface.at (AM_PROG_LIBTOOL): Amend test to expose this. Report, analysis, and test example by Jakub Bogusz. Check for bogus aclocal.m4 contents in bootstrap and dist-hook. * Makefile.am (dist-hook): Bail out if shipped aclocal.m4 files contain LT_INIT, AC_PROG_LIBTOOL, or AM_PROG_LIBTOOL macro definitions. These can only come from bogus pull-ins from older installed Libtool macro files. * bootstrap: Likewise. Report by Akim Demaille. 2008-11-16 Ralf Wildenhues Fix $ECHO abuse exposed by recent patch. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Require _LT_CHECK_SHELL_FEATURES, for $lt_NL2SP. Always quote argument to $ECHO. Skip sys_lib_search_path on systems without libz. * tests/search-path.at (sys_lib_search_path): Autotest needs at least one AT_CHECK executed in a test group. So if we haven't found -lz anywhere, as may happen with cross-compilers, skip the test. * THANKS: Update. Report by Alon Bar-Lev. Fix execute mode test to actually expose cwrapper failures. * tests/execute-mode.at (execute mode): Actually also test the cwrapper on the arguments. Report by Bruno Haible. 2008-11-15 Charles Wilson Add func_win32_import_lib_p. * libltdl/config/ltmain.m4sh (func_win32_import_lib_p): New function. 2008-11-12 Ralf Wildenhues Fix archive_cmds for older cc on HP-UX 11. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [hp-ux11*, !GCC] [!hppa*64*, !ia64*] : Older releases of the HP-UX 11.00 C compiler do not support -b yet; use a link test to decide whether $LD should be used for library creation. * THANKS: Update. Report by Daniel Richard G. 2008-11-12 Paolo Bonzini * configure.ac: Bump Autoconf requirement. * libltdl/config/general.m4sh: Use $as_echo as default $ECHO. * tests/testsuite.at: Use $as_echo as default $ECHO. * libltdl/m4/libtool.m4 (LT_INIT): Add _LT_SHELL_INIT to work around Autoconf <2.64 bug. (_LT_OUTPUT_LIBTOOL_COMMANDS_INIT): Add func_fallback_echo. Eliminate lt_ECHO requoting. (_LT_SHELL_INIT): Use a public M4sh diversion. (_LT_PROG_ECHO_BACKSLASH): Rewrite. (LT_CMD_MAX_LEN): Do not use --fallback-echo. * libltdl/config/ltmain.m4sh: Remove --no-reexec and --fallback-echo handling. (func_fallback_echo): New. (func_emit_wrapper_part1): Quote ECHO. Remove --no-reexec and --fallback-echo handling. (Execute mode): Do not set qecho. 2008-11-12 Ralf Wildenhues Use -no-undefined in install tests. * tests/install.at (Install tests): Use `-no-undefined'. 2008-11-11 Ralf Wildenhues Do not use `test ... -a ...'. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [hpux10, hpux11]: Replace test -a with test && test. 2008-11-11 Roumen Petrov (tiny change) Fix destdir tests in cross compile mode. * tests/destdir.at (Simple DESTDIR install) (DESTDIR with in-package deplibs): Use $EXEEXT throughout. * THANKS: Update. 2008-11-11 Ralf Wildenhues Simplify cwrapper handling a bit. * libltdl/config/ltmain.m4sh (func_emit_wrapper_part1) (func_emit_wrapper_part2, func_to_host_path) (func_to_host_pathlist, func_emit_wrapper): Simplify using default argument, func_append. 2008-11-10 Paolo Bonzini Separate part of _LT_SETUP into other macros, detect ECHO sooner. * libltdl/m4/libtool.m4 (_LT_PREPARE_SED_QUOTE_VARS): New macro, extracted from... (_LT_SETUP): ... here. Require _LT_PROG_ECHO_BACKSLASH sooner. 2008-11-10 Paolo Bonzini Fix quoting when config.status generates libtool config. * libltdl/m4libtool.m4 (_LT_OUTPUT_LIBTOOL_COMMANDS_INIT): Double quote ECHO-ed variables. 2008-11-10 Paolo Bonzini Use documented M4sh interfaces. * clcommit.m4sh: Do not unset CDPATH, use AS_INIT and M4sh diversions. * libltdl/config/mailnotify.m4sh: Likewise. * libtoolize.m4sh: Likewise. * tests/defs.m4sh: Likewise. * tests/testsuite.at: Move AT_INIT invocation at the top. * libltdl/m4/libtool.m4 (_LT_INIT_GENERATED): New. (LT_OUTPUT): Use it. * libltdl/config/general.m4sh (M4SH_IN_HEADER): New. (progpath): Move setting before $0 could be clobbered. * libltdl/config/ltmain.m4sh (M4SH_IN_HEADER): New. 2008-11-10 Paolo Bonzini Run sh.test on the M4sh source. * tests/defs.m4sh (scripts): Point to pre-m4 sources. 2008-11-10 Paolo Bonzini Avoid that autom4te complains about unexpanded macros. * libtoolize.m4sh: Allow occurrences of "dnl" and use quadrigraphs to protect other m4 macros. 2008-11-11 Bruno Haible Ralf Wildenhues Fix cwrapper argument mangling on w32. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): On mingw, preprocess the argument vector through prepare_spawn. * tests/execute-mode.at (execute mode): Output args newline-separated. Extend tests by more argument pairs that contain special characters, where the w32 cwrapper fails. Also test a real compiled program, linked against an uninstalled library, to expose cwrapper issues. * NEWS: Update. 2008-11-10 Ralf Wildenhues Update to GFDL 1.3. * doc/fdl.texi: Update to GFDL 1.3. * doc/libtool.texi: Adjust. * NEWS: Update. 2008-11-09 Alexei Sheplyakov (tiny change) Fix cross compilation with wine for the case SHELL != bash. * libltdl/config/ltmain.m4sh (func_to_host_path): Avoid escape sequence interpretation by 'echo', for w32-style paths. * THANKS: Update. 2008-10-28 Michael Haubenwallner (tiny change) Fix checks for unsupported allow_undefined_flag. * tests/tagdemo-undef.test: Match allow_undefined_flag correctly, for SKIPping. * tests/cdemo-undef.test: Likewise. 2008-10-26 Ralf Wildenhues * tests/testsuite.at (_LTDL_PROJECT_FILES): Fix dependencies for parallel make. * libtoolize.m4sh (func_nonemptydir_p): Fix typo in error message. 2008-10-15 Ralf Wildenhues Fix Autoconf 2.59 incompatibilty. * libltdl/m4/ltdl.m4 (_LTDL_SETUP): m4_pattern_allow `LT_LIBEXT'; Autoconf 2.59's AC_DEFINE* macros didn't do this automatically yet. * NEWS, THANKS: Update. Report by Marcel Loose. 2008-10-05 Ralf Wildenhues Atomic shared library install permissions on HP-UX. The HP-UX 11 runtime linker fails to mmap shared libraries without execute permissions. Fixing them with postinstall_cmds may be too late, as ln, sed, and chmod may link against the library being installed. * libltdl/m4/libtool.m4 (install_override_mode): New LT_DECL. (_LT_SYS_DYNAMIC_LINKER) [hpux9*, hpux10*, hpux11*]: Set it. * libltdl/config/ltmain.m4sh (func_mode_install): Build a second command line, $install_shared_prog, for the installation of the shared library. Override resp. set the permission mode if install_override_mode is nonempty. * doc/libtool.texi (libtool script contents): Document it. * tests/install.at (Install tests): New test. * Makefile.am (TESTSUITE_AT): Adjust. (TESTS_ENVIRONMENT): Pass INSTALL. Report by Bruno Haible. 2008-09-26 Eric Blake Avoid gcc warning. * libltdl/loaders/loadlibrary.c (vm_open): Don't check for array being a NULL pointer. 2008-09-20 Ralf Wildenhues Man pages for libtoolize and libtool, new command line option --help-all. * Makefile.am (dist_man1_MANS, update_mans): New macros. ($(srcdir)/doc/libtool.1, $(srcdir)/doc/libtoolize.1): New rules. Use --help-all for libtool. (MAINTAINERCLEANFILES): New macro. Add dist_man1_MANS. (BUILT_SOURCES): Add libtoolize. * configure.ac: Check for help2man, set HELP2MAN. * doc/libtool.texi: Add @direntry for libtool-invocation. (Invoking libtool): Document -h, --help-all. Reorder mode description for consistency. (Compile mode): Do not document -Wl,FLAG and -XCClinker here. (Link mode): Document -Wc,FLAG here, reformat a bit. * libtoolize.m4sh: Reformat --help output a bit, to help help2man. * libltdl/config/ltmain.m4sh: Likewise. Also, set PROGRAM to `libtool', not `ltmain.sh', so the former is used in the man page. New argument `--help-all'. If given, call func_help and func_mode_help several times, beating output in shape with sed. (func_mode_help): Do not exit here. * libltdl/config/getopt.m4sh (func_usage): Work with different indentations, but require comment hash in first column, when grepping for '-h' in usage to end short help. (func_help): Accept optional argument to not exit. * NEWS, THANKS: Update. Suggestion by Karl Berry. 2008-09-08 Gary V. Vaughan Use `-version-info 9:0:2' for one added iface since 2.2.4. * libltdl/Makefile.inc (LTDL_VERSION_INFO): Make the libltdl version number match 2.2.6a rerelease. Add ./commit option for pushing tags back to origin. * clcommit.m4sh (opt_tags): New --tags push option. (func_commit): Run `$GIT push --tags' if --tags was passed. * HACKING (Release Procedure): Note the requirement to pass --tags to ./commit for new release tag to be push back to origin. 2008-09-07 Gary V. Vaughan Retire gnu.org news.html in favour of savannah news. * HACKING (Release Procedure): Add instructions for sending a web release announcement to http://planet.gnu.org via the savannah news manager. Add untested git push conflict testing to commit script. * clcommit.m4sh (func_check_conflicts): Test return status of 'git push --dry-run', and display an error on non-zero. Enable release procedure to work with lzma OLDRELEASE file. * Makefile.maint (diffs, prev-tarball, new-tarball): If lzma tarballs are present use them to generate the diffs, otherwise use gz tarballs if they are present, or else complain if both are missing. Set SCM version number to 2.2.7a. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.7a. * NEWS: Updated. GNU Libtool 2.2.6 was released. Fix typo in Makefile.maint. * Makefile.maint (git-news): Renamed to check-news, since it doesn't actually run git. Adjust all dependees. Run `git commit -a' when no files are passed. * clcommit.m4sh (func_commit): Add -a argument if necessary. Prepare for next stable release. * libltdl/Makefile.inc (LTDL_VERSION_INFO): Update. * libltdl/m4/libtool.m4: Bump serial number to account for changes since 2.2.4 release. * INSTALL, config/config.guess, config/texinfo.tex: Updated from canonical source. * configure.ac (AM_INIT_AUTOMAKE): Specify dist-lzma, which was introduced after automake-1.10 was released. (abs_top_srcdir, abs_top_builddir): No need to substitute these from configure anymore, since we require automake 1.10.1, which does perform the substitutions properly. (TIMESTAMP): Normal releases were displaying the long-form timestamp. Fix to show the short release timestamp as per alpha release numbers. * NEWS: Update with missing entries from ChangeLog. * HACKING (Release Procedure): We release lzma tarballs now but no xdeltas. * Makefile.maint: Updated to match Release Procedure instructions in HACKING. Convert mailnotify headers to git. * clcommit.m4sh: Improve mailnotify contents. Make ./commit useful again. * clcommit.m4sh: Major overhaul and simplification for git. 2008-09-06 Gary V. Vaughan Fix 'DISTCHECK_CONFIGURE_FLAGS=--program-prefix=g' bug. * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Fix test failures with --program-prefix, where the test case output contains the transformed name somewhere other than the beginning of a line. * libtoolize.m4sh (func_check_macros): Be sure to always use the transformed name in output messages. 2008-09-04 Ralf Wildenhues Do not remove .gcno files when linking. * libltdl/config/ltmain.m4sh (func_mode_link): When removing potential output files before linking, do not remove *.gcno profile information GCC outputs next to object files in `.libs'. Report by Vincent Torri. 2008-09-01 Peter O'Gorman Revert 75142db4f8afc65ba7aae0ed80ea0b35bd9cc382 (AIX libltdl dlopen(NULL) * libltdl/m4/ltdl.m4: Remove LTDL_DLOPEN_SELF_WORKS define. * libltdl/loaders/dlopen.c: Remove LTDL_DLOPEN_SELF_WORKS check. * libltdl/m4/libtool.m4 [aix]: Set export_dynamic_flag_spec to -Wl,-bexpall. This is a temporary workaround until a real fix is implemented. * NEWS: document it. 2008-08-26 Peter O'Gorman Allow for extensions other than .a for preloaded modules. * libltdl/m4/ltdl.m4 (_LTDL_SETUP): Define LT_LIBEXT. * libltdl/ltdl.c (lt_dladvise_preload): Use it. Reported by Ralf Wildenhues. 2008-08-26 Peter O'Gorman , Ralf Wildenhues Remove unnecessary global argz functions. * libltdl/argz.c (argz_add,argz_count): Remove. * libltdl/argz_.h (argz_add,argz_count): Remove. * NEWS: Announce it. * tests/ltdl-api.at: Test so we don't repeat it. * Makefile.am: Add new test. 2008-08-22 Ralf Wildenhues Initial support for Lahey Fortran on GNU/Linux. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [linux] : Add support for Lahey Fortran 8.1. * NEWS, THANKS: Update. Suggested by Craig Tierney. 2008-08-21 Sam Thursfield (tiny change) Avoid leading separator in PATH for DLL search. * libltdl/config/ltmain.m4sh (func_mode_link) [cygwin, mingw] [ pw32, os2, cegcc]: Fix dllsearchpath not to contain leading separator. * THANKS: Update. 2008-08-21 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Quote $#. Disallow `-L path', do not misparse it silently. * libltdl/config/ltmain.m4sh (func_mode_link): Diagnose `-L' without argument, and `-L path', i.e., with a space. * tests/fail.at (Failure tests): Test for these failures. * THANKS: Update. Report by Olaf Lenz. 2008-08-16 Ralf Wildenhues Avoid test failure due to broken dlpreloading of shared library. * tests/lt_dladvise.at (lt_dlopenadvise library loading): Drop some newlines in AT_CHECK commands, for better 'testsuite -x' output. Only create a static installable libpreload.la, to avoid exposing the bug libtool currently has with preloading of shared libraries. Add a note to revisit this later. 2008-08-12 Ralf Wildenhues Parallel make testsuite fixes. * tests/configure-iface.at (installable libltdl) (--with-ltdl-include/lib, --with-included-ltdl): Add dlopened libmodule.la to main_DEPENDENCIES. * tests/old-m4-iface.at (AC_WITH_LTDL): Likewise, let ltdldemo depend upon module.la and libltdl/libltdlc.la. * tests/testsuite.at (LT_AT_MAKE): Invoke each target in turn, default to 'all'. * tests/early-libtool.at (config.lt): Define 'all' target. * HACKING: Update for git, fix some minor nits. 2008-08-11 Ralf Wildenhues Remove use of exit in configure test sources. * libltdl/m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): Return from main, to avoid using undeclared exit. Report against OpenMPI from Coverity via Jeff Squyres. * tests/configure-iface.at (convenience libltdl): Ignore warning from parallel make. 2008-08-07 DJ Delorie * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [tpf] : Fix typo in variable name. 2008-08-06 Steve Ellcey Use -fPIC with GCC on HP-UX/ia64. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [ia64-*-hpux*]: Specify -fPIC when using GCC to build shared libraries. 2008-08-01 Ralf Wildenhues * NEWS: Minor fixups. 2008-08-01 Gary V. Vaughan Bring NEWS up to date. * NEWS: Add missing summaries since 2.2.4 release. Implement lt_dlopening of only preloaded modules. * libltdl/m4/ltdl.m4 (LTDL_INIT): Check for a libltdl that provides lt_dladvise_preopen when deciding if installed libltdl is 'new enough'. * libltdl/libltdl/lt__private.h (lt__advise): Add a new is_preload flag. * libltdl/ltdl.c (lt_dladvise_preload): New api call to set it. (try_dlopen): If it is set, and the search of preloaded modules didn't return a match, don't bother searching the filesystem. * libltdl/ltdl.h (lt_dladvise_preload): Declare it. * doc/libtool.texi (Libltdl Interface): Document it. * tests/lt_dladvise.at: Test it (and incidentally add some test coverage for `libtool -dlpreopen'). * NEWS: Announce it. 2008-08-01 Vincent Torri Add cegcc (Windows CE/PocketPC) support. * libltdl/config/ltmain.m4sh: Add 'cegcc' case where needed. * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN, LT_SYS_DLOPEN_SELF) (_LT_SYS_DYNAMIC_LINKER, _LT_CHECK_MAGIC_METHOD) (_LT_CMD_GLOBAL_SYMBOLS, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG): Likewise. * libltdl/m4/ltoptions.m4 (AC_LIBTOOL_DLOPEN): Likewise. * NEWS: Update. * THANKS: Update. 2008-07-31 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_to_host_path): Fix sh.test failure. Report by Paolo Bonzini. 2008-07-31 Paolo Bonzini * ltmain.m4sh (func_emit_cwrapperexe_src): Factor multiple closed braces into the next cat command. 2008-06-19 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] : Use -fPIC, newer Intel compilers (icc 10, ifort 9) reject -KPIC. * tests/localization.at: Skip test if the compiler fails merely due to the locale setting. * THANKS: Update. Report by Vincent Lefevre. 2008-06-17 Ralf Wildenhues * doc/libtool.texi (Linking executables, Static libraries) (Modules for libltdl, Distributing libltdl): Remove TABs from the manual. 2008-06-13 Peter O'Gorman Support ifort on darwin. * libltdl/m4/libtool.m4 (_LT_DARWIN_LINKER_FEATURES): Build shared libraries with ifort. Reported by Christopher Hulbert. 2008-06-01 Charles Wilson [mingw] fix cross-compile-with-wine case * libltdl/config/ltmain.m4sh (func_to_host_path) [host=mingw, build!=mingw|cygwin]: check that winepath stdout is non-empty and exit code is 0, instead of checking stderr. Reported by: Roumen Petrov 2006-06-01 Stas Maximov (tiny change) Check only regular files, not devices, for lalibs. * libltdl/config/ltmain.m4sh (functions func_lalib_p) (func_lalib_unsafe_p): Only read regular files and not device files. Avoids blocking libtool executing gdb, when a pseudo-terminal device /dev/pts/NN is given as one of the arguments to gdb, as in: libtool --mode=execute gdb -q -nw -i mi -tty /dev/pts/4 prog 2008-05-31 Peter O'Gorman Skip darwin test if fat link fails. * tests/darwin.at: Skip if we can not link a fat program. Reported by Daniel Macks 2008-05-26 Ralf Wildenhues libtoolize should not remove config.guess, config.sub. * libtoolize.m4sh (all_pkgconfig_files): Do not list config.guess nor config.sub. We don't install them without --install, and the project may not be using Automake. Report by Andreas Schwab. Simplify argument parsing in cwrapper. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Use NULL where appropriate. Do not compute length of arguments needlessly. 2008-05-25 Charles Wilson [mingw] Add cross-compile support to cwrapper * libltdl/config/ltmain.m4sh (func_to_host_path) [$host=mingw]: If present, use winepath to convert from $build to $host if $build is neither mingw (msys) nor cygwin. Use unconverted path as fallback when conversion fails. Also update comments. (func_to_host_pathlist) [$host=mingw]: Ditto. For fallback case, use simplistic ':' to ';' path separator translation. 2008-05-25 Charles Wilson Cwrapper should not eat -- arguments * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) [file scope]: Defined all option strings in terms of macro LTWRAPPER_OPTION_PREFIX. Similarly defined all option string lengths in terms of macro LTWRAPPER_OPTION_PREFIX_LENGTH. [main]: Modified option parsing algorithm to pass -- on to target, and to not stop processing arguments when -- is seen. Added check for unrecognized options in reserved namespace defined by LTWRAPPER_OPTION_PREFIX. 2008-05-25 Ralf Wildenhues Fix ifort settings again. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] : Unlike icc and ecc, not all ifort versions understand `-KPIC', e.g. version 10.1, so use `-fPIC' instead. Report by Jeff Squyres. 2008-05-20 Eric Blake Resynchronize argz whitespace changes from gnulib. * libltdl/m4/argz.m4: Kill trailing whitespace. * libltdl/argz.c: Likewise. 2008-05-19 Eric Blake Fix regression from two days ago. * libltdl/m4/ltdl.m4 (_LT_LIBOBJ): Don't refer to deleted macro. 2008-05-17 Eric Blake Speed up bootstrap by improving lt_combine. * libltdl/m4/ltsugar.m4 (lt_combine): Mirror Autoconf 2.62 improvements. Includes a semantic change where the separator can now be empty, and where an empty fourth argument is now treated as a valid suffix. * libltdl/m4/libtool.m4 (_lt_decl_varnames_tagged): Adjust to new semantics of lt_combine. (lt_decl_varnames_tagged): Fix quoting and optimize. Kill _LT_LIBSOURCES; it wasn't checking anything useful. * libltdl/m4/ltdl.m4 (_LT_LIBSOURCES): Delete. (LTDL_INIT): Ignore arguments to AC_LIBSOURCES during _LTDL_SETUP, on the assumption that libtoolize correctly installed them. 2008-05-13 Charles Wilson [mingw|cygwin] Modify cwrapper to invoke target directly. * libltdl/config/ltmain.m4sh (func_to_native_path): New function. If $host is mingw, and $build is mingw or cygwin, convert path to mingw native format. (func_to_native_pathlist): New function. Ditto, for :-separated pathlists. (func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]: Ensure putenv and setenv are declared. Define HAVE_SETENV. (func_emit_cwrapperexe_src) [main]: Add new constants to hold desired PATH settings; initialize and use functions above to convert to $host format if necessary. Add new command-line options --lt-env-set, --lt-env-prepend, and --lt-env-append. No longer emit wrapper script as integral part of launching child. Remove support for (now) unnecessary $TARGETSHELL. Exec actual target executable directly. (func_emit_cwrapperexe_src) [lt_setenv, lt_extend_str] [lt_split_name_value, lt_opt_process_env_set] [lt_opt_process_env_prepend, lt_opt_process_env_append] [lt_update_exe_path, lt_update_lib_path]: New functions. 2008-05-11 Charles Wilson Ensure cwrapper compiles without warnings under -std=c99. * libltdl/config/ltmain.m4sh (func_emit_wrapper_part1): new function. (func_emit_wrapper_part2): new function. (func_emit_wrapper): delegate to new functions. (func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]: ensure realpath is declared. (func_emit_cwrapperexe_src): declare two different strings to each hold part of the wrapper script content. Initialize using new func_emit_wrapper_partX functions. (func_emit_cwrapperexe_src) [main]: when emitting wrapper script content, use both strings. Reported by Yaakov Selkowitz. 2008-05-06 Charles Wilson Ensure $OBJDUMP is defined * libltdl/m4/libtool.m4 (_LT_DECL_OBJDUMP): new macro ensures that $OBJDUMP is always defined sanely. (_LT_SYS_DYNAMIC_LINKER): call it. (_LT_CHECK_MAGIC_METHOD): call it. 2008-05-05 Gary V. Vaughan Fix libtoolize test failure with aclocal < 1.10.1 * tests/libtoolize.at (verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIR): Older aclocal requires a space between -I and the directory argument. Reported by Daniel Macks 2008-05-04 Gary V. Vaughan Set SCM version number to 2.2.5a. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.5a. * NEWS: Updated. GNU Libtool 2.2.4 was released. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.4. * libltdl/Makefile.inc (LTDL_VERSION_INFO): C:R+1:A because the interfaces are unchanged, even though we improved the code some more. * NEWS: Updated. Macro file serial updates for next stable release. * libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4, libltdl/m4/ltoptions.m4, libltdl/m4/lt~obsolete.m4: Bump serial numbers to account for changes since 2.2.2 release. Make libtoolize tests work with distcheck. * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): When $tst_aclocal is set, transform paths that use it to generic /usr/local/share/aclocal in time for AT_CHECK comparisons. 2008-05-03 Gary V. Vaughan Don't trip over outdated acinclude.m4. * libtoolize.m4sh (all_pkgconfig_files, all_pkgmacro_files) (all_pkgltdl_files): New variables listing all files ever maintained by any release of libtoolize. (func_install_pkgconfig_parent, func_install_pkgltdl_files) (func_install_pkgconfig_subproject, func_install_pkgmacro_parent) (func_install_pkgmacro_subproject): Carefully clean up any files that may have been installed by previous libtoolize releases. * tests/libtoolize.at: New test for libltdl/acinclude.m4 removal. Reported by Andreas Schwab . 2008-05-02 Peter O'Gorman It helps to close quotes. * libltdl/config/ltmain.m4sh (func_mode_link): Add closing '. 2008-05-01 Peter O'Gorman Use AC_CHECK_TOOL for otool and otool64. * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check. * libltdl/config/ltmain.m4sh (func_mode_link): Use. Reported by Richard Purdie 2008-04-30 Eric Blake Support cygwin 1.7.0 in loadlibrary loader. * libltdl/m4/ltdl.m4 (LT_LIB_DLLOAD) : Check for modern function. * libltdl/loaders/loadlibrary.c (vm_open): Avoid deprecated cygwin_conv_to_full_win32_path. 2008-04-29 Gary V. Vaughan New libtoolize --no-warn option and LIBTOOLIZE_OPTIONS parsing. * libltdl/config/general.m4sh (opt_warning): New option. (func_warning): Only display a warning message if $opt_warning is true. * libtoolize.m4sh: Accept options in LIBTOOLIZE_OPTIONS environment variable. (--no-warn): Parse new option. (func_serial_update_check, func_keyword_update): Use func_warning. (func_check_macros): Bail out before style issues nags when $opt_warning is false. * doc/libtool.texi (Invoking Libtoolize): Document it. * tests/libtoolize.at: Test it. * NEWS: Updated. Fix libtoolize test failure with aclocal-1.10.1. * tests/libtoolize.at (verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIR): Force aclocal to search the source tree for latest libtool macros. 2008-04-24 Eric Blake Fix bug in 2008-04-21 type improvements. * libltdl/ltdl.c (load_deplibs): Fix casting bug. 2008-04-23 Michael Haubenwallner Use /nonexistent as destination for files not to be installed. * tests/darwin.at (darwin fat compile): Fix typo. * tests/inherited_flags.at (inherited_linker_flags): Change -rpath to /nonexistent. This helps to avoid accidentally picking up libraries below /usr/local. * tests/template.at (simple template test): Likewise. Fixes test failure for additional incompatible libstdc++ in /usr/local. * tests/testsuite.at (configure_options): Add --prefix=/nonexistent. 2008-04-23 Gary V. Vaughan * libtoolize.m4sh (rerun_aclocal): Remove unused variable. Reported by Olly Betts 2008-04-23 Ralf Wildenhues * tests/static.at (ccache -all-static): Ignore link warnings. Report by Gary V. Vaughan. 2008-04-22 Gary V. Vaughan Libtoolize now advises AC_CONFIG_MACRO_DIR use where appropriate. * libtoolize.m4sh (func_check_macros): Always advise use of AC_CONFIG_MACRO_DIR when not able to copy libtool macros into the project tree. * tests/libtoolize.at: New test for correct diagnosis of mismatch between AC_CONFIG_MACRO_DIR and ACLOCAL_AMFLAGS. Update expected output of other tests. * NEWS: Updated. 2008-04-22 Ralf Wildenhues Fix regression over 1.5.26 with ccache $CC -all-static. * libltdl/config/ltmain.m4sh (func_mode_link): Add $link_static_flag to compile_command and link_command only later, instead of right after a possible compiler wrapper. * tests/static.at (ccache -all-static): New test. * THANKS: Update. Report by Richard Purdie. 2008-04-22 Andreas Schwab Ralf Wildenhues Fix default argument for AC_LIBLTDL_CONVENIENCE. * libltdl/m4/ltdl.m4 (AC_LIBLTDL_CONVENIENCE): Default argument to libltdl. (AC_LIBLTDL_INSTALLABLE): Likewise. * tests/configure-iface.at (convenience libltdl): New test. 2008-04-21 Gary V. Vaughan Only complain that files are up-to-date with --force. As a side effect, this also means that when `aclocal' copies the libtool macros into `aclocal.m4' libtoolize complains only about the macro files that are missing or not up-to-date. * libtoolize.m4sh (func_echo_once): New function that prints the contents of a named variable only on the first call. (func_aclocal_update_check): New function that compares serial numbers of libtool macros in aclocal.m4 and only diagnoses the missing files. (func_copy, func_copy_cb, func_copy_some_files, func_serial_update) (func_keyword_update, func_ltmain_update, func_config_update) (func_install_update): Accept a new argument naming a variable containing a header string to print with func_echo_once iff any body text is output by this function. (func_install_pkgmacro_subproject, func_install_pkgmacro_parent) (func_install_pkgltdl_files, func_install_pkgconfig_subproject) (func_install_pkgconfig_parent: Set and pass a suitable header string variable for the above functions. (func_serial_update_check): Don't advise rerunning `libtoolize --force' when aclocal.m4 is not m4_including libtoolize installed macro files. * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Transform generic /usr/local/share/aclocal paths to point into the uninstalled libtool macro directory. * tests/libtoolize.at: Update tests that were checking for old behaviour of outputing `file is already up to date' even when --force was not passed. * tests/libtoolize.at: New tests to prevent regressions of these smarter messages. * NEWS: Updated. Reported by Olly Betts Capture lt~obsolete.m4 serial number correctly in libtoolize. * libltdl/m4/lt~obsolete.m4: Add the filename to the #serial marker so that libtoolize's serial number checks can find it in a non-include using aclocal.m4. * NEWS: Updated. Reported by Olly Betts Allow better compile time type checking for lt_dladvise. * libltdl/lt__private.h (lt__handle, lt__advise): Typedefs removed in favour of... * libltdl/ltdl.h (lt_dlhandle), libltdl/libltdl/lt_dlloader.h (lt_dladvise): ...changing from void* to forward declarations. * libltdl/loaders/dlopen.c, libltdl/loaders/loadlibrary.c, libltdl/lt_dlloader.c, libltdl/ltdl.c: Remove many redundant type casts. * NEWS: Updated. Suggested by Bob Friesenhahn 2008-04-21 Peter O'Gorman basename does not take a list of strings. * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed $basename. * tests/darwin.at: New. Check that we can built fat program, shared library and convenience library. * Makefile.am: Add test. Reported by LiKai Liu Use AC_CHECK_TOOL for lipo too. * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check. * libltdl/config/ltmain.m4sh (func_extract_archives): Use. 2008-04-20 Gary V. Vaughan Fix misleading lt_dlopenadvise documentation. * doc/libtool.texi (lt_dlopenadvise): The last parameter is of type lt_dladvise, not lt_dladvise*. (my_dlopenext): Correct the example too. * NEWS: Updated. Reported by Gary Kumfert 2008-04-19 Ralf Wildenhues Fix testsuite cleanup warnings on AIX with NFS. * tests/testsuite.at [ aix ]: Set file mode creation so that 'others' have no permissions. Shared libraries are kept in memory on AIX after use if they are world-readable, which means on NFS mounts cleanup of test group directories will fail later. * THANKS: Update. Report and analysis by Michael Haubenwallner. Fix nonportable use of expr. * libltdl/config/ltmain.m4sh (func_mode_link) : Fix expr portability issues, noted on FreeBSD. While at it, simplify and avoid forking. Report by Bob Friesenhahn. Exploit shell arithmetic expansion and ${#var}. * libltdl/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Also check for arithmetic expansion, and ${#var}. (_LT_PROG_XSI_SHELLFNS): Define func_arith and func_len accordingly, falling back on 'expr'. Note that the argument to func_len may not start with a hyphen. In the pre-Posix fallback, take care not to rely on the exit status of the variable assignment (not portable), but set the length to $max_cmd_len instead. * libltdl/config/ltmain.m4sh (func_mode_link): Use func_arith and func_len throughout for integer arithmetic, fixing quadratical amount of counting for reloadable object and piecewise archive linking. Change all comparisons with max_cmd_len to test for smaller, non-equal length. * THANKS: Update. Suggested by Roland Mainz. * libltdl/config/ltmain.m4sh (func_mode_compile): Avoid redundant removal of old output files before compilation. Do not remove $obj until we have successfully grabbed the lockfile (in case the compiler doesn't grok `-c -o'), because it might be identical to $output_obj. At the end of the function, before we remove the lockfile, update $removelist so that if the trap hits after the lockfile has been removed, we do not accidentally remove $output_obj that does not belong to us. (func_write_libtool_object): Use $MV instead of mv. 2008-04-18 Andreas Schwab * libltdl/m4/ltoptions.m4 (AC_ENABLE_SHARED): Check optional argument. (AC_ENABLE_STATIC): Likewise. (AC_ENABLE_FAST_INSTALL): Likewise. 2008-04-16 Eric Blake Make ChangeLog merges easier. * .gitattributes: New file. * HACKING: Mention how it helps. 2008-04-15 Peter O'Gorman Allow bootstrap from git repository. * Makefile.am: Pass srcdir as an argument to mkstamp and expect only 2 fields in mkstamps output. * clcommit.m4sh: Ditto. * configure.ac: Ditto. * libltdl/config/mkstamp: return a revision and date based on the number of lines which look like dates in all the ChangeLog* files in the directory we got as arg 1. 2008-04-11 Eric Blake Fix usage of setmode without declaration on cygwin. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Ensure setmode has prototype for both mingw and cygwin. 2008-04-10 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Move non-XSI definition of func_dirname_and_basename ... * libltdl/config/general.m4sh (func_dirname_and_basename): ... here, to use it for the other scripts that use general.m4sh (and as portable fallback for libtool). Add marker for early insertion of generated shell functions (into libtool, not the other scripts) here. Use func_dirname_and_basename to compute progname, progpath. * libltdl/config/ltmain.m4sh (func_mode_help): Remove marker for insertion of generated shell functions. * tests/sh.test: Adjust function definition test to not match function call. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS) : New function. * libltdl/config/ltmain.m4sh (func_mode_compile): Use it to avoid two forks with XSI shells. * tests/suffix.test: Also test a file with multiple dots. 2008-04-10 Peter O'Gorman * libltdl/config/ltmain.m4sh (func_win32_libid, func_generate_dlsyms, func_extract_an_archive, func_extract_archives, func_mode_help): move these so they appear after func_mode_compile. * tests/nomode.test: Check that --mode=link --help works. Reported by Josh Triplett 2008-04-07 Gary V. Vaughan * doc/libtool.texi (Libltdl interface): Add missing documentation for lt_dlopenavise. Reported by Anton Erti * configure.ac, libltdl/configure.ac (AM_INIT_AUTOMAKE): Use gnu rather than gnits standards so that version number 2.2.3a is not rejected! Reported by Olly Betts 2008-04-01 Gary V. Vaughan * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.3a. GNU Libtool 2.2.2 was released. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2.2. * libltdl/Makefile.in (LTDL_VERSION_INFO): C:R+1:A because the interfaces are unchanged, even though we improved the code some more. * NEWS: Updated. * libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4, libltdl/m4/ltoptions.m4: Bump serial numbers to account for changes since 2.2 release. 2008-03-27 Peter O'Gorman * libltdl/m4/libtool.m4 [_LT_REQUIRED_DARWIN_CHECKS]: Fix the test for -single_module and log it to config.log. Reported by Torok Edwin and Nigel Home. 2008-03-24 Ralf Wildenhues Document that disable-static plus -all-static is not portable. * doc/libtool.texi (Link mode): -all-static does not go well with disable-static on most systems. * tests/static.at (static linking flags for programs) [!aix]: With --disable-static but nonempty link_static_flag, skip the m-all-static link. Do not skip it on AIX, as there the enable_static is self-inflicted, and thus expected to work. * THANKS: Update. Report by Nix. 2008-03-17 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_CHECK_BUILDDIR): No need to escape backticks in argument to AC_MSG_WARN or AC_MSG_ERROR. * libltdl/m4/ltdl.m4 (_LTDL_INSTALLABLE, LTDL_INIT): Likewise. 2008-03-16 Ralf Wildenhues * libltdl/config/ltmain.m4sh (NLS nuisances): Fix quoting of localization variables for shell-active characters. * tests/localization.at (localized compiler messages): Extend test. * THANKS: Update. Report by Mike Frysinger. 2008-03-15 Ralf Wildenhues * tests/defs.m4sh (func_get_config): Build egrep regex to speed up extracting several variables at once. Use it to extract all default variables at once. Also extract build_alias and host_alias from the libtool script. (func_configure_nofail): Use build_alias and host_alias for --build and --host, respectively. Pass each if nonempty. * tests/testsuite.at: Pass --build if build_alias is nonemtpy. * tests/quote.test: Extract ECHO and wl at once. * libltdl/m4/ltoptions.m4 (AC_LIBTOOL_WIN32_DLL): Require AC_CANONICAL_HOST. * THANKS: Update. Report by Jakub Bogusz. 2008-03-14 Ralf Wildenhues * NEWS: Update. 2008-03-12 Charles Wilson * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) [file scope]: additional #includes and #defines to support... (func_emit_cwrapperexe_src) [main]: ensure stdout is set to binary mode for cygwin|mingw builds. Ensure temporary script file is written in binary mode for cygwin|mingw builds. (func_mode_link) [cygwin|mingw]: cross-build support - only use cwrapper to generate shell wrapper if building native; otherwise use func_emit_wrapper() 2008-03-12 Henning Nielsen Lund * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [amigaos]: Port to AmigaOS4 shared libraries on powerpc. * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS) [amigaos]: Likewise. * THANKS, NEWS: Update. 2008-03-09 Bruno Haible and Ralf Wildenhues Fix compiler output to be in the user locale. * libltdl/config/general.m4sh (func_show_eval_locale): New function, for running commands in the user locale. * libltdl/config/ltmain.m4sh (func_mode_compile): Use it for compiling. * tests/localization.at (localized compiler messages): New test. * Makefile.am: Adjust. Report by Bruno Haible. 2008-03-08 Ralf Wildenhues Fix several test failures on Cygwin and MinGW. * tests/nonrecursive.at: Use -no-undefined for foo.la. * tests/recursive.at: Likewise. * tests/subproject.at: Likewise. * tests/lt_dladvise.at: For systems where undefined symbols are not allowed, to not try to load the module libdepend. [ mingw ]: Add to list of such systems. * tests/testsuite.at (_LT_AT_TRANSLATE_TEXT_OUTPUT): New macro, to translate line ending of expout and experr files suitable for host executables. (LT_AT_CHECK, LT_AT_NOINST_EXEC_CHECK): Use it. Report by Bob Friesenhahn. Fix installcheck dependencies, fix for --program-transform-name. * Makefile.am (installcheck-local): Depend upon tests/atconfig and $(srcdir)/$(TESTSUITE). * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): New macro. (LT_AT_CHECK_LIBTOOLIZE): Use it to transform expout and experr files suitably. * HACKING: Update. Drop usage of obsolete macros AC_EXEEXT and AC_OBJEXT. * libltdl/m4/libtool.m4 (_LT_ENABLE_LOCK, _LT_COMPILER_OPTION) (_LT_COMPILER_C_O, LT_PATH_NM, _LT_CMD_GLOBAL_SYMBOLS, _LT_SETUP): Drop usage of obsolete AC_OBJEXT and AC_EXEEXT. * tests/am-subdir.at (C++ subdir-objects): Likewise. 2008-03-07 Peter O'Gorman * tests/convenience.at (Java convenience archives): Skip test if gcj cannot compile a working executable from .java files. Report by Nelson H. F. Beebe. * libltdl/m4/libtool.m4 (_LT_LANG_GCJ_CONFIG): Need to set LD. Reported by Nelson H. F. Beebe. 2008-03-06 Peter O'Gorman * libltdl/m4/libtool.m4 (_LT_PROG_FC): Undo commit - bad idea. * libltdl/m4/libtool.m4 (_LT_PROG_FC): Report FC=no if the FC compiler is not a GNU compiler and the CXX compiler is a GNU compiler. Reported by Nelson H. F. Beebe. 2008-03-06 Gary V. Vaughan * Makefile.maint (TSDEPS_DIST): Removed. No longer used. (TSDEPS): libtool.m4 has long since moved to libltdl. (cvs-dist): Don't put the suffix dot in twice. 2008-03-06 Ralf Wildenhues * tests/convenience.at (Java convenience archives): Skip test if gcj cannot compile a .java file. Report by Nelson H. F. Beebe. 2008-03-05 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_lalib_unsafe_p): redirect and restore from stdin, not stdout. * tests/execute-mode.at (execute mode): Adjust test to catch this. Report by Roberto Bagnara. 2008-03-04 Ralf Wildenhues Fix libltdl to not skip dlopen on systems with several loaders, such as HP-UX, Cygwin. * libltdl/slist.c (slist_concat): When appending to the tail of a list, do not drop items off the beginning of the list. * NEWS: Update. * libltdl/config/ltmain.m4sh (func_mode_execute): Replace only arguments we have identified as shell or C wrappers. (func_emit_wrapper): Output error message on stderr. * tests/execute-mode.at: New file, with --mode=execute tests. * Makefile.am: Adjust. * NEWS: Update. Fixes 2.2 regression. Report by Roberto Bagnara. * libltdl/m4/libtool.m4 (_LT_CONFIG): Drop misleading `GNU' prefix before the host package name in the "Generated by" line for the libtool script. * THANKS: Update. Reports by Peter Rosin and Roberto Bagnara. * doc/libtool.texi (Module loaders for libltdl): Fix typo. * libltdl/loaders/dld_link.c (vl_exit): New function, zero out ... (vtable): ... this new file static variable split out from ... (get_vtable): ... here. Initialize vtable, register vl_exit as dlloader_exit function. * libltdl/loaders/dlopen.c: Likewise. * libltdl/loaders/dyld.c: Likewise. * libltdl/loaders/load_add_on.c: Likewise. * libltdl/loaders/loadlibrary.c: Likewise. * libltdl/loaders/shl_load.c: Likewise. * libltdl/loaders/preopen.c: Likewise; vl_exit existed here already. * tests/lt_dlexit.at (lt_dlexit unloading libs): Update test. * NEWS: Update. Report by Andreas Schwab. 2008-03-01 Gary V. Vaughan * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.3a. GNU Libtool 2.2 was released. * configure.ac, libltdl/configure.ac (AC_INIT): Bump version number to 2.2. * NEWS: Updated. * tests/lt_dladvise.at, tests/lt_dlexit.at, tests/need_lib_prefix.at: Skip these tests when called from `make distcheck DISTCHECK_CONFIGURE_FLAGS=--disable-ltdl-install'. The tests try to link against the dummy installed libltdl.la from .../_inst/lib/libltdl.la, which does not exist when configured with --disable-ltdl-install. 2008-02-29 Gary V. Vaughan * libltdl/m4/argz.m4 (AC_CHECK_FUNCS): Also use our replacement argz if the system argz_add or argz_count are missing. Report by Juan Manuel Guerrero . 2008-02-26 Karl Berry * libltdl/argz.c (argz_add, argz_count): New functions. * libltdl/argz_.h: Declare them. Report by Juan Manuel Guerrero . 2008-02-20 Peter O'Gorman * libltdl/m4/libtool.m4 (_LT_LANG_GCJ_CONFIG): Do not call the _LT_SYS_DYNAMIC_LINKER macro here. Reported by Mike Frysinger 2008-02-15 Peter O'Gorman * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Fix typo. 2008-02-14 Peter Breitenlohner * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): better handling of predefined values for lt_cv_sys_lib_search_path_spec and lt_cv_sys_lib_dlsearch_path_spec. 2008-02-14 Ralf Wildenhues * libtoolize.m4sh (func_install_pkgconfig_files): Only call func_install_pkgconfig_parent if $seen_autoconf. * tests/standalone.at (compiling softlinked libltdl) (compiling copied libltdl, installable libltdl) (linking libltdl without autotools): Use checked libtoolize calls to catch warnings. 2008-02-13 Ralf Wildenhues * libltdl/configure.ac: Bump package version. * HACKING: Reminder to do it next time, too. 2008-02-11 Ralf Wildenhues * tests/mdemo/Makefile.am (@LIBLTDL@): Update outdated dependencies. ($(top_distdir)/libltdl/libtool): Remove. Fixes spurious mdemo-dryrun failure with OpenBSD make. 2008-02-09 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] : Treat like icc and ecc, for fixed `-Wl,' and `-KPIC' settings. 2008-02-08 Ralf Wildenhues * tests/archive-in-archive.at (static library contains static library): Test also the actual broken link command, and the following install command, as UnixWare ar rightly refuses to put an archive into an archive. Report by Tim Rice. 2008-02-06 Peter O'Gorman * libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): Only set default LT_INIT values for LT_INIT, not LTDL_INIT. Reported by Jochem Huhmann 2008-02-01 Ralf Wildenhues * tests/testsuite.at (LT_AT_TAG): For the CXX tag, if $CXX is g++, check that `g++ -v' works; AC_PROG_CXX may have set that as default value even if it found no C++ compiler. Report by Andreas Schwab. 2008-02-02 Gary V. Vaughan * libltdl/Makefile.inc (EXTRA_DIST): Now that we're not using Autoconf's AC_SOURCES macro, Automake can't trace our extra source files argz, lt__dirent.c and lt__strl.c. List them manually here to make sure they are distributed. * NEWS: Updated. Reported by Bob Friesenhahn 2008-02-01 Gary V. Vaughan * configure.ac (AC_INIT): Bump version number to 2.1c. GNU Libtool 2.1b was released. * configure.ac (AC_INIT): Bump version number to 2.1b. * libltdl/Makefile.inc (LTDL_VERSION_INFO): Increment to account for new interfaces since the last libltdl update. * HACKING (Release Procedure): Note that LTDL_VERSION_INFO is now kept in libltdl/Makefile.inc. 2008-02-01 Gary V. Vaughan * tests/cdemo, tests/depdemo, tests/fcdemo, tests/pdemo, tests/demo, tests/f77demo, tests/mdemo, tests/tagdemo (distclean-local): Remove compiler file droppings left by Autoconf tests that prevent make dist from finishing on several machines including Mac OS 10.5. 2008-02-01 Gary V. Vaughan Unfortunately, the autoconf implementation of AC_LIBOBJ and friends requires all libobjs to be in the same directory, as declared by AC_CONFIG_LIBOBJ_DIR. That might prevent using either recursive or nonrecursive libltdl if the parent project has libobjs of its own, except that this patch tracks libltdl's libobjs in another namespace: * libltdl/m4/ltdl.m4 (_LT_LIBOBJ, _LT_LIBSOURCES): Versions of AC_LIBOBJ and AC_LIBSOURCES that save missing sources in a ltdl_LIBOBJS automake macro, instead of the global LIBOBJS automake macro. Content of the macros inspired by code from gnulib-tool. (_LTDL_MODE_DISPATCH): Initialise lt_libobj_prefix in nonrecursive mode. (LTDL_INIT): Push and pop the new definitions around potential sites that call AC_LIBOBJ. Also, using lt_libobj_prefix, initialise ltdl_LIBOBJS and ltdl_LTLIBOBJS. * libtoolize.m4sh (func_fixup_Makefile): Substitute ltdl_LIBOBJS and ltdl_LTLIBOBJS for LIBOBJS and LTLIBOBJS during copying either Makefile.am or Makefile.inc, depending on ltdl_mode. Reported by Eric Blake 2008-01-30 Gary V. Vaughan There are 5 distinct batches of files that libtoolize might install into a project, depending on whether libltdl is being installed in subproject mode, and in that case whether the parent project shares the config and macro directories with the subproject ltdl. Make a separate function for each of those 5 batches (4 new functions below, plus the recently factored func_install_pkgltdl_files), and make a clearer distinction between when each of them is needed: * libtoolize.m4sh (func_install_pkgmacro_subproject): New function for installing and reporting on m4 files copied to a subproject ltdl directory. (func_install_pkgmacro_parent): Similar new function for m4 files copied solely for the use of the parent project, including serial checking. (func_install_pkgconfig_subproject): New function for installing and reporting on config helper files copied to a subproject ltdl directory. (func_install_pkgconfig_parent): Similar new function for config helper files copied solely for the use of the parent project, including serial checking. (func_install_pkgmacro_files, func_install_pkgconfig_files): Rewritten in terms of the above functions. * tests/libtoolize.at: Adjust test expout's to match newly regularized libtoolize output. Move parent project pkgconfig files to build-aux directory so that progress messages show an obvious difference to pkgconfig files installed to subproject `config' directory. (nonrecursive ltdl with AC_CONFIG_MACRO_DIR): New test. (diagnose missing LT_CONFIG_LTDL_DIR): New test. (subproject ltdl with non-shared directories): New test. Reported by Eric Blake 2008-01-29 Peter O'Gorman * libltdl/m4/libtool.m4 [darwin]: Changes to glob pattern matching to be safer. Search the compiler path too. * libltdl/m4/libtool.m4 (compiler_lib_search_dirs): New variable. * libltdl/config/ltmain.m4sh: Use it. Reported by Maynard Johnson 2008-01-28 Gary V. Vaughan * libtoolize.m4sh (func_check_macros): Correct typo with '$opt_quiet ||' where '$opt_quiet &&' that was preventing func_check_macros from running! * libtoolize.m4sh: Set opt_ltdl whenever seen_ltdl is set so that libtoolize behaves as though --ltdl was passed even if it wasn't as long as LTDL_INIT (or equivalent) was seen in configure.ac. Adjust redundant '$opt_ltdl || $seen_ltdl' to simply '$opt_ltdl'. Reported by Eric Blake * libtoolize.m4sh (func_check_macros): Check opt_quiet in the function itself to simplify calling it. Also move the definition of the function. * libtoolize.m4sh (func_scan_files): Be sure to set the default libltdl mode to 'subproject' when libtoolize is executed before configure.ac has been updated. 2008-01-27 Gary V. Vaughan * libtoolize.m4sh (func_install_pkgconfig_files) (func_install_pkgmacro_files, func_install_pkgltdl_files): Factored out from the 'Main' section of the file. * libtoolize.m4sh (subproject_auxdir, subproject_macrodir): New variables to hold the default locations for auxfiles and macrofiles in a subproject libltdl. (ac_auxdir, ac_macrodir): New variables to hold the values passed by AC_CONFIG_AUX_DIR and AC_CONFIG_MACRO_DIR resp. (auxdir, macrodir): Adjust to contain the values to be used by libtoolize at runtime. * libtoolize.m4sh (func_fixup_Makefile) (func_massage_aclocal_DATA, func_massage_pkgltdl_files) (func_massage_pkgconfig_files): Add missing $opt_debug. 2008-01-27 Gary V. Vaughan * libtoolize (func_fixup_Makefile, func_massage_aclocal_DATA) (func_massage_pkgltdl_files, func_massage_pkgconfig_files): Add missing $opt_debug. 2008-01-26 Gary V. Vaughan * libtoolize.m4sh (Main): Copy (or link) libltdl sources into project tree when LTDL_INIT was seen, whether or not `--ltdl' is passed. (func_check_macros): Recommend LTDL_INIT instead of LT_WITH_LTDL when `--ltdl' is used before configure.ac is upgraded. * tests/libtoolize.at: Test that it works. (_LT_AT_LTDL_SETUP): Factor out some common test setup. Reported by Eric Blake 2008-01-24 Peter O'Gorman * doc/notes.texi: Fix errors in previous commit. * libltdl/m4/libtool.m4 (sys_lib_search_path_spec, sys_lib_dlsearch_path_spec): Allow for a cache variable lt_cv_sys_lib_... to set these at configure time. * doc/notes.texi: Short note about the above change. 2008-01-24 Eric Blake Add proper quoting to doc examples. * doc/libtool.texi: Use m4 quotes where appropriate. (Test descriptions): Fix truncated sentence. 2008-01-18 Gary V. Vaughan * Makefile.am (DISTCLEANFILES): Remove libtool.dvi generated by 'make dvi'. 2008-01-17 Ralf Wildenhues * libtoolize.m4sh (func_scan_files): Avoid matching our own macro code when scanning configure.ac and aclocal.m4. Don't produce spurious output if AC_PROG_RANLIB is found. * tests/old-m4-iface.at (AM_PROG_LIBTOOL): Add a (weak) check that we don't match our own macro code when searching for user code calling us. * TODO: Updated. 2008-01-17 Ralf Wildenhues New variable LTDLDEPS for use in output_DEPENDENCIES. * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE, _LTDL_INSTALLABLE) (LTDL_INIT): Set and substitute LTDLDEPS according to chosen method. * tests/configure-iface.at (installable libltdl) (--with-ltdl-include/lib, --with-included-ltdl): Test it. * doc/libtool.texi (Distributing libltdl): Document LTDLDEPS. * NEWS: Updated. Dependency bug exposed by Eric Blake in M4, found by Bob Proulx build daemon. 2008-01-17 Ralf Wildenhues * doc/libtool.texi (Distributing libltdl): Clarify that `${top_build_prefix}' may be used in place of `${top_builddir}/'. * doc/libtool.texi (Distributing libltdl): Clarify that LTDL_INIT goes after LT_INIT; also show the latter in the respective examples. * tests/subproject.at: Adjust order. 2008-01-16 Ralf Wildenhues * libltdl/m4/ltdl.m4 (_LT_ENABLE_INSTALL): Use AM_CONDITIONAL only if defined. Allows to use libltdl without aclocal. 2008-01-16 Peter O'Gorman * libltdl/m4/libtool.m4: Set GCC var for every tag, avoids need to set withGCC var. 2008-01-15 Ralf Wildenhues * configure.ac: Set libltdl nonrecursive option, to avoid configuring libltdl inside the Libtool package. 2008-01-14 Ralf Wildenhues Silence all non-warning output from `libtool --silent'. * libltdl/config/ltmain.m4sh (func_generate_dlsyms) (func_extract_archives, func_mode_link): Use func_verbose instead of func_echo for all non-warning output. * Makefile.maint (fetch): Update to match upstream git sources. Pull `INSTALL' from gnulib instead of from Autoconf. * doc/notes.texi: Mention AIX binutils deficiency for C++ code. Report by Rainer Tammer. Suggest using bash for configure. * libltdl/m4/ltoptions.m4 (AC_ENABLE_SHARED): Fix to use new _LT_SET_OPTION semantics. 2008-01-12 Ralf Wildenhues * libltdl/m4/ltdl.m4 (_LTDL_SETUP): Define LTDL_DLOPEN_SELF_WORKS, depending upon lt_cv_dlopen_self. * libltdl/loaders/dlopen.c (vm_open) [!LTDL_DLOPEN_SELF_WORKS]: Fail for dlopen(NULL), so that the preopen loader is used. This fixes mdemo-exec.test failures on AIX where dlopen(NULL) succeeds but dlsym resolves no symbol. * NEWS: Update. Report by Rainer Tammer. * tests/am-subdir.at: Drop unused variables. * tests/configure-iface.at: Likewise. * tests/ctor.at: Likewise. * tests/early-libtool.at: Likewise. * tests/lt_dladvise.at: Likewise. * tests/old-m4-iface.at: Likewise. * tests/lt_dlexit.at: Likewise. Also drop unused functions. * tests/old-m4-iface.at (AM_PROG_LIBTOOL): Also copy needed lt~obsolete.m4. * libltdl/config/ltmain.m4sh (func_mode_link): Fix warning about -l and -L for archives and objects as output, to not trigger for *.la files. Non-convenience archives are diagnosed later on. * tests/configure-iface.at: Ensure LTDLINCL is expanded before CPPFLAGS, so that even CPPFLAGS=-I/usr/local/include won't make the tests prefer an installed ltdl.h over the in-package one. * tests/lt_dladvise.at, tests/lt_dlexit.at: Likewise. * tests/need_lib_prefix.at, tests/old-m4-iface.at: Likewise. Report by Bob Friesenhahn. 2008-01-11 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) : Also exclude `_GLOBAL__F[ID]_.*'. Also set for the C++ tag. Fixes esp. demo/helldl build failure with GCC on AIX. Report by Rainer Tammer. 2008-01-11 Peter O'Gorman * libltdl/m4/libtool.m4 [darwin]: Reorganize darwin support, use dsymutil if it is available so that debugging is possible, check for nmedit and dsymutil with AC_CHECK_TOOL, use the linker flag -exported_symbols_list in preference to nmedit if it is available. Drop support for xlc, it is probably broken. * tests/template.at [darwin]: Skip this test, I can not find a way to make it work on darwin9 with Xcode-3.0. * NEWS: Note the dropping of xlc support. 2008-01-08 Ralf Wildenhues * libltdl/m4/libtool.m4 (LT_INIT): m4_require, not AC_REQUIRE _LT_CHECK_BUILDDIR, as it's m4_defun'ed, not AC_DEFUN'ed. Report by Peter O'Gorman. * libltdl/m4/ltdl.m4 (_LTDL_INSTALLABLE): Restore correct _LT_BUILD_PREFIX-using code. 2008-01-08 Gary V. Vaughan * tests/recursive.at: Remove bogus --debug option. Reported by Ralf Wildenhues * tests/configure-iface.at: Build libltdl in a subdir so that it can be easily removed without trying to remove config.log on windows (which can't delete a file until it is closed). Reported by Ralf Wildenhues * libltdl/m4/ltdl.m4 (LTDL_INSTALLABLE): Use _LT_BUILD_PREFIX instead of ${top_builddir} for Autoconf-2.62. Reported by Ralf Wildenhues * libltdl/m4/ltdl.m4 (_LT_CONFIG_LTDL_DIR): Correct closing comment. Reported by Ralf Wildenhues * NEWS: Grammar nit. * tests/configure-iface.at, tests/nonrecursive.at, tests/recursive.at, tests/subproject.at (_LTDL_SETUP): Renamed to _LT_AT_LTDL_SETUP to avoid a nameclash with libltdl/m4/ltoptions.m4:_LTDL_SETUP from yesterday's patch. Reported by Ralf Wildenhues 2008-01-07 Ralf Wildenhues * tests/runpath-in-lalib.at (Runpath in libtool library files): Compile program file without libtool. Report by Rainer Tammer. 2008-01-07 Rainer Tammer (tiny change) Ralf Wildenhues Support AIX 6.1. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_C_CONFIG, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG) (_LT_LANG_FC_CONFIG): Adjust case patterns to match AIX 6 through 9 as well. * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): Likewise. * NEWS: Update. * THANKS: Update. 2008-01-07 Gary V. Vaughan Move libltdl build mode options from LT_CONFIG_LTDL_DIR to LTDL_INIT. Accept (optional) new 'convenience' and 'installable' options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And also, implement --with-included-ltdl, --with-ltdl-lib and --with-ltdl-include configure-time options: * libltdl/m4/ltoptions.m4: Associate existing option settings with LT_INIT. (LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive', 'subproject', 'installable' and 'convenience' with LTDL_INIT. (_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION) (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to support options to named macros instead of hardcoding only LT_INIT options. * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from LTDL_CONVENIENCE and LTDL_INIT([convenience]). (_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE and LTDL_INIT([installable]). (_LTDL_SETUP): Renamed from LTDL_INIT. Support new configure-time options: --with-included-ltdl, --with-ltdl-lib, --with-ltdl-include. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust. (LT_WITH_LTDL): Removed. (LTDL_INIT): Parse caller options. * libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be expanded before LTDL_INIT, and be sure to parse caller options. * configure.ac: Call directly into internal _LTDL_SETUP macro. * libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from LT_CONFIG_LTDL_DIR to LTDL_INIT. * tests/nonrecursive.at, tests/recursive.at: Use new interfaces. * tests/configure-iface.at: Test it. * Makefile.am (TESTSUITE_AT): Add configure-iface.at. * doc/libtool.texi (Distributing libltdl): Document improved LTDL_INIT interfaces. * NEWS: Updated. 2008-01-02 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): When creating reloadable object files, avoid issuing plain `rm -f' without further arguments, even if the line length limit is ridiculously low as in the `Run tests with low max_cmd_len' test. This failure is exposed on NetBSD. Report by Patrick Welche. * Makefile.am (EXTRA_DIST): Add ChangeLog.2007. * ChangeLog.2007: New, rotated, from... * ChangeLog: ...here. * NEWS, README, README.alpha, Makefile.am, libtoolize.m4sh, libltdl/config/getopt.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4: Bump copyright years. 2007-11-30 Stefan Sperling (tiny change) * doc/libtool.texi (Linking executables): Reorder paragraphs. 2007-11-26 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [ linux ]: The IBM XL 8.0 C++ compiler may also be called xlc++*, not only xlC*. Report by Nysal K Jan . 2007-11-24 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_CHECK_BUILDDIR): New macro. Warn about whitespace in the absolute build tree name. (LT_INIT): Use it. * THANKS: Update. Report by Jim Meyering. * libltdl/config/ltmain.m4sh (func_extract_an_archive) (func_extract_archives): Add some quoting. 2007-11-16 Ralf Wildenhues Use `${top_build_prefix}' for better compatibility with non-GNU make. * libltdl/m4/ltdl.m4 (_LT_BUILD_PREFIX): New macro. If the Autoconf version used is >= 2.62, then expand to `${top_build_prefix}', otherwise to `${top_builddir}/'. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Use it for defining LIBLTDL. Fixes a build failure with AIX make in a package using convenience libltdl in nonrecursive mode. * doc/libtool.texi (Distributing libltdl): Document requirements to define `top_build_prefix' if Automake is not used. Report by Bob Friesenhahn. 2007-11-12 Ralf Wildenhues Avoid warnings about conftest.dSYM directories on Mac OS X Leopard. * libltdl/m4/libtool.m4 (_LT_LINKER_BOILERPLATE) (_LT_LINKER_OPTION, _LT_CMD_GLOBAL_SYMBOLS): Remove conftest.dSYM directory. Report and analysis by Jeff Squyres and Peter O'Gorman. 2007-11-09 Ralf Wildenhues * libltdl/configure.ac: Drop the broken and long-disabled code to output a banner for the libltdl configure. Avoids the need to ship mkstamp with libltdl. 2007-11-08 Ralf Wildenhues * tests/runpath-in-lalib.at: New test. * Makefile.am: Update. Report by Benoit SIGOURE . 2007-10-16 Eric Blake Speed up bootstrap by improving lt_join. * libltdl/m4/ltsugar.m4 (lt_join, _lt_join): Rewrite to mirror Autoconf 2.62's faster implementation. 2007-10-12 Eric Blake Whitespace cleanup. * libltdl/m4/ltsugar.m4: Avoid space-tab in indents. * libltdl/m4/libtool.m4: Avoid trailing space. Deal with Autoconf 2.62's semantic change in m4_append. * libltdl/m4/ltsugar.m4 (lt_append): Replace broken versions of m4_append. (lt_if_append_uniq): Don't require separator to be overquoted, and avoid broken m4_append. (lt_dict_add): Fix typo. * libltdl/m4/libtool.m4 (_LT_DECL): Don't overquote separator. 2007-10-12 Ralf Wildenhues * libltdl/config/ltmain.m4sh: Also sanitize `LANGUAGE'. (func_mode_execute): Also restore `LANGUAGE', for old glibc. Report by Paul Eggert against Autoconf. 2007-10-11 Eric Blake * libltdl/.cvsignore: Ignore argz.h. 2007-10-11 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) : Renamed from lt_prog_compiler_pic_works. : Renamed from lt_prog_compiler_static_works. * NEWS: Update. 2007-10-09 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_compile): Accept extension `.sx'. * tests/suffix.test: Test it. 2007-09-07 Ralf Wildenhues * libltdl/lt_dlloader.c (loader_callback, lt_dlloader_get): Use NULL, not 0, for the benefit of too picky compilers like PGI. * slist.c (slist_tail): Likewise. Include stddef.h, for NULL. Report by Jeff Squyres. 2007-09-05 Eric Blake * libltdl/ltdl.c (lt_dlcaller_get_data): Work even when no caller has set data. 2007-09-04 Ralf Wildenhues * doc/libtool.texi (User defined module data) : Document that a NULL place matches all modules. * libltdl/lt_dlloader.c (lt_dlloader_remove): Actually iterate over all open modules when looking for modules that use it. If a resident module is found, return but do not set the error string. * libltdl/ltdl.c (lt_dlexit): When removing dlloaders, ignore errors that stem from earlier failed commands. Exposed by the lt_dladvise test. Fixes regression over branch-1-5. Memleak report as Coverity CID 19 via Jeff Squyres. 2007-09-01 Ralf Wildenhues * NEWS: Update. * libltdl/ltdl.c (trim): Fix possible write beyond array bound. * libltdl/ltdl.c (lt_dlopenadvise): Instead of asserting, return FILE_NOT_FOUND if the filename is "". * libltdl/ltdl.c (try_dlopen): Fix computation of extension, avoids subtracting pointer from NULL pointer. * libltdl/ltdl.c (try_dlopen, lt_dlforeachfile): Do not test array address of sys_dlsearch_path against NULL, rather test for nonempty contents. Coverity reports CID 148 and CID 149 via Jeff Squyres. * libltdl/ltdl.c (tryall_dlopen_module): Fix string length computation: do not allocate more than needed. 2007-08-30 Ralf Wildenhues * libltdl/loaders/preopen.c (vm_close): `module' is unused. Coverity report CID 158 via Jeff Squyres. * libltdl/ltdl.c (parse_dotla_file): If we run out of memory, do not close the .la file twice. Coverity report CID 440 via Jeff Squyres. * libltdl/ltdl.c (has_library_ext): Remove dead code. Coverity report CID 561 against Open MPI via Jeff Squyres. 2007-08-29 Ralf Wildenhues * libltdl/slist.c (slist_remove): When a matching item is found, break out of the loop to return the first match; also fixes possible NULL dereference. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [ linux ]: Add support for IBM XL 8.0 C/C++ (xlc*, xlC*) and IBM XL Fortran 10.1 (xlf*) on GNU/Linux, tested on ppc, pending a $shlibpath_var related fix. (_LT_SYS_HIDDEN_LIBDEPS): Double-quote $output_verbose_link_cmd properly during evaluation, obsoleting $no_glob_subst mangling. * NEWS: Update. 2007-08-18 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ] [ k*bsd*-gnu ] : Avoid spurious output in runpath test. 2007-08-16 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [ mingw, cygwin ] : Do not use -DDLL_EXPORT. Report by Ross Ridge . * Makefile.am (edit): Do not warn against manual editing for the generated files libtool, libtoolize, libltdl/m4/ltversion.m4, tests/defs, as they are still in a preferred source code form as required by GPL. Report by DJ Delorie. 2007-08-15 Dirk Mueller (tiny change) Ralf Wildenhues * libltdl/ltdl.c (parse_dotla_file): Avoid a strlen. When reading .la files, cope with files that are not newline-terminated. 2007-08-05 Tilman Koschnick (tiny change) * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LANG_CXX_CONFIG) [ linux ]: Treat pgcpp as Portland Group C++ compiler as well. 2007-08-05 Ralf Wildenhues * libltdl/ltdl.c (try_dlopen): Use `attempt' rather than `filename', as the former has the needed extension when called by lt_dlopenext. Report by Brian Barrett. 2007-07-27 Peter Rosin * Makefile.am: Pass STRIP through to the testsuite, so that tests that run configure will use the same strip program. 2007-07-24 Ralf Wildenhues * tests/mdemo-exec.test: Also try absolute library names. * tests/mdemo/main.c (test_dl, main): Try lt_dlopenext as well. * THANKS: Update. Report by Brian Barrett. 2007-07-23 Ralf Wildenhues * doc/fdl.texi: Update to GFDL 1.2. * doc/libtool.texi: Adjust. Put License in Appendix. * libltdl/config/ltmain.m4sh (func_mode_link): Remove each intermediate relinked object after use, to avoid quadratic space complexity when linking partially. Report by Isidor Zeuner . 2007-07-23 Eric Blake * libltdl/config/ltmain.m4sh: Whitespace cleanup. * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src) : Avoid compiler warning. 2007-07-22 Peter Rosin * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Add support for Microsoft Visual C. Also, older MinGW versions seem to need stdint.h to find intptr_t. 2007-07-22 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [linux]: Ignore lines in ld.so.conf starting with 'hwcap '. 2007-07-16 Charles Wilson * tests/cdemo-exec.test: use $EXEEXT where appropriate to correct mingw cross-compile issues. * demo-deplibs.test: Ditto. * demo-exec.test: Ditto. * demo-inst.test: Ditto. * demo-relink.test: Ditto. * depdemo-exec.test: Ditto. * depdemo-inst.test: Ditto. * depdemo-relink.test: Ditto. * f77demo-exec.test: Ditto. * fcdemo-exec.test: Ditto. * mdemo-exec.test: Ditto. * mdemo-inst.test: Ditto. * mdemo2-exec.test: Ditto. * pdemo-exec.test: Ditto. * pdemo-inst.test: Ditto. * tagdemo-exec.test: Ditto. 2007-07-14 Peter Rosin * AUTHORS, THANKS: Peter Ekberg got married, now Peter Rosin. 2007-07-13 Charles Wilson * libltdl/m4/libtool.m4 (func_dirname_and_basename) : New function. (func_dirname_and_basename) : New function. * libltdl/config/ltmain.m4sh (func_ltwrapper_scriptname): Call it. Also, take advantage of missed optimization using func_dirname's additional arguments. (func_mode_compile): Call it. (func_mode_install): Call it. (func_mode_link): Call it. 2007-07-12 Peter Rosin * libltdl/config/ltmain.m4sh (func_mode_link): Strip the cwrapper using $STRIP instead of relying on the tools to support -s, which MSVC doesn't. 2007-07-06 Peter O'Gorman * libltdl/config/libtool.m4sh: Don't pass -msg_* through to the linker. Reported by Bob Friesenhahn 2007-07-04 Bob Friesenhahn * libltdl/lt__alloc.c, libltdl/loaders/preopen.c, libltdl/loaders/dyld.c, libltdl/loaders/dlopen.c, libltdl/ltdl.c, libltdl/lt_error.c, libltdl/lt_dlloader.c, libltdl/lt__dirent.c: Include lt__private.h prior to any system headers. * libltdl/lt__alloc.c: Remove redundant inclusion of configuration header. 2007-07-04 Eric Blake * libltdl/ltdl.c (advise_dup): Delete function no longer used after memleak fix three days ago. 2007-07-03 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_ENABLE_LOCK) [ solaris ]: Cater to old Sparc Solaris 7 ld that does not understand `-64'. Report by Vincent Lefevre . 2007-07-01 Ralf Wildenhues * libltdl/m4/lt~obsolete.m4 (LTOBSOLETE_VERSION): New macro, to force-pull in this file by aclocal. * libltdl/m4/libtool.m4 (LT_INIT): Require LTOBSOLETE_VERSION. * tests/libtoolize.at (upgrading verbatim style aclocal.m4): Adjust. Report by H. J. Lu . * libltdl/ltdl.c (tryall_dlopen): Rename argument to have typed alias of `advise' instead of allocating a copy. Fixes memleak. 2007-06-30 Peter Breitenlohner * libltdl/m4/libtool.m4 (LT_SYS_DLOPEN_SELF): Correct a typo ("-dld" instead of "-ldld"). 2007-06-24 Gary V. Vaughan Add a test to simulate a failure visible on systems which need a library prefix like 'lib', such as BeOS. Fix a number of bugs exposed by this test in order for it to pass. Currently the prefix is hardcoded as 'lib', as I am not aware of systems that require a different prefix: * libltdl/loaders/preopen.c (lt_dlpreload_open): Move error condition out of test loop to be sure that each originator is tried, instead of erroring out if the first doesn't match. Support passing NULL as the originator to load all preloaded modules originating in the program itself. * libltdl/lt_dlloader.c (lt_dlloader_dump): New debug function. * libltdl/libltdl/lt_dlloader.h (lt_dlloader_dump): Declare it when LT_DEBUG_LOADERS is defined at compile time. * libltdl/ltdl.c (lt_dlinit): Dump loader list after successful initialisation. (tryall_dlopen): Add a new VTABLE parameter to force use of a specific loader in preference to trying every loader in turn. Adjust all callers. (try_dlopen): Always see whether a module was preloaded for module names with no directory component before searching the filesystem for a match. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Declare a new global_symbol_to_c_name_address_lib_prefix variable. (global_symbol_to_c_name_address_lib_prefix): The sed expressions to use when a lib prefix is enforced need to be slightly different to work with preloaded modules. * libltdl/config/ltmain.m4sh (func_generate_dlsyms): In order to name preloaded symbols correctly for the lookup algorithm to work when the loaded module file must be prefixed with lib. Use global_symbol_to_c_name_address_lib_prefix when need_lib_prefix is other than no. * tests/need_lib_prefix.at: New test to check for breakage on hosts where need_lib_prefix is unknown. * Makefile.am (TESTSUITE_AT): Add new test. * tests/TODO: Note missing tests that would have caught some of the latent bugs fixed by this patch. * HACKING: Document libltdl keyword. * NEWS: Updated. 2007-06-24 Gary V. Vaughan Reenable compilation of libltdl with C++: * libltdl/ltdl.c (tryall_dlopen): Rename the try variable to attempt, and cast explicitly. (advise_dup): Add explicit cast. 2007-06-22 Peter O'Gorman * libltdl/config/ltmain.m4sh (version-number) [irix]: Don't subtract 1 from major as it may be less than age. 2007-06-21 Noah Misch * tests/f77demo/configure.ac [--with-dist]: New option. Skip most Fortran checks when given. * tests/fcdemo/configure.ac [--with-dist]: Likewise. * Makefile.am (@DIST_MAKEFILE_LIST@): Pass --with-dist. Reported by Benoit Sigoure . 2007-06-19 Charles Wilson * AUTHORS: Add myself. 2007-06-18 Charles Wilson * libltdl/config/ltmain.m4sh: Add new magic variable for use with cwrapper. (func_ltwrapper_script_p): New function. (func_ltwrapper_executable_p): New function. (func_ltwrapper_scriptname): New function. (func_ltwrapper_p): Accomodate both wrapper scripts and wrapper executables. (func_mode_execute): Handle $file that is a wrapper script and $file that is a wrapper executable differently. (func_mode_install) [cygwin|mingw]: If $file is a wrapper executable, use func_ltwrapper_scriptname to determine wrapper script name. Afterwards, always use func_ltwrapper_script_p instead of func_ltwrapper_p. (func_emit_libtool_wrapper_script): Rename to... (func_emit_wrapper): ...this. All callers changed. (func_emit_libtool_cwrapperexe_source): Rename to... (func_emit_cwrapperexe_src): ...this. All callers changed. Embed new magic_exe variable into source. Private transient wrapper script now called foo_ltshwrapperTMP, not foo_ltshwrapper. (func_emit_cwrapperexe_src) [main, mingw]: Use _spawnv and return child's exit code manually rather than rely on broken execv. (func_mode_link) [cygwin|mingw]: Don't call dirname and basename directly; use func_dirname and func_basename when computing cwrapper names. Use cwrapper to generate wrapper script, and use pathname returned by func_ltwrapper_scriptname instead of $output. (func_mode_link) [NOT cygwin|mingw]: move wrapper script generation for non-win32 inside case statement, as default case. (func_mode_uninstall) [$name's extension != .lo|.la]: 'clean' mode must handle $file differently if it is a libtool wrapper script, or if it is a libtool wrapper executable. * tests/destdir.at [Simple DESTDIR install]: $EXEEXT fixups. * tests/destdir.at [DESTDIR with in-package deplibs]: Ditto. 2007-06-17 Noah Misch * AUTHORS: Add myself. 2007-06-17 Peter O'Gorman * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN): add quotes to the test -n. 2007-06-17 Charles Wilson * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN): ensure stderr is redirected even when getconf does not exist. 2007-06-09 Charles Wilson * libltdl/config/ltmain.m4sh (func_emit_libtool_wrapper_script): Take an argument to specify value assigned to WRAPPER_SCRIPT_BELONGS_IN_OBJDIR in the emitted script. (func_emit_libtool_cwrapperexe_source) [file scope]: define permission flags S_IXGRP and S_IXOTH if not already defined. (func_emit_libtool_cwrapperexe_source) [LTWRAPPER_DEBUGPRINTF]: Use C89-compatible syntax to mimic variadic macros. Adjust all callers. (func_emit_libtool_cwrapperexe_source) [check_executable]: avoid embedded #ifdefs; use S_IXGRP and S_IXOTH unconditionally. (func_emit_libtool_cwrapperexe_source) [make_executable]: ditto. (func_emit_libtool_cwrapperexe_source): don't rewrite WRAPPER_SCRIPT_BELONGS_IN_OBJDIR posthoc; instead pass correct argument when calling func_emit_libtool_wrapper_script. (func_mode_link): pass correct argument when calling func_emit_libtool_wrapper_script. 2007-06-07 Charles Wilson * libltdl/config/ltmain.m4sh (func_emit_libtool_cwrapperexe_source): ensure that generated source follows GCS as nearly as possible. 2007-06-07 Charles Wilson * libltdl/config/ltmain.m4sh (func_emit_libtool_wrapper_script): add code block to handle cases when wrapper script is in $objdir. (func_emit_libtool_cwrapperexe_source): replace DEBUG() macro with namespace-safe LTWRAPPER_DEBUGPRINTF(). Call func_emit_libtool_wrapper_script() with appropriate filters to embed script text in C char* static variable. (f_e_l_c_s: main): add new option --lt-dump-script, parse argv[] for it, and take appropriate action. Call chase_symlinks() on argv[0], in case this.exe was launched via one. Use chased value to determine full absolute pathname of wrapper script, in $objdir. Unconditionally write script out to this pathname and set permission bits. Remove extraneous ';' from debugging loop. (f_e_l_c_s: main) [mingw]: DOS-ize $SHELL before populating newargv[0]; if $TARGETSHELL environment variable is set, use it instead of $SHELL and do not DOS-ize. Ensure newargv[1] (wrapper script absolute path) uses only '/', not '\'. Make sure to call execv() with DOS-ized $SHELL (or un-DOS-ized $TARGETSHELL, if set) (f_e_l_c_s: make_executable): new function (f_e_l_c_s: chase_symlinks): new function (no-op if !S_ISLNK) 2007-06-03 Peter O'Gorman * libltdl/m4/libtool.m4 (old_archive_cmds): Remove old_deplibs. * tests/archive-in-archive.at: Check for archives as members of static archives. Currently XFAILS, above only eliminates one of the two static archives. * Makefile.am: Add test. Reported by Daniel Macks 2007-06-01 Steve Ellcey * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN): Try using getconf to set lt_cv_sys_max_cmd_len. 2007-05-28 Peter O'Gorman * libltdl/config/ltmain.m4sh (func_mode_link), libltdl/m4/libtool.m4 [darwin]: Only use ${wl} in verstring with xlc. 2007-05-22 Gary V. Vaughan * tests/lt_dladvise.at: Use the lib prefix throughout for better portability - testing whether modules build and load without that prefix is not the domain of this test. Also, only run the test of the global hint with the depend module on hosts that can compile a module without passing -no-undefined in link mode. 2007-05-10 Noah Misch * tests/duplicate_deps.at: Make the XFAIL unconditional, but skip the test if the test link would succeed even without --preserve-dup-deps. * libltdl/config/general.m4sh (func_echo): Use $* instead of ${1+"$@"}. 2007-05-09 Eric Blake * libltdl/libltdl/lt_error.h (LT_ERROR_LEN_MAX): Adjust, to fix buffer overflow in previous patch. 2007-05-09 Gary V. Vaughan * tests/lt_dladvise.at: Commit missing file from below. 2007-05-08 Gary V. Vaughan Without this patch, lt_dlopen always opens modules with symbol visibility set according to the underlying implementation. Here, we add lt_dlopenadvise() to allow callers to request, among other things, local or global symbol visibility from the underlying dlloader: * libltdl/ltdl.c (LT_DLRESIDENT_FLAG): Removed. (LT_DLIS_RESIDENT): Use public is_resident info field. (LT_DLIS_SYMLOCAL, LT_DLIS_SYMGLOBAL): New macros to test for module symbol visibility status. (tryall_dlopen): If vtable->module_open() was able to act on either is_symlocal or is_symglobal hints, store that in the handle flags. (lt_dlopenadvise): New function that works like lt_dlopen(), but accepts an advise type to determine whether to ask dlloaders to change default symbol visibility. (lt_dlopen, lt_dlopenext): Just call lt_dlopenadvise() with the correct parameters. (lt_dladvise_init, lt_dladvise_destroy): New functions to initialize and destroy an advise type hint. (lt_dladvise_ext, lt_dladvise_resident, lt_dladvise_local) (lt_dladvise_global): Set hints on an advise type. (openadvise): Factored out of lt_dlopenadvise. (has_library_ext): Factored out of lt_dlopenadvise. * libltdl/ltdl.h: Declare all of the above. (lt_dlinfo): New fields for advise hints. * libltdl/libltdl/lt_dlloader.h (lt_module_open): Add a new advise parameter. Adjust all callers. (lt_dladvise): New opaque type for advise hints. * libltdl/libltdl/lt__private.h (lt__advise): Declare contents of opaque lt_dladvise type. * libltdl/libltdl/lt_error.h (CONFLICTING_FLAGS): New error for attempts to have local and global symbol visibility at the same time. * libltdl/loaders/dld_link.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: Adjust. * libltdl/loaders/dlopen.c (RTLD_LOCAL, RTLD_GLOBAL): Try to define these symbols if the system has equivalents. (vmopen): If unable to act on a caller request to set symbol visibility, then unset the relevant hints in the advise type. * tests/lt_dladvise.at: New tests for the above. * doc/libtool.texi (Libltdl Interface): Updated. * NEWS: Updated. 2007-05-03 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): When adding new_inherited_linker_flags to compiler_flags, remember to translate .ltframework back. Fixes bug introduced 2007-04-23. * THANKS: Update. * tests/inherited_flags.at: Amend test. Report by Christoph Egger. 2007-05-03 Reuben Thomas (tiny change) * doc/libtool.texi (Libltdl interface): Fix typo. 2007-05-01 Ralf Wildenhues * Makefile.am (clean-ltmain-sh): Removed. (libtool, $(srcdir)/$(m4dir)/ltversion.m4) ($(srcdir)/$(auxdir)/ltmain.sh): Updated to not depend on any phony rules. Test `$?' for prerequisites that should always cause us to update the target. Fixes rebuilding rules, at the cost of sometimes updating too much with non-GNU make. 2007-04-27 Noah Misch * tests/ctor.at: New file. * Makefile.am (TESTSUITE_AT): Add tests/ctor.at. 2007-04-27 Charles Wilson * libltdl/libltdl/lt__glibc.h: Use !HAVE_WORKING_ARGZ instead of SYSTEM_ARGZ_IS_BROKEN. * libltdl/m4/argz.m4 (gl_FUNC_ARGZ): Ditto. Also, minor stylistic improvements. Report by Bruno Haible . 2007-04-25 Charles Wilson Ralf Wildenhues * libltdl/argz_.h: ensure error_t definition is obtained in same mechanism system argz.h would have. * libltdl/libltdl/lt__glibc.h: also detect if SYSTEM_ARGZ_IS_BROKEN when determining whether to re#def argz* functions. * libltdl/m4/argz.m4 (gl_FUNC_ARGZ): add new test to check if $host's argz facilities are known bad. Err on the side of caution if cross-compiling. 2007-04-25 Ralf Wildenhues * README, README.alpha: Document how to test an arbitrary installed libtool script. 2007-04-24 Ralf Wildenhues * tests/cmdline_wrap.at: Avoid `AT_CAPTURE_FILE' if it not defined (Autoconf < 2.60). * tests/shlibpath.at: Add `libtool' keyword. * tests/indirect_deps.at: New file, with tests to ensure `link_all_deplibs=no' does not break functionality. * Makefile.am: Adjust. 2007-04-23 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Fix accumulation of `inherited_linker_flags' entries from multiple deplibs, by adding $new_inherited_linker_flags only once, only in link pass. * tests/inherited_flags: Amend test to expose this. * NEWS: Adjust: kill one regression, but add note about the feature new in 1.9b. Report by Jeff Squyres and others. 2007-04-23 Charles Wilson * libltdl/config/ltmain.m4sh (func_mode_link): move wrapper script generation from here... (func_emit_libtool_wrapper_script): to this new function, and write to stdout (func_mode_link): move cwrapper source code generation from here... (func_emit_libtool_cwrapperexe_source): to this new function, and write to stdout (func_mode_link): call the two new functions and redirect output to appropriate file. 2007-04-10 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link) <-no-install> [ darwin ]: Treat like `-no-fast-install', as we cannot hardcode. Report by Simon Josefsson. 2007-04-03 Ralf Wildenhues * doc/libtool.texi (Link mode) <-no-install>: Mention that this still generates a wrapper script on systems without hardcoding. * tests/stresstest.at: Test `-no-install'. * THANKS: Update. Report by Simon Josefsson. 2007-03-30 Matthieu Herrb * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ openbsd ]: Add an explicit check for shared libraries support. 2007-03-29 Ralf Wildenhues * Makefile.am ($(srcdir)/$(m4dir)/ltversion.m4): Fix quoting error. 2007-03-28 Gary V. Vaughan * HACKING (Abstraction layers in libltdl): Rewritten somewhat for (hopefully) better clarity. 2007-03-26 Gary V. Vaughan The stamp-vcl file rules caused non-gnu make programs to rerun parts of the configuration process on each invocation. Instead of relying on a stamp file, we now compare version numbers of generated files with the ChangeLog timestamp manually in the affected make rules to decide whether regenerating is necessary: * Makefile.am (EXTRA_DIST): Remove stamp-vcl. (clean-ltmain-sh): Also remove users' obsolescent stamp-vcl. (rebuild): Keep some common code here for... (libtool, libltdl/m4/ltversion.m4, libltdl/config/ltmain.sh): Rewritten to work without reference to intermediate stamp-vcl file. * configure.ac (CONFIG_STATUS_DEPENDENCIES): Change from stamp-vcl to ChangeLog. * NEWS: Removed entry saying this fix is needed. 2007-03-25 Gary V. Vaughan * HACKING (LGPL with Libtool exception clause): Typo. Reported by Tim Van Holder * HACKING (Licensing Rules): Explain the various license texts used for files distributed with Libtool, and update license text to match. * Makefile.am, Makefile.maint README, README.alpha, THANKS, TODO, bootstrap, clcommit.m4sh, configure.ac, libltdl/Makefile.inc, libltdl/README, libltdl/argz.c, libltdl/argz_.h, libltdl/config/general.m4sh, libltdl/config/getopt.m4sh, libltdl/config/ltmain.m4sh, libltdl/config/mailnotify.m4sh, libltdl/config/mkstamp, libltdl/configure.ac, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c, libltdl/lt__alloc.c, libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c, libltdl/lt_error.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/m4/argz.m4, libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4, libltdl/m4/ltoptions.m4, libltdl/m4/ltsugar.m4, libltdl/m4/ltversion.in, libltdl/m4/ltversion.m4, libltdl/m4/lt~obsolete.m4, libltdl/slist.c, libtoolize.m4sh, tests/am-subdir.at, tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/cdemo-undef.test, tests/cdemo/Makefile.am, tests/cdemo/configure.ac, tests/cdemo/foo.c, tests/cdemo/foo.h, tests/cdemo/main.c, tests/cmdline_wrap.at, tests/convenience.at, tests/defs.m4sh, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/demo/Makefile.am, tests/demo/configure.ac, tests/demo/dlmain.c, tests/demo/foo.c, tests/demo/foo.h, tests/demo/hell1.c, tests/demo/hell2.c, tests/demo/hello.c, tests/demo/main.c, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/depdemo/Makefile.am, tests/depdemo/configure.ac, tests/depdemo/l1/Makefile.am, tests/depdemo/l1/l1.c, tests/depdemo/l1/l1.h, tests/depdemo/l2/Makefile.am, tests/depdemo/l2/l2.c, tests/depdemo/l2/l2.h, tests/depdemo/l3/Makefile.am, tests/depdemo/l3/l3.c, tests/depdemo/l3/l3.h, tests/depdemo/l4/Makefile.am, tests/depdemo/l4/l4.c, tests/depdemo/l4/l4.h, tests/depdemo/main.c, tests/depdemo/sysdep.h, tests/deplibs-ident.at, tests/destdir.at, tests/duplicate_conv.at, tests/duplicate_deps.at, tests/duplicate_members.at, tests/early-libtool.at, tests/export.at, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/f77demo/Makefile.am, tests/f77demo/configure.ac, tests/f77demo/cprogram.c, tests/f77demo/foo.h, tests/f77demo/fooc.c, tests/fail.at, tests/fcdemo-conf.test, tests/fcdemo-exec.test, tests/fcdemo-make.test, tests/fcdemo-shared.test, tests/fcdemo-static.test, tests/fcdemo/Makefile.am, tests/fcdemo/configure.ac, tests/fcdemo/cprogram.c, tests/fcdemo/foo.h, tests/fcdemo/fooc.c, tests/inherited_flags.at, tests/libtoolize.at, tests/link-2.test, tests/link-order.at, tests/link-order2.at, tests/link.test, tests/lt_dlexit.at, tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo/Makefile.am, tests/mdemo/configure.ac, tests/mdemo/foo.h, tests/mdemo/foo1.c, tests/mdemo/foo2.c, tests/mdemo/main.c, tests/mdemo/mlib.c, tests/mdemo/sub.c, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/mdemo2/Makefile.am, tests/mdemo2/configure.ac, tests/mdemo2/main.c, tests/nomode.test, tests/nonrecursive.at, tests/objectlist.test, tests/old-m4-iface.at, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/pdemo/Makefile.am, tests/pdemo/configure.ac, tests/pdemo/foo.h, tests/pdemo/longer_file_name_dlmain.c, tests/pdemo/longer_file_name_foo.c, tests/pdemo/longer_file_name_foo2.c, tests/pdemo/longer_file_name_hell1.c, tests/pdemo/longer_file_name_hell2.c, tests/pdemo/longer_file_name_hello.c, tests/pdemo/longer_file_name_main.c, tests/quote.test, tests/recursive.at, tests/search-path.at, tests/sh.test, tests/shlibpath.at, tests/standalone.at, tests/static.at, tests/stresstest.at, tests/subproject.at, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test, tests/tagdemo-undef.test, tests/tagdemo/Makefile.am, tests/tagdemo/baz.cpp, tests/tagdemo/baz.h, tests/tagdemo/configure.ac, tests/tagdemo/conv.cpp, tests/tagdemo/conv.h, tests/tagdemo/foo.cpp, tests/tagdemo/foo.h, tests/tagdemo/main.cpp, tests/tagtrace.test, tests/template.at, tests/testsuite.at: Apply correct license text according to the new rules set out in HACKING. 2007-03-19 Gary V. Vaughan * libtoolize.m4sh: Handle argz.m4 specially like ltdl.m4, so that it isn't copied unless libltdl is being used. Copy other macro files according to their tagged serial numbers. * tests/libtoolize.at: Adjust. 2007-03-18 Ralf Wildenhues * tests/mdemo/Makefile.am (libmlib_la_LDFLAGS): Add `-export-symbols-regex ".*"' because the convenience libltdl uses export markers and thus turns off autoexport on w32. Fixes test failures for Cygwin and MinGW. Bug analysis by Charles Wilson. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ interix ]: When matching for interix, accept version range [3-9] instead of 3. * NEWS: Update. Report by Martin Koeppe . * libltdl/m4/libtool.m4 (LT_PROG_GCJ): Avoid M4 expansion error that caused `dnl' to be merged to the previous word. * THANKS: Update. Report by Steve Ellcey. 2007-03-09 Gary V. Vaughan * libtoolize.m4sh: Replace literal tab chars in help comment with spaces to align columns in --help output. 2007-03-06 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Also apply the symbol filtering for w32 and the include_expsyms feature in the case of exceeded command line length. Fixes test failure on MinGW. * tests/stresstest.at: For const data object imported from shared library, define appropriate macros to expand __declspec(dllimport) on w32. Use two different main objects and pick the right one for the link flags we are about to test. Fixes test failure on MinGW. * tests/export.at: For const data object imported from shared library, define appropriate macros to expand __declspec(dllimport) on w32. Fixes test failure on MinGW. 2007-03-05 Gary V. Vaughan * libtoolize.m4sh (func_check_macros): Display m4 quotes correctly in AC_CONFIG_MACRO_DIR diagnostics. * libltdl/config/general.m4sh (M4SH_VERBATIM): New macro to simplify m4sh quote quoting in blocks of raw shell code. * clcommit.m4sh, libtoolize.m4sh, libltdl/config/getopt.m4sh, libltdl/config/ltmain.m4sh, libltdl/config/mailnotify.m4sh, tests/defs.m4sh: Use it. * HACKING (Editing `.m4sh' Files): Mention M4SH_VERBATIM Macro. 2007-02-27 Ralf Wildenhues * tests/lt_dlexit.at: Allow test to pass on static-only systems and with disable-shared. * NEWS: Rewrite all news since 1.9f and put in categories, update. * libltdl/Makefile.inc: Fix the file description, so that it matches recursive and nonrecursive libltdl setup. * Makefile.am ($(srcdir)/libltdl/Makefile.am): Do not depend upon the exact text of the copyright header, just copy until the marker line. Remove the marker lines in the output, and adjust the description for subpackage setup. 2007-02-26 Gary V. Vaughan * Makefile.am ($(srcdir)/libltdl/Makefile.am): Fix regexp typo. * clcommit.m4sh: Look in the right directory for helper scripts. 2007-02-25 Gary V. Vaughan * Makefile.am ($(srcdir)/libltdl/Makefile.am): Fixup regex to match Copyright notice change below. * HACKING, Makefile.am, Makefile.maint, bootstrap, libltdl/Makefile.am, libltdl/Makefile.inc, libltdl/m4/libtool.m4, ltmain.c, tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/depdemo/l1/Makefile.am, tests/depdemo/l2/Makefile.am, tests/depdemo/l3/Makefile.am, tests/depdemo/l4/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/libtoolize.at, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am: Update Copyright notice text to include URL for canonical GPL document. 2007-02-25 Ralf Wildenhues * tests/static.at: Forgot to fix PATH for the first func_test_exec invocation. So factor out into new functions func_fix_path and func_restore_path and use those. * README: Document the need for GNU make to build Libtool. Point the user to the doc/notes.txt file. In the examples, use `gmake' throughout to make it more obvious. Explain simpler way to run both testsuites and either one. Referring to individual tests needs the `tests/' prefix. * README.alpha: Likewise. * doc/notes.texi: Likewise, document need for GNU make. Comment out the FreeBSD make issue for now. * tests/static.at: Larger rewrite to make work on w32: Use three different prefixes instead of three libdirs, so the moving of the DLLs works as expected. Adjust all code. Since now $libdirI/../bin is distinct from the directory of the installed program, take care than on w32 PATH contains the needed bindirs, in appropriate order. Report by Charles Wilson. * Makefile.am (INSTALLCHECK_ENVIRONMENT): Point LTDLINCL and LIBLTDL to installed libltdl, so that it is being used by the lt_dlexit test. 2007-02-24 Ralf Wildenhues * doc/libtool.texi (Install mode, libtool script contents): Describe current and system-specific DESTDIR limitations. * tests/destdir.at: XFAIL if `fast_install' is no. * doc/libtool.texi (LT_INIT): Fix typo. * doc/libtool.texi (Libtool test suite): Mention the new testsuite. Point to README rather than INSTALL for testing instructions. (Test descriptions): Fix more file names. Also mention cdemo-undef.test, mdemo2-conf.test, mdemo2-exec.test, mdemo2-make.test, objectlist.test, pdemo-conf.test, pdemo-exec.test, pdemo-inst.test, pdemo-make.test, tagdemo-conf.test, tagdemo-exec.test, tagdemo-make.test, tagdemo-static.test, tagdemo-shared.test, tagdemo-undef.test, f77demo-conf.test, f77demo-exec.test, f77demo-make.test, f77demo-static.test, f77demo-shared.test, fcdemo-conf.test, fcdemo-exec.test, fcdemo-make.test, fcdemo-static.test, fcdemo-shared.test. Describe what they do. (When tests fail, Troubleshooting): Mention how to pass options to the new test suite. * tests/tagdemo/README: Fix description. * bootstrap: Also set GREP, FGREP, EGREP, LN_S, when creating a preliminary ltmain.sh script. * doc/libtool.texi (Test descriptions): Track the grand test suite renaming from 2003-10-14 in the tests documentation. assign.test is merged into sh.test. Fix description of sh.test. * tests/sh.test: Likewise. * doc/libtool.texi (LT_INIT): Fix wording of intro a bit. : Also describe these default LT_INIT options. : Mention deprecated macro names, including the respective LT_INIT replacement. : Document, un-deprecate. Suggest the respective LT_INIT replacement. : Document deprecated aliases. (Distributing libltdl) : Document deprecated aliases. * libltdl/m4/ltoptions.m4 (AM_ENABLE_SHARED, AM_DISABLE_SHARED) (AM_ENABLE_STATIC, AM_DISABLE_STATIC): Make these AU_ALIASes of the respective AC_* macros, so we do not recommend LT_INIT(*) in this case. (AC_ENABLE_SHARED, AC_DISABLE_SHARED, AC_ENABLE_STATIC) (AC_DISABLE_STATIC): Un-deprecate these. Remove now-superfluous aclocal-1.4 backwards compatibility comments. * tests/link-order2.at: Rewrite completely. Do not use `sin' from the math library, there are too many problems with this. Instead, use a self-written library, install it without the Libtool library file, to emulate a native library in a system directory, and adjust $shlibpat_var. Try overriding its symbol. Further, also try an installed `wrong' binary. Avoid failing test bits on AIX without runtimelinking and on Darwin in some cases, SKIP at the end in this case. Analysis by Peter O'Gorman. * doc/notes.texi: Mention MACOSX_DEPLOYMENT_TARGET issue. * tests/template.at: Only skip those tests failing on Darwin if `-flat_namespace' is used by libtool. In that case, SKIP at the end. Analysis by Peter O'Gorman. 2007-02-23 Ralf Wildenhues Fix -export-symbols and -export-symbols-regex for links that exceed the command line length and use convenience archives. * libltdl/config/ltmain.m4sh (func_mode_link): Avoid grepping a nonexistent file if using reloadable objects. Do not create a linker script nor a linker input file if no objects are passed. Apply export_symbols_regex in case the command line length is exceeded. Report by Bob Friesenhahn. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) : New tag variable. Default to `no'. (_LT_LINKER_SHLIBS) [ linux ]: Set it to yes for Sun C 5.9. (_LT_LANG_CXX_CONFIG): Also default it to `no'. [ linux ]: Set it to `yes' for Sun C++ 5.9. * libltdl/config/ltmain.m4sh (func_mode_link): If we link no objects but only convenience archives into a library, force expansion if `compiler_needs_object' is yes. For creating a linker input filelist due to long cmdline, extract the first object if `compiler_needs_object' is yes. * doc/libtool.texi (libtool script contents): Document it. Fixes test failures of Sun compilers on GNU/Linux. Report by Terry D. Dontje. * libltdl/config/ltmain.m4sh (func_mode_link): Avoid setting `$libobjs' to a single space; set it to empty in that case. 2007-02-23 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_generate_dlsyms) [ osf5 ]: On Tru64 5.1, const relocations do not work well. Omit the const here. Fixes failure of demo-make after demo-shared with link editor error `seg_info_ptr: Couldnt find a seg type 2'. * Makefile.am (doc_libtool_TEXINFOS): Renamed from... (libtool_TEXINFOS): ...this, to fix dependencies. Omit from EXTRA_DIST. (check-local): Also depend upon $(bin_SCRIPTS). 2007-02-23 Ralf Menzel (tiny change) * libltdl/config/general.m4sh (sed_double_backslash): Fix hacky sed script to avoid limitations but retain portability to Solaris /bin/sed. Remove old obsolete cruft. 2007-02-22 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Fix the check for convenience archives when warning about linking against static libraries: test against $deplib rather than empty $lib. 2007-02-19 Ralf Wildenhues * libltdl/m4/ltdl.m4 (LT_WITH_LTDL): Fix detection of new enough libltdl by actually checking for the declaration of lt_dlinterface_register in ltdl.h with AC_CHECK_DECL. Remove redundant configure output line. * tests/template.at: Reformat, add M4 quoting. Use $LDFLAGS consistently for link mode. 2007-02-18 Ralf Wildenhues * tests/static.at: Use the right names for the broken libs. 2007-02-17 Ralf Wildenhues * tests/deplibs-ident.at [aix, hppa*-*-hpux*, interix, openbsd]: Do not XFAIL, on these systems we happen to pass. * tests/duplicate_deps.at [aix]: Likewise. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux | k*bsd*-gnu ]: Fix eval quoting in the DT_RUNPATH test. * HACKING: Update. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ linux ] : For Sun C/C++ 5.9, do not add /dev/null as dummy object, it fails with GNU ld version 2.16.91.0.7-amd-sles9. Report by Terry D. Dontje. * THANKS: Update. 2007-02-14 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ osf4, osf5 ] : Use `${wl}-input' not `-input', for cc. Could use `-input_to_ld'. (_LT_LANG_CXX_CONFIG) [ osf4, osf5 ] : Use `${wl}' instead of `-Wl,', for consistency. 2007-02-12 Ralf Wildenhues Fix spurious testsuite failures on AIX due on NFS mounts due to shared library images that cannot be removed without `slibclean' which needs superuser privileges. * tests/testsuite.at (PREPARE_TESTS): Define $mkdir_p globally. (LT_AT_MVDIR): New macro to emulate `mv dir dest'. * tests/destdir.at: Use LT_AT_MVDIR. * tests/shlibpath.at: Likewise. * tests/static.at: Likewise. 2007-02-12 Ralf Wildenhues * tests/export.at: Exporting is not fully functional with -retain-symbols-file. Do not test for failure to link `broken' in this case. At the end of the test, SKIP if we are not fully functional. * tests/lt_dlexit.at: Add casts and `extern "C"' to let the test pass with a C++ compiler. * libltdl/config/ltmain.m4sh: Remove duplicate marker for generated shell functions. * tests/testsuite.at (LT_AT_NOINST_EXEC_CHECK): New macro, like LT_AT_EXEC_CHECK but uses `$LIBTOOL --mode=execute' and allows to pass `-dlopen MODULE' arguments. * tests/lt_dlexit.at: Use it. Also, do not test `-dlpreopen', that currently needs library names to begin with `lib'. 2007-02-11 Ralf Wildenhues * tests/export.at: New test: expose -export-symbols failure when the input consists solely of convenience archives, and failure to not export all symbols when the command line length is exceeded. * Makefile.am: Adjust. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): New substituted function `func_lo2o', saving two fork&exec with XSI shells. * libltdl/config/ltmain.m4sh (func_mode_compile) (func_mode_install, func_mode_link): Use it for rewrites of single files. * libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): New function func_opt_split, for XSI and portable shell. * libltdl/config/ltmain.m4sh: Move the insertion point for the configure-generated shell functions to before the first option parsing loop. Rewrite the separation of the long options to use func_opt_split. 2007-02-11 Ralf Wildenhues Eliminate roughly a third of the script execution time overhead for all modes except for link/relink and uninstall/clean. * libltdl/m4/libtool.m4 (_LT_CONFIG): Remove unused `TEST SUITE MARKER', obsolete since 2005-04-17. * libltdl/config/ltmain.m4sh: Likewise, several instances. (Main): Tear apart, moving individual bits up as early in the script as possible, to help the shell to avoid parsing the rest. 2007-02-11 Ralf Wildenhues * doc/libtool.texi: Update copyright years. 2007-02-11 Ralf Wildenhues * libltdl/config/general.m4sh (sed_double_backslash): Replace POSIX sed script with a hack that treats up to 10 backslashes in the input correctly and is portable to Solaris /bin/sed. 2007-02-08 Ralf Wildenhues * tests/testsuite.at (LT_AT_TAG): Skip also if the compiler variable is set to `no', not only if it is empty. 2007-02-06 Ralf Wildenhues * tests/lt_dlexit.at: Do not compile main object with libtool. * tests/cmdline_wrap.at: Pass $abs_top_srcdir and $abs_builddir to inner testsuite. * Makefile.am (TESTSUITE_AT): Move destdir.at after search-path.at so the banners fit better. * tests/convenience.at: Use $CPPFLAGS for compilation. * tests/deplibs-ident.at: Likewise. * tests/duplicate_members.at: Likewise. * tests/inherited_flags.at: Likewise. * tests/link-order.at: Likewise. * tests/stresstest.at: Likewise. * tests/early-libtool.at: Likewise. Do not quote $CC. * libltdl/ltdl.c (lt_dlexit): Add casts to fix compilation with C++ compiler again. * tests/destdir.at: Add `libtool' keyword to tests. 2007-02-05 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_BOILERPLATE) (_LT_LINKER_BOILERPLATE, _LT_SYS_MODULE_PATH_AIX) (_LT_COMPILER_C_O): Require _LT_DECL_SED. * THANKS: Update. Report by Maciej W. Rozycki. 2007-01-29 Ralf Wildenhues * tests/lt_dlexit.at: Use $abs_top_srcdir, not $top_srcdir, in the new testsuite. 2007-01-29 Samuel Thibault * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ gnu ] : Behave like Linux, so that --version-script is used for Hurd as well. 2007-01-28 Charles Wilson * NEWS: Update for Cygwin changes. 2007-01-28 Brian W. Barrett * libltdl/config/ltmain.m4sh [darwin]: Use otool64 if otool fails. 2007-01-28 Dave Brolley , Ralf Wildenhues * libltdl/ltdl.c (lt_dlexit): Make sure that 'cur' is not NULL before checking that it is still in the list. * tests/lt_dlexit.at: New test. * Makefile.am (TESTSUITE_AT): Adjust. (check-local): Also depend on libltdl/libltdlc.la. (check-recursive): Removed, unnecessary use of Automake internals. 2007-01-28 Mike Frysinger * libltdl/config/ltmain.m4sh (func_mode_link): Pass through `-p' and `-fprofile-*' for GCC. 2007-01-28 Ralf Wildenhues * libltdl/libltdl/lt_system.h: Adjust copyright years. 2007-01-28 Charles Wilson * libltdl/libltdl/lt__private.h (LT_GLOBAL_DATA) [__CYGWIN__]: Also define on Cygwin. * libltdl/libltdl/lt_system.h (LT_SCOPE) [__CYGWIN__]: Likewise. 2007-01-28 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ cygwin, mingw ] : Avoid shell expansion of '/s/.*' through double expansion, in case there is a 'S:' drive. Report by Charles Wilson. 2007-01-28 Ralf Wildenhues Introduce a new test keyword `recursive' for tests that create a modified `libtool' script and run the suite on this script. All tests with the keyword `libtool' are (by definition) suitable to be used here. * tests/cmdline_wrap.at: New test. * Makefile.am: Adjust. * tests/testsuite.at (LT_ESCAPE): New macro: clone of Autoconf AS_ESCAPE that does not escape `$'. (LT_AT_CHECK): New macro: print a command-to-be-run while expanding parameters but nothing else. * tests/stresstest.at: Use LT_AT_CHECK. Create some files to expose erroneous globbing errors with `-export-symbols-regex', similar to those reported by Charles Wilson. Use `eval' and adjusted quoting so the expansion doesn't already happen in the testsuite commands. * HACKING: Update. 2007-01-27 Ralf Wildenhues Assume C89 for included headers, and throughout the testsuite. * NEWS: Update. * libltdl/argz.c: Do not include strings.h nor memory.h, include string.h unconditionally. Patch by Simon Josefsson . * libltdl/libltdl/lt__private.h: Likewise. * libltdl/m4/ltdl.m4 (LTDL_INIT): Do not check for string.h, strings.h, memory.h. * tests/cdemo/configure.ac: Assume presence of math.h. * tests/cdemo/foo.c: Likewise. * tests/demo/configure.ac: Likewise for math.h, string.h. Assume 'const'. Drop obsolete AC_EXEEXT. * tests/demo/dlmain.c: Likewise. * tests/demo/foo.c: Likewise. * tests/depdemo/configure.ac: Likewise. * tests/depdemo/l4/l4.c: Likewise. * tests/f77demo/configure.ac: Likewise. Also drop obsolete AC_OBJEXT. * tests/fcdemo/configure.ac: Likewise. * tests/mdemo/configure.ac: Likewise. * tests/mdemo/foo1.c: Likewise. * tests/mdemo/foo2.c: Likewise. * tests/mdemo2/configure.ac: Likewise. * tests/pdemo/configure.ac: Likewise. * tests/pdemo/longer_file_name_dlmain.c: * tests/pdemo/longer_file_name_foo.c: Likewise. * tests/pdemo/longer_file_name_foo2.c: Likewise. * tests/tagdemo/configure.ac: Likewise. * tests/tagdemo/foo.cpp: Likewise. 2007-01-24 Reuben Thomas (tiny change) * doc/libtool.texi (Inter-library dependencies): Fix typo. 2007-01-21 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw]: Use `lib -OUT' rather than `lib /OUT' to avoid MSYS path translation mangling. Report by Christopher Hulbert. * THANKS: Update. * libltdl/config/ltmain.m4sh (func_mode_compile): Accept suffixes matching `[fF][09].', for Fortran. * tests/suffix.test: Also test F90, F95, f03, F03. * Makefile.am (EXTRA_DIST): Add ChangeLog.2006. * ChangeLog.2006: New, rotated, from... * ChangeLog: ...here. 2007-01-21 Ralf Wildenhues * doc/libtool.texi: Typo fixes. * TODO: Likewise. 2006-12-14 Ralf Wildenhues * tests/link-order2.at: Define our override `sin' function with C binding even if $CC is a C++ compiler. Skip the test with g++ as its command line driver reorders `-lm'. * tests/search-path.at: Declare `inflate' with C binding. * tests/stresstest.at: Avoid unused variable warnings. 2006-11-07 Ralf Wildenhues * tests/link-order2.at: Simplify logic to be a bit more self documenting. Suggested by Gary V. Vaughan. 2006-10-28 Ralf Wildenhues * tests/link-order2.at: Add missing $bindir setting. Prevent compiler optimization of sqrt call. Fix logic inversion and add some comments about this stunt. Add a test with reversed library link order that should fail if the system has a libm. Report by Patrick Welche. 2006-10-26 Ralf Wildenhues Assume presence of a config header in all files, to provoke test failures on all systems. * libltdl/lt__alloc.c: Likewise. * libltdl/libltdl/lt__dirent.h: Likewise. * libltdl/libltdl/lt__glibc.h: Likewise. * libltdl/libltdl/lt__private.h: Likewise. * libltdl/libltdl/lt__strl.h: Likewise. * tests/recursive.at: Use AC_CONFIG_HEADERS. * tests/nonrecursive.at: Likewise. Invoke autoheader. * HACKING: Adjust. Report by Patrick Welche. 2006-10-24 Paul Eggert , Ralf Wildenhues * doc/libtool.texi (Distributing libltdl): In recursive and nonrecursive mode, a config header is now required. * libltdl/argz.c: Remove check for HAVE_CONFIG_H, to conform to gnulib's policy of including config.h unconditionally. 2006-10-24 Ralf Wildenhues * tests/link-order2.at: New test to show one case where ordering of depdepls on the command line matters. * Makefile.am: Adjust. * tests/tagtrace.test: SKIP if `autoconf --trace' exits 63 or 1, for various possible (valid) error cases. Also output stderr, to help with analysis. * NEWS: Account for recent multilib fix. * tests/search-path.at: New test, to provide at least a weak test. * Makefile.am: Update. * libtoolize.m4sh (func_fixup_Makefile): Fix missing substitution for nonrecursive mode. Remove otherwise-empty continuation lines in the output file. Report by Bob Friesenhahn. 2006-10-22 Peter O'Gorman * libltdl/config/ltmain.m4sh: Add -F* to flags that are passed to the linker. Reported by SIGOURE Benoit 2006-10-19 Peter O'Gorman * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Improve multilib support. Reported by Kate Minola and others. 2006-10-13 Eric Blake * libltdl/ltdl.c (load_deplibs): Avoid memory leak on failure. (unload_deplibs): Avoid memory leak on cleanup. 2006-09-20 Ralf Wildenhues * libltdl/m4/libtool.m4 (func_mode_compile): Accept files with extension `.f9?'. * tests/suffix.test: Test `f95'. * libltdl/config/ltmain.m4sh (func_mode_uninstall): Use `func_source' consistently. 2006-09-18 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ] [k*bsd*-gnu ]: Fix brown paper bag: save and restore `libdir'. 2006-09-17 Ralf Wildenhues * tests/duplicate_deps.at: New file. Test circular depending convenience archives (currently failing). * Makefile.am: Update. Report by Stefan Traby . * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ openbsd ]: Set `hardcode_direct_absolute', to prefer rpath over putting absolute file names in NEEDED entries. * NEWS: Update. Reported by Jake Meuser and others. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ] [ k*bsd*-gnu ]: Test if ld sets DT_RUNPATH; in that case, set shlib_overrides_runpath to `yes'. Fixes test failure of new test on Gentoo GNU/Linux. * tests/shlibpath.at: New file, with... (shlibpath_overrides_runpath): ...new test. * Makefile.am: Update. 2006-09-12 Ralf Wildenhues * tests/destdir.at: New file. * Makefile.am: Adjust. 2006-09-11 Ralf Wildenhues * tests/inherited_flags.at: Drop `${parameter}' for `$parameter' where appropriate, for improved `testsuite -x' output. 2006-09-04 Ralf Wildenhues * libltdl/ltdl.c: Move LT__UNUSED before parameter name, for g++ 3.2.3 (on MinGW). * libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: Likewise. 2006-09-04 George Bosilca and Ralf Wildenhues Make libltdl work when compiled with a C++ compiler. * libltdl/lt__alloc.c, libltdl/lt_dlloader.c, libltdl/ltdl.c, libltdl/slist.c, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c, tests/stresstest.at, tests/testsuite.at, tests/f77demo/foo.h, tests/fcdemo/foo.h, tests/mdemo/foo.h, tests/mdemo/foo1.c, tests/mdemo/foo2.c, tests/mdemo/main.c: Allow sources to be compiled by a C++ compiler: Cast appropriately, add C linkage for `get_vtable' functions, do not use C++ keyword `delete'. * libltdl/config/ltmain.m4sh (func_mode_link): In the dlsym file, define a type for the symbol list, and declare the list `extern', so that it is extern even if compiled by a C++ compiler. The type definition helps avoid a compiler warning against anonymous extern struct. * libltdl/libltdl/lt_system.h: Add `extern' to `LT_SCOPE' for the same reason. * libltdl/argz_.h: It's __cplusplus, not _cplusplus. * libltdl/libltdl/slist.h: Likewise. * libltdl/libltdl/lt__glibc.h: Wrap included argz.h in `extern "C"', for broken headers on Cygwin. 2006-09-03 Ralf Wildenhues * tests/testsuite.at: Test `unset' on a set variable; older bash versions return 1 if the variable was not set. * tests/am-subdir.at, tests/early-libtool.at: Fix the LF vs. CRLF related failures on MinGW by grepping for good output instead of using AT_CHECK's `expout'. 2006-09-01 Ralf Wildenhues Drop K&R support from testsuite in favor of C89. * tests/duplicate_members.at: provide declarations of used functions. * tests/testsuite.at: Drop unneeded arguments. * tests/cdemo/main.c: Assume C89. * tests/demo/dlmain.c: Likewise. * tests/demo/main.c: Likewise. * tests/depdemo/main.c: Likewise. * tests/depdemo/l1/l1.c: Likewise. * tests/depdemo/l2/l2.c: Likewise. * tests/depdemo/l3/l3.c: Likewise. * tests/depdemo/l4/l4.c: Likewise. * tests/f77demo/cprogram.c: Likewise. * tests/fcdemo/cprogram.c: Likewise. * tests/mdemo/mlib.c: Likewise. * tests/mdemo2/main.c: Likewise. * tests/pdemo/longer_file_name_dlmain.c: Likewise. * tests/pdemo/longer_file_name_main.c: Likewise. * tests/fcdemo/fooc.c: Reformat. * tests/mdemo/sub.c: Likewise. 2006-08-31 Ralf Wildenhues * tests/mdemo/main.c: Fix bogus line in last patch. 2006-08-31 Ralf Wildenhues Avoid mixing functions and data pointers in callback functions. * libltdl/ltdl.c (file_worker_func): New type. (lt_dlforeachfile): Instead of passing a function pointer as a data pointer, pass a pointer to a file_worker_func pointer. (foreach_callback_func): Adjust. * tests/mdemo/main.c: Assume C89. Exercise lt_dlforeachfile. (callback, try_iterate, my_dirname): New functions. * tests/mdemo-exec.test: Check for its output. 2006-08-30 Ralf Wildenhues * libltdl/libltdl/lt__private.h (__attribute__, LT__UNUSED): New macros. * libltdl/loaders/dld_link.c: Use LT__UNUSED where appropriate. * libltdl/loaders/dlopen.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: Likewise. * libltdl/ltdl.c: Likewise. (find_file_callback): Fix declaration names to match definition. (load_deplibs) [!LTDL_DLOPEN_DEPLIBS]: Use separate definition for less preprocessor clutter. * Makefile.am (check-local, installcheck-local): Use `TESTSUITEFLAGS' rather than `TESTSUITE_FLAGS', like Autoconf. * HACKING, README, README.alpha: All uses changed. 2006-08-28 Ralf Wildenhues * libltdl/argz.c: Use `#ifdef HAVE_CONFIG_H', to facilitate code sharing with gnulib. Report by Eric Blake. * libltdl/lt__alloc.c, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h: Likewise. * HACKING: Update. 2006-08-25 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Pass through `--coverage' and `-pg', for GCC. Report by Rainer Keller and Tor Lillqvist . 2006-08-25 Kurt Roeckx , Aurelien Jarno * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [k*bsd*-gnu]: kfreebsd*-gnu and knetbsd*-gnu behave like linux-gnu. * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): Likewise. * libltdl/m4/libtool.m4 (_LT_ENABLE_LOCK) [x86_64-*kfreebsd*-gnu]: Add 32/64 bit bi-arch support. * NEWS: Update. 2006-08-25 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [ mingw,pw32 ]: If `file' is present, use `func_win32_libid' rather than `objdump -f', to facilitate cross-compilation. Reported by Pierre Ossman . 2006-08-23 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): In GNU ld script, do not quote object file names, for Intel icc 9.0 IPO link. 2006-08-22 Eric Blake * libltdl/m4/ltdl.m4 (LTDL_INIT): Avoid macros marked obsolete in latest autoconf. * libltdl/m4/libtool.m4 (_lt_cv_sys_global_symbol_pipe): Work in spite of -Wmissing-prototypes. * libltdl/libltdl/lt__dirent.h: Rewrite to accomodate loss of AC_HEADER_DIRENT. * libltdl/m4/libtool.m4: Avoid space-tab. 2006-08-07 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_execute): Also search the directory above `$objdir' for the argument of "-dlopen", as mentioned in the error message. 2006-08-03 Ralf Menzel * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Fix issues with previous patch. for ... do' line is superflous. Need _LT_TAGVAR not _LT_AC_TAGVAR, should be for both linux and solaris with Sun compiler. 2006-08-01 Albert Chin * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. 2006-07-28 Eric Blake * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD, LT_OUTPUT): s/recognise/recognize/. 2006-07-22 Eric Blake * libltdl/ltdl.c (loader_init_callback) [HAVE_LIBDLLOADER]: Protect definition to avoid compiler warnings about unused function. 2006-07-21 Eric Blake * libltdl/m4/ltdl.m4 (LT_LIB_DLLOAD): Search for dlopen without depending on -ldl, required by cygwin 1.5.20. 2006-06-24 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_BOILERPLATE) ( _LT_LINKER_BOILERPLATE): Rewrite to not use unchecked `printf', for old systems like SunOS 4.1. (_LT_COMPILER_OPTION, _LT_LINKER_OPTION) (_LT_COMPILER_C_O, _LT_LINKER_SHLIBS): Likewise. (_LT_LANG_C_CONFIG): Adjust: use literal newlines in `lt_simple_compile_test_code' and `lt_simple_link_test_code'. (_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG) (_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Likewise. Bug report by Bruce Becker and Mark Andrews. 2006-06-13 Ralf Wildenhues Fix the bugs where libtoolize needs to use `dir/file' instead of `./dir/file', where ltdldir is `.', so that libtoolize correctly checks for (and suggests) `config' and `m4' instead of `./config' and `./m4' as auxiliary resp. macro directories. The change is necessary for unambiguous naming, the chosen way plays better with non-GNU make in VPATH builds. * libtoolize.m4sh (ltdlprefix): New variable, to use as prefix instead of `$ltdldir/'. (func_check_macros): Use it. Bug report by Eric Blake. 2006-06-12 Ralf Wildenhues Fix several libtoolize-related bugs: - Do not symlink aclocal.m4, to work around a bug in aclocal overwriting the linked-to file instead of removing the symlink. - Have `libtoolize --copy' cause current time stamps, so that dependents will be rebuilt; for this, install files in order. - Fix list of distribution files for (non)recursive libltdl. - Fix some failure cases. * libtoolize.m4sh (func_copy_cb): If `$opt_link', still copy `aclocal.m4', so a subsequent `aclocal' will not overwrite the symlink target. In `--copy' mode, do `cp -p' and `touch' for each file, so timestamps are updated but permissions preserved. (main): Reorder installing of files to match logical order and timestamp requirements. (func_fixup_Makefile_inc): Renamed to (func_fixup_Makefile): this. Add sed scriptlet to remove non-existent files from EXTRA_DIST, for either nonrecursive or recursive mode. (main): call it to mangle also in recursive mode. * tests/libtoolize.at (expout): Adjusted. * tests/testsuite.at (tst_dist): Default to `dist'. 2006-06-10 Ralf Wildenhues Fix libltdl to always have all generated files up to date. * Makefile.am (all-local): Depend on all generated files in libltdl, namely... (libltdl/aclocal.m4, libltdl/configure, libltdl/config-h.in): ...these. List explicitly, including dependencies and rebuilding rules, using... (sub_aclocal_m4_deps, sub_configure_deps): ...these new variables. Report by Dan Lacher . 2006-06-09 Ralf Wildenhues * Makefile.am (install-data-local): Do not use $(INSTALL_DATA) from another directory: it may use a relative path to `install-sh'. Bug report by Dan Lacher . 2006-06-08 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Honor `-threads', similar to `-mt'. Report by Eric Paire . 2006-06-01 Charles Wilson * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [ cygwin ]: define DLL_EXPORT for PIC objects on cygwin. 2006-05-24 Albert Chin * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [ aix4*, aix5*, hpux10*, hpux11* ]: Set hardcode_direct_absolute for CXX tag too! 2006-05-19 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link, shell wrapper): Do not put `"$@"' in argument to $ECHO. 2006-05-18 Ralf Wildenhues * libltdl/m4/libtool.m4: Bump serial, necessary because of _LT_CHECK_SHELL_FEATURES changes. 2006-05-18 Albert Chin-A-Young * tests/early-libtool.at: Pass $CPPFLAGS and $CFLAGS to compiler when compiling for extra flags that might be needed for ANSI-compliance, 64-bit, etc. The environment we compile with should match the environment libtool was compiled with. 2006-05-18 Ralf Wildenhues Fix mode=compile time regression of CVS HEAD over branch-1-5. * libltdl/m4/libtool.m4 (_LT_CHECK_XSI_SHELL): Rename to... (_LT_CHECK_SHELL_FEATURES): ...this. (_LT_SETUP): Adjust caller. (_LT_CHECK_XSI_SHELL): New libtool variables `lt_unset', `SP2NL', `NL2SP', to contain results from tests for unset, taken from AS_BOURNE_COMPATIBLE, and ASCII vs EBCDIC, taken... * libltdl/config/general.m4sh: ...from here, and used... * libltdl/config/ltmain.m4sh: ...here everywhere now. * (AS_SHELL_SANITIZE): Replace by faster, actually necessary part of its expansion, taken from current Autoconf CVS. Do not save and set all locale variables any more, but only LANG, LC_ALL, LC_CTYPE, LC_COLLATE, LC_MESSAGES. (func_mode_execute): Adjust. * libltdl/m4/libtool.m4 (_LT_CONFIG): No need to unset CDPATH here any more. * libtoolize.m4sh: Compute `SP2NL' and `NL2SP' here, too. 2006-05-17 Gary V. Vaughan * libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG), tests/link-order.at [ aix4*, aix5*, hpux10*, hpux11* ]: rename hardcode_direct_static to hardcode_direct_absolute. * doc/libtool.texi (libtool script contents): Adjust. * libltdl/ltdl.c (lt_dlhandle_fetch): Arguments to lt_dlhandle_iterate were in the wrong order. 2006-05-17 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_OPTION): Require _LT_DECL_SED. (_LT_CMD_GLOBAL_SYMBOLS, _LT_LINKER_SHLIBS): Likewise. * libltdl/m4/ltdl.m4 (LTDL_INIT): Likewise. (_LT_DECL_SED): Set $Xsed here, using $SED. Moved from... (_LT_SETUP): ...here. Report by Eric Blake. 2006-05-17 Gary V. Vaughan * doc/libtool.texi (libtool script contents): Document new hardcode_direct_static variable. * tests/link-order.at: Be careful about usage of shrext_cmds. * libltdl/m4/libtool.m4 (LT_AC_PROG_SED): Declarations for compatibility with old versions of libtool, and old versions of aclocal. 2006-05-17 Albert Chin-A-Young * libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG) [ aix4*, aix5*, hpux10*, hpux11* ]: Introduce a new variable, hardcode_direct_static, which would ignore hardcode_direct=yes if the result would create a static library dependency. Static library dependencies are immune to $shlibpath_var. * tests/link-order.at: Take hardcode_direct and hardcode_direct_static into consideration when testing link order. 2006-05-17 Ralf Wildenhues Eliminate quadratic scaling in argument parsing loop, for shells that understand `var+=value', such as Bash-3.1, or Zsh. * libltdl/m4/libtool.m4 (_LT_CHECK_XSI_SHELL): Test whether the shell understands `var+=value'. (_LT_PROG_XSI_SHELLFNS): Define `func_append' based on this. * config/ltmain.m4sh (func_mode_link): Use `func_append' for compile_command, finalize_command, libtool_args, libobjs, non_pic_objects. 2006-05-15 Bruno Haible , Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ linux ]: Add support for Sun C 5.9, Sun C++ 5.9, and Sun Fortran 8.3 on GNU/Linux. * NEWS: Update. 2006-05-15 Ralf Wildenhues * Makefile.am (check-local): Move `$(TESTS_ENVIRONMENT)' and `$(BUILDCHECK_ENVIRONMENT)' to be arguments of `testsuite', so that reruns will remember it; set enviroment variable `CONFIG_SHELL' so the suite will know which shell it was started with. (installcheck-local): Likewise, for `$(TESTS_ENVIRONMENT)' and `$(INSTALLCHECK_ENVIRONMENT)'. * tests/testsuite.at (LT_AT_TAG): Do not set the compiler variable here. 2006-05-14 Albert Chin-A-Young * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ aix ]: $hardcode_direct is set twice. 2005-05-14 John Bowler * libltdl/config/ltmain.m4sh (func_mode_link): For version_type `none', we still need to set `current', `age', and `revision', so that our checks don't barf. The values won't be used later. Apparently reported by several people, several times, for BeOS. * NEWS, THANKS: Update. 2006-05-13 Ralf Wildenhues * tests/fail.at: Use "test -x" if available, for testing of executables; code modified from Autoconf's AS_EXECUTABLE_P. Reported by Albert Chin . 2006-04-22 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_write_libtool_object): New function, factored out from.. (func_mode_compile): .. here. Call it to generate the libtool object file (the `.lo' file) in one step. 2006-04-03 Peter O'Gorman * libltdl/loaders/preopen.c: Don't allow lt_dlopen if the module has no symbols. 2006-03-28 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]: Avoid warning when "parsing" `/etc/ld.so.conf' and empty `/etc/ld.so.conf.d'. Reported by Orion Poplawski . 2006-03-27 Ralf Wildenhues * bootstrap: Actually use the correct version of the last patch. 2006-03-25 Ralf Wildenhues * bootstrap: Enable `WORKING_LIBOBJ_SUPPORT' if we detect Autoconf-2.60+ and Automake-1.10+, or CVS versions. * libltdl/m4/argz.m4 (gl_FUNC_ARGZ): Sync with gnulib: If we define `error_t', also define `__error_t_defined', so argp.h will not typedef the former. 2006-03-23 Ralf Wildenhues * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS) [ freebsd ] [ dragonfly ]: Set libltdl_cv_sys_dlopen_deplibs to yes. Fixes excessive lt_dlopen times on these systems. * NEWS, THANKS: Update. Bug reported by Peter Jeremy , patch by Joerg Sonnenberger . 2006-03-20 Ralf Wildenhues * tests/static.at: New tests for comprehensive test exposure of all current and proposed static linking flags for programs. * Makefile.am: Updated. * libltdl/config/ltmain.m4sh (func_mode_link) < -static-libtool-libs >: New option. * doc/libtool.texi (Link mode, Distributing libltdl): Document it. Suggested by Gary Kumfert . 2006-03-17 Ralf Wildenhues * tests/tagdemo/foo.cpp, tests/tagdemo/main.cpp [ hpux ] : The HPPA C++ compiler has namespace support but provides no `std' namespace; just provide it with a dummy. * libltdl/m4/libtool.m4 (AC_PROG_SED): Do not forget to reset IFS even in case of empty `$PATH'. 2006-03-16 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Comment out the code to remove uninstalled paths, as it is wrong here. Change the wrong shell quoting that kept it from "working" before. * THANKS: Updated. * libltdl/m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [ freebsd, dragonfly ]: Fix 1.5.22 regression caused by too strict $host_os match that stopped DragonFly from working. * THANKS: Updated. Reported by Jeremy C. Reed , patch by Todd Vierling . 2006-02-24 Ralf Wildenhues * libltdl/config/ltmain.m4sh (startup): save all locale specific environment, variables:, LANG, LANGUAGE, LC_ADDRESS, LC_ALL LC_COLLATE, LC_CTYPE, LC_IDENTIFICATION, LC_MEASUREMENT, LC_MESSAGES LC_MONETARY, LC_NAME, LC_NUMERIC, LC_PAPER, LC_TELEPHONE, LC_TIME. (func_mode_execute): Restore them. 2006-02-15 Ralf Wildenhues * doc/libtool.texi (Tags): Mention `FC'. (libtool script contents) : Specify more precisely as the compiler of the current tag. : Document these variables. 2006-02-15 Ralf Wildenhues * doc/libtool.texi: Update copyright years. * libltdl/config/getopt.m4sh (func_help): Substitute `$host'. * libltdl/config/ltmain.m4sh (help message): Use $host not @host_triplet@, as the `@..@' substitution is done at bootstrap time already. Reported by Julien Lecomte . * doc/libtool.texi (Implementation issues): Note that both prefix and suffix of a library may differ. (Using libtool, Creating object files, Linking libraries): Remove last documentation traces of the age when `foo.lo' was the PIC object file and not the `libtool object' text file. (libtool script contents) : Remove description of this variable. It was removed from libtool in 1.5 times. 2006-02-13 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link) [ linux ]: PGI: for `reload_cmds', we not only need to get rid of `$wl', but also turn comma into space so $LD understands whole_archive_flag_spec correctly. * libltdl/config/ltmain.m4sh (func_mode_link) : Add _AS_BOURNE_COMPATIBLE code from Autoconf, to fix issues with zsh and other shells. Reported by David Gómez Espinosa . 2006-02-09 Ralf Wildenhues * libltdl/m4/libtool.m4 (AC_PROG_SED): m4_defun this rather than AC_DEFUN, so that old aclocal does not pick this up. * Makefile.am ($(TESTSUITE)): Also depend on `Makefile.am'. Write to temporary file and rename. 2006-02-05 Ralf Wildenhues * Makefile.am (EXTRA_DIST): Add `$(srcdir)/' to all generated files so that non-GNU make programs will use the rebuilding rules. * tests/testsuite.at: Add new keyword `libtoolize' for tests that exercise the `libtoolize' script that is generated at build time. * HACKING: Update testsuite mention, explain keywords. * libltdl/config/ltmain.m4sh (extracted_archives) (extracted_serial): New globals. (func_extract_archives): Use them to rename extraction archives for linking against multiple convenience libraries with the same name. * tests/duplicate_conv.at: New tests. * Makefile.am: Adjusted. Reported by Carlo Contavalli . * libltdl/config/ltmain.m4sh (func_mode_link) < test_compile >: Fix a couple of instances where `test .. -ne ..' would possibly compare non-numbers. Clean up a bit. * tests/convenience.at, tests/deplibs-ident.at: Add new keyword `libtool' for tests that exercise the unmodified `libtool' script that is generated at build time. * tests/duplicate_members.at, tests/fail.at: Likewise. * tests/inherited_flags.at, tests/link-order.at: Likewise. * tests/stresstest.at, tests/template.at: Likewise. 2006-02-03 Ralf Wildenhues * tests/fail.at: Also pass a bogus object file to the linker so it fails more reliably; AIX and IRIX linkers ignore duplicate symbol definitions. * libltdl/m4/libtool.m4 [ solaris ] (_LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) < whole_archive_flag_spec >: Fix this once and for all, for both the SUN compiler suite (cc/CC/f77/f90/f95) and GCC. Reported by Yuri Pukhalsky . * tests/cdemo/Makefile.am: Remove broken use of undocumented Automake variable `$(OBJECTS)'. * tests/demo/Makefile.am, tests/depdemo/Makefile.am: Likewise. * tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am: Likewise. * tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am: Likewise. * tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am: Likewise. * libltdl/config/ltmain.m4sh (func_mode_link): Fix logic for adding run paths to also add paths for installed libtool libraries in case `-static' is used. 2006-02-01 Ralf Wildenhues * Makefile.am (TESTSUITE_AT): List testsuite files in the order in which they are to be expanded in the suite. (tests/TESTSUITE): Rebuild by passing all $(TESTSUITE_AT) files, with their path suitably adjusted. This enables us to.. * tests/testsuite.at: ..get rid of their redundant mention here. 2006-01-30 Ralf Wildenhues * doc/libtool.texi (titlepage): Remove superfluous word. * libltdl/config/ltmain.m4sh (func_mode_link): Fix matching duplicate run path entries with the correct separator. * tests/testsuite.at (PREPARE_TESTS): Escape `^' for some older shells. * ChangeLog, HACKING, README, README.alpha, libltdl/config/ltmain.m4sh: Add vi(m) modelines, to match emacs formatting variables. 2006-01-24 Ralf Wildenhues * Makefile.am (libltdl/Makefile.am): Fixup sed script. Reported by Bob Friesenhahn . 2006-01-23 Ralf Wildenhues * Makefile.am, bootstrap, clcommit.m4sh, libltdl/config/getopt.m4sh, libltdl/config/mailnotify.m4sh, tests/sh.test, tests/testsuite.at: Bump copyright years. 2006-01-21 Eric Blake * THANKS: Move myself to contributor. 2006-01-21 Ralf Wildenhues * bootstrap: Don't use semicolons inside { } in sed scripts, as Posix says it's not portable. * Makefile.am (libltdl/Makefile.am): Likewise. * libtoolize.m4sh (all over the map): Likewise. * libltdl/config/getopt.m4sh (func_version, func_usage) (func_help): Likewise. * libltdl/config/ltmain.m4sh (func_win32_libid): Likewise. * libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Likewise. * clcommit.m4sh, libltdl/config/mailnotify.m4sh: Likewise. * tests/sh.test, tests/testsuite.at (LT_AT_TAG): Likewise. Noted by Paul Eggert . * libltdl/config/ltmain.m4sh (func_mode_compile): Also transform `.obj' correctly. Reported by George Bosilca . 2006-01-13 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC): Fix my forward port error of last commit. 2006-01-12 Leif Ekblad * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC): Added support for RDOS. * NEWS: Updated. 2006-01-11 Ralf Wildenhues * libtoolize.m4sh, libltdl/config/general.m4sh, libltdl/config/getopt.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4: Bump copyright years. 2006-01-03 Ralf Wildenhues * Makefile.am (EXTRA_DIST): Add ChangeLog.2005. * README, README.alpha: Adjust copyright years. * ChangeLog.2005: New, rotated, from.. * ChangeLog: ..here. 2005-12-29 Ralf Wildenhues * Makefile.am (libtoolize): Also depend on `config.status'. (tests/atconfig): Normalize path, for non-GNU make. Reported by Bob Friesenhahn . * libltdl/config/ltmain.m4sh (func_mode_link) : Fix position of separator for shlibpath_var setting in shell wrapper. * libltdl/lt_error.c (error_strings): Remove parentheses around string literal initializers, uncovered by `tcc'. Reported by Edward Chernenko . 2005-12-21 Gary V. Vaughan * .cvsignore, libltdl/.cvsignore, tests/.cvsignore: Ignore +build, +dest, +inst, .cvslog-tlasync, .gdb_history, .pc, libltdl/INSTALL, libltdl/stamp-mk and tests/testsuite.log. 2005-12-20 Eric Blake * README.alpha: Really commit. 2005-12-19 Eric Blake * HACKING (release note templates): Update anon cvs location. * README.alpha (Reporting Bugs): Likewise. 2005-12-18 Jacob Meuser , Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Move library search paths that coincide with paths to not yet installed libraries to the beginning of the library search list. 2005-12-18 Ralf Wildenhues * THANKS: Updated. * HACKING: `./libtool --config' is more helpful than `--help'. * libltdl/config/ltmain.m4sh : Initialize properly. 2005-12-18 Kean Johnston , Ralf Wildenhues * libltdl/m4/libtool.m4 (LT_PATH_NM): Also look in /usr/ccs/bin/elf, for SCO. If we are not cross-compiling, but $ac_tool_prefix is set, also try an un-prefixed `nm'. 2005-12-18 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) : Initialize, to `unsupported'. 2005-12-18 Marc Espie * libltdl/m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [ openbsd ] : Set to `/usr/lib' only. 2005-12-16 Ralf Wildenhues * tests/old-m4-iface.at: Require Autoconf-2.50, so that Debian's autoconf wrapper will not cause 2.13 to barf over `--force'. Reported by Kurt Roeckx . * README.alpha (Reporting bugs): Suggest to also bootstrap the libltdl subdirectory -- the Makefile will enforce it anyway. (The Test Suite): Renamed to.. (The Test Suites): ..this. Introduce the new Autotest test suite, how to run each one individually, and what to report. * README (The Test Suite): Likewise. 2005-12-16 Ralf Wildenhues In the subpackage case, we do not install Makefile.inc. Since we have to be correct for this case, remove `Makefile.inc' from EXTRA_DIST. Recursive mode does not use it either. Since nonrecursive mode requires an Automake >= 1.7 anyway, and those versions automatically distribute included makefile fragments, we don't need to cater for that one either. * libltdl/Makefile.inc (EXTRA_DIST): Remove Makefile.inc. Reorder other entries. 2005-12-16 Ralf Wildenhues * Makefile.am (libltdl/Makefile.in): also depend on libltdl/aclocal.m4, so that we guarantee timestamp consistency. (libltdl/stamp-mk): New target, to fix `libltdl/Makefile.in'. (EXTRA_DIST): Distribute `libltdl/stamp-mk' and `libltdl/m4/lt~obsolete.m4'. (all-local): Ensure the stamp files is up to date. (libltdl/aclocal.m4): New target, to ensure timestamp consistency. Depend on all m4 files. * HACKING: Updated. * tests/testsuite.at (PREPARE_TESTS): New variable `tst_dist', default to empty. * tests/nonrecursive.at, tests/recursive.at, tests/standalone.at, tests/subproject.at: Use it in LT_AT_BOOTSTRAP or LT_AT_MAKE, so that you can optionally test redistribution within the tests. * libltdl/m4/lt~obsolete.m4: Update documentation for aclocal versions before 1.7. Change all macros to use AC_DEFUN instead of AU_DEFUN. * (_AC_PROG_LIBTOOL, AC_LIBTOOL_SETUP, _LT_AC_CHECK_DLFCN) (AC_LIBTOOL_SYS_DYNAMIC_LINKER, _LT_AC_TAGCONFIG) (AC_DISABLE_FAST_INSTALL, _LT_AC_LANG_CXX, _LT_AC_LANG_F77) (_LT_AC_LANG_GCJ, AC_LIBTOOL_RC, AC_LIBTOOL_LANG_C_CONFIG) (_LT_AC_LANG_C_CONFIG, AC_LIBTOOL_LANG_CXX_CONFIG) (_LT_AC_LANG_CXX_CONFIG, AC_LIBTOOL_LANG_F77_CONFIG) (_LT_AC_LANG_F77_CONFIG, AC_LIBTOOL_LANG_GCJ_CONFIG) (_LT_AC_LANG_GCJ_CONFIG, AC_LIBTOOL_LANG_RC_CONFIG) (_LT_AC_LANG_RC_CONFIG, AC_LIBTOOL_CONFIG) (_LT_AC_FILE_LTDLL_C): Add new fake macros for these, they were used at one time in libtool.m4. * tests/am-subdir.at (Makefile.am): Put automake options here, in AUTOMAKE_OPTIONS. Require 1.6 because of the newer `AC_INIT(pkgname,version) AM_INIT_AUTOMAKE' scheme. * tests/nonrecursive.at, tests/recursive.at: Require 1.7, because libltdl rules use `+=' in conditionals. * tests/testsuite.at (LT_AT_AUTOMAKE): Fix indenting. (LT_AT_AUTORECONF): also detect too old Automake. 2005-12-08 Eric Blake * libltdl/libltdl/lt__alloc.h (FREE): Cast away constness of argument to `free' to avoid compiler warning. 2005-12-08 Peter O'Gorman * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG, _LT_LINKER_SHLIBS) [darwin]: Use $LTCC $LTCFLAGS to check for -single_module. Reported by Ralf Wildenhues 2005-12-07 Ralf Wildenhues * bootstrap: always remove Makefile, to avoid triggering the autotools rebuild rules before autoreconf builds these. Reported by Bob Friesenhahn . 2005-12-07 Peter O'Gorman * libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4 [darwin]: Use -single_module by default when linking shared libraries. Can be overridden by specifying -multi-module or by setting the env var LT_MULTI_MODULE before configure. * libltdl/m4/libtool.m4 (archive_expsyms_cmds) [darwin]: Simplify. Reported by Ralf Wildenhues 2005-12-04 Ralf Wildenhues * doc/libtool.texi (References): Do not use `@/' for the benefit of older `makeinfo', break lines instead. * Makefile.am (install-data-local): No continuation here. (dist-hook): Fix copying of README.alpha to README. * tests/early-libtool.at (configure.ac): Remove `AM_INIT_AUTOMAKE', we do not use automake in these tests. * README, README.alpha, libtoolize.m4sh: Typos. * tests/am-subdir.at, tests/duplicate_members.at: Make all banners end with a dot, for symmetry. * libtoolize.m4sh (func_copy_all_files) (glob_exclude_pkgaux_files): Removed, since unused. * libtoolize.m4sh (func_copy_cb, func_copy_some_files) (func_serial_update, func_keyword_update): Fail immediately if some file we may install does not exist. Reported by Troy Benjegerdes . 2005-12-03 Ralf Wildenhues * TODO: A bunch of items fixed. :) * tests/convenience.at: Updated to expose more corner cases. * doc/libtool.texi (Invoking libtoolize): Remove mention of the nonrecursive restriction to name the directory `libltdl'. * libtoolize.m4sh (func_fixup_Makefile_inc): New function. (main): Call it in nonrecursive mode to mangle Makefile.inc. * tests/nonrecursive.at: adjusted to test this. 2005-12-03 Ralf Wildenhues Basic support for PIE (position-independent executables). * libltdl/config/ltmain.m4sh (func_generate_dlsyms): Don't pass PIE flag for compilation of the symbol file object. (func_mode_compile): Pass PIE flag only for non-PIC objects. * NEWS: Updated. 2005-12-03 Ralf Wildenhues * libltdl/config/general.m4sh (func_show_eval): Rewrite use of the failure expression, because the exit status of the previous command may not be preserved in the next `eval' by some shells, such as pdksh. * libltdl/config/ltmain.m4sh (func_extract_an_archive): Use func_show_eval correctly. (func_mode_link): Likewise. Also, do not use `$status'. * tests/fail.at: New set of tests to ensure libtool fails. * Makefile.am, tests/testsuite.at: Adjusted. 2005-11-26 Peter O'Gorman * libltdl/m4/libtool.m4 [darwin]: Use $LTCC $LTCFLAGS to create reloadable objects. 2005-11-25 Ralf Wildenhues * libltdl/Makefile.inc (libltdl/argz.h): Create libltdl directory if it does not exist yet. Take care that munging of the file will not mess up the build rule. Reported by Peter O'Gorman . 2005-11-25 Eric Blake , Ralf Wildenhues * libltdl/loaders/loadlibrary.c (iface_id): New variable. (get_vtable): Get an `iface_id' from `lt_dlinterface_register'. (get_vtable): Rewrite to catch up with lt_dlhandle_iterate interface change. Append dot only after w32 path conversion so it works on cygwin managed mounts. * libltdl/ltdl.h, libltdl/ltdl.c (lt_dlinterface_free): New function. * doc/libtool.texi (User defined module data): Document it. 2005-11-25 Ralf Wildenhues * libltdl/m4/libtool.m4 [aix] (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Always move -bnoentry before $compiler_flags, so it can be overridden. * libltdl/config/ltmain.m4sh (func_mode_link): Allow GCC response files through. 2005-11-25 Peter O'Gorman * libltdl/config/ltmain.m4sh (func_mode_link): Pass through -isysroot for cross architecture builds on darwin. 2005-11-24 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_uninstall): In clean mode, don't remove non-existent libfoo.lai. 2005-11-20 Ralf Wildenhues * Makefile.am (aclocalfiles): Also install lt~obsolete.m4. * libtoolize.m4sh (func_check_macros): Updated. * tests/libtoolize.at: Adjusted. 2005-11-20 Eric Blake , Ralf Wildenhues * bootstrap (--help): Provide some help. 2005-11-20 Todd Vierling , Thorsten Glaser * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN, _LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [ interix3 ]: Support for Interix/Microsoft Services for Unix. * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): Likewise. * NEWS: Updated. 2005-11-20 Ralf Wildenhues * tests/link-order.at [ interix ]: Skip command line grep. * tests/deplibs-ident.at [ interix ]: Not broken here. Reported by Thorsten Glaser . 2005-11-18 Ralf Wildenhues * libtoolize.m4sh (func_copy_all_files) (func_massage_aclocal_DATA, func_massage_pkgltdl_files) (func_massage_pkgconfig_files): Work around ksh limitation. Reported by Thorsten Glaser . 2005-11-14 Albert Chin * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ hpux11 ]: Pass +nodefaultrpath when linking on ia64*. 2005-11-14 Ralf Wildenhues Testsuite portability update round. * tests/inherited_flags: skip when shared libs are disabled. * tests/deplibs-ident.at [ aix ]: No unexpected failure here. * tests/libtoolize.at: Fix for distcheck (readonly sources). * tests/nonrecursive.at, tests/recursive.at, tests/subproject.at (foo.c): Actually export a symbol, for AIX. * tests/old-m4-iface.at: Use AC_LIBTOOL_DLOPEN, for AIX. * tests/nonrecursive.at: Set foo_la_SOURCES, for automake-1.7. * tests/subproject.at: Require automake-1.9, we use indirect subdirs. * tests/am-subdir.at: Move AT_KEYWORDS settings.. * tests/testsuite.at: ..here, in respective macros. (LT_AT_AUTOMAKE): Skip if we detect failure due to old version. (PREPARE_TESTS): Set autotool variables to `no' if not present. (LT_AT_ACLOCAL, LT_AT_AUTOCONF, LT_AT_AUTOMAKE) (LT_AT_AUTOHEADER, LT_AT_AUTORECONF): Use to XFAIL tests. Reported by Tim Rice . (LT_AT_MAKE): Do not use `make -e'. (_LTDL_PROJECT_FILES): Adjust sub-make call. Work around `make' which does not set `MAKE' or `SHELL'. Fix for user-set `CONFIG_SHELL'. Reported by Charles Wilson . * libltdl/m4/lt~obsolete.m4 (_LT_CC_BASENAME) (_LT_COMPILER_BOILERPLATE, _LT_LINKER_BOILERPLATE): Added because they were added to branch-1-5 AC_DEFUNed. * HACKING: Add note about lt~obsolete.m4. * Makefile.am, libltdl/Makefile.inc (INSTALL_LTDL): For nonrecursive mode, add to include_HEADERS as well. * doc/libtool.texi (Invoking libtoolize, Distributing libltdl), tests/nonrecursive.at: Adjusted, and removed TABS from .texi. * libtoolize.m4sh: Revert use of `$tst_aclocaldir'. 2005-11-13 Eric Blake * libltdl/ltdl.c (lt_dlhandle_iterate): Fix endless loop. (lt_dlinterface_register): Fail if lt__strdup did. 2005-11-13 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LANG_C_CONFIG): Removed `lt_prog_cc_shlib' cruft, not needed any more. 2005-11-13 Kean Johnston , Tim Rice * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_C_CONFIG, _LT_LANG_CXX_CONFIG) [ sco3.2v5, sysv4, sysv4.3, sysv5, sco3.2v5, sco5v6, unixware, OpenUNIX, sysv4*uw2 ]: Complete overhaul of SCO support. * THANKS: Updated. 2005-11-13 Ralf Wildenhues * tests/quote.test: Do not fail on harmless shell bug present in some ksh versions. Reported by Tim Rice and others. 2005-11-12 Ralf Wildenhues * libltdl/m4/ltoptions.m4 (_LT_SET_OPTION): Use m4_warning instead of m4_warn. * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC): `wl' is tagged here. * libltdl/m4/libtool.m4 (LT_SYS_DLOPEN_SELF, _LT_COMPILER_PIC): Make sure `$wl' is properly expanded for tests involving `export_dynamic_flag_spec', `lt_prog_compiler_static'. * tests/defs.m4sh (func_configure): Actually pass options (like --disable-shared) to func_configure_nofail. 2005-11-11 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ freebsd ]: Fix shlibpath_overrides_runpath settings. Reported by Dave Benson . 2005-09-10 Charles Wilson * libltdl/config/ltmain.m4sh (func_win32_libid): use $SED not sed. 2005-11-10 Albert Chin-A-Young * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [ hpux10, hpux11 ] : Use C++ compiler for linking rather than ld. 2005-11-10 Ralf Wildenhues * libltdl/m4/ltsugar.m4 (lt_join, lt_combine, lt_dict_filter): Rewrite to eliminate tail recursion; use .. (lt_unquote): New trivial helper macro. * libltdl/m4/libtool.m4 (_lt_decl_filter): Document. 2005-11-10 Gary V. Vaughan * tests/testsuite.ac (macrodir): Don't set it here... * Makefile.am (BUILDCHECK_ENVIRONMENT, INSTALLCHECK_ENVIRONMENT): ...set it here to pick up files from the right place in context. * tests/libtoolize.at, tests/old-m4-iface.at: Adjust. * libtoolize.m4sh: Take tst_aclocaldir into account when running inside the test harness. 2005-11-10 Gary V. Vaughan * tests/am-subdir.at: Now that we don't run autoreconf, we have to explicitly tell aclocal what flags to use. * tests/testsuite.at (LT_AT_BOOTSTRAP): Allow passing arguments to configure. * tests/am-subdir.at, tests/nonrecursive.at, tests/old-m4-iface.at, tests/subproject.at: Use LT_AT_BOOTSTRAP. 2005-11-09 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS): Also set pic_flag. (_LT_LANG_CXX_CONFIG): Use $as_unset, not unset. (_LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG): Remove bogus ld_shlibs tests. * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS): Move setting of `variables_saved_for_relink'.. (_LT_SYS_DYNAMIC_LINKER): here, when both `shlibpath_var' and `runpath_var' have been set. Reported by Mike Frysinger . * libltdl/Makefile.inc (AM_CPPFLAGS): Do not define HAVE_CONFIG_H. * libltdl/m4/ltdl.m4 (LTDL_INIT): Do not invoke AC_CONFIG_HEADERS ourselves, we can build with or without now. 2005-11-07 Kean Johnston * libltdl/config/ltmain.m4sh (func_mode_link) [ sysv4*uw2*, unixware7* ]: Work around linker bug on older SCO systems. 2005-11-07 Albert Chin-A-Young * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [ hpux10, hpux11 ]: hardcode_libdir_flag_spec and hardcode_minus_L are the same for hppa*64 and ia64*. Don't set hardcode_libdir_flag_spec='-L$libdir' on ia64* because if you specify +b and -L, +b overrides what is set into DT_RPATH. 2005-11-07 Gary V. Vaughan * tests/testsuite.at (_LTDL_PROJECT_FILES): Factored out from common code to build a basic libltdl using project. * tests/old-m4-iface.at, tests/standalone.at, tests/subproject.at: Use it. * doc/libtool.texi (Distributing libltdl): Document correct use of LT_CONFIG_LTDL_DIR mode argument with Autoconf and Automake. 2005-11-07 Gary V. Vaughan Support 'recursive' mode for building libltdl: Automake will recursively descend into the libltdl directory, and use libltdl's Makefile.am code to build libltdl: * ltdl.m4 (LT_CONFIG_LTDL_DIR): Don't barf on 'recursive' mode for 2nd argument. (_LTDL_MODE_DISPATCH): Handle recursive mode. 2005-11-07 Gary V. Vaughan * tests/recursive.at: New tests for libltdl as a subdirectory, configured and compiled from the toplevel project using a recursive make.. * tests/testsuite.at: Use it. * Makefile.am (TESTSUITE_AT): Depend on it. * libltdl/m4/ltdl.m4 (LTDL_INIT): Don't force running AC_CONFIG_HEADERS for subproject ltdl. * tests/old-m4-iface.at, tests/subproject.at: Remove workaround. * libltdl/m4/ltdl.m4 (LT_CONFIG_LTDL_DIR): Add LTDL-MODE argument. * configure.ac: Use it. 2005-11-06 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): lt_unknown is lt_dlunknown. * libltdl/m4/libtool.m4 (LT_SYS_DLOPEN_SELF): Revert expansion of `$wl'. (_LT_LANG_C_CONFIG, _LT_LANG_CXX_CONFIG, _LT_LANG_GCJ_CONFIG): Do not require LT_SYS_DLOPEN_SELF. (_LT_LANG_C_CONFIG): Instead call it at the right time. (_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG) (_LT_LANG_GCJ_CONFIG): Do not call _LT_CMD_STRIPLIB. * Makefile.am: `2>&1' as suggested by Albert Chin. * libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4: Two newlines before each macro, fix underlines. 2005-11-05 Kean Johnston , Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link) [*-*-sco3.2v5*]: Don't pass through -lc, nor add it to deplibs. [*-*-sysv5*]: Ditto. [*-*-openbsd*, *-*-freebsd*, *-*-dragonfly*]: Remove bogus `$arg'. 2005-11-04 Ralf Wildenhues * THANKS: Updated. 2005-11-02 Gary V. Vaughan * tests/nonrecursive.at: New tests for libltdl as a subdirectory, configured and compiled from the toplevel project. * tests/testsuite.at: Use it. (LT_AT_AUTOHEADER): New macro. * Makefile.am (TESTSUITE_AT): Depend on nonrecursive.at. 2005-11-01 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_ENABLE_LOCK) [ solaris ]: Add `-64' to $LD if necessary, to permit combining of several convenience libs without any further objects added. Reported by Brian Barrett . 2005-11-01 Kean Johnston , Ralf Wildenhues * libltdl/m4/libtool.m4 (LT_SYS_DLOPEN_SELF): Use `lt_prog_compile_static', not `link_static_flag'. Expand `$wl' so expansion of `export_dynamic_flag_spec' works. (_LT_TRY_DLOPEN_SELF): Show dlerror() in case of failure. (_LT_LINKER_SHLIBS) [ aix3 ]: Likewise. (_LT_COMPILER_PIC) [ hpux* ]: Use `${wl}'. 2005-11-01 Ralf Wildenhues * THANKS: Updated. 2005-11-01 Gary V. Vaughan * libltdl/m4/ltdl.m4 (LTDL_INIT): Call _LT_ENABLE_INSTALL directly instead of m4_requiring it, as it relies on enable_ltdl_install and enable_ltdl_convenience to have been initialised first. * libtoolize.m4sh: Use serial tags to locate the correct serial numbers when deciding whether to update. (func_serial): Allow for macro_regex argument to be originating file name. (func_serial_update): Use NL2SP to flatten list of extracted m4_include files. * tests/libtoolize.at: More tests for old-style verbatim copying of macros into aclocal.m4. * libltdl/m4/argz.m4, libltdl/m4/ltoptions.m4, libltdl/ltsugar.m4, libltdl/m4/ltversion.in: Add serial number tags, and bump serial number. 2005-10-31 Kean Johnston [ sysv5*, sco3.2v5*, sco5v6*, unixware*, OpenUNIX*, sysv4*uw2* ] Patches for various bug fixes, small improvements and updating the SCO platform support. * libltdl/m4/libtool.m4 (LT_CMD_MAX_LEN): Set correctly for SCO. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Set correct symcode values for the native nm on SCO platforms. * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): All SCO platforms open dependency libraries when you dlopen a module. 2005-10-31 Albert Chin-A-Young * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ aix ]: Remove duplicate always_export_symbols=yes for AIX. 2005-10-29 Howard Chu * libltdl/config/ltmain.m4sh (func_mode_link): With `-static', only link statically against uninstalled libtool libraries. Fixes 1.5.x regression to match documented behavior. * NEWS: Updated. 2005-10-27 Stepan Kasal * HACKING: Update note about use of `$#' in m4 macros. 2005-10-27 Ralf Wildenhues * tests/tagtrace.test: Allow `$AUTOCONF' to contain arguments. Skip if the running `autoconf' version is older than the one used to bootstrap Libtool. 2005-10-26 Eric Blake , Ralf Wildenhues * Makefile.am (vcl-tmp): Avoid warnings from diff. * bootstrap: Avoid warnings from find. (lt_tab): Use to prevent editor whitespace "cleanup". 2005-10-26 Gary V. Vaughan * libtoolize.m4sh: Put back the func_serial_update callback for func_copy_some_files so that the testsuite passes again. We'll have to find a better way of handling serial numbers in libtool macro files. * libltdl/Makefile.inc: New file, factored out of Makefile.am for use in non-recursive libltdl installations. * bootstrap: Adjust. * Makefile.am: include it. (libltdl/Makefile.am): Adjust to build from the new libltdl/Makefile.inc. (SUBDIR_LIBOBJS): Renamed from this... (LTDL_SUBDIR_LIBOBJS): ...to this. * configure.ac: Adjust. * doc/libtool.texi (Invoking libtoolize): Document the new modes and libtoolize option to select them. * libtoolize.m4sh: Parse new options, --nonrecursive, --recursive and --subproject. Install the appropriate files with --ltdl according to the selected mode. (func_scan_files): If --subproject, --recursive or --nonrecursive options were not given, use the value from LT_CONFIG_LTDL_DIR; if a mode was given, and there is also an argument to LT_CONFIG_LTDL_DIR, ensure they are the same. * NEWS: Updated. * libtoolize.m4sh: Don't use func_serial_update as a copy function for libtool m4 files with no macro_regex. If the files are copied directly into aclocal.m4, because AC_CONFIG_MACRO_DIR isn't set for example, there is no way to tell what serial number goes with what source file. (func_serial_update): For future-proofing, only make the second serial number check if the destination file wasn't m4_included into aclocal.m4 (and hence updated automatically by the cat of copying a new version to the dest directory). * libtoolize.m4sh: Move the consistency checks... (func_check_macros): ...into here. Also suggest LT_WITH_LTDL if appropriate. * libtoolize.m4sh: Copying just libtool.m4 for hand maintained aclocal.m4 doesn't work. List all required files in that case, using the files from installed libltdl if available. Also, list the additional files required when using libltdl. Reported by Patrick Welche . * libltdl/ltdl.h, libltdl/ltdl.c (lt_dlhandle_first): Removed. * libltdl/ltdl.h, libltdl/ltdl.c (lt_dlhandle_next) (lt_dlhandle_find, lt_dlforeach): Removed... (lt_dlhandle_iterate, lt_dlhandle_fetch, lt_dlhandle_map): Similar functions that are multi-loader safe, and require a registered interface validator argument. * doc/libtool.texi: Updated. * NEWS: Updated. * libtoolize.m4sh: Always copy pkgconfig_files for --ltdl, incase ltdl needs additional things not found by automake when looking at the parent project configury. * tests/libtoolize.at: Adjust. 2005-10-17 Ralf Wildenhues * libltdl/config/ltmain.m4sh [darwin]: Don't check for "bundle" in file path. Reported by Christoph Egger . 2005-10-14 Gary V. Vaughan * libltdl/m4/ltdl.m4 (LT_WITH_LTDL): Don't nest AC_MSG_CHECKING/ AC_MSG_RESULT pairs. 2005-10-14 Gary V. Vaughan * tests/subproject.at: Move 'touch config.h.in' invocation. * tests/subproject.at (_LTDL_SETUP): Use pushdef/popdef to simulate file-local scope. Empty source file compilation is not portable, so add minimal code to generated foo.c file. 2005-10-13 Ralf Wildenhues * libltdl/m4/libtool.m4 (LT_PATH_NM): End test source with newline. Reported by Charles Wilson . 2005-10-13 Peter O'Gorman * libltdl/ltdl.c (find_module): Check that dir is set. (load_deplibs): Don't free the user search paths too early. 2005-10-11 Ralf Wildenhues * tests/testsuite.at (LT_AT_AUTOMAKE): New macro. * tests/subproject.at: Use it. Do not call `autoreconf' in tests, since it will try to reconfigure `sub/ltdl', which breaks `make check' during `distcheck' because of a readonly source tree. * libltdl/m4/ltdl.m4 (LT_WITH_LTDL): Also set INCLTDL. * libltdl/m4/ltdl.m4 (LTDL_CONVENIENCE, LTDL_INSTALLABLE) (LT_WITH_LTDL): Revert Gary's 2005-10-10 patch. * tests/stresstest.at: Use `allow_undefined_flag' instead of host_os setting. 2005-10-10 Gary V. Vaughan * libltdl/m4/ltdl.m4 (_LT_ENABLE_INSTALL): Remove bogus extra closing brackets. 2005-10-10 Gary V. Vaughan * libltdl/m4/ltdl.m4 (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Remove AC_SUBST of LIBLTDL, LTDLINCL, and all mention of INCLTDL. (LT_WITH_LTDL): Due to order constraints between LTDL_CONVENIENCE, LTDL_INSTALLABLE, LT_WITH_LTDL & LTDL_INIT, we can safely AC_SUBST LIBLTDL and LTDLINCL here. Also, remember to synch INCLTDL. 2005-10-10 Ralf Wildenhues * tests/stresstest.at [ aix3, beos, os2 ]: Always use `-no-undefined'. 2005-10-09 Christian Biesinger * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [ beos ]: Initial shared library support for C++. 2005-10-07 Ralf Wildenhues * configure.ac (abs_top_builddir, abs_top_srcdir): always substitute. * Makefile.am (BUILDCHECK_ENVIRONMENT) (INSTALLCHECK_ENVIRONMENT): New macros. Set _lt_pkgdatadir, LIBTOOL, LIBTOOLIZE accordingly, by using above, and program_transform_name. * tests/testsuite.at (TESTS_PREPARE): Do not set them anymore. Set $unset. (LT_AT_MAKE): Use to unset LIBTOOL and LIBTOOLIZE. 2005-10-05 Gary V. Vaughan * tests/subproject.at: Commit the right file this time. 2005-10-05 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Fix m4 quoting for lt_simple_link_test_code. Reported by Nicolas Joly . 2005-10-05 Gary V. Vaughan * tests/subproject.at: New tests for libltdl as a subproject with its own configuration. * tests/testsuite.at: Use it. * Makefile.am (TESTSUITE_AT): Depend on it. 2005-10-05 Ralf Wildenhues * Makefile.am: Simplify. Do not use abs_top_srcdir. Reported by Gary V. Vaughan . 2005-10-05 Gary V. Vaughan * libltdl/m4/ltdl.m4 (_LT_CONFIG_LTDL_DIR): Spurious './' prefixes upset BSD pmake, don't set lt_ltdl_dir in this case. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust. 2005-10-05 Ralf Wildenhues * Makefile.am (BUILDCHECK_ENVIRONMENT) (INSTALLCHECK_ENVIRONMENT): New macros. (check-local, installcheck-local): Use them. * tests/testsuite.at (PREPARE_TESTS): Extract host_alias, ECHO. Set configure_options appropriately. (LT_AT_CONFIGURE, LT_AT_AUTORECONF, LT_AT_MAKE): New macros. (LT_AT_BOOTSTRAP): Use them. * tests/am-subdir.at, tests/early-libtool.at, tests/old-m4-iface.at, tests/standalone.at: Likewise. * tests/link-order.test: Do not extract ECHO any more. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Require AC_CANONICAL_HOST and _LT_DECL_SED. 2005-10-03 Gary V. Vaughan * libltdl/m4/ltdl.m4: Bump serial as we are changing the interface. (LT_CONFIG_LTDL_DIR): New macro to centralise setting the subdirectory used for libltdl. (LTDL_CONVENIENCE): Continue backwards compatibility support for declaring the libltdl source subdirectory with an argument, but defer to LT_CONFIG_LTDL_DIR. (AC_LIBLTDL_CONVENIENCE): Adjust to upgrade to the new style. (LTDL_INSTALLABLE, AC_LIBLTDL_INSTALLABLE): Ditto. (LTDL_INIT): lt_ltdl_dir is set by LT_CONFIG_LTDL_DIR now, and even `./' needs trailing slashes trimming! If the user didn't upgrade their configure.ac yet, call LT_CONFIG_LTDL_DIR for them. * libtoolize.m4sh (func_scan_files): If --ltdl option is given without a directory argument, use the value from LT_CONFIG_LTDL_DIR; if the argument is given, and there is also a value in LT_CONFIG_LTDL_DIR, ensure they are the same. * libltdl/configure.ac: Use it. * NEWS: Updated. 2005-10-02 Ralf Wildenhues * tests/old-m4-iface.at (Makefile.in): Do not reconfigure libltdl directory. 2005-09-30 Ralf Wildenhues * tests/deplibs-ident.at: New file with XFAIL test to expose wrong multiple listing of a deplib on the command line. * Makefile.am, tests/testsuite.at: Updated. Reported by Brian Barrett . * tests/old-m4-iface.at: Define top_srcdir, work around current ltdl.m4 bug. * libltdl/config/ltmain.m4sh (func_mode_link): Fix wrong logic introduced in last commit. 2005-09-30 Gary V. Vaughan * tests/libtoolize.at: Add a new test to catch a regression I almost introduced with respect to copying macro files when AC_CONFIG_MACRO_DIR is shared with libltdl subproject. 2005-09-30 Gary V. Vaughan * tests/old-m4-iface.at: Start of a new test series for m4 interface backwards compatibility. * tests/testsuite.at: Use it. (macrodir): Declare the location of uninstalled libtool m4 macros. * Makefile.am (TESTSUITE_AT): Depend on it. 2005-09-29 Tim Rice (tiny change) * tests/early-libtool.at (Makefile.in): Set $(SHELL). 2005-09-29 Peter Ekberg * libltdl/config/ltmain.m4sh (func_mode_link): Don't modify user provided symbols file. Adjust removal of temporary files and also remove temporary files used during symbols file filtering. 2005-09-29 Ralf Wildenhues * libtoolize.m4sh (func_included_files): Do not recurse non-existent files. 2005-09-27 Gary V. Vaughan * libtoolize.m4sh (func_scan_files): Support projects that have upgraded libtool, but still use an old autoconf. When the libtool macros are not copied (because of missing ACLOCAL_AMFLAGS and AC_CONFIG_MACRO_DIR ), point them at the libtoolize master tree for files to manually copy into acinclude.m4 or aclocal.m4. * libltdl/lt_error.c (lt__last_error, lt__error_strings): The lt__ prefix is used to indicate internal symbols that are only exported for use by other parts of libltdl. These are now static, so... (last_error, error_strings): ...renamed to this. Changed all callers. * libltdl/ltdl.h (lt_dlmutex_register, lt_dlmutex_lock) (lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror) (lt_dlmalloc, lt_dlrealloc, lt_dlfree): Remove deprecated APIs. * doc/libtool.tex: Updated. * NEWS: Updated. * libltdl/ltdl.c (lt_dlcaller_register): Renamed to avoid problems with module visibilty when linked with programs written for the old API. (lt_dlinterface_register): New name. * Makefile.am (VERSION_INFO): Bumped. * doc/libtool.texi (User defined module data): Updated. 2005-09-27 Tim Rice * tests/defs.m4sh, tests/testsuite.at (PREPARE_TESTS) : Allow variable override. 2005-09-26 Ralf Wildenhues * HACKING: Only update libltdl version info before release. 2005-09-26 Tim Rice * configure.ac : Allow variable override. 2005-09-25 Alan W. Irwin , Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_win32_libid) [ cygwin, mingw ]: Robustify sed script to determine win32_libid_type. (func_mode_link) [ mingw ]: Ignore `-lm'. 2005-09-25 Peter Ekberg * libltdl/libltdl/lt__private.h, libltdl/lt_error.c: Don't export the lt__last_error and lt__error_strings variables. Define lt__error_strings so that no relocations are needed. * libltdl/libltdl/lt__private.h (LT__STRERROR, LT__GETERROR) (LT__SETERRORSTR): Adjust to not use the above variables, instead use the following functions... * libltdl/lt_error.c: (lt__error_string, lt__get_last_error) (lt__set_last_error): Reimplement the functionality in these functions instead. * libltdl/libltdl/lt_error.h: Add LT_ERROR_LEN_MAX define for max error string length. (lt_dlerror_table): Append explicit nul terminators so that compilers warn more reliably if the above define is too small. 2005-09-23 Ralf Wildenhues * tests/link-order.at [ aix* ]: skip path syntax grep. 2005-09-23 Peter Ekberg * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Fix awk script to be a single line so that the cache variable isn't multiline. 2005-09-23 Eric Blake (tiny change) * libltdl/loaders/loadlibrary.c (vm_open): Silence gcc warnings. [__CYGWIN__]: Include for prototype. 2005-09-22 Gary V. Vaughan * bootstrap: Don't clobber the working copy metadata in ./{arch}/libtool during bootstrap. 2005-09-22 Peter Ekberg , Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Filter user supplied symfile to tag relevant symbols as data symbols. Fixes segfault in stresstest.at on Cygwin and makes the test pass. 2005-09-22 Peter Ekberg * tests/link-order.test: Clean up the uninstalled libraries before linking the test executables so that they don't pick up the dlls from the current dir on Cygwin and MinGW. 2005-09-22 Tim Rice * libltdl/m4/libtool.m4 (LT_PATH_NM, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS): Add missing `;;' after case list. 2005-09-22 Peter Ekberg , Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS, _LT_COMPILER_PIC) (_LT_LINKER_SHLIBS): Require _LT_TAG_COMPILER to make sure that $compiler is assigned. Fixes crippled configure output. 2005-09-21 Peter Ekberg * libltdl/m4/libtool.m4 (LT_PATH_NM): Fix autodetection of dumpbin and also check for "link -dump -symbols" as a synonym for "dumpbin -symbols". * libltdl/config/ltmain.m4sh (func_mode_uninstall): Clean up $dlname as well when cleaning a uninstalled libtool library. Fixes -mode=clean on Cygwin and MinGW to actually remove the dll when cleaning up an uninstalled library. 2005-09-20 Peter Ekberg * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Split up --out-implib option for linker in separate args so that the MSYS path translation can do its magic on the provided path to the import library. Fixes problem in stresstest.at on MinGW. 2005-09-19 Ralf Wildenhues * Makefile.am (ltdldatafiles): Fix installation order to match dependency order. (libltdl/Makefile.in): Use $(srcdir) for non-GNU make. 2005-09-17 Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_mode_link): Allow some ARM gcc ABI flags through. Reported by Andrés Moré . * Makefile.am (all-local): Rebuild libltdl/Makefile.in. * libltdl/m4/ltdl.m4 (LTDL_INIT) : Rename to.. : this, to contain the name of the config header. * Makefile.am : Use it to define LT_CONFIG_H. * HACKING, libltdl/argz.c, libltdl/lt__alloc.c, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h: Adjusted. 2005-09-16 Peter Ekberg * tests/testsuite.at (LT_AT_EXEC_CHECK): Make sure that the exit status of the tested program is propagated as the exit status of the expression fed to AT_CHECK. 2005-09-14 Ralf Wildenhues * libltdl/argz.c : Avoid redefinition warning. * libltdl/ltdl.c (lt_argz_insert): Work around newlib argz_insert bug. * Makefile.am (VERSION_INFO): Bumped revision. Reported by Eric Blake . 2005-09-13 Peter Ekberg , Ralf Wildenhues * libltdl/config/ltmain.m4sh (func_generate_dlsyms): Fix escape expression to actually escape relevant characters from the following grep. Fix Cygwin and MinGW to use the filtered symbol list when exporting from self, and not the symbol filter. * tests/stresstest.at: Export w8, not w8$ 2005-09-12 Ralf Wildenhues Make tagdemo work smoothly with both pre- and ISO C++ compilers, and remove all use of libstdc from other tests. * tests/tagdemo/configure.ac (HAVE_NAMESPACES, HAVE_IOSTREAM): New tests for ISO C++ features. Reimplementation of similar macros from the autoconf archive. * tests/tagdemo/foo.cpp, tests/tagdemo/main.cpp: Adjusted. * tests/am-subdir.at, tests/template.at: Do not use iostream. 2005-09-12 Peter Ekberg , Ralf Wildenhues * tests/testsuite.at (host_os): Pull from `libtool --config'. * tests/stresstest.at [ cygwin, mingw, pw32 ]: Use it to fix setting of `-no-undefined'. 2005-09-12 Ralf Wildenhues * libltdl/m4/ltdl.m4 (LT_WITH_LTDL, LTDL_CONVENIENCE) (LTDL_INSTALLABLE): Use less quoting for expanded LIBLTDL, LTDLINCL. Use m4_default instead of m4_if, to work around AU_ALIAS bug with empty macro arguments. (LTDL_INIT): Likewise. * libltdl/m4/ltoptions.m4 (_LT_WITH_PIC): Likewise. * TODO, HACKING: Updated. 2005-09-10 Gary V. Vaughan * libtoolize.m4sh (TAR): Allow the user to override the tar command. 2005-09-09 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_BOILERPLATE) (_LT_LINKER_BOILERPLATE, _LT_COMPILER_OPTION, _LT_LINKER_OPTION) (_LT_COMPILER_C_O): When comparing expected and actual compiler/ linker output for warnings, weed out both empty lines as well as lines starting with possibly indented `+', to allow for shell debugging with `set -x'. Check the weeded instead of unweeded contents for emptiness. * libltdl/config/ltmain.m4sh (func_mode_link): Actually provide a useful error message. Fixes long-standing shameful user neglection. Reported by Martin Paljak . 2005-09-08 Peter Ekberg * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]: Symbols in "pick any" sections are not global. Use awk, not sed, in the global_symbol_pipe so that keeping track of sections is easier. * doc/libtool.texi (libtool script contents): Update to hint at new findings concerning "pick any" sections. 2005-09-08 Ralf Wildenhues * tests/early-libtool.at (config.status): Use EXEEXT consistently. Reported by Charles Wilson . 2005-09-08 Charles Wilson * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ cygwin, mingw, pw32 ]: Use --enable-auto-image-base instead of a fixed image base address. 2005-09-06 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [ sysv4*uw2*, sysv4.2uw2* ]: Fix my last checkin to really match the more special case before the general case. Reported by Stepan Kasal . 2005-09-06 Roger Cornelius * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [ sysv5OpenUNIX8, sysv5UnixWare7, sysv5uw[78], unixware7, sysv4*uw2* ]: Match special cases before general case. 2005-09-05 Ralf Wildenhues * bootstrap: another AIX sed fix. * Makefile.am (TESTS_ENVIRONMENT): Export SHELL. * bootstrap (SHELL): Set to $CONFIG_SHELL or /bin/sh. Name `make' targets in portable fashion. Work around `rm' warnings. Unconditionally create fake `libtoolize'. Reported by Patrick Welche . * Makefile.am (doc/notes.txt): Use --no-headers instead of --plaintext for makeinfo. Reported by Peter O'Gorman . 2005-09-04 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ aix ] : Work around shell expansion issue in func_show_eval by separating `$' and field number; drop then unnecessary m4 quoting. 2005-09-02 Gary V. Vaughan AC_BEFORE only works if declarations are made inside the macro cited as the first argument: * libltdl/m4/libtool.m4 (LT_OUTPUT): Move AC_BEFORE decls... (LT_INIT, LT_LANG): ...to the macro that has to come first. 2005-09-01 Peter O'Gorman * libltdl/m4/libtool.m4 (old_postintall_cmds): chmod 644 before running ranlib. Reported by Gerald Pfeifer 2005-09-01 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_PROG_CXX, _LT_PROG_F77) (_LT_PROG_FC): aclocal-1.4 compatibility workaround. * bootstrap: Do not use nonportable -path. Reported by Ralf Menzel . 2005-09-01 Gary V. Vaughan * doc/libtool.texi (LT_INIT): Fix a logical error with documentation of --with-pic vs --without-pic. 2005-09-01 Ralf Wildenhues * libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): m4_defun this.. * libltdl/m4/libtool.m4 (LT_INIT): so it can be m4_require'd from here with user-supplied options. Fixes output macro ordering issue. 2005-09-01 Gary V. Vaughan * libtoolize.m4sh (func_scan_files): When searching for evidence of Autotools in aclocal.m4, be careful not to trip over requires and defuns. 2005-08-31 Gary V. Vaughan , Ralf Wildenhues * libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): Move option macro dipatch.. (_LT_SET_OPTION): here. Do not fail but warn on unknown options. (_LT_UNLESS_OPTIONS(win32-dll), LT_OPTION_DEFINE(dlopen)): Add whitespace. Reported by Robert Ögren and Akim Demaille . 2005-08-31 Ralf Wildenhues * libltdl/m4/libtool.m4 [ solaris CC ]: Document issue with C++ standard libraries. 2005-08-30 Gary V. Vaughan * libltdl/m4/ltoptions.m4 (AC_LIBTOOL_PIC_MODE): Renamed... (AC_LIBTOOL_PICMODE): ...this in the backwards compatibility code. There never was an AC_LIBTOOL_PIC_MODE macro. * libltdl/m4/libtool.m4 (_LT_SETUP): Remove duplicate --enable-libtool-lock declaration. 2005-08-29 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_PATH_TOOL_PREFIX, _LT_SYS_HIDDEN_LIBDEPS, _LT_DECL_EGREP): Fix typos. * Makefile.am: Install libltdl data files in correct order. Use pre-defined programs for installation; use NORMAL_INSTALL and NORMAL_UNINSTALL. Really fix ownership and timestamp problems. Fix typo in uninstallation of aclocal files. Reported by Peter Breitenlohner and Charles Wilson . 2005-08-29 Gary V. Vaughan , Ralf Wildenhues Allow for portability with Autoconf 2.59, Automake 1.9.6, which lack AC_CONFIG_LIBOBJ_DIR support. * bootstrap: Unless environment variable WORKING_LIBOBJS_SUPPORT is set to true aka `:', symlink .. * argz.c lt__dirent.c lt__strl.c: .. these from the copies in libltdl. * configure.ac (SUBDIR_LIBOBJS): Automake conditional, set if bootstrap didn't make the extra copies of libobj sources in top srcdir... * Makefile.am: Add these to EXTRA_DIST if SUBDIR_OBJS is not set, as well as the originals in libltdl/, in order to work when bootstrapped both with old and newer Automake/Autoconf. 2005-08-29 Gary V. Vaughan * libltdl/m4/ltdl.m4 (LTDL_CONVENIENCE): Fix the comment to not pretend that LIBLTDL and LTDLINCL are not AC_SUBSTed here. 2005-08-29 Gary V. Vaughan Some macros had relied on accidentally correct ordering in order for $MV to be defined before use. Factor out setting of some common file commands and m4_require it before use: * libltdl/m4/libtool.m4 (_LT_FILEUTILS_DEFAULTS): Allow user to override some common file commands at configure time. (_LT_SETUP, _LT_CONFIG, _LT_COMPILER_OPTION, _LT_LINKER_OPTION) (_LT_COMPILER_C_O, _LT_COMPILER_FILE_LOCKS) (_LT_SYS_DYNAMIC_LINKER, _LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) (_LT_SYS_HIDDEN_DEPLIBS): m4_require it to ensure the commands are defined before they are called. 2005-08-28 Gary V. Vaughan * libltdl/m4/libtool.m4, libltdl/m4/ltdl.m4: AU_DEFUN doesn't pass arguments. Use AU_ALIAS instead! 2005-08-28 Ralf Wildenhues , Gary V. Vaughan * libltdl/config/ltmain.m4sh (func_lalib_unsafe_p) [osf]: Save file descriptor to original STDIN, and restore after redirection. Fixes memory corruption with Tru64 and OSF sh. Reported by Nicolas Joly . 2005-08-26 Ralf Wildenhues , Peter Ekberg * tests/early-libtool.at: Fix goofed up make rules in previous commit. * tests/inherited_flags.at: Weaken for MSVC. * tests/early-libtool.at, tests/template.at: Fix for compiler that do not understand '-c -o'. 2005-08-26 Ralf Wildenhues * tests/standalone.at, tests/template.at: Do not compare output because of EOL issues. Resolve warnings, make cross- compilation aware. Reported by Peter Ekberg . * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_LINKER_SHLIBS): Double-quote unsafe tag variable descriptions: they are literals. 2005-08-25 Peter Ekberg , Ralf Wildenhues * tests/standalone.at: (without autotools): Add $(CFLAGS) to LTCOMPILE and LTLINK. Separate compiling and linking. Remove compiling flags from link. Add --tag. Add -no-undefined flag. 2005-08-24 Bruno Haible * libltdl/config/ltmain.sh (func_mode_install): Try "ln -s -f" and "rm -f && ln -s" to make a symlink for a shared library: the former is needed for libraries `ln' depends on, the latter for Solaris /bin/ln. Reported by Nelson H. F. Beebe . * libltdl/config/ltmain.sh (cwrappersource): return 127 if exec failed. 2005-08-24 Ralf Wildenhues * libltdl/m4/libtool.m4 (_LT_COMPILER_C_O): Send chmod warning to log. * tests/defs.m4sh (m4dir, auxdir, scripts): Fix for source tree reorganization. * tests/sh.test: Adjust. Also barf on sed diagnostics so this test will not fail again silently. * libltdl/m4/ltdl.m4 (LT_SYS_SYMBOL_USCORE): Use _LT_EOF, not EOF. * tests/fcdemo/Makefile.am (suffix rules): Explicitly add $(FCFLAGS_f90) so the tests can pass on AIX. 2005-08-24 Peter O'Gorman * libltdl/config/ltmain.m4sh (inherited_linker_flags): Work when output is an application too. Reported by Christopher Egger 2005-08-23 Stepan Kasal , Ralf Wildenhues * libltdl/m4/ltdl.m4 (LTDL_INIT): Use AH_HEADER if defined. Compute CONFIG_H only before creating config.status. Reported by Peter Ekberg . 2005-08-23 Ralf Wildenhues * Makefile.maint (web-manual): Fix $(LN_S) to use absolute path. Fix creating the manual for VPATH build. * bootstrap: Fix missing replace config -> $auxdir. ltmain.m4sh is prerequisite to ltmain.sh. Improve warning message. 2005-08-22 Gary V. Vaughan Reorganise the libtool tree to create a bootstrapped libltdl for installation to the libtoolize master tree, so that libltdl is useable even in the extreme case of when automake and autoconf are not installed on the developers machine. Part of this change requires some duplication of rules between Makefile.am (which builds libltdl for this distribution) and libltdl/Makefile.am (which is used by projects that libltoolize --ltdl --copy), so libtool now really does use a single toplevel Makefile.am, and we generate libltdl/Makefile.am from that: * m4, config: Moved from here... * libltdl/m4, libltdl/config: ...to here, to reduce the amount of kludging needed in bootstrap for autoreconf to run. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to compensate. * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/fcdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto. * libltdl/m4/ltdl.m4: Increment serial number. (LTDL_INIT): Accept an optional directory argument to prefix each of the LD_DLLOADERS locations. Default to empty for backwards compatibility. * Makefile.maint: Adjust to compensate. * configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust. (AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS from in a subdirectory from the amalgamated Makefile.am. (AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects. (AC_CONFIG_FILES): Remove libltdl/Makefile.am. * libltdl/Makefile.am: Removed from repository, and merged into Makefile.am as we now generate it... * Makefile.am (libltdl/Makefile.am): ...from here, by extracting the merged rules, and tweaking paths to accomodate the difference in directory from Makefile.am to libltdl/Makefile.am. (nobase_dist_pkgdata_DATA): Automake generated installation rules change timestamps of installed files, so renamed this... (configauxfiles): ...to this... (libtoolize): ...substitute it... (install-data-local): ...install manually, preserving timestamps... (install-data-hook): ...and set execute bit as appropriate. (uninstall-hook): Not forgetting to remove them at uninstall. (libltdl/Makefile.in): New rule. Called from... * bootstrap: ...here to avoid relying on config.status at bootstrap time. (auxdir, m4dir): Extract from configure.ac for ease of future maintenance. Adjust all references. (reconfdirs): Call autoreconf for libltdl too -- even though we don't use it for the build, libltdl/configure and friends are installed with `libtoolize --ltdl --copy'. * libtoolize.m4sh: Add files from the installed config master tree to libtoolize --ltdl project subdirectory. Diagnose duplicated files when --ltdl is used in an autotooled project. It's perfectly fine to run `libtoolize --ltdl --copy' in a tree that has no configure.ac or configure.in; we want libltdl to be useful even to projects that don't use autotools themselves. (libtoolize_flags): Removed. Changed all callers. (func_massage_pkgconfig_files): New function. * tests/standalone.at: New tests for using libltdl without supporting configury in the parent project. * tests/testsuite.at: Run them! * NEWS: Updated. 2005-08-22 Peter Ekberg * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]: Add forgotten end bracket. * doc/libtool.texi: Shorten the lines describing the output from MS dumpbin, and align the columns. * m4/libtool.m4: Bump serial number. (LT_PATH_NM): If nm is not found on the path, look for dumpbin. Then check if $NM responds as dumpbin would and if not, assume the name lister is BSD nm compatible. (_LT_CMD_GLOBAL_SYMBOLS): If the name lister uses the dumpbin interface, adjust the test to find a working global_symbol_pipe. * doc/libtool.texi: Document $NM to possibly be MS dumpbin compatible, and also document the format of the relevant output from MS dumpbin. 2005-08-21 Gary V. Vaughan * libltdl/Makefile.am: revert mistaken commit. * tests/template.at [darwin]: Some of these tests result in unresolved symbols on darwin, so don't run those test on that host! 2005-08-18 Gary V. Vaughan , Ralf Wildenhues * m4/libtool.m4 (LT_OUTPUT): New macro to generate libtool before config.status. (_LT_CONFIG_COMMANDS): If LT_OUTPUT has been invoked, then generate code in config.status to call config.lt instead of generating libtool directly. * doc/libtool.texi (LT_INIT): Document LT_OUTPUT. * tests/early-libtool.at: New test. * Makefile.am (TESTSUITE_AT): Updated. * tests/testsuite.at: Updated. Define defaults for $ACLOCAL, $AUTOCONF. 2005-08-18 Ralf Wildenhues * TODO: Actually updated now. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ freebsd ]: Do not assume `aout' for modern FreeBSD by absence of deprecated `objformat'. * m4/libtool.m4 [sun, CC] (_LT_LANG_CXX_CONFIG): Move postdeps override .. (_LT_SYS_HIDDEN_LIBDEPS): ..here. * TODO: Updated. 2005-08-18 Stepan Kasal * config/general.m4sh (SP2NL, NL2SP): Simplify. 2005-08-17 Gary V. Vaughan * m4/ltdl.m4 (LTDL_INIT): Fix mismatched parens. 2005-08-13 Ralf Wildenhues * tests/inherited_flags.at: Store intermediate libtool output for better debugging. * tests/link-order.at: Add -no-undefined to LDFLAGS. * tests/convenience.at, tests/template.at: Change suffix of C++ files to .cpp, for compatibility with MSVC. Reported by Peter Ekberg . 2005-08-12 Jeremie LE HEN , Ralf Wildenhues * doc/libtool.texi (Creating object files, Linking libraries): Update description of library object (.lo) and libtoo library (.la) files. (all over): Replace MODE with --mode=MODE in examples. 2005-08-12 Ralf Wildenhues * config/ltmain.m4sh (func_source): New function. (func_mode_execute, func_mode_install, func_mode_link): Use it. Do not append a dot to a file name to source, it breaks on cygwin managed mounts and is not necessary anywhere. Reported by Eric Blake . * config/ltmain.m4sh (func_execute_cmds): New function. (func_mode_finish, func_mode_install, func_mode_link) (func_mode_uninstall): Use it. * tests/defs.m4sh (func_configure): Rename to .. (func_configure_nofail): this, call from old. * tests/fcdemo-conf.test, tests/fcdemo-shared.test, tests/fcdemo-static.test: Use. Do not fail gratuitously but SKIP on compilers that look like they could be Fortran 77-only. Reported by Patrick Welche . * config/ltmain.m4sh (mode): Do not initialize, for nicer error messages. 2005-08-10 Peter Ekberg * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Set ac_ext to cpp, not cc. 2005-08-08 Ralf Wildenhues * config/ltmain.m4sh (inherited_linker_flags): Backed out broken patch. 2005-08-08 Peter O'Gorman * config/ltmain.m4sh (inherited_linker_flags): Work when output is an application too. Reported by Christopher Egger 2005-08-08 Ralf Wildenhues * m4/libtool.m4 (_LT_PROG_FC, _LT_LANG_FC_CONFIG): New macros for modern Fortran. (LT_LANG, _LT_LANG_DEFAULT_CONFIG, _LT_SYS_DYNAMIC_LINKER, _LT_SYS_HIDDEN_LIBDEPS): Adjusted. * tests/fcdemo-conf.test, tests/fcdemo-exec.test, tests/fcdemo-make.test, tests/fcdemo-shared.test, tests/fcdemo-static.test, tests/fcdemo/Makefile.am, tests/fcdemo/README, tests/fcdemo/configure.ac, tests/fcdemo/cprogram.c, tests/fcdemo/foo.h, tests/fcdemo/fooc.c, tests/fcdemo/foof.f90, tests/fcdemo/foof2.f90, tests/fcdemo/foof3.f90, tests/fcdemo/fprogram.f90: New tests for Fortran. * tests/convenience.at: Extended. * Makefile.am, configure.ac: Adjusted. * NEWS: Updated. * AUTHORS, HACKING: Updated. 2005-08-05 Albert Chin-A-Young * config/ltmain.m4sh (func_mode_link): Ignore errors from expr when determining if piece-wise linking should be done. 2005-08-04 Ralf Wildenhues * config/ltmain.m4sh (func_mode_link) : Add missing bit from Christoph's patch. * m4/libtool.m4 (_LT_LINKER_HARDCODE_LIBPATH, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG): Comment typos. 2005-08-04 Christoph Egger * config/ltmain.m4sh (func_mode_link) : Change basename() to base_name() and have it return a pointer to const, fix compilation warnings. 2005-07-30 Peter Ekberg * m4/libtool.m4 (_LT_PROG_F77): Set it up so that saying F77=no to configure disables the fortran tests in the testsuite. 2005-07-29 Richard Moseley * m4/ltdl.m4 (LTDL_INIT): Handle in addition the new name for AC_LIST_HEADERS which is _AC_LIST_TAGS. 2005-07-28 Peter Ekberg * libltdl/Makefile.am: Make the LTDLOPEN define controllable from the configure script. * m4/ltdl.m4 (LTDL_INIT): Set the LTDLOPEN define according to libname_spec. * tests/mdemo-dryrun.test: ls -l in MSYS sometimes shows year, not time, for really fresh files. Add sleep 1 calls at strategic places. Makes the test pass for MinGW. * m4/libtool.m4 (_LT_LINKER_OPTION): Fix copy-paste bug, it is the linker that is tested. * tests/demo-noinst-link.test: $make is empty on MSYS, replace with $MAKE. Makes the test pass for MinGW. * config/ltmain.m4sh (func_generate_dlsyms): Properly remove the fake symbol line ": @PROGRAM@ " from the list of exported symbols. * libltdl/loaders/loadlibrary.c (vm_open): Set the error mode so that no dialog is popped up in case the file given to LoadLibrary is not a dll. * config/ltmain.m4sh (func_mode_link) : Make sure skipped_export is set to colon if _some_ cmd of export_symbols_cmds is too long. * libltdl/ltdl.c: The linker is confused by having one definition of lt_libltdlc_LTX_preloaded_symbols tagged with __declspec(dllexport) in ltdl.c and one definition with an initial value in libltdlcS.c. So, just say extern in ltdl.c. Fixes the mdemo-exec.test for MinGW. * config/ltmain.m4sh (func_mode_link) : Zap duplicate message "creating reloadable object files..." 2005-07-23 Peter O'Gorman * m4/libtool.m4 (CXX, archive_cmds) [sun]: Add -lCstd, -lCrun and -lc for c++ builds with Sun C++ and Centerline C++.. Reported by Albert Chin-A-Young 2005-07-11 Ralf Wildenhues * m4/libtool.m4 (_LT_CHECK_XSI_SHELL): Fix bogus merge. Reported by Patrick Welche . 2005-07-08 Ralf Wildenhues * libltdl/Makefile.am (libltdl_la_DEPENDENCIES): Depend on $(BUILT_SOURCES) as well, so that argz.h gets created through `make libltdlc.la'. Reported by Sven Verdoolaege . 2005-07-08 Peter Breitenlohner * Makefile.am (install-data-local): Have root own of installed files (but do not fail, for user installs). 2005-07-08 Bruno Haible * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [cygwin,mingw,pw32]: Make DLL executable after installing it. 2005-07-08 Ralf Wildenhues * config/ltmain.m4sh (func_mode_install): Do not assume `-f' needs an argument if the install program is `cp'. Cleanup install mode somewhat. Reported by Juergen Leising . 2005-07-03 Thorsten Glaser * m4/libtool.m4 (_LT_TRY_DLOPEN_SELF): Quieten configure output for corner cases on some BSDs. (LT_CMD_MAX_LEN): Another comment cleanup. * config/ltmain.m4sh (func_extract_archives, func_mode_install), m4/libtool.m4 (_LT_SETUP, _LT_SYS_DYNAMIC_LINKER, LT_PATH_LD) (_LT_PATH_LD_GNU, _LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Comment language, indentation, and backquote cleanup. * THANKS: Updated. 2005-07-02 Peter O'Gorman * tests/inherited_flags.at: Use -no-undefined. Reported by Chris Oxenreider 2005-07-02 Ralf Wildenhues * config/ltmain.m4sh (func_mode_compile, func_mode_link), m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH, _LT_ENABLE_LOCK): Remove some unnecessary quotes. * tests/convenience.at : Fix java test. Reported by Eric Blake . 2005-07-01 Derek R. Price * config/ltmain.m4sh (func_mode_link) : Handle spaces in paths to executed programs. Quote path in error message. 2005-06-29 Ralf Wildenhues * THANKS: Updated. 2005-06-28 Stepan Kasal * clcommit.m4sh: "grep|sed" can be replaced by mere "sed". * m4/libtool.m4 (_LT_LIBTOOL_TAGS): Remove unnnecessary "[]". * m4/lt~obsolete.m4: Use m4_ifndef. 2005-06-27 Stepan Kasal * m4/ltsugar.m4 (lt_combine, _lt_combine): Fix default separator. * m4/ltoptions.m4 (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Replace AC_FOREACH by a combination of m4_foreach/m4_split/m4_normalize. 2005-06-27 Ralf Wildenhues * m4/ltoptions.m4 (_LT_SET_OPTIONS): Remove unnecessary workaround for CVS Automake bug (fixed). Reported by Stepan Kasal . 2005-06-21 Peter O'Gorman * conig/ltmain.m4sh [darwin]: Accept -arch flag. 2005-06-18 Ralf Wildenhues * m4/libtool.m4 (_LT_COMPILER_BOILERPLATE, _LT_LINKER_BOILERPLATE): New macros: save warnings and boilerplate of simple compile/link tests. (_LT_LANG_C_CONFIG, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG) (_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Call. (_LT_COMPILER_OPTION, _LT_LINKER_OPTION, _LT_COMPILER_C_O, ): Fail only if nonempty warnings different from default compile/link. 2005-06-17 Ralf Wildenhues * m4/ltsugar.m4 (lt_car, lt_cdr): New macros, clones of m4_car/m4_cdr with the fixed semantics of Autoconf-2.59c CVS, in order to work with 2.59. (lt_combine): Use it. Reported by Christoph Egger . 2005-06-11 Ralf Menzel , Ralf Wildenhues * m4/ltoptions.m4 (_LT_SET_OPTIONS): Loop options only if nonempty. * m4/ltsugar.m4 (lt_combine): Don't test against empty quotes, test against empty arg. Fixes infinite m4 loop with CVS Autoconf. 2005-06-11 Ralf Wildenhues * m4/libtool.m4 (_LT_COMPILER_OPTION, _LT_LINKER_OPTION): No need for $ECHO here. Fix sed script syntax to be portable. This should now put the pic-flag right after the last $*FLAGS variable again, if any. Necessary for Fortran AC_FC_SRCEXT. 2005-06-09 Ralf Wildenhues * m4/libtool.m4 (_LT_CONFIG_COMMANDS): Remove long lines. 2005-06-06 Ralf Wildenhues * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): PGI also has pgf95. PGI static flag is `-Bstatic'. Remove harmless extra comma from whole_archive output. 2005-06-05 Ralf Wildenhues * config/ltmain.m4sh (func_mode_compile): In order to find out about forbidden characters in output, check with grep after checking func_quote_for_eval result. Also, warn instead of fail. * config/general.m4sh (func_quote_for_eval) (func_quote_for_expand): Revert SunOS sh bug workaround patch from 2004-12-28 as it triggers bugs in the Tru64 5.1B shell. Reported by Albert Chin and Nicolas Joly . 2005-06-01 Olly Betts (tiny change) * libltdl/argz.c (argz_create_sep): Fix typo. 2005-05-31 Peter O'Gorman * config/ltmain.m4sh: Do not add installed static litool libraries to convenience, they are not convenience libraries. Reported by Chen-Mou Cheng 2005-05-16 Ralf Wildenhues * THANKS: Updated. 2005-05-15 Ralf Wildenhues * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [aix]: Fix wrong $ECHO use overlooked in 2005-04-27. Simplify slightly. * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [linux]: PGI: Add $pic_flag to archive_cmds and archive_expsyms_cmds. Bug reported against LAM by Troy Telford . 2005-05-13 Ralf Wildenhues * THANKS: Updated. 2005-05-06 Gary V. Vaughan * libltdl/m4/ltdl.m4 (LT_WITH_LTDL): Propogate ltdl directory. 2005-05-02 Ralf Wildenhues * Makefile.am (stamp-vcl): Use `diff' instead of `cmp'. 2005-04-30 Gary V. Vaughan Revert the parallel installation changes from November last year: * libtoolize.m4sh (pkgdatadir, aclocaldir): Substituted from configure. (func_copy_all_from_path): Removed. No longer used. (func_copy_some_files): Simplify now that nothing is copied from a list of possible directories now. (func_scan_files): Remove directory readability check... (func_nonemptydir_p): ...in favour of a dedicated sanity check function called from the main body. (_lt_pkgvdatadir): Set pkgdatadir and aclocaldir appropriately if this is in the environment. * configure.ac: Tests for `ln' removed. (APIVERSION): Removed. * Makefile.am (pkgvdatadir, nobase_dist_pkgvdata_DATA) (nobase_pkgvdata_DATA): Renamed to... (pkgdatadir, nobase_dist_pkgdata_DATA, aclocalfiles): ...these respectively. (edit): Adjust for new variable names. (install-data-local): Don't bother to remove old macro files that will be overwritten by the installation, and perform a manual installation of $(aclocalfiles) to preserve timestamps. (install-exec-hook): Removed. No need to make versioned links. (uninstall-hook): No need to remove versioned links, but now we need to manually remove the manually installed $(aclocalfiles). * doc/libtool.texi: Remove bogus notes about setting ACLOCAL_AMFLAGS for versioned libtool installations. * NEWS: Remove parallel installation item. 2005-04-29 Ralf Wildenhues * m4/ltdl.m4 (all over): Quote all arguments to AC_DEFINE and AC_DEFINE_UNQUOTED consistently. Reported by Michael Koch , Riccardo Mottola , and Dalibor Topic . * HACKING: Updated. 2005-04-27 Ralf Wildenhues * tests/convenience.at: Actually add. * tests/convenience.at: New. Test convenience archives. * Makefile.am, tests/testsuite.at: Adjust. * tests/testsuite.at: Reorder tests. Suspend AT_TESTED. (PREPARE_TESTS): Define EGREP, host, build, LIBTOOL. (LT_AT_BOOTSTRAP): Fail if autoreconf fails. (LT_AT_EXEC_CHECK): New macro for execution of $build binaries. (LT_AT_TAG): New macro to test tag availability or skip test. * tests/am-subdir.at, tests/duplicate_members.at, tests/inherited_flags.at, tests/link-order.at, tests/stresstest.at, tests/template.at: Adjust. Use LT_AT_TAG, LT_AT_EXEC_CHECK, AT_KEYWORDS. Use compiler/linker flags consistently. * tests/link-order.at: Fix use of AT_DATA, bogus redirection inside AT_CHECK. * tests/stresstest.at: Do not use wildcards/regex in symbol files, they are not portable. Use -no-undefined on win32. Fix to ignore compile/link warnings. * tests/f77demo/foo.h, tests/f77demo/fooc.c, tests/f77demo/cprogram.c, tests/mdemo2/main.c, tests/pdemo/foo.h: Make declarations available. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [linux]: sed 3.02 does not understand \t in regex. Reported by Tim Van Holder . * tests/defs.m4sh (func_configure): Don't run the whole configure script with -x. * config/ltmain.m4sh: Audit use of echo vs $ECHO. Reported by Robert Ögren and others. * TODO: Updated. 2005-04-26 Ralf Wildenhues , Gary V. Vaughan * HACKING, THANKS: Updated. 2005-04-25 David Edelsohn * m4/libtool.m4 (_LT_LINKER_SHLIBS): _LT_TAGDECL(file_list_spec). * config/ltmain.m4sh (func_mode_link): Change $filelist to $output. 2005-04-24 Ralf Wildenhues * m4/libtool.m4 (_LT_CC_BASENAME): Ignore `compile'. 2005-04-23 Ralf Wildenhues * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [solaris]: Update wl for Sun Studio f77/f90/f95. Fix whole_archive_flag_spec for cc and f77/f90/f95 to prevent reordering in case we link with $CC. * m4/libtool.m4: Audit use of echo vs $ECHO. * TODO: Update. Reported by Robert Ögren and others. 2005-04-23 Gary Kumfert * m4/libtool.m4 (_LT_LANG_F77_CONFIG) [aix4, aix5]: Adjust logic to match the C case: Only disable static if not on ia64 nor runtimelinking. 2005-04-22 Ralf Wildenhues (tiny change) * Makefile.am, HACKING: Use lt__cd throughout. 2005-04-22 Gary V. Vaughan The FSF are moving offices today. Changed their contact address in all files from `59 Temple Place, Suite 330, MA 02111-1307' to `51 Franklin Street, Fifth Floor, MA 02110-1301'. 2005-04-19 Ralf Wildenhues * libtoolize.m4sh (func_scan_files, func_serial, func_ltmain_update, func_config_update, func_install_update): Placate AIX sed. 2005-04-19 David Edelsohn * config/ltmain.m4sh (func_mode_link): If command exceeds max_cmd_len and file_list_spec exists, write list of input files to temporary file. * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [aix4,aix5]: Define file_list_spec. 2005-04-18 Ralf Wildenhues * tests/demo-hardcode.test: Fix typo. 2005-04-17 Alexandre Oliva , Peter O'Gorman * config/ltmain.m4sh: Don't add files with the same base name to an archive; rename duplicates instead. (func_extract_an_archive): Remove section to deal with duplicate base names in an archive. * tests/functests.at: remove. * tests/duplicate_members.at: new test. * tests/testsuite.at: Add new test, remove old. * Makefile.am: Add new test, remove old. 2005-04-17 Ralf Wildenhues * tests/demo-hardcode.test [solaris]: Use dumpstabs if available, to avoid false failure caused by debug section which contains command line (Solaris cc). Reported by Ralf Menzel . 2005-04-17 Ralf Wildenhues (tiny change) * libtoolize.m4sh (func_copy_cb): Fix syntax typo. 2005-04-15 Maciej W. Rozycki * m4/libtool.m4 (_LT_LANG_GCJ_CONFIG): Add old_archive_cmds definition. 2005-04-15 Ralf Wildenhues * m4/libtool.m4 (_LT_CC_BASENAME): New macro to figure out $cc_basename. Skip ccache, distcc, purify, cmdline options, `$host_alias-' prefix. (_LT_SETUP, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG) (_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Use. * NEWS, TODO: Update. 2005-04-15 Gary V. Vaughan * libltdl/configure.ac (AC_OUTPUT): loaders/Makefile is no longer used. * Makefile.am (lt__cd, CD_TESTDIR): New make macros to work around problems with CDPATH in some shells. (check-local, installcheck-local, clean-local): Use them. 2005-04-14 Ralf Wildenhues (tiny change) * bootstrap: Define srcdir for making `commit'. 2005-04-14 Alexandre Oliva , Ralf Wildenhues * config/ltmain.m4sh (link mode): Add to tmp_libs paths for libtool dep libs in reverse order as well. * Makefile.am, tests/testsuite.at, tests/link-order.at: New test. 2005-04-13 Gary V. Vaughan Since the bootstrap process requires that several of the rules for files generated in doc and tests already lived in $top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles, this changeset consolidates almost everything into the top Makefile.am, simplifying things considerably: * doc/Makefile.am, tests/Makefile.am: Removed. All rules moved... * Makefile.am: ...to here and adjusted to run from $top_builddir. Some reformatting to group rules and declarations by purpose, and simplify with respect to removing much of the make recursion. Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'. `defs.in' and `defs.m4sh' are in directory `tests'. (uninstall-hook): Don't forget to uninstall libtoolize's libltdl source tree. * bootstrap: Simplified dirty makefile management, and bootstrap file creation in light of having only a single pertinent Makefile. * configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to compensate. (DIST_MAKEFILE_LIST): Adjust. (AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile. * tests/defs.m4sh (LIBTOOL, scripts): Adjust paths. * tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/cdemo-undef.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/objectlist.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test, tests/tagdemo-undef.test, tests/tagtrace.test (func_cd, func_require): Adjust paths. 2005-04-12 Ralf Wildenhues * config/general.m4sh, libtool.m4 (_LT_SETUP), tests/defs.m4sh, tests/functests.at: Fix definition of $Xsed. 2005-04-07 Ralf Wildenhues Improved Portland support: prelinking of C++ templates and whole_archive. * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [linux]: Reinstate formatted whole_archive_flag_spec for PGI compilers. * config/ltmain.m4sh (func_mode_link), m4/libtool.m4 (_LT_LINKER_SHLIBS): New tag prelink_cmds, to be executed before linking a program. (_LT_LANG_CXX_CONFIG) [linux]: Use for pgCC. (_LT_COMPILER_C_O): conftest might be nonempty, clean up more thoroughly. * tests/testsuite.at (LT_AT_BOOTSTRAP): Temporary fix for testing in-tree libtoolize. * m4/libtool.m4 (_LT_CONFIG_COMMANDS): Only call sed if necessary while quoting all libtool variables. Reported by Robert Ögren . 2005-04-05 Ralf Wildenhues * tests/Makefile.am: Typo. 2005-04-04 Ralf Wildenhues * notes.texi: Platform-specific configuration notes. * doc/libtool.texi: Include as section. * bootstrap, doc/Makefile.am: build also as notes.txt and distribute. 2005-04-04 Gary V. Vaughan Under certain circumstances, not all of the macro files were copied into the destination directory. This changeset fixes that bug: * libtoolize.m4sh (func_serial_update): Renamed local variable `my_update_p' to `my_serial_update_p', and initialise it correctly even when the destination file is not yet there. Reported by Ralf Wildenhues 2005-04-04 Gary V. Vaughan * tests/libtoolize.at: New tests for basic libtoolize functionality and reporting. * tests/testsuite.at: Call them. * tests/Makefile.am: Distribute them. * libtoolize.m4sh (pkgvdatadir): Renamed from this... (_lt_pkgvdatadir): ...to this. * tests/testsuite.at (LT_AT_LIBTOOLIZE): The `-I' option is no longer supported by libtoolize. Set _lt_pkgvdatadir in the environment of the invocation instead. 2005-04-04 Ralf Wildenhues * tests/template.at: New Autotest tests for C++ with templates. First test provided by Markus Christen . * tests/Makefile.am, tests/testsuite.at: Use and distribute. 2005-04-04 Gary V. Vaughan * libtoolize.m4sh (func_serial_update): Replace missing destination serial calculation line, presumably lost due to a bad merge. * libltdl/loaders/Makefile.am: Removed actually. 2005-04-04 Gary V. Vaughan Getting the value of ltdldatafiles from a submake was not portable, and had problems with GNU make-3.80 at least. This changeset pulls the installation rules for libtoolize's copy of the libltdl sources out of libltdl/Makefile.am so that ltdldatafiles is defined in the same Makefile that uses it. Also, this makes a start at cleaning up libltdl/Makefile.am so that it is useful in a package that uses `libtoolize --ltdl': * libltdl/loaders/Makefile.am: Removed entirely. * libltdl/Makefile.am (dlopen.la, dld_link.la, dyld.la) (load_add_on.la, loadlibrary.la, shl_load.la): All built from here now that the loaders submake has gone. (show-ltdldatafiles): Removed. No longer required. (ltdldatadir, ltdldatafiles, install-local): Moved from here... * Makefile.am (ltdldatadir, ltdldatafiles, install-local): ..to here. (libtoolize): Substitute $(ltdldatafiles) directly without calling make to get the value from libltdl/Makefile. 2005-04-01 Gary V. Vaughan * Makefile.am (libtoolize): Substitute $(nobase_pkgvdata_DATA). pkgvmacro_DATA is no longer set in the makefile. * libtoolize.m4sh (func_massage_pkgvmacro_DATA): Use it and, for consistency, renamed from this... (func_massage_nobase_pkgvdata_DATA): ...to this. Adjust all callers. 2005-04-01 Gary V. Vaughan Fix problems with serial comparison sed scripts, and factor out common code from similar serial comparison functions: * libtoolize.m4sh (func_keyword_update): Common code factored out of func_ltmain_update and func_config_update. (func_ltmain_update, func_config_update): Adjust, and fix sed expressions to not use unportable ? modifier. (func_install_update): New serial number based file updater keyed off 'scriptversion' variable in install-sh. Adjust all callers. 2005-04-01 Gary V. Vaughan Most of the hair introduced ostensibly to enable testing of uninstalled libtoolize isn't necessary if we allow overriding of the libtool master copy directory: * configure.ac (pkvmacrodir): No need to substitute this. * Makefile.am (edit): No need to substitute pkgvmacrodir. (dist_pkgvdata_DATA): Use nobase_ prefix so that these files are installed to $(pkgvdatadir)/config. (pkgvmacro_DATA): Renamed to... (nobase_pkgvdata_DATA): ...this, so that files are installed to $(pkgvdatadir)/m4. (install-data-hook): Adjust. * libtoolize.m4sh: Remove -I processing. (func_filename_path_search): No longer required without -I. Adjust all callers. (pkgvltdldirs, pkgvmacrodirs): Deleted. (pkgvdatadir): Allow overriding from the environment so that we can write tests for uninstalled libtoolize. (func_serial_update, func_ltmain_update, func_config_update): Rename srcdirs parameter to srcdir, and don't call the path_search function anymore. Adjust all callers. (--install): Don't blindly copy all config files. 2005-04-01 Mike Stump * m4/libtool.m4 (LT_CMD_MAX_LEN) [netbsd, freebsd, openbsd darwin, dragonfly]: Use 3/4 of argmax, instead of 1/4. 2005-03-28 Ralf Wildenhues * m4/libtool.m4 (_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Set $cc_basename. * HACKING: echo vs $ECHO. 2005-03-28 Ralf Wildenhues (tiny change) * doc/libtool.texi: Minor formatting cleanups. 2005-03-24 Gary V. Vaughan * libtoolize.m4sh: Propogate --debug flag to sub-libtoolizes. * libtoolize.m4sh: Fix a typo, s/pkgvltdldirs/pkgvdatadirs/. When using -I to test an uninstalled libtoolize, we need to add the config subdirectory to the search path so that ltmain.sh can be found in the source tree. * libtoolize.m4sh (func_copy_some_files): IFS needs to be set to path delimiter for all inner loop iterations. Once a matching file has been copied, no need to keep searching the path for another -- move on to the next file! * libtoolize.m4sh: For verbose mode, explain why macro files are not installed without an AC_CONFIG_MACRO_DIR declaration. 2005-03-24 Gary V. Vaughan As a prerequisite for being able to test an uninstalled libtoolize for copying files correctly from the source tree, we must know exactly which files should be copied by the --ltdl option to avoid accidentally picking up compilation objects and other noise when $builddir == $srcdir: * libltdl/loaders/Makefile.am (ltdldatadir, ltdldatafiles) (install-data-local): Removed... * libltdl/Makefile.am (ltdldatafiles): ...and consolidated here. (show-ltdldatafiles): New rule... * Makefile.am (ltdldatafiles, libtoolize): ...used to substitute exactly which files are installed by libtoolize --ltdl. (edit): Move pkgvmacro_DATA substitution expression... (libtoolize): ...to here. * libtoolize.m4sh: Use func_copy_some_files() instead of func_copy_all_from_path() to copy the --ltdl option installed files. (pkgvltdldirs): New path variable to search for files installed by --ltdl option. (func_massage_pkgvltdl_files): New function to calculate the list of ltdl installation files. 2005-03-22 Ralf Wildenhues (tiny change) * m4/libtool.m4, m4/ltdl.m4: Indentation and quoting cleanup. 2005-03-22 Ralf Wildenhues * m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Use ${wlarc} and set to empty when using $LD for linking. Fixes regression introduced in 2004-11-17. Reported by Ralf Menzel and Пухальский Юрий Андреевич . 2005-03-21 Gary V. Vaughan , Ralf Wildenhues * m4/libtool.m4 (_LT_SETUP, _LT_LANG_CXX_CONFIG) (_LT_LANG_F77_CONFIG): For matching compiler names -- Pick only first word, allow leading white space. * tests/sh.test: ..and test for missing `*' at end of patterns. 2005-03-21 Ralf Wildenhues * TODO: Update. 2005-03-20 Peter Ekberg * m4/libtool.m4 (_LT_LINKER_SHLIBS) [irix5, irix6, nonstopux]: Test if it is possible to use the -exports_file linker option on irix with gcc, as the gcc specs file may include a -hidden_symbol option that is clashing with the -exports_file option. See this gcc bugzilla entry for further details: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15288 * THANKS: Update. 2005-03-19 Ralf Wildenhues * tests/demo-nopic.test: Enhance status output noted by Tom Burger . 2005-03-18 Ralf Wildenhues * config/ltmain.m4sh, tests/defs.m4sh: Typos. 2005-03-18 Peter O'Gorman , Ralf Wildenhues * m4/libtool.m4: The compiler can be a program name with args, so always check cc_basename against compiler name and a wildcard. Also, drop unnecessary quotes in `case' argument. 2005-03-16 Ralf Wildenhues * Makefile.am: tests/defs.in depends on config/general.m4sh. * config/general.m4sh: unconditionally set IFS, and set it to the one true right sequence: space, tab, newline. * m4/libtool.m4: remove IFS setting and as_* namespace infringement. * m4/libtool.m4 (_LT_CONFIG): Reset IFS to fix failure with ash. * configure.ac, libltdl/configure.ac: s/##/dnl/ for comments that are meaningless in configure. Reported by Alexandre Duret-Lutz . 2005-03-15 Ralf Wildenhues * libltdl/configure.ac: Update version; require Autoconf >= 2.59. * bootstrap: Allow to override tools. 2005-03-15 Gary V. Vaughan * libtoolize.m4sh (func_massage_pkgvmacro_DATA): New function to calculate the macro filenames to be copied by libtoolize. * Makefile.am (edit): Substitute pkgvmacro_DATA. * bootstrap: Need to generate tests/package.m4 from Makefile.am before generating tests/testsuite from tests/Makefile.am, or else bootstrap of a fresh checkout fails. 2005-03-14 Ralf Wildenhues * m4/libtool.m4 (_LT_COPYING): Update Copyright year. * m4/libtool.m4 (_LT_LINKER_SHLIBS) [linux]: Remove MAIN_ dependency when creating shared libraries with Portland pgf77. 2005-03-12 Ralf Wildenhues * configure.ac: stamp-vcl is in $top_srcdir, not $top_builddir. 2005-03-12 Per Bothner , Ralf Wildenhues Allow special characters in source file names. Will break unless `-o target' is also given, which must not contain special characters. En passant, fix source file quoting broken for cygwin/MSVC: * config/ltmain.m4sh (func_mode_compile): Use new variable qsrcfile for quoted source file name for compile $command. Fix missing quotes for _c_o lockfile. * NEWS: Update. 2005-03-12 Ralf Wildenhues * config/ltmain.m4sh (func_mode_link): Reword double negation in error message. Reported by Jesper Louis Andersen . * bootstrap: really remove bogus files Makefile tests/Makefile. * doc/libtool.texi: Replace wicked whiches by thats or other better-sounding constructs. 2005-03-11 Ralf Wildenhues (tiny change) * tests/Makefile (clean-local): Ignore testsuite cleanup failures. 2005-03-11 Per Bothner (tiny change) * tests/Makefile (clean-local): Only run the testsuite cleanup if the testsuite has been generated. 2005-03-10 Gary V. Vaughan * libltdl/Makefile.am (install-data-local): Don't force v7 tar format with the `o' flag in create mode. Set the umask to 0 when untarring to avoid copied files taking their mode from the installer's umask. * libltdl/loaders/Makefile.am (install-data-local): Ditto. * libtoolize.m4sh (func_copy_cb): Ditto. Ignore errors from failed `cd' in the tar processes, since we may be running in dryrun mode. Reported by Noah Misch , Bob Friesenhahn 2005-03-10 Ralf Wildenhues * libltdl/Makefile.am: $(builddir) is not defined, replace by `.'. 2005-03-08 Albert Chin-A-Young * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [irix*, osf*]: Output -update_registry information to ${output_objdir} directory, not ${objdir}. ${output_objdir} will work when a project has a single Makefile and performs builds in subdirectories. ${objdir} expects the source in the current directory, breaking single-Makefile builds. 2005-03-08 Ralf Wildenhues * tests/stresstest.at: Remove multiple variable definition. * TODO: Update. * THANKS: Update. 2005-03-02 Gary V. Vaughan * libtoolize.m4sh (func_copy_cb): Use tar chof to avoid symlink attacks. * libltdl/Makefile.am, libltdl/loaders/Makefile.am (install-data-local): Ditto. 2005-02-27 Gary V. Vaughan In branch-2-0 (and in time, others) ltversion.m4 has a dot delimited serial number that didn't used to be processed correctly by libtoolize. This changeset fixes that, and leverages those changes to check versions of ltmain.sh and config.sub, config.guess before overwriting when --force is not given: * libtoolize.m4sh: Don't overwrite pkgaux files with --force unless --install is given too. (func_serial): Fix underquoting in regexp. (func_serial_max): New function to compare serial numbers. (func_serial_update_check): New function factored out of func_serial_update(). (func_serial_update): Bail if SRCFILE is missing. Don't display both 'already up to date' and 'use --force to update' messages for the same file. Use func_serial_max to cope with `.' delimited serial numbers. (func_ltmain_update): Use func_serial_update_check and func_serial_max to do version checking with $package_revision. (func_config_update): Ditto with $timestamp. 2005-02-26 Gary V. Vaughan * libltdl/Makefile.am (install-data-local): cd to $(srcdir) before tarring up the files for installation to $(DESTDIR)$(ltdldatadir). Don't remove the destination directory, since that interacts badly with the multi-Makefile installation. * libltdl/loaders/Makefile.am (install-data-local): Ditto. 2005-02-26 Gary V. Vaughan I assume that it is okay to have undefined symbols in convenience libraries that will be used as modules -- the pic objects are built normally, and are not expected to resolve all their symbols until they are linked into a library; convenience libraries are then rolled using 'ar' and 'ranlib' (or equivalent) which also do not check whether symbols are resolved. We now build each of the loaders as a convenience library module under these assumptions, and link libltdl.la with selected modules, at which time all of the symbols *are* resolved: * TODO: Remove item addressed by this changeset. * libltdl/Makefile.am (lib_LTLIBRARIES): Remove libdlloader.la. (libdlloader_la_SOURCES): Declaration removed. Changed all clients. Source files.. (libltdl_la_SOURCES): ...added back in here. (libdlloader_LDFLAGS, libdlloader_la_LIBADD): Removed. (libltdl_la_LIBADD): Remove libdlloader.la; add $(LTLIBOBJS). * libltdl/loaders/Makefile.am: Removed all references to libdlloader.la. 2005-02-25 Gary V. Vaughan * libtoolize.m4sh (func_copy): Split arguments to func_copy_cb calls across lines so that quote.test doesn't misdiagnose nested quotes. * m4/libtool.m4 (_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Fix some typos -- s/_LT_AC_TAGVAR/_LT_TAGVAR/g. 2005-02-24 Peter O'Gorman * m4/libtool.m4 (_LT_LINKER_SHLIBS): The Portland group's compiler does not pass --whole-archive. Move gnu ld check for the flag to the top so it can be overridden. (_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Unset whole_archive_flag_spec for the portland group's c++ compiler too. Reported by Jeff Squyres 2005-02-23 Gary V. Vaughan * libltdl/Makefile.am (install-data-local): Don't forget about $(DESTDIR). * libltdl/loaders/Makefile.am (install-data-local): Ditto. 2005-02-23 Gary V. Vaughan Preserving the installed timestamps for libltdl sources from `libtoolize --ltdl --copy' is pointless if they are not preserved from the libtool source tree at install time: * libltdl/Makefile.am, libltdl/loaders/Makefile.am (nobase_ltdldata_DATA): Renamed to... (ltdldatafiles): ...this. (install-data-local): New rule to install libltdl tree with tar to preserve timestamps. 2005-02-23 Christoph Egger (tiny change) * config/ltmain.m4sh (func_mode_link): Add -pthread like flags to inherited_linker_flags. 2005-02-22 Gary V. Vaughan * libtoolize.m4sh (func_copy_cb): self.leg->shoot_off() :-/ Let's not redirect stdout to null when sending tar output to a pipe. 2005-02-22 Gary V. Vaughan Using `libtoolize --copy --ltdl' was not preserving timestamps, so parts of the autoconf bootstrap would be rerun spuriously after the files had been copied into the source tree: * libtoolize.m4sh (TAR): New default tar command. (func_copy_cb): Move the core copying internals to here, using $TAR to transfer files if possible when --copy was specified. (func_copy): Adjust to call func_copy_cb. * TODO: Remember to refactor this fix in due course. Reported by Jeff Squyres 2005-02-21 Peter O'Gorman * config/ltmain.m4sh (func_extract_archives) [darwin]: This didn't actually work on a real fat archive, should do now. * tests/functests.at [darwin]: remove darwin fat tests which did not actually work. 2005-02-07 Peter O'Gorman * config/ltmain.m4sh: Add -pthread like flags when linking executables too. Reported by Andreas Schwab 2005-02-04 Ralf Wildenhues * config/ltmain.m4sh (func_mode_link): Allow five digits in version-info. * NEWS: s/Linux/GNU &/. 2005-02-03 Ralf Wildenhues * tests/Makefile.am, tests/testsuite.at, tests/stresstest.at: New test. Stresses several combinations of link flags and path specifications. Uses several data types to test linkage against symbols in all kinds of (e.g., ELF) sections. 2005-02-03 Reid Spencer , Ralf Wildenhues * config/ltmain.m4sh (func_generate_dlsyms): Fix broken subdir path computation, exposed by using `-dlopen self'. Fix broken sed script exposed by additionally using `-export-symbols FILE'. 2005-02-03 Ralf Wildenhues * THANKS: Update. * THANKS: Update. 2005-02-03 Peter O'Gorman * config/ltmain.m4sh [darwin]: Don't add installed libs to temp_rpath when building executables on darwin, or other systems which use hardcode_automatic. It may break our wrapper scripts. 2005-02-02 Ralf Wildenhues * config/getopt.m4sh (func_version, func_usage, func_help): Exit with nonzero status on write failures. * config/ltmain.m4sh (func_mode_help, func_config, func_features): Ditto. * tests/sh.test: Check for preferred function definition layout. 2005-02-01 Ralf Wildenhues * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [pw32, freebsd3.[01], freebsdelf3.[01]]: Fix [] quoting. Should fix various spurious failures. (_LT_LINKER_SHLIBS) [linux with GNU ld < 2.11, aix4.[012]*]: Ditto. (_LT_LANG_CXX_CONFIG) [aix4.[012]*, freebsd[12], solaris2.[0-5]]: Ditto. (_LT_LANG_GCJ_CONFIG): Ditto. * tests/Makefile.am: Add `atconfig' to DISTCLEANFILES. * clcommit.m4sh: Test whether the shell understands `read -r'. Use as `$read_r' if available, so `\' is preserved in commit notices. * HACKING (Editing `.m4sh' Files): Document preferred function header layout. * config/ltmain.m4sh (func_win32_libid, func_infer_tag) (func_generate_dlsyms, func_extract_an_archive) (func_extract_archives): Adjust to fit. 2005-01-31 Ralf Wildenhues * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Unicos 9 sed rejects empty parentheses as in 's/x\(\)/\1/'. (_LT_COMPILER_PIC) [unicos*]: wl=-Wl,. * tests/sh.test: Not all sed's like '/.*\n.*/' (Unicos 9 sed loops endlessly). * tests/quote.test: Match link quoting against `"$wl"', not `-Wl,'. * tests/quote.test: Check for `--no-reexec' in $1 to avoid one reexec. * m4/libtool.m4 (_LT_COMPILER_C_O): _LT_TAGDECL(lt_compiler_c_o), not _LT_DECL, since this is tag-dependent. * config/ltmain.m4sh, m4/libtool.m4: Change `( cmd ) 2>/dev/null' to `{ cmd; } 2>/dev/null', when cmd has no side effects and might be a builtin. Note that it is unspecified whether cmd will run within a subshell (e.g. Bourne shells) or within the current shell (most modern shells). 2005-01-29 Ralf Wildenhues * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [linux]: Update for Intel Compiler icc/icpc/ifort: add -i_dynamic and -nofor_main, if necessary. Simplify logic somewhat. 2005-01-26 Ralf Wildenhues * tests/Makefile.am: also re-export CPP, CXXCPP, and the value of SHELL as CONFIG_SHELL. Reported by Heinz Salzmann . 2005-01-26 Craig Dooley , Ralf Wildenhues * NEWS, m4/libtool.m4, config/ltmain.m4sh [dragonfly]: Add support for DragonFly. 2005-01-26 Ralf Wildenhues * m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Work around pdksh positional parameter expansion bug. 2005-01-25 Ralf Wildenhues * config/ltmain.m4sh: Fix endless loop in cmdline parsing. 2005-01-25 Albert Chin-A-Young * config/ltmain.m4sh (func_mode_link) [irix]: Preserve processor option for SGI Compiler (-r[0-9][0-9]*). 2005-01-24 Ralf Wildenhues * m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Define Bourne and XSI variants of new function func_stripname for stripping literal prefixes and suffixes. * config/ltmain.m4sh (all over): Use func_stripname. * tests/defs.m4sh: Extract $build from $LIBTOOL. (func_configure): Pass --host if $host != $build. (func_exec): Try executing cross-compiled binaries (e.g. i686 -> i386), but SKIP rather than FAIL. * tests/depdemo-relink.test: Do not try to access possibly non- existent files. SKIP rather than FAIL or PASS falsely when cross-compiling. * m4/libtool.m4 (_LT_SETUP) [mingw, cygwin, pw32, os2]: Add _LT_DECLs for host_os, build_alias, build and build_os. host_os and build were used in a few occasions in ltmain.m4sh and affect above-mentioned systems, the others are added for symmetry and in order to be able to detect cross-compiling. 2005-01-23 Ralf Wildenhues * libltdl/Makefile.am: Add $(AM_LDFLAGS) to all per-target variables *_LDFLAGS as per CVS Automake semantic change. 2005-01-16 Peter O'Gorman * config/ltmain.m4sh (func_mode_link): Don't pass through compiler-like thread flags when using $LD to do the linking. Use compiler_flags instead. Reported by Mark_Andrews@isc.org. * m4/libtool.m4 (LT_CMD_MAX_LEN) [osf]: On Tru64 there could be a kernel panic when testing the maximum command line length if exec_disable_arg_limit=1. Don't do the tests to figure it out on *-osf*. Reported by Dr. Hans Ekkehard Plesser 2005-01-14 Guido Draheim (tiny change) * m4/libtool.m4 (AC_PROG_SED): Don't break test loop early. 2005-01-12 Ralf Wildenhues * TODO: Update. * libltdl/ltdl.c: Whitespace cleanup. * config/ltmain.m4sh: New option `--verbose'/`-v' to enable override of `--silent'. Verbose is the default behavior. * doc/libtool.texi (Invoking libtool): Document it. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [linux]: While "parsing" /etc/ld.so.conf, skip comments. Reported by Jens Elkner . 2005-01-10 Ralf Wildenhues * libltdl/libltdl/lt__glibc.h: Move all exported slist symbols into the lt__* namespace. * libltdl/libltdl/lt__private.h, libltdl/libltdl/slist.h: Adjust includes. 2005-01-10 Peter O'Gorman * config/ltmain.m4sh (func_mode_link): Fix inherited_linker_flags so it puts it on the link line when linking shared libraries as well as when linking executables. * tests/inherited_flags.at: test inherited_linker_flags. * tests/Makefile.am: Add test. * tests/testsuite.at: Add test. Reported by: Albert Chin-A-Young 2005-01-10 Ralf Wildenhues * tests/sh.test: After `set dummy [...]', check for `shift' within the same and following line. * config/ltmain.m4sh (func_enable_tag, func_mode_install) (func_mode_link): Sprinkle `shift's all over to conform to this. 2005-01-09 Gary V. Vaughan * HACKING (Editing 'ChangeLog'): Follow the GCS with respect to attributions, and mention how to handle tiny changes. Reported by Alexandre Duret-Lutz . * ChangeLog.2004: Trim 2005 entries. * ChangeLog: Add missing entries. 2005-01-08 Gary V. Vaughan * ChangeLog: Move 2004 change logs from here... * ChangeLog.2004: ...to here. * m4/argz.m4, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4: RMS says, 'I think the [license of autoconf macro files] should be: # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is # preserved.'. * ChangeLog: Reformatting. * HACKING: Fix section numbering. (Editing 'ChangeLog'): New notes on ChangeLog entry format. 2005-01-03 Ralf Wildenhues * tests/am-subdir.at tests/testsuite.at (AT_BOOTSTRAP, AT_LIBTOOLIZE, AT_CHECK_LIBTOOLIZE): Rename to ... (LT_AT_BOOTSTRAP, LT_AT_LIBTOOLIZE, LT_AT_CHECK_LIBTOOLIZE): ...and make use of new names. 2004-12-30 Ralf Wildenhues * config/getopt.m4sh (func_version, func_usage, func_help): Use `$SED -n' instead of `$SED RANGE {..}; d' as AIX sed cannot handle the latter. (func_help): start autoconf and automake in subshells to avoid error messages from ash or Bourne shell if not available. 2004-12-28 Ralf Wildenhues * config/general.m4sh (func_quote_for_eval): Move backslash to beginning of character class, to work around old Bash bug. (func_quote_for_expand): Also test to avoid unnecessary fork. 2004-12-28 Ralf Wildenhues , Gary V. Vaughan * Makefile.am, bootstrap, clcommit.m4sh, libtoolize.m4sh, config/ltmain.m4sh: Replace `set --' with `set dummy [...]; shift' for portability. * tests/sh.test: Test for this. 2004-12-28 Ralf Wildenhues * libtoolize.m4sh, config/ltmain.m4sh (most functions): New variable $opt_debug is either `:' or `set -x' depending on --debug. Execute at most function entries to cater for ksh which resets `-x'. * tests/defs.m4sh: Ditto for VERBOSE=debug. * m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw, pw32]: _LT_TAGVAR missing for `fix_srcfile_path'. [sysv4, sysv5]: _LT_TAGVAR missing for `export_dynamic_flag_spec'. * doc/libtool.texi (all over): Use @option and @command. Some more minor formatting updates, typos. * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Fix variable quoting; allows lt_ECHO to match --fallback-echo again. * config/ltmain.m4sh (func_extract_archives): Not all shells grok `read -r' (unnecessary in this case). Reported by Ralf Menzel . * config/general.m4sh: New variable quote_scanset... (func_quote_for_eval, func_quote_for_expand): ...use it to work around SunOS ksh `case' backslash-escaping bug: protect character class by variable expansion. Reported by Alexander Kurz . * tests/quote.test: Restart under the correct shell (the one $ECHO was computed for). 2004-12-21 Ralf Wildenhues * libltdl/lt__dirent.c: Include lt__private.h. * libltdl/libltdl/lt__private.h: Include lt__strl.h. 2004-12-20 Peter O'Gorman * config/ltmain.m4sh (func_extract_archives) (func_extract_an_archive): On darwin, uniq can not take the flags -cd together, thanks to Ralf for the fix, also ar does not accept N, so we use the fact that ar x libfoo.a foo.o will always extract the first foo.o in the archive and we then delete foo.o from the archive, which will also delete only the first foo.o, then rinse and repeat. Also add markers for the testuite. * m4/libtool.m4 (_LT_CONFIG): Add a marker so that we can use a sed expression to find the shell functions in libtool. * tests/functests.at: Test this feature. * tests/testsuite.at: Add the test. * tests/Makefile.am: Add the test. 2004-12-20 Ralf Wildenhues * libtoolize.m4sh: Install `install-sh' as well, needed for configure. * Makefile.am, Makefile.maint: Install, update it. * NEWS, doc/libtool.texi (Distributing): Document it. Reported by Ross Boylan . * m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Add '${wl}-z ${wl}text' to archive_cmds and archive_expsyms_cmds. I.e., do not allow nopic in shared libraries. * m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Change no_undefined_flag back to ' -z defs'. Problems with linking against libgcc.a will have to be resolved differently. * tests/demo-nopic.test [solaris, sunos]: Skip test. 2004-12-18 Ralf Wildenhues * libtool.m4 [linux] (_LT_COMPILER_PIC, _LT_LANG_CXX_CONFIG): Match icpc* and ecpc* (ia64 version of icpc) instead of only icpc. * libltdl/lt__dirent.c (opendir) [mingw]: Fix write of constant strings past end of buffer. (opendir, readdir): Fix read past end of buffer. 2004-12-17 Ralf Wildenhues * HACKING: Update list of non-Libtool-owned files. 2004-12-17 Akim Demaille * libtoolize.m4sh (func_copy_all_from_path): Remove spurious eval. 2004-12-16 Ralf Wildenhues * libltdl/ltdl.c (trim): Return error rather than do bogus null pointer arithmetic when parsing a malformed .la file. 2004-12-13 Bob Friesenhahn * libltdl/lt__strl.c, libltdl/libltdl/lt__strl.h: New files to emulate strlcat and strlcpy, which support size-bounded string copying and concatenation for improved security. * libltdl/Makefile.am: Optionally build source files libltdl/lt__strl.c and libltdl/libltdl/lt__strl.h. * m4/ltdl.m4 (LTDL_INIT): Add checks for strlcat and strlcpy. 2004-12-13 Albert Chin-A-Young * libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Append -G to link command-line on AIX to honor -brtl on command-line (runtime linking). Already done for IBM C/C++ compilers. 2004-12-12 Patrick Welche * configure.ac: Fix aclocaldir to use ${datadir}, not ${prefix}. Necessary for removal of old libtool.m4 files. 2004-12-10 Ralf Wildenhues * config/ltmain.m4sh (func_extract_archive): Send stderr of $NM to /dev/null. Reported by Martin Waitz . 2004-12-09 Albert Chin-A-Young * config/ltmain.m4sh: Preserve -model [arg] option, used with the Tru64 UNIX C++ compiler. This option selects the layout of C++ classes, name mangling, and exception handling. 2004-12-09 Ralf Wildenhues * config/ltmain.m4sh (func_mode_finish) [solaris]: Fix [] escaping bug. * config/ltmain.m4sh (all over the map): Make use of func_basename and func_dirname in most occasions. * m4/libtool.m4 (_LT_CHECK_XSI_SHELL, _LT_PROG_XSI_SHELLFNS): New macros to detect at `configure' time whether the shell supports some XSI extensions and to copy appropriate versions of new shell functions into `libtool' through `config.status'. Copied functions are Bourne and XSI variants of func_basename, func_dirname (a variant of `dirname' suitable for libtool). (_LT_SETUP): Require _LT_CHECK_XSI_SHELL. (_LT_CONFIG): Use _LT_PROG_XSI_SHELLFNS to insert into `libtool' at marker. * config/ltmain.m4sh: Set marker for insertion of shell functions. * config/general.m4sh (func_quote_for_eval): Only fork if the substitution matches. 2004-12-03 Gary V. Vaughan * TODO: Paste Peter's summary of the TODO thread starting at http://lists.gnu.org/archive/html/libtool/2004-11/msg00130.html. 2004-12-02 Bob Friesenhahn * config/ltmain.m4sh: Remove code which is no longer needed now that temp_rpath only contains fully-qualified elements. 2004-11-30 Ralf Wildenhues * config/general.m4sh: basename sed-subst is anchored and thus does not need the `g' flag. (func_quote_for_eval): Return both the possibly double-quoted backslashified as well as only the backslashified argument. * config/ltmain.m4sh (func_mode_link): Use both return values, to save another sed_quote_subst application per cmdline arg. 2004-11-29 Ralf Wildenhues * config/ltmain.m4sh (func_lalib_p): Update function description. (func_lalib_unsafe_p): New function with same functionality but written without forks; this function is safe to use for cases where the argument either does not exist or is required to be a lalib for correct operation. * NEWS: Mention the fact that stdin is not to be used. * config/ltmain.m4sh (func_mode_execute, func_mode_install) (func_mode_link): Use func_lalib_unsafe_p where appropriate. (func_mode_execute): For the program wrapper, use func_ltwrapper_p instead of func_lalib_p. * m4/libtool.m4 (_LT_LINKER_SHLIBS): Treat linux-dietlibc with the `diet' compiler wrapper (as opposed to the `diet-dyn' wrapper) as a static-only platform. * NEWS: Updated. * libltdl/ltdl.c (trim): Use memcpy instead of strncpy here, to avoid problems with non-conforming strncpy. This is safe here. * m4/ltdl.m4 (LT_LIB_DLLOAD): Define HAVE_LIBDLLOADER if we have a dlloader to preload. * libltdl/ltdl.c (lt_dlinit): Only preload if HAVE_LIBDLLOADER, only declare preloaded_symbols then. Fixes libltdl on static platforms. * NEWS: Updated. 2004-11-29 Gary V. Vaughan Add a search path option to libtoolize so that we can run it from the testsuite without pulling in the last installed macros and ltdl sources: * libtoolize.m4sh: Add a -I option to change libtoolize's search path for macro files, and libltdl master sources. (pkgvdatadir, pkgvmacrodir): Renamed... (pkgvdatadirs, pkgvmacrodirs): ...as they can now contain a ':' delimited list of directories. Adjust all callers. (func_copy_all_from_path): New function to search a ':' delimited search path for a directory to copy. (func_serial_update, func_ltmain_update, func_config_update): New first parameter is a filename to search for. srcdir parameter can now be a ':' delimited search path. Adjust all callers. (func_copy_some_files): Ditto. Put srcfile_spec first in parameter list for consistency with other functions. Adjust all callers. (func_copy_cb): func_copy adapter function to call func_copy correctly from func_copy_some_files. (func_filename_path_search): Return the full path to the first occurence of a named file found in a list of directories. * tests/testsuite.at (LIBTOOLIZE): Wrap exported LIBTOOLIZE initialisation in PREPARE_TESTS diversion to stop it being discarded when testsuite is generated. (AT_LIBTOOLIZE): Factor out libtoolize calls, and set search path to find macros and libltdl source files from the source tree. (AT_CHECK_LIBTOOLIZE): Test it. (AT_BOOTSTRAP): Adjust. Split out call to make. * tests/am-subdir.at: Call make explicitly. (Makefile.am): Fix typo in ACLOCAL_AMFLAGS, 2004-11-28 Ralf Wildenhues * config/ltmain.m4sh (func_mode_link): $dlsymsobj is really $symfileobj, bug exposed only in the static preloading case (symfileobj is created, but not linked into output). * tests/demo-relink.test, tests/depdemo-relink.test: SKIP, don't FAIL if no shared libs available in demo/. Do not try to access nonexistent files. * libltdl/loaders/loadlibrary.c: Remove unneeded file-static variable. 2004-11-27 Bob Friesenhahn * config/ltmain.m4sh: Add fully-qualified paths to temp_rpath rather than unqualified paths in order to avoid possible errors when computing the fully-qualified path later. 2004-11-24 Jeff Squyres * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [linux]: Support for Portland Group (aka "pgi") compilers. * NEWS, THANKS: Updated. 2004-11-24 Gary V. Vaughan * Makefile.am: Move Autotest rules from here... * tests/Makefile.am: ...to here. * bootstrap: Adjust. Also, create temporary Makefile from tests/Makefile.am so that bootstrap can create the Autotest testsuite. 2004-11-23 Gary V. Vaughan If the user's login shell is something crazy like, oooh, /bin/tcsh, trying to execute bourne shell helper scripts with the `$SHELL /path/to/helper $helper_flags' idiom incase the execute bits were lost by say, eeer, cvs, is gonna blow up in our faces. This changeset tries to save these people from their shells^H^H^H^H^H^H^H^H^Hmselves :-> * tests/defs.m4sh (SHELL): Move definition from here... * config/general.m4sh (SHELL): ...to here. 2004-11-23 Gary V. Vaughan The ltdl.h header is the published interface to libltdl, and is thus not installed to $prefix/include/libltdl. It has always been used with `#include ', so move just that one file back to where it was before: * libltdl/libltdl/ltdl.h: Moved from here... * libltdl/ltdl.h: ...to here. * libltdl/Makefile.am: Adjust. 2004-11-23 Peter O'Gorman Do not require that libtoolize --ltdl=/some/path end in libltdl. Move most libltdl headers to libltdl/libltdl to allow `#include ' to always work: * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for includes in the new location. * libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/ltdl.h, libltdl/libltdl/slist.h: Added files, moved from libtdl/. * libltdl/lt__alloc.h, libltdl/lt__dirent.h, libltdl/lt__glibc.h, libltdl/lt__private.h, libltdl/lt_dlloader.h, libltdl/lt_error.h, libltdl/lt_system.h, libltdl/ltdl.h, libltdl/slist.h: Removed, moved to libltdl/libltdl. 2004-11-23 Ralf Wildenhues * doc/libtool.texi (LT_INIT): s/libtool 1.6/libtool 2.0/. (Invoking libtoolize): Fix typo. 2004-11-22 Gary V. Vaughan * config/ltmain.m4sh (func_mode_install): Now that func_mktempdir has been improved, the default directory template is perfectly fine. * doc/libtool.texi (Invoking libtoolize): Improve documentation for use of ACLOCAL_AMFLAGS and AC_CONFIG_MACRO_DIR. 2004-11-22 Ralf Wildenhues * m4/libtool.m4 (_LT_TAG_COMPILER): Document that with_gcc is tag-dependent. * m4/libtool.m4, tests/demo-nopic.test: Undo bogus commit. * config/ltmain.m4sh (func_mode_link), tests/objectlist.test: Make sure the argument to `-objectlist' may contain spaces. 2004-11-19 Gary V. Vaughan * config/m4general.m4sh, config/mailnotify.m4sh, clcommit.m4sh: Updated from cvs-utils--tla--1.0 to allow parallel commits, and use safer tmpfiles. 2004-11-19 Ralf Wildenhues * doc/libtool.texi (Libltdl interface): Typos. * doc/libtool.texi (Libltdl interface): Document public macros LT_PATHSEP_CHAR, LT_DIRSEP_CHAR, use in path descriptions. 2004-11-18 Daniel Reed * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [linux]: Interpret `include' statements in toplevel ld.so.conf file. 2004-11-18 Ralf Wildenhues * m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw, pw32]: tag-protect setting of ld_shlibs. 2004-11-17 Ralf Wildenhues * doc/libtool.texi (Libltdl interface): The path separator is system-dependent. * doc/libtool.texi (Linking static libraries): Typo. * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [aix4/aix5 !ia64]: Set whole_archive_flag_spec to '$convenience' so convenience libs are really added to the link cmdline. 2004-11-17 Mats Rynge * libtool.m4 [linux]: Use only the CC basename in case statment when checking for icc/ecc. Allows for setting CC to the full path to the compiler. * libtool.m4 [solaris]: Added missing 'with linker' flags to -z allextract ... -z defaultextract flags 2004-11-14 Gary V. Vaughan * m4/libtool.m4 (_LT_LINKER_SHLIBS): Typo: s/--rpath/-rpath/g. (_LT_LANG_CXX_CONFIG): Ditto. * configure.ac (APIVERSION): New substituted variable. (pkgvdatadir): Ditto. Versioned data directory. (pkgvmacrodir): Ditto. Versioned aclocal directory. (LN): New check for LN command. * Makefile.am (aclocal_DATA): Replaced with... (pkgvmacro_DATA): ...this. (install-data-local): Remove old shared resources. (install-exec-hook): Make versioned links to executables. (uninstall-hook): Remove versioned files. * libltdl/Makefile.am (ltdldatadir): Redefine in terms of pkgvdatadir. * libltdl/loaders/Makefile.am (ltdldatadir): Ditto. * libtoolize.m4sh: Copy macro files from versioned macro directory instead of shared aclocal directory. * doc/libtool.texi: Document it. * NEWS: Updated. 2004-11-10 Gary V. Vaughan From James Henstridge : * m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4: Added commented out empty macro definitions to match each AU_DEFUN to help aclocal from automake-1.4 regexps find the right libtool macro files. 2004-11-10 James E Wilson , Ralf Wildenhues * config/ltmain.m4sh (func_mode_link), tests/Makefile.am, Fix error message with `-objectlist' file that does not exist. * tests/objectlist.test: New test for this. * Makefile.am: config/ltmain.sh is generated by config/ltmain.m4sh. 2004-11-09 Ralf Wildenhues * doc/libtool.texi (Compile mode, Link mode, Libltdl interface, Test descriptions, libtool script contents): Some quote cleanup, more use of texinfo types. * doc/libtool.texi (libtool script contents): echo is now ECHO; mention argument restriction. * doc/libtool.texi (Multiple dependencies): Minor rewording. * doc/libtool.texi (User defined module data, References): indentation and word-wrap cleanup. * doc/libtool.texi (all over): White space cleanup: two spaces at start of sentence, no TABs. 2004-11-09 Gary V. Vaughan , Ralf Wildenhues * doc/libtool.texi (libtool script contents): Fix description of need_lib_prefix. 2004-11-08 Peter Ekberg * config/ltmain.m4sh (func_mode_link): forward thread related flags to dependent applications and libraries by adding them to `inherited_linker_flags'. 2004-11-07 Ralf Wildenhues * m4/ltoptions.m4: Change all references of LT_LIBTOOL_INIT to LT_INIT. 2004-11-05 Peter Ekberg * ltmain.m4sh (cwrappersource): clean up other warning on MinGW. 2004-11-04 Bernhard Fischer , Ralf Wildenhues * m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS), m4/ltoptions.m4 (_LT_SET_OPTIONS), README, README.alpha: Typos. 2004-11-03 Ralf Wildenhues * libltdl/ltdl.c (parse_dotla_file): Fix memleak. * ltmain.m4sh (cwrappersource): Cast isalpha arguments correctly. 2004-11-03 Peter Ekberg * ltmain.m4sh (cwrappersource): clean up warnings and #include errors on MinGW. 2004-11-01 Peter Ekberg * config/ltmain.m4sh (cwrappersource): clean up warnings and #include errors. 2004-11-01 Peter Ekberg Sometimes, a wrapper script is generated for an executable that, itself, does not link against an uninstalled library. It appears that this can happen if you are building a project where: (1) there is a library (2) there is an executable that does not, itself, link against that library In this case, notinst_deplibs is empty, and when the wrapper script is loaded by libtool during ./libtool mode=install, there is a check for "is notinst_deplibs empty". In this case, it is, so libtool reports an error. I don't think it is wrong to have a wrapper script for an exe that *technically* doesn't need it. But instead of checking for notinst_deplib nonempty as a proxy for "did wrapper script get sourced into my environment properly" a different var should be used. * config/ltmain.m4sh (func_mode_install): set new variable `generated_by_libtool_version' in wrapper script when using libtool_install_magic. When verifying that wrapper script was properly sourced, check that `generated_by_libtool_version' is non-empty, instead of using notinst_deplibs. 2004-11-01 Charles Wilson , Peter Ekberg * config/ltmain.m4sh (func_mode_install): On Windows based hosts, ensure that import libraries don't get stripped. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): On Windows based hosts, use postinstall_cmds to strip DLL (not import lib!) when symbol stripped installation was requested. 2004-10-30 Ralf Wildenhues * libltdl/ltdl.c (loader_init_callback): Back out broken cast. * libltdl/ltdl.c (loader_init_callback, lt_dlexit): Add casts to target type. * tests/defs.m4sh (func_exec): `shift'ing when there is nothing to shift is non-portable. 2004-10-28 Patrick Welche , Ralf Wildenhues * Makefile.am, Makefile.maint: Use path for dependencies built in the source tree, to cater for BSD make. 2004-10-24 Noah Misch * config/ltmain.m4sh (func_lalib_p, func_ltwrapper_p): New functions that abstract .la sanity checking. (func_mode_execute, func_mode_install, func_mode_link) (func_mode_uninstall): Use them. 2004-10-24 Gary V. Vaughan * config/ltmain.m4sh (opt_silent): Whether --silent was given. (run, show): Deleted. All callers converted to opt_dry_run, opt_silent or calls to func_show_eval. * tests/mdemo-dryrun.test: Adjust. * HACKING: Fix a typo in the gpg --verify instructions. * Makefile.maint (cvs-dist): Generate signatures and directives for bz2 upload. 2004-10-23 Peter O'Gorman * config/ltmain.m4sh (func_mode_link): Make Gary's new tests pass. When the output wrapper script is not in the current directory, we can not use an rpath which is relative to the current directory. Use an absolute path instead. 2004-10-22 Gary V. Vaughan * clcommit.m4sh: Add --rcfile option. * clcommit.m4sh: Updated again, to support file list limited commits to CVS, and to fix another occurence of the bash bug that was preventing non-tla users from sending a commit mail. 2004-10-22 Ralf Wildenhues * TODO, libltdl/lt_error.h, libltdl/ltdl.c, libltdl/ltdl.h: Undo accidental commit. * Makefile.maint: Fix typo. 2004-10-22 Gary V. Vaughan * clcommit.m4sh, config/mailnotify.m4sh: Updated from cvs-utils--tla--1.0 to fix quoting of metachars in patch names. * HACKING: Updated: `.in' files are now `.m4sh'; document some more coding standards for these files. * config/general.m4sh (sed_double_backslash): Undo an over-optimisation. 2004-10-21 Gary V. Vaughan * AUTHORS: Reformatted to better reflect the current state of Libtool maintainership. * THANKS: Reformatted to give maintainers a quick way to look up who has supplied FSF paperwork. 2004-10-21 Noah Misch , Gary V. Vaughan * config/general.m4sh (sed_double_backslash): Improve this sed expression to correct left anchored \$ input to double_quote_subst, as well as backslash escaped $ preceded by any odd-numbered amount of \ characters. 2004-10-20 Gary V. Vaughan * config/general.m4sh (sed_double_backslash): New sed expression to escape \$ properly in combination with double_quote_subst. (func_quote_for_eval): Four space indent margin for functions! (func_quote_for_expand): Use $sed_double_backslash. (func_show_eval): New function that echos an escaped but variable expanded command, and then evaluates it. 2004-10-20 Noah Misch , Gary V. Vaughan * m4/libtool.m4 (sed_quote_subst): Remove superfluous backslashes from the match character set. (double_quote_subst): Ditto. * config/general.m4sh (sed_quote_subst): Ditto. (double_quote_subst): New variable, copied from m4/libtool.m4. Much the same as sed_quote_subst, but variable references are not quoted. (func_quote_for_eval): Given any $foo; $bar and $foo must be identical after the following commands: func_quote_for_eval "$foo" eval "bar=$func_quote_for_eval_result" (func_quote_for_expand): In a similar vein to to func_quote_for_eval, except that variable expansions are not protected when quoting the command for subsequent display. * config/ltmain.m4sh: Factor away use of $sed_quote_subst now that it has been subsumed into func_quote_for_eval. (func_mode_link): Instead of `2004-10-14 Peter O'Gorman' below, use func_quote_for_expand so that ${wl} is expanded properly in the $show expression. 2004-10-16 Gary V. Vaughan * config/ltmain.m4sh (func_mode_finish): solaris-2.6 also has crle(1). Reported by Albert Chin-A-Young 2004-10-16 Gary V. Vaughan Add some new tests for Libtool's support of Automake subdir-objects builds. This marks the beginning of a move to an Autotest driven test framework, which will eventually allow us to trim away many of the generated files in the current test demo subdirectories: * configure.ac (AC_CONFIG_TESTDIR): Re-enable commented out Autotest macros. (AUTOTEST, M4SH): Use --language long hand. * bootstrap: Generate tests/testsuite, and by implication tests/package.m4. * Makefile.am (edit): Add substitutions needed to generate tests/package.m4 from bootstrap. (check-recursive): Add tests/testsuite. (TESTSUITE): The new Autotest testsuite target. (TESTSUITE_AT): The Autotest sources. (EXTRA_DIST): Distribute the generated testsuite and sources. (tests/package.m4): Use $(edit) to propagate package metadata to the new tests. (tests/testsuite): Build the testsuite. (tests/atconfig): How to regenerate the file. (check-local): Hook Autotest into `make check'. (installcheck-local): Run the testsuite on the installed tree. (clean-local): Tidy our file droppings. * tests/Makefile.am: Remove bitrotted code from Autotest experiments in Autoconf 2.52 era. Updated the rest and moved into Makefile.am. * tests/testsuite.at: New container for Autotest test groups. * tests/am-subdir.at: New test group for compatibility with Automake's subdir-objects builds. Currently holds two tests, one for a C project and another similar project in C++. * TODO: Add an entry to remind us that these new tests expose a bug in libtool. * NEWS: Updated. 2004-10-14 Peter O'Gorman * config/ltmain.m4sh: Revert most of my last commit, only eval \$show \"$cmds\", and only when building a library. I'm a wimp. Thanks Gary for pointing out errors in previous commit. 2004-10-13 Gary V. Vaughan * config/ltmain.m4sh (func_mode_finish): Mention crle(1) on solaris 2.7 and higher in the finalisation notes. Reported by Kurt J. Lidl * tests/cdemo-undef.test: New test for hosts that allow shared libraries with undefined symbols, but have no C++ compiler installed. * tests/Makefile.am (COMMON_TESTS): Add it. 2004-10-13 Peter O'Gorman * config/ltmain.m4sh: Make sure that we $show what we will $run, use eval $show if we do $run eval. 2004-10-13 Charles Wilson * config/ltmain.m4sh: add foo/bin for every foo/lib in dllsearchpath when creating wrapper script. Fixes depdemo-relink test failure. 2004-10-12 Charles Wilson * config/ltmain.m4sh (func_mode_link): don't relink on cygwin/mingw; no need. But do ensure that wrappers are created unless doing a purely static build. 2004-10-13 Gary V. Vaughan * tests/tagdemo-undef.test: New test for hosts that allow shared libraries with undefined symbols. * tests/Makefile.am (CXX_TESTS): Add it. 2004-10-11 Charles Wilson * tests/link.test: Fix check for use of libnlsut.a under Cygwin. 2004-10-11 Noah Misch * tests/quote.test: Do not look for $preargs in the output, because libtool may change them. 2004-10-10 Charles Wilson * config/ltmain.m4sh: Really don't require versions of GNU sed newer than 3.02 for Cygwin and MinGW, and don't break dryrun mode. 2004-10-10 Bob Friesenhahn * config/getopt.m4sh: Under MinGW, reported paths may include ':' so ':' should not be used as the sed delimiter. Use '*' instead since it is very unlikely to appear in a path. 2004-10-10 Albert Chin-A-Young * config/ltmain.m4sh: Don't require versions of GNU sed newer than 3.02 for Cygwin and MinGW. 2004-10-10 Bob Friesenhahn * tests/pdemo-inst.test: Correction for mis-application of Charles Wilson's earlier patch. 2004-10-09 Gary V. Vaughan * m4/libtool.m4 (_LT_LANG_F77_CONFIG): Make sure the save and restore code for CC is nested at the same depth. (_LT_LANG_CXX_CONFIG): Ditto, but for several variables. 2004-10-08 Gary V. Vaughan Update to the latest commit and mailnotify scripts from gary@gnu.org--2004/cvs-utils--tla--1.0: * commit, config/mailnotify: Removed. Now built from... * clcommit.m4sh, config/mailnotify.m4sh: ...these new sources. * Makefile.maint (commit, config/mailnotify): How to build them. * bootstrap: If we have a checked out tree (i.e. clcommit.m4sh is present), then build them. 2004-10-08 Gary V. Vaughan Fix some issues that mangled the reexecution path to a script, and thus prevented it from finding itself: * config/general.m4sh (progname): Don't actually change the name of the script if it begins with a `-', just prepend `./'. (progpath): Add a new clause that first searches the execution PATH, and then finally assumes this script is in the current working directory if $progname has no directory separators (e.g when invoked as `$SHELL progname'). 2004-10-08 Gary V. Vaughan * config/general.m4sh (func_verbose): Work around a bash bug in shell functions. 2004-10-08 Charles Wilson * tests/pdemo-inst.test: pdemo-inst should depend on pdemo-make. * config/ltmain.m4sh: Windows and Cygwin reserve the .lnk extension to represent shortcuts. Use the extension ".lnkscript" rather than ".lnk" for the piecewise linking ld script in order to avoid the conflict. 2004-10-07 Ralf Wildenhues * libltdl/ltdl.c (lt_dlexit, lt_dlpath_insertdir): Fix memleaks, free user_search_path on lt_dlexit. 2004-10-07 Ralf Wildenhues * tests/sh.test: Remove tests which fail on AS_SHELL_SANITIZE from autoconf >= 2.59. * TODO: Remove item: no need for a libltdl without stdio. 2004-10-07 Gary V. Vaughan * tests/defs.m4sh (scripts): Actually scan the generated ltmain.sh for shell portability problems. * m4/libtool.m4 (_LT_FORMAT_COMMENT): Shell meta-characters in _LT_DECL descriptions were not being escaped before injection into TAG CONFIG here documents in config.status. 2004-10-06 Peter O'Gorman * m4/libtool.m4 (_LT_PROG_CXX, _LT_PROG_F77): New macros to work around the deficiencies in AC_PROG_CXX and AC_PROG_F77. * configure.ac: Cleaned up, having moved the checks for compilers which do not exist to libtool.m4. 2004-10-05 Ralf Wildenhues * libltdl/ltdl.c (try_dlopen): Move .la file parsing part.. (parse_dotla_file): ..here. Adjust. * libltdl/ltdl.c (load_deplibs, try_dlopen): Revert unnecessary casts to int from my patch from 2004-10-01. * AUTHORS: Add myself. 2004-10-05 Peter O'Gorman * config/ltmain.m4sh [darwin]: Make the -dylib_file flag work on older darwins too. Reported by Christoph Egger. 2004-10-05 Gary V. Vaughan * configure.ac: Bumped version to 2.1a. 2004-10-04 Gary V. Vaughan * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Don't confuse $ECHO with $lt_ECHO, or we always get a libtool with ECHO=echo, rather than testing for a mechanism that quotes \ properly. * NEWS: Updated. * config/ltmain.m4sh: Need to include getopt.m4sh earlier so that progpath is set before it is called to --no-reexec. * NEWS: Updated. 2004-10-04 Gary V. Vaughan Without this change, the distributed libtool tarball has a dependency on autom4te. There was some inconsistency in the filenames: now we have foo.m4sh -> m4sh -> foo.in -> configure -> foo[.sh]. Bootstrap runs the m4sh steps and the resulting .in files are distributed: * tests/Makefile.am (EXTRA_DIST): Distribute defs.m4sh. * Makefile.am (EXTRA_DIST): Distribute libtoolize.m4sh. (libtoolize.in, libtoolize): Split into bootstrap and runtime stages. ($(top_srcdir)/tests/defs.in, $(top_srcdir)/tests/defs): Ditto. ($(top_srcdir)/config/ltmain.sh): Swap ltmain.m4sh and ltmain.in names. * bootstrap: Make libtoolize.in and tests/defs.in. * NEWS: Updated. 2004-10-03 Bob Friesenhahn * README, README.alpha: Update notes regarding available VERBOSE settings. 2004-10-03 Bob Friesenhahn * config/ltmain.in: Change $XSED to $Xsed to fix hang noticed under MinGW. * tests/defs.in: Support VERBOSE=debug to enable shell tracing while running tests. 2004-10-03 Gary V. Vaughan * NEWS: Updated. * configure.ac: Bumped version to 1.9e. GNU libtool 1.9d was released. * configure.ac: Bumped version to 1.9d. * NEWS: Updated. * libltdl/lt__alloc.h (lt__alloc_die): Declare with LT_SCOPE as per Ralf's original patch. Reported by Bob Friesenhahn * libltdl/Makefile.am (libltdlc_la_LIBADD): Don't use libdlloader_la_OBJECTS, an undocumented Automake internal variable... (libltdlc_la_SOURCES): ...use libdlloader_la_SOURCES here instead. Reported by Bob Friesenhahn * libltdl/argz_.h: Forgot to spell lt_system.h with just one `_'. * libltdl/argz_.h: Forgot to include lt__system.h for LT_SCOPE definition. 2004-10-03 Ralf Wildenhues , Gary V. Vaughan * libltdl/lt__alloc.h: Declare exported functions with LT_SCOPE for mingw32. * libltdl/lt__dirent.h: Ditto. * libltdl/argz._h: Ditto. Be careful about not requiring additional libltdl files when used outside of libltdl. * libltdl/slist.h: Ditto. * HACKING: Add a section on libltdl implementation layering. 2004-10-03 Gary V. Vaughan * tests/quote.test: echo is called ECHO now. Make sure we extract the value of ECHO from the libtool script. Reported by Bob Friesenhahn 2004-10-02 Gary V. Vaughan * m4/libtool.m4 (hardcode_shlibpath_var) [darwin7*]: Revert my hack from 2004-09-30 now that I've removed /lib/hello.la and the tests work properly for me again. 2004-10-02 Jim Tison Initial support for s390x-ibm-tpf: * m4/libtool.m4: Correct obvious spelling errors in remarks. (_LT_ENABLE_LOCK): Make s390x-ibm-tpf hosts adopt elf64_s390 conventions. (_LT_SYS_DYNAMIC_LINKER): Set defaults for s390x-ibm-tpf host. (_LT_CHECK_MAGIC_METHOD): Skip all dependency checks for s390x-ibm-tpf hosts. (_LT_LINKER_SHLIBS): Make s390x-ibm-tpf hosts adopt GNU/Linux OS attributes. * NEWS: Updated. 2004-10-01 Ralf Wildenhues * config/ltmain.in (func_mode_install): Need to set $tmpdir before using it. * config/ltmain.in (func_mode_link): Fix quoting bug. Fixes e.g. the quoting of the -export-symbols-regex argument in .la files' relink_command. * libltdl/lt__alloc.c (lt__memdup): Allocation can fail, so we need to guard against null pointer dereference here. * libltdl/ltdl.c (lt_dlcaller_register): Ditto. * libltdl/slist.c (slist_foreach): result was declared as inner variable, shadowing the actually returned value. * libltdl/ltdl.c (load_deplibs, try_dlopen): Cast argument to isspace/isalnum to the correct range. Also, cast to int to avoid compiler warnings. 2004-09-30 Ralf Wildenhues * libltdl/ltdl.c (try_dlopen): Fix null pointer dereference in case the name given to lt_dlopen contains no extension. * libltdl/lt_dlloader.c (lt_dlloader_remove), libltdl/ltdl.c (tryall_dlopen, lt_dlhandle_next): Show usage of function pointers. * doc/libtool.texi (LT_INIT, Using libltdl) (Module loaders for libltdl, Multiple dependencies) (libtool script contents): Fix several typos (trivial change). Also, libltdl consists of more than two small files. 2004-09-30 Gary V. Vaughan * m4/libtool.m4 (hardcode_shlibpath_var) [darwin7]: My Panther workstation doesn't hardcode the shared library path, although it used to, so this is more likely a function of the binutils and/or gcc I am using at the moment. The hardcode value setting code for the configure script sucks at the moment though... * TODO: ...and needs to do a test compile instead of a table lookup before 2.0 final. * m4/libtool.m4 (echo): Use ECHO throughout for consistency with config/ltmain.in. Reported by Ralf Wildenhues * m4/libtool.m4 (rm): Use RM throughout for consistency with config/ltmain.in. Reported by Charles Wilson 2004-09-27 Peter O'Gorman * m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [darwin]: Don't echo gcc -v output during configure. (Really this time, honest) 2004-09-26 Albert Chin-A-Young * m4/libtool.m4 (_LT_LINKER_SHLIBS) [aix]: In archive_expsym_cmds, move -bnoentry linker option before $compiler_flags to honor any possible -e entries in LDFLAGS. 2004-09-25 Gary V. Vaughan * config/ltmain.in (func_mode_link): When linking an installed libtool library on the command line using -lfoo we need to find the library in the search paths and add it's dependency_libs to the link in the conv pass so that any libtool libs listed are correctly expanded in the link pass. 2004-09-24 Charles Wilson * libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Revert changeset from `2004-09-22 Charles Wilson '. 2004-09-24 Gary V. Vaughan * config/general.m4sh (Xsed): Set a default when not used from ltmain.in. (ECHO): Audit for (and correct!) uses of $ECHO with more than one argument, which breaks when ECHO='printf %s\n', and with possible `-' as first character of the argument, which breaks `print -r' and some implementations of `echo'. * config/ltmain.in, tests/defs.in, libtoolize.in (ECHO): Ditto. Reported by Albert Chin-A-Young 2004-09-24 Peter O'Gorman * m4/libtool.m4 (_LT_CMD_STRIPLIB) [darwin]: strip archives too. * m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [darwin]: Don't echo gcc -v output during configure. 2004-09-24 Gary V. Vaughan * m4/libtool.m4 (_LT_DECL_EGREP): Only the newest CVS autoconf AC_SUBSTs for GREP. Do our own here too to cater for release autoconfen. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [openbsd3.3]: Set need_version to yes or no depending on the os release. Reported by Dalibor Topic 2004-09-23 Gary V. Vaughan * tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test, tests/tagtrace.test: POSIX `.' searches only in user's $PATH, so we must use `. ./defs' to source the common code. Reported by Alexandre Duret-Lutz * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Gah. Merge error corrected. 2004-09-23 Gary V. Vaughan Since defs can change (path to grep for example) when it is made for a different host, it can't be shipped. That also means that defs will always be generated in the build tree, so each test case can have the srcdir discovery factored away into tests/defs.in: * Makefile.am (EXTRA_DIST): s/defs/defs.in/g * tests/Makefile.am (defs): New rule to remake defs from the parent directory's Makefile. * tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test, tests/tagtrace.test: Removed srcdir discovery boilerplate... * tests/defs.in: ...and put it here. 2004-09-23 Ralf Wildenhues * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): move symcode calculation to correct place. * doc/libtool.texi (libtool script contents): update description of global_symbol_to_cdecl. 2004-09-23 Gary V. Vaughan * configure.ac (M4SH): AC_SUBST m4sh expander. * config/general.m4sh, config/getopt.m4sh: New files with factored out functionality from... * config/ltmain.in, libtoolize.in: ...here. m4_include the shared code, and call AS_SHELL_SANITIZE. Also quote all `[' and `]' to survive m4 run. (func_serial): No need to double up m4sh quotes after a `#'. (func_check_macros): Escape `dnl' to stop m4sh interpreting it as a macro. * tests/defs.in: New file expanded into tests/defs by autom4te. * m4/libtool.m4 (_LT_DECL_EGREP): Also require fgrep for the tests that use it. * Makefile.am ($(top_srcdir)/config/ltmain.sh): Now built with M4SH. (libtoolize): Ditto. * bootstrap: Set M4SH for call to make. * HACKING: No need to sync to AS_SHELL_SANITIZE by hand any more. * m4/libtool.m4: _LT_DECL uppercase ECHO. * config/ltmain.in: Use it throughout. (func_mkdir_p): Now matches the other implementations in tests/defs and libtoolize.in. * tests/sh.test: Updated to detect ECHO misuse. 2004-09-22 Gary V. Vaughan * config/ltmain.in (func_mode_link): Propagate a convenience library's dependency libs correctly when it is being linked into a libtool library. Deplibs are now propagated whether libdir is set or not. 2004-09-22 Andreas Schwab The dlpreopen pass over libraries reverses the elements in the $deplibs list. This causes problems when the link pass tries to find libraries when they are located in non-standard places denoted by -L options. Due to the reversed order these -L options occur after the libraries that need them, and they are not found: * config/ltmain.in: (Un)Reverse $deplibs list at the start of the link pass in lib mode. 2004-09-22 Charles Wilson * ltmain.in (func_generate_dlsyms) [cygwin, mingw]: when creating a .exp file for an executable, also create a .def file, and add that file to the link command via SYMFILES. This causes binutils to generate an .edata section, and allows self dlopening to work. * NEWS: Updated. * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): better quoting for postinstall_cmds and postuninstall_cmds to allow spaces in install paths. * config/ltmain.in (func_generate_dlsyms): Addresses in _preloaded_symbols[] cannot go into .rdata section if symbols are DATA imported from DLL, on windows, because runtime relocations must happen. * m4/libtool.m4 (_LT_LINKER_SHLIBS([TAGNAME])): Build exports for symbols in .rdata sections. 2004-09-19 Gary V. Vaughan The checks in assign.test are trying to catch case of this ilk: `foo=bar break', but unfortunately they also choke on `foo=bar; break' and `foo=bar && break'. Writing a sophisticated test to catch just the intended case seems like more trouble than it's worth, but leaving the test in causes the testsuite to fail on valid m4sh output: * tests/assign.test: Removed; chokes on perfectly valid shell syntax. * tests/Makefile.am (COMMON_TESTS): Remove assign.test. * tests/defs.in (scripts): Don't check the m4sh inputs, go back to checking the generated ltmain.sh script. 2004-09-17 Gary V. Vaughan * config/ltmain.in (func_echo): Except for multi-line warnings and errors, always use func_echo. $show is for command output, and $echo is for internal use in backtick expressions and similar. 2004-09-17 Gary V. Vaughan Missed a couple of MKDIR_P references in ltmain.in in my last patch; fix them carefully. Introduce an opt_dry_run to ltmain.in so that the implementations of func_mkdir_p can converge, and a func_mktempdir to do a better job of temporary directory creation: * libtoolize.in (func_mkdir_p): Don't fail if the directory wasn't created in dry run mode. * tests/defs (func_mkdir_p): Ditto. We don't actually have a dry run mode for the tests, but the function is written carefully to be kept in synch and work correctly here too. * config/ltmain.in (func_mkdir_p): Ditto. This copy of the function now only differs in its use of $echo over $ECHO. (func_extract_archive): Removed first redundant mkdir call. (func_mktempdir): New function that tries to avoid races when making temporary directories. (opt_dry_run): Set this if --dry-run is given at the CLI, or if tests/mdemo-dryrun.test has forced the value of $run. (func_mode_install): Call $MKDIR directly and error out if the directory cannot be created. (func_mode_link): Rather than copying func_mkdir_p into the wrapper script as a replacement for $MKDIR_P, we know that the script won't be called my `make -j', so write the current value of $MKDIR. 2004-09-17 Peter O'Gorman * m4/libtool.m4: remove an extra "]" * m4/libtool.m4 [darwin] (_LT_LANG_CXX_CONFIG): Changes for 10.4. * config/libtool.in [darwin]: ditto. 2004-09-16 Gary V. Vaughan My most recent `2004-09-02 Gary V. Vaughan' patch for mkdir_p below is horrendously broken since it makes the installed libtool try to run the mkinstalldirs or install-sh helper scripts. This patch fixes the `make -j' mkdir race condition internally: * libtoolize.in (func_mkdir_p): New slice and dice algorithm to build the directory tree one dir at a time, ignoring errors until the end incase they are transient due to a concurrent identical mkdir. * tests/defs (func_mkdir_p): Ditto. * config/ltmain.in (func_mkdir_p): Ditto, except that ltmain.in uses $echo rather than $ECHO, and uses $show and $run to interact correctly with the command line. * configure.ac (AM_INIT_AUTOMAKE): 1.8 is sufficient again. * Makefile.am (edit): Don't substitute automake's $(mkdir_p). * NEWS: Updated. 2004-09-15 Bob Friesenhahn * libltdl/loaders/loadlibrary.c: Compilation fixes (originally from Gary V. Vaughan) to compile under MinGW. * config/mkstamp: Translate input data so that it is assured to use the Unix line terminations. This is necessary under Windows if the files are checked out with CR/NL line terminations. A side-effect of this change is that input must always be from stdin. Previously a filename argument was accepted as well. 2004-09-15 Ralf Wildenhues * tests/Makefile.am: Use the same CPP, F77, CXX and CXXFLAGS for the test suite. 2004-09-15 Ralf Wildenhues * m4/libtool.m4 (_LT_ENABLE_LOCK):Replace AC_TRY_LINK with AC_LINK_IFELSE to get rid of `autoconf -Wobsolete' warning. * m4/ltdl.m4 (LT_LIB_DLLOAD): Ditto. 2004-09-15 Gary V. Vaughan * config/ltmain.in (func_quote_for_eval): Set a return value to avoid forking at every call. Changed all callers. (func_mode_link): Simplified, and removed the final non-portable nested escaped double quotes in back quotes usage in the process. 2004-09-14 Gary V. Vaughan * config/ltmain.in (func_quote_for_eval): Factor out the ugly shell meta-character quoting. Changed all callers. 2004-09-14 Ralf Wildenhues * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Simplification: distinguish between data and code symbols on every system. 2004-09-14 Albert Chin-A-Young Unfortunately, libtool has no way of telling if unrecognized compiler flags need an argument or not, and can disect options and pass parts through incorrectly. This changeset reverts both 2004-09-06 Albert Chin-A-Young (topmost) and 2004-09-05 Albert Chin-A-Young below, and recognises more options explicitly: * config/ltmain.in (func_mode_link): Pass through options needed to compile in 64-bit mode with gcc, and the SGI, Sun, HP and IBM compilers. 2004-09-13 Gary V. Vaughan * m4/libtool.m4 (_LT_CMD_GLOBALS_SYMBOLS): Fix a typo I made when applying 2004-09-11 Ralf Wildenhues. 2004-09-12 Brad * libtool.m4: Fixes for the OpenBSD support 2004-09-12 Peter O'Gorman Our fortran tests were not very good. All the libraries created were convenience libs, so we did not test the creation of shared libraries on any platform. Also none of the libs used any actual fortran library calls, adding a call to write(*,*) in each lib causes the tests to fail on darwin (and presumably other platforms). These new tests would likely cause many more fortran test failures, so if there is an error during make it is reported as SKIP. * tests/f77demo-make.test: Don't fail hard, skip on failure. * tests/f77demo/foof2.f: New file. * tests/f77demo/foof3.f: New file. * tests/f77demo/fprogram.f: Call routine in new lib. * tests/f77demo/foof.f: Call routine in another new lib. * tests/f77demo/Makefile.am: Make a couple of new libraries, add $(FLIBS) to cprogram LDADD. 2004-09-11 Ralf Wildenhues * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): The linker distinguishes data and code symbols on linux-gnu/ia64. Fixes multiple testsuite failures. * NEWS: Updated. 2004-09-06 Gary V. Vaughan * libltdl/loaders/shl_load.c (get_vtable): Typo. 2004-09-06 Albert Chin-A-Young Hopefully, passing unrecognised compiler arguments through unmolested will prove to be a good plan for the 2.0 release. If it goes awry, we can get back to where we were by reverting this patch and the 2004-09-05 Albert Chin-A-Young patch, aka gary@gnu.org--2004/libtool--devo--1.0--patch-169,172: * config/ltmain.in (func_mode_link): Because we now pass through compiler arguments we doesn't recognize, the code to pass through GCC's -m* arguments is not needed. 2004-09-06 Albert Chin-A-Young * Makefile.am (clean-ltmain-sh): Using '==' to test for equality in a shell script is not portable. Use '=' instead. 2004-09-05 Andreas Schwab * m4/ltdl.m4 (LT_WITH_LTDL): Remove excess quoting in argument of AC_CONFIG_SUBDIRS. 2004-09-05 Albert Chin-A-Young * config/ltmain.in (func_mode_link): Pass otherwise unrecognised + and - style switches to the compiler. * NEWS: Updated. 2004-09-05 Gary V. Vaughan * Makefile.am (libtool): Force libtool to be regenerated if stamp-vcl has changed. 2004-09-05 Albert Chin-A-Young * m4/libtool.m4, config/ltmain.in: When calling $LTCC, pass default $CFLAGS through with $LTCFLAGS. 2004-09-03 David Edelsohn * config/ltmain.in (func_mode_link): Use $pic_object as $non_pic_object if $non_pic_object=none. * NEWS: Updated. 2004-09-03 Gary V. Vaughan * bootstrap: Remember that the ltmain.sh generated by bootstrap is missing most of its substitution values, so force it to be rebuilt at make time by touching $(top_srcdir)/config/ltmain.in. From Martin Quinson * m4/libtool.m4 (_LT_SETUP, _LT_ENABLE_LOCK, LT_PATH_LD): Use AS_HELP_STRING to get rid of autoconf -Wobsolete warning messages. * m4/ltdl.m4 (LT_WITH_LTDL, _LT_ENABLE_INSTALL): Ditto. * m4/ltoptions.m4 (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC) (_LT_ENABLE_FAST_INSTALL, _LT_WITH_PIC): Ditto. * TODO: Updated 2004-09-03 Ralf Wildenhues * libltdl/slist.c (slist_cons): Don't leak the tail of a list. 2004-09-03 Albert Chin-A-Young * m4/libtool.m4 (_LT_ENABLE_LOCK): Reformatted. 2004-09-03 Gary V. Vaughan * HACKING: Explain how to verify detached signatures with gpg in the release announcement templates. * AUTHORS: Fix typo in my address. 2004-09-02 Gary V. Vaughan , Builds of packages that use libtool and make -j produce "directory already exists warnings" for .lib directory. Build on automake wisdom to support make -j builds where a suitable mkdir is available: * configure.ac (AM_INIT_AUTOMAKE): Require 1.9, which goes to some trouble to find a $(mkdir_p) that doesn't interfere with make -j. * Makefile.am (edit): Substitute for @mkdir_p@. * config/ltmain.in (MKDIR_P): Take @mkdir_p@ value. (mkdir): Removed. (func_mkdir_p): New function to use $MKDIR_P. Factor out all previous mkdir calls to use this function. (RM, MV): Declared as in libtoolize.in. Changed all callers. * libtoolize.in (MKDIR_P): Take @mkdir_p@ value from automake. (func_mkdir_p): Use it, similarly to new config/ltmain.in. * tests/defs: Synchronize boiler plate code with ltmain.in. Adjust all callers. Add missing copyright preamble. * tests/demo-static.test: Add missing copyright preamble. * NEWS: Updated. Reported by Daniel Reed 2004-09-02 Gary V. Vaughan , * Makefile.am (clean-ltmain-sh): Quote $(top_builddir) for the shell, incase it is not set when running maintainer rules with `make -fMakefile.maint'. Don't show the shell commands. * AUTHORS: Fix my email address. 2004-09-02 Ralf Wildenhues * libltdl/ltdl.c (try_dlopen): Fix memory leak. * NEWS: Updated. 2004-09-02 Gary V. Vaughan , Ralf Wildenhues * libltdl/slist.c, libltdl/slist.h: Merge in changes from latest upstream. Mostly comments, formal item boxing, a sort function, and const madness reduction. (slist_new): Removed. (slist_box, slist_unbox, slist_sort): New. (SListCompare, SListCallback): Swapped! (slist_remove, slist_find): Change order of parameters for orthogonality with slist_foreach. Changed all callers. * libltdl/lt_dlloader.c (loader_cmp): Renamed to... (loader_callback): ...this. Return boxed item. (lt_dlloader_remove): Adjust to new loader_callback semantics; unbox each removed item before returning. Remove unused variable. Remove const from name parameter, since the slist API cannot guarantee userdata const-ancy for its callback functions. (lt_dlloader_find): Adjust to new loader_callback semantics; need to return the contents of the boxed item. Remove const from name parameter, since the slist API cannot guarantee userdata const-ancy for its callback functions. * libltdl/lt_dlloader.h (lt_dlloader_find, lt_dlloader_remove): Adjust to new constless footprint. * libltdl/ltdl.c (ltdl_exit): The global `loaders' list is changed by `lt_dlloader_remove' while cleaning up, so the address in local variable `loader' is invalidated. Since some loaders may be resident modules that cannot be unloaded (though we have none yet), we must save each `next' address before calling `lt_dlloader_remove'. * NEWS: Updated. * THANKS: Added Ralf. 2004-09-01 Gary V. Vaughan * libltdl/lt_dlloader.c (lt_dlloader_add): Handle malloc failure from slist_new. * libltdl/ltdl.c (loader_init): Trust lt_dlloader_add(), don't overwrite its error type, and simplify. Reported by Ralf Wildenhues 2004-09-01 Ralf Wildenhues * libltdl/slist.c (slist_new): Handle malloc failure gracefully. 2004-09-01 Gary V. Vaughan * libtoolize.in, config/ltmain.in: Add CDPATH protection to preamble. * tests/defs: Put a full m4sh.m4 style 'Be Bourne compatible' preamble in here too. * HACKING: Note that tests/defs needs synching with m4sh.m4 too. * TODO: Add new item. * libltdl/ltdl.c (try_dlopen, lt_dlforeachfile): Use correct cpp macro name, LT_DLSEARCH_PATH. * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Fix gcc parentheses warning. (foreach_dirinpath, try_dlopen, lt_dlpath_insertdir): Fix gcc signed vs unsigned warning. Reported by Bob Friesenhahn * m4/libtool.m4 (_LT_PROG_LTMAIN): Simplified in light of ltmain.sh no longer being in the build tree. Reported by Ralf Wildenhues 2004-09-01 Ralf Wildenhues * libltdl/loaders/preopen.c: Initialise memory in get_vtable. * tests/sh.test: Look in the source tree for ltmain.sh. 2004-09-01 Gary V. Vaughan Don't use C99 flexible array types as we want to be C89 compatible. Instead, revert to the old way of doing things with an array of symbol name vs. address, and adding the originator as the first symbol but with a NULL address: * config/ltmain.in (func_extract_dlsyms): Store originator as a NULL address symbol. * libltdl/ltdl.h (lt_dlsymbol): Removed. (lt_dlsymlist): Remove originator field. (LTDL_SET_PRELOADED_SYMBOLS): Adjust. * libltdl/loaders/preopen.c (vm_open, lt_dlpreload_open): Adjust for new types. (vm_sym): Skip the new originator symbol when scanning symbol names. * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust preloaded symbols test file to match. * NEWS: Updated. Reported by Andreas Schwab 2004-09-01 Gary V. Vaughan Libtool currently assumes that certain characteristics, such as enable_shared, apply to the host architecture rather than per- language. Running the tests over a broken compiler can corrupt these values, when there is no C++ compiler for example, so we skip most of the tests in those cases. * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): If caught_CXX_compiler was set from configure.ac, then don't run all the compiler tests. (_LT_LANG_F77_CONFIG): Similarly for caught_F77_compiler. 2004-08-31 Gary V. Vaughan * Makefile.am (clean-ltmain-sh): Remove stale config/ltmain.sh from the build tree that were left behind by previous versions of libtool. ($top_srcdir)/stamp-vcl: Since this rule is already called on every invocation of make, hook clean-ltmain-sh in here too. Suggested by Ralf Wildenhues 2004-08-31 Ralf Wildenhues * bootstrap: Update warning message to reflect having split libtool.m4 into several files. Also, add config/ltmain.sh to list of stale files from previous versions to be removed before bootstrap. * libltdl/ltdl.c: Replace strdup with lt__strdup. 2004-08-30 Gary V. Vaughan * config/ltmain.in: Double quote even $# for the sake of sh.test. (exec_cmd): Be careful about "`\"foo\"`" quoting, even in comments to avoid triggering the tests in sh.test. * configure.ac: Because of the way the autoconf C++ testing works, we need to call the C test first to work in an environment that has no C++ compiler. * libltdl/lt_dlloader.c (lt_dlloader_remove): Since the return value of this function is often passed to free, don't declare it `const'. Responsibility for this memory is given back to the caller on return. * libltdl/lt_dlloader.h (lt_dlloader_remove): Ditto. * libltdl/ltdl.c (lt_dlexit): Adjust. * NEWS: Updated. 2004-08-30 Andreas Schwab * libltdl/ltdl.c (lt_dlexit): Remove lvalue cast. * libltdl/slist.h (SListCallback): Fix missing type. * config/ltmain.in: Accept --mode=relink. 2004-08-29 Gary V. Vaughan * NEWS: Updated. * configure.ac: Bumped version to 1.9c. GNU libtool 1.9b was released. * configure.ac: Bumped version to 1.9b. * NEWS: Updated. * INSTALL, config/config.guess, config/config.sub, config/texinfo.tex: Updated from canonical source. * Makefile.maint, HACKING: Update instructions for releasing in a VPATH build. * Makefile.am (dist-hook): Only run if README-alpha exists. * README.alpha: Renamed from README-alpha to stop automake from automatically adding it to DIST_COMMON. * NEWS: Merge changes from branch-1-5. * Makefile.am (dist-hook): Always distribute just a README file, but take its contents from README-alpha for alpha releases. * TODO: Reformat. Removed some items that have been implemented. 2004-08-29 Gary V. Vaughan Add a new `-weak' flag to tell libtool when not to propogate dependency libraries from dlpreopened modules to libraries: * config/ltmain.in: Support new -weak link mode option. Adjust help message. * libltdl/Makefile.am (libltdlc_la_LDFLAGS): Use it. * doc/libtool.texi (Linking with dlopened modules): Document it. (Link mode): Mention -weak. * NEWS: Updated. 2004-08-29 Gary V. Vaughan * config/ltmain.in (opt_help): Defer showing help messages until after a possible following --mode argument has been parsed, so we can handle `libtool --help --mode=foo'. 2004-08-29 Gary V. Vaughan We have had shell functions in ltmain.in for a few years without complaint now, and recently a few more have crept in. Make a start at refactoring the code with shell functions, and standardising on option parsing style: * config/ltmain.in (func_echo, func_verbose, func_error) (func_fatal_error, func_fatal_help, func_missing_arg) (func_version, func_usage, func_help): Boiler plate shell functions mostly copied from libtoolize.in. Changed *lots* of shell snippets to call these functions as appropriate, rather than inlining the same code over and over. (func_config, func_features, func_enable_tag, func_mode_help): Factored out from the shared option parsing loop. Write a new shared option parser based on the one in libtoolize.in. (func_check_version_match): Factored out from global scope. (func_mode_compile, func_mode_execute, func_mode_finish) (func_mode_install, func_mode_link, func_mode_uninstall): Break each of the top level mode handlers out into a function. Adjust main loop. (modename, prevopt, prev, optarg, show_help): Removed in the course of cleaning up the shared option parser. (opt_duplicate_deps): Use `:' and `false' instead of `yes' and `', so we can run it directly, rather than calling test. 2004-08-28 Gary V. Vaughan To help users submit better bug reports, improve the general instructions, and provide additional useful info alongside the bug reporting address in --help output: * Makefile.am (edit): Substitute $host_triplet. * libtoolize.in: Output useful debug info with --help. * config/ltmain.in: Ditto. * README: Rewritten. Added copyright info. * README-alpha: Rewritten. Added copyright info. * HACKING: New file, partly taken from old README-alpha. 2004-08-27 Gary V. Vaughan Two things to stop `make distcheck' from trying to rebuild distributed files (m4/ltversion.m4 and config/ltmain.in) in the readonly source tree: * Makefile.am (stamp-vcl): Keep only one copy of stamp-vcl; in $(top_srcdir), so that an up-to-date version is rolled into the dist tarball even from a VPATH build. ($(top_srcdir)/config/ltmain.sh): Don't depend on Makefile, otherwise ltmain.sh needs to be rebuilt after every config.status run, and then configure needs to be rebuilt, and it all goes horribly wrong :-/ Unfortunately, we can't depend on Makefile.am either, because that is a circular dependency. The downside of this change is that it is now possible to edit Makefile.am to change the way ltmain.sh is generated, and the dependency information can't tell that ltmain.sh needs regenerating. 2004-08-27 Gary V. Vaughan * doc/libtool.texi (Cheap tricks): Escape the `@' for texinfo. 2004-08-27 Gary V. Vaughan * doc/libtool.texi (Cheap tricks): Fix the instructions for making a ltmain.in wrapping libtool in light of recent changes to the version checking code. 2004-08-26 Peter O'Gorman * config/ltmain.in [darwin]: Use the -dylib_file flag and avoid linking to so many libraries on darwin. * m4/libtool.m4 [darwin]: Don't use a libname triplet, a couplet is perfectly fine. * m4/ltdl.m4: Don't use the dyld loader on darwin 8 or later. 2004-08-25 Paolo Bonzini * config/ltmain.in (piecewise linking): Use a GNU ld script if possible. * m4/libtool.m4 (_LT_LINKER_SHLIBS): Add per-tag variable with_gnu_ld. (_LT_LANG_CXX_CONFIG): Don't set unused variable with_gnu_ldcxx. 2004-08-22 Gary V. Vaughan The Grand Renaming. In preparation for libtool-2.0, move all of the many and varied m4 symbols accumulated by libtool over the years, considering also that modern autoconf can detect unexpanded macros even without AC in the macro name: * bootstrap: Remove libltdl/config.h from previous releases. * m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a giant sed transformation like this: s,AC_LIB_LTDL,LTDL_INIT,g s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g s,AC_WITH_LTDL,LT_WITH_LTDL,g s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g s,AC_CHECK_LIBM,LT_LIB_M,g s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g s,AC_PROG_LD,LT_PATH_LD,g s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g s,AC_PROG_NM,LT_PATH_NM,g s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g s,_LT_AC_TAGVAR,_LT_TAGVAR,g s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g s,LT_AC_PROG_SED,_LT_DECL_SED,g * doc/libtool.texi (Autoconf macros): Document exported macros. * libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT instead of newly obsoleted AC_LIB_LTDL. (func_scan_files): Also set seen_ltdl for LTDL_INIT and LT_WITH_LTDL. 2004-08-12 Peter O'Gorman * m4/libtool.m4 [GNU/linux] (AC_DEPLIBS_CHECK_METHOD): Cleanup, thanks to Daniel Reed. 2004-08-11 Daniel Reed * tests/demo-nopic.test: Do not run on x86_64 or s390* 2004-08-06 Gary V. Vaughan * libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not an environment variable, it is an actual path. * bootstrap: Remove `-f Makefile.am' now that we have an actual Makefile to build ltmain.sh. Reported by Noah Mish 2004-08-05 Gary V. Vaughan * bootstrap: Run the bootstrap rules from a file named Makefile, copied from Makefile.am for fresh checkouts. 2004-08-05 Alexandre Duret-Lutz * m4/libtool.m4 (_LT_PROG_LTMAIN): Require ltmain.sh using using Autoconf's new AC_REQUIRE_AUX_FILE. 2004-08-05 Gary V. Vaughan * Makefile.am ($(top_srcdir)/config/ltmain.sh): Depends on Makefile. (timestamp): Factor out timestamp setting and edit it based on the version number, so that it is empty for release versions. ($(top_srcdir)/config/ltmain.sh): Use it. (libtoolize): Ditto. * Makefile.am (libtool): Depends on ltmain.sh. (libtoolize): Set and substitute TIMESTAMP. * Makefile.am ($(top_srcdir)/config/ltmain.sh): Actually run $(MKSTAMP) before changing directories, or it won't be found. Forgot to save before my last commit :-( * Makefile.am ($(top_srcdir)/m4/ltversion.m4): Since we already did `cd $(top_srcdir)' for this rule, we can't mv ltversion.tmp to the relative $(top_srcdir) again! Also, run $(MKSTAMP) before changing directories, or it won't be found. ($(top_srcdir)/config/ltmain.sh): Ditto. (EXTRA_DIST): We should distribute ltversion.m4 too. 2004-08-04 Peter O'Gorman * m4/libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Since CONFIG_SHELL may not actually be set, we should use SHELL here, also make darn sure that SHELL is set to something. Bug from Willem Jan Palenstijn . 2004-08-03 Jacob Meuser * ltmain.in: Allow some static libraries to be used in generating a shared library on NetBSD and OpenBSD. match-pattern_regex decides which are good. 2004-08-02 Geoffrey Keating * m4/libtool.m4 [darwin]: Don't use -all_load. 2004-08-01 Maciej W. Rozycki * m4/libtool.m4 (LT_AC_PROG_SED): Set SED when running from cache as well. 2004-07-31 Gary V. Vaughan Although libtool is optimised to not need to subconfigure libltdl, the installed libltdl sources for libtoolize need to put libltdl/configure.ac in the parent package so that *it* can subconfigure libltdl. That way we don't put any constraints on the build system used by the parent package because the libtoolized libltdl subtree is a self-contained sub-project: * libltdl/Makefile.am (EXTRA_DIST): Add configure.ac. (nobase_ltdldata_DATA): Change back to libltdl's own configure.ac. 2004-07-30 Gary V. Vaughan My thanks to Alexandre Duret-Lutz for the insight required to write this changeset -- especially that ltmain.sh is the same on any machine for a given release, which I hadn't noticed for some bizarre reason: It turns out that generating distributed files from configure causes no end of hassle, as evidenced by the many patches I've generated over the last few days to try and get the dist and distcheck make rules to work. Instead of all that hair, we now simply generate our distributed files (now including ltmain.sh) with make rules -- and since automake creates make variables for all AC_SUBSTs, that is really easy. The code looks a lot more like automake and autoconf Makefile.ams now, and doesn't have all the rough edges the earlier hacky solution suffered from. We still generate libtool from config.status, but that is not a distributed file, and doesn't break the golden rule. Besides, there is way more going on there than a bunch of substitutions: * Makefile.am (edit): New common sed substitutions for files now generated by make instead of config.status. (CLEANFILES): Clean new tmp files. (EXTRA_DIST): Add ltmain.sh. (vcl-tmp): Reinstated. (m4/ltversion.m4, config/ltmain.sh): New rules. Generate from here instead of config.status. (libtoolize): Ditto. (libtool): Call config.status to regenerate if necessary. (dist-hook): Removed. * config/ltmain.in: Moved here from top_srcdir. * README-alpha: Update instructions to check AS_SHELL_SANITIZE is up to date. * bootstrap: Rewritten. Generate m4/ltversion.m4 and config/ltmain.sh because configure depends on them. * configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that ltmain.in has moved. (AC_CONFIG_FILES): Don't generate distributed files, config/ltmain.sh and libtoolize from config.status. We have make rules to do that now. 2004-07-30 Peter O'Gorman * m4/libtool.m4, ltmain.in: readd the comments that I erased. * ltmain.in [darwin]: We already had a module var, there can be only one. * m4/libtool.m4, ltmain.in: autoconf now says the best thing to do with CDPATH is to (unset CDPATH) >/dev/null 2>&1 && unset CDPATH, so do it. 2004-07-29 Gary V. Vaughan * Makefile.am ($(top_srcdir)/config/ltmain.sh): Ugh. More hair to help `make distcheck'; not only do we have to make a copy of ltmain.sh available in the source tree, but we have to be really careful about permission bit twiddling when we copy it across into the possible read-only $(top_srcdir)/config directory! * tests/tagtrace.test: Skip this test when running a VPATH build against a read-only source tree (as in distcheck for example), since autoconf wants to write temporary files in $top_srcdir otherwise. * Makefile.am ($(top_srcdir)/config/ltmain.sh): Automake assumes, quite rightly for every project except libtool, that there will be an ltmain.sh in the source tree. (EXTRA_DIST): As do the dist rules it generates. (dist-hook): Even though we definitely don't want to distribute our local ltmain.sh. * config/config.guess, config/config.sub: Don't check these in, they cause spurious conflicts on cvs commit and update, and are added by bootstrap in any case. * configure.ac (AC_INIT): Revert an accidental commit from my testing of package_revision. 2004-07-29 Alexandre Duret-Lutz * doc/libtool.texi (Tags): Document CC. * m4/libtool.m4 (_LT_SETUP): Register CC as supported tag so that Automake uses it. 2004-07-28 Gary V. Vaughan Fix a long-standing bug where macro_version was always empty in the generated m4/ltversion.m4. Except for CVS revisions: * ltmain.in (package_revision): Don't try to deduce it from TIMESTAMP, since that is empty for release versions; simply substitute it... * configure.ac (package_revision): ...from here, having precalculated it before resetting TIMESTAMP for release versions. * bootstrap: Force regeneration of m4/ltversion.m4, but retain timestamps if there is no change to the content. 2004-07-28 Gary V. Vaughan To take full advantage of this, libtool must be bootstrapped with CVS autoconf, otherwise pdksh chokes on some nested escaped quotes from libtool.m4. Using CVS autoconf protects configure from non-bourne compatible shells in the same way this changeset protects libtool and libtoolize: * libtoolize.in: Include latest CVS autoconf AS_SHELL_SANITIZE expansion to make various shells fully bourne compatible. * ltmain.in: Ditto. * m4/libtool.m4 (AC_PATH_TOOL_PREFIX): Remove spurious quotes, the RHS of = assignment is not IFS split. (_LT_LANG_CXX_CONFIG): Ditto. (AC_LIBTOOL_POSTDEP_PREDEP): Ditto. 2004-07-27 Gary V. Vaughan This change fixes another VPATH build bug, where the vcl.tmp target forced a rebuild of stamp-vcl in the build tree (and hence regeneration of m4/ltversion.m4, thus an automake driven rebootstrap that doesn't know about $fakes) requiring a fresh ./bootstrap after every cvs/tla update: * Makefile.am (vcl.tmp): Removed. (stamp-vcl): Adopt former vcl.tmp target rules. 2004-07-25 Gary V. Vaughan * ltmain.in: Make sure that dependency libraries of -dlpreopened libraries are propogated properly. 2004-07-23 Joe Orton * libtool.m4: Treat bsdi5* like bsdi4*. 2004-07-22 Peter O'Gorman * ltmain.in [darwin](func_extract_archives): $SED not sed. * ltmain.in [darwin](func_extract_archives): Clean up last commit a little, some suggestions are from Albert Chin, those that are broken are mine. * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for included files in the right places. 2004-07-18 Peter O'Gorman * ltmain.in [darwin](func_extract_archives): Because fat archives on darwin can not be extracted using ar, we need to use lipo to extract the thin archives and then use lipo again to generate the individual fat objects. This should allow people to run configure with CC set to "cc -arch ppc -arch ppc64" or "cc -arch ppc -arch i386" or whatever to match the toolchain they have available. 2004-07-18 Greg Eisenhauer * libltdl/loaders/Makefile.am: Use AM_MAKEFLAGS not MAKEFLAGS. 2004-07-18 Peter O'Gorman * libltdl/Makefile.am: Ensure that lt__dirent.h is part of the dist, also make failed looking for configure.ac, look for $(top_srcdir)/configure.ac instead. 2004-07-15 Gary V. Vaughan * libltdl/lt__private.h (lt_dlhandle_struct): Renamed to lt__handle to better reflect the naming scheme. * libltdl/ltdl.h (lt_dlhandle): Be truly opaque with a void *. * libltdl/lt_dlloader.c (lt_dlloader_remove): Party to lt__private.h, so use internal lt__handle instead of opaque lt_dlhandle. * libltdl/ltdl.c (LT_DLGET_FLAG, LT_DLSET_FLAG): Add a cast to internal lt__handle type. (try_dlopen, tryall_dlopen, load_deplibs, unload_deplibs): Ditto. (lt_dlexit, lt_dlclose, lt_dlsym): Use lt__handle to iterate throught the handle list. (try_dlopen): Use lt__zalloc instead of MALLOC and memset. * libltdl/ltdl.h (lt_dlcaller_id): Be truly opaque with a void *. (lt_dlhandle_interface): New callback type for filtering handles according to the interface they present. * libltdl/ltdl.c (lt_dlcaller_register): Take an id and an interface check callback, and generate a caller_id. (iterator): New static variable for the use of... (lt_dlhandle_first): New function. Set the iterator for subsequent calls to lt_dlhandle_next. (lt_dlhandle_next): Either work as before when iterator is unset, or else skip handles that fail the interface check in iterator set by lt_dlhandle_first. * libltdl/ltdl.h (lt_dlhandle_first): Declaration. * doc/libtool.texi (User defined module data): Document the new APIs. * NEWS: Updated. 2004-07-15 Gary V. Vaughan Split lt_dlloader management into a separate file, and factor `loaders' list management into a new SList ADT. In the process, the API for writing loaders is a little cleaner, so all the existing loaders were tweaked to take advantage of that: * libltdl/slist.h, libltdl/slist.c: New files implementing a generic singly linked list container ADT. The ADT is purely internal, and none of its API's are visible from an installed libltdl. * libltdl/lt_dlloader.h (lt_dlloader): Removed next field again :-) Renamed to lt_dlvtable for API. Changed all callers. (lt_dlloader_get): New function to turn an lt_dlloader into its associated lt_dlvtable. (lt_dlloader_add): Removed unused data parameter. The caller data belongs to (and is set by) the loader itself, not the loader's client. Changed all callers. (lt_dlloader_name, lt_dlloader_data): Removed. Use lt_dlloader_get instead! * libltdl/lt__private.h: Include slist.h. (lt__alloc_die_callback): Add missing LT_SCOPE to declaration. (lt_dlhandle_struct): Use lt_dlvtable instead of opaque lt_dlloader. * libltdl/ltdl.c (lt_dlexit): Rewritten for the new loader API. (loaders, lt_dlloader_add, lt_dlloader_remove, lt_dlloader_next, lt_dlloader_find): Moved from here... * libltdl/lt_dlloader.c ((loaders, lt_dlloader_add, lt_dlloader_remove, lt_dlloader_next, lt_dlloader_find): ...to here. And rewritten in terms of new SList interface. * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Rewritten in terms of new lt_dlloader interface. * libltdl/Makefile.am (libdlloader_la_SOURCES): Add slist.h and slist.c. Move lt_dlloader.h from here... (pkginclude_HEADERS): ...to here. (libltdl_la_SOURCES): Add lt_dlloader.c and lt_dlloader.h. 2004-07-15 Gary V. Vaughan Collapse two almost identical structures into one: * libltdl/lt_dlloader.h (lt_dlloader): Add next field. * libltdl/ltdl.c (lt_user_dlloader): Remove entirely. Change all callers to use lt_dlloader instead. Add a compatibility macro. (lt_dlloader_add): Remove copy and allocate stage, just hook directly into the loaders list. 2004-07-15 Gary V. Vaughan A cleaner way to access the private fields of an lt_dlhandle than my move of the module field into lt_dlinfo: * libltdl/ltdl.c (lt_caller_data, lt_dlhandle_struct): Move from here... * libltdl/lt__private.h (lt_caller_data, lt_dlhandle_struct): ...to here. And put the module field back here... * libltdl/ltdl.h (lt_dlinfo): ...instead of here. * libltdl/loaders/loadlibrary.c (vm_open): Adjust. 2004-07-15 Gary V. Vaughan * libltdl/lt__private.h (streq, strneq): New macros to make strcmp calls as used for simple comparison easier to read. * libltdl/loaders/dyld.c, libltdl/loaders/preopen.c, libltdl/ltdl.c: Use them! 2004-07-15 Gary V. Vaughan This pervasive changeset makes two intertwined deep changes to the operation of libtool (neither would work alone). First, there is a new feature that allows libraries to preopen modules. This entails a backwards incompatible change to the libltdl API for separating out the preloaded symbol lists by owner. Second, in the tradition of "eating our own dogfood", libltdl now preloads its own dlloaders. The internal API for dlloaders has also had to change in a backwards incompatible way in support of the new library preloading feature. If you don't use preloaded libraries, you needn't change your project sources, though you will need to recompile against the new libltdl. The API changes are mostly confined to dlloaders, so you probably needn't worry about those (unless you have written a custom loader that you want libltdl to use): * configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile. * libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile. * libltdl/loaders: New directory for module loaders, to simplify Makefile rules, and to give the loaders themselves names that are unique in the first few characters. * libtoolize.in (func_copy_all_files): Copy recursively to pick up the loaders directory contents. * libltdl/loaders/Makefile.am: New file. Move module building rules to here... * libltdl/Makefile.am: ...from here. (VERSION_INFO): Bumped version info to signify interface changes. (libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN appropriately for each library. * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c, libltdl/loader-dyld.c, libltdl/loader-load_add_on.c, libltdl/loader-loadlibrary.c libltdl/loader-preopen.c, libltdl/loader-shl_load.c: Moved from here... * libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: ...to here. (get_vtable): New entry function for each. * libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by... (symlist_chain): ...a new structure which maps lists of preloaded symbols from the object that loads them. (lt_dlpreload_open): New function to automatically open all preloaded modules belonging to a named object (ORIGINATOR). * libltdl/lt__alloc.c (lt__zalloc): New function to return a block of zeroed out new memory. * libltdl/lt__alloc.h (lt__zalloc): Prototype it. * libltdl/lt__private.h (lt__alloc_die_callback): Add missing prototype. (lt__error_strings): Make this opaque to callers. * libltdl/lt_error.c (lt__error_strings): Move the implementation to here. * libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to make originator focused preloading possible. *BREAKS BACKWARDS COMPATIBILITY* (lt_dlloader_add): Take advantage of new fields to simplify paramater list. * libltdl/lt_system.h (LT_STR): New ANSI stringification macro. (LT_CONC): Fix it to work from within macros. * libltdl/ltdl.c (loader_init, loader_init_callback): Simplify dlloader loading. (get_vtable, preloaded_symbols): Point these at the preopen.c symbols to bootstrap the loader chain. (lt_dlinit): Load the preopen dlloader manually, and then use it to load any other preloaded dlloaders. (lt_dlloader_add): Simplify parameter list. Populate new fields. Chain new loaders according to priority field. * libltdl/ltdl.h (lt_dlsymlist): Add a new originator field. (lt_dlpreload_callback_func): Type of a callback for automatic lt_dlpreload_open loading. (LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded symbols from the "@PROGRAM@" originator. * tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol. * tests/pdemo/longer_file_name_dlmain.c (main): Ditto. * ltmain.in: Don't spew spurious warnings when dlopening and dlpreopening modules. (func_generate_dlsyms): Factored out from multiple copies in the rest of the code. Generate originator keyed symbol lists. (func_extract_archives): Also factored. Extract the contents of convenience archives for linking with dependent libraries when --whole-archive is not available. [darwin]: Don't try to link $old_library unless it exists, and $lib is a bundle. * m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic loading libraries/apis rather that stopping when an acceptable one is discovered. (LT_DLLOADERS): New variable for holding dlloaders that can be preloaded. * doc/libtool.texi: Document interface changes. * NEWS: Updated. 2004-07-12 Peter O'Gorman * m4/libtool.m4 [darwin]: Set whole_archive_flag_spec to '' for xlc, or it does not pass it's tests. xlc passes -noall_load (the default) and when -all_load is also specified Apple's /usr/bin/libtool barfs and dies. 2004-07-07 Gary V. Vaughan * libltdl/ltdl.h (lt_dlinfo): Move private module field to here... * libltdl/ltdl.c (lt_dlhandle_struct): ...from here. Changed all callers. * libltdl/loader-loadlibrary.c (sys_wll_open): Use new inteface to scan loaded handle->info.module fields for previously loaded modules. * doc/libtool.texi (User defined module data): Document changes to the interface. * NEWS: Updated. Reported by Chuck Wilson 2004-07-07 Brad * m4/libtool.m4: Fixes for the OpenBSD support 2004-06-24 Noah Misch * ltmain.in: Unset the zsh GLOB_SUBST option, which makes zsh handle backslash quoting poorly, before doing anything else. * tests/defs: Likewise. 2004-06-21 Gary V. Vaughan * libtoolize.in (libtoolize_flags): With the --ltdl option, we libtoolize the libltdl subdirectory automatically. * m4/ltdl.m4 (AC_WITH_LTDL): Fix overquoted args. 2004-06-21 Peter O'Gorman * ltmain.in (dependency_libs) [darwin]: Remove -framework stuff from dependency_libs. Instead, invent a new .la var "inherited_linker_flags" to keep any linker flags which should be used when linking the library, but are outside the usual -L -l, -R etc that can be used in dependency_libs. Any unusual flags in dependency_libs cause recent versions of libtool to die with "cannot find the library `'", so it is required to move frameworks out of there. :( 2004-06-21 Gary V. Vaughan From Ralf Wildenhues : * libtoolize.in: Quote $# to make sh.test happy again. * m4/ltdl.m4 (AC_WITH_LTDL): Remove redundant AC_REQUIRE calls. Either set variables to allow a client to link with the installed libltdl, or else compile a local libltdl as a convenience library. * libtoolize.in (opt_ltdl): Removed in favour of... (ltdldir): ...this, which is defaulted to "libltdl" or can be set by the user with an argument to --ltdl. (Main): Use it! * doc/libtool.texi (Distributing libltdl): Improved documentation on libltdl. (Invoking libtoolize): Document new optional --ltdl target directory argument. 2004-06-17 Gary V. Vaughan * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [darwin*]: Fix a typo in allow_undefined_flag: s,${Wl},${wl},g * libtoolize.in (func_scan_files): Accept AC_WITH_LTDL as an indication that libltdl is being used. (Main): Without AC_CONFIG_MACRO_DIR, don't just dump all the macro files in `.' since they are never used, and aclocal will copy them from $aclocaldir into aclocal.m4 anyway. Reported by Alexandre Duret-Lutz 2004-06-16 Brad * m4/libtool.m4: More improvements to OpenBSD support. * NEWS: Updated. 2004-06-16 Gary V. Vaughan libltdl uses LIBOBJS, which leak out into a parent project if both share the same configure.ac. Libtool itself doesn't compile any code, so it is okay to do it during bootstrap, but other projects need to treat libltdl as a configurable subproject to keep their respective LIBOBJS separate: * libltdl/configure.ac: New file, based on configure.ac. * libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4 directory. (ltdldata_DATA): List *all* the files that libtoolize --ltdl will install. 2004-06-16 Gary V. Vaughan Automake 1.9 won't have the AC_PROG_EGREP bug (aclocal used to pull an old installed libtool.m4 as well as the bootstrap m4/libtool.m4 if an AC_DEFUN was removed), and we have lt~obsolete.m4 to work around it in the mean time. libtoolize can install macro files from $prefix/share/aclocal perfectly well without us needing to move to a whole other directory: * Makefile.am (pkgmacro_DATA): Renamed to aclocal_DATA, so m4 files are installed to $prefix/share/aclocal again. (install-data-local): Don't remove just installed macros! * libtoolize.in (pkgmacrodir): Renamed to aclocaldir. (func_copy_some_files): New function factored out of... (func_copy_all_files): ...here. Adjust to use func_copy_some_files. (re_pkgaux_files): Renamed to glob_pkgaux_files, since it is not a regular expression. (re_pkgmagro_files): Replaced with... (pkgmacro_files): ...a colon delimited list of libtool installed m4 files from aclocaldir. (Main): Copy macro files from aclocaldir again. * NEWS: Updated. 2004-05-21 Bob Friesenhahn * ltmain.sh (check_executable): The WIN32 API and MinGW do not support S_IXOTH and S_IXGRP so use of these modes should be conditional. 2004-05-21 Gary V. Vaughan * tests/tagtrace.test: Forgot to add this file to the repository for Alexandre's 2004-05-16 patch below. 2004-05-18 Peter O'Gorman * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Make this an m4_defun, test the tags compiler to see if it is GCC, not the CC compiler. 2004-05-16 Alexandre Duret-Lutz * doc/libtool.texi (Invoking libtool): Mention --tag=TAG. (Tags, Trace interface): New nodes. * m4/libtool.m4 (LT_SUPPORTED_TAG): New macro. (_LT_LANG): Call it. * tests/tagtrace.test: New file. * tests/Makefile.am (TESTS): Add tagtrace.test. * tests/defs: Define AUTOCONF. 2004-05-14 Mike Gorchak * ltmain.in: Add new qnx version type support. * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Use it. Set ldqnx.so linker type. (AC_DEPLIBS_CHECK_METHOD): QNX6 uses GNU C++, with deplib checking, so use pass_all. (AC_LIBTOOL_PROG_COMPILER_PIC): Use -shared for QNX. (_LT_LANG_CXX_CONFIG): QNX can make shared libraries. * m4/ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): QNX opens deplibs on dlopen. * NEWS: Updated. 2004-05-05 Peter O'Gorman * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH): Insert space around = for a test and a comma between runpath_var and $1. Bug reported by Max Bowsher. 2004-04-22 Gary V. Vaughan * libltdl/argz.h: Moved from here... * libltdl/argz_.h: ...to here, so as not to shadow system argz.h when we `#include ' for example. #include stdlib.h and sys/types.h to ensure we get a size_t definition. * libltdl/argz.c (HAVE_CONFIG_H): Set it up how ltdl likes it when used by another client. * m4/argz.m4: New file. (gl_FUNC_ARGZ): Try to find an error_t definition, and a system argz.h. * m4/ltdl.m4: Use it. (AC_LTDL_FUNC_ARGZ): Removed. * libltdl/lt__glibc.h: #include to pick up either the system argz.h or our libltdl/argz.h if necessary. * libltdl/Makefile.am (libltdl_la_SOURCES): Move argz.h from here... (ltdldata_DATA): ...here. Along with argz.c. (argz.h): Generate from argz_.h if the system file is missing. Reported by Ralf Wildenhues 2004-04-22 Gary V. Vaughan According to Howard Chu : Applications should assume that the native dlopen is NOT thread-safe, and take care of locking themselves. All application calls into libltdl should thus be protected by the caller. * libltdl/lt_mutex.c, libltdl/lt_mutex.h: Removed. * libltdl/Makefile.am (pkginclude_HEADERS): Removed lt_mutex.h. (libltdl_la_SOURCES): Removed lt_mutex.c and lt_mutex.h. * libltdl/ltdl.h: Don't include lt_mutex.h. * libltdl/lt__private.h (LT__MUTEX_GETERROR, LT__MUTEX_SETERROR) (LT__MUTEX_SETERRORSTR): Renamed to... (LT__GETERROR, LT__SETERROR, LT__SETERRORSTR): ...this. Changed all callers. (LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, lt_dlmutex_lock) (lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror): Removed. Changed all callers. * doc/libtool.texi (Thread Saftey in libltdl): * NEWS: Updated. 2004-04-19 Gary V. Vaughan * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Detect Intel C++ compiler version more idiomatically. 2004-04-19 Albert Chin-A-Young * m4/libtool.m4: Use cc rather than ld to created a shared library on HP-UX 11.x. On HP-UX 10.x, the C compiler doesn't grok -b so we continue to use ld. * m4/libtool.m4: Use cc rather than ld to create a shared library on Solaris. When using the Sun Workshop compiler 5.0 (and I presume any previous version), revert to ld due to compiler errors. * m4/libtool.m4: Use cc rather than ld to created a shared library on Tru64 UNIX. * m4/libtool.m4: Use cc rather than ld to created a shared library on IRIX. * libltdl/loader-shl_load.c: Fix typos during reorg. 2004-04-19 Alexandre Duret-Lutz * doc/libtool.texi (LT_INIT): Properly display options in a table. 2004-04-19 Gary V. Vaughan * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Intel C++ compiler 8.0 and newer adds predep_objects and postdep_objects itself, so don't duplicate them in $archive_cmds and $archive_expsym_cmds. * NEWS: Updated. Reported by Roberto Bagnara 2004-04-17 Peter O'Gorman * libltdl/loader-dyld.c: Fix compilation issues. Set Original author to me. 2004-04-17 Todd Vierling , Peter O'Gorman * m4/libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use sysctl to get the max cmd length on BSD* and darwin. Make sure that there is a safety factor too. 2004-04-15 Scott James Remnant * m4/libtool.m4 (_LT_LANG_DEFAULT_CONFIG): Remove code to handle 'none' and 'all' options, this now always assumes automatic mode as that works so well. (_LT_LANG_DEFAULT): Remove definition * m4/ltoptions.m4: Remove 'no-lang', 'auto-lang' and 'all-lang' options. * configure.ac: Invoke LT_LANG for each desired supported language. * doc/libtool.texi: Remove documentation for the LT_INIT options, rewrite LT_LANG documentation. 2004-04-14 Alexandre Duret-Lutz * bootstrap: Delete acinclude.m4. 2004-04-14 Gary V. Vaughan * libtoolize.in (configure_ac): Don't complain about the lack of aclocal.m4. Reported by Alexandre Duret-Lutz 2004-04-13 Gary V. Vaughan * m4/ltdl.m4 (AC_LIB_LTDL): Remove AC_REPLACE_FUNCS for memmove and strcpy. * libltdl/lt__pre89.h, libltdl/memcpy.c, libltdl/memmove.c, libltdl/strchr.c, libltdl/strcmp.c, libltdl/strrchr.c: Remove half-assed pre-c89 support entirely. * libltdl/lt__private.h: Don't refer to lt__pre89.h. * libltdl/Makefile.am (ltdldata_DATA): Remove references to deleted files. * NEWS: Mention it. * libltdl/lt__pre89.h, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/argz.c, libltdl/argz.h, libltdl/lt__glibc.h, libltdl/lt_dlloader.h, libltdl/lt__dirent.c, libltdl/lt__dirent.h, libltdl/lt__private.h, libltdl/lt__alloc.c, libltdl/lt__alloc.h, libltdl/lt_system.h, libltdl/loader-dld_link.c, libltdl/loader-dlopen.c, libltdl/loader-dyld.c, libltdl/loader-loadlibrary.c, libltdl/loader-shl_load.c, libltdl/lt_error.h, libltdl/lt_mutex.h: Autoconf either defines to 1 or undefs the discovery macros it puts in config.h, and many (non-GNU) compilers throw a spurious warning when testing an #undef macro with #if. For consistency, while we are touching all these lines, use defined(MACRO) style throughout. Reported by Bob Friesenhahn 2004-04-13 Gary V. Vaughan Factor out the individual loaders, in preparation for preloading them as libtool modules. Currently loader-preopen.c is linked unconditionally and other appropriate loaders discovered by AC_LTDL_DLLIB are built and linked in: * libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen module. * m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate loaders to libltdl. * libltdl/lt_system.h (LT_SCOPE): Moved to here. * libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module) (lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit) (struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find) (lt_dlloader_name, lt_dlloader_data, lt_dlloader_add) (lt_dlloader_remove): Moved declarations... * libltdl/lt_loader.h: ...to here. * libltdl/ltdl.c: Include lt_loader.h. Move loader implementation code from here... * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c, libltdl/loader-dyld.c, libltdl/loader-load_add_on.c, libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c, libltdl/loader-shl_load.c: ...to here. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/../.. so that libltdl include files can be written as #include and found correctly. 2004-04-13 Gary V. Vaughan Factor out the mutex handling and error handling into their own modules. Mutex handling is not currently useful in combination with posix threads, and should be easier to replace if it is in a separate module. Additionally, we can factor out the loaders in such a way as to depend on only the portability layer and these new mutex and error modules now: * libltdl/Makefile.am (pkginclude_HEADERS): Install lt_error.h and lt_mutex.h to $includedir/libltdl. (libltdl_la_SOURCES): Build lt_error and lt_mutex objects. * libltdl/ltdl.h (LT_SCOPE): Moved from here... * libltdl/lt_system.h (LT_SCOPE): ...to here. * libltdl/ltdl.c (lt_dlerror_strings, LT_DLSTRERROR): Moved from here... * libltdl/lt__private.h (lt__error_strings, LT__STRERROR): ...to here as additional internal interfaces to lt_error. Changed all callers. * libltdl/ltdl.c (LT_DLMUTEX_LOCK, LT_DLMUTEX_UNLOCK) (LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR, lt_dlmutex_lock_func) (lt_dlmutex_unlock_func, lt_dlmutex_geterror_func) (lt_dllast_error): Moved from here... (LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, LT__MUTEX_SETERRORSTR) (LT__MUTEX_GETERROR, lt__mutex_lock_func, lt__mutex_unlock_func) (lt__mutex_geterror_func, lt__last_error): ...to here as additional internal interfaces to lt_mutex. Changed all callers. (LT_MUTEX_SETERROR): Take an errorcode rather than a string. Changed all callers. * libltdl/ltdl.c, libltdl/ltdl.h (lt_dlmutex_register): Moved from here... * libltdl/lt_mutex.c, libltdl/lt_mutex.h (lt_dlmutex_register): ...to here. New files. * libltdl/ltdl.c, libltdl/ltdl.h (lt_dladderror, lt_dlseterror) (lt_dlerror_table): Moved from here... * libltdl/lt_error.c, libltdl/lt_error.h (lt_dladderror) (lt_dlseterror, lt_dlerror_table): ...to here. New files. 2004-04-13 Scott James Remnant * Makefile.am (XDELTA_OPTIONS): Remove --pristine as that generates huge xdeltas. 2004-04-08 Gary V. Vaughan * libltdl/ltdl.c (argz_append, argz_create_sep, argz_insert) (argz_next, argz_stringify): Move from here... * libltdl/argz.c: New file. ...to here. * libltdl/lt__glibc.h: New file. Rename global symbols into the lt__ namespace. * libltdl/lt__private.h: Include lt__glibc.h. * libltdl/Makefile.am (libltdl_la_SOURCES): Add new files. (AM_CPPFLAGS): Add -DLTDL. * libltdl/argz.h (argz_append, argz_create_sep, argz_insert) (argz_next, argz_stringify): New file. Declare argz functions here, including lt__glibc.h when LTDL is defined to rename global symbols for libltdl. * m4/ltdl.m4 (AC_LTDL_FUNC_ARGZ): Add argz to AC_LIBOBJ if any of our argz_* functions are missing from the system libraries. * libltdl/ltdl.c: Move standard headers and preprocessor guards from here... * libltdl/lt__private.h: ...to here. New file to declare ltdl's internal interfaces. * libltdl/ltdl.c: Include lt__private.h. * m4/ltdl.m4 (AC_LIB_LTDL): Add lt_dirent to AC_LIBOBJ if all of opendir, readdir and closedir are missing. (AC_CHECK_HEADERS): Remove assert.h, ctype.h, errno.h, malloc.h, stdio.h and stdlib.h; these headers are all available in standard c89 environments and newer. * libltdl/lt__private.h: Include them here unconditionally. * libltdl/lt__dirent.c (opendir, readdir, closedir): New file. Windows dirent emulation functions moved to here... * libltdl/ltdl.c (opendir, readdir, closedir): ...from here. * libltdl/lt__dirent.h: New file. Rename the global symbols from lt__dirent.c into the lt__ namespace so they don't clash with other libraries. 2004-04-08 Gary V. Vaughan Factor out the bottom portability layer from ltdl. Code in this layer has global symbols renamed by lt__pre89.h, and may not refer to any symbols except those provided by the system libraries or other code in the portability layer: * libltdl/lt__pre89.h: New file. Rename all the symbols from LTLIBOBJS into the lt__ namespace so that they don't clash with other libraries. * libltdl/ltdl.c (rpl_memcpy, rpl_memmove, rpl_strchr, rpl_strcmp) (rpl_strrchr): Moved from here... * libltdl/memcpy.c (memcpy): ...to here, and fixed void * dereference bug... * libltdl/memmove.c (memmove): ...to here, and fixed void * dereference bug... * libltdl/strchr.c (strchr): ...to here... * libltdl/strcmp.c (strcmp): ...here... * libltdl/strrchr.c (strrchr): ...and here. * libltdl/Makefile.am (libltdl_la_SOURCES): Add lt__pre89.h. (libltdl_la_LIBADD, libltdlc_la_LIBADD): Add $(LTLIBOBJS). (ltdldata_DATA): Add replacement sources files. * m4/ltdl.m4 (AC_LIB_LTDL): Do careful config.h and LTLIBOBJ setting for missing pre89 functions. 2004-04-08 Gary V. Vaughan * libltdl/ltdl.h (LT_PARAMS): Removed. Changed all users to ANSI prototypes. (lt_ptr): Keep backwards compatibility stub. * libltdl/ltdl.c, libltdl/ltdl.h: Use ANSI function declarations throughout. s/lt_ptr/void */g. 2004-04-08 Fredrik Estreen * m4/ltdl.m4: Rename shrext to shrext_cmds here too. 2004-04-06 Gary V. Vaughan There was no clean separation of abstraction layers in libltdl. The first step in fixing this is to factor out the memory management abstraction, making a start on removing promiscuity from the underlying portability layer: * doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc, lt_dlrealloc and lt_dlfree references. The memory management layer used by libltdl is now private. * libltdl/lt_system.h: New installed header for system portability abstraction. * libltdl/ltdl.h: Use it. * libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above system portability layer to abstract ltdl's memory management. * libltdl/ltdl.c: Use lt__alloc.h. (closedir): Use free. (opendir): Use malloc/free. (lt__xalloc_die_callback): Report memory failures through lt_dlerror. (lt_dlinit): Use it to initialise memory management. (LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC) (rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc): Removed in favour of... (lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls from libltdl/lt__alloc.h. Changed all callers. (rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part of the portability layer, these functions no longer use libltdl memory management API. (free_vars): Factored out. (LT_DLMEM_REASSIGN): While redoing memory handling, renamed... * libltdl/lt__alloc.h (MEMREASSIGN): ...to this. * libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track dependencies automatically. (pkgincludedir): Override from parent package's setting. (pkginclude_HEADERS): Install lt_system.h. (libltdl_la_SOURCES): Add new files. * NEWS: Updated. Reported by Dalibor Topic 2004-04-01 Peter O'Gorman * ltmain.in: Remove an extra eval concat_cmds that some idiot added. Fixes double eval on AIX, reported by Albert Chin and Uwe Moeller. * NEWS: Add a news item about xlc support that I forgot yesterday. 2004-03-31 Peter O'Gorman * m4/libtool.m4, ltmain.in (darwin): Support IBM's xlc and xlc++. 2004-03-31 Gary V. Vaughan * m4/libtool.m4 (_LT_LANG_C_CONFIG): If $compiler is not set, then don't call the macros that test it. (_LT_LANG_CXX_CONFIG): Ditto. (_LT_LANG_F77_CONFIG): Ditto. (_LT_LANG_GCJ_CONFIG): Ditto. (_LT_LANG_RC_CONFIG): Ditto. 2004-03-30 Gary V. Vaughan * libtoolize.in (func_scan_files): sed BRE have no alternation, so break LT_INIT matcher out. (func_serial): Don't escape literal parens for grep BRE. * m4/libtool.m4 (LT_INIT): aclocal can't see AC_DEFUN_ONCE, so use AC_DEFUN and m4_define. * libtoolize.in (func_serial): No longer accept AC_DEFUN_ONCE... (func_grep): ...so mere grep is sufficient again... (EGREP): ...and this is no longer required. 2004-03-29 Gary V. Vaughan * m4/libtool.m4: Use LT_INIT as #serial tag. * libtoolize.in: Grok LT_INIT! Pass A[CM]_PROG_LIBTOOL to... (func_serial_update): ...here, we now take an additional parameter containing another regex to match ancient serialed files. (func_serial): Accept AC_DEFUN_ONCE of the #serial tag... (func_grep): ...which requires egrep... (EGREP): ...substituted by config.status. (func_scan_files): Set seen_libtool if LT_INIT goes by. * Makefile.am (pkgmacro_DATA): Install ltoptions.m4. * libltdl/Makefile.am (AM_CPPFLAGS): Also check $top_builddir for config.h. (ltdl.o): config.h is in $top_builddir. 2004-03-24 Scott James Remnant * NEWS: Explain more fully why we no longer load libraries with global symbol resolution. * doc/libtool.texi (libtool script contents): Add missing documentation for 'inherit_rpath' variable. * configure.ac: Catch errors during calls to AC_PROG_CXX, AC_PROG_CXXCPP and AC_PROG_F77 before LT_INIT. Only set the HAVE_CXX and HAVE_F77 conditions to true if an error didn't occur (AC_PROG_CXX leaves CXX="g++" even if it didn't find one). Set HAVE_GCJ and HAVE_RC to true correctly as well. * m4/libtool.m4 (LT_PROG_GCJ): If AC_PROG_GCJ or AM_PROG_GCJ are defined, expand to the definition of those instead of our own. Define GCJ to '' instead of 'no' if not found. (LT_PROG_RC) Define RC to '' instead of 'no' if not found. (_LT_LANG_GCJ_CONFIG): Require LT_PROG_GCJ to be expanded first. (_LT_LANG_RC_CONFIG): Require LT_PROG_RC to be expanded first. * libltdl/ltdl.c (sys_dl_open): Don't load libraries with global symbol resolution. * NEWS: Updated. 2004-03-24 Albert Chin-A-Young * m4/libtool.m4: Add new variable, inherit_rpath, if the RPATHs of the libraries being linked are inherited in the output file. For systems with a linker exhibiting this feature, programs/libraries must be relinked at installation time. * m4/libtool.m4: When linking convenience libraries on Solaris with the Sun C++ compiler, pass convenience libraries through to the linker with -Qoption between allextract/defaultextract. The Sun C++ compiler bundles -Qoption arguments so convenience libraries are linked with defaultextract otherwise. * tagdemo/Makefile.am, tagdemo/main.cpp, tagdemo/conv.h, tagdemo/conv.cpp: Augment tagdemo test to link a convenience library with a libtool library. * ltmain.in: Piecewise linking doesn't work when the output file is an absolute path, use the basename only instead. * ltmain.in: When a library is installed, dependent on a convenience library, and it involves relinking, the object files extracted from the convenience library are not removed after the relink. This is a problem if you build as non-root, install as root, then try to remove the build directory as non-root; Clean up properly if relink fails; Change "$realname"U to ${realname}T to be consistent. 2004-03-24 Scott James Remnant * ltmain.in : Always add -L options to $newlib_search_path instead of just in scan mode to ensure that non-libtool libraries in user-specified directories can be found. 2004-03-22 Scott James Remnant * m4/libtool.m4 (_LT_CONFIG): Remove unneeded else condition code, now the support determination is done in m4. (_LT_LANG): Correct comment, unexpected leak from keybuk-lt-tag.patch. 2004-03-21 Scott James Remnant * libltdl/Makefile.am (libltdl_la_LDFLAGS): Increment CURRENT and AGE of libltdl, warranted by the addition of lt_dlhandle_find() since 1.5.2. 2004-03-21 Scott James Remnant Further sweeping changes to the user interface to libtool from `configure.ac' to allow users to better control the list of supported languages. Three LT_INIT options 'no-lang', 'all-lang' and 'auto-lang' (the default) control the initial list and others may be added with LT_LANG. * m4/libtool.m4 (_LT_CONFIG): Renamed AC_LIBTOOL_CONFIG to _LT_CONFIG which is more consistent with our own namespace and gets us further out of Autoconf's. (_LT_LIBTOOL_TAGS): Output available_tags variable based entirely on the value of _LT_TAGS. (_LT_COPYING): Call _LT_LIBTOOL_TAGS to output available tags, always append tag configuration if the tag is available. (LT_LANG): New macro to enable support for a language that accepts tag names (eg. "CXX") or human language names (eg. "C++"). (_LT_LANG): Internal support macro for above that appends the tag to _LT_TAGS and calls the appropriate config macro. (LT_INIT): Ensure that LT_LANG is not called before LT_INIT. (AC_LIBTOOL_TAGS): Removed, call LT_LANG for each language now. (_LT_AC_TAG_CHECK): Removed, _LT_LANG handles duplicate calls. (_LT_LANG_DEFAULT_CONFIG): Macro to set initial language support based on options passed to LT_INIT. (_LT_SETUP): Call _LT_LANG_DEFAULT_CONFIG. (_LT_AC_TAG_CONFIG): Removed, handled by _LT_LANG_DEFAULT_CONFIG. (_LT_AC_LANG_CXX, _LT_AC_LANG_F77, _LT_AC_LANG_GCJ): Removed, automatic language support inclusion now handled by _LT_LANG_DEFAULT_CONFIG. (AC_LIBTOOL_CXX): Obsolete macro, update to LT_LANG(C++). (AC_LIBTOOL_F77): Obsolete macro, update to LT_LANG(Fortran 77). (AC_LIBTOOL_GCJ): Obsolete macro, update to LT_LANG(Java). (AC_LIBTOOL_LANG_C_CONFIG_: Removed. (_LT_AC_LANG_C_CONFIG): Renamed to _LT_LANG_C_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (_LT_SETUP): Replace call to AC_LIBTOOL_LANG_C_CONFIG with call to new _LT_LANG_C_CONFIG macro. (AC_LIBTOOL_LANG_CXX_CONFIG): Removed. (_LT_AC_LANG_CXX_CONFIG): Renamed to _LT_LANG_CXX_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (AC_LIBTOOL_LANG_F77_CONFIG): Removed. (_LT_AC_LANG_F77_CONFIG): Renamed to _LT_LANG_F77_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (AC_LIBTOOL_LANG_GCJ_CONFIG): Removed. (_LT_AC_LANG_GCJ_CONFIG): Renamed to _LT_LANG_GCJ_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (AC_LIBTOOL_LANG_RC_CONFIG): Removed. (_LT_AC_LANG_RC_CONFIG): Renamed to _LT_LANG_RC_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (LT_AC_PROG_GCJ): Renamed to LT_PROG_GCJ. (LT_AC_PROG_RC): Renamed to LT_PROG_RC. * m4/ltoptions.m4: Define new 'no-lang', 'auto-lang' and 'all-lang' options which set the default for _LT_LANG_DEFAULT_CONFIG. * m4/lt~obsolete.m4: Removed AC_LIBTOOL_CONFIG, _LT_AC_LANG_C_CONFIG, _LT_AC_LANG_GCJ_CONFIG, _LT_AC_LANG_RC_CONFIG; all of which are no long referenced in any way. * configure.ac: Enable all languages. * tests/cdemo/configure.ac, tests/demo/configure,ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/mdemo/configure.ac, tests/pdemo/configure,ac, tests/tagdemo/configure.ac: Remove calls to AC_LIBTOOL_TAGS, the default 'auto-lang' mode now does the right thing. * doc/libtool.texi (The LT_INIT macro): Add documentation for new LT_INIT options and the LT_LANG macro, replacing the old documentation of AC_LIBTOOL_TAGS which is no more. * NEWS: Updated. 2004-03-17 Scott James Remnant * m4/libtool.m4: Removed AC_BEFORE references to AC_LIBTOOL_SETUP which is no more. * m4/lt~obsolete.m4: As AC_LIBTOOL_SETUP is no longer referenced, it can be removed from this file. Remove _AC_PROG_LIBTOOL also. 2004-03-14 Ralf Wildenhues * m4/libtool.m4: Remove newlines from lt_ld_extra, so variable can safely be stored in config.cache. 2004-03-14 Michael Pruett * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS0 [irix]: Define archive_expsym_cmds so that --export-symbols will work. 2004-03-11 Peter O'Gorman * ltmain.in (link_all_deplibs,darwin): Link libraries in the correct order. Bug from Zachary Pincus . 2004-03-14 Scott James Remnant * m4/ltmain.in: Only check precious_files_regex if it is not empty. 2004-03-14 Gary V. Vaughan * doc/libtool.texi (Autoconf and LTLIBOBJS): The correct version of Autoconf is 2.54. From Alexandre Duret-Lutz 2004-03-13 Gary V. Vaughan * doc/libtool.texi (Using Automake): Cite correct Automake version for -dlopen quoting. (Autoconf and LTLIBOBJS): Cite correct Autoconf versions throughout. (Distributing libltdl): Use AM_CPPFLAGS; INCLUDES is deprecated. From Alexandre Duret-Lutz 2004-03-05 David Edelsohn * m4/libtool.m4: Disable building static libraries if building shared libraries on AIX 5L. 2004-03-05 Gary V. Vaughan * libtoolize.in: Remove --ltdl-tar. It doesn't work with the current implementation, and seems more or less pointless. * doc/libtool.texi (Invoking libtoolize): Updated. * NEWS: Updated. * doc/libtool.texi: This manual has not been maintained properly for a number of years. Much of what it said was outdated, or plain wrong with reference to modern autotools. This change represents a first pass edit to clean up the obviously wrong. 2004-03-02 Gary V. Vaughan * bootstrap: Prune out my arch mirror dir before running amok through the tree with 'rm -rf'! 2004-03-02 Patrick Welche * doc/libtool.texi (LT_INIT): Dumb typos fixed. 2004-02-23 Gary V. Vaughan * ltmain.in : Add missing --help doc for -inst-prefix option. * ltmain.in : Add missing --help doc for -shrext option. * ltmain.in (IFS): Move '\n' to beginning of IFS so that emacs doesn't offer to strip trailing ' \t' on every save. * ltmain.in: Add missing --help doc for --preserve-dup-deps. 2004-02-22 Gary V. Vaughan * Makefile.maint (web-manual): Generate the web manual carefully so that links will still work when it is uploaded to gnu.org. * README-alpha: Note that this rule should be used at release time. 2004-02-20 Gary V. Vaughan Sweeping changes to the user interface to libtool from `configure.ac' to be more like AC_INIT and accept a space delimited list of options. Instead of calling `AC_LIBTOOL_DLOPEN; AC_PROG_LIBTOOL', we now recommend `LT_INIT([dlopen])': * m4/libtool.m4 (AC_PROG_LIBTOOL, _AC_PROG_LIBTOOL) (AC_LIBTOOL_SETUP): Removed. Added AU_DEFUNs. (LT_INIT): Replace with an Autoconf like interface which accepts a version number as a minimum required libtool release at configure time. * m4/ltoptions.m4: New file inspired by automake/m4/amoptions.m4, which additionally flags an error if the configuring libtool macros are not new enough according to LT_INIT. (LT_OPTION_DEFINE): New macro to declare option handlers. (dlopen, win32-dll, shared, disable-shared, static) (disable-static, fast-install, disable-fast-install, pic-only) (no-pic): Newly LT_OPTION_DEFINEd option handlers that use... (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC, _LT_ENABLE_FAST_INSTALL) (_LT_WITH_PIC, _LT_WIN32_DLL): New macros to handle LT_LIBTOOL_INIT options... * m4/libtool.m4 (AC_ENABLE_SHARED, AC_ENABLE_STATIC) (AC_ENABLE_FAST_INSTALL, AC_LIBTOOL_DLOPEN, AC_LIBTOOL_WIN32_DLL): ...to replace these user interface macros, now defined as AU_DEFUNs. (AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL): Removed. No longer required with LT_INIT_LIBTOOL interface. Added AU_DEFUNs. (AM_ENABLE_SHARED, AM_DISABLE_SHARED, AM_ENABLE_STATIC) (AM_DISABLE_STATIC): Changed AU_DEFUNs to match new interface. (_LT_SETUP): Internal to LT_INIT, replaces AC_LIBTOOL_SETUP. * m4/lt~obsolete.m4 (AC_LIBTOOL_SETUP, _AC_PROG_LIBTOOL) (_LT_PROG_LTMAIN): More AC_DEFUNs that have been retracted. * configure.ac: Use new interface. * doc/libtool.texi: Document new interface. * NEWS: Updated. 2004-02-18 Gary V. Vaughan * commit (SHELL): Set it explicitly, incase some madman is using tcsh as their login shell :-b 2004-02-15 Scott James Remnant * Makefile.am (m4/ltversion.m4): Generate serial number by removing initial '1.' from the revision, replace @MACRO_SERIAL@ with this new variable. * m4/ltversion.in: Use @MACRO_SERIAL@ for the serial number as some shells don't like a '.' when using test. * m4/ltversion.in: Add a serial number to this file otherwise libtoolize will refuse to copy it into $pkgdatadir, where it is needed by m4/libtool.m4. 2004-02-15 Peter O'Gorman * m4/libtool.m4, ltmain.in: Rename shrext to shrext_cmds. 2004-02-13 Scott James Remnant * ltmain.in, libtoolize.in, commit, config/mailnotify: Correctly quote usage of $basename and $dirname to avoid (unlikely) path expansion. * tests/sh.test: Test the config/ltmain.sh and libtoolize in the build directory not the source directory, where they won't exist during 'make distcheck'. * ltmain.in: Revert one line of previous intendation clean-up to enable one of the sh.test checks to pass. * tests/cdemo/configure.ac: Drop AC_PREREQ back to 2.54, this was debris from Gary's cvsapply going mad and wasn't backed out. * Makefile.am (pkgmacro_DATA): We have to distribute m4/ltversion.m4 because it can be needed before the Makefile that generates it exists. 2004-02-13 Gary V. Vaughan * commit (MKSTAMP): Look for mkstamp in the right place. 2004-02-12 Scott James Remnant * Makefile.maint, Makefile: Move rules intended for Libtool maintainers only out of the Makefile we distribute and into one that we only need keep in CVS. * README-alpha: Add -fMakefile.maint to the instructions where needed. 2004-02-12 Albert Chin-A-Young Scott James Remnant * ltmain.in: Fix typo: duplcations -> duplications, Fix indentation of a handful of badly indented blocks, Fix last remaining use of 'grep' to $GREP, Remove unnecessary trailing slash where we break a line on a command separator. * m4/libtool.m4: Also remove unnecessary trailing slash where we break a line on a command separator. 2004-02-12 Scott James Remnant * m4/ltoptions.m4: This got committed by an over-keen Gary, but the support for this isn't ready yet and if aclocal decides to m4_include this (which it will) you'll get a non-functioning libtool. Removed. * ltmain.in: Remove duplicated version checking block. * bootstrap, m4/libtool.m4: Argh, Gary went crazy after cvsapply went crazy and backed out more than he should've. This patch puts some of it back again. * ltmain.in, libtoolize.in, commit, config/mailnotify: Remove $SED from definitions of $dirname and $basename and prefix each use with it instead. Some shells (zsh) treat the expansion as a single command instead of a command with arguments. * config/mailnotify (func_sendmail): Look for sendmail in a couple of common non-PATH locations as well. * ltmain.in: Fix typo: macro's -> macros. * ltmain.in: Correct definition of basename sed expression to not include single quotes. 2004-02-12 Gary V. Vaughan * libtoolize.in: Use $progpath as for ltmain.in to work around the IRIX bug described below. * commit, config/mailnotify: Ditto. Resynch with cvs-utils HEAD. 2004-02-12 Albert Chin-A-Young , Gary V. Vaughan * ltmain.in (progpath): Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh is ksh but when the shell is invoked as "sh" and the current value of the _XPG environment variable is not equal to 1 (one), the special positional parameter $0, within a function call, is the name of the function. So, rather than using "$0" in functions, we set $progpath in the body and use that everywhere instead (incase of code refactoring later). (EXIT_SUCCESS, EXIT_FAILURE, EXIT_MISMATCH): For clarity. 2004-02-12 Gary V. Vaughan * Makefile.am (EXTRA_DIST): Remove config/mailnotify after all; it is of no use in a distribution tarball. 2004-02-11 Gary V. Vaughan * commit: Fix cut-n-paste error. * commit: Completely change CVS/Root->name sed script to actually work when :ext: is not shown. * commit: Improve CVS/Root->name sed script to work when :ext: is not shown. 2004-02-11 Albert Chin-A-Young * m4/libtool.m4: Fix typo: testring -> teststring. 2004-02-11 Gary V. Vaughan * commit: Mail a nicer commit notification. 2004-02-10 Gary V. Vaughan * NEWS, bootstrap, configure.ac, ltmain.in, m4/libtool.m4: * m4/lt~obsolete.m4, tests/cdemo/configure.ac: Arghh. cvsapply just went crazy and committed a bunch of stuff that shouldn't have been in the last changeset. The patch backs it all out. * config/mailnotify: New file for mailing commit notifications, imported from cvs-utils. * commit: Updated from cvs-utils and tweaked for libtool. * Makefile.am (EXTRA_DIST): Add config/mailnotify. 2004-02-06 Gary V. Vaughan * bootstrap: Remove vcl.tmp, otherwise it can interfere with make. * Makefile.am (vcl.tmp): Move comment out of multi-line command, as this rule is called from bootstrap as if it were a Makefile. * m4/ltversion.in: New file to capture what version number macros are being used. * Makefile.am (m4/ltversion.m4): New rule to create it from m4/ltversion.in. (nodist_pkgmacro_DATA): Add m4/ltversion.m4. (EXTRA_DIST): Add m4/ltversion.in. * m4/libtool.m4 (AC_LIBTOOL_SETUP): AC_REQUIRE LTVERSION_VERSION from ltversion.m4. * bootstrap: Call the Makefile.am to create an initial m4/ltversion.m4. * ltmain.in: Diagnose version mismatches of various flavours. * TODO: Remove mismatch item. * NEWS: Updated. * Makefile.am ($(top_builddir)/config.status): Removed. * configure.ac (CONFIG_STATUS_DEPENDENCIES): This substitution is how automake-1.8 now informs all Makefiles when config.status needs to be rebuilt. Reported by Alexandre Duret-Lutz * configure.ac (AC_CONFIG_FILES): Generate libtoolize from here. * Makefile.am (libtool, libtoolize): These rules are redundant. Automake generates better rules for remaking these files. * m4/libtool.m4 (AC_LIBTOOL_SETUP): Catch unexpanded macros with beginning with LT_ and _LT_. * configure.ac (LT_MAJOR, LT_MINOR, LT_MICRO, LT_ALPHA): Renamed to lt_major, lt_minor, lt_micro, lt_alpha to save triggering the unexpanded macros error. * m4/libtool.m4 (AC_PROVIDE_IFELSE): Removed. We now require Autoconf 2.58, which ships this macro anyway. * Makefile.am: Comment typo. * m4/libtool.m4 (LT_PREREQ): Declare the minimum release number that is required for the calling code. * doc/libtool.texi (AC_PROG_LIBTOOL): Document it. * NEWS: Updated. 2004-02-05 Peter O'Gorman * ltmain.in (infer_tag, win32_libid): Style changes. Rename infer_tag to func_infer_tag and win32_libid to func_win32_libid. * m4/libtool.m4 (cygwin): rename win32_libid to func_win32_libid. 2004-02-04 Peter O'Gorman * ltmain.in (infer_tag): Move tag inferrence to a shell function. Also test $base_compile against $CC with escaped arguments. Bug reported by Geoff Keating . 2004-02-03 Scott James Remnant * Makefile.am (install-data-hook): Manually make config.guess and config.sub executable after they are installed as _DATA. We can't use _SCRIPTS because the various program name transforms may be applied to them. (dist_pkgdata_DATA): List config.guess and config.sub here (pkgdata_SCRIPTS): instead of here. 2003-02-03 Scott James Remnant * ltmain.in: Create temporary directory under a strict umask rather than running chmod afterwards, preventing a race condition where the directory could be replaced with a symbolic link in the time between the two commands. 2004-01-31 Peter O'Gorman * m4/libtool.m4 (_LT_CONFIG_STATUS_DECLARE): Change `echo to `$echo, causes problems when builtin echo is broken. Reported by Ralf Wildenhues . 2004-01-27 Scott James Remnant This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) (FETCHFILES): Remove obsolete libltdl mentions. * README-alpha: Update CVS instructions as everything's changed on Savannah. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements; remove old reference to OLDVERSION. 2004-01-25 Scott James Remnant * NEWS: Include 1.5.2 release information. 2004-01-22 Gary V. Vaughan This fixes a bug in the libtoolize ltdl source installation rules, which were copying Makefile.in from the libtool tree into the package running libtoolize. Now we explicitly list the files to copy to force the package to generate its own Makefile.in: * libltdl/Makefile.am (libltdl_la_SOURCES, libltdlc_la_SOURCES): Add ltdl.h. (ltdldatadir): New variable for installation directory of libtoolize --ltdl files. (ltdldata_DATA): Tell automake what files to copy there at install time (and remove at unistall time!). (local-install-files): Removed. This hack is not required anymore, the automake generated install rules are much more advanced than this. * Makefile.am (install-data-hook, uninstall-local): Removed. Libltdl files for libtoolize are installed by their own Makefile now. 2004-01-22 Jeff Squyres * m4/libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): Some compilers (e.g. Intel Linux icc compiler) write temporary files to the current directory. These compilers do support -c and -o simultaneously but wrongly fail the test due to the failure to create temporary files. It is incorrect to penalize compilers which write temporary files to the current directory so the 'chmod -w .' is therefore removed. 2004-01-22 Gary V. Vaughan * m4/libtool.m4 (LT_AC_PROG_EGREP): Wrapper for AC_PROG_GREP. AIX has a brain-dead grep that only handles lines < 2048 characters. Default GREP incase we are not using a future autoconf that sets it for us :-) Changed all callers to use $GREP instead of grep, and to AC_REQUIRE LT_AC_PROG_EGREP. Declare GREP as a libtool config var. * ltmain.in: Use it. * tests/sh.test (scripts): Accept `if $GREP "^foo=bar"' by tightening the regexp. Reported by Albert Chin-A-Young 2004-01-21 Nick Hudson * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [netbsd*]: Remove gratuitous ${libname}${release}${shared_ext} from library_names_spec. 2004-01-21 Peter O'Gorman * m4/libtool.m4 (AC_PROG_LD_RELOAD_FLAG): On darwin change the reload_cmds to use $CC, otherwise ld will thin out any fat objects. 2004-01-18 Benjamin Reed * ltmain.in: Fix handling of frameworks in search paths. Also a one-liner fix to eval shrext in the libtool library search. 2004-01-16 Gary V. Vaughan * configure.ac (AM_INIT_AUTOMAKE): Require 1.8 for bootstrap, or else aclocal.m4 is huge, and m4 directory is not distributed. * configure.ac (AC_CONFIG_HEADERS): Create config.h in $top_srcdir. * m4/ltdl.m4 (AC_LIB_LTDL): Run AC_CONFIG_HEADERS for the user if necessary. Calculate filename from first argument to AC_CONFIG_HEADERS, and substitute as CONFIG_H. * libltdl/Makefile.am (AM_CPPFLAGS): Make sure we are searching in $top_srcdir for headers. (DEFS): Override the default HAVE_CONFIG_H with the config.h filename. (ltdl.lo): Reference config.h via $(CONFIG_H). * libltdl/ltdl.c (HAVE_CONFIG_H): Ditto. 2004-01-15 Scott James Remnant * m4/lt~obsolete.m4: Add a file containing aclocal-fooling macro definitions which stop the contents of an installed libtool.m4 ending up in our aclocal.m4 when we bootstrap. * Makefile.am (pkgmacro_DATA): Note that we don't need to add lt~obsolete.m4 to this list. 2004-01-12 Gary V. Vaughan * m4/libtool.m4 (_LT_COPYING): Factor out copyright message so it only needs to be updated in one place. (AC_LIBTOOL_CONFIG): Refactor to be more readable. Only add tags if a compiler was found; ie if you have no gcj compiler, don't tack the GCJ tag onto the generated libtool script. 2004-01-13 Peter O'Gorman * m4/libtool.m4: Quote shrext as it is evaled in ltmain. 2004-01-11 Scott James Remnant * ltmain.in: new -precious-files-regex link mode option to prevent removal of matching files from the temporary output directory. (Debian Bug #221420) * doc/libtool.texi: document the new option. * NEWS: announce the new option. 2004-01-11 Gary V. Vaughan * libtoolize.in (func_copy_all_files): s/xfunc_copy/Xfunc_copy. Now the test can actually succeed sometimes. 2004-01-09 Gary V. Vaughan * libtoolize.in: Break out of the command argument parse loop when -- is encountered. 2004-01-08 Gary V. Vaughan * libtoolize.in (func_copy_all_files): s/test "x/test "X/ to keep tests/sh.test happy. 2004-01-07 Gary V. Vaughan * Makefile.am (aclocal_macros, aclocal_DATA): Removed. (EXTRA_DIST): Remove m4 macro files; they are automatically added by automake. (pkgmacrodir): Where to install libtool macro files. (pkgmacro_DATA): List installable libtool macro files. (install-data-local): Remove previous versions of ltdl.m4 and libtool.m4 from their old location. * libtoolize.in: Use new pkgmacrodir installed macros when libtoolizing a project. Treat libtool.m4 and ltdl.m4 specially, and func_serial_update() any other files from pkgmacrodir. (pkgmacrodir): Where to find installed libtool macro files. (aclocaldir): Removed. (func_copy_all_files): Add an optional callback parameter to control how files are copied. If the callback is passed, don't tell it whether it can copy or not. (func_serial): Exchange parameters and make macro_regex optional, so that this function can be used to extract serial numbers from files with the traditional /^# serial [1-9][0-9]*$/ syntax. Changed all callers. (func_serial_update): Make macro_regex optional last parameter, so that this function can be used as a callback for func_copy_all_files(). Changed all callers. * m4/ltsugar.m4: Add a serial number. 2004-01-07 Gary V. Vaughan A complete rewrite of the m4 code involved in the generation of libtool via config.status. The old way involved manually synchronising disparate bits of shell code in several macros, to quote a copy of a shell variable, put that in config.status, maybe add it to some quotation loops to prevent early expansion, and then add a block to _LT_CONFIG_COMMANDS to bring it into the libtool script. The new way is to mark shell variables for propogation using _LT_DECL for language independent variables, or _LT_TAGDECL for those that need to be propogated in several language flavours. The marking can be done in the macro that probes the variables, and this new m4 machinery takes care of synchronising all the other bits of code at autoconf time: * m4/ltsugar.m4: New file. Macros that are useful outside the context of libtool. Initially, contains some generalised list management macros, and the scaffolding for dictionary type data storage and retrieval. * Makefile.am (aclocal_macros): Install ltsugar.m4. * m4/libtool.m4 (_LT_DECL): Mark a shell variable for export to the libtool script, along with a comment, and hints for quoting and renaming. (_LT_TAGDECL): Similarly mark a tagged shell variable for export in each tag. (lt_decl_tag_varnames, lt_decl_quote_varnames) (lt_decl_dquote_varnames, lt_decl_varnames_tagged) (lt_decl_all_varnames): New utility macros for managing lists of shell variable names from _LT_DECL and _LT_TAGDECL. (_LT_CONFIG_STATUS_DECLARATIONS, _LT_CONFIG_STATUS_DECLARE): Expand to correctly quoted variable declarations in config.status from all marked shell variables. (_LT_LIBTOOL_DECLARE): Expand to commented and quoted variable declaration for libtool tag section. (_LT_LIBTOOL_CONFIG_VARS, _LT_LIBTOOL_TAG_VARS): Pass all marked variables to _LT_LIBTOOL_DECLARE. (_LT_CONFIG_COMMANDS): Use _LT_CONFIG_STATUS_DECLARATIONS and friends to generate all the variable passing shell code for config.status, to get marked variables from libtool.m4 into libtool itself eventually. (AC_LIBTOOL_CONFIG): Generate marked variable code for libtool tag configuration. Changed all client macros to mark variables suitably rather than the hand pasting that was necessary previously. (AC_PROG_SED): Renamed from LT_AC_PROG_SED. (LT_AC_PROG_SED): Wrap AC_PROG_SED, and mark shell variables for propogation to the libtool script. 2004-01-07 Gary V. Vaughan * libtoolize.in (seen_gettext): Removed unused variable. 2004-01-06 Gary V. Vaughan * libtoolize.in (func_scan_files): Don't assume the existence of aclocal.m4. Make the comment more descriptive. Reported by Alexandre Duret-Lutz * NEWS: Note libtoolize changes. * ChangeLog.2003: New file, containing all the ChangeLog entries from 2003. Trimmed ChangeLog accordingly. * ltmain.in: Output 2004 in the copyright from libtool --version. 2004-01-03 Stefan Nordhausen Scott James Remnant * ltmain.in: Don't use the mkdir -p option when creating a temporary output directory so a symlink attack can't be used to arbitrarily chmod other directories on the system if libtool gets run as root. 2004-01-02 Peter O'Gorman * m4/libtool.m4: Ensure that ${ZSH_VERSION+set} is properly escaped. * m4/libtool.m4 (CDPATH): Change the CDPATH setting so that it allows for zsh differences, as noted in the autoconf manual's Portable Shell - Special Shell Variables section. 2004-01-02 Scott James Remnant * .cvsignore: Ignore stamp-vcl created by the Makefile. 2004-01-02 Bob Friesenhahn Joe Orton * m4/libtool.m4 (AC_LIBTOOL_CONFIG): Add extra blackslash in front of all the inner double-quotes as this is removed on Solaris, IRIX and AIX leading to broken definitions in config.status. 2004-01-02 Scott James Remnant * NEWS: Next release will be in 2004. 2003-12-31 Scott James Remnant * ltmain.sh: Infer tagged configuration for link mode with the full compiler arguments available rather than only the first. 2003-12-31 Alexandre Duret-Lutz * ltmain.sh: Quote $exec_cmd before it is eval'ed, so that libtool --mode=execute echo '4 * 5' does not expand the `*'. 2003-11-28 Peter O'Gorman * m4/libtool.m4: Move things around so that "setopt NO_GLOB_SUBST" to make zsh behave wrt \ escapes happens early in config.status. 2003-11-27 Gary V. Vaughan * libltdl/configure.ac: Removed. * configure.ac (AC_CONFIG_HEADERS): Merged from libltdl/configure.ac. (AC_LIB_LTDL): Ditto. (AC_CONFIG_FILES): Add libltdl/Makefile. (AC_CONFIG_SUBDIRS): Removed. (AC_CONFIG_COMMANDS): Remove generation of libltdl/ltmain.sh. * libltdl/Makefile.am (libtool): Removed references, since we now share $(top_builddir)/libtool. * NEWS: Updated. 2003-11-26 Gary V. Vaughan * Makefile.am (vcl.tmp): Be careful of VPATH builds. * Makefile.am (EXTRA_DIST): Add stamp-vcl, or we go back to a double configure run from a distributed tarball :-? 2003-11-26 Gary V. Vaughan Okay, the problem I am trying to solve is that when a change (say, bumping the version to 1.6 for the next release) is committed, the timestamp in ChangeLog is updated, but ltmain.sh and libtoolize inherit the pre-commit build number from config.status. This delta notes the change in build number in the unstamped ChangeLog and forces a rerun of configure etc. to roll a new ltmain.sh with the correct TIMESTAMP: * Makefile.am (stamp-vcl): We actually need a new config.status to force the correct timestamp into libtoolize and ltmain.sh, rerunning autoconf has no effect at all if configure.ac hasn't changed. 2003-11-26 Gary V. Vaughan * Makefile.am (stamp-vcl): New rules to force libtool and libtoolize scripts to update when the TIMESTAMP changes in ChangeLog, but the file modification time doesn't (e.g in cvs commit). Otherwise we'll carry on releasing tarballs with the wrong version numbers in the tools! * config/mkstamp: Change output format to ` $rev $date'. * configure.ac: Make the banner more like suggestions in http://www.gnu.org/prep/standards_toc.html Section 4.6. * libtoolize.in: Make --version output conform to the GNU standard. * ltmain.in: Ditto. And tweak the generated file headers to match. 2003-11-25 Gary V. Vaughan * Makefile.am (config.status): Removed. Rebuilding config.status isn't enough, because the TIMESTAMP in configure is still out of date. (configure): We actually need a new configure to force the correct timestamp into ltmain.sh. * Makefile.am (config/ltmain.sh): Removed. Rebuilding ltmain.sh isn't enough, because the TIMESTAMP in config.status is still out of date. (config.status): We actually need a new config.status to force the correct timestamp into ltmain.sh. * Makefile.am (config/ltmain.sh): Note the dependency on the timestamp in ChangeLog so we don't ship libtools that report the wrong version number :-/ * bootstrap: Explain automake and autoconf version dependencies truthfully, and the difference between bootstrap and user dependencies. * configure.ac (AM_INIT_AUTOMAKE): List AUTOMAKE_OPTIONS here. * Makefile.am, doc/Makefile.am, tests/Makefile.am (AUTOMAKE_OPTIONS): Removed from here. 2003-11-24 Gary V. Vaughan * tests/defs (func_configure): cdemo, demo and mdemo are shows signs of indeterminacy for some users. Be more verbose during failure to help track down the cause. 2003-11-22 Peter O'Gorman * ltmain.in: Check for module_cmds if max_cmd_len is exceeded too. * ltmain.in: Move eval to after command separation to allow ~ in paths. * tests/demo-hardcode.test: Call ./libtool not libtool. * ltmain.in: Test $old_striplib before using it, not $striplib. 2003-11-22 Gary V. Vaughan * configure.ac (LASTRELEASE): Calculate it as best as we can from AC_PACKAGE_VERSION. * Makefile.am (distdir): Remove dependency on timestamps so that it is possible to roll a dist without contacting the cvs server. Use `make cvs-release' for that. (cvs-news): Extracted from cvs-dist. (cvs-dist): Depend on cvs-news. (CHECK_LASTRELEASE): Check LASTRELEASE has been set. (prev-tarball): New rule. Use LASTRELEASE to make sure the previous release tarball is present. (cvs-diff): Use CHECK_LASTRELEASE. (xdelta): Ditto. (cvs-release): Depend on prev-tarball, timestamps, cvs-news and fetch. Provided you set LASTRELEASE appropriately, making a full cvs release is just a matter of `make cvs-release', and submitting the files to ftp-upload. 2003-11-19 Gary V. Vaughan * m4/libtool.m4 (_LT_PROG_LTMAIN): Ensure config.status has a value for `ac_aux_dir' when automake is not used. Reported by Patrick Welche . * configure.ac (AC_PREREQ): AS_HELP_STRING was introduced after autoconf-2.57 was released. 2003-11-18 Gary V. Vaughan * libltdl/ltdl.c (lt_dlhandle_find): New function to find a handle by module name. * libltdl/ltdl.h (lt_dlhandle_find): Declare it. * doc/libtool.texi (User defined module data): Document it. * NEWS: Updated. 2003-11-17 Gary V. Vaughan * m4/libtool.m4 (AC_LIBTOOL_SETUP): Uncomment call to _LT_CONFIG_COMMANDS. (_LT_AC_TAG_CONFIG, AC_LIBTOOL_CONFIG): Accumulate tag generation for `config.status' using _LT_CONFIG_SAVE_COMMANDS. Remove AC_MSG_NOTICE noise now that libtool is generated by a single config.status tag. * Makefile.am (libtool): Specify CONFIG_COMMANDS properly now that libtool is generated in one pass. * configure.ac (CONF_SUBDIRS): Make these relative to tests/Makefile.am. (DIST_MAKEFILE_LIST): Adjust to compensate for having removed the `tests/' part in CONF_SUBDIRS. * tests/Makefile.am (DIST_SUBDIRS): Distribute these directories. (SUBDIRS): Set to `.', a NOP, to workaround an automake bug which ignores DIST_SUBDIRS unless SUBDIRS is also set. * Makefile.am (DIST_SUBDIRS): Don't try to distribute the tests subdirectories from here, since the recursive automake dist rule only works with direct child directories. Defer to tests/Makefile.am in this case. 2003-11-15 Scott James Remnant * ltmain.in: In compile mode, delay parsing of -shared, -static, -prefer-pic and -prefer-non-pic until after tagged configuration has been read. In link mode, read tagged configuration before parsing any arguments. These arguments will now work when using a non-C compiler. 2003-11-14 Gary V. Vaughan * NEWS: Mention AC_LIBTOOL_TAGS. * Makefile.am (EXTRA_DIST): List ChangeLog files correctly. * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac: Declare just the tags we need using AC_LIBTOOL_TAGS, reducing the size of the configure script by 50% in most cases. 2003-11-14 Marius Vollmer * doc/libtool.texi (Libltdl interface): libltdl does in fact load dependency libs for lt_dlopen()ed modules. 2003-11-14 Gary V. Vaughan Run our configure.ac files through Autoconf 2.59's autoupdate, and then tweak the results by hand: * m4/libtool.m4 (AC_PROG_LD): In common with all the other AC_PROG_ macros, AC_SUBST the discovered LD. (AC_PROG_NM): Similarly for NM. (LT_AC_PROG_SED): Similarly for SED. * configure.ac: No need to SUBST NM and LD manually any more. (AC_PREREQ): Conservatively downgrade from 2.59 to 2.54. * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac: Ditto. * m4/libtool.m4 (AM_PROG_LIBTOOL, AM_ENABLE_SHARED, AM_ENABLE_STATIC, AM_DISABLE_SHARED, AM_DISABLE_STATIC, AM_PROG_LD, AM_PROG_NM): AU_DEFUN these macros so autoupdate can use the newer definitions. 2003-11-12 Gary V. Vaughan The rules for uploading releases to gnu.org have been updated, and are in fact now rather complicated. This delta updates the release instructions to the describe the new process, and updates the maintainer rules to help automate many of the steps: * README-alpha: Updated release instructions. * Makefile.am (GPG): Name of the program for generating signatures for files to be uploaded. (XDELTA, XDELTA_OPTIONS): Invocation of xdelta. (cvs-dist): Run distcheck before tagging the cvs tree incase distcheck fails, and then generate the gpg signature files. (cvs-diff): Generate the gpg signature files for the diff. (xdelta): New rule for generating the xdelta diffs and associated gpg signature files. (cvs-release): New rule to do all of the above, if you don't mind typing your gpg passphrase over and over again. :-) (fetch): New rule inspired by automakes similar rule for updating files maintained outside the project. * config/config.guess, config/config.sub: Updated with the new fetch rule. 2003-11-11 Gary V. Vaughan * libltdl/ltdl.c (lt_dlinit): Save a function call for each loader added to the list, in exchange for appending loaders to the list with O(N) rather than O(1). The longest the loader list can ever get is 4 (on cygwin with dld installed) so it probably constitutes a small speedup, in addition to making the code much more readable. * m4/libtool.m4 (AC_LIBTOOL_SETUP): Don't define the value for ltmain unconditionally. (_LT_PROG_LTMAIN): New macro to ensure that the shell variable `ltmain' actually points at a suitable `ltmain.sh'. (_AC_PROG_LIBTOOL): Require it. (AC_LIBTOOL_CONFIG, _LT_AC_TAG_CONFIG): Invoke it. * Makefile.am (libtool): ltmain.sh is in the build tree. * libltdl/configure.ac: Ditto. 2003-11-10 Scott James Remnant * ltmain.in: Add -pthread and similar to $deplibs ($compile_deplibs and $finalize_deplibs for programs) when found on the command line or in a .la file's dependency_libs (but don't place them there) so they are honoured when linking both programs and libraries. 2003-11-10 Scott James Remnant * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [linux]: Include directories found in /etc/ld.so.conf in sys_lib_dlsearch_path_spec. 2003-11-09 Peter O'Gorman * ltmain.in (linkalldeplibs,darwin): Fix a bug reported by Idar Tollefsen where a dir could be added to the link line with no '-L' on darwin. 2003-11-07 Gary V. Vaughan * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac: s/AM_PROG_LIBTOOL/AC_PROG_LIBTOOL/. Marching boldly into the 21th century :-$ * m4/libtool.m4 (AC_LIBTOOL_TAGS, AC_ENABLE_SHARED, AC_DISABLE_SHARED, AC_ENABLE_STATIC, AC_DISABLE_STATIC, AC_ENABLE_FAST_INSTALL, AC_DISABLE_FAST_INSTALL, AM_PROG_LIBTOOL, AM_ENABLE_SHARED, AM_ENABLE_STATIC, AM_DISABLE_SHARED, AM_DISABLE_STATIC): These macros must be AC_DEFUNed after all, otherwise aclocal can't find them when it tries to construct `aclocal.m4'. * Makefile.am (install-data-local): Wipe out old installation pkgdatadir before installing new files. * NEWS: Updated. * libtoolize.in (func_scan_files): If libtoolize is run before automake has created install-sh and configure.ac does not mention AC_CONFIG_AUX_DIR, fall back to the current directory for auxdir. 2003-11-07 Robert Millan * m4/libtool.m4 (AC_DEPLIBS_CHECK_METHOD) [GNU/KNetBSD]: Detect inter-library dependencies. 2003-11-06 Gary V. Vaughan * m4/libtool.m4 (_LT_AC_FILE_LTDLL_C): Removed; no longer in use. * m4/libtool.m4: s/ifelse(/m4_if(/g (_LT_AC_SYS_LIBPATH_AIX, _LT_AC_SHELL_INIT, _LT_AC_PROG_ECHO_BACKSLASH, AC_LIBTOOL_LINKER_OPTION, AC_LIBTOOL_TAGS, _LT_AC_TAG_CHECK, _LT_AC_TAG_CONFIG, AC_ENABLE_SHARED, AC_DISABLE_SHARED, AC_ENABLE_STATIC, AC_DISABLE_STATIC, AC_ENABLE_FAST_INSTALL, AC_DISABLE_FAST_INSTALL, _LT_AC_LANG_C_CONFIG, _LT_AC_LANG_GCJ_CONFIG, _LT_AC_LANG_RC_CONFIG, AC_LIBTOOL_CONFIG, _LT_AC_TAGVAR, AM_PROG_LIBTOOL, AM_ENABLE_SHARED, AM_ENABLE_STATIC, AM_DISABLE_SHARED, AM_DISABLE_STATIC): Use m4_define instead of AC_DEFUN for internal macros that do not AC_PROVIDE or AC_REQUIRE, and documented user macros that cannot be AC_REQUIREd because they need arguments, or because that would violate the documented API. * m4/libtool.m4 (AC_LIBTOOL_SETUP): Add a new delay_single_quote_subst sed script to quote single quotes in variables that are copied to `config.status'. (_LT_CONFIG_STATUS_DECLARE): New macro to apply delay_single_quote_subst to a named variable. (AC_LIBTOOL_CONFIG): Use _LT_CONFIG_STATUS_DECLARE to declare all `configure' variables that are copied to `config.status'. (AC_LIBTOOL_PROG_COMPILER_PIC): Fix a quoting bug exposed by _LT_CONFIG_STATUS_DECLARE using the null quadrigraph in the rvalues of lt_prog_compiler_pic. 2003-11-06 Owen Taylor * m4/libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Recognise the 'R' symbol type so read-only symbols can be exported when combining GCC and Solaris LD. 2003-11-06 James Henstridge , Scott James Remnant * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [Linux]: Fix the -export-symbols and -export-symbols-regex options. 2003-11-06 Scott James Remnant * tests/demo-nopic.test: Skip test on hppa, which don't like non-PIC shared libraries. 2003-11-06 Charles Wilson * tests/depdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac: process 'libtool --features' from Makefile, not configure -- because libtool doesn't exist at configure time. * ltmain.in (find_executable, check_executable) [cygwin*, mingw*]: binary wrapper used with uninstalled executables breaks when invoked via execlp/execvp (that is, via $PATH). Handle that case. (fnqualify): Subsumed into find_executable. * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin*, mingw*]: when extracting symbols from an import lib (occurs if --enable-shared --disable-static), the output of $global_symbol_pipe is not the same as when extracting from a static library (the default case). Add extra filters to $export_symbols_cmds to process this sort of output in addition to 'normal' static-lib output. * NEWS: Updated. 2003-11-06 Charles Wilson , Gary V. Vaughan * libltdl/ltdl.c (LT_USE_POSIX_DIRENT): Factored out. (LT_USE_WINDOWS_DIRENT_EMULATION): Move to after include "ltdl.h", as they are affected by __WINDOWS__ definition. (LT_READTEXT_MODE): Use textmode to read .la files. (lt_dlinit): Use LoadLibrary loader as a fallback on cygwin. 2003-11-06 Gary V. Vaughan * libltdl/ltdl.h (__WINDOWS__): Define this if _WIN32 or WIN32 are defined, unless __CYGWIN__ or __CYGWIN32__ are defined. (LT_SCOPE): Now set without reference to __CYGWIN__ definition, since __WINDOWS__ now implies !__CYGWIN__ after canonicalisation. (LT_PARAMS, lt_ptr): Use canonicalised __WINDOWS__ to determine which values to set these macros to. 2003-11-05 Gary V. Vaughan * README-alpha: Mention autotools-announce@gnu.org, and update release note templates. 2003-11-01 Scott James Remnant * ltmain.in: When relinking, place the -L parameter containing the installation prefix directory after the intended destination, so we don't accidentally link against an older installed library. 2003-11-01 Peter O'Gorman * tests/mdemo2/Makefile.am: Let mdemo2 find ltdl.h again. 2003-10-30 Peter O'Gorman * m4/libtool.m4 (Darwin): Fix stupidities for darwin tags support. Makes it work again if AC_LIBTOOL_TAGS is specified in configure.ac. Bug reported by Joe Orton and Christian Schaffner. 2003-10-21 Gary V. Vaughan Start to eliminate the double run of configure in a fresh CVS checkout by generating ltmain.sh, using that to create libtool, and then adding the tags to that, all from config.status. * configure.ac (AC_CONFIG_FILES): Make config/ltmain.sh, and copy it to libltdl. * Makefile.am ($(srcdir)/config/ltmain.sh): This file is now created by config.status. Adjust this rule. (libtoolize): Set CONFIG_COMMANDS to empty to prevent regenerating the libtool script as a side effect of running this rule. * libtool.m4: Bump serial number. Fix comment typos. (_LT_CONFIG_LIBTOOL_INIT, _LT_CONFIG_LIBTOOL, _LT_CONFIG_SAVE_COMMANDS, _LT_CONFIG_COMMANDS: New macros. They don't work for some reason - the variable value quoting in the init section is all wrong. Not used at the moment. (AC_LIBTOOL_CONFIG): Generate libtool from config.status. (_LT_AC_TAG_CONFIG): Add the tags in config.status. (compiler_DEFAULT): Save the compiler value for the DEFAULT tag, or it gets overwritten by the other macros. (EOF): Globally replace with _LT_EOF to avoid namespace pollution. * tests/demo/configure.ac (STATIC): Check $enable_static instead of running ./libtool which doesn't exist yet. (BINARY_HELLDL): Check $lt_cv_sys_global_symbol_pipe with case instead of grepping ./libtool which doesn't exist yet. * tests/pdemo/configure.ac (STATIC, BINARY_HELLDL): Ditto. * doc/libtool.texi (AC_PROG_LIBTOOL): Add some notes about trying to get config details from `libtool --config'. * NEWS: Updated. 2003-10-21 Gary V. Vaughan * ChangeLog, ChangeLog.0, ChangeLog.1: Refactored... * ChangeLog, ChangeLog.2002, ChangeLog.2001, ChangeLog.2000, ChangeLog.1999, ChangeLog.1998, ChangeLog.1997, ChangeLog.1996: ...into entries by year for easier copyright confirmation. * configure.ac, libltdl/configure.ac, tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AM_INIT_AUTOMAKE): Remove redundant arguments. * libltdl/configure.ac: Use quadrigraphs to escape macronames. * bootstrap (reconfdirs): Same as yesterday, only with portable bourne shell syntax. :-/ 2003-10-20 Gary V. Vaughan * bootstrap (reconfdirs): Overridable top dirs for bootstrap, for those times when you don't want to wait for all of the test directories to be rebootstrapped! 2003-10-19 Kevin P. Fleming Charles Wilson * ltmain.in: include --tag options, if specified, in the relink_command in uninstalled .la files. Also, preserve --silent, --debug options when libtool re-execs itself. * NEWS: Updated. 2003-10-19 Charles Wilson * libtoolize.in: protect sed expression against AC_CONFIG_AUX_DIR_DEFAULT. 2003-10-16 Bob Friesenhahn * m4/libtool.m4 (AC_DEPLIBS_CHECK_METHOD): For MinGW, reverted DLL check method back to a working objdump-based test. This is not as concrete a test as using the 'file' command, but it does not require that the 'file' command be available. 2003-10-15 Bob Friesenhahn * doc/libtool.texi (AC_LIBTOOL_TAGS): Incorporate documentation for AC_LIBTOOL_TAGS macro to specifify libtool tags. The now defunct --with-tags option was never documented. 2003-10-15 Albert Chin-A-Young * m4/libtool.m4: Restrict the list of tags that can be created with a new AC_LIBTOOL_TAGS([tag1 tag2 ...]) macro. Deprecate --with-tags. 2003-10-15 Gary V. Vaughan * libtoolize.in: Typo when copying config.sub. From Patrick Welche * demo/Makefile.am (libhell0_a_SOURCES): Do not name sources already built with libtool... (libhell0_a_LIBADD): ...instead name the objects directly. This prevents a long standing warning from automake 1.7+. * pdemo/Makefile.am (libhell0_a_SOURCES, libhell0_a_LIBADD): Ditto. * bootstrap: Make the fake files valid shell scripts with a comment incase they get left around. (LIBTOOLIZE): Use a dummy script to prevent the installed `libtoolize' from trashing the distributed libtool.m4, config.guess and config.sub. * configure.ac (AC_CONFIG_TESTDIR, AC_CONFIG_TESTFILES): Comment this out for now, the autotest testsuite rewrite is not ready yet. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (top_distdir): Removed. `autoreconf' needs literals in ACLOCAL_AMFLAGS. 2003-10-14 Gary V. Vaughan * libtoolize.in (func_mkdir_p): Synch with tests/defs; if there are no more directories in the stack, break out of the loop. * tests/Makefile.am (COMMON_TESTS): Remove pdemo-unst.test, which isn't a real test. 2003-10-14 Gary V. Vaughan Refactor all the test case common code into shell functions in tests/defs, and move the various demo directories out of $top_srcdir, and into tests too. The refactoring showed up a number of inconsistencies and latent bugs, as well as fixing (I think!!) the long-standing annoyance with some of the tests giving spurious failures intermittently. While I was here, emacs kindly removed a lot of bogus whitespace and added copyright notices for us: * cdemo, demo, depdemo, f77demo, mdemo, mdemo2, pdemo, tagdemo: Moved from here... * tests/cdemo, tests/demo, tests/depdemo, tests/f77demo, tests/mdemo, tests/mdemo2, tests/pdemo, tests/tagdemo: ...to here. * tests/defs: Factor much common functionality from the test scripts into shell functions. Added a copyright notice. * tests/assign.test, tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/pdemo-unst.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test: Refactored to use new functions in tests/defs. Added a copyright notice. * tests/hardcode.test, noinst-link.test, tests/relink.test, tests/relink.test, tests/mdryrun.test: Ditto. Moved from here... * tests/demo-hardcode.test, demo-noinst-link.test, tests/demo-relink.test, tests/depdemo-relink.test, tests/mdemo-dryrun.test: ...to here respectively. * Makefile.am: Added a copyright notice. * tests/sh.test: Check libtoolize.in for non-portabilities too. * libtoolize.in: Fix non-portabilities found by tests/sh.test. 2003-10-12 Peter O'Gorman * m4/libtool.m4: Speed up max_cmd_len check. 2003-10-08 Gary V. Vaughan * libtoolize.in: AC_CONFIG_M4_DIR has landed in CVS autoconf. Only it's called AC_CONFIG_MACRO_DIR. Search and replace. Grumble. ;-) 2003-10-08 Scott James Remnant * libltdl/ltdl.c (lt_dlerror): change return value when no error has occured to NULL to match documentation. (Debian Bug #157229) 2003-10-07 Gary V. Vaughan * ltmain.in: Don't suppress output of PIC mode compile if -no-suppress option is given. * doc/libtool.texi (Invoking libtool): Document it. * NEWS: Updated. 2003-10-07 Marcus Comstedt * m4/libtool.m4 [amigaos-ppc, amigaos-m68k]: Differentiate between amigaos on ppc and m68k. * NEWS: Updated. 2003-10-07 Ralph Schleicher * ltmain.in: Do not create `.o' objects when `-shared' is specified in compile mode. Do not make a static library when `-shared' is specified in link mode. * doc/libtool.texi (Compile mode): Document it. * NEWS: Updated. * doc/libtool.texi (Compile mode): Be more specific about the effect of `-static'. * ltmain.in: Do not create `.lo' objects when `-static' is specified. * NEWS: Updated. 2003-10-07 Gary V. Vaughan * doc/libtool.texi (Invoking libtool): Updated. * ltmain.in: Add missing clean and finish modes to the shorthand options. * ltmain.in: Typo in the --mode shorthand. 2003-10-07 Scott James Remnant * m4/libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Remove dead code for platforms that have been using pass_all for some time now. 2003-10-07 Gary V. Vaughan * libtoolize.in: Completely rewritten. * Makefile.am (AUTOMAKE_OPTIONS): Reduced to 1.7. The 1.8 requirement just made the distribution much smaller due to m4_includes. 1.7 will bootstrap libtool just fine. * NEWS: Updated. 2003-10-05 Peter O'Gorman , Gary V. Vaughan * ltmain.in: Remove inferrence of mode, add shorthand for mode choice. * ltmain.in: Specifying -allow-undefined is now an error. 2003-09-29 Scott James Remnant * m4/libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use pass_all for linux* solving many build problems on ARM, and hopefully preventing any future ones. (Debian Bug #191133 and #190569) 2003-09-29 Bob Friesenhahn , Dalibor Topic * libltdl/ltdl.c: Only include malloc.h if stdlib.h can not be found. 2003-09-26 Alfred M. Szmidt * mdemo2/Makefile.am (INCLUDES): Include `$(top_srcdir)/../libltdl' instead of `../libltdl'. 2003-09-24 Gary V. Vaughan * bootstrap: Rewritten to use autoreconf. * config.guess, config.sub, mkstamp: Moved from here... * config/config.guess, config/config.sub, config/mkstamp: ...to here, respectively. * libtool.m4, ltdl.m4: Moved from here... * m4/libtool.m4, m4/ltdl.m4: ...to here, respectively. * configure.ac: Removed various acinclude.m4 hackery, as these files are no longer needed with automake 1.8. * Makefile.am: Removed various acinclude.m4 hackery, as these files are no longer needed with automake 1.8. (AUTOMAKE_OPTIONS): Require CVS automake. (CONF_SUBDIRS, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, FFLAGS, FLIBS): Automake now makes a Make variable from every AC_SUBST, so these are NOP. (aclocal_macros): These files are now in their own m4 subdir. Changed all clients. (EXTRA_DIST): mkstamp has moved to the new config subdir. Changed all clients. (pkgdata_SCRIPTS): Ditto wrt config.guess and config.sub. (pkgdata_DATA): Ditto wrt ltmain.sh. * f77demo/configure.ac, libltdl/configure.ac (AM_CONFIG_HEADER): Is deprecated in favour of AC_CONFIG_HEADERS. Updated to the latter. * Makefile.am, cdemo/Makefile.am, demo/Makefile.am, depdemo/Makefile.am, f77demo/Makefile.am, mdemo/Makefile.am, mdemo2/Makefile.am, pdemo/Makefile.am, tagdemo/Makefile.am (EXTRA_DIST): Remove acinclude.m4. (ACLOCAL_AMFLAGS): Search new `m4' macro directory. * configure.ac, cdemo/configure.ac, demo/configure.ac, depdemo/configure.ac, f77demo/configure.ac, mdemo/configure.ac, mdemo2/configure.ac, pdemo/configure.ac, tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Declare that config helper scripts are now kept in the new config subdir. * libltdl/configure.ac (AC_CONFIG_AUX_DIR): Removed. Defaults to `.' anyway. 2003-09-21 Robert Millan * libtool.m4: Add GNU/KNetBSD support. * ltdl.m4: Likewise. 2003-09-13 Scott James Remnant * libtool.m4: allow STRIP to contain spaces and additional arguments. (Debian Bug #183055) * ltmain.in: include newline in "sensible default" for IFS. (Debian Bug #98492 and #95447) 2003-09-11 Peter O'Gorman * AUTHORS, THANKS: Added myself to AUTHORS, removed from THANKS. 2003-09-10 Peter O'Gorman * mdemo2/configure.ac: Use AC_LIBTOOL_DLOPEN. * mdemo2/main.c: Use LTDL_SET_PRELOADED_SYMBOLS(). * mdemo2/Makefile.am: Set INCLUDES properly and add -dlopen force to make sure the symbols file is included in the link line. * ltmain.in: Accept -framework for darwin and put it in dependency_libs. For non-installed .la's try to avoid having ./.libs/.libs/libfoo.so on the link line. 2003-09-10 Arne Woerner * libtool.m4 [openbsd]: openbsd 3.x needs versioning information. 2003-08-29 Gary V. Vaughan * bootstrap: Typo. 2003-08-29 Alexandre Duret-Lutz * libtool.m4 (_LT_AC_LANG_C_CONFIG): Fix unquoted call to _LT_AC_LANG_C_CONFIG. (AC_PROG_EGREP): Remove, now that Libtool requires Autoconf 2.56. * bootstrap: Issue an upgrade warning. 2003-08-27 Gary V. Vaughan * libtool.m4 (_LT_AC_CHECK_DLFCN): Use the interrim new AC_CHECK_HEADER with compiler rather than preprocessor. (AC_LIBTOOL_SETUP): ...which was introduced in autoconf-2.56, so we AC_PREREQ that version. * ltdl.m4 (AC_WITH_LTDL, AC_LIB_LTDL, AC_LTDL_FUNC_ARGZ): Ditto. 2003-08-27 Gary V. Vaughan Work around a bug in AU_ALIAS in CVS Autoconf that inserts a newline just before AC_FD_CC, by hand updating: * ltdl.m4 (AC_LTDL_SYMBOL_USCORE): s/AC_FD_CC/AS_MESSAGE_LOG_FD/g. 2003-08-05 Jim Pick , Ito Kazumitsu , Gary V. Vaughan Much as we have tried not to make it the callers' responsibility to maintain an lt_dlrealloc function pointer, it is too difficult to implement realloc as malloc/memcpy/free without knowing the size of the original block. rpl_realloc has been deprecated since 2002-10-30, but kaffe has real failures with that so it's time to bite the bullet. Caller gets to maintain lt_dlrealloc: * NEWS (1.5.1): Updated. * libltdl/ltdl.c (LT_DLREALLOC): Use lt_dlrealloc so the user can update the function pointer to match lt_dlmalloc. (lt_emalloc): Use lt_dlrealloc rather than hardcoding realloc. * doc/libtool.texi (Libltdl interface): Describe lt_dlrealloc now that it too has become part of the exported interface to libltdl. 2003-08-01 Peter O'Gorman * libtool.m4 (darwin): Use "-undefined dynamic_lookup" if the user set MACOSX_DEPLOYMENT_TARGET to 10.3 or greater. * libltdl/ltdl.c (dyld): Save the error from the first lookup to report in lt_dlerror(). Otherwise the error is always "Symbol _foo not in /usr/lib/libSystem.dylib". Thanks to Chris Zubrzycki for reporting this. 2003-08-01 Robert Boehne * libltdl/ltdl.h: Tweak the header to support visual studio. 2003-07-31 Greg Eisenhauer * ltmain.in: Provide absolute paths for dlopen and dlpreopen files in generating uninstalled libtool libraries. * mdemo2/main.c, mdemo2/Makefile.am, mdemo2/README, mdemo2/configure.ac, mdemo2/.cvsignore, mdemo/mlib.c, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test: New files for testing above feature. * configure.ac, bootstrap, tests/Makefile.am: Accomodate new test directory. * mdemo/Makefile.am: Build libmlib.la for mdemo2 tests. 2003-07-30 Tony Wyatt * libtool.m4: Remove parentheses around finish_eval part which broke on amigaos pdksh. 2003-07-30 Christiaan Welvaart * tests/dryrun.test: Ignore any 'total' line from "ls -l" output. 2003-07-30 Albert Chin-A-Young * libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): Correctly remove IRIX C++ template files. 2003-07-24 Robert Millan * libtool.m4: More fixes for the new GNU/FreeBSD triplet. 2003-07-14 Bob Friesenhahn * config.guess, config.sub: Synchronized from ftp.gnu.org since Robert Millan's patch requires it. 2003-07-14 Robert Millan * libtool.m4: Fixed to use the new GNU/FreeBSD triplet. * ltdl.m4: Fixed to use the new GNU/FreeBSD triplet. * ltmain.in: Remove GNU/FreeBSD cases, which are no longer needed. 2003-07-14 Andreas Schwab * libtool.m4 (_LT_AC_LOCK): Also match powerpc64-*linux* in addition to ppc64-*linux*. From Markus Meissner . 2003-07-14 Dalibor Topic * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): For AmigaOS with pdksh, set the maximum command line length to 8K since otherwise the test takes over an hour to run. 2003-06-25 Alexandre Oliva , Tim Waugh * libtool.m4: Replace mis-uses of path with pathname. (AC_PROG_LD_GNU): Don't quote $LD when running it. (_LT_AC_LANG_CXX_CONFIG): Use -nostdlib also when linking with g++ and non-GNU ld. 2003-06-11 Gary V. Vaughan * libtool.m4 (AC_LIBTOOL_COMPILER_OPTION): Require LT_AC_PROG_SED to ensure $SED is set by the time it is used. * ChangeLog: Restore missing entries from 2003-04-22. * NEWS: Sychronised from branch-1-5. 2003-06-03 Benjamin Reed * ltmain.in: search libraries in the order of preference, rather than picking .la's even if they're in a less preferred directory. 2003-06-03 Robert Millan * ltdl.m4: Add support for GNU/FreeBSD. * ltmain.in: Add support for GNU/FreeBSD. 2003-06-03 Albert Chin-A-Young * libtool.m4: No need to use sed to remove leading comma when appending to $tagnames. 2003-06-03 Albert Chin-A-Young * tests/defs, tests/demo-conf.test, tests/demo-nofast.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-shared.test, tests/demo-static.test, tests/depdemo-conf.test, tests/depdemo-nofast.test, tests/depdemo-shared.test, tests/depdemo-static.test: Pass build system type to tests to support environment where default system type not equal to build system type (eg. 64-bit HP-UX). 2003-06-03 Peter O'Gorman * libtool.m4 (darwin): Remove checks for Apple-specific gcc. * libltdl/ltdl.c (HAVE_MACH_O_DYLD_H): #define __private_extern__ for fsf gcc. * ltmain.in (darwin): Only add new paths to newlib_search_path. 2003-06-03 Max Bowsher * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Reorder cygwin's system library search path. 2003-06-01 Robert Boehne * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Match all qnx-nto as recent config.guess returns a slightly different string. * ltmain.in: Replace use of "od" with tr. 2003-05-30 Gary V. Vaughan * libltdl/ltdl.c (argz_insert): Corrected an off by one error when checking that before is not out of range. 2003-05-29 Gary V. Vaughan * libltdl/ltdl.c (lt_int_dyld_lib_install_name): Removed unused variable mh1. (sys_dyld_close): Removed unused variable size. 2003-05-21 Bruno Haible * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Add support for GNU/FreeBSD. 2003-04-22 Alexandre Oliva * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on all mips*-linux* variants. 2003-04-22 Samuel Meder * libtool.m4 Switch on $CC and add paterns to cases. 2003-04-22 Peter O'Gorman * libtool.m4: Move the AC_LIBTOOL_SYS_DYNAMIC_LINKER check to be before AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH, becuase the value of shlibpath_overrides_runpath is used in the HARDCODE test and is set in the DYNAMIC_LINKER test. * ltmain.in [darwin]: We never need to relink on darwin. 2003-04-22 Samuel Meder * libtool.m4: Switch on $CC and add patterns to cases. 2003-04-21 Richard Dawe * doc/libtool.texi: Use @ifnottex instead of @ifinfo, to allow production of HTML documentation using makeinfo. 2003-04-14 Robert Boehne * NEWS: Updated. * configure.ac: Bumped version to 1.5a. GNU libtool 1.5 was released. * configure.ac: Bumped version to 1.5. * NEWS: updated. * README-alpha: Updated upload instructions. * README: Changed typo in version description. * config.guess, config.sub, texinfo.tex: Synchronized from ftp.gnu.org. 2003-04-10 Alexandre Oliva * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on all mips*-linux* variants. 2003-04-09 Samuel Meder * libtool.m4 Switch on $CC and add paterns to cases. 2003-04-09 Peter O'Gorman * libtool.m4: Move the AC_LIBTOOL_SYS_DYNAMIC_LINKER check to be before AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH, becuase the value of shlibpath_overrides_runpath is used in the HARDCODE test and is set in the DYNAMIC_LINKER test. * ltmain.in(darwin): We never need to relink on darwin. 2003-04-09 Samuel Meder * libtool.m4 Switch on `basename $CC` not $CC 2003-04-05 Peter O'Gorman * libtool.m4: if ZSH_VERSION is set then setopt NO_GLOB_SUBST so libtool works. Remove zsh echo test code, don't bother checking for zsh anymore in the darwin archive_expsym_cmds. 2003-04-05 Allan Sandfeld Jensen * libtool.m4: Switch on $CC not $cc_basename. 2003-04-02 Robert Boehne * tests/defs: Quote $DJGPP to prevent problems with some shells. Pointed out by Albert Chin 2003-04-01 Peter O'Gorman * libtool.m4: Fix the echo test which I broke earlier. * ltmain.in: Make DESTDIR work on darwin, don't use otool. 2003-03-31 Keith Packard * ltmain.in: New flag -version-number to be used for maintaining compatability with a previously non-Libtool versioning scheme. * doc/libtool.texi: Document it. 2003-03-31 Naofumi Yasufuku * ltmain.in (win32_libid): Fixed sed expression error in win32_nmres evaluation. 2003-03-31 Albert Chin * ltmain.in: Don't pass -R flags found in a .la's dependency_libs variable directly down to the linker. Reported by Tim Mooney . 2003-03-28 Richard Dawe * Makefile.am: Define CONF_SUBDIRS. * tests/defs: Set CONFIG_SITE to /nonexistent, except on DJGPP, which requires its config.site, to work correctly. * tests/cdemo-conf.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-nofast.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-shared.test, tests/demo-static.test, tests/depdemo-conf.test, tests/depdemo-nofast.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/f77demo-conf.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/mdemo-conf.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/pdemo-conf.test, tests/tagdemo-conf.test, tests/tagdemo-shared.test, tests/tagdemo-static.test: Don't set CONFIG_SITE, now that tests/defs sets it. * tests/cdemo-exec.test, tests/demo-exec.test, tests/demo-inst.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/f77demo-exec.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/tagdemo-exec.test: When checking for the existence of executables, use the executable file extension from $EXEEXT. 2003-03-28 Peter O'Gorman * libltdl/ltdl.c (dyld): Remove some debug printf's, fix a bug. * ltmain.in (darwin): Only link against shared libraries when doing link_all_deplibs. 2003-03-25 Robert Boehne * bootstrap: Add f77demo to the directories that AUTOHEADER is run in. 2003-03-21 Wesley W. Terpstra * ltmain.in: Don't accumulate directory information in clean mode. Include properly pathed wrapper script. 2003-03-21 Peter O'Gorman * README: Remove "Important" information about patching automake. * configure.ac: Fix misapplied patch in last commit * libtool.m4 (darwin): Check compiler is apple gcc, add -single_module support so that dyloading c++ shared libraries will work. * libtool.m4 (_LT_AC_TAGCONFIG): Add test -n to the tests so that it will work outside of libtool. * doc/PLATFORMS: Add darwin * f77demo/configure.ac: Add config.h which was misapplied previously. 2003-03-20 Peter O'Gorman * ltmain.in: Always use $echo not echo for consistency. Changes for darwin building. Warn if linking against libs linked with -module. Use module_cmds if available and building a module, move convenience double lib check, * libltdl/ltdl.c: ltdl support for darwin (first blush) * libltdl/README: note that darwin is supported * ltdl.m4: Changes for darwin, and for new shrext * libtool.m4: Changed the way darwin builds stuff (make check passes) added module_cmds, module_expsym_cmds and hardcode_automatic and put them in the libtool script. check for zsh's removal of escapes. Allow libraries to be stripped on darwin. * TODO: Remove the todo about zsh's removal of excapes. note that zsh echo works perfectly well, eval is screwed up. Seems to be fixed in latest zsh. * THANKS: added self :) * f77demo/configure.ac: Use config.h or it doesn't work. 2003-03-19 Robert Boehne * libtool.m4 (_LT_AC_TAGCONFIG): Add test around the macro that adds tags to the libtool script so that they won't run when not needed. * configure.ac: Set F77 to no when no Fortran compiler is found. 2003-03-16 Charles Wilson * ltmain.in (win32_libid): use $SED, not head. 2003-03-02 Alexandre Oliva * libtool.m4 (AC_PROG_LD): Use $CC instead of GCC. (_LT_AC_LANG_CXX_CONFIG): Preserve variables used by AC_PROG_LD, and reset them for a C++ environment. Use the with_gnu_ld setting from AC_PROG_LD. 2003-02-28 Ralph Schleicher * ltmain.in: Only append a dot to the wrapper script when building on cygwin/MSYS (check for $build, not $host). 2003-02-27 Samuel Meder * libtool.m4 (ia64): Add support for Intel compiler (ecc) on IA64 Linux. 2003-02-27 Benjamin Reed * THANKS: Added people who have submitted 3 or more patches to libtool to the THANKS file. * README: Added notes about the Darwin (MacOSX) support. 2003-02-25 Bob McElrath * libtool.m4 (AC_LIBTOOL_PROG_COMPILER_PIC): Add support for the Compaq C compiler for Alpha Linux. 2003-02-25 Benjamin Reed * libtool.m4 (darwin): Disable hardcoding library paths to make relinking unnecessary. 2003-02-24 Robert Boehne * libltdl/configure.ac: Use AC_CONFIG_AUX_DIR([.]) to place auxilary files in the libltdl directory. * Makefile.am: Add to the ltmain.sh rule to copy it into the libltdl subdirectory. * bootstrap: Explicitly handle ltmain.sh in libltdl, and pass --copy to automake. 2003-02-24 Ralph Schleicher * libtool.m4 (AC_LIBTOOL_SETUP): Check for ar. 2003-02-23 Peter O'Gorman * libtool.m4 (darwin): Revamp darwin platform support. * ltdl.m4 (darwin): Support dlcompat if found. * ltmain.in: Make sure ranlib is run if needed when piecewise linking. 2003-02-23 Alexandre Duret-Lutz * ltmain.in (--help): Show mailing-address for bug reports. (--version): Mention only the most recent copyright year. * libtoolize.in (--help): Show mailing-address for bug reports. (--version): Mention only the most recent copyright year. 2003-02-19 Alexandre Oliva * libtool.m4 (AC_PROG_LD): Use $CC instead of GCC. (_LT_AC_LANG_CXX_CONFIG): Preserve variables used by AC_PROG_LD, and reset them for a C++ environment. Use the with_gnu_ld setting from AC_PROG_LD. * libtool.m4: Replace $linker_flags with $compiler_flags wherever it is used as argument to $CC. * libtool.m4: Use linux version_type on IRIX with GNU ld. Prefix -soname, -set_version and their arguments with ${wl}. Add -melf* linker scripts to LD, and use them to determine libsuff, shlibsuff and libmagic. 2003-02-17 Allan Sandfeld Jensen * libtool.m4: Intel icc fixups for version 7.0. 2003-02-17 Ralph Schleicher * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Prepend a dot to the value of the shrext (aka shared_ext) variable and delete it from the library_names_spec and soname_spec definitions. That way the user can omit the shared library suffix by setting it to the empty string. (AC_LIBTOOL_LANG_CXX_CONFIG): Strengthen renaming commands for the KCC compiler. * doc/libtool.texi (Link mode): Update the manual. 2003-02-17 Charles Wilson * ltmain.in (win32_libid): Rewritten to improve speed. 2003-02-11 Richard Dawe * libtoolize.in: Use the program found by AC_PROG_LN_S to create symlinks. 2003-02-08 Jan Kratochvil * ltmain.in: Handle duplicate object file names when performing piecewise archive linking by renaming object files when needed. 2003-02-05 Robert Boehne * libtool.m4 (AC_CHECK_LIBM): Search for a real symbol in the math library rather than 'main', it causes problems for C++ compilers with certain Auto* tools. (AC_LIBLTDL_INSTALLABLE): ditto. 2003-02-05 Christian Cornelssen * libtool.m4 (_LT_AC_LANG_CXX_CONFIG) (AC_LIBTOOL_PROG_LD_SHLIBS): Rewrite printf commands so that the format string cannot be mistaken as an option. Reported by Martin MOKREJS. 2003-02-05 Robert Boehne * libtool.m4: Modify the sys_lib_search_path_spec to allow for either native sed or GNU sed to be used. 2003-02-04 Nick Hudson * libtool.m4: don't use -nodefaultlibs in archive_commands or archive_expsym_commands on NetBSD. 2003-02-04 Albert Chin-A-Young * libtool.m4: Change setting of archive_cmds_need_lc so that it doesn't overwrite the previous setting. 2003-01-28 Albert Chin-A-Young * libtool.m4: Allow compiler variable, CC, CXX, etc. to be a program name with arguments. Original version stripped arguments for CC. 2003-01-28 Charles Wilson * ltmain.in: add code for a binary wrapper to use with uninstalled executables on cygwin/mingw. Make sure that --mode=clean gets shell wrapper and binary wrapper. When sourcing the shell wrapper, invoke using a terminal `.' on cygwin/mingw to avoid the automatic append-.exe behavior. 2003-01-28 Albert Chin-A-Young * libtool.m4: Hardcode library paths into libraries on IRIX. 2003-01-18 Robert Boehne * libtool.m4 (AC_LIBTOOL_PROG_COMPILER_PIC): Don't add -DPIC for languages other than C and C++. 2003-01-13 Albert Chin-A-Young * libtool.m4, ltmain.in: Add support for hppa*64* based on a patch by Ross Alexander . Credit to Ross! Use +b to hardcode library runtime path. Add new variable, $hardcode_libdir_flag_spec_ld, that is equivalent to $hardcode_libdir_flag_spec but is used when ld is used for linking. This works around having to set wl=''. 2003-01-12 Robert Boehne * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Revert an accidental rearranging of dylib and so for darwin. 2003-01-10 Robert Boehne * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Modify the "-shrext" option so that is works properly under Darwin. Modify the processing of 'gcc -print-search-dirs' under Darwin to make it behave like GNU gcc does. (AC_LIBTOOL_CONFIG): Single quote $shrext. * ltimain.in: Expand shared_ext just before it is used so that it can be conditional on the value of $module. 2002-12-31 Benjamin Reed * ltmain.in [darwin]: disable lazy linking, needed to resolve C++ global constructor issues 2002-12-30 Ralph Schleicher Rework by Robert Boehne * ltmain.in: New link option -shrext. * libtool.m4 (AC_LIBTOOL_CONFIG): New libtool variable shrext. (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Replace all hard coded shared library file name extensions in library_names_spec and soname_spec with $shrext. * doc/libtool.texi (Link mode): Document it. 2002-12-30 Charles Wilson * libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): modify $archive_expsym_cmds to restore support for using .def files via the -export-symbols switch. (AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]): in both the [CXX] branch and the default branch, improve $export_symbols_cmds so that DATA symbols are properly labelled. In the default branch, duplicate the _CXX_CONFIG correction for $archive_expsym_cmds. 2002-12-30 Charles Wilson * libtool.m4 (AC_LIBTOOL_RC): AC_PROG_RC doesn't exist -- but we do AC_DEFUN something called LT_AC_PROG_RC. Call that instead. 2002-12-30 Robert Boehne * libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): Copy the section for Darwin from AC_LIBTOOL_PROG_LD_SHLIBS so that the CXX tag doesn't use the g++ defaults for the OS X compiler. 2002-12-30 Albert Chin-A-Young * libtool.m4: Sync methods used to detect GNU ld. 2002-12-20 Robert Boehne * libtool.m4 (AC_LIBTOOL_COMPILER_OPTION, AC_LIBTOOL_PROG_CC_C_O): Do not escape } or ? in sed argument. 2002-12-19 Robert Boehne * ltmain.in: Use the sed program found by LT_AC_PROG_SED so that relink commands don't get truncated. 2002-12-18 Robert Boehne * libtool.m4: Move AC_REQUIRE([LT_AC_PROG_SED]) to AC_PROG_LD so it is invoked earlier. 2002-12-11 Allan Sandfeld Jensen * libtool.m4: Add support for Intel icc compiler for Linux. 2002-12-11 Robert Boehne * ltmain.in: Revert the version +1 change for IRIX, it could cause compatibility problems. 2002-11-22 Christian Cornelssen * libtool.m4 (AC_LIBTOOL_COMPILER_OPTION, AC_LIBTOOL_PROG_CC_C_O): Changed method for compilation with custom flags to be language-independent. Thereby removed CFLAGS/GCJFLAGS mixup bug. Imitate Autoconf-style logging. Log entries no longer discarded by compilation failures. (_LT_AC_LANG_C_CONFIG, _LT_AC_LANG_CXX_CONFIG, _LT_AC_LANG_GCJ_CONFIG): Tuned settings of lt_simple_compile_test_code and lt_simple_link_test_code to avoid warnings that could break some option detections. (AC_LIBTOOL_PROG_COMPILER_NO_RTTI): Removed redundant "-c conftest.$ac_ext" in the argument to AC_LIBTOOL_COMPILER_OPTION. (AC_LIBTOOL_PROG_LD_SHLIBS): Replaced C-specific conftest source code with $lt_simple_compile_test_code, to support the "-lc" test with other languages. 2002-11-19 Paul Eggert Don't assume that egrep and fgrep exist. POSIX 1003.1-2001 no longer requires them; you're supposed to use grep -E and grep -F instead. Also, don't assume that "test -a" works, since POSIX doesn't require it. * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER, _LT_AC_LANG_C_CONFIG, _LT_AC_LANG_CXX_CONFIG, AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE, AC_LIBTOOL_PROG_LD_SHLIBS): egrep -> grep, when that makes no difference. * libtoolize.in: Likewise. * ltdl.m4 (AC_LTDL_SYMBOL_USCORE): Likewise. * ltmain.in: Likewise. * demo/Makefile.am (hc-direct): Likewise. * pdemo/Makefile.am (hc-direct): Likewise. * tests/build-relink.test, tests/build-relink2.test, tests/cdemo-conf.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-nofast.test, tests/demo-shared.test, tests/demo-static.test, tests/depdemo-conf.test, tests/depdemo-nofast.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/hardcode.test, tests/mdemo-conf.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/pdemo-conf.test, tests/tagdemo-conf.test, tests/tagdemo-shared.test, tests/tagdemo-static.test: Likewise. * libtool.m4 (AC_PROG_EGREP): New macro, defined if Autoconf doesn't define. (AC_PATH_TOOL_PREFIX, AC_PROG_LD_GNU): Use it. (AC_PROG_LD, AC_PROG_NM, AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Use shell pattern matching rather than egrep. (AC_LIBTOOL_CONFIG): Set lt_EGREP and EGREP. * demo/Makefile.am (SET_HARDCODE_FLAGS): Use sed instead of egrep. * pdemo/Makefile.am (SET_HARDCODE_FLAGS): Likewise. * tests/defs (EGREP, FGREP): New vars. * ltmain.in: egrep -> $EGREP * tests/assign.test, tests/demo-exec.test, tests/demo-inst.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/sh.test: Likewise. * tests/hardcode.test: fgrep -> $FGREP * tests/f77demo-exec.test: test -a -> test && 2002-11-18 Bob Friesenhahn * ltmain.in: When using gcc, pass -mfoo to the linker via $compiler_flags in order to pass architecture information to the linker (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo but this is not reliable with gcc because gcc may use -mfoo to select a different linker, different libraries, etc, while -Wl,-mfoo simply passes -mfoo to the linker. If there is a better solution, please let me know what it is. 2002-11-18 Bob Friesenhahn * tests/Makefile.am: Conditional assignment of FFLAGS = @FFLAGS@ does not appear to be necessary given that Automake makes this assignment by default. The condition is removed since Automake 1.7.1 complains about it. 2002-11-18 Jakub Jelinek * libtool.m4: Support linking of 64-bit libraries on sparc{,v[789]}-*linux*, s390*-*linux*, ppc*-*linux* GNU/Linux systems when the platform default is to build 32-bit libraries. 2002-11-18 Andreas Jaeger , Bo Thorsen * libtool.m4: Support linking of 32-bit libraries with ld on the x86-64, ppc64, s390x and sparc64 GNU/Linux systems. 2002-11-18 Akim Demaille * ltmain.in: Do not change the PATH in the wrappers: let them launch the real binary using its path. 2002-11-18 Kevin Ryde * doc/libtool.texi (Library tips): Note array dimensions. 2002-11-18 Bob Friesenhahn * tests/*.test: MinGW's MSYS treats files under /dev specially. This causes 'test -r /dev/null/config/site' to improperly report success, causing configure to fail. Change the CONFIG_SITE definition from "/dev/null/config/site" to "/nonexistent" to avoid this problem. 2002-11-18 Charles Wilson * libtool.m4 (_LT_AC_LOCK): remove support for ancient versions of mingw and cygwin. (AC_LIBTOOL_POSTDEP_PREDEP): new function. moved the "find hidden library dependencies" code here from AC_LIBTOOL_LANG_CXX_CONFIG. Attempted to make it multi-tag compatible, but currently only CXX calls it. (AC_LIBTOOL_LANG_CXX_CONFIG): set enable_shared_with_satic_runtimes to 'no' by default Set it to 'yes' for cygwin, mingw, pw32. Replace "find hidden library dependencies" code with a call to the new function AC_LIBTOOL_POSTDEP_PREDEP. Consolidate cygwin and mingw/pw32 stanzas. (AC_LIBTOOL_LANG_F77_CONFIG): set enable_shared_with_static_runtimes to 'no' by default (AC_LIBTOOL_CONFIG): add enable_shared_with_static_runtimes to the list of variables to write into ltmain.sh; include it in the libtool script template as allow_libtool_libs_with_static_runtimes. (AC_LIBTOOL_PROG_LD_SHLIBS): set enable_shared_with_static_runtimes to 'no' by default Set it to 'yes' for cygwin, mingw, pw32. (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): only put cr in regexp if the build_os is mingw, not host_os * ltmain.in (case deplibs_check_method): for all appropriate cases, if allow_libtool_libs_with_static_runtimes, then remove predeps and postdeps from the list of dependencies that must be checked for "dynamicness". For the "none" case, the presence of compiler-generated postdeps and predeps should not trigger "inter-library dependencies not supported" error. (initial setup after arg processing): on cygwin/mingw, allow compiler-generated dependent libs to be duplicated without elimination. (initial search loop for deplibs): if the deplib in question is a libtool lib, then if allow_libtool_libs_with_static_runtimes then parse the .la file. If the .la file only has an "old_library", add the deplib directly to the deplibs list (-lstdc++) and DON'T use the .la file; this allows the (case deplibs_check_method) change above to take effect. * ltmain.in (for pass in $passes loop): remove predeps, postdeps, and compiler_lib_search_path from dependency_libs. 2002-11-08 Robert Boehne * doc/libtool.texi: Add --mode=* to every example using libtool. 2002-11-03 Ossama Othman * ltmain.in: add support for installing into temporary staging area (e.g. 'make install DESTDIR=...') 2002-11-03 Charles Wilson * libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): restore setting allow_undefined_flag=unsupported for cygwin and mingw. (AC_LIBTOOL_PROG_LD_SHLIBS): ditto, for both "normal" gcc/ld and for the (unmaintained?) MSVC case. 2002-11-03 Charles Wilson * doc/libtool.texi (Install mode): document new -inst-prefix option. 2002-11-02 Robert Boehne * ltmain.in: Print a warning if the mode is not specified. * doc/libtool.texi: Document the change that the mode must be specified. 2002-10-30 Charles Wilson * libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): use printf, not echo. (AC_DEPLIBS_CHECK_METHOD): use new shell function win32_libid on w32 platforms * ltmain.in: add new section for shell functions. Add win32_libid() shell function. * f77demo/Makefile.am: add -no-undefined flag 2002-10-30 Rob Browning * ltdl.c (realloc): Remove custom realloc. (#define rpl_realloc realloc) and comment out later code for custom realloc. You can't define your own malloc unless you know enough about the malloc in use to be able to tell how big the src ptr is. The disabled code incorrectly used the *destination* ptr to decide how much to copy. This sometimes results in out-of-bound accesses which cause segfaults. This is a quick hack for now; we may want something cleaner later. (tryall_dlopen_module): check to be sure (dirname_len > 0) before testing first character against '/'. (try_dlopen): check for feof(file) in read loop -- otherwise infinite loop? 2002-10-25 Robert Boehne * ltmain.in (-XCClinker): New flag passes a linking option directly to the compiler driver without appending ${wl}. 2002-10-25 Gary V. Vaughan * README-alpha: Add some release note templates for inspiration and consistency at release time. * Makefile.am (cvs-diff): Compress the generated diff file, ready for upload to ftp.gnu.org. 2002-10-25 Howard Chu * ltmain.in [aix]: Be sure to deal with xlc_r, cc_r and other compiler variants. 2002-10-25 Gary V. Vaughan * libtool.m4 (_LT_AC_FILE_IMPGEN_C): Removed. No longer used. (_LT_AC_FILE_LTDLL_C): Ditto. (AC_LIBTOOL_CONFIG) [cygwin, mingw, pw32, os2]: Don't call _LT_AC_FILE_LTDLL_C or _LT_AC_FILE_IMPGEN_C. 2002-10-25 Albert Chin-A-Young * libtool.m4: When LDFLAGS="-Wl,-brtl,[other options]", the -brtl special-case code for AIX never gets triggered because were are being too specific about how we search for -brtl. Use case statement to avoid this. Remove extraneous semicolon. * ltmain.in: Recognize the IBM xlc compiler. 2002-10-24 Andrew Suffield * libltdl/ltdl.c (lt_dlopenext): Corrected sense of "file not found" check. 2002-10-24 Ossama Othman * ltmain.in: Support compiler names matching g++* 2002-10-23 Bob Friesenhahn * libtool.m4: Removed old Windows cruft. * libtool.m4: Adapted pw32 to be like Cygwin/MinGW. 2002-10-23 Robert Boehne ltmain.in: Do not add 1 to the version under IRIX, it is not necessary. 2002-10-15 Charles Wilson * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): avoid long delay on cygwin/Win9x when computing commandline length. (AC_LIBTOOL_SYS_DYNAMIC_LINKER): fix postinstall_cmds when sources are in a subdirectory * ltdl.m4 (AC_LTDL_SYSSEARCHPATH): use $PATH_SEPARATOR, not $ac_path_separator * configure.ac: move depdemo-specific stuff. You must configure libtool before you can try './libtool --features'. * mdemo-inst.test: set $PATH to include the directory in which the modules are installed (on cygwin, DLL search path is the $PATH) 2002-10-15 Bob Friesenhahn * ltmain.in: MinGW works identically to Cygwin. * libtool.m4: lt_cv_sys_max_cmd_len hard-coded to 8192 * Model MinGW configuration after Cygwin configuration. Some portions share implementation. 2002-10-15 Elizabeth Barham * libtool.m4: Pattern MinGW library naming after that used by Cygwin except use 'lib' prefix rather than 'cyg'. * Transfer some configuration from Cygwin with adjustments for MinGW. 2002-10-15 Albert Chin-A-Young * libtool.m4: When a module is built for AIX, the 'lib' prefix isn't needed, neither is the version. AIX dlopen will honor the RPATH in a library. 2002-10-11 Christoph Egger * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS, darwin): Add -install_name to the link line only when -dynamiclib is specified for a module. Use -bind_at_load when linking C++ shared libraries. 2002-10-04 Elizabeth Barham * libtool.m4 (AC_LIBTOOL_SETUP): GCC now checks -shared to create a dll for Windows targets. 2002-09-24 Robert Boehne * ltmain.in: Fixed a few spelling errors. 2002-09-17 Robert Boehne * libltdl/ltdl.c: Commented out access() call that checks for a library file's existence and permissions, as it appears to fail in every case. 2002-09-09 Albert Chin-A-Young * libtool.m4: Custom $symcode for Tru64 UNIX to catch 'Q', read-only constants. 2002-09-09 Rainer Orth * libtool.m4 (osf[345]): Append $major to soname_spec. Reflect this in library_names_spec. * ltmain.in (osf): Prefix $major with '.' for use as extension. 2002-08-28 Bob Friesenhahn * ltdl.m4 & libltdl/ltdl.c: Port fully to native Win32 API. 2002-07-31 Robert Boehne * f77demo/.cvsignore: New file, forgotten in the last commit. 2002-07-31 Eric Lindahl * libtool.m4 (AC_PROG_LIBTOOL): Added support for the new F77 Fortran support tag. (AC_LIBTOOL_PROG_CC_C_O, _LT_AC_TAGCONFIG): Support F77 tag. (AC_LIBTOOL_F77, _LT_AC_LANG_F77, AC_LIBTOOL_LANG_F77_CONFIG): New macros for F77 tag Fortran support. * configure.ac: Add support for creating the new F77 tag. * bootstrap: Add f77demo directory to the list to be processed. * Makefile.am: Add support for FFLAGS and FLIBS. * tests/Makefile.am: Add new Fortran tests. * tests/f77demo-*.test: New files. * f77demo/configure.ac, f77demo/cprogram.c, f77demo/fooc.c * f77demo/foof.f, f77demo/foo.h, f77demo/fprogram.f * f77demo/Makefile.am, f77demo/README: New files. 2002-07-16 Gary V. Vaughan * libltdl/ltdl.c (tryall_dlopen): We need to catch missing file errors early so that file_not_found() can detect what happened. 2002-06-26 Bob Friesenhahn * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [mingw]: Remove extraneous '=' character which appears in gcc 3.1 -print-search-dirs output. Handle both upper and lower case drive letters when testing for Windows vs POSIX style path output from -print-search-dirs output. 2002-06-24 Robert Boehne * ltmain.in (Piecewise linking): Add a clause to skip creating the export file until the reloadable object file(s) have been created, then use them as input for $export_symbols_cmds. 2002-06-23 Albert Chin-A-Young * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): Need to quote [ and ] for Autoconf. * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): HP/UX needs libltdl_cv_sys_dlopen_deplibs set to yes. 2002-06-23 Kevin Ryde * libtool.m4 (AC_LIBTOOL_SETUP, _LT_AC_LOCK): Use AC_PROVIDE_IFELSE to test AC_LIBTOOL_WIN32_DLL and AC_LIBTOOL_DLOPEN, necessary for autoconf 2.53. 2002-06-23 Gary V. Vaughan * libltdl/ltdl.c (argz_insert): Actually, BEFORE can be NULL when *PARGZ_LEN is non-NULL, so the assertion to the contrary was bogus. Reported by Bob Friesenhahn and Albert Chin-A-Young 2002-06-21 Gary V. Vaughan * libltdl/ltdl.c (foreach_dirinpath): Ensure that filename is '\0' terminated by all code paths. Reported by Lutz Mller 2002-06-20 Gary V. Vaughan From Kevin Ryde : * doc/libtool.texi (Platform quirks): s/dependan/dependen/ * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Ditto. * TODO: Ditto. 2002-06-13 Rainer Orth * ltmain.in (irix, nonstopux): Set major before use. 2002-06-11 Daniel Kobras * libltdl/ltdl.c (try_dlopen): Don't return bogus handle to user if tryall_dlopen() fails. 2002-06-01 Gary V. Vaughan * tests/pdemo-exec.test: Typo. s/hell-static/hell_static/ 2002-05-31 Charles Wilson * NEWS: Updated. * libtool.m4: use $NM to create the symbol list on cygwin, not $ltdll_cmds as on mingw. For all tags, (and host=cygwin) set allow_undefined_flag="" so that the --auto-import magic works properly. For all tags (and host=cygiwn) set always_export_symbols=no -- it is unnecessary thanks to binutils' auto-export magic. * libltdl/ltdl.c: Don't force cygwin to use the LoadLibrary wrapper; use cygwin's builtin implementatino of dl*. * cdemo/Makefile.am: the downside of unsetting 'allow_undefined_flag' -- we must include -no-undefined in the _la_LDFLAGS variable. * depdemo/l1/Makefile.am: ditto. * depdemo/l2/Makefile.am: ditto. * depdemo/l3/Makefile.am: ditto. * depdemo/l4/Makefile.am: ditto. * mdemo/Makefile.am: ditto. * tagdemo/Makefile.am: ditto. * demo/Makefile.am: ditto. But also, we must make special provision to clean up the hell0 wrapper script. * pdemo/Makefile.am: ditto -no-undefined. ditto hell0. And use 'hell_static' instead of 'hell.static'. * tests/pdemo-inst.test: use 'hell_static' instead of 'hell.static'. * tests/pdemo-exec.test: ditto. 2002-05-30 Charles Wilson * tests/build-relink2.test: look for installed libl3.la in $prefix/lib/ as well as $prefix/lib/extra/. 2002-05-30 Gary V. Vaughan * tests/hardcode.test: Use libtool --config to collect the variable values for the test, otherwise the tag values interfere with a straight grep. 2002-05-30 Gary V. Vaughan Finally fix the annoying bug which always adds all tags to the libtool script built by your project configure. Now we set the default tags depending on whether AC_PROG_CXX et. al. are actually called from configure.ac. * libtool.m4 (_LT_AC_TAGCONFIG): Don't default the tagnames when no --with-tags argument is given. (_LT_AC_SHELL_INIT): Factored out from the AC_DIVERT_PUSH code in... (_LT_AC_PROG_ECHO_BACKSLASH): ...which now calls the macro instead. (AC_LIBTOOL_CXX): Use _LT_AC_SHELL_INIT to add CXX to the initialisation sequence for tagnames. (AC_LIBTOOL_GCJ): Similarly for GCJ tag. (AC_LIBTOOL_RC): Likewise for RC tag. 2002-05-21 Jon Meredith * ltmain.in: Fix a problem on SCO OpenServer5 that caused a failure in three depdemo-make tests. For some reason the linker tries to find the dependent libraries using the library search path before it has read the libraries specified with absolute paths in the full commandline. This patch add -L's for each of the dependent library directories so that they can be resolved. 2002-05-09 Nick Hudson * libtool.m4: Update support for NetBSD * ltdl.m4: Make sure that libltdl_cv_func_dlopen and libltdl_cv_lib_dl_dlopen are set and used instead of the ac_cv_ versions. Also, use lt_cv_sys_global_symbol_pipe instread of global_symbol_pipe. This fixes the detection of dlopen on BSD derived plaforms and more importantly fixes need_uscore detection. 2002-05-06 Paul Eggert * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): head -1 -> sed 1q to port to POSIX 1003.1-2001 hosts, like textutils 2.0.21 with _POSIX2_VERSION=200112. 2002-05-06 Paul Eggert * ltmain.in: Don't assume that "sort +2" works, as POSIX 1003.1-2001 says that "sort +2" is supposed to sort the file named "+2". An example host that behaves like this is textutils 2.0.21 with _POSIX2_VERSION=200112. 2002-05-06 Loren James Rittle * ltmain.in: Detect and handle object name conflicts while piecewise linking a static library. 2002-05-02 Dave Vasilevsky * ltmain.in: Remove convenience libraries from deplibs for Darwin. 2002-05-02 Fritz Elfert * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): Modify archive_expsym_cmds to catch properly handle dll alias symbols. 2002-04-24 Kevin Ryde * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use $build_os not $host_os. 2002-04-14 Robert Boehne * doc/libtool.texi (C++ libraries): Finally updated to reflect Libtool's support for C++. 2002-04-14 Jean-Frederic Clere * libtool.m4: Update support for Fujistu-Siemens Computers (FSC). * ltmain.in: Add support for EBCDIC based systems. 2002-04-07 Robert Boehne * libtool.m4 (LT_AC_PROG_SED): Refactor, removing temporary directory and consistent use of the shell variable namespace "lt_ac_". 2002-04-02 Robert Boehne * ltmain.in: Finish the tag matching logic started yesterday and refactor it a bit. 2002-04-01 Robert Boehne * ltmain.in: Handle the case when no tag is explicitly set, and $base_compile has a space in front of $CC, and revert the setting of tagname checked in on 2002-3-14. 2002-04-01 Robert Boehne * tagdemo/foo.cpp: Use C++ IO to catch problems linking to C++ runtime libraries. * tagdemo/main.cpp: Ditto. 2002-03-16 Gary V. Vaughan * TODO: Removed obsolete comments about RMS' package system. 2002-03-14 Robert Boehne ltmain.in: Touch-up to make testsuite pass, and default tagname to CC when it isn't explicitly set. 2002-03-14 Anthony Green * libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): Albert Chin's gcj fix. (AC_LIBTOOL_PROG_COMPILER_PIC): Per Bothner's change for not using -DPIC with gcj. 2002-03-11 Bruce Korb * ltmain.in(compile): bring a touch of order to the option processing 2002-02-09 Gary V. Vaughan * NEWS: Updated. * THANKS: Added Rob Collins and Chuck Wilson for their cygwin work. From Robert Collins : * configure.ac (AC_EXEEXT): Needed for DOSish systems. * libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes when compiling with gcc. (lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT hack, so we just say the pic is the default. (AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a library normally. [cygwin]: Declare C++ compiler characterisics for g++, taking into account the new auto-import support in cygwin ld. * ltmain.in (specialdeplibs) [cygwin]: Be careful about eliminating duplicate -lgcc's from the link line. [cygwin]: Be smarter about .exe suffixes. * demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Support DOSish systems properly. * depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Ditto. * demo/Makefile.am (deplibs-check): Allow for .exe suffix. Use hell_static instead of hell.static for multi-`.' inhibited OSes. * tests/demo-exec.test: Ditto. * tests/demo-inst.test: Ditto. * demo/foo.h [cygwin]: Sanitize cygwin dll support. * demo/foo.c (_LIBFOO_COMPILATION_): No longer required. * demo/hello.c (_LIBFOO_COMPILATION_): Ditto. * depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead of depdemo.static for multi-`.' inhibited OSes. * tests/depdemo-exec.test: Ditto. * tests/depdemo-inst.test: Ditto. * mdemo/Makefile.am (bin_PROGRAMS): Ditto for mdemo.static. * tests/dryrun.test: Ditto. * tests/mdemo-exec.test: Ditto. * tests/mdemo-inst.test: Ditto. * tests/build-relink.test: Be careful about possible .exe suffixes. * tests/noinst-link.test: Allow for .exe suffix. 2002-02-07 Alexandre Oliva Reverted incorrect patch: 2001-10-24 H.J. Lu * ltmain.sh: Allow link against an archive when building a shared library. * libtool.m4 (lt_cv_deplibs_check_method): Always use file_magic for Linux ELF. 2002-01-30 Robert Boehne * libtool.m4 (LT_AC_PROG_SED): Removed a mysterious newline. 2002-01-28 Robert Boehne * libtool.m4 (LT_AC_PROG_SED): New macro tests sed for truncation of output. AC_REQUIRE the new macro. * ltmain.in: Use $SED rather than plan old sed, as set by the new macro LT_AC_PROG_SED. 2002-01-10 Volker Christian * libltdl/ltdl.c (find_handle_callback): treat the result of a call to access(2) correctly when deciding whether a library can be found in a directory from user_search_path. 2002-01-07 Robert Boehne * NEWS: Fixed wrong path for texinfo.tex. * configure.ac: Bumped version to 1.4e. GNU libtool 1.4d was released. * configure.ac: Bumped version to 1.4d. * NEWS: updated. * config.guess, config.sub, texinfo.tex: Synchronised from ftp.gnu.org. 2001-12-06 Jens Petersen * ltmain.in: Replace all test "-a"s by "&& test" for portability. 2001-11-28 Robert Boehne * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Change the factor of saftey as 3/4 of the result was not low enough. 2001-11-28 Gary V. Vaughan * libtoolize.in: The test for whether AC_PROG_LIBTOOL is defined in aclocal.m4 had bitrotted slightly. Reported by Takahiko Kawasaki 2001-11-27 Donald D. Anderson * ltmain.in: Treat freebsd like openbsd, in that -lc/-lc_r should not be explicitly used. ld handles this depending on the presence of the -pthread option. 2001-11-27 Robert Boehne With help from Michael Matz : * ltmain.in: Add a new command line argument --preserve-dup-deps for preserving duplicate dependent libraries. * libtool.texi: Document it. 2001-11-27 Kevin Ryde * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Send "test" warnings to /dev/null, helps FreeBSD and maybe others. 2001-11-15 Albert Chin-A-Young * libtool.m4: quote LTCC because autoconf AC_PROG_CC_STDC macro might add to $CC if options needed by compiler to grok ANSI. 2001-11-15 Gary V. Vaughan From Joseph S. Myers : * ltmain.in: Typo. 2001-11-15 Mo DeJong * ltmain.in: Place parens around a generated relink_command so it is run is a subshell. This avoids an install error where libtool ended up in the wrong directory after relinking a .la file. 2001-10-31 Raja R Harinath * configure.ac (pkgdatadir): Move the invocation of AC_INIT_AUTOMAKE before the use of $PACKAGE in $pkgdatadir. Reported by Bob Friesenhahn 2001-10-28 Gary V. Vaughan From Tom Bates : * libtool.m4 [mips-compaq-nonstopux]: New port. * ltmain.in [mips-compaq-nonstopux]: Support $version_type == nonstopux. 2001-10-28 Albert Chin-A-Young * libltdl/ltdl.c (foreach_dirinpath): change some types to size_t from int because strlen() returns size_t. argz_len changed to size_t because argzize_path() takes 3rd argument as size_t, not int. Based on lint run from Bob Friesenhahn 2001-10-27 Gary V. Vaughan * libtool.m4 (_LT_AC_TAGCONFIG): Cray sed does not allow character sets to contain the separator character. Reported by Kevin Ryde * ltdl.m4 (AC_WITH_LTDL): New macro to add `--with-included-ltdl' option to configure, but to find an appropriate ltdl library and append the right options to link it. 2001-10-24 Kevin Ryde * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): Remove a stray ' quote. 2001-10-24 H.J. Lu * ltmain.sh: Allow link against an archive when building a shared library. * libtool.m4 (lt_cv_deplibs_check_method): Always use file_magic for Linux ELF. 2001-10-12 Guido Draheim * ltdl.m4: Changed "underscode to underscore". 2001-10-06 Gary V. Vaughan * configure.ac: General modernisation and cleanup. * cdemo/configure.ac: Ditto. * demo/configure.ac: Ditto. * depdemo/configrue.ac: Ditto. * ltdl/configure.ac: Ditto. * ltdldemo/configure.ac: Ditto. * mdemo/configure.ac: Ditto. * pdemo/configure.ac: Ditto. * tagdemo/configure.ac: Ditto. 2001-10-04 Albert Chin-A-Young * libltdl/ltdl.c: Match function return type with prototype (add static initializer to file_not_found). 2001-09-30 Gary V. Vaughan * libtool.m4 (AC_LIBLTDL_CONVENIENCE): s/INCLTDL/LTDLINCL/ for consistency with gettext's INTLINCL. Keep the old symbol too for backwards compatibility. (AC_LIBLTDL_INSTALLABLE): Ditto. * doc/libtool.texi (Distributing libltdl): Adjust documentation. 2001-09-22 Albert Chin-A-Young * ltdl.m4 (AC_LTDL_DLLIB): Even though HP-UX 10.20 and 11.00 support shl_load *and* dlopen, dlopen works correctly only with a patch. Because we want to avoid the situation where we build on a system with the patch but deploy on a system without, use shl_load exclusively if found. 2001-09-22 Gary V. Vaughan * libtool.m4 (_LT_AC_FILE_LTDLL_C): Be carefule that the start marker searched for by sed must start in column 0. (_LT_AC_FILE_IMPGEN_C): Ditto. Reported by Tor Lillqvist 2001-09-22 Tor Lillqvist * libtool.m4 [mingw* cygwin*]: Small improvement for mingw-hosted tool support (while still running libtool on cygwin). In that case PATH_SEPARATOR is ':', but gcc -print-search-dirs still prints its search path with ';' as separator. (AC_LIBTOOL_RC, AC_LIBTOOL_LANG_RC_CONFIG): Add support for .rc files (Windows resource files), compiled by the resource compiler (windres in mingw) to .o files. (AC_PROG_NM): Minor bug fix for $PATH elements with spaces in them. * configure.ac: Use LT_AC_PROG_RC. * ltmain.in: Check for .rc files. * NEWS: Updated. * ltmain.in: Add a space to $base_compile in the case statement, as the case labels checks for trailing spaces, but there aren't necessarily in $base_compile. 2001-09-22 Albert Chin-A-Young * libtool.m4: When setting archive_cmds for CC, don't test for $GXX but for $GCC on HP-UX. Indentation fixes. 2001-09-21 Gary V. Vaughan From Tor Lillqvist : * ltmain.in [cygwin* mingw*]: Take care of the difference between wrapper script name and executable name. * libtool.m4 (archive_cmds) [darwin1.[0-2]]: Darwin uses zsh-3.1.6 for /bin/sh, and that shell does not handle escaped quotes properly yet. Reported by Christopher Pfisterer 2001-09-21 Albert Chin-A-Young * libltdl/ltdl.c: Match function return type with prototype (add static initializer to some functions) to prevent warnings from HP-UX cc. 2001-09-21 Gary V. Vaughan * libltdl/ltdl.c: Added support for dmalloc, and uncovered some memory bugs as a result. 2001-09-21 Albert Chin * libtool.m4: Don't include main() when testing for command to parse $NM output because some C++ compilers don't allow you to take the address of main (e.g. HP-UX aCC). * libtool.m4: Some uses of $GXX were unquoted, but GXX is either NULL or yes. Use "$GXX". 2001-09-13 Assar Westerlund * ltdl.m4 (AC_LTDL_DLLIB): call dlopen with arguments so the test does not fail due to a prototype in dlfcn.h 2001-09-13 Gary V. Vaughan * ltdl.m4 (AC_CHECK_HEADERS): Check for assert.h. * libltdl/ltdl.c: If not, disable assertions manually. 2001-09-11 Gary V. Vaughan * bootstrap: Be robust to having no files that need removing. * libltdl/configure.ac (AM_INIT_AUTOMAKE): Bump libltdl version to 1.2. * libltdl/Makefile.am (libltdl_la_LDFLAGS): Bump libtool library version info to 4:0:1. 2001-09-11 Gary V. Vaughan * libtool.m4: No need to undefine([symbols]), proper quotation is enough. 2001-09-10 Gary V. Vaughan * libtool.m4: CVS Autoconf guarantees a decent default IFS, so there is no need for us to preset it anymore. Be careful not to set IFS="${IFS}$PATH_SEPARATOR" for PATH splitting, otherwise spaces in directory names will be lost. Use $PATH_SEPARATOR... don't rely on $ac_path_separator, which was an autoconf internal until just now, when it disappeared! * ltmain.in: Default IFS once, at the start. Reported by Akim Demaille 2001-09-10 Brad * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Missed an instance of Autoconf square bracket quoting style normalisation. * ltmain.in (-lc_r): Style improvement. * doc/libtool.texi: Remove obsolete references to ltconfig. * tests/quote.test: s/ltconfig/\$0/ 2001-09-09 Gary V. Vaughan * libtool.m4: Use Autoconf square bracket quoting style consistently throughout. 2001-09-08 Gary V. Vaughan * bootstrap: Cleanup `autom4te' and `libtool' so that we don't get caught by something from a previous build. * libtool.m4 (archive_cmds, archive_expsym_cmds) [solaris*]: Revert my 2001-09-06 patch. (no_undefined_flag)i [solaris*]: Revert Alexandre's 2001-04-11 patch. 2001-09-07 Gary V. Vaughan * libltdl/ltdl.c (foreach_dirinpath): argz_len should be a size_t. Reported by Albert Chin 2001-09-06 Gary V. Vaughan * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [solaris*]: Typo. s/GXX/GCC/. * libtool.m4 (archive_cmds, archive_expsym_cmds) [solaris*]: Changing no_undefined_flag from `-z text' to `-z defs' (see entry below at 2001-04-11 Alexandre Oliva ) has a problem. when linking a shared library with gcc calling /usr/ccs/bin/ld (eg. the gcc supplied with Solaris 8 companion CD), using the flag -no-undefined, shared library linking will always fail because of the unresolved symbols from libgcc.a. Consequently we have to provide a path to libgcc.a when linking shared libraries in conjunction with -no-undefined! From Michael Pruett : * libltdl/ltdl.c (find_module): `0' valued arguments to tryall_dlopen_module() must be explicitly cast to avoid compiler warnings on some environments. From Daniel Johnson : * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [darwin*]: Move from GNU ld section to non-GNU ld section. 2001-09-05 Robert Boehne * pdemo/Makefile.am (helldl): Automake 1.4 can't find the target if we use helldl$(EXEEXT), and Automake 1.5 barfs unless we do. Using both targets to the left of the colon seems to work though! 2001-09-03 Gary V. Vaughan * demo/Makefile.am (helldl): Automake 1.4 can't find the target if we use helldl$(EXEEXT), and Automake 1.5 barfs unless we do. Using both targets to the left of the colon seems to work though! 2001-09-03 Brad * ltdl.m4 [AC_LTDL_SYS_DLOPEN_DEPLIBS]: Teach ltdl about the behavior of OpenBSD's dlopen(). 2001-09-03 Gary V. Vaughan From Marius Vollmer : * libltdl/ltdl.c (tryall_dlopen_module): Don't forget to propogate errors over recurse levels. 2001-09-03 Brad * libtool.m4 [openbsd*]: More improvements to the OpenBSD port. 2001-09-02 Gary V. Vaughan From Albert Chin : * libtool.m4 (_LT_AC_LANG_C_CONFIG) [aix4*]: Be careful with shared namespaces for static and shared libs. (AC_LIBTOOL_DLOPEN_SELF): If all else fails, try dld_link from GNU DLD. 2001-09-02 Christopher Pfisterer * libtool.m4, ltmain.in: Linker flag and version numbering fixes for darwin. 2001-09-02 Gary V. Vaughan Based on a patch from Marius Vollmer : * NEWS: updated. * ltdl.m4 (AC_LIB_LTDL): Check for unistd.h. * ltdl.c: Include unistd.h if it exists. (LTDL_SEARCHPATH_VAR): Macro to prevent hardcoding "LTDL_LIBRARY_PATH". (LTDL_ARCHIVE_EXT): Macro to prevent hardcoding ".la". (archive_ext): Have only one copy of ".la" in the readonly segment of the compiled library. (find_handle_callback): Don't bother trying to dlopen the file if it doesn't exist. (find_handle): Don't bother searching for files if no search_path was supplied. (file_not_found): A new function to determine whether the last error was due to a file not found condition. (try_dlopen): Renamed from lt_dlopen() and changed to have the same footprint as tryall_dlopen. This involved a minor rewrite of much of the internals of this function. (lt_dlopen): A new function wrapped arounf try_dlopen(). (lt_dlopenext): If a file already has a suitable extension, don't bother adding additional extensions and trying to open those. Tidy up the rest of the code to prevent continued searching with an eventual FILE_NOT_FOUND when a genuine failure earlier in the search process could be legitimately reported. * demo/Makefile.am (helldl$(EXEEXT)): Automake-1.5 made me change this from just `helldl'. 2001-07-31 Robert Boehne * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) Fixed a problem with export_symbols_cmds not being set for CXX tags, and not being properly set for any tag under AIX/Power. 2001-08-19 Ossama Othman * libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): Corrected and improved error message that is displayed when there was a problem compiling the C++ test program. It still mentioned the now non-existent `ltcf-cxx.sh' file. * doc/libtool.texi (LTDL_SET_PRELOADED_SYMBOLS): Removed parentheses at end of starting "defmac" line, as pointed out by makeinfo. 2001-08-18 Brad * ltmain.in: Do not remove -lm from deplibs for OpenBSD. 2001-08-16 Gary V. Vaughan * libltdl/ltdl.c (argz_create_sep): Don't forget to include the terminating '\0' when counting argz_len. (argz_create_sep): When canonicalizing argz, don't forget to copy the terminating '\0', incase canonicalization has shortened argz. (argz_stringify): Don't covert the final '\0' to a separator. 2001-08-15 Gary V. Vaughan * libltdl/ltdl.c (lt_dlhandle_next): Now we can loop through all loaded module handles as originally intended. * libltdl/ltdl.c (lt_dlseterror): Oops. This never worked either, due to a pair of typos. Now fixed. * libltdl/ltdl.c (N_ELEMENTS): Deleted. How come nobody noticed there was no way this could have ever worked? (lt_dlcaller_set_data): Now that valid caller_ids must be non-zero, allocate an addition entry in the caller_data vector and use a zero valued key as the end marker. (lt_dlcaller_get_data): Iterate up to the end marker in one pass. 2001-08-14 Gary V. Vaughan * libltdl/ltdl.c (lt_dlcaller_register): Caller ids are allocated starting from value `1', so that clients can use a value of zero to indicate that libltdl has not yet initialised. * ltmain.in (exec_cmd): Fix quoting in execute mode so that the double quotes added by libtool (to prevent lossage with embedded spaces in filenames etc.) are not interpreted as literals by the shell. 2001-08-13 Gary V. Vaughan * libltdl/ltdl.c (find_file_callback): Fix a multiple free() bug. (tryall_dlopen_module): Remove some unused variables. * libltdl/ltdl.c (lt_dlinsertsearchdir): Calculate the address of the end of user_search_path correctly. * libltdl/ltdl.c (rpl_argz_stringify): New fallback implementation. * ltdl.m4 (AC_LTDL_FUNC_ARGZ): Test for argz_stringify in libc. * libltdl/ltdl.c (lt_argz_insertinorder): Renamed from lt_argz_insert to make room for... (lt_argz_insert): Wraps argz_insert with libltdl error handling. (lt_dlpath_insertdir): Insert new path elements into an argzized path. (lt_dlinsertsearchdir): New function to insert new search directories anywhere into user_search_path using the above. (lt_dladdsearchdir): Rewritten to use lt_dlpath_insertdir. * libltdl/ltdl.h (lt_dlinsertsearchdir): Prototype for export. * doc/libtool.texi (Libltdl interface): Document it. * NEWS: Updated, 2001-08-07 Gary V. Vaughan From Albert Chin : * ltmain.in [irix*]: $with_gcc is either "yes" or "" (empty string) with current autoconf, so we need to be robust to that when testing it, 2001-08-06 Gary V. Vaughan From Brad : * libtool.m4 (deplibs_check_method) [aix*]: Removed redundant setting of this variable. 2001-08-05 Gary V. Vaughan * libltdl/ltdl.c (load_deplibs): Insert missing 1st argument to LT_EMALLOC. 2001-08-05 Tim Van Holder * ltdl.m4: Canonicalize descriptive text used with AC_DEFINE. * libtool.m4 (_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR): Remove. (_LT_AC_PROG_ECHO_BACKSLASH): Use $ac_path_separator instead of $PATH_SEPARATOR. (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Ditto. (_LT_AC_TAGCONFIG): Ditto. (AC_ENABLE_SHARED): Ditto. (AC_ENABLE_STATIC): Ditto. (AC_ENABLE_FAST_INSTALL): Ditto. (AC_PATH_TOOL_PREFIX): Ditto. (AC_PATH_MAGIC): Ditto. (AC_PROG_LD): Ditto. (AC_PROG_NM): Ditto. * ltdl.m4 (AC_LTDL_SYSSEARCHPATH): Ditto. 2001-08-05 Gary V. Vaughan From Brad : * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [openbsd]: OpenBSD can build modules without a `lib' prefix and version number. Move the deplibs check code from here... (AC_DEPLIBS_CHECK_METHOD): ...to here. 2001-08-05 Tim Mooney * libtool.m4 [osf3*, osf4*, osf5*]: Tru64 *can* build modules without a `lib' prefix to the module name. 2001-08-05 Gary V. Vuaghan From Guido Draheim : * ltmain.in: Display better and different error messages when library linkage fails in various ways. 2001-08-05 Albert Chin-A-Young * libtool.m4 (_LT_AC_SYS_LIBPATH_AIX): Add newline after terminating '}' grouping character. Change '[0-9][0-9]' to '0' as we've already matched it. 2001-08-05 Gary V. Vaughan From Brad : * libtool.m4 (archive_cmds) [darwin, newsos, sysv4]: Replace 1.3 era $linkopts references with $linker_flags. * libltdl/ltdl.c: Fixed several careless mistakes in the foreach_dirinpath support functions. (foreach_dirinpath): Walk path elements with the argz API. 2001-08-04 Gary V. Vaughan From Sedi Master Albert Chin : * libtool.m4 (_LT_AC_SYS_LIBPATH_AIX): Replace the awk invocation with an equivalent bit of sed wizardry. From Edouard G. Parmelan * libtool.m4 [darwin, openbsd]: Fix quoting problems with unquoted [] expressions. 2001-08-03 Gary V. Vaughan * bootstrap: s/ltdldemo // -- This demo soesn't work properly, so I haven't committed it yet. 2001-08-01 Ossama Othman * libtool.m4 (AC_LIBTOOL_SETUP): Require Autoconf-2.50 via the AC_PREREQ autoconf macro since the new libtool macros utilize macros from that version of Autoconf. 2001-08-01 Gary V. Vaughan * ltdl.m4: Bump serial number. General reformat and tify up in line with Autoconf-2.50 support. (AC_LTDL_FUNC_ARGZ): Test for system implementations of a handful of argz API calls, the error_t type, and the argz.h header. * libltdl/configure.ac (AM_INIT_AUTOMAKE): Bump version number. * libltdl/ltdl.c (rpl_argz_append, rpl_argz_create_sep. rpl_argz_insert, rpl_rgz_next): Fallback implementations of the similarly named functions for machines that don;t use glibc. (lt_dlrealloc): New memory function pointer that can be set by the client. Defaults to rpl_realloc, which in turn uses only lt_dlmalloc and lt_dlfree. (LT_EMALLOC, LT_EREALLOC): Set internal out-of-memory error inside the functions called by these new macros. Simplified all callers by removing explicit client error reporting. (memmove): Fallback implementation of overlap safe memory copy function. (tryall_dlopen): Factorized common code into... (tryall_dlopen_module): ...this new helper function. (canonicalize_path): Changed function signature to return success or failure. Updated all callers. (foreachfile_callback): Make use of argz API. (LT_DLSTRLEN): Moved from here... * libltdl/ltdl.h (LT_STRLEN): ...to here. Updated all callers. (lt_dlrealloc): Declare new memory management handle. 2001-07-31 Robert Boehne * libtool.m4 (mingw*) Revert the previous change as it was applied by mistake. 2001-07-31 Guido Draheim * libtool.m4 (mingw*) sys_lib_search_path_spec: Sets the proper path separator for cross-compiling. 2001-07-30 Steve Ellcey * libtool.m4 (ia64-*-hpux*) Add support for ia64*-*-hpux* platform. 2001-07-30 Robert Boehne * libtool.m4 (AC_LIBTOOL_PROG_COMPILER_PIC) [aix*]: Fixed an incorrect resetting of lt_prog_compiler_static when using gcc under AIX Power. 2001-07-31 Gary V. Vaughan * bootstrap: Remove generated files (incase they are links) before rerunning the autotools to regenerate them. 2001-07-30 Gary V. Vaughan * libtool.m4 (AC_LIBTOOL_SETUP): Use Autoconf-2.50 era quadrigraphs and AC_HELP_STRING to bring AC_ARG_WITH/ENABLE macros up to date. (_LT_AC_LOCK): Ditto. (_LT_AC_TAGCONFIG): Ditto. (AC_PROG_LD): Ditto. (AC_ENABLE_SHARED): Ditto. And eliminate the last remaining changequote invocations. (AC_ENABLE_STATIC): Ditto. And Ditto. (AC_ENABLE_FAST_INSTALL): Ditto. And Ditto. * ltdl.m4 (AC_LTDL_ENABLE_INSTALL): Use Autoconf-2.50 era quadrigraphs and AC_HELP_STRING to bring AC_ARG_ENABLE macro up to date. * NEWS: Updated. * libtool.m4 [UnixWare7, OpenUNIX8]: Initial support for UnixWare7 and OpenUNIX8. Accept these identifiers from the latest config.guess/config.sub as pseudonyms for sysv5uw[78]. * NEWS: Updated. Reported by Boyd Lynn Gerber 2001-07-29 Gary V. Vaughan * tests/sh.test: Add a new test to enforce X as the fill character in `test "X...'. Beef up the `test' tests to also check `test -.' and `test ! -.' phrases for compliance. * ltmain.in: Fix quoting problems uncovered by the new tests. 2001-07-29 Andrew C. Feren * tests/sh.test: New test to disallow `test $foo', where `test "$foo"' is much safer. * ltmain.in: Fix quoting problems uncovered by the new test. 2001-07-29 Steve Ellcey * libtool.m4 (lt_cv_sys_global_symbol_to_cdecl): Change it from "extern char" to "extern int" so that GCC 3.0 won't complain and refuse to compile programs containing "extern char main()". 2001-07-29 Gary V. Vaughan From Guido Draheim : * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [mingw]: Support cross compilation to mingw by allowing `:' or ';' as a path separator. * NEWS: Updated. 2001-07-27 NIIBE Yutaka * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all for sh*-*-linux* (SuperH) too. 2001-07-25 Ossama Othman From Thomas Poindessous * ltmain.in (pic_mode): Added missing quotes around shell variable in "if test" conditional. From Peter Moulder * ltmain.in (xform): Add support for pre-processed (e.g. `*.{i,ii}' sources). 2001-07-25 Gary V. Vaughan From Steve Ellcey : * libltdl/ltdl.c (foreach_dirinpath): Free unassigned pointer fix for `canonical'. 2001-07-23 Robert Boehne * libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG, AC_LIBTOOL_PROG_LD_SHLIBS) [aix4*, aix5*]: Fixed a mispelled binder option under AIX. The option to throw errors for unresolved external references is -bernotok, not -bnoerok. 2001-07-23 Gary V. Vaughan * Makefile.am (EXTRA_DIST): Don't forget to distribute ChangeLog.1. From Erik Lindahl * libtool.m4 (_LT_AC_SYS_LIBPATH_AIX): Used on aix to discover the compiler's default library search path so that the MPI compiler suite is not hosed by the previously hardcoded path. * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [aix4*, aix5*]: Use it. 2001-07-23 Andreas Schwab * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use pass_all for s390*-*-linux* and m68*-*-linux*. 2001-07-19 Robert Boehne * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): Fix tag support problems with CXX variables being overwritten by the individual macros. (AC_LIBTOOL_PROG_CC_C_O): Ditto. (AC_LIBTOOL_PROG_COMPILER_PIC): Ditto. (AC_LIBTOOL_LANG_CXX_CONFIG): Moved call to AC_LIBTOOL_SYS_HARD_LINK_LOCKS after the call to AC_LIBTOOL_PROG_CC_C_O as it depends on the result. (AC_LIBTOOL_LANG_GCJ_CONFIG): Ditto. (AC_LIBTOOL_LANG_C_CONFIG): Ditto. (AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH): Used the macro _LT_AC_TAGVAR to ensure the correct variable is being queried. (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Changed the naming of shared objects under IRIX back to what it was in the MLB. 2001-07-23 Mark Kettenis * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN) [gnu*]: Remove spurious "break" and bogus comment (_LT_AC_LANG_CXX_CONFIG): Add support for the Hurd. * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): Add support for the Hurd. 2001-07-16 Robert Boehne , Tim Mooney * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): add cases and comments for more platforms, including AIX, Digital/Tru64 UNIX and IRIX. 2001-07-16 Gary V. Vaughan * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): Fix ia64 AIX run-time-linking when not using gcc. (AC_LIBTOOL_LANG_CXX_CONFIG): Ditto. Reported by Dan McNichol 2001-07-12 Gary V. Vaughan From dda@sleepycat.com (Don Anderson): * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [qnx]: New supported architecture. (AC_DEPLIBS_CHECK_METHOD) [qnx]: Ditto. * NEWS: Updated. From Stefan Ondrejicka : * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [cygwin*]: Make sure that /lib/w32api is searched for system libraries to match recent versions of cygwin. * NEWS: Updated. 2001-07-12 Dan McNichol From albert chin * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): Fix AIX run-time-linking when using gcc. (AC_LIBTOOL_LANG_CXX_CONFIG): Ditto. 2001-07-11 Gary V. Vaughan * libtool.m4 (_LT_AC_LANG_CXX_CONFIG) [hpux, linux, osf, solaris]: Doh! the evalled variable shouldn't have been quoted. * libtool.m4 (_LT_AC_LANG_CXX_CONFIG) [hpux, linux, osf, solaris]: output_verbose_link_cmd have unquoted `*' in case statements for these architectures. Be sure to quote them with a sed expression before passing to eval. Reported by Tim Mooney 2001-07-09 Gary V. Vaughan * README-alpha: s/configure.in/configure.ac. * configure.ac: Bumped version to 1.4c. GNU libtool 1.4b was released. * configure.ac: Bumped version to 1.4b. * NEWS: updated. * config.guess, config.sub, texinfo.tex: Synchronised from ftp.gnu.org. 2001-07-09 Robert Boehne From Michael Elizabeth Chastain : * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Set max_cmd_len to a maximum of 512Kb, as it seems some HPUX 11.0 systems have trouble with 1MB. 2001-07-09 Gary V. Vaughan * README-alpha: Upgrade distribution instructions to include canonical location of texinfo.tex. 2001-07-09 Timothy Wall * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS): Don't disable shlibs on AIX5/IA64 with GNU ld. Keep gnu defaults if using gnu tools on AIX5/IA64. 2001-07-09 Robert Boehne * libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Set max_cmd_len to -1 on hurd, it has no command line argument limits. * ltmain.in Handle max_cmd_len=-1 for systems that don't have command line argument limits. 2001-07-05 Gary V. Vaughan * libtool.m4 (_LT_AC_LANG_C_CONFIG): Revert to 1.3.x sematics, and always build static libs when the host machine cannot build shared libs. Even if static libs were explicitly disabled. 2001-07-02 Gary V. Vaughan Cleanup of libltdl: * ltdl.c (lt_dladderror): Don't use `index' as a variable name, since it is a function on BSD based boxes. (lt_dlseterror): Ditto. (lt_dlexit): Remove unused errormsg declaration. (foreach_dirinpath): Make sure filename is initialised. (find_handle): Return NULL for a failed search. (foreachfile_callback): Don't reuse data2 symbol from prototype in func declaration to prevent symbol shadowing. * ltdl.h (lt_dlmutex_seterror): Don't use `error' as a parameter name, since it is a function on glibc boxes. * libtoolize.in: Display --version in the same format as autoconf and automake. * ltmain.in: Ditto. 2001-06-30 Gary V. Vaughan Merge test improvements from multi-language-branch: * tests/defs: Find and set the value of CC probed by libtool.m4 * tests/link-2.test: Use a .lo wrapper script, and the value of CC set by defs instead of hardcoding gcc. * tests/link.test: Use the value of CC set by defs instead of hardcoding gcc. * tests/quote.test: Ditto. * tests/suffix.test: Ditto. * libtool.m4 (AC_LIBTOOL_PROG_COMPILER_PIC) [aix*]: Always set lt_prog_compiler_wl to `-Wl'. Reported by Albert Chin-A-Young * ltdl.m4 (AC_LTDL_DLLIB) [sco3.2*]: When searching for a dlopen implementation, and adding `-ldl' has failed, try linking a call to dlopen, #including dlfcn.h, and without -ldl. On sco3.2 the header files redefines the interface symbols to point at the implementation symbols in libc. Reported by "Golubev I. N." 2001-06-29 Tim Van Holder General cleanup of autoconf-2.50 upgrade: * configure.ac: Mark as needing autoconf-mode in emacs. Pass arguments to AC_INIT. * cdemo/configure.ac: Ditto. * demo/configure.ac: Ditto. * depdemo/configure.ac: Ditto. * libltdl/configure.ac: Ditto. * mdemo/configure.ac: Ditto. * pdemo/configure.ac: Ditto. * tagdemo/configure.ac: Ditto. * ltdl.m4: Mark as needing autoconf-mode in emacs. * libtool.m4: Mark as needing autoconf-mode in emacs. Don't add () to AS_MESSAGE_LOG_FD. * libltdl/configure.ac: Use config-h.in as template for config.h. * tagdemo/configure.ac: Drop the AC_DIAGNOSTIC. Move AC_LANG([C++]) after the OBJEXT/EXEEXT check. 2001-06-29 Gary V. Vaughan From Tim Van Holder * tests/suffix.test: Typo in 2nd for loop. From Tim Van Holder * libltdl/Makefile.am (OBJECTS): This was an implicit variable. instead state the list of object variables explicitly. From Bruno Haible * libtool.m4: undefine the m4 builtin `symbols', so that the string `symbols' can be used in the rest of the code without causing errors with autoconf-2.13. From "Golubev I. N." * tests/Makefile.am (CPPLAGS): Typo. s/CPPLAGS/CPPFLAGS. * mdemo/Makefile,am (foo1_la_LIBADD): Add libsub.la, since foo1 does use symbols from libsub.la -- only platforms that allow undefined symbols in libraries were able to cope with this previously. Reported by Robert Collins From "Golubev I. N." * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [sco3.2v5*]: Needs -wl,-Bexport to make self dlopen work. 2001-06-28 Gary V. Vaughan From Alexander Bluhm * libltdl/ltdl.c (lt_dlopen): Fix bad memory initialisation assumptions. * libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE) [HPUX]: Define lt_cv_sys_global_symbol_to_c_name_address to be a sed expression for mangling the output of the symbol pipe into a brace delimited C declaration of symbol name and address. * ltmain.in: Use it to generate the fooS.c symbol name Reported by Albert Chin-A-Young 2001-06-28 Tim Van Holder , Gary V. Vaughan * bootstrap: Use cp instead of ln -s, for systems without symlinks. Reorder the statements to avoid repetition outside the loop. 2001-06-28 Paolo Bonzini , Gary V. Vaughan Libtool now builds with the help of Autoconf-2.50! * configure.ac (AC_PREREQ): Require Autoconf-2.50 or newer. (AC_PROG_CPP, AC_EXEEXT, AC_OBJEXT): Removed. Autoconf-2.50 doesn't have the AC_REQUIRE bug that required these to be called explicitly from here. Autoconf-2.50 uses this file instead of... * configure.in: ...this, which is now deleted. * cdemo/configure.ac, cdemo/configure.in: Ditto. * demo/configure.ac, demo/configure.in: Ditto. * depdemo/configure.ac, depdemo/configure.in: Ditto. * libltdl/configure.ac, libltdl/configure.in: Ditto. * mdemo/configure.ac, mdemo/configure.in: Ditto. * pdemo/configure.ac, pdemo/configure.in: Ditto. * tagdemo/configure.ac, tagdemo/configure.in: Ditto. * libltdl/acconfig.h: Deleted. * Makefile.am (libtool): libtool now depends on configure.ac. * libtool.m4 (_LT_AC_LOCK): Use 2.50's AC_LANG_PUSH/AC_LANG_POP instead of 2.13's AC_LANG_SAVE/AC_LANG_RESTORE. (AC_LIBTOOL_LANG_C_CONFIG): Ditto. (AC_LIBTOOL_LANG_CXX_CONFIG): Ditto. * libtoolize.in: Use $configure_ac, instead of hardcoding configure.in. 2001-06-28 Tim Van Holder * pdemo/Makefile.am: Use '=' instead of '+=' to shut up automake. 2001-06-27 Gary V. Vaughan From brad@openbsd.org: * NEWS: Updated. * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [openbsd]: Improved support for various openbsd platforms. (AC_LIBTOOL_PROG_LD_SHLIBS): Ditto. * ltmain.in: Ditto, 2001-06-26 Gary V. Vaughan * NEWS: Updated. * libltdl/ltdl,c (LT_DLMUTEX_LOCK): Renamed from MUTEX_LOCK to avoid potential namespace clash. (LT_DLMUTEX_UNLOCK, LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR): Ditto. (lt_dlmutex_lock_func): Renamed from mutex_lock to avoid a namespace clash of NCR MP-RAS. (lt_dlmutex_unlock_func, lt_dlmutex_seterror_func, lt_dlmutex_geterror_func): Ditto. Reported by Edouard G. Parmelan * libltdl/ltdl.c (LT_DLSTRLEN): Call strlen only if the argument is non-NULL and non-zero in length. Changed all calls to strlen appropriately. * libltdl/ltdl.c: Prototype all static functions. * ltdl.m4: Bump serial number to 3. (AC_LIB_LTDL): Require AC_HEADER_DIRENT for ltdl.c. * libltdl/ltdl.h (lt_dlforeachfile): Prototype for new function. * libltdl/ltdl.c: Include an appropriate header for the opendir/dirent api. (foreach_dirinpath): Visit each file in a list of directories. (find_file_callback): Factor out the core of find_file() to make use of foreach_dirinpath(). (find_file): Use it! (find_handle_callback, find_handle): Ditto. (lt_dlforeachfile): New function to find files in a searchpath.,, (foreachfile_callback): ...using this callback. * doc/libtool.texi (Libltdl interface): Document new lt_dlforeachfile api call. 2001-06-25 Gary V. Vaughan * THANKS: Added Albert Chin-A-Young. * libtool.m4 (IFS): When IFS is changed to split a string for examination in a loop, restore it inside the loop as well as outside incase IFS is needed by commands in that loop. Reported by Pavel Roskin 2001-06-25 Albert Chin-A-Young * libtool.m4: Prefer shl_load to dlopen on HP-UX because dlopen won't work properly without a patch. 2001-06-25 Daniel Harvey * libtool.m4 (ltdll_cmds): [$]0 doesn't appear to translate through the script correctly, change to $''0 2001-06-25 Maciej W. Rozycki * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use pass_all for mips-*-linux* and mipsel-*-linux*. 2001-06-24 Andreas Schwab * libtool.m4 (AC_LIBTOOL_SETUP): Remove failed try to transform linux to linux-gnu in $host. (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Match $host_os against linux*, not linux-gnu*. (AC_DEPLIBS_CHECK_METHOD): Likewise. 2001-06-24 Gary V. Vaughan * libtool.m4 (_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR): Set PATH_SEPARATOR appropriately if it is not set already, (_LT_AC_TAGCONFIG): Use it. (AC_ENABLE_SHARED): Ditto. (AC_ENABLE_STATIC): Ditto. (AC_ENABLE_FAST_INSTALL): Ditto. (AC_PATH_TOOL_PREFIX): Ditto. (AC_PATH_MAGIC): Ditto. (AC_PATH_PROG_NM): Ditto. From Tim Van Holder : * libtool.m4: Use the canonical absolute path test ([\\/]* | ?:[\\/]) and $PATH_SEPARATOR wherever appropriate. (AC_LIBTOOL_PROG_CC_PIC): Properly recognize DJGPP as a platform that doesn't support shared libraries. (AC_LIBTOOL_SYS_MAX_CMD_LEN): Avoid this test on DJGPP; use a fixed value (12K) instead. (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Don't forget $ac_exeext when testing for link success. * configure.in (AM_INIT_AUTOMAKE): Bumped version to 1.4a. Complete the new configure time tags creation facility based on the ltcf-*.sh and ltconfig.in files from multi-language-branch: * libtool.m4: More refactoring and reformatting. (_LT_AC_LANG_GCJ_CONFIG): Merged ltcf-gcj.sh from multi-language-branch. (_LT_AC_LANG_CXX_CONFIG): Merged ltcf-cxx.sh from multi-language-branch. * configure.in (AC_PROG_CXX, LT_AC_PROG_GCJ): Compiler checks must be done before AC_PROG_LIBTOOL which appends tags based on their results. 2001-06-12 Robert Boehne * docs/libtool.texi: Updated the libltdl interface documentation to bring it up to date. 2001-06-06 Gary V. Vaughan * demo/Makefile.am (objdir): Use `libtool --config' for extracting configuration values, since a given value may be present in each tag. (hc-libpath): Ditto. (hc-minusL): Ditto. * libtool.m4 (_LT_AC_TAGCONFIG): Add tagged configurations from the --with-tags option. (_LT_AC_LTCONFIG_HACK): Factored out into separate configuration macros -- The interdependencies and running order are still immutable, and need a lot of work to fix. (AC_LIBTOOL_CONFIG): Taken from the previous incarnation of _LT_AC_LTCONFIG_HACK -- this macro is used both to create the primary (C language) libtool configuration from _LT_AC_LTCONFIG_HACK and also to append tagged configurations from _LT_AC_TAGCONFIG. * NEWS: Merged from multi-language-branch. 2001-06-06 Robert Boehne * bootstrap: Added tagdemo and pdemo tests from multi-language-branch. * configure.in: Added pdemo and tagdemo to CONF_SUBDIRS and merged references to CXX and GCJ from multi-language-branch. * pdemo: Added test directory from multi-language-branch. * tagdemo: Added test directory from multi-language-branch. * tests/Makefile.am: Merged additional tests from multi-language-branch. * tests/pdemo-*.test: ditto. * tests/tagdemo-*.test: ditto. 2001-05-30 Gary V. Vaughan * libtool.m4: Merged ltconfig.in from multi-language-branch. 2001-05-28 Gary V. Vaughan * libtool.m4: Reformatting for consistency, and some refactoring in preparation for ltcf-*.sh merge. 2001-05-27 Gary V. Vaughan * ltmain.in: Merged from multi-language-branch. * libtool.m4: Merged from multi-language-branch. * ChangeLog: Started afresh. Old ChangeLog history moved to... * ChangeLog.1: ...here. 2000-06-04 Mark Mitchell * ltcf-c.sh (archive_cmds, archive_expsym_cmds) [solaris, with_gcc]: Use `gcc -shared' to build a shared library. 2001-06-04 John David Anglin * ltcf-c.sh (archive_cmd) [hpux, with_gcc]: Use gcc to link shared archives. 2001-05-28 Simon Patarin * ltcf-cxx.sh (osf3/osf4/osf5): Support creation of C++ shared libraries when using g++ with native linker. 2001-05-28 Albert Chin * ltconfig.in (version_type, soname_spec) [aix4* | aix5*]: Use linux-style versioning, and remove trailing .o from soname_spec. 2001-05-22 Alexandre Oliva * ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag) [aix4*|aix5*]: Prepend blank. 2001-05-20 Alexandre Oliva * configure.in: Reverted to 1.4, to avoid confusion with MLB. Mainline is the release snapshot, except for the ChangeLog version number, until the multi-language branch is merged into it. * ltconfig.in: Fix sh.test regression introduced in previous patch. * ltconfig.in (lt_cv_sys_max_cmd_len): Improve test to work better in case of non-built-in echo. Set bounds correctly. * ltcf-cxx.sh (allow_undefined_flag) [aix4* | aix5*]: Fix quote error. * ltmain.in (exec_cmd): New variable. Don't exec programs within the big `case'; set the variable instead, and exec the cmd afterwards, so that the shell gets a chance to clean up here-doc files. * NEWS: Update. 2001-05-16 Alan Modra * libtool.m4 (lt_cv_deplibs_check_method): pass_all for hppa*-linux. 2001-05-03 Andreas Jaeger , Andreas Schwab * ltmain.in (relink_command): Arrange for wrapper script to save output to a variable and display it only if relinking fails. 2001-04-25 Gary V. Vaughan * configure.in: bumped version to 1.4a. GNU libtool 1.4 was released. * configure.in: Bumped version to 1.4. * config.sub, config.guess: Synchronised from ftp.gnu.org. * NEWS: updated. 2001-04-24 Peter Eisentraut * libtool.m4: Support $host_os as /sysv5uw7*/ from newer config.guess in addition to older /unixware*/. Use compiler driver, not linker, for linking shared libraries. 2001-04-24 Gary V. Vaughan * libtool.m4, ltmain.in, libltdl/configure.in, tests/quote.test: Remove stale references to ltconfig. * ltdl.m4 (AC_C_INLINE): No longer required. * libltdl/ltdl.c (strdup, strcmp, strchr, strrchr, memcpy, trim, free_vars): Revoke inline keyword from declarations. `static inline' is not very portable, and in addition Unixware 7.1.1's compiler says you can't access static variables from inline functions. Reported by Peter Eisentraut 2001-04-24 Albert Chin-A-Young * libtool.m4: Handle case where /bin/nm -p outputs multiple symbol types (like under HP-UX 11.00). 2001-04-24 Thomas Tanner * TODO: describe problems with libltdl * ltmain.in (ILD): tidy up, add comments, remove dead code, merge duplicate code * ltmain.in (ILD): don't touch newdependency_libs after scan or dlopen pass * ltmain.in (ILD): don't dlpreopen dependency_libs of a dlopened module (remove absolutely wrong quick hack) * ltmain.in (ILD): remove wrong comments about duplicate removal * ltmain.in (ILD): build a static-only module if it has static libraries in its dependencies (so that libltdl can safely load dependency_libs) * ltmain.in (argument parsing): prefix comparsions of -l args with X, replace -lc with `-framework System' _after_ the ILD passes * ltmain.in (argument parsing): support dl[pre]open for both .o and .lo files * ltmain.in (deplibs_check): use portable test syntax * ltmain.in (help): document -prefer-[non-]pic flags * ltmain.in: improve readablity by adding some comments, rename uninst_* to notinst_* (more adequate name) 2001-04-24 Gary V. Vaughan * doc/PLATFORMS: More updates from subscribers to libtool@gnu.org. From Tim Mooney * tests/Makefile.am (TESTS_ENVIRONMENT): Make sure the *.test scripts get the same make that was used in the top level directory. 2001-04-23 Gary V. Vaughan * doc/PLATFORMS: Updated with more platforms successfully tested by members of libtool@gnu.org. 2001-04-23 Peter Eisentraut * doc/PLATFORMS: With this patch, freebsd4.3 passes the test suite. * libltdl/ltdl.c (lt_dlexit): Quit loop if only resident modules are left. 2001-04-23 Gary V. Vaughan * doc/PLATFORMS: With this patch, my Solaris boxes now pass the test suite, Yay! From Albert Chin-A-Young * ltmain.in: `test -L' is not portable, and infact breaks uninstall mode on Solaris. Fallback to `test -h' and finally `test -f', but be careful not to let the failure status cause libtool to stop. From Simon Spero * ltdl.m4 (AC_LTDL_DLSYM_USCORE): Add $LIBADD_DL while checking for dlsym _. From Simon Spero * libtool.m4 (lt_cv_deplibs_check_method) [darwin]: Set it! * TODO: Make a note to undo this later. From Christoph Pfisterer * libtool.m4: Use $() execution substitution quotation to work around zsh builtin echo \ escape removal. 2001-04-22 Peter Eisentraut * bootstrap: Allow overriding the location aclocal, automake, autoconf, autoheader from the environment. * demo/Makefile.am: Automake 1.4e does not allow `+=' assignments if the variable was not set with `=' earlier. `+=' was not useful here anyway. 2001-04-22 Gary V. Vaughan * ltdl.m4 (AC_CHECK_HEADERS): UW7 has sys/dl.h, so we must check for that here. * libltdl/ltdl.c (HAVE_SYS_DL_H): Include it if necessary for the dlopen loader. Reported by Matthew Schalit * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use pass_all for various releases of UnixWare and OpenServer that support it. Reported by Matthew Schalit * doc/PLATFORMS: Updated with various platforms successfully tested by members of libtool@gnu.org. 2001-04-21 Gary V. Vaughan * TODO: propose pkg-config merge. 2001-04-21 Nick Hudson * ltmain.in: Correct an error in yesterday's patch. 2001-04-20 Nick Hudson * libtool.m4: Improve NetBSD support. * ltmain.in: ditto. 2001-04-19 Dan McNichol * libtool.m4: Build standard shared libraries on AIX POWER more like AIX does, with a shared object archived into lib.a. On AIX -bexpall flag does strange things... Don't use it. Fix quotes around -berok flag. Add support for AIX 5. Add support for run time linking on AIX POWER. (should work on AIX 4.2 and up). Turn this feature on by adding -brtl flag to LD_FLAGS. Add support for AIX on IA64. Note: AIX on IA64 uses a SYSV type linker. Add a comment telling what to do if the TOC starts getting too large on AIX. * NEWS: mention aix5 support. 2001-04-18 Alexandre Oliva * TODO: Add -L- flag. 2001-04-11 Alexandre Oliva * libtool.m4 (no_undefined_flag) [Solaris ld]: Change to -zdefs. 2001-04-11 Ossama Othman * AUTHORS: Added myself to the list of maintainers. 2001-04-08 Gary V. Vaughan * libtool.m4 (hardcode_libdir_flag_spec, osf4/osf5): Use ${wl} to pass -rpath when compiling with gcc. Reported by Tim Mooney * libltdl/ltdl.c (sys_shl_open): Cache a handle for the `self' module, since HPUX adds module symbols into the `self' pool if it is opened later. Return the cached pointer if the caller subsequently tries to open `self'. (sys_shl_sym): Diagnose NULL modules. From Peter Eisentraut * ltmain.in (clean,uninstall): test -e is not portable. Well, neither is -L, but I'm hoping that redirecting error messages to /dev/null and relying on non-zero exit status will work okay on the few hosts that don't support -L. 2001-04-08 Nick Hudson * ltmain.in: Improve check for valid -version-info parameter. 2001-04-08 Gary V. Vaughan From Nick Hudson * doc/Makefile.am (libtool_TEXINFOS): Add fdl.texi so that it is included in the distribution. 2001-04-07 Peter Eisentraut * ltmain.in (clean,uninstall): Do not error if the file doesn't exist and 'rm -f' was used. Exit with status 1 on error. 2001-04-06 Nick Hudson * ltmain.in: Implement a new deplibs_check_method called match_pattern that does pattern matching on filenames... * libtool.m4: ...use it with NetBSD 2001-04-05 Gary V. Vaughan * doc/libtool.texi (Multiple dependencies): A note about the problems I've reintroduced by reverting the my patch of 2001-03-31. From Edward Lee * libtool.m4: Typos. * tests/Makefile.am (TESTS): Delete references to depdemo-dups.test. * tests/depdemo-dups.test: Removed, as part of the patch reversion below. * ltmain.in: Revert my change from 2001-03-31. Although it was technically correct, it opens a whole can of worms we don't want to deal with right now. From Ahmed Masud * libltdl/ltdl.c (sys_shl_open): Return a NULL module handle for self opening. (sys_shl_close): Be careful not to close a NULL module handle. (sys_shl_sym): Allow shl_findsym() to open NULL modules, but discard the modified module address it returns. * libltdl/ltdl.c (lt_dlopen): When reading the .la file, reallocate the line buffer size if the line overflows the original buffer. Reported by Nick Hudson * NEWS (1.3d) Removed bogus ltconfig reference. 2001-04-03 Gary V. Vaughan * libtool.m4 (_LT_AC_LTCONFIG_HACK): Remove the spurious `dnl' from the help text of --with-pic. Reported by stefan 2001-04-02 Gary V. Vaughan * configure.in: bumped version to 1.3e. GNU libtool 1.3d was released. * NEWS: inserted todays date. 2001-04-01 Christoph Pfisterer * libtool.m4: Fixed support for Darwin and Rhapsody. Now correctly hardcodes the library path and adds versioning. Other small fixes. * ltmain.in: Fixed special cases for libc and libm on Rhapsody and Darwin. One of them was misplaced. Added version_type case for Rhapsody and Darwin, named "darwin". 2001-03-31 Gary V. Vaughan * ltmain.in: Remove the code for stripping duplicate deplibs from libtool link lines -- duplicates are somtimes necessary to satisfy inter-library dependencies, and never cause link to fail even if they are spurious. * tests/depdemo-dups.test: New file. Make sure this bug doesn't creep back in again! * tests/Makefile.am (TESTS): Use the new test above. 2001-03-29 Edward M. Lee * libtoolize.in: Check configure.ac and prefer configure.ac to configure.in. * libtoolize.in: change recommendation from AM_PROG_LIBTOOL to AC_PROG_LIBTOOL. * libtool.m4: Generate dll/import libraries for cygwin according to the following: libFOO.a (static lib), libFOO.dll.a (import lib), cygFOO-version.dll (dll). Update postinstall_cmds and postuninstall_cmds to reflect this. * ltmain.in: Generate installed .la files with dlnames set to ../bin/cygFOO-version.dll for normal dlls. dlls for modules remain with the .la file. * libltdl/ltdl.c: Use windows paths while calling LoadLibrary. 2001-03-16 Albert Chin * libtool.m4 (save_CPPFLAGS): Fix typo. 2001-03-13 Alexandre Oliva * libtool.m4 (lt_cv_compiler_c_o): Cache it. (lt_cv_compiler_o_lo): Likewise. 2001-03-09 Peter Eisentraut * ltmain.in (clean): Automatically remove $objdir (usually '.libs'). 2001-03-08 Gary V. Vaughan * ltconfig.in (library_names_spec): Undo latin-1 spaces I pasted in yesterday by mistake. 2001-03-07 Gary V. Vaughan From Tor Lillqvist * libtool.m4 (export_symbols): On Windows, if the export_symbols file (which has been passed to libtool with the -export-symbols command line switch) already is a .def file, use it as is. * libtool.m4 (library_names_spec): Using m4 quotes correctly this time around! From Tor Lillqvist * libtool.m4 (library_names_spec): Use an appropriate filename prefix for dlls -- lib for mingw; cyg for cygwin; pw for pw32. 2001-03-06 Alexandre Oliva * libtool.m4 (can_build_shared) [AIX 4.[01], GCC]: GCC up to 2.96 can't build shared libraries reliably. Disable them. * ltmain.in: When dropping dependencies of a -no-undefined library, give up on building a shared library. 2001-03-05 Akim Demaille * ltmain.sh: Don't quote the argument of case/esac and assignments. * libtool.m4: Likewise. 2001-03-03 Markus F.X.J. Oberhumer , Alexandre Oliva * libtool.m4: Added explicit return type to all C functions. 2001-02-22 Gary Vaughan * NEWS: Updated. * doc/libtool.texi (Thread Safety in libltdl): New node describing the application the new MT API. * libltdl/ltdl.h: Prototypes. * libltdl/ltdl.c: Use these functions throughout the rest of the file to provide thread locking. (lt_dlmutex_register): New function to set callbacks for multi-threaded calls into libltdl. (lt_dl_mutex_lock): Type of a locking callback function. (lt_dl_mutex_lock): Type of an unlocking callback function. (lt_dl_mutex_seterror): Type of a callback function to save the last libltdl error message in thread local storage. (lt_dl_mutex_geterror): Type of a callback function to retrieve the last saved error message from thread local storage. 2001-02-20 Gary Vaughan * libltdl/ltdl.c (lt_dlcaller_register): dont set an unsigned type to a negative number. Reported by Guenter Millahn 2001-02-05 Gary V. Vaughan From Nick Hudson * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): netbsd* is able to automatically load module deplibs without assistance from libltdl. 2001-02-02 Gary V. Vaughan * libltdl/ltdl.c (load_deplibs): Make sure the depcount is reset, even when deplibs are not used because of the patch below. * ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): If we know that the host architecture automatically loads deplibs, then... * libltdl/ltdl.c (load_deplibs): ...don't manually load each one. 2001-01-31 Gary V. Vaughan * TODO: Updated. * libltdl/ltdl.c (load_deplibs): If loading a deplib fails, don't sweat -- it may be a lib that is already statically linked into the loading application. * libltdl/ltdl.c: Clean up the shadowing of the global handles variable. (LT_DLRESIDENT_FLAGS): Add extra parens to satisfy -Wall. (load_deplibs): Cast isspace() argument to an int to satisfy -Wall. 2001-01-30 Robert Boehne * AUTHORS: added myself to the list of maintainers. 2001-01-28 Alexandre Oliva * libltdl/Makefile.am (CLEANFILES): Clean conditionally-built libraries. 2001-01-27 Alexandre Oliva * libtool.m4 (ld_shlibs) [aix4*]: Disable on unknown CPU types. 2001-01-07 Gary V. Vaughan * NEWS: Updated. * doc/libtool.texi (User defined module data): Updated. * libltdl/ltdl.c (lt_dlhandle_next): New function. * libltdl/ltdl.h (lt_dlhandle_next): Prototypes. 2001-01-05 Gary V. Vaughan * NEWS: Updated. * doc/libtool.texi (User defined module data): Document it all. * ltdl.m4: Check for memcpy, or else bcopy. * ltdl.c (lt_caller_data): New type. (lt_dl_handle_struct): Add an lt_caller_data field. (lt_dlcaller_register, lt_dlcaller_set_data, lt_dlcaller_get_data): New functions. (rpl_memcpy): A minimal fallback implementation. (rpl_realloc): A realloc implemented with lt_dlmalloc and lt_dlfree. (LT_DLMALLOC, LT_DLFREE, LT_DLREALLOC, LT_DLMEM_REASSIGN): New memory handling convenience macros. Use them appropriately throughout the rest of this file. * ltdl.h (lt_dlcaller_register, lt_dlcaller_set_data, lt_dlcaller_get_data): Prototyped. 2001-01-04 Gary V. Vaughan * libltdl/ltdl.h: formatting change. 2000-12-23 Gary V. Vaughan From vvv@vsu.ru: * doc/fdl.texi (GNU Free Documentation License): contained @bye command which prevented part of document to be generated (indices, etc). * doc/libtool.texi (Dlpreopening): the @deftypevar did not contain a space after a type. 2000-12-22 Akim Demaille * libtool.m4: s/[ \t]*$// 2000-12-22 Aneesh Kumar K.V * libtool.m4 (OSF/1): Revert my patch of 2000-12-16. 2000-12-20 Gary V. Vaughan * libltdl/ltdl.c (lt_dlexit): Was checking for residency of the wrong module. Reported by Robert Boehne * ltmain.in (dlprefiles): Now that `2000-12-15 Utz-Uwe Haus' patch below can detect preopened library deplibs correctly in libltdl, we need to ensure that libtool library deplibs are also preloaded into the binary for that phase to work. 2000-12-16 Aneesh Kumar K.V * libtool.m4 (OSF/1): Change the way to pass linker flags through compiler on a Tru64 machine. 2000-12-16 Gary V. Vaughan * libtool.m4 (sys_lib_search_path_spec): Use test instead of `['. (archive_cmds): And another one. * libtool.m4 (darwin*): Fixed a pair of stupid typos I made in the last patch. * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): moved rogue settings from sequent, ncr and newos6 back into here from other macros. 2000-12-16 Wilfredo Sanchez * libtool.m4: (dyld/darwin*) Much improved port. * ltmain.in: (dyld/darwin*) Much improved port. 2000-12-16 Sascha Schumann * libtool.m4: Accept darwin as an alias for rhapsody. * ltmain.in: ditto. * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use the HPUX 10.20 methods to check for library dependencies on HPUX 11. 2000-12-16 Nick Hudson * libtool.m4 (netbsd*, deplibs_check_method): Enable ILD support for NetBSD a.out. 2000-12-15 Akim Demaille * libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Rename `ac_cv_sys_global_symbol_pipe' as `lt_cv_sys_global_symbol_pipe'. Similarly with `lt_cv_global_symbol_to_cdecl (_LT_AC_LTCONFIG_HACK): Similarly with `ac_cv_prog_cc_pic', `ac_cv_prog_cc_shlib', `ac_cv_prog_cc_wl', `ac_cv_prog_cc_static', `ac_cv_prog_cc_no_builtin', `ac_cv_prog_cc_can_build_shared', `ac_cv_prog_cc_static_works', `ac_cv_archive_cmds_need_lc'. (AC_PATH_TOOL_PREFIX): Similarly with `ac_cv_path_MAGIC_CMD' (AC_PROG_LD) : Likewise. (AC_PROG_LD_GNU) : Likewise. (AC_PROG_NM) : Likewise. 2000-12-15 Utz-Uwe Haus * libltdl/ltdl.c (lt_dlopen): Changed "dl_dependency_libs" keyword to "dependency_libs". 2000-12-14 Tod Milam * libltdl/ltdl.c (lt_dlexit): Reset the loaders value to zero when the last module has been unloaded. 2000-12-14 Michael Schmitz * libtool.m4: Port to *-sni-sysv4 (Reliant Unix) * README: added Reliant Unix to hte list of supported platforms * doc/PLATFORMS: added note on tests on Reliant Unix 2000-12-14 Masahiro Nobori * README: Updated. * NEWS: Updated. * libtool.m4: New port to NEWS-OS Release 6. 2000-12-14 Nick Hudson * libtool.m4 (hardcode_libdir_flag_spec): Remove linker specification for netbsd. 2000-12-14 Akim Demaille * libtool.m4: Don't depend on Autoconf internals: s/ac_cv_prog_gcc/GCC/. 2000-12-14 Gary V. Vaughan * libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Don't empty out ac_cv_global_symbol_to_cdecl inside the loop, incase we need to go around again and try with underscore prefix. (_LT_AC_TRY_DLOPEN_SELF): On some hosts (cygwin for instance) self dlclosing unloads the main program and causes a SIGSEGV. So don't do it for now. 2000-12-05 Gary V. Vaughan Oh My! Cygwin support has bitrotted while I was looking the other way. This should fix it some: * libtool.m4 (extract_expsyms_cmds): There is a quoting problem with autoconf-2.13 that prevents [$]0 from expanding. Use shell quotes instead to delay eval of $0. (impgen.c) The '# ' sequence stripped by sed works again. 2000-12-01 Gary V. Vaughan * doc/libtool.texi (Libltdl interface): Add documentation. * libltdl/ltdl.h (lt_dlmakeresident, lt_dlisresident): Add prototypes. (LT_DLERROR_CLOSE_RESIDENT_MODULE): New error status. * libltdl/ltdl.c (lt_dlmakeresident, lt_dlisresident): Allow making and testing of resident module status, which prevents a module from being lt_dlclosed. (lt_dlopen): If lt_dlopen()ing self, make the module resident. (lt_dlclose): Return an error if the module is resident. * libtool.m4 (_LT_AC_LTCONFIG_HACK): Move the tests for dlopen from here... (AC_LIBTOOL_DLOPEN_SELF): ...to here. (_LT_AC_CHECK_DLFCN): Factor out repeated code for dlfcn.h (_LT_AC_TRY_DLOPEN_SELF): Factor out repeated code for checking dlopen status. * ltdl.m4 (AC_LIB_LTDL): Use _LT_AC_CHECK_DLFCN. dlopen compile time checking. Use _LT_AC_CHECK_DLFCN. (AC_LTDL_DLSYM_USCORE): Use _LT_AC_TRY_DLOPEN_SELF. 2000-11-29 Gary V. Vaughan * libltdl/ltdl.h (lt_dlhandle): Rename the wrapped structure to prevent nameclash when used from C++. * libltdl/ltdl.c: Fixed all references. 2000-11-25 Gary V. Vaughan * libltdl/ltdl.c (lt_dlopen): Change the default search order for modules. If the named module has no directory component, always start the search with the user_search_path directories, and then fall back on the current directory only if that fails. 2000-11-20 Gary V. Vaughan * libltdl/Makefile.am (libltdl_la_LDFLAGS): increment the version number to reflect the breakage of binary compatibility. * doc/libtool.texi (Libltdl interface): Document LT_NON_POSIX_NAMESPACE. * libltdl/ltdl.h (LT_POSIX_NAMESPACE): Deleted. The default is now to use this namespace, so the cpp macro is no longer necessary. 2000-11-20 Morten Eriksen * ltdl.m4 (AC_LIB_LTDL, AC_LTDL_SYMBOL_USCORE): Break a circular dependency between AC_LTDL_SYMBOL_USCORE and AC_LTDL_DLSYM_USCORE. 2000-11-20 Paul Berrevoets * ltmain.in: Some versions of expr respond with "0" if a regexp fails to match. 2000-11-19 Paul Berrevoets * libtool.m4 (_LT_AC_LTCONFIG_HACK): Quote the $ in $#, $2 and $3 in variable 'archive_expsym_cmds' for cygwin. 2000-11-19 Gary V. Vaughan * ltdl.c: Relegate non-POSIX-compliant symbols (e.g. those ending in ``_t'') to deprecated #define compatibility macros. Also ease up on the namespace pollution, so that only ``lt_'' and ``LT_'' prefixes are taken from the global namespace. * ltdl.h: ditto. 2000-11-17 Gary V. Vaughan * ltdl.c: Reformatted. * ltdl.h: ditto. 2000-11-11 Gary V. Vaughan * ltdl.m4 (AC_LTDL_SYMBOL_USCORE): Use $ac_ext for conftest sourcefile. * libtool.m4: Use $ac_ext and $ac_objext respectively for conftest sources and objects. Reported by Carlo Wood * doc/fdl.texi: New file. The license for distributing the libtool manual. * doc/libtool.texi: Reference the new license. 2000-10-31 Morten Eriksen * libtool.m4 (_LT_AC_LTCONFIG_HACK): Quote argument to avoid error output from cygpath when $srcdir is empty. 2000-10-31 Gary V. Vaughan * bootstrap: rm Makefiles to prevent infinite loop during configure when libtool.m4 is newer than Makefile. 2000-10-31 Akim Demaille * libtool.m4: Adjust the copyright notice. Quote all the macro names when defined. Some minor formatting changes. (AM_PROG_LIBTOOL, AM_ENABLE_SHARED, AM_ENABLE_STATIC) (AM_DISABLE_SHARED, AM_DISABLE_STATIC, AM_PROG_LD, AM_PROG_NM): Don't use indir when useless. Don't add trailing `dnl' either. 2000-10-30 Gary V. Vaughan * doc/libtool.texi: Corrected another attack of CRLF line endings. 2000-10-30 Ossama Othman * libtool.m4 (archive_expsym_cmds): Fix typo where line was broken in the middle of an expression. 2000-10-30 Aneesh Kumar K.V * libtool.m4 (archive_expsym_cmds): Support for -export-symbol option on Tru64. (hardcode_libdir_flag_spec): Fixed cxx throwing error while using libtool. Done by passing -rpath directlty to the compiler. 2000-10-27 Robert Boehne * docs/libtool.texi: Added pointers to documentation of Hewlett-Packard, Compaq Tru64 and IBM AIX systems. 2000-10-02 Gary V. Vaughan From Bruce Korb * ltmain.in (execute_dlfiles): Reduce obfuscation. 2000-09-30 Alexandre Oliva * libtool.m4 [netbsd*] (deplibs_check_method, file_magic_cmd, file_magic_test_file): Removed inappropriate duplicate definitions; these variables are set in AC_DEPLIBS_CHECK_METHOD. * libtool.m4 (lt_cv_file_magic_cmd): Don't use '${MAGIC_CMD}' or '${OBJDUMP}'; Solaris' /bin/sh loses with `}' in cache files. (ac_cv_path_MAGIC_CMD): Renamed to lt_cv_path_MAGIC_CMD. 2000-09-28 Gary V. Vaughan * libtool.m4 (MAGIC_CMD): Don't use MAGIC, since BSD versions of the file command use this environment variable to hold the location of the magic database. Reported by Marc Espie 2000-09-19 Gary V. Vaughan * doc/PLATFORMS: Updated. * demo/configure.in: Revert to the `libtool --features' test. * Makefile.am (libtool): This needs to rerun configure now that libtool is generated entirely by AC_PROG_LIBTOOL again. (ltconfig): Removed. (ltmain.sh): Is now regenerated when ltmain.in changes. * libtool.m4 (_LT_AC_LTCONFIG_HACK): Now does all of the work for generating libtool immediately in configure.in, rather than deferring part of the creation until config.status runs. 2000-09-17 Gary V. Vaughan * bootstrap: Backed out yesterdays patch which is no longer necessary. * Makefile.am (libtool): Reworked rule for regeneration of libtool, now that it is built entirely withing config.status. (libtoolize): Tidied for orthogonality with the other generation rules. (ltconfig): This is now generated by AC_PROG_LIBTOOL, called from make by running config.status --recheck. (ltmain.sh): Moved primary generation of this file into here... * configure.in (AC_OUTPUT): ...instead of here. * libtool.m4 (AC_OUTPUT_COMMANDS): Write the config to ltconfig where it can be reused, rather than directly to libtool. * demo/configure.in: libtool is no longer present immediately after AC_LIBTOOL_M4 has completed, so the tests now grep through ltconfig instead -- which *will* be present. 2000-09-16 Gary V. Vaughan * TODO: Removed the item describing the change below, and added a similar item to remind us to change the ltdl.m4 macros again when _LT_AC_LTCONFIG_HACK is divided into proper macros. * ltdl.m4 (AC_LTDL_SNARF_CONFIG): Removed. No longet required now that ltconfig has migrated to libtool.m4. (AC_LTDL_SHLIBEXT): Require _LT_AC_LTCONFIG_HACK. (AC_LTDL_SHLIBPATH): ditto. (AC_LTDL_SYSSEARCHPATH): ditto. * ltdl.m4 (AC_LTDL_DLPREOPEN): Require the libtool.m4 symbol_pipe macro. (AC_LTDL_SYMBOL_USCORE): ditto. (AC_LTDL_GLOBAL_SYMBOL_PIPE): Removed, since it is a duplicate of... * libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): ...this new macro, extracted from _LT_AC_LTCONFIG_HACK. * ltdl.m4 (changequote): An audit of changequote and m4 quote usage -- all changequotes have been removed, and some latent unquoted `[' and `]' bugs have been fixed. * configure.in (AC_OUTPUT): ltmain.sh must be generated in the source tree since this is where it would be found in a freshly unrolled tarball. * configure.in: Replace `dnl' comments with `#' comments for more conformity with cvs autoconf. Removed emacs hack-local-variables, since there is now a proper Autoconf major mode. Removed a couple of changequote()s. * bootstrap (ltconfig): When bootstrapping libtool with a stock automake (i.e. without the README patch applied), references to ltconfig are manually removed from the generated Makefile.in files. 2000-09-15 Gary V. Vaughan * doc/libtool.texi: Removes references to ltconfig, and a small amount of tidying up to compensate. 2000-09-15 Nick Hudson * libtool.m4 (netbsd): Improved support. 2000-09-15 Gary V. Vaughan * ltmain.in (version_type): Use "-iface" as the windows versioning scheme, where iface is the number of the oldest interface supported. 2000-09-14 Gary V. Vaughan From Paul Sokolovsky * libtool.m4 (pw32): Initial support for pw32, assuming that libtool's behaviour in this environment is identical to under cygwin. * ltmain.in (pw32): ditto. * NEWS: Updated. * libtool.m4 (changequote): An audit of changequote and m4 quote usage -- all changequotes (except a few with non-nesting square brackets) have been removed. * Makefile.am (EXTRA_DIST): The bootstrap script should be distributed with libtool. 2000-09-13 Gary V. Vaughan libtool.m4 (_LT_AC_LTCONFIG_HACK): Oh man! Third time lucky. I just discovered that '&' needs to be escaped inside AC_TRY_EVAL. 2000-09-12 Michael Matz * ltmain.in: Be careful about filenames with multiple `.'s in them when calculating file extensions. Reported by Joel Reed 2000-09-12 Gary V. Vaughan libtool.m4 (AC_PROG_LIBTOOL): Removed, as it was triggering a bug in Autoconf-2.13 AC_REQUIRE implementation which inserted some of the expanded tests too early in the generaated configure. (_AC_PROG_LIBTOOL): renamed to AC_PROG_LIBTOOL, and defines itself to an empty expansion to prevent multiple expansions. configure.in (AC_LIBTOOL_SETUP): Replaced by a call to AC_PROG_LIBTOOL now that the AC_REQUIRE bug has been worked around. 2000-09-09 Gary V. Vaughan libtool.m4 (_LT_AC_LTCONFIG_HACK): Forgot to escape the redirections inside AC_TRY_EVAL in the need_lc tests. Doh! libtool.m4 (_LT_AC_LTCONFIG_HACK): Forgot to redirect the output of grep to /dev/null in the need_lc tests. configure.in (AC_PROG_LIBTOOL): Using this in libtools own configure.in interacts badly with the AC_PROVIDE calls and results in several tests being inserted into configure too early. Use AC_LIBTOOL_SETUP instead. 2000-09-08 Gary V. Vaughan libtool.m4 (_LT_AC_LTCONFIG_HACK): The ltconfig.in code I ported from ltconfig.in was incomplete -- this is a backport of the missing code taken from the multi-language branch. 2000-09-07 Pavel Roskin * libtool.m4 (_LT_AC_LTCONFIG_HACK): Fixed incorrect use of changequote 2000-09-07 Gary V. Vaughan * NEWS: Updated. * TODO: Add a reminder to get rid of ltconfig in mlb. * README: Until things even out, I have added a note and a patch to make the installed automake cooperate with the new ltconfig free libtool. * libtool.m4 (_LT_AC_LTCONFIG_HACK): with_gcc is only useful in ltmain.sh as it has not yet been set in libtool.m4. Use $ac_cv_prog_gcc instead. * doc/PLATFORMS: Updated. * configure.in (AC_PROG_AWK): Removed -- no longer required by the build process. * lineno: ditto. * libtoolize.in (files): Don't try to install ltconfig -- it doesn't exist!! * bootstrap: Fake an ltconfig incase the installed automake calls an installed libtoolize (as part of its --add-missing process) which thinks ltconfig should be there. * libtool.m4 (_LT_AC_LTCONFIG_HACK): Deleted a vital `;;' terminator from a case statement by mistake. * Makefile.am (ltmain.sh): Make this depend on TSDEPS again so that the Changelog timestamp is used for ltmain.sh at `make dist' time. 2000-09-06 Gary V. Vaughan libtool.m4 now contains a version of the code that used to run from ltconfig, so that ltmain.sh and then libtool are generated at configure time. * Makefile.am: Don't generate ltmain.sh or ltconfig anymore. * bootstrap: ltconfig is no more! * configure.in: Call AC_PROG_LIBTOOL directly. (AC_OUTPUT): Generate tmain.sh. * libtool.m4: Don't build an argument list for ltconfig. (_LT_AC_LTCONFIG_HACK): Refactoring of the former contents of ltconfig.in to take advantage of the m4 macros from autoconf. * ltmain.in: Don't do a version check against ltconfig. * tests/assign.test: Remove reference to ltconfig. * tests/hardcode.test: ditto. * tests/sh.test: ditto. 2000-09-05 Alexandre Oliva * depdemo/main.c: Support -alt. * tests/build-relink2.test: Try it. * ltconfig.in: Removed all references to what used to be hardcode_into_libs=all. 2000-09-03's patch was wrong. * ltmain.in: Likewise. * tests/build-relink.test, tests/build-relink2.test: Adjust. * mdemo/Makefile.am (lib_LTLIBRARIES): Move libsub.la before libfoo2.la, so that they're installed in the right order. 2000-09-04 Alexandre Oliva * tests/dryrun.test: Build libsub.la along with the object files, since it is needed by libfoo2.la. * mdemo/Makefile.am: Mark only libfoo2 as -no-undefined. Explicitly link it with libsub.la. * ltconfig.in (need_lc): Preserve allow_undefined_flag. * tests/*.test (CONFIG_SITE): Ultrix's /bin/sh fails on `. /dev/null'. Set CONFIG_SITE to /dev/null/config/site, to make sure we pick a non-existent file. * Makefile.am (libtool, clibtool): Pass CONFIG_SHELL along with ECHO down to ltconfig. * ltconfig.in (hardcode_libdir_flag_spec, export_dynamic_flag_spec): Use ${wl}, not ${wlarc}. * ltmain.in (compile, need_lock): Don't create nor remove lock files in dry runs. * libltdl/ltdl.c (load_deplibs): Don't append shlib_ext; use lt_dlopenext() instead. * ltmain.in (link -static): Don't add $link_static_flag; only -all-static should do that. * mdemo/configure.in: Revert part of the previous delta. * mdemo/configure.in: Don't use -static on AIX4.1. * mdemo/Makefile.am: Likewise. 2000-09-03 Alexandre Oliva * ltconfig.in: Get rid of hardcode_into_libs=all; use hardcode_into_libs=yes && shlibpath_overrides_runpath!=yes instead. [FreeBSD 3.[01]] (shlibpath_overrides_runpath): Set to no. * ltmain.in: Likewise. * tests/build-relink.test, tests/build-relink2.test: Adjust. * libtool.m4: Fix typo I introduced in yesterday's patch. * libltdl/ltdl.c (lt_dlopen): Set dlname from library_names if dlname is empty. * ltdl.m4 (HAVE_LIBDL): Look for dlopen in -lsvld. * ltconfig.in: Likewise. * tests/mdemo-exec.test: Modify failure message. * ltmain.in (newdlprefiles): Use dlname if it's available and old_library isn't; use linklib only if dlname is not available. * ltconfig.in (enable_dlopen): Set to no when lt_cv_dlopen is no. * libtool.m4: Don't quote CONFIG_SHELL nor ORIGINAL_CONFIG_SHELL. Quote $@ properly so that the shell expands it, not m4. * libtool.m4: Don't quote SHELL when `re-exec'ing, so that SHELL can be `/path/to/shell -x'. * tests/quote.test: Move the match test out of case statements, to work around bug in /bin/sh of several OSs. * ltmain.in (variables_saved_for_relink): Attempt to unset them instead of setting them to an empty string. 2000-09-02 Alexandre Oliva * ltconfig.in [with_gnu_ld] (archive_cmds, archive_expsym_cmds) : Use compiler_flags instead of linker flags. Reported by Alex Hornby 2000-09-02 Makoto Ishisone * libtool.m4 (lt_cv_deplibs_check_method, freebsd): Fix typo, add support for compact format library. 2000-09-02 Alexandre Oliva * ltdl.m4: Oops, I had forgotten to commit this part of Syd Polk's patch from 2000-06-17. 2000-09-02 Tom Kacvinsky , Tim Mooney * libtool.m4: Ignore Tru64's nm's complaint. 2000-09-02 Pavel Roskin * ltconfig.in: only load $cache_file if it's a regular file 2000-09-02 Assar Westerlund * ltconfig.in: Add back ranlib calls for static libraries if there is a ranlib. 2000-08-31 Gary V. Vaughan Move the echo detection code to a macro in libtool.m4. The code at the top ofltconfig.in is ugly, but will go away when the rest of ltconfig is migrated. * Makefile.am (libtool): Pass the value of $ECHO to ltconfig as an environment variable. * libtool.m4 (_LT_AC_PROG_ECHO_BACKSLASH): Quote the ECHO value correctly so that it inserts the correct code into configure.in suitably quoted for M4 expansion. This code needs to be near the top of configure.in as it calls itself recursively, so I am using AC_DIVERSION_NOTICE (or simply NOTICE on CVS Autoconf). The value of ECHO is also substitued into the Makefile to be used when Make calls ltconfig to generate libtool, so another layer of quotation is required for the Makefile. (AC_LIBTOOL_SETUP): Use it. * ltconfig.in: Accept a value for ECHO from the environment, and carefully substitue for $0 if it is present in the ECHO value. Because ECHO was quoted for Make, when ltconfig is called by configure, it is overquoted, and one layer of quotes must be stripped. 2000-08-27 Gary V. Vaughan * ltconfig.in (with_gcc): Make the value of this option available to the generated libtool script. * ltmain.in (compile_command, finalize_command): The native C and C++ compilers on IRIX require the -LANG:std in order to to compile correctly. The same options should _not_ be passed through to gcc on IRIX, or at all on other architectures for backwards compatibility (among others). Reported by Bob Friesenhahn Reported by Albert Chin-A-Young 2000-08-26 Gary V. Vaughan * ltconfig.in (old_reload_flag): typo. 2000-08-01 Alexandre Oliva * ltmain.in (shtool): Use echo|grep instead of expr, as in the original patch. 2000-08-01 Alexandre Oliva * ltconfig.in (need_lc): Fix test message. 2000-07-24 Mocha * ltconfig.in (NetBSD, deplibs_check_method): Use file_magic. (NetBSD, file_magic_cmd, file_magic_test_file): Set. 2000-07-24 Alexandre Oliva , David Kaelbling * ltmain.in (irix, major): Prepend a `.'. * ltconfig.in (irix, soname_spec, library_names_spec): Adjust. 2000-07-24 Alexandre Oliva , Ralf S. Engelschall * ltmain.in: Support GNU shtool's install. 2000-07-24 Alexandre Oliva * ltconfig.in (linkopts): Don't set for test. 2000-07-24 Nick Hudson * ltconfig.in (linkopts): Replace with linker_flags. * ltmain.in (ILD): Fix addition of deplibs in relink case. 2000-07-18 H.J. Lu * ltconfig.in: Check if -lc is necessary for building shared library. Set build_libtool_need_lc to indicate it. * ltmain.in: Add -lc when building shared library only if necessary. 2000-07-10 Mo DeJong * libtool.m4 (AC_PROG_NM): Fix macro so that it finds a cross NM on the PATH. 2000-07-10 Ken Block * libltdl/ltdl.h: Also check for __cplusplus, __STDC__ is not by Compaq C++ compiler 2000-07-10 Alexandre Oliva * ltconfig.in (wlarc, netbsd, aout): Set to empty. (hardcode_dynamic_flag_spec, export_dynamic_flag_spec): Use it. * ltconfig.in (dynamic_linker, linux, powerpc): Do not disable shared libraries just because of MkLinux. * libtool.m4 (lt_cv_deplibs_check_method, freebsd): Do not depend on $version_type; check for ELF support as in other BSDs. 2000-06-17 Syd Polk * libtool.m4 (AC_LIBTOOL_SETUP): Do not generate a libtool based on target; use host instead. 2000-05-30 Gary V. Vaughan * ltconfig.in (ORIGINAL_CONFIG_SHELL): Prevent lossage when the echo probing code falls into this branch without setting this variable. * ltconfig.in (netbsd*): archive_cmds and archive_expsym_cmds were reversed with respect to definition of __ELF__. From Keisuke Inoue 2000-05-29 Gary V. Vaughan * libtool.m4 (netbsd*): Use -L option to file_magic_cmd as for freebsd (below). * libtool.m4 (netbsd ELF): support file_magic. From Dan Winship . 2000-05-29 Steven M. Schultz * libtool.m4 (bsdi4*): Add -L option to bsdi4's file_magic_cmd command. Under BSD/OS 4.1 several libraries are now symlinks rather than regular files. Adding -L tells the file program to follow the symlink. 2000-05-29 Gary V. Vaughan * libtool.m4 (i*86-*-freebsd*): Forgot to changequote(,). * NEWS: Updated. * libtool.m4 (i*86-*-freebsd*): Support a.out shared libs. From 2000-05-29 Fred Fish Support AR=mwld AR_FLAGS='-xml -o' for PPC Beos. * ltconfig (old_AR_FLAGS): Add. (old_archive_cmds): Use AR_FLAGS rather than hardcoding "cru". (archive_cmds): Use AR_FLAGS rather than hardcoding "cru". (AR_FLAGS): Default to "cru" if not set. 2000-05-29 Gary V. Vaughan * ltconfig.in (echo): The following code actually prints the double quotes -- so I removed them: echo='printf "%s\n"' /bin/ksh -c '$echo \\t' From Tuukka Toivonen * NEWS: Updated. 2000-05-29 Bernhard Rosenkraenzer * libtool.m4: adding ia64 as supported linux platform 2000-05-29 Michael Matz * ltmain.in: fix quoting for $var_value. * ltconfig.in: check for dlfcn.h: include return value to make -Wall in CFLAGS work. 2000-05-27 Gary V. Vaughan * README-alpha: note new location of config.(guess|sub). 2000-05-27 Chad Cunningham * ltconfig.in (rhapsody*): New Port. * ltmain.in (rhapsody*): ditto. 2000-05-27 Chris Lattner * ltconfig.in (*-sequent-sysv4): New Port. 2000-05-17 Gary V. Vaughan * ltmain.in: cygwin-1.1.0 and higher no longer grok backslash path separators. 2000-05-14 Alexandre Oliva * libtool.m4 (AC_LIBLTDL_CONVENIENCE, AC_LIBLTDL_INSTALLABLE): Pick LIBLTLD from top_builddir and INCLTDL from top_srcdir. * mdemo/configure.in: Remove comments on AC_LIBLTLD_CONVENIENCE. * libtool.m4 (_AC_PROG_LIBTOOL): Renamed from... (AC_PROG_LIBTOOL): Just AC_REQUIRE(_AC_PROG_LIBTOOL), to avoid effects of multiple runs. 2000-05-11 Thomas Tanner * NEWS: update * doc/libtool.texi (libltdl): rename lt_(find|next|add|remove)_dlloader to lt_dlloader_* * libltdl/ltdl.c: ditto * libltdl/ltdl.h: ditto, add declaration of lt_dlloader_(find|remove) 2000-05-06 Pavel Roskin * libltdl/ltdl.c: Typo. * libtool.m4 (AC_LIBTOOL_SETUP): CVS autoconf no longer sets target to "NONE", but to an empty string. 2000-05-05 Paul Sokolovsky * ltdl.c: support lt_dlopen(0) for win32 2000-05-03 Thomas Tanner * doc/libtool.texi (libltdl): fix typos, INCLTDL starts with top_srcdir, replace NULL with @code{NULL} * ltmain.in (ILD): search in newlib_search_path, too * ltmain.in (ILD): fix bugs in conv pass, expand convenience libs to deplibs and link them later on * ltmain.in (ILD): don't allow convenience libs to be -dlopen/preopen'ed * ltmain.in (ILD): it's not required to link all deplibs in fast-install mode * ltmain.in (ILD): if hardcode_into_libs=all, only relink a library if it is linked against uninstalled libtool libraries, rename link_against_libtool_libs to uninst_deplibs * ltmain.in (ILD): tidy up, add some comments 2000-05-03 John Wehle (john@feith.com) * libtool.m4 (hpux10.20*): use file_magic for inter-library dependency tracking. 2000-05-02 Gary V. Vaughan * AUTHORS: Update my email address. * commit: ditto. 2000-04-11 Thomas Tanner * NEWS: update * libtool.m4: add AC_LIBTOOL_PICMODE * ltconfig.in: move pic_mode checks to ltmain.in * ltmain.in: add -prefer-pic and -prefer-non-pic 2000-03-29 Alexandre Oliva * ltmain.in (tmpdir): Do not accept an existing directory, and force its mode to 700, for security reasons. Reported by Joseph S. Myers 2000-03-27 Thomas Tanner * NEWS: reformatting * ltmain.in (ILD): add extra convenience library scanning pass * ltmain.in (ILD): accept -R flags for libraries, too * ltmain.in (ILD): correclty merge the dlpreopened libraries with deplibs * ltmain.in (install mode): remove directories from filenames before relinking (reported by Elrond ) * doc/libtool.texi (libltdl): rename Library -> Lesser, clarify exception clause * libltdl/ltdl.c, libltdl.h (License): ditto 2000-03-21 Alexandre Oliva * ltconfig.in (variables_saved_for_relink): Set to `PATH $shlibpath_var $runpath_var'. If with_gcc, add gcc-related environment variables. Add it to the configuration section. * ltmain.in (relink_command): Expand those variables. 2000-03-14 Christopher A. Knight * ltconfig.in: added main() definition in compile check for header `dlfcn.h' to fix link errors when built with Sun Workshop Pro CC 4.2 (and perhaps others). 2000-02-03 Gary V. Vaughan * libltdl/ltdl.c (lt_find_dlhandle): Deleted. This was B.S. far cleaner to use lt_dlforeach and lt_dlgetinfo. * libltdl/ltdl.h: Prototype deleted. * doc/libtool.texi: Documentation deleted. * NEWS: annoncement deleted. 2000-02-23 Thomas Tanner * ltmain.in: remove duplicates from deplibs, handle interdependent libraries (e.g. -la -lb -la), this requires adding deplibs in reverse order * ltmain.in: link dlpreopened libraries before other libraries (reported by Pavel Roskin) * mdemo/Makefile.am: build and link libsub.la * mdemo/sub.c: new file used by both dlopened modules * mdemo/foo*: use sub() defined in libsub * tests/dryrun.test: build libsub.la * mdemo/Makefile.am: always link mdemo.static with -static * mdemo/configure.in: ditto * ltmain.in: fix dlopen/dlpreopening of objects * ltmain.in (ILD): fix misplaced `continue' in -R* argument handler * ltmain.in: merge duplicated code of clean and uninstall mode * libtool.m4: recognize powerpc*linux* (reported by Dirk A. Mueller ) 2000-02-23 Gary V. Vaughan * ltconfig.in (old_MAGIC, old_STRIP, old_reload_flag, old_deplibs_check_method, old_file_magic_cmd): New variabes. Treat these as old_CC etc. (STRIP, MAGIC): Create and set these variables in the generated libtool script. Reported by Pavel Roskin * configure.in: Due to a bug in autoconf-2.13 implementation of AC_SUBST, `AC_SUBST(FILE)' can never work. Use MAGIC as the holder of the command to run in file_magic_cmd instead. * ltconfig.in: s/FILE/MAGIC/g. * libtool.m4 (AC_PROG_LIBTOOL): set MAGIC in the environment when calling ltconfig. (AC_PATH_MAGIC): renamed from AC_PATH_FILE. (AC_PATH_TOOL_PREFIX): s/FILE/MAGIC/g. Also set file_magic_cmd to '${MAGIC}' so that make can grok it. * Makefile.am (libtool): (clibtool): ditto. 2000-02-21 Gary V. Vaughan * libltdl/ltdl.c (lt_find_dlhandle): New function. (tryall_dlopen): Use it. * libltdl/ltdl.h: Prototype it. * doc/libtool.texi: Document it. * NEWS: updated. * libltdl/ltdl.c (lt_dlinit): removed unused variable, `loader'. * libltdl/ltdl.c (lt_remove_dlloader): typo, s/=/==/g. 2000-02-03 Gary V. Vaughan * libltdl/ltdl.h (lt_dlloader_data_t): New type for loader instance data. (lt_user_dlloader): New lt_dlloader_data_t field. (lt_module_open_t): Add lt_dlloader_data_t parameter. (lt_module_close_t): Add lt_dlloader_data_t parameter. (lt_find_sym_t): Add lt_dlloader_data_t parameter. (lt_dlloader_exit_t): Add lt_dlloader_data_t parameter. * libltdl/ltdl.c: A sprinkling of /*ARGSUSED*/ markers to reassure lint that the unused arguments are intentional. (lt_dlloader_t): New lt_dlloader_data_t field. (lt_dlloader_data): New function to return the contents of the dlloader_data field. (sys_dl_open): Take an additional lt_dlloader_data_t argument. (sys_dl_close): Ditto. (sys_dl_sym): Ditto. (sys_dl): Initialise lt_dlloader_data_t field. (sys_shl_open, sys_shl_close, sys_shl_sym, sys_shl): As above. (sys_wll_open, sys_wll_close, sys_wll_sym, sys_wll): As above. (sys_bedl_open, sys_bedl_close, sys_bedl_sym, sys_bedl): As above. (sys_dld_open, sys_dld_close, sys_dld_sym, sys_dld): As above. (presym_init, presym_exit, presym_open, presym_close, presym_sym, presym): As above. (lt_dlinit): Call presym_init with additional argument. (lt_dlexit): Call dlloader_exit method with additional argument. (tryall_dlopen): Call module_open method with additional argument. (lt_dlclose): Call module_close method with additional argument. (lt_dlsym): Call find_sym method with additional argument. (lt_add_dlloader): Initialise dlloader_data field. (lt_remove_dlloader): Call dlloader_exit method with additional argument. * libltdl/ltdl.c (find_file): Prevent early release of memory in filename/*pdir. From Jon Leichter (sys_wll_init): Deleted. No longer required. And this time, with feeling! (sys_wll_exit): Ditto. 2000-02-02 Gary V. Vaughan * NEWS: updated. * doc/libtool.texi (Libltdl interface): Moved user defined module loader documentation from here... (Module loaders for libltdl) ...to here, and updated the text and added examples. * ltdl.m4 (AC_CHECK_FUNCS): check strcmp for lt_find_dlloader. * libltdl/ltdl.h: Reformatted and commented for readability. (struct lt_user_dlloader): New data type for passing initialisation pointers to lt_add_dlloader. (LTDL_ERROR_INVALID_LOADER): New error message when non loader handles are passed to the user loader API. (LTDL_ERROR_INIT_LOADER): New error when loader initialisation fails. (LTDL_ERROR_REMOVE_LOADER): New error when loader removal fails. (lt_module_open_t): renamed from lt_lib_open_t. (lt_module_close_t): renamed from lt_lib_close_t. (lt_dlloader_exit_t): renamed from lt_dlloader_exit_t. * libltdl/ltdl.c: Reordered builtin loaders so that the "dld" loader no longer occurs before "dlopen" on some platforms and after it on others. (lt_dlloader_t): Moved here from ltdl.h, added a field, "loader_name", for identifying the loader, and renamed from lt_dltype_t. Renamed type variables to loader IFF of type lt_dlloader_t. (lt_module_t): Renamed from lt_syshandle. Renamed handle variables to module IFF of type lt_module_t. (LTDL_TYPE_TOP): Deleted. No longer required. (sys_dl): Initialised as a struct lt_user_dlloader. (sys_dl_init): Deleted. No longer required. (sys_dl_exit): Ditto. (sys_shl): Initialised as a struct lt_user_dlloader. (sys_shl_init): Deleted. No longer required. (sys_shl_exit): Ditto. (sys_wll): Initialised as a struct lt_user_dlloader. (sys_wll_init): Deleted. No longer required. (sys_wll_exit): Ditto. (sys_bedl): Initialised as a struct lt_user_dlloader. (sys_bedl_init): Deleted. No longer required. (sys_bedl_exit): Ditto. (sys_dld): Initialised as a struct lt_user_dlloader. (sys_dld_init): Deleted. No longer required. (sys_dld_exit): Ditto. (sys_presym): Initialised as a struct lt_user_dlloader. (lt_mod_init_t): Moved to here from ltdl.h. (lt_dlinit): Add builtin loaders using the user loader API. (lt_dlexit): Unregister and free all loaders. (lt_add_dlloader): New function to add a new module loader after the loader specified in the argument. (lt_remove_dlloader): New function to remove a module loader. (lt_next_dlloader): New function for iterating over module loaders. (lt_dlloader_name): Accessor function for name of dlloader. (lt_find_dlloader): New function to get a reference to a registered module loader. (strcmp): static implementation incase the host has none. (lt_dlgettypes, lt_dlsettypes): Removed. 2000-02-02 Thomas Tanner * libltdl/ltdl.c: replace NULL with 0, remove unused system and app_private pointers from lt_dlhandle_t * libltdl/ltdl.c (presym_add_list): new preloaded symbols don't need to be added to the end * libltdl/ltdl.c (lt_dlgetdata, lt_dlsetdata): removed * libltdl/ltdl.h: ditto * doc/libtool.texi (libltdl interface): ditto 2000-02-01 Thomas Tanner * ltmain.in: support -dlopen/dlpreopen for libraries * NEWS: updated * TODO: updated * ltmain.in: rename dlopen to dlopen_support * ltconfig.in: ditto * doc/libtool.texi: ditto * ltmain.in: check whether libraries are moved out of $libdir, replace .a and .lib with .$libext, .o and .obj with .$objext 2000-01-31 Gary V. Vaughan * libltdl/ltdl.h (lt_dlrealloc): removed declaration. * libltdl/ltdl.c (lt_dlrealloc): removed definition. (lt_dladderror): Instead of calling lt_dlrealloc, use lt_dlmalloc, and lt_dlfree. 2000-01-30 Ossama Othman * libtool.m4 (lt_cv_cc_needs_belf): Set the test language to C prior to executing the test that checks if the C compiler needs "-belf." Reported by Chris Butler 2000-01-28 Gary V. Vaughan * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use changequote to protect `[' and `]' in deplibs_check_method. * libltdl/ltdl.h (lt_dlrealloc): Added declaration. * libltdl/ltdl.c (lt_dlrealloc): Added default definition. * libltdl/ltdl.c (lt_dlseterror): Catch errorcodes below 0 as invalid. * libltdl/ltdl.h (LTDL_ERROR): Added missing '_' in K&R definition. * libltdl/ltdl.h (ltdl_error_table): Added missing error code, and fixed typo in another code. * doc/libtool.texi (Libltdl interface): Added missing @end clause. 2000-01-27 Thomas Tanner * ltconfig.in: Oops, replace the remaining $objdir's * ltmain.in: merge library linking code of programs and libraries, some cleanups 2000-01-27 Gary V. Vaughan * NEWS: Updated. * doc/libtool.texi (Libltdl interface): Document new entry points. * libltdl/ltdl.c (lt_dladderror): New function to add a user defined error message to the tables used by lt_dlerror(). (lt_dlseterror): New function to allow setting of last_error by user modules. (ltdl_error_strings): New preprocessor generated table of internal error diagnostic strings. (user_error_strings): New internal list of registered user error diagnostic strings. (throughout!): Use error messages from ltdl_error_strings. * libltdl/ltdl.h (ltdl_error_table): New macro to tabulate internal diagnostic error strings alongside enum keys. * NEWS: Updated. * doc/libtool.texi (Libltdl interface): Document new entry points. * libltdl/ltdl.c (lt_dltype_t): Use new type definitions for existing fields. (lt_dladdtype): New function to add a new ltdl dynamic loader type to the end of the list of valid types.. (lt_dlgettypes): New function to return the complete list of ltdl dynamic loader types. (lt_dlsettypes): New function to replace the list of ltdl dynamic loader types entirely -- e.g. to prepend a new type to the existing list. (sys_dl_open, sys_dl_close, sys_dl_sym): Work with lt_syshandle. (sys_shl_open, sys_shl_close, sys_shl_sym): ditto. (sys_dld_open, sys_dld_close, sys_dld_sym): ditto. (sys_wll_open, sys_wll_close, sys_wll_sym): ditto. (sys_bedl_open, sys_bedl_close, sys_bedl_sym): ditto. (presym_open, presym_close, presym_sym): ditto. (tryall_dlopen): Call lt_lib_open_t functions lt_syshandle compatibly. (lt_dlclose): Call lt_lib_close_t functions lt_syshandle compatibly. (lt_dlsym): Call lt_find_sym_t functions lt_syshandle compatibly. (lt_dltype_t): moved type declaration from here... * libltdl/ltdl.h (lt_dltype_t): ...to here. (lt_syshandle): new type for low level system handles passed by loader functions (lt_mod_init_t): New type for functions implementing the initialisation for an ltdl dynamic loader. (lt_mod_exit_t): Type of exit functions for the same. (lt_lib_open_t): Type of loader functions for the same. (lt_lib_close_t): Type of unloader functions for the same. (lt_find_sym_t): Type of symbol resolver functions for the same. * libltdl/ltdl.c (sys_dl_init, sys_dl_exit, sys_dl_open, sys_dl_close, sys_dl_sym): Preprocess these away on cygwin to avoid spurious error messages. 2000-01-24 Thomas Tanner fix severe bugs reported by Elrond * ltconfig.in: replace $objdir with $output_objdir * ltmain.in: change to the builddir before relinking programs * ltmain.in, ltconfig.in, libtool.m4, ltdl.m4: remove unnessary spaces from line endings 2000-01-19 Thomas Tanner * ltmain.in: rewrite of the ILD code, merge linking code for programs, libraries and objects, allow linking of shared libraries against static libraries/objects on platforms that support it but print a warning, fix some typos * partially revert my previous change and update only copyright notices of files that were actually modified * NEWS: update * libltdl/Makefile.am: version number was wrong * libltdl/ltdl.c (tryall_dlopen): revert Gary's change since it breaks dlpreopening * ltdl.m4: ditto * libltdl/ltdl.c (sys_search_path): search in the system default library search path, too * ltdl.m4 (AC_LTDL_SYSSEARCHPATH): extract the path * libltdl/ltdl.c (find_module): remove bogus file_not_found_error * libltdl/ltdl.c (load_deplibs): implement loading of dependency libraries * libltdl/ltdl.c (unload_deplibs): implement unloading of dependency libraries * libltdl/ltdl.c (lt_dlexit): correctly close all modules and their dependencies * libltdl/ltdl.c (lt_dlforeach): new function * libltdl/ltdl.h: ditto * doc/libtool.texi (using libltdl): document it * libtool.m4: reformatting, only add -I$topsrc_dir/libltdl to INCLTDL * libtoolize.in: reformatting * ltconfig.in: reformatting * ltmain.in: reformatting * mdemo/configure.in: AC_SUBST INCLTDL * mdemo/Makefile.am: use INCLTDL * tests/Makefile.am: reexport OBJEXT and EXEEXT * tests/dryrun.test: use them for building main.obj and mdemo.exe 2000-01-17 Gary V. Vaughan * libltdl/ltdl.c (tryall_dlopen): Abort with file_not_found_error before trying all lib_open() methods if the file to be dlopened doesn't exist. * ltdl.m4 (AC_HAVE_HEADERS): add unistd.h. 2000-01-16 Gary V. Vaughan * libltdl/ltdl.c (find_file): memory error fixed. 2000-01-14 Gary V. Vaughan * ltconfig.in (Usage): Now it matches the code! Reported by Jon Leichter * README: Some notes about libtool release numbers. * mdemo/README: Explain the deliberate incompleteness of the Windows port. * mdemo/configure.in: Use AC_LIBTOOL_WIN32_DLL. * mdemo/Makefile.am (LDFLAGS): Add -no-undefined. * libltdl/ltdl.h (LTDL_STMT_START, LTDL_STMT_END): Macros for wrapping other macros to make a portable compound statement from multiple C statements in the expansion. (LTDL_SET_PRELOADED_SYMBOLS): Use the above macros to add an extern declaration for lt_preloaded_symbols, to remove dependency on undefined symbol from libltdl.dll on cygwin (and other -no-undefined architectures). * libltdl/ltdl.c (lt_preloaded_symbols): No longer defined here. * libtool,m4 (AC_LIBTOOL_SETUP): The result of lt_cv_need_dllmain was set to the opposite of what it should be. * configure.in (AC_LIBTOOL_WIN32_DLL): Call to this macro is required for libtool configury to test lt_cv_need_dllmain on Windows. * ltconfig.in (opt_cr, mingw*): replace unescaped ? with correctly escaped and portable \{0,1\} in sed expression. From Jon Leichter 2000-01-13 Gary V. Vaughan * libtool.m4 (AC_LIBLTDL_CONVENIENCE): Add -I${top_srcdir}/libltdl to default INCLTDL for VPATH. (AC_LIBLTDL_INSTALLABLE): ditto. Reported by Tom Tromey 2000-01-12 Thomas Tanner * update all copyright notices to 2000 * doc/libtool.texi (using libltdl): document new lt_dlinfo struct, replace NULL with @code{NULL}, document lt_dlsetdata(), lt_dlgetdata() and lt_dlgetinfo() * libltdl/Makefile.am: increment interface version number * libltdl/configure.in: set version number to 1.1 * libltdl/ltdl.c: make some variables public by moving them to the info struct, add support for application specific data within module handles, new lt_dlsetdata(), lt_dlgetdata() and lt_dlgetinfo() functions, fix memory leaks, minor cleanups * libltdl/ltdl.h: ditto * mdemo/main.c: demonstrate use of lt_dlgetinfo, improved handling of errors * ltconfig.in: set hardcode_into_libs = yes for GNU/Hurd, Linux and Solaris, only hardcode *all* run-paths if hardcode_into_libs is set to 'all', otherwise hardcode only user-specified rpaths into libraries * ltmain.in: minor cleanups, we don't need to add user-specified rpaths to compile_rpath, finalize_rpath is sufficient * ltconfig.in: transform linux* -> *linux-gnu* _after_ host_os has been set! (reported by Bruno Haible ) * configure.in: AC_SUBST reload_flag, deplibs_check_method and file_magic_cmd * README: use 'libtool --version' instead of 'ltconfig --version' (suggested by Francios Pinard 2000-01-10 Gary V. Vaughan * libltdl/ltdl.h (LTDL_DIRSEP_CHAR): Leave undefined when not compiling for a Windows target. * libltdl/ltdl.c (canonicalize_path): New function to ensure internal paths use '/' directory separators. (find_file): use canonicalize_path. Memory management changed to cope. (lt_dlopen): ditto. (free_vars): Removed `dir' and `name', which are now handled internally. * libltdl/ltdl.h (LTDL_DIRSEP_CHAR): Define to '/' or '\\', as suitable for the target host. (LTDL_PATHSEP_CHAR): Similarly with ':' or ';'. * libltdl/ltdl.c: Use LTDL_DIRSEP_CHAR and LTDL_PATHSEP_CHAR instead of hardcoding throughout. Reported by Jon Leichter 1999-12-18 Alexandre Oliva * ltmain.in: Oops, `largarg' -> `lastarg'. * ltmain.in (-Wc, -Xcompiler): Implemented in compile mode. * ltmain.in (-Xcompiler, -Xlinker): Add to compile_command and finalize_command. (-Wc, -Wl): Likewise. * tests/quote.test: Adjust quoting style of -Wl. * ltmain.in: Oops, `echo' -> `$echo'. * ltmain.in (-Wl, -Wc): Make commas argument separators, just like in gcc. * ltmain.in (libtool_args): Get all arguments properly enclosed in quotes and backslash-protected when needed. 1999-12-16 Alexandre Oliva * ltdl.m4: Renamed from... * libltdl/ltdl.m4: that no longer exists. * configure.in (ACINCLUDE_M4_LIST): Removed libltdl/acinclude.m4. * Makefile.am (aclocal_macros): Added ltdl.m4. (libltdl/acinclude.m4): Concatenate libtool.m4 and ltdl.m4. * bootstrap: Likewise. * libltdl/Makefile.am (ACLOCAL): Remove the definition. Relying upon -I may lead to duplicates. * doc/libtool.texi: Suggest appending ltdl.m4 to acinclude.m4. * libtoolize.in: Check AC_LIB_LTDL version number in aclocal.m4. * libltdl/configure.in (with_auxdir): Do not use it as the argument of AC_CONFIG_AUX_DIR, automake requires a literal here. Use AC_CONFIG_AUX_DIRS/DIR_DEFAULT instead. * libltdl/Makefile.am (ACLOCAL): Define with `-I .', as in bootstrap. 1999-12-15 Thomas Tanner * libltdl/configure.in: path to auxiliary files can be specified using --with-auxdir (idea by Howard Chu ) * ltmain.in: don't remove multiple occurences from dependency_libs of a library, otherwise many dependencies would get lost * bootstrap: use "aclocal -I ." instead of adding the contents of ltdl.m4 to acinclude.m4 1999-12-13 Gary V. Vaughan * NEWS: updated. * libltdl/Makefile.am: Use -no-undefined for dll compliance. * libltdl/configure.in: Use AC_LIBTOOL_WIN32_DLL for dll compliance. * libltdl/ltdl.c: Define and use LTDL_GLOBAL_DATA to correctly export global data symbols from libltdl.dll. * libltdl/ltdl.h: Define and use LTDL_SCOPE to declare data symbols as dllexport, dllimport or plain ornary extern depending in the context in which it is used. * doc/libtool.texi (Distributing libltdl): document use of ltdl.m4. * libltdl/configure.in: Removed header checks, as they are automatically performed by AC_LIB_LTDL. * libltdl/ltdl.m4: Added header checks from configure.in, so that AC_LIB_LTDL is sufficient to compile ltdl.c. Reported by Stephan Kulow . * ltconfig.in (ltdll_obj): fixed typo: objdir -> $objdir 1999-12-12 Gary V. Vaughan * ltconfig.in (cygwin*, mingw*, export_symbols_cmds): keep any DATA tags associated with symbols by recent dlltool. (cygwin*, mingw*, archive_expsym_cmds): Honor any DATA tags found in the symbol list. Reported by Jon Leichter . 1999-12-10 Gary V. Vaughan From Stephan Kulow * libltdl/ltdl.m4: Add arg 3 to AC_DEFINE's to save the user from having to hack acconfig.h. 1999-12-06 Gary V. Vaughan * NEWS: Updated. * TODO: Note some cleanups that are now needed. * libltdl/configure.in: Use the new macroised tests. * libltdl/ltdl.m4: New file, macroised tests formerly in libltdl/configure.in. Reported by Stephan Kulow . From Tim Mooney * ltconfig.in: split off the osf3 section, so that the osf4 and osf5 sections can add `-msym' to arguments passed to the linker for shared libs. 1999-12-03 Alexandre Oliva * ltconfig.in (ac_compile): Use $ac_ext instead of .c. (ac_link): Likewise. (dlfcn.h, ac_try): Do not add filename, it is already in ac_compile. Reported by Stephane Conversy * ltconfig.in (linux-gnu*): Disable hardcode_into_libs until it works together with fast_install. * libtool.m4: Use host when --target is not specified. * configure.in: AC_SUBST variables that are used by ltconfig to build libtool. * ltconfig.in (irix6*): Do not override deplibs_check_method here. * libtool.m4: Do not AC_SUBST anything other than LIBTOOL. 1999-11-20 Michael Forster * ltconfig.in (linux-gnu*): Set hardcode_into_libs=yes. 1999-11-29 Gary V. Vaughan * ltconfig.in: Be friendlier to C++ compilers when testing for dlopen support. Reported by Stephan Kulow 1999-11-26 Gary V. Vaughan * libtool.m4: better use of $target instead of $host to support cross compilation. Reported by Sam Latinga 1999-11-16 Thomas Tanner * configure.in: generate ltconfig and ltmain.sh before configuring libltdl 1999-11-04 Alexandre Oliva * tests/sh.test: New test to detect uses of quotes within backticks within quotes. * ltconfig.in, ltmain.in: Fix detected errors. Mark false positives with a comment that disables the detector. Reported by Akim Demaille * configure.in: Move ltconfig and ltmain.sh generation back... * Makefile.am: here. 1999-11-02 Thomas Tanner * NEWS: updated * THANKS: added Olly Betts and Pavel Roskin * doc/libtool.texi: fix typo * fix major bugs which rendered libtool virtually unusable (i.e. not portable): * ltconfig.in: don't hardcode system dependent variables in ltconfig!! but set sane defaults * Makefile.am: pass variables from AC_LIBTOOL_SETUP to ltconfig * libtool.m4: ditto, fix typo in AC_PROG_LD_RELOAD_FLAG * ltconfig.in: use old_deplibs for archives, too remove second occurence of sysv5 * ltmain.in: fix typo, fix the second occurence of -DPIC, too * libltdl/Makefile.am: increment version number, fix typo * libltdl/ltdl.c (lt_dlsym): don't report an error if the libltdl-style symbol name wasn't found 1999-11-02 Wolfgang Rapp * ltconfig.in: add support for Unixware (sysv4.2uw2*) 1999-10-29 Gary V. Vaughan * ltmain.in: Damnit! Cygwin cvs committed all the dos line endings. 1999-10-28 Stephane Conversy * ltmain.in (-DPIC): changed the order of pic flags a little to prevent upsetting the sgi c++ compiler. 1999-10-28 Olly Betts * ltconfig.in (opt_cr): Handle crlf sequences output by the mingw toolchain. * libtool.m4: Third time lucky, with Tor's patch. 1999-10-19 Tor Lillqvist * libtool.m4: these was a missing `*' in the -mno-cygwin match. * ltconfig.in (cygwin, ltdll_obj): fixed a quoting error. (export_symbols_cmds): added missing cosmetic newline. 1999-10-18 Tor Lillqvist * libtool.m4: test command used == which should be =. Support -mno-cygwin flag for building mingw32 dlls. * ltconfig.in (file_magic_cmd): add missing quotes. (deplibs_check_method): and here. 1999-10-16 Alexandre Oliva * libltdl/ltdl.c (lt_dlopen): Do not search paths when the specified library is not just a basename. 1999-10-10 Gary V. Vaughan * libtool.m4 (AC_PATH_FILE): new macro replaces AC_PATH_TOOL_GREP_OUTPUT. (AC_PATH_TOOL_PREFIX): new macro replaces AC_PATH_PROG_GREP_OUTPUT. (AC_LD_RELOAD_FLAG): migrated from ltconfig.in. (AC_DEPLIBS_CHECK_METHOD): ditto. * ltconfig.in (reload_flag): moved to libtool.m4. (deplbs_check_method): ditto. 1999-10-07 Gary V. Vaughan * libtool.m4 (AC_PATH_PROG_VERSION_GREP): removed in favour of the more general AC_PATH_PROG_GREP_OUTPUT. (AC_PATH_TOOL_VERSION_GREP): removed in favour of the more general AC_PATH_TOOL_GREP_OUTPUT. (AC_PROG_LIBTOOL): Search for a working find program in the user's PATH using the new macros. 1999-10-06 Gary V. Vaughan * NEWS: updtaed. * ltconfig.in: Accept osf5. Reported by Sascha Schumann 1999-10-04 Gary V. Vaughan * ltmain.in (-no-install): This doesn't work on win32 since the search path for libraries is not encoded in the binary, and dlls not in $PATH won't be found. Fall back to -no-fast-install instead. * ltmain.in (-no-fast-install): Wrapper script used to add the exeext on again when naming the wrapped executable. 1999-10-03 Gary V. Vaughan * ltconfig.in: Set $FILE to @FILE@ for substitution with the value found in libtool.m4 at configure time. * libtool.m4 (AC_PATH_TOOL_GREP_VERSION): New macro, combines AC_PATH_PROG and AC_CHECK_TOOL with a test which greps the output of $ac_dir/${ac_prefix} --version for a given regex. (AC_PATH_PROG_GREP_VERSION): New macro used by the above. (AC_LIBTOOL_SETUP): Use the new macros to search the PATH [starting at /usr/bin] for a file program which accepts --version and has "file" in its --version output. 1999-10-03 Thomas Tanner * NEWS: new -no-install flag * configure.in: fix typo * doc/libtool.texi(Link mode): document -no-install flag, correct -no-fast-install docs * libtool.m4: check for "file" command * ltconfig.in: don't hardcode /usr/bin/file, remove second definition of sysv5, replace linkopts -> linker_flags * ltmain.in: add new -no-install flag, print help for -no-install and -no-fast-install flags 1999-10-03 Olly Betts * ltmain.in: always create output_objdir 1999-10-03 Pavel Roskin * libltdl/Makefile.am: don't preserve file attributes when installing the libltdl sources 1999-10-01 Gary V. Vaughan * configure.in (AC_OUTPUT_COMMANDS): generate ltmain.sh * Makefile.am (ltmain.sh ltconfig): removed. Automake inserts the rules to automatically call config.status. * libtool.m4: be sure to AC_SUBST values no longer tested in ltconfig.in. * ltconfig.in: replaced several of the simple feature tests with substitutions from config.status. * Makefile.am (ltconfig): generate ltconfig with config.status. * configure.in (AC_OUTPUT): generate ltconfig with config.status. 1999-09-30 Donald Anderson * ltconfig.in (sco3.2v5): use pass_all deplibs_check_method for SCO3.2. 1999-09-29 Gary V. Vaughan * ltconfig.in (whole-archive-flag-spec): I had been wondering why my file system was filling up with empty files named `71'... seems I forgot to hold in the shift key when redirecting stderr, 2>&1. Doh! 1999-09-29 Vadim * ltconfig.in (sysv): More UW7 support. 1999-09-28 Albert Cheng * ltmain.in (shlibpath_var): ensure the variable is non-empty before exporting it. 1999-09-27 Manfred Weichel * ltconfig.in (sysv5): Added support required for shared library linking on SCO UW7. 1999-09-22 Gary V. Vaughan * ltconfig.in (whole-archive-flag-spec): test whether the version of GNU ld being used understands --whole-archive before using it. 1999-09-19 Thomas Tanner * ltmain.in: don't ignore convenience libraries for objects/archives (temporary hack) 1999-09-14 Alexandre Oliva * ltconfig.in (CDPATH): Set to `:' instead of empty. * ltmain.in (CDPATH): Likewise. Reported by Greg McGary 1999-08-24 Gary V. Vaughan * ltconfig.in (ltdll.c, impgen.c): Prevent the shell from expanding variables & backslash escapes when writing these files to the libtool script. 1999-08-24 Thomas Tanner * NEWS: mention fixes * doc/PLATFORMS: GNU/Hurd update * depdemo: make use of variables * ltconfig.in: use CC -E when checking for ELF support on NetBSD (reported by Todd Vierling ), replace all occurences of 'linkopts' with 'linker_flags' * ltmain.in: move ltdll.c and impgen.c to ltconfig.in and only add them to the libtool script if it's necessary 1999-08-24 Boyd Gerber * ltconfig.in: add support for UnixWare 7.X.X * doc/PLATFORMS: add new platforms 1999-08-24 Pavel Roskin * doc/libtool.texi: document use of noinst_LTLIBRARIES for convenience libraries * ltconfig.in: check for freebsdelf3, not just freebsd3. Set hardcode_into_libs=yes for FreeBSD 3.0 and 3.1 * ltmain.in: enable workaround for freebsdelf3.0 1999-08-24 Bert Driehuis * ltconfig.in: export_dynamic_flag_spec is -rdynamic on BSD/OS 1999-08-07 Alexandre Oliva * libltdl/COPYING.LIB: Update to version 2.1. * libltdl/ltdl.h, libltdl/ltdl.c: Update FSF address. 1999-08-03 Gary V. Vaughan * libtool.m4 (mingw*, AC_PROG_LD): use tr for carriage return stripping. * ltconfig.in: ditto. From Olly Betts 1999-08-02 Olly Betts * doc/libtool.texi (Compile mode): typo correction. (Link mode): and another. (Release numbers): and another. (Distributing libltdl): and another. (Test descriptions): and another. (libtool script contents): and one more. * libtool.m4 (AC_PROG_LD): strip carriage returns from the output of gcc -print-prog-name=ld. * ltconfig.in: ditto. 1999-07-30 Pavel Roskin * ltmain.in: Ensure that gcc on HPsUX uses -fPIC, or else initialised structures are sometimes emitted in the code section. 1999-07-30 Mumit Khan * ltconfig.in: Read line at a time to avoid tokenisation by shell. 1999-07-29 Alexandre Oliva * ltmain.in: Fix creation of relative links to object files in sub-dirs. 1999-07-29 Olly Betts * ltconfig.in(cygwin mingw32, archive_expsym_cmds): Only compile and link ltdll.c if the libtool.m4 macros discovered that it is required. 1999-07-26 Olly Betts * libtool.m4(cygwin mingw32, AC_LIBTOOL_SETUP): Oops. Fix some typos made by Evil Gary while (mis)applying my patch :-). * libtool.m4(cygwin mingw32, AC_LIBTOOL_SETUP): On second thoughts, only probe for -mdll vs -dll on mingw, and revert to the old `-Wl,--dll -nostartfiles' on cygwin. 1999-07-24 Erez Zadok * doc/PLATFORMS (i*86-*openbsd2.5): New platform. Slight reordering of other bsd entries. 1999-07-24 Olly Betts * NEWS: Note new user visible changes. * libtool.m4 (mingw32, AC_LIBTOOL_SETUP): probe for -mdll vs -dll under cygwin/mingw. probe whether the cygwin/mingw library supplies a stub DllMain (but this information isn't yet used). * ltconfig.in (mingw32, extract_expsyms_cmds): if HOST_CC is set, use that to build impgen so we can use it when cross-compiling. use correct entry points for mingw so static C++ constructors get called for code in the DLL. * ltmain.in (impgen.c): define O_BINARY to 0 if it is not in the system headers. 1999-07-24 Bert Driehuis * ltconfig.in: Updated bsdi4 soname specs to be more like linux as discussed on the bsdi mailing list. 1999-07-20 Gary V. Vaughan * configure.in (AC_PROG_RANLIB): No longer required as we now use AC_CHECK_TOOL in AC_LIBTOOL_SETUP. * libtool.m4 (AC_PROG_LIBTOOL): Pass the $build variable to ltconfig. (AC_PROG_RANLIB): replaced with AC_CHECK_TOOL. * ltconfig.in (build): new variable to hold the build triplet which is now checked for unless --no-verify is specified. (--build): new argument to set the build triplet. (ranlib): Prefer ${host_alias}-ranlib[.exe] if $build is different to $host. * doc/libtool.texi (Invoking ltconfig): Document --build option. * NEWS: Note --build option. 1999-07-19 Erez Zadok * doc/PLATFORMS: Updated mostly *bsd platforms. 1999-07-19 Alexandre Oliva * doc/libtool.texi (Porting inter-library dependencies): Typos Reported by Petter Reinholdtsen 1999-07-17 Thomas Tanner * NEWS, TODO: updated (pic flags) * libtool.m4 (AC_PROG_LIBTOOL): added --with-pic flag * ltconfig.in: new pic_mode variable and --prefer[-non]-pic flags, fixed the strip check (reported by Keith Bostic ) * ltmain.in (compile mode): build only PIC/non-PIC code depending on pic_mode * libltdl/README: document the supported dlopen interfaces * doc/libtool.texi (tests): documented new tests * tests/Makefile.am: added new tests * tests/demo-pic.test: new test to test --with-pic * tests/demo-nopic.test: new test to test --without-pic * tests/build-relink2.test: variant of build-relink.test that uses depdemo 1999-07-09 Olly Betts * doc/libtool.texi (C++ Libraries): fixed a typo. 1999-07-06 Gary V. Vaughan * README-alpha: improved the release instructions to mention actual list addresses for announcements, and urls for upload locations. 1999-07-03 Thomas Tanner * doc/PLATFORMS: 1.3b passes all tests on cygwin 1999-07-03 Pavel Roskin * ltconfig.in: finish_cmds for FreeBSD removed * depdemo/l3/Makefile.am: install libl3.la into an extra directory 1999-07-02 Gary V. Vaughan * configure.in: bumped version to 1.3c. GNU libtool 1.3b was released. * NEWS: inserted todays date. 1999-07-02 Alexandre Oliva * doc/PLATFORMS: Tested on as many platforms as possible for me. 1999-07-01 Thomas Tanner * NEWS: updated * doc/PLATFORMS: updated * changed my email address 1999-06-30 Thomas Tanner * demo/foo.h: use LT_PARAMS instead of LTDL_PARAMS (this is not libltdl) * tests/build-relink.test: also check for hardcode_into_libs = yes, if set, we need to relink at install-time 1999-06-29 Thomas Tanner * NEWS: mention -no-fast-install, rename dummy to force * doc/PLATFORMS: 1.3b passes all tests on GNU/Linux, FreeBSD (2.2.6 and 3.1) * doc/libtool.texi: it's possible to link libtool libraries using -L and -l, better documentation of uninstall and clean mode, rename dummy to force, documented -no-fast-install, AC_LIBLTDL_* must be called before AC_PROG_LIBTOOL, documented hardcode_into_libs and striplib/old_striplib, * ltconfig.in: search for strip program, added hardcode_into_libs and striplib/old_striplib variables, set strip commands for GNU strip, on FreeBSD >= 3.2 set hardcode_into_libs to yes, fast-install mode doesn't work if hardcode_into_libs = yes * ltmain.in: reimplemented hardcoding into libraries: new relink mode, preserve all libtool args, relink libraries when installing if necessary added -no-fast-install flag, removed unnecessary `dlname' initialization, use striplib/old_striplib for stripping libraries, dlname is always soname or in library_names so we don't need to handle different file names 1999-06-29 Alexandre Oliva * ltconfig.in (freebsd*, shlibpath_overrides_runpath): Set to yes up to release 3.1, and to no from 3.2 on. Reported by Pavel Roskin 1999-06-29 Pavel Roskin , Alexandre Oliva * ltconfig.in (freebsd*, shlibpath_overrides_runpath): Set to yes; tested on 3.1-ELF by Pavel and on 2.2.6 by Alexandre. 1999-06-25 Alexandre Oliva * ltconfig.in (linux-gnu*, deplibs_check_method): Use pass_all on alpha, x86 and sparc architectures by now, reverting to file_magic at least on ARM, where it breaks. 1999-06-23 Thomas Tanner * NEWS: updated * README: added GNU Hurd to the supported platforms * doc/libtool.texi: document `-dlpreopen dummy' instead of `-dlopen dummy' * libltdl/ltdl.c (strchr): fixed typo (missing star) 1999-06-23 Stephan Kulow * libltdl/ltdl.c (strrchr): fixed typo (missing star) * libltdl/ltdl.c (trim): use `const' to silence -Wwrite-strings 1999-06-23 Olly Betts * ltmain.in (ltdll.c): Support for crosscompiling from linux to mingw32. 1999-06-23 Gary V. Vaughan * ltconfig.in (cygwin, export_symbols_cmds): If there is already an extracted and compiled ltdll.c, then don't delete, reextract and recompile. (cygwin, archive_expsym_cmds): Make sure the ltdll source has been extracted and compiled before referencing the object, since there are paths through the code which run archive_expsym_cmds without running export_symbols_cmds. 1999-06-20 Gary V. Vaughan * ltconfig.in: moved the test for NM after the test for no_builtin_flag. 1999-06-20 Alexandre Oliva * ltconfig.in: Use sed '$q' instead of sed "" for copying ltmain, just in case some sed does not support an empty command. * ltconfig.in (link_static_flag, ac_cv_prog_cc_static): Use the latter in the test. 1999-06-18 Thomas Tanner * ltconfig.in (bsdi4, deplibs_check_method): use a less restrictive regex (reported by Chris P. Ross ) * ltmain.in: support `-dlopen dummy', define lt_preloaded_symbols if dlself != no * doc/libtool.texi (Compile and Link mode): document it, documented the -Wc, -Wl flags, libtool does also support non C source code 1999-06-18 Teun Burgers * ltconfig.in: CR/LF fix for broken DJGPP bash * ltmain.in: CR/LF fix for DJGPP 1999-06-18 Gary V. Vaughan * ltmain.in (outputname): When generating the executable wrapper script, $outputname already has the $exeext suffix, so we needn't add it again. 1999-06-16 Gary V. Vaughan * libltdl/configure.in (ac_cv_lib_dl_dlopen): missing "x" in test comparison corrected. * libltdl/ltdl.c (sys_wll_open): libltdl expects this function to fail if it is unable to physically load the library. Sadly, LoadLibrary will search the loaded libraries for a match and return one of them if the path search load fails. Simulate a failure in this case for compatibility with the other APIs. Also, LoadLibrary takes the liberty of adding `.dll' to library names passed without an extension, we now add a trailing `.' to prevent this from happening. 1999-06-15 Gary V. Vaughan * libltdl/ltdl.c (sys_wll_close): Strangely enough, Microsoft have decided that LoadLibrary returns `0' for success, yet FreeLibrary returns `0' for failure! The FreeLibrary call used to interpret `0' as success for both functions. 1999-06-14 Thomas Tanner * ltconfig.in: use eval when setting have_dlfcn_h, reformatting 1999-06-12 Thomas Tanner * ltmain.in: store old archives in deplibs and old_deplibs, retain the order of dependency libraries (even old archives), determining the absolute directory name didn't work due to a typo, add the library search paths of all dependency libraries when linking a library (fixes IRIX 5.2 bug) 1999-06-10 Alexandre Oliva * ltconfig.in: Reverted June 6's patch for new GNU ld output, it is no longer needed, as ld reverted to the original format. * NEWS: Likewise. * ltconfig.in: When testing self-dlopening, test whether dlclose crashes. On FreeBSD 3.1, it does. :-( * libltdl/configure.in: Likewise. * NEWS: Note work-around. Reported by Pavel Roskin 1999-06-09 Gary V. Vaughan * ltconfig.in (exeext): autoconf's AC_EXEEXT uses "no" to indicate no extension, and we must do the same in order to share the cache value. Also we must ignore conftest.err which HPsUX (at least) fills with gratuitous warnings. (objext): for consistency, do the same as above. Reported by Pavel Roskin 1999-06-09 Pavel Roskin * ltconfig.in (exeext): Use quotes in the test, to prevent a failure in sh.test. 1999-06-09 Gary V. Vaughan * ltconfig.in: Reordered tests to be more like configure.in's recommended order (programs first, then libraries, etc.). Performed a manual ``constant folding pass'' (eg: s/eval "test \"echo '$''{'lt_cv_dlopen'+set}'`\" != set/test "${lt_cv_dlopen+set}" != set/). s/test "${foo+set}" = "set"/test "X${foo+set}" = Xset/g * ltconfig.in (link_static_flag): Accept, in order of decreasing preference: the cached value; the default value for the current host. Also test that the compiler accepts the flag, and cache that result too. * ltconfig.in (pic_flag): Accept, in order of decreasing preference: the cached value; the default value for the current host. Also test that the compiler accepts the flag, and cache that result too. 1999-06-08 Gary V. Vaughan * ltconfig.in (LN_S): Accept, in order of decreasing preference: the cached value; an environment setting; ``ln -s'' if it works; ``ln'' if ``ln -s'' doesn't appear to work. * ltconfig.in (objext): Accept, in order of decreasing preference: the cached value; the result of a test object compilation. * ltconfig.in (RANLIB): Accept, in order of decreasing preference: the cached value; an environment setting; the first file called ``ranlib'' in the user's path. * ltmain.in (exeext): Use $exeext when working out the names of programs (but not the wrapper script itself due to a stupidity in win32 which hardwires the .exe extension to the binary loader!). * ltconfig.in (exeext): Now that the wrapper script tries to move executables, we need to know whether they have an extension (ala AC_EXEEXT). Since we can't rely on AC_EXEEXT having been called in configure.in, we must be able to check for ourselves, though we can look for a cached result incase AC_EXEEXT was called. * ltconfig.in (cygwin, pic_flag): Force separate compilation of objects for dlls vs. objects for static archives. Using a cpp macro also allows us to decide whether or not we need to use dllexport/import declarations. * ltconfig.in (cygwin, need_version): Set to no, otherwise module dll's end up with mighty long names! 1999-06-06 Alexandre Oliva * ltconfig.in: Support new GNU ld --help output format. * NEWS: Likewise. Reported by Gal Quri and H.J. Lu . 1999-06-05 Mark Kettenis * ltconfig.in: Update support for the Hurd. Make sure that the soname includes the major version number and create the right links. Allow shared objects without the `lib' prefix and without version information. 1999-06-02 Nick Rasmussen * ltmain.in (link): use "$nonopt" as the compiler for compile/finalize_command 1999-05-27 Alexandre Oliva * TODO: Remove the short list of people interested in C++ constructors; it's not meaningful, since there are so many more people requesting this feature, and we just can't maintain it accurate. 1999-05-27 Pavel Roskin * ltconfig.in (GNU Hurd, deplibs_check_method): Use pass_all. 1999-05-27 Alexandre Oliva , Olly Betts * ltmain.in: Expand convenience libraries when creating reloadable objects. * NEWS: Ditto. 1999-05-27 Alexandre Oliva * NEWS: Mention the two bugfixes below. * ltmain.in: Only create directory into which to extract convenience libraries when $convenience is not empty. It would always be created on systems that did not support whole_archive_flag_spec. * ltconfig.in (export_symbols_cmds): Add $convenience. (cygwin, export_symbols_cmds): Ditto. * ltmain.in: Generate export symbol list before expanding convenience libraries, to avoid passing whole_archive_flag_spec to $NM. Reported by Godmar Back 1999-05-27 David Jones * libltdl/ltdl.c (LTDL_BIND_FLAGS): Remove BIND_VERBOSE, to avoid printing error messages. 1999-05-26 Alexandre Oliva GNU libtool 1.3.2 was released. 1999-05-25 Alexandre Oliva * NEWS: List fixed problems. * doc/PLATFORMS: Tested for 1.3.2. * config.guess: Synch with GNU common. * ltmain.in: Revert to stripping .exe on all platforms. * TODO: Note about this problem. Demo is fixed on win32. Support `empty' convenience libraries. * ltconfig.in (solaris*, ld_shlibs): Do not enable shared libraries with GNU ld 2.8.*, it's broken. Emit a warning suggesting an upgrade. Reported by Brian Ford and Ronald Pijnacker 1999-05-25 Frank Ch. Eigler * ltmain.in: file_magic check would not avoid cyclic links. 1999-05-25 Alexandre Oliva * depdemo/main.c, depdemo/l1/l1.c, depdemo/l2/l2.c: K&R-ize. * depdemo/l3/l3.c, depdemo/l4/l4.c: Likewise. * ltmain.in: Remove object files before writing to them, to avoid circular links. Reported by Ron O'Hara 1999-05-24 Thomas Tanner * NEWS: support for installing stripped libraries using GNU strip * ltconfig.in: set deplibs_check_method=pass_all on FreeBSD, Linux and Solaris since no one can reproduce the famous deplibs bug * ltmain.in: preserve $CC (reported by Tom Tromey), strip libraries using GNU strip if it's available and the -s flag was passed to "install" 1999-05-23 Alexandre Oliva * doc/PLATFORMS: Release 1.3.1 passes on GNU Hurd/x86. Reported by Pavel Roskin 1999-05-23 Thomas Tanner * ltmain.in: strip off the .exe suffix only on *Win (Reported by Matthew D. Langston ) 1999-05-22 Thomas Tanner * NEWS: updated * TODO: -Wc, -Wl, implemented * AUTHORS: changed my email address * doc/libtool.texi: fix "wierd" typo :) * ltmain.in: linking against convenience libraries was broken, implemented the "-Wc," "-Wl," "-Xcompiler" "-Xlinker" flag for compiler and linker-specific flags, add -lc before we do the deplibs check * ltconfig.in: linkopts -> compiler_flags for $CC and linker_flags for $LD, link_all_deplibs=yes on IRIX 1999-05-22 Gary V. Vaughan * NEWS: insert todays date alongside 1.3.1 release. * Makefile.in: use gnu not gnits rules * config.guess: synch with gnu common & apply Takabatake-san's MIPS *000 patch. * config.sub: synch with gnu common. 1999-05-22 Doug Evans * libltdl/configure.in (dlerror): Fix typo in dlopen found in -ldl test. 1999-05-21 Pavel Roskin * Makefile.am (EXTRA_DIST): Don't distribute instutils. (install-data-hook): use libltdl/Makefile.am's local-install files rule. * libltdl/Makefile.am (local-install-files): New rule to install libltdl without creating links or mode 777 directories. * instutil/*: deleted. 1999-05-21 Alexandre Oliva * doc/PLATFORMS: Updated to 1.3.1 for all platforms I've got. Added sparc-unknown-linux-gnu. 1999-05-21 Gary V. Vaughan * demo/foo.h: s/PARAMS/LTDL_PARAMS/g * libltdl/ltdl.h: ditto. * libltdl/ltdl.c: ditto. * demo/foo.h: s/__P/PARAMS/g * libltdl/ltdl.h: ditto. * libltdl/ltdl.c: ditto. Reported by Akim Demaille 1999-05-20 Alexandre Oliva * NEWS: Updated docs. * TODO: Recommend libtool.m4 to be inserted in acinclude.m4. AIX 4.3.2.0 no longer fails on static dlopening. GNU DLD no longer has to support .la files, since libltdl already does. Convenience libraries and reloadable objects should be tested in the testsuite. We could support some amount of control on the soname of libraries. * doc/libtool.texi: Notes about convenience libraries and automake. Documented INCLTDL. 1999-05-20 Thomas Tanner * cdemo/main.c: "Welcome _to_ ..." * mdemo/main.c: ditto * libltdl/configure.in: support multiple dlopening mechanisms at once * libltdl/ltdl.c: prefix system dependent functions with "sys_" to avoid symbol conflicts (libdld didn't work) * libtool.m4 (AC_LIBLTDL_*): set INCLTDL to the path of ltdl.h * ltconfig.in: check for dlopen with -ldl first 1999-05-19 Gary V. Vaughan * NEWS: Added 1.3.1 news items. * doc/PLATFORMS: updated the boxes I have access to, to 1.3.1 in preparation for the next release. 1999-05-18 Gary V. Vaughan * ltconfig.in (cygwin*, whole_archive_flag_spec): dlltool chokes on this, so leave it unset in this case so that the ltmain code knows it has to unpack convenience archives by itself. 1999-05-17 Gary V. Vaughan * ltmain.in: Do not exit when an unknown library name is passed passed in, simply warn and continue since some compilers require -LANG:* like options to work. Reported by Adam C. Powell, IV 1999-05-17 Jiro Takabatake * ltconfig.in: port to NEC UX/4800. * NEWS: updated. 1999-05-17 Gary V. Vaughan * ltconfig.in (beos*, deplibs_check_method): set to pass_all. BeOS is PIC by default. Reported by "Shawn T . Amundson" * libltdl/configure.in: Fix test failures on AIX 4.3.2 by checking for dlopen *with* -ldl first. Reported by Greg Wooledge * demo/foo.h: Don't set any declspecs until we have full dll support. 1999-05-16 Alexandre Oliva * ltconfig.in (solaris2.6, whole_archive_flag_spec): Do not use -Wl for allextract. 1999-05-14 Alexandre Oliva * instutil/chmod: New script to avoid chmod'ing files while installing libltdl's sources. * instutil/ln: New script to avoid hard-linking libltdl's sources in the install tree. * Makefile.am (EXTRA_DIST): Dist them. (instal-data-hook): Add srcdir/instutil to the beginning of the PATH before installing libltdl's sources. 1999-05-09 Gary V. Vaughan * TODO: updated. 1999-05-06 Gary V. Vaughan * Makefile.am (install-data-hook): make sure the install directory is not left world writable. Reported by Andreas Schwab 1999-04-30 Alexandre Oliva * libtool.m4: Use ifelse instead of if. Reported by David Mazieres 1999-04-29 Alexandre Oliva GNU Libtool 1.3 was released. * NEWS: Summarize news from 1.2 to 1.3. * ltmain.in: Save exit status of link_command before removing symbol table object file. 1999-04-29 Gary V. Vaughan * doc/PLATFORMS: updated my hpux-10.20 and cygwin box entries. 1999-04-29 Alexandre Oliva * NEWS: Improved support for DU and IRIX too. * config.sub, config.guess: Updated from GNU common. * mdemo/configure.in: Move AC_LIBLTDL_CONVENIENCE before AM_PROG_LIBTOOL, as suggested by autoconf. * doc/libtool.texi (Distributing libltdl): Document that -static may cause the same problems on libltdl as -all-static. * TODO: We might want to fix this in the future. * doc/libtool.texi: Clear up overfull hbox. * libltdl/Makefile.am (ltdl.lo): Add dependencies. * libltdl/configure.in: Clean up some duplicate defines. Enable support for multiple dlopening mechanisms. * libltdl/acconfig.h: New file. Add #undefs for defines that would be duplicated. 1999-04-29 Gary V. Vaughan * libtool.m4 (cygwin*|mingw*, DLLTOOL, OBJDUMP, AS): Only expand the code that makes these configure time checks on hosts that need the tools *and* if the AC_LIBTOOL_WIN32_DLL macro is used. 1999-04-29 Alexandre Oliva * ltmain.in (nlist, SYMFILE): Use outputname instead of output for names within output_objdir. 1999-04-28 Alexandre Oliva * libtool.m4 (AC_ENABLE_SHARED, AC_ENABLE_STATIC, AC_ENABLE_FAST_INSTALL): Do not call AC_BEFORE here, they're AC_REQUIREd by AC_LIBTOOL_SETUP. (AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL): Call AC_BEFORE here, and now with two arguments, since these do change the default. (AC_LIBLTDL_CONVENIENCE, AC_LIBLTDL_INSTALLABLE): Fix calls to AC_BEFORE. 1999-04-28 Gary V. Vaughan * libtool.m4 (ltconfig_enable_win32_dll): pass --enable-win32-dll to ltconfig if this is set. (AC_LIBTOOL_WIN32_DLL): New macro required for libtool to attempt a dll build on win32 hosts. * ltconfig.in (--enable-win32-dll): new flag for the cli. (cygwin*|mingw*|os2*, ltconfig_enable_win32_dll): if this is not set to yes, then do not attempt to build shared libraries. * doc/libtool.texi: document AC_LIBTOOL_WIN32_DLL. * NEWS: noted new macro. 1999-04-27 Alexandre Oliva * libtool.m4 (AC_LIBTOOL_DLOPEN, AC_ENABLE_SHARED, AC_ENABLE_STATIC, AC_ENABLE_FAST_INSTALL, AC_LIBLTDL_CONVENIENCE, AC_LIBLTDL_INSTALLABLE): Warn if they appear after AC_PROG_LIBTOOL. AC_LIBTOOL_SETUP, actually. (AC_LIBTOOL_SETUP): Check whether DLOPEN support is to be enabled at autoconf time, not configure time. Simplify code and improve (?) help message about --disable-libtool-lock. 1999-04-27 Thomas Tanner * NEWS: new clean mode * THANKS: added Ossama Othman * doc/libtool.texi: documented the new `clean' mode * ltconfig.in: set need_version=no on OSF (reported by Marcus Sundberg ) * ltmain.in: allow absolute non-existant -L paths, always use output_objdir instead of objdir for temporary files, delete generated temporary symbol lists, don't add .la twice in the pseudo-library header, implemented and documented clean mode (deletes libraries, programs and object files and the files associated with them), if build_libtool_libs=no and no static library is available, try to link the program against the shared library, don't add a statically linked library to the dependency_libs * ltmain.in (help uninstall): added a missing backslash after echo (reported by Ossama Othman) 1999-04-27 Alexandre Oliva * ltmain.in (old_archive_cmds): Iterate on oldobjs to find out which links to object files we must create. Do not test for empty pic_flag to create such links. Use objext when searching for object files extracted from convenience library. * ltconfig.in (compiler_c_o): Make sure the compiler does not create temporaries in the current directory when output should go elsewhere. We must perform locking if it does. 1999-04-27 Gary V. Vaughan * ltmain.in (old_archive_cmds): Ensure that there are always .o objects available before running old_archive_cmds. 1999-04-26 Erez Zadok * doc/PLATFORMS: Updates for netbsd 1.3.3 and 1.4. 1999-04-26 Alexandre Oliva * ltconfig.in (aix4.[01], always_export_symbols): The case pattern would never match; fixed. Reported by Stephan Kulow 1999-04-25 Alexandre Oliva * libtool.m4 (OBJDUMP): Pass it to ltconfig. * configure.in: AC_SUBST DLLTOOL, OBJDUMP and AS. * Makefile.am (libtool, clibtool): Pass them to ltconfig. 1999-04-25 Frank Ch. Eigler * libtool.m4 (cygwin*): Look for target objdump tool. * ltconfig.in (cygwin*, file_magic_cmd): Use autoconf-located target objdump tool. Track OBJDUMP like DLLTOOL and AS. * ltconfig.in (cygwin*, deplibs_check_method): Accept "architecture: i386" as optional suffix, for it is printed on a separate line sometimes. * ltmain.in (cygwin*, ltdll.c): Wrap DllMain declaration in extern "C". * ltmain.in (deplibs_check_method=file_magic): Redirect stderr to /dev/null, to suppress error messages from target objdump. 1999-04-25 Alexandre Oliva * ltconfig.in (irix*, soname_spec, library_names_spec): Missing dots before $versuffix and $major. * ltconfig.in (solaris*, whole_archive_flag_spec): Use -z allextract/defaultextract from Solaris 2.6 on. Reported by Brian Ford * ltconfig.in (beos*, allow_undefined_flag): Do not build shared libraries with undefined symbols. * ltconfig.in (aix4*, allow_undefined_flag): Set to -berok. (aix4*, shared_flag): Set to -shared or ${wl}-bM:SRE. (aix4*, archive_cmds): Use -bexpall. (aix4*, archive_cmds, archive_expsym_cmds): Use shared_flag and allow_undefined_flag. (aix4*, always_export_symbols): Set to yes up to AIX 4.1.*, because -bexpall is supported from 4.2 on. Reported by Greg Wooledge * ltconfig.in (hpux*, hardcode_minus_L): Set to yes. (hpux*, hardcode_libdir_flag_spec): Do not use +s by default. (hpux*, shlibpath_overrides_runpath): Set to no. * ltconfig.in (irix*, osf*, archive_cmds): Write so_locations within objdir. * ltconfig.in (irix*, soname_spec): Append $major. (irix*, library_names_spec): Add new soname. Reported by David Kaelbling * ltconfig.in (irix*, sys_lib_dlsearch_path_spec): /usr/local/lib is not searched by default. /usr/lib is searched before /lib. * ltconfig.in (irix*, sys_lib_search_path_spec): /usr/lib is searched before /lib. * ltconfig.in (irix5*, need_lib_prefix, need_version): Set to no, by unifying with irix6*. * ltconfig.in (irix*, osf*, deplibs_check_method): Use pass_all. * ltconfig.in (old_LDFLAGS, old_LIBS): Save and write to comments in output file. * ltmain.in (prefer_static_libs): New variable, set to no by default, but set to yes by -static and -all-static. Used instead of build_libtool_libs to decide whether to use a shared or static version of a library, when both versions are available. 1999-04-25 Boyd Lynn Gerber * ltconfig.in (sco3.2v5*): Use LD_RUN_PATH for hard-coding. 1999-04-25 Pavel Roskin * Makefile.am (uninstall-local): Remove installed libltdl tree. 1999-04-25 Alexandre Oliva * demo/Makefile.am (hc-direct, hc-libflag, hc-libpath, hc-minusl): Added CFLAGS to link commands; SCO OSR needs it for -belf. * TODO: -Wl and -Wc options. 1999-04-12 Alexandre Oliva * libltdl/ltdl.c: Remove trivial warnings. 1999-04-22 Frank Ch. Eigler * ltconfig.in: Correct sed expression that extracts symbols from cygwin def files. Ignore demangled C++ names, if any. 1999-04-12 John David Anglin * libltdl/ltdl.c (shl_close): shl_t was correct here... (shl_sym): ... but we have to pass the handle by reference here. 1999-04-12 Alexandre Oliva * doc/libtool.texi (Invoking ltconfig): Document environment variables used. * doc/libtool.texi (Invoking ltconfig): Document --cache-file. * doc/libtool.texi (Invoking ltconfig): Document --disable-fast-install, --enable-dlopen, --with-gnu-ld and --disable-lock. 1999-04-11 Thomas Tanner * libltdl/configure.in: check for shl_load in libdld * libltdl/ltdl.c (shl_close, shl_sym): use (shl_t *) instead of shl_t * ltconfig.in (check for gcc): removed a bogus line, check for shl_load in libdld * ltmain.in: added a warning to the header of the .la file to warn users against deleting the file, link shared against static libraries if deplibs_check_method == pass_all 1999-04-10 Alexandre Oliva * libtool.m4 (AC_PROG_LD, AC_PROG_NM): When looking for programs, try $ac_exeext too, so that they're found on DJGPP/MS-DOS. * ltconfig.in: Likewise. Reported by Robert S. Maier * ltconfig.in (Usage): Removed --enable-dlopen-self. Reported by Pavel Roskin * ltconfig.in: Moved sysv4 before sysv4.*. (symcode): Brian's overrider is specific to sysv4, not sysv4*. 1999-04-09 Thomas Tanner * NEWS, README: Motorola System V 4 support * doc/PLATFORMS: added mk88-motorola-sysv4 * ltconfig.in: installed patch from Brian Ford to support mk88-motorola-sysv4 * doc/libtool.texi: some cleanups in the libltdl documentation 1999-04-07 Alexandre Oliva * ltconfig.in (--fallback-echo): Do not put an inline document and an exec in the same if construct; otherwise the inline document may not be removed. * ltmain.in (--fallback-echo): Likewise. Reported by John David Anglin * dryrun.test: It would still fail at random times, because `cp' and `mv' are not guaranteed to preserve the timestamps of the installed files. Instead of preserving them, just remove them before the dry uninstall test. Redirect dry-run output to stderr, so that it can be easily separated from the regular output. 1999-04-07 Thomas Tanner * NEWS: support for moved libraries * libtool.m4: another DJGPP fix 1999-04-07 Alexandre Oliva * doc/PLATFORMS: Updated to 1.3 for all platforms I've got. I'll make sure 1.3 won't be released unless it passes all tests on those platforms. * doc/libtool.texi (Compile mode): Document potential problem and work-around for `-c -o dir/foo.lo'. * tests/dryrun.test: The constant modifications of libtool would cause main.o to be updated at the wrong time; the new approach is to modify the libtool script so that it enables dry run depending on whether an environment variable is set or not. I've also moved `after' and `before' to a directory deep within $objdir, instead of creating it in ../tests. * tests/Makefile.am (CLEANFILES): Removed. 1999-04-06 Alexandre Oliva * tests/dryrun.test: We cannot rely on setting LIBTOOL, because automake may use sub-makes, and the setting will not be propagated to them on some makes. Instead, create a dry version of libtool and switch between it and the original one before and after dry runs. * tests/Makefile.am (CLEANFILES): Added libtool-*, created by dryrun.test. * tests/dryrun.test: Use cmp instead of diff. (before, after): Create them within ../tests. (libtool): Set to `/bin/sh ./libtool' by default, but use LIBTOOL, SHELL and top_builddir from the environment if available. For dry runs, use "$libtool -n". * tests/Makefile.am (CLEANFILES): Added before and after. * ltmain.in: Do not create links to object files in dry runs. 1999-04-06 Thomas Tanner * ltmain.in: added a missing line of the ILD patch * NEWS: improved DJGPP support * doc/libtool.texi: removed hardcode_into_libs documentation * libtool.m4: some DJGPP fixes * ltconfig.in: ditto, reverted one of my previous patches: we need to check for NM, removed the hardcode_into_libs support since no platform seems to support it * ltmain.in: some DJGPP fixes, removed the hardcode_into_libs support 1999-04-05 Alexandre Oliva * ltconfig.in (netbsd*, GNU ld): Support a.out shared libraries * Makefile.am (CVS): allow command-line overriding of cvs * ltconfig.in (exclude_expsyms): Exclude _GLOBAL_OFFSET_TABLE_ by default, as most a.out platforms use it, and end up in trouble if we preload it, so it's safer to rule it out by default, and special case its removal from exclude_expsyms if someone ever complains. 1999-04-05 Thomas Tanner * doc/libtool.texi: reorder tests to reflect execution order, documented dryrun.test and depdemo* * ltmain.in (lt_preloaded_symbols): dry-run mode bugfix * tests/dryrun.test: new test to check whether the dry-run mode works properly * demo/run.test: removed the unnecessary test * demo/Makefile.am: ditto * ltmain.in: set the DLL search path on cygwin,mingw and os2 1999-04-04 Alexandre Oliva * ltconfig.in (sunos4*, GNU ld): -Bstatic is not enough for deplibs.test to work with GNU ld; -Bshareable is needed here. * ltconfig.in (ld_shlibs, amigaos*): Disable shared libs with native ld too. * ltconfig.in (sunos4*, GNU ld): Reordered. * ltconfig.in (archive_cmds, sunos4*): Revert to -Bstatic; the native linker doesn't even support -Bshareable, only GNU ld does. Do not use `gcc -shared' in archive_cmds, it breaks deplibs.test. * ltconfig.in: if ld_shlibs=no, set can_build_shared=no too, otherwise it will just be disregarded. This would cause netbsd/m68k with GNU ld a.out, and certainly many other platforms, to incorrectly believe that shared libraries were supported, while archive_cmds was empty, causing shared libraries not to be created 1999-04-03 Alexandre Oliva * NEWS: improved support for AIX and HP/UX 1999-04-03 Thomas Tanner * NEWS: updated * libtool.m4: check for main in libm instead of cos * ltmain.in: cosmetic fixes, don't try to link libraries only once (although it's not necessary on many platforms and looks ugly...), 1999-04-02 Alexandre Oliva * ltmain.in (convenience): fixed race condition when more than one library was linked with the same convenience library by uniquifying the extract directory. It is now named after the new library *and* the old one, and lives in the objdir of the new one. * ltmain.in (-L*): do not abort just because a directory specified with -L does not exist; just warn and discard it * depdemo/l1/Makefile.am (AUTOMAKE_OPTIONS): no-dependencies * depdemo/l2/Makefile.am (AUTOMAKE_OPTIONS): ditto * depdemo/l3/Makefile.am (AUTOMAKE_OPTIONS): ditto * depdemo/l4/Makefile.am (AUTOMAKE_OPTIONS): ditto * ltconfig.in (archive_cmds, sunos4*): where we used -Bstatic, we should have been using -Bshareable * demo/Makefile.am (CLEANFILES): clean EXTRA_* from deplibs-check * libtool.m4 (LDFLAGS, LIBS): pass them to ltconfig, for the tests that involve linking * Makefile.am (LDFLAGS, LIBS, libtool, clibtool): ditto * tests/Makefile.am (CFLAGS, CPPFLAGS, LDFLAGS, LIBS): set (LDFLAGS, LIBS, TESTS_ENVIRONMENT): pass them down 1999-04-02 Erez Zadok * doc/PLATFORMS: 1.2f ok on various versions of hpux cc 1999-04-02 Alexandre Oliva * ltconfig.in (link_all_deplibs): set to unknown by default * ltmain.in: test != no, not = yes * doc/libtool.texi: document unknown 1999-04-01 Thomas Tanner * doc/libtool.texi: documented deplibs.test * demo/Makefile.am: moved testsuite specific declarations to the end, the deplibs check is now optional * libltdl/configure.in: read libtool --config only once, merged AC_SYS_SYMBOL_UNDERSCORE+AC_SYS_NM_PARSE from libtool.m4 * libtool.m4: AC_SYS_SYMBOL_UNDERSCORE+AC_SYS_NM_PARSE were not used, lt_dlopen and silent may be empty, AC_SYS_LIBTOOL_CYGWIN no longer necessary * ltconfig.in: NM is already checked in libtool.m4, * ltmain.in: always link all static dependency_libs * tests/Makefile.am: added deplibs.test * tests/demo-exec.test, demo-inst.test: removed hell0 * tests/deplibs.test: new test to test the deplibs_check_method 1999-03-31 Thomas Tanner * ltmain.in: always link a library before its dependency libs * mdemo/Makefile.am: test -export-symbols-regex 1999-03-30 Thomas Tanner * doc/libtool.texi: fixed a typo * libtoolize.in: add the libtool scripts to libltdl.tar.gz * libtool.m4: don't AC_SUBST(USE_SYMBOL_UNDERSCORE), AC_CHECK_LIBM sets LIBM, AC_LIBLTDL_INSTALLABLE doesn't work when libltdl is already installed * *demo/Makefile.am: use LIBM * *demo/configure.in: AC_SUBST LIBM * libltdl/configure.in: use ac_cv_sys_symbol_underscore instead of USE_SYMBOL_UNDERSCORE * ltconfig.in: added link_all_deplibs variable * doc/libtool.texi: document it * ltmain.in: always search for libname.la - don't eval libname_spec, when linking libraries against static ones just print a warning and add them to dependency_libs, add -lc before deplibs, always link all dependencies of a static library or if link_all_deplibs is yes, hardcode library paths if hardcode_into_libs is no, don't link against dependency_libs that already are deplibs 1999-03-30 Alexandre Oliva * ltconfig.in (aix4*, collect2name): make sure collect2 exists before running string on it, to avoid errors on old gccs Reported by Erez Zadok * ltconfig.in (aix4*, hardcode_libdir_flag_spec): unless we're using gcc with old collect2, use -b libpath to hardcode the library search path * ltmain.in, ltconfig.in: reverted most of the quoting changes from 1999-03-25; Gary's delay_variable_subst patch from 1999-02-19 obviates it. Keep only quoting of $PATH, for uniformity with other systems that already did it 1999-03-29 Gary V. Vaughan * libltdl/ltdl.c (lt_dladdsearchdir): Forgot to mallocate the extra byte of memory for the teminating NUL, and forgot to strcpy the original path in to the new memory before appending the new path compononent. 1999-03-27 Thomas Tanner * NEWS: updated * README: updated (BeOS support, no longer shared libraries support for AmigaOS), cleanups, we have now two mailing lists * REAMDE-alpha: autogen -> bootstrap, we have now two mailing lists * THANKS: added Xavier Pianet * doc/PLATFORMS: BeOS works * doc/libtool.texi: we have now to two mailing lists, updated -dlopen self documentation, documented libltdl's license, put each author in a separate line, inter-library dependencies on uninstalled libtool libraries are now supported, cleanups and minor corrections * libltdl/COPYING.LIB: new file * libltdl/ltdl.[ch]: added special exception to the LGPL license * libtool.spec: removed, it was outdated * Makefile.am: removed libtool.spec * ltmain.in: use TMPDIR when possible, create a subdirectory in the temporary directory, added -export-symbols-regex to the help, 1999-03-25 Alexandre Oliva * demo/Makefile.am: create a static library, link two libtool archives with it, then link the program hell0 with both * demo/hell1.c, demo/hell2.c: dummy files used to create the libtool archives without introducing symbol conflicts * tests/demo-exec.test, tests/demo-inst.test: run the new program * ltconfig.in (irix5*, irix6*, deplibs_check_method): pass_all * ltmain.in ($PATH): instead of modifying the PATH, better prevent its expansion the first time *_cmds variables are eval'ed. Modify $show within loops that eval them so as to expand variables * ltconfig.in (*_cmds): quote $ so that they're not expanded by the first eval 1999-03-25 Gary V. Vaughan * ltmain.in ($PATH): Expand any tildes in the users path to the contents of $HOME to avoid problems with *_cmds splitting and evaluation. 1999-03-24 Thomas Tanner * TODO: support -dlopen for libraries * doc/PLATFORMS: Erez Zadok reported that libtool works on bsdi 4.0.1 * doc/libtool.texi (libltdl): libltdl supports BeOS * libltdl/ltdl.c: shlib_ext was declared even if LTDL_SHLIB_EXT didn't exist, partially reverted my previous patch: BeOS will automatically search in ADDON_PATH * ltmain.in: don't allow relative run-paths, fixed a typo in a warning, ignore -dlopen self for libraries and objects, only accept -L paths that exist, minor cleanups, bugfix: add -lc for normal libraries, not convenicence libraries removed offensive warnings/comments 1999-03-24 Alexandre Oliva * ltconfig.in (ld_shlibs, amigaos*): disable shared libraries 1999-03-23 Gary V. Vaughan * libltdl/configure.in: the sed expression for finding the shared library extension used to think the . in [.] for the cygwin shared_library_names_spec was the start of the extension!! We now remove anything in square brackets (assuming that the square brackets delimit a sed or expr expression which is not part of the extension) before looking for the extension. * TODO (cygwin): food for thought re: mutually dependant dlls. 1999-03-21 Alexandre Oliva * tests/build-relink.test: if we relink and have hardcode_direct, removing an uninstalled library breaks an uninstalled program * doc/libtool.texi: documented convenience libraries * TODO: removed entry about it * tests/*-unst.test: if directory is not configured, skip it * tests/demo.test, tests/mdemo.test: unused, removed * tests/depdemo.test: ditto 1999-03-20 Thomas Tanner * doc/libtool.texi (link mode): documentation for -module updated * ltconfig.in: fast-install mode doesn't work for hardcode_into_libs=yes * ltmain.in: bugfix: "-dlopen self [-all]-static" wouldn't use dlopen_self_static, automatically enable -export-dynamic when using "-dlopen self", always make run-paths absolute, ignore -lc only on platforms that don't have such a library, cleanups in the ILD code, find even installed libtool libraries that were moved, before generating the DLL-import library we need to set libname, improved hardcoding of shlibpath for libraries, don't generate an installable pseudo-library for convenience libraries, bugfix: export_symbols would be removed immediately before it is used 1999-03-19 Thomas Tanner * use the same header in all configure.in's and Makefile.am's * NEWS: improved support for BeOS and Cygwin * TODO: ILD branch was merged, all internal variables and macros are now documented * demo/Makefile.am: use $(LIBS) instead of -lm * doc/libtool.texi: documented new variable hardcode_into_libs and thread_safe_flag_spec, renamed all AM_ENABLE/DISABLE_* macros to AC_*, documented AC_DISABLE_FAST_INSTALL and AC_LIBTOOL_DLOPEN * libltdl/ltdl.c: added two new error messages (cannot_open_error, cannot_close_error), use them where approriate, BeOS support (thanks to Xavier Pianet), on BeOS search modules additionally in ADDON_PATH * libtool.m4: rewrote AC_CHECK_LIBM: BeOS and Cygwin don't have libm and *-ncr-sysv4.3* requires libmw * ltconfig.in: don't check for LoadLibrary, hardcode dlopen configuration for BeOS and Cygwin * ltmain.in: fix sourcing of .la files on Solaris (patch by Raja R Harinath) 1999-03-19 Alexandre Oliva * ltconfig.in (sunos4*, with_gnu_ld, hardcode_minus_L): remove, we have -rpath (aix4*, without_gnu_ld, hardcode_shlibpath_var): unsupported is default (hpux9*, hpux10*, hpux11*, archive_cmds): drop +s, unneeded here (hpux9*, hpux10*, hpux11*, hardcode_libdir_flag_spec): add +s before +b (hpux9*, hpux10*, hpux11*, shlibpath_overrides_runpath): since +s appears before +b, set it to yes (hardcode_shlibpath_var, hardcode_action): do not use shlibpath_var to specify the compile-time search path; it loses, and we may end up linking with pre-installed older versions of libraries instead of yet-to-be-installed ones (*, hardcode_direct, hardcode_minus_L): remove entries that set them to no, that is default * demo/Makefile.am (hc-direct, hc-libpath, hc-minusL): link with $$hardcode_libdir_flag_spec, if available, with libdir=$(libdir), to make sure the hardcode_* variables will produce the expected results even in the presence of a hardcoding flag; depend on libhello.la having been installed already (hc-libflag): link with the installed library, but try to hard-code the uninstalled one * doc/libtool.texi: document the changes * tests/*.test: when a test fails, skip tests that depend on it. If a certain configuration is not supported, skip all its tests. * doc/libtool.texi: reorder tests to reflect execution order * tests/noinst-link.test: new test * tests/Makefile.am (TESTS): added noinst-link.test * doc/libtool.texi: document it 1999-03-19 Gary V. Vaughan * ltmain.in (dependency_libs): There is no reason to infer that the pseudo library is invalid if dependency_libs='' at install-time, or else libltdl/libltdl.la is invalid!! 1999-03-18 Thomas Tanner * merged my inter-library dependencies code from the ILD branch: * NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies. 1999-03-17 Gary V. Vaughan * doc/PLATFORMS: Thanks to Alexandres changes below, both my hp boxes pass the entire test suite. 1999-03-17 Alexandre Oliva * ltconfig.in (hpux*, hardcode_minus_L): should be no, we have +b (hpux*, hardcode_libdir_separator): set to colon 1999-03-17 Alexandre Oliva * doc/PLATFORMS: egcs is gcc; updates from Erez Zadok 1999-03-16 Alexandre Oliva * ltmain.in (deplibs, beos*): don't append -lc Reported by Xavier Pianet * tests/build-relink.test (hardcode_action): when set to relink, skip the test with lt-hell * Makefile.am (EXTRA_DIST): add mkstamp Reported by Xavier Pianet * Makefile.am (EXTRA_DIST): add ChangeLog.0 1999-03-16 Thomas Tanner * doc/libtool.texi: some minor corrections to the "-dlopen self" documentation * tests/Makefile.am: sorted by name, added assign.test * ChangeLog: started new file * ltconfig.in: some cosmetical changes * ltmain.in: ditto 1999-03-15 Alexandre Oliva * configure.in, libtool.spec, NEWS: bump to 1.3a * Branched for release 1.3 (branch-1-3) * configure.in, libtool.spec, NEWS: bump to 1.2g * configure.in, libtool.spec: bump to 1.2f * doc/PLATFORMS: ditto * NEWS: libtool 1.2f released * ltmain.in: silence ``unbug'' :-) detected by sh.test 1999-03-14 Alexandre Oliva * TODO: we now use full pathnames for `file' 1999-03-14 Thomas Tanner * TODO: libltdl is now documented * doc/libltdl.texi (linking with installed libtool libraries): fixed typo * doc/libltdl.texi (libltdl): added documentation for building libtool modules and examples how to embed libltdl * ltmain.in: don't ignore user-specified run-paths (fixed it at the right place) 1999-03-14 Alexandre Oliva * ltmain.in (deplibs_check_method=none): discard -L and -R switches when testing whether deplibs contains some library 1999-03-14 Erez Zadok * config.sub: recognize hppa2.0w, yet to be installed at GNU * config.guess: minor update for FreeBSD-elf, yet to be installed at GNU 1999-03-14 Alexandre Oliva * ltconfig.in (bsdi4*, sys_lib_search_path_spec, sys_lib_dlsearch_path_spec): fix thinko in variable names; add standard directories * ltmain.in (exclude_expsyms): exclude symbols before sorting, otherwise only the sorted list will have them excluded * ltconfig.in (file_magic_cmd, file_magic_test_file, freebsd-elf*, bsdi4*): use full pathnames when possible * Makefile.am (all-recursive): depend on ACINCLUDE_M4_LIST (all-local, check-local): remove, unused * doc/PLATFORMS: updated platforms tested on 1.2f-pre; clean up; reorder; untabify * config.guess, config.sub: updated from GNU common * doc/libtool.texi: notes on thread-safety problems of libltdl/dlopen on GNU/Linux and FreeBSD * ltconfig.in (aix3*, aix4*): GNU ld on AIX is very broken: it cannot create working shared libraries. Print a warning suggesting the user not to use it and disable shared libraries. 1999-03-13 Alexandre Oliva * ltconfig.in (global_symbol_to_cdecl): was reset before trying `symprfx=_', rendering the test with `_' useless * doc/libtool.texi (AM_PROG_LIBTOOL): eliminate overfull boxes * doc/libtool.texi: complete dlopening/libltdl documentation * ltconfig.in (osf3*, osf4*, deplibs_check_method): pass_all does not really work; use file_magic instead. (osf3*, osf4*): customize sys_lib_[dl]search_path_spec * ltconfig.in (file_magic_test_file): new variable; if set, it will be used as an argument for $file_magic_cmd to test whether the regex in deplibs_check_method matches its output (file_magic_cmd): use full pathnames whenever possible * ltconfig.in (sys_lib_dlsearch_path_spec): new variable, that lists the system *run-time* search path. Listed directories are not implicitly hard-coded into executables. * ltmain.in: use it, but *never* discard -R flags * doc/libtool.texi: document it * NEWS: ditto Reported by Bob Friesenhahn * tests/sh.test: look for `$Xsed' without `$echo "X...' * ltconfig.in, ltmain.in: fixed a few such occurrences * ltmain.in (-static, -all-static): revert March 11's patch, I was barking up the wrong tree 1999-03-12 Thomas Tanner * libltdl/ltdl.c: removed FILENAME_MAX since LTDL_FILENAME_MAX is sufficient and doesn't break HP/UX 1999-03-11 Alexandre Oliva * ltconfig.in: (global_symbol_pipe) extract symbol tag from the output of NM too (global_symbol_to_cdecl): new variable; convert the output of global_symbol_pipe to valid C declarations; on HP/UX, convert text symbols to function declarations * libtool.m4: similar modifications * doc/libtool.texi: document new variable * ltmain.in: use global_symbol_to_cdecl to generate lt_dlpreopened symbols; avoid extracting symbol lists from dlpreopened files twice; do not filter symbols from dlpreopened libraries * TODO: fixed HP/UX dlpreopening problem * ltmain.in (-static, -all-static): set dlopen_self to $dlopen_self_static regardless of link_static_flag or pic_flag * ltmain.in: FreeBSD bug that needs symbol table compiled with -fPIC is fixed in release 3.1; use it only for 2.* and 3.0 1999-03-11 Thomas Tanner * ltmain.in: when building a library it doesn't make sense to remove a relinked program ("lt-" prefix) 1999-03-11 Alexandre Oliva * mdemo/main.c (main, test_dl, test_dlself): propagate error conditions better, to avoid false positives * */configure.in: AC_SUBST(LIBTOOL_DEPS) * */Makefile.am $(OBJECTS): depend on libtool (libtool): rebuild automatically * ltconfig.in: set dlopen_* variables to unknown when appropriate * ltmain.in: only emit warning about lack of AC_LIBTOOL_DLOPEN if *all* dlopen_* variables are set to unknown 1999-03-11 Thomas Tanner * ltmain.in: delete the old output files (incl. the relinked binary) before linking. * ltconfig.in: replaced `configure' with $progname and all line numbers with @LINENO@ 1999-03-11 Alexandre Oliva * libltdl/ltdl.c (strdup): cannot return str when it's NULL because of const correctness 1999-03-10 Alexandre Oliva * libltdl/ltdl.c (strdup): always use our own, because the standard strdup won't use lt_dlmalloc * ltconfig.in (dlfcn.h): function definition may cause warnings; define variable instead * ltmain.in: properly create an export file for a program, avoiding error messages about not finding it * TODO: need to document AC_LIBLTDL_*; static self dlopening problem fixed * libtool.m4 (AC_LIBTOOL_DLOPEN): just set lt_dlopen=yes (AC_LIBTOOL_SETUP): if lt_dlopen=yes, add --enable-dlopen to libtool_flags; drop --enable-dlopen-self * ltconfig.in: perform all the dirty work of testing for dlopening support, because we need platform-dependent equivalents for -export-dynamic, for self dlopening, and -static, for static self dlopening (dlopen_self_static): new configuration variable that is set to yes only if static programs can dlopen themselves * ltmain.in (-static, -all-static): dlopen_self=dlopen_self_static * libltdl/configure.in (libltdl_cv_need_uscore): do not assume dlfcn.h and LTDL_LAZY exist; use LTDL_GLOBAL and LTDL_LAZY_OR_NOW. This test is likely to fail if self-dlopening does not work, especially because we do not link the program with -export-dynamic. Let's just hope that platforms whose symbol names start with underscores will also accept underscores for dlopen. We should probably use libtool to compile and link this test, so that we can use -export-dynamic. * mdemo/Makefile.am (@LIBLTDL@): depend on ../libltdl/config.h * configure.in: fix AC_OUTPUT_COMMANDS for ltconfig and ltmain.sh so that they work if srcdir is relative too * libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE): avoid introducing multiple --enable options when re-running config.status * libltdl/configure.in: if enable_ltdl_* is not set, assume no * configure.in: if enable_ltdl_install is not set, enable it * libltdl/configure.in: only assume implicit installation if libltdl was libtoolized. If not, print a warning message suggesting the use of --enable-ltdl-install or of one of the AC_LIBLTDL_* macros. * libtool.m4 (AC_LIBTOOL_SETUP): new macro, that does all the configure-work that AC_PROG_LIBTOOL used to do; add --cache-file=$cache_file to libtool_flags (AC_PROG_LIBTOOL): call AC_LIBTOOL_SETUP, save the cache, run ltconfig and reload the cache * configure.in: run AC_LIBTOOL_SETUP, then set LIBTOOL_FLAGS to libtool_flags * ltconfig.in: support --cache-file switch. If it is used, load the cache in the beginning and save it just before terminating * tests/Makefile.am (TESTS): run demo-nofast before demo-shared * configure.in: create ltconfig and ltmain.sh at the end of config.status, if they do not exist. This fixes the bootstrap problem reported by Erez Zadok 1999-03-10 Thomas Tanner * NEWS: sorted by importance * Makefile.am: set LIBTOOL_FLAGS when generating libtool * configure.in: check for dlopen support and set LIBTOOL_FLAGS accordingly * configure.in: fix spacing for --disable-ltdl-install, always configure libltdl, add libltdl/acinclude.m4 to ACINCLUDE_M4_LIST, disable installation of libltdl if necessary * libltdl/Makefile.am: set version info for libltdl.la * libltdl/configure.in: don't check whether enable_ltdl_convenience/install was set so that libltdl can be used as independent package (libltdl.tar.gz) without the need to use --enable-ltdl* * libltdl/ltdl.c: minor cleanups, allocate the line cache dynamically (lt_dlopen) 1999-03-10 Alexandre Oliva * libltdl/ltdl.c (lt_dlopen): some preprocessors choke if the `#' of `#define' is not in column 1; let's go back to fortran! :-) Add #undefs too, to avoid potential warnings or errors. 1999-03-09 Alexandre Oliva * libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE): renamed convenience libltdl, dropped toinst hack for installable * libltdl/Makefile.am: ditto * libltdl/configure.in: ditto; abort if none of the macros is used * ltmain.in: $output_objdir/$objdir/ -> $output_objdir/lt- 1999-03-09 Thomas Tanner * libltdl/ltdl.c (lt_dlopen): don't hardcode the length of the constant strings 1999-03-09 Alexandre Oliva * Makefile.am (install-data-hook): install libltdl as a directory, not as a tar-file, so that we do not modify the build tree at make install time * libtoolize.in (ltdl, ltdl_tar): update * configure.in, Makefile.am, NEWS: install libltdl by default * libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE): new macros * NEWS: ditto * libltdl/configure.in: if none of the new macros or configure arguments are used, warn and build convenience library only * libltdl/Makefile.am: conditionally build convenience libltdl.la * mdemo/configure.in: use AC_LIBLTDL_CONVENIENCE * mdemo/Makefile.am: refer to @LIBLTDL@ 1999-03-09 Gary V. Vaughan * NEWS: updated. 1999-03-08 Alexandre Oliva * ltmain.in: extract symbols from program objects to nlist first, then translate them to the export_symbols format. Now it works, but it appears to be needlessly extracting the symbol list from dlpreopened libraries twice * ltmain.in: temporarily disable dlopen_self when linking with -static or -all-static, until we figure out how to test whether it works at configure time * TODO: remember to fix this later * tests/build-relink.test: when hell is expected to fail, run it within a subshell and redirect stderr to stdout, so that dynamic linker errors are only printed in verbose mode * ltmain.in (hardcode_libdir_separator, compile_rpath, finalize_rpath): only substitute hardcode_libdir_flag_spec if hardcode_libdirs is non-empty * libtool.m4 (AC_LIBTOOL_DLOPEN): do not depend on the existence of dlfcn.h nor on the definition of RTLD_LAZY * tests/build-relink.test: hellT was renamed to lt-hell * libltdl/Makefile.am (@TOINST@/libltdl.la): do not hide the command that creates the TOINST directory; remove `-o $@' from the LINK command, $(LINK) already contains it. 1999-03-08 Thomas Tanner * doc/libtool.texi (tests): documented demo-nofast.test and renamed cdemo* to demo* 1999-03-08 Alexandre Oliva * libltdl/Makefile.am, libltdl/configure.in, mdemo/Makefile.am: libltdl must not be renamed; if there's a problem with the install option, let's fix it, not just work around it by breaking code of users of the convenience library * tests/build-relink.test: link broken libhello.la with at least one libtool object 1999-03-08 Thomas Tanner * TODO: updated (libltdl build problem fixed) * doc/libtool.texi (libltdl interface): removed the line which promised that lt_dlopen will return NULL if it can't resolve all symbols * libltdl/Makefile.am, libltdl/configure.in: fixed build problem: renamed the convenience library to libltdlc.la and the installed version to libltdl.la * ltmain.in (wrapper script): replaced the "T" suffix of the program file name with a "lt-" prefix * mdemo/Makefile.am: use libltdlc.la * tests/Makefile.am, tests/demo-nofast.test: added demo to test --enable-fast-install=no 1999-03-07 Alexandre Oliva * tests/Makefile.am (TESTS): run hardcode before build-relink trashes libhello.la * tests/hardcode.test (need_prefix): set to yes so that _inst is not removed * ltmain.in (compile_command): append finalize search path to compile search path * tests/build-relink.test: new; check shlibpath_overrides_runpath * tests/Makefile.am (TESTS): add build-relink.test; remove hardcode.test duplicates * doc/libtool.texi: document it * ltmain.in (relink_command): do not prepend cd `pwd` to it, the scripts already enters the correct directory, and expanding the pathname would prevent the build tree from moving * ltconfig.in (enable_fast_install): force it to no only if we need relink; in the other cases, set it to needless * ltmain.in (fast_install): if needless, set relink_command empty * doc/libtool.texi (fast_install, shlibpath_overrides_runpath): document the new behavior * ltconfig.in (enable_fast_install): test whether it can be forced off after shlibpath_overrides_runpath and enable_shared are set 1999-03-07 Thomas Tanner * TODO: updated * NEWS: updated * TODO: scheduled some items for next release/future * demo/configure.in: use AC_LIBTOOL_DLOPEN * libtool.m4: added AC_ENABLE/DISABLE_FAST_INSTALL macro * ltconfig.in: added --disable-fast-install flag * ltmain.in: partially reverted Alexandre's patch and implemented on-demand linking in such a way that the old developer-friendly linking style is optional, don't hardcode library paths that are in the system search path, fixed a typo in lib_search_path, implemented -export-symbols-regex for programs 1999-03-06 Alexandre Oliva * libltdl/ltdl.c (LTDL_LAZY_OR_NOW): renamed from LTDL_NOW; prefer LAZY loading because it's much faster and NOW is apparently partially broken on FreeBSD Reported by Archie Cobbs * ltconfig.in (archive_expsym_cmds, solaris, without_gnu_ld): $lib.exp already starts with $objdir/ Reported by Godmar Back * ltmain.in (freebsd): compile symbol table file with pic_flag only on FreeBSD and when not static linking; it's been causing trouble on platforms such as OpenBSD. 1999-02-26 Gary V. Vaughan * libtool.m4 (cygwin): s/\\(mingw\\|cygwin\\)32/\\1/g. Must've missed this file when I changed to cygnus' new sanction name. * ltconfig.in (sub_uncdrive): removed. This won't work with the next version of cygwin. (sub_uncdir): removed. We use :/path/to/executable now. * libtool.m4 (AC_PROG_LD): removed sub_uncdrive and sub_uncdir. 1999-02-25 Thomas Tanner * TODO: added items for next alpha release, ILD etc. * libltdl/ltdl.c: removed unnecessary check from presym_sym, fixed bug in lt_dlclose, allow lt_dlopenext(NULL), set deplibs for lt_dlopen(NULL) 1999-02-24 Alexandre Oliva * ltmain.in (file_magic_regex): sed `10q' is faster than `11,$d' 1999-02-22 Thomas Tanner * ltconfig.in (dlopen, dlopen_self): default is unknown * ltmain.in: fixed -dlopen self, print a warning if -dlopen is used without AC_LIBTOOL_DLOPEN * mdemo/Makefile.am: use -dlopen self 1999-02-22 Alexandre Oliva * ltmain.in: added missing mkdir $progdir for on-demand executable * ltmain.in: create on-demand executable as $progdir/$$-$program, and rename it to $progdir/$program only when it's finished, to avoid race conditions. We can still get the program linked multiple times, if multiple instances are started simultaneously and the program does not exist, but they are very unlikely to interfere with each other. There's still a possibility that one process removes the $program another has just created, and doesn't replace it before the other tries to run it, in a system whose `mv' is not atomic, so it will $rm then $mv, but so what? :-) Locking files have been avoided to prevent dead-locks in case they are left over after a reboot or crash. * TODO: removed ILD, soon to be merged, and added convenience libraries docs * ltconfig.in (irix5*, irix6*, shlibpath_overides_runpath): yes * ltmain.in: remove on-demand executable in the proper place, and just warn if it can't be removed; add wrapper code to test whether the install-executable is newer than the build-executable, to relink it when it appears to be out-of-date * libltdl/configure.in: check for dld.h * libltdl/ltdl.c: include dld.h (dld_open) it's spelled memory_error, not no_memory_error Reported by Stefan Burstroem * ltmain.in: fix typos in my last change (s/ocmpile/compile/) 1999-02-21 Thomas Tanner * libltdl/ltdl.c (lt_dlopen): use newhandle instead of handle when dlopening the executable * libtool.m4 (AC_LIBTOOL_DLOPEN): removed the redundant "yes: " prefix for lt_cv_dlopen, renamed lt_cv_dlopen_LIBS to lt_cv_dlopen_libs (more consistent) * ltmain.in: implemented -dl[pre]open self, necessary for lt_dlopen(NULL), generation of exported symbols was broken 1999-02-20 Alexandre Oliva * ltmain.in: avoid duplication of -L switches, it sometimes breaks IRIX 5.2's linker * ltconfig.in (freebsd*, finish_cmds): expand objformat here Reported by Vladimir Kushnir 1999-02-20 Vladimir Kushnir * ltconfig.in (freebsd-elf*, need_version, need_lib_prefix): no (freebsd-elf*, library_names_spec): add $libname.so instead of $libname.so$versuffix; add $libname$release.so 1999-02-20 Alexandre Oliva * doc/libtool.texi: remove ticks from menu items; it breaks TeX Reported by Erez Zadok * ltmain.in: fixes for export-symbols dry-run * ltconfig.in (shlibpath_overrides_runpath): new variable; determines whether LD_LIBRARY_PATH or equivalent can be used to override a hard-coded library search path; default to unknown (linux-gnu*): set it to no (solaris*, sunos4*): set it to yes * ltmain.in (build_libdirs_flags, build_libdirs, build_rpath): if shlibpath_overrides_runpath is not yes, arrange that wrapper scripts create, on demand, programs that use uninstalled libraries * doc/libtool.texi: document it * libtool.m4 (AC_LIBTOOL_DLOPEN): check for dlopen in libc before trying in dl. Add the actual dlopening type to lt_cv_dlopen, and add any needed libraries to lt_cv_dlopen_LIBS. Add test for MS-Windows' LoadLibrary. Check whether a program can dlopen itself only if we really have dlopen(), not some equivalent function, but leave room for testing with other mechanisms. (AC_PROG_LIBTOOL): assume some form of dlopen, but not dlopen(NULL), is available if AC_LIBTOOL_DLOPEN is not used, for backward compatibility. 1999-02-20 Archie Cobbs * libltdl/ltdl.c (lt_dlopen): use newhandle instead of handle where appropriate, when dlopening a non-libtool library 1999-02-19 Gary V. Vaughan * ltconfig.in (export_symbols_cmds): renamed from export_symbols_cmd. (cygwin, mingw): Be sure to compile the ltdll.c object before extracting the exported symbol list. Extract only the names of the exported symbols from the def file [otherwise we might run into trouble with -export-symbols-regex]. (archive_expsym_cmds): Regenerate the def file from the symbol export list. (delay_variable_subst): New sed expression to allow us to delay evaluation of $foo in a double_quote_subst evaluated variable by using \$. * ltmain.in (export_symbols_cmds): evaluate each ~ delimitted cmd separately. * doc/libtool.texi (libtool script contents): new paragraph to explain the difference between _cmd and _cmds suffixes for variable names. (export_symbols_cmds): renamed from export_symbols_cmd. 1999-02-18 Alexandre Oliva * ltconfig.in (ld_shlibs): move -soname and similar flags to the end of archive_cmds and archive_expsym_cmds, so as to prevent gcc's collect2 from inserting an object file between -soname and the library name * ltconfig.in (openbsd*, netbsd*, library_names_spec): append alternate name without ${release}, otherwise build fails when -release is used 1999-02-18 Gary V. Vaughan * ltconfig.in (archive{,_sym}_commands): Be careful not to re-export the dll entry points DllMain@12, _cygwin_dll_entry@12 and _cygwin_noncygwin_dll_entry@12 to avoid bugs with the wrong entry function being called with inter-dll dependencies. Reported by DJ Delorie * THANKS: Added DJ Delorie, since his code inspired the impgen.c program and because he has patiently answered all of the irritating dll and win32 questions I have fired at him. * ltmain.in (version_type): Oops. Irix versioning implies that major version numbers are 1 based (not zero based). Fixed. * ltmain.in (version_type): Implement irix versioning. * ltconfig.in (irix{5,6}*): Use new irix shared object versioning. * TODO: remove irix versioning from TODO list. * ltmain.in (impgen.c): Added a new embedded C file that can be used under win32 to extract a def file (symbol export list) from a dll that has none. Code to use it might need to wait for the ILD merge before it will be useful... 1999-02-18 Thomas Tanner * TODO: updated * autogen: only libltdl needs autoheader * doc/libtool.texi (link mode): documented -export-symbols-regex and updated -export-symbols * doc/libtool.texi (script contents): documented always_export_symbols, export_symbols_cmd, exclude_expsyms, include_expsyms, dlopen and dlopen_self more detailed description of need_lib_prefix * ltconfig.in: a "'" was missing in the default value of export_symbols_cmd * ltmain.in: implemented -export-symbols-regex 1999-02-17 Alexandre Oliva * ltconfig.in: (freebsd2*, sunos4*, exclude_expsyms): exclude _GLOBAL_OFFSET_TABLE_ * ltmain.in: implement exclude_expsyms with egrep * libltdl/ltdl.c (lt_dlmalloc, lt_dlfree): SunOS' cc can't cope with argument lists, we __P even in the definition 1999-02-15 Thomas Tanner * cdemo/Makefile.am: renamed *foo1 to *foo, removed $(MATH_LIB) * cdemo/foo1.c: renamed to foo.c * libltdl/ltdl.c: eliminated lt_dltype, in presym_open(): search for @PROGRAM@ if filename == 0, in lt_dlopen(): fixed bug for filename == 0 * libltdl/ltdl.h: use __P macro for lt_dlmalloc/free * libtool.m4: new macro AC_LIBTOOL_DLOPEN: checks for dlopen and dlopen(NULL) support * ltconfig.in: added new variables dlopen and dlopen_self, --enable-dlopen[-self] flags for AC_LIBTOOL_DLOPEN * ltmain.in: use dlopen[_self], dlpreopen files if there's no dlopen support, build lt_preloaded_symbols only if -dl[pre]open was used, include program symbols if -export-dynamic was specified and there's no dlopen(NULL) support * mdemo/configure.in: use AC_LIBTOOL_DLOPEN * mdemo/main.c: demonstrate lt_dlopen(0) 1999-02-15 Gary V. Vaughan * demo/dlmain.c (_WIN32): The lt_symlist structure is now const, so my original horrible temporary win32 hack no longer worked. Here is a new horrible temporary hack to prevent helldl from SEGVing on win32. I will fix this properly when we figure out how to do data exports from dlls. 1999-02-14 Alexandre Oliva * libtool.m4 (AC_CHECK_LIBM): do not set MATHLIB or AC_SUBST it, this has a negative side-effect of causing automake to add MATHLIB to every single Makefile. Let's use plain AC_CHECK_LIB, so that LIBS get set, until we find a better alternative * *demo/Makefile.am: remove $(MATHLIB) * libltdl/configure.in: add a DESCRIPTION argument to AC_DEFINEs where appropriate, so as to get rid of acconfig.h * libltdl/acconfig.h: removed 1999-02-13 Thomas Tanner * *demo/Makefile.am: use $(MATHLIB) * *demo/configure.in: use AC_CHECK_LIBM * doc/libtool.texi: renamed file_magic_command to file_magic_cmd, renamed archive_sym_cmds to archive_expsym_cmds * ltconfig.in: ditto * ltmain.in: ditto * libltdl/ltdl.c: use lt_dlmalloc/free * libltdl/ltdl.h: define lt_dlmalloc/free * libtool.m4: added AC_CHECK_LIBM macro * ltconfig.in: renamed archive_sym_cmds to archive_expsym_cmds, added always_export_symbols, export_symbols_cmd, exclude_expsyms, include_expsyms, removed archive_cmds for cygwin/mingw and AIX, on Solaris store the exported symbols list in objdir * ltmain.in: allow -export-symbols for modules, use thread_safe flag, add include_expsyms to the exported symbols 1999-02-12 Gary V. Vaughan * libltdl/ltdl.h (_LTDLL_EXTERN): libltdl is no longer linked as a shared library, so the _declspec's were preventing the linker from resolving symbols on win32. They have been removed now. 1999-02-12 Alexandre Oliva * ltmain.in: don't try to read objdir/libname.la before it is created! * ltmain.in: create libname.lai at link time, not at install time, but still create it at install time if it is missing Reported by Akim Demaille * libltdl/ltdl.c (tryall_dlopen): strcmp filenames was reversed 1999-02-11 Thomas Tanner * autogen: libltdl needs autoheader * demo/Makefile.am: renamed hell.debug to hell.static (we're demonstrating static linking, not debugging) * tests/demo*: ditto * doc/libtool.texi (libltdl): documented new lt_dlopen(NULL) feature * libltdl/acconfig.h: required for config.h * libltdl/configure.in: use config.h * libltdl/ltdl.c: use config.h, support lt_dlopen(NULL) (returns a handle for the program itself) * ltconfig.in: minor reformatting * ltmain.in: in lt_preloaded_symbols always define the program's symbols first, for -export-dynamic list all program symbols together, -export-symbols was broken for programs, minor reformatting * mdemo/Makefile.am: renamed mdemo.debug to mdemo.static * tests/mdemo*: ditto, mdemo.test was completely broken 1999-02-10 Alexandre Oliva * ltconfig.in (irix5*, irix6*, osf3*, osf4*): do not use -set_version in archive_cmds if verstring is empty (irix6*, shlibpath_var, sys_lib_search_path-spec, deplibs_check_method): set appropriate values depending on selected ABI, -32, -n32 or -64, as set in LD by libtool.m4 (uts4*): remove dot between .so and versuffix 1999-02-08 Alexandre Oliva * ltconfig.in (irix5*, irix6*, deplibs_check_method): use file_magic for inter-library dependency tracking * ltconfig.in (irix5*, hardcode_libdir_separator): set it to a colon, because on IRIX 5 only the last -rpath switch prevails, and it can be a list of colon-separated directories. This change will affect irix6 too, but that's not a problem. * ltconfig.in (irix5*, library_names_spec): add soname_spec, otherwise we can't dlopen 1999-02-08 Thomas Tanner * ltconfig.in: according to Marcus Sundberg HP/UX, IRIX, OpenBSD, Digital Unix and SunOS support need_version=no and need_lib_prefix=no, fixed a bug in Solaris' archive_sym_cmds 1999-02-04 Alexandre Oliva * libtool.m4 (ac_cv_sys_global_symbol_pipe): accept TAB in addition to space as separator, and allow more than one space between the symbol code and the symbol name; HP/UX's nm, for example, uses two spaces * ltconfig.in (global_symbol_pipe): ditto (bsdi4, deplibs_check_method): variable name was misspelled * libltdl/configure.in (libltdl_cv_preloaded_symbols): rewrite test, so as not to depend on the way global_symbol_pipe is initialized; the current test would get false positives, as global_symbol_pipe was initialized `x=""', not `x=' * libltdl/ltdl.c (find_module): initialize filename if dir is NULL Reported by Godmar Back 1999-02-04 Godmar Back * libltdl/ltdl.c (lt_dlopenext): missing space for terminator when allocating memory for shlib_ext 1999-02-03 Alexandre Oliva * libltdl/ltdl.c (lt_dlopenext): tmp would be trashed if shlib_ext was longer than 3 characters 1999-02-02 Gary V. Vaughan * ltconfig.in: new config.guess returns *-*-cygwin now instead of *-*-cygwin32. sed -e 's%\(cygwin\|mingw\)32%\1%g' ltconfig.in * ltmain.in: sed -e 's%\(cygwin\|mingw\)32%\1%g' ltmain.in * ltconfig.in (hardcode_libdir_flag_spec, allow_undefined_flag, archive_cmds, archive_sym_cmds, old_archive_from_new_cmds): removed duplication of config by assuming that `test $with_gcc = yes' implies gnu ld, otherwise MSVC++ (which I haven't tested since I inheritted the code from Ian Lance Taylor btw!) is implied. 1999-01-28 Gary V. Vaughan * ltmain.in: Reverted this change of Alexandre's from the 1999-01-25; "don't try to use .o instead of .lo just because there's no PIC flag. It loses if --disable-static, and there's not much point if we're referring to the same file anyway...", because not all linkers will accept .lo object names. * ltmain.in: In the case where --disable-static is specified (as noted in Alexandre's log entry), we just link some .o files to prevent the original error. Reported by Andrey Slepuhin 1999-01-27 Alexandre Oliva * libtoolize.in: search for A[MC]_PROG_LIBTOOL, not AM_PROG_LIBTOOL Reported by Jeff Garzik 1999-01-27 Gary V. Vaughan * THANKS: Now that we have a policy, applied it to the existing list. This in no way demeans the work of those people removed from the THANKS file, who are still credited in the ChangeLogs and without who's work, libtool would not work so well on many platforms, but serves to highlight the outstanding and continued contribution the remaining people have made. And I quote, "We reserve THANKS for people who have made major contributions, and leave the credit to the others for the ChangeLog only." * THANKS: added Sam Vilain. * ltconfig.in ($echo): When using printf to replace echo the shell expands %s\n to %sn. Changed to use "%s\n" (with quotes). Reported by Sam Vilain 1999-01-27 Alexandre Oliva * libltdl/ltdl.c (find_file): fix endless loop condition (find_module): filename allocation was off by 1 * libltdl/Makefile.am (distclean-local): renamed from distclean-hook, that didn't work * libltdl/ltdl.c (lt_dlopen, non-.la): find_file now returns 0 on failure * Makefile.am (ltconfig, ltmain.sh): some broken makes don't like macros in targets; replace $(srcdir) with @srcdir@ * configure.in (ACINCLUDE_M4_LIST): same problem; expand $srcdir * libltdl/Makefile.am (@TOINST@/libltdl.la): if installation is enabled, create to-be-installed libltdl.la within @TOINST@ directory (noinst_LTLIBRARIES): even if installation is enabled, build convenience libltdl.la, otherwise builds of random packages may fail if the user happens to enable installation (distclean-hook): wipe out $(TOINST) * libltdl/configure.in: set TOINST and LIBLIBS as appropriate; don't set NOINSTLIBS any more * mdemo/Makefile.am: use libltdl.la * libltdl/ltdl.c (find_file): oops, filenamesize was miscomputed * libltdl/ltdl.c (find_file): allocate filename dynamically * libltdl/configure.in (AC_PROG_LIBTOOL): automake does not recognize it and fail, better keep using AM_PROG_LIBTOOL until the next release of automake * demo/configure.in, cdemo/configure.in: ditto * depdemo/configure.in, mdemo/configure.in: ditto * libltdl/ltdl.c: make all global strings char[], not char*; check that all calls to malloc() are properly cast (strdup, strchr, strrchr, trim, free_vars): declare as inline (find_module): allocate filename dynamically; support null dir (free_vars): free dir and name only if non-null (lt_dlopen): keep dir as NULL if not given; fix expression that calculated the size of name; only free and name if non-null (lt_dlopenext): allocate tmp dynamically * configure.in (pkgdatadir): expand ${PACKAGE} at configure-time, just like automake does * configure.in (pkgdatadir): define pkgdatadir explicitly, and comment that automake does not need it, but libtoolize does * Makefile.am (aclocaldir): do not set it explicitly, automake does already * configure.in (TIMESTAMP): use mkstamp here too 1999-01-27 Thomas Tanner * cdemo/configure.in: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL * demo/configure.in: likewise * depdemo/configure.in: likewise * libltdl/configure.in: likewise * mdemo/configure.in: likewise * libltdl/ltdl.c: in find_module() check whether libdir is defined, tryall_dlopen(): move deallocation of an already opened handle to lt_dlopen(), allocate the directory in lt_dlopen() dynamically, minor cleanups, fixed memory leak (name) * libtool.m4: renamed all AM_ macros to AC_ and added aliases for compatibilty, updated AC_SYS_NM_PARSE (no undefined symbols, don't count the symbols) * ltconfig.in: added thread_safe_flag_spec (not used yet), added generic variable for linker options "linkopts" in all archive_cmds * ltmain.in: added -thread-safe flag (unused) 1999-01-26 Alexandre Oliva * ltconfig.in (LTCONFIG_VERSION): damn!, adding TIMESTAMP doesn't always work, because then different ChangeLog timestamps fail to pass the version test. Instead of forcing both ltconfig and ltmain.sh to be updated every time ChangeLog changes, better revert it * ltconfig.in (LTCONFIG_VERSION): add TIMESTAMP, remove explicit quotes and add it to the list of variables to quote * ltmain.in: reworded `dropped inter-library dependencies' message, and added a warning about inter-library dependencies even for non-module builds 1999-01-26 Gary V. Vaughan * Makefile.am (install-data-hook): Don't show the if expression that tests for gzip with a conditional error message; just do it quietly and show the error if it fails, or the next action if it succeeds. * configure.in: It seems Alexandre accidentally removed the AC_SUBST(pkgdatadir) line recently which breaks libtoolize. Reverted that small change. 1999-01-25 Alexandre Oliva * libltdl/ltdl.c (find_module): test old_name and dlname for NULL, not len==0 * libltdl/configure.in (libltdl_cv_objdir): yes, appending the "/" in configure.in was much simpler * libltdl/ltdl.c (objdir): ditto * libltdl/ltdl.c (objdir): string collation isn't portable; strcat "/" explicitly. Or should this be moved to configure.in? 1999-01-25 Thomas Tanner * libltdl/ltdl.c: allocate the variables in lt_dlopen() dynamically 1999-01-25 Alexandre Oliva * ltmain.in (file_magic): use egrep instead of expr to support more general regular expressions (file_regex): remove it; the name is misleading, it's not used anywhere, and probably will never be * ltconfig.in, doc/libtool.texi: ditto * ltconfig.in (linux-gnu*, deplibs_check_method): extend regex to support `LSB dynamic lib' in the output of `file' Reported by Scott D. Heavner * ltmain.in (dependency_libs, xrpath): add -R switches to dependency_libs only just before creating the .la file; they should not be passed to the C compiler or linker at library-creation time, since we don't know whether it is supported * ltconfig.in (freebsd2.2*, hardcode_minus_L): for FreeBSD 2.2.6, this must be `no' * mkstamp: move the sed script to extract revision and date information into a separate shell-script, so that we can break lines between commands; FreeBSD's sed doesn't like `;' after `t' Reported by Axel Thimm * Makefile.am: use mkstamp * THANKS: added Axel Thimm * ltmain.in: don't try to use .o instead of .lo just because there's no PIC flag. It loses if --disable-static, and there's not much point if we're referring to the same file anyway... * ltmain.in (pass_all=none, droppeddeps): set only if deplibs was non-empty 1999-01-24 Thomas Tanner * libltdl/ltdl.c: minor bugfixes, append a "/" the search directory only if necessary * ltconfig.in: added support for FreeBSD >= 3.0 (patch from Kurt D. Zeilenga) * THANKS: added Kurt D. Zeilenga 1999-01-24 Thomas Tanner * doc/libtool.texi (libltdl): list supported dlopen mechanisms, added function lt_dlopenext(), removed reference to LTDL_PRELOADED_SYMBOLS in LTDL_SET_PRELOADED_SYMBOLS * libltdl/ltdl.c: partially reverted Alexandre's dynamic string allocation change (it was not necessary and the code was unreadable), cleanups, removed usr_search_path_size, renamed usr_search_path to user_search_path, in find_module() also check for moved modules, merged find_file() and find_library(), added lt_dlopenext(), in lt_dladdsearchdir() no longer reset the search path if 'search_dir' == NULL and don't use realloc() (might not be available on all platforms), removed __P((void)) in the declaration of lt_dlgetsearchpath() * libltdl/ltdl.h: added lt_dlopenext() * ltconfig.in: AIX archive commands were broken, fixed a MAJOR bug in global_symbol_pipe which caused "demo-shared.test;demo-make.test" to fail (libtool must not extract undefined symbols of libraries, i.e. symcode must not contain 'U') * tests/Makefile.am (clean-local): "make distclean" in cdemo, too 1999-01-22 Alexandre Oliva * Makefile.am (ltconfig, ltmain.sh): add ChangeLog Revision to TIMESTAMP * configure.in: get values of PACKAGE and VERSION set by AM_INIT_AUTOMAKE, and extract only TIMESTAMP from the ChangeLog * libltdl/ltdl.c (lt_dlopen): if we're reusing a previously opened handle, don't reset its name nor add it to the list, and free the name we have allocated Reported by Edouard G. Parmelan * Makefile.am (ltconfig, ltmain.sh, TIMESTAMP): let's not assume anything about the format of the date, just that it does not contain `$' 1999-01-22 Gary V. Vaughan * configure.in (date): echo the version number during configuration, and show $date for cvs versions. * Makefile.am ($(srcdir)/ltconfig): Oops. cvs co keyword expansion ate the sed expression! Changed sed separator to '%' because there are '/' in the date. Added missing '\(' to search expression. Inserted a null string to stop cvs from expanding it next time =)O| ($(srcdir)/ltmain.sh): ditto. 1999-01-22 Alexandre Oliva * Makefile.am (TSDEPS_DIST): dist-time dependencies for timestamps (timestamps, update-timestamps): check whether TSDEPS_DIST are up-to-date and update ltconfig and ltmain.sh if needed (ltconfig, ltmain.sh): depend on TSDEPS; replace @TIMESTAMP@ with the Date tag in the ChangeLog (TSDEPS): empty unless overridden by update-timestamps * ltconfig.in, ltmain.in (TIMESTAMP): append timestamp to most references to VERSION 1999-01-22 Gary V. Vaughan * ltmain.in (ild): Revert the change which allowed libtool to link libraries with dependencies on .la libs. * NEWS: Removed reference to win32, incase 1.3 ships before ild is ready. * doc/PLATFORMS: Removed i686-pc-cygwin32, for the same reason. * doc/libtool.texi: Removed win32 refs, for the same reason. 1999-01-22 Alexandre Oliva * ltmain.in (Xsed): add 1 to Xsed definition that goes into temporary wrapper scripts * libtool.m4: we don't have Xsed here, expand it manually Reported by Pavel Roskin 1999-01-22 Edouard G. Parmelan * ltmain.in (finalize_hardcode_libdirs, finalize_rpath): in platforms that use -rpath, programs must be finalized at installation time, otherwise build-tree programs will prefer installed libraries over build-tree ones 1999-01-22 Alexandre Oliva * mdemo/Makefile.am (../libltdl/libtool): if it does not exist, the sub-make for libltdlc.la will take care of it, but we must at least provide an empty rule for it, otherwise the sub-make will never run * demo/configure.in, demo/Makefile.am (DLPREOPEN): reverted; it didn't make any difference. 1999-01-21 Gary V. Vaughan * THANKS: Added Chris Laas From Chris Laas * ltmain.in (compile): corrected a typo in compile mode which caused "gcc: unrecognized option -c-fPIC" errors due to a missing space. 1999-01-21 Alexandre Oliva * libltdl/configure.in: reintroduce code to detect native library extension * libltdl/ltdl.c (lt_dlopen): if a .la file name is given, that's all. Otherwise, lt_dlopen now tries to append .la first. If this fails, it tries the given filename, and, at last, tries to append the native library extension to the given filename. * doc/libtool.texi (lt_dlopen): explain new lookup strategy * libltdl/ltdl.c: major rewrite to avoid almost all fixed-size buffers; only `tmp' in lt_dlopen remained. But the code got ugly :-( * ltconfig.in (linux-gnu*, finish_cmds): remove erroneous backslash * demo/configure.in: set DLPREOPEN to -dlopen if we don't have shared libraries * demo/Makefile.am (DLPREOPEN): use instead of -dlpreopen (STATIC): use $(STATIC), not @STATIC@ * mdemo/Makefile.am (STATIC): ditto * tests/demo-shared.test, tests/demo-static.test: new tests * tests/mdemo-shared.test, tests/mdemo-static.test: ditto * tests/Makefile.am: ditto * doc/libtool.texi: document them * demo/Makefile.am, mdemo/Makefile.am (STATIC): do not use -static unconditionally, it can't work with --disable-static * demo/configure.in, mdemo/configure.in: check whether libtool was configured to build static libraries and, if not, set STATIC to an empty string 1999-01-20 Alexandre Oliva * ltmain.in (module, droppeddeps): if libtool could not satisfy all dependencies of a module, it will only build a static version of it, and display a warning message 1999-01-20 Erez Zadok * ltconfig.in (aix4*, with_gcc, archive_cmds): fix typo in Andrey Slepuhin's last patch 1999-01-20 Alexandre Oliva * Makefile.am (@DIST_MAKEFILE_LIST@): work around Ultrix /bin/sh bug * tests/nomode.test (must specify a MODE): ditto Reported by Rainer Orth * THANKS: Added Rainer Orth 1999-01-20 Rainer Orth * ltconfig.in: No known version of Solaris 2 hardcoded -L paths. 1999-01-20 Erez Zadok * ltmain.in: s/n\'t/ not/ * doc/PLATFORMS: updates for sunos4/m68k and aix 1999-01-20 Andrey Slepuhin * ltconfig.in (aix4*): check for reworked collect2, always pass -bnoentry option to linker when building a shared library 1999-01-20 Alexandre Oliva * ltmain.in (file_magic): follow soft-links before running `file' on the candidate library; try to avoid entering endless loop Suggested by Nix * ltconfig.in (linux*, solaris*, bsdi4*, sys_lib_search_path): remove expansion of $LD_LIBRARY_PATH * ltmain.in (lib_search_path): append the expansion of $shlibpath_var * doc/libtool.texi: document it * THANKS: Added Steven Schultz 1999-01-20 Steven M. Schultz * ltconfig.in (bsdi4*, check_shared_deplibs_method): file_magic (bsdi4*, sys_lib_search_path): add /shlib and other dirs 1999-01-20 Alexandre Oliva * cdemo/main.c (main): use K&R definition syntax * mdemo/main.c (test_dl, main): ditto (test_dl): casts return value of lt_dlsym to appropriate types * ltmain.in (dlsyms): #define const to nothing if not __STDC__ * ltconfig.in (global_symbol_pipe): #define const to nothing if not __STDC__ * demo/dlmain.c (main): cast s->address to the appropriate pointer types, otherwise StunOS4's cc refuses to compile it * ltconfig.in (sunos4*, without_gnu_ld, with_gcc, archive_cmds): add -fPIC, because libgcc is multilibbed, and we want the PIC version of it for shared libraries, otherwise ld complains * demo/dlmain.c (main): add missing const to declaration of name * libltdl/ltdl.c (find_module): remove the libdir argument, and try to open library only as old_name and dir/dlname (lt_dlopen): use `installed' variable in .la file to decide whether to use libdir or objdir * demo/configure.in (AC_C_CONST): added, for portability * mdemo/configure.in (AC_C_CONST): ditto * libltdl/configure.in (AC_C_CONST, AC_C_INLINE): ditto * libltdl/ltdl.c (LTDL_FILENAME_MAX): use FILENAME_MAX if defined (FILENAME_MAX): replace all explicit uses with LTDL_FILENAME_MAX (presym_free_symlists, trim): don't return void, for portability (lt_dlgetsearchpath): replace (void) with __P((void)) * ltmain.in (compile): when compiling both PIC and non-PIC, write the PIC object to .libs/.lo and only rename it to .lo after compiling the .o, to avoid fooling make dependencies * mdemo/main.c (LTDL_PREOPENED_SYMBOLS): remove 1999-01-20 Gary V. Vaughan * TODO: Added inter-library deps for ltlibs. * THANKS: Added Vladimir Kushnir. 1999-01-20 Vladimir Kushnir * ltconfig.in (freebsd3*): Define `deplibs_check_method' and `file_magic_command' for freebsd-elf. 1999-01-20 Alexandre Oliva * TODO: should we also build a `static' copy of a convenience library out of .o files? * ltconfig.in (bsdi4*, netbsd*, uts4*, library_names_spec, soname_spec): removed duplicate dot before $major Reported by Steven M. Schultz (bsdi4*) * THANKS: added Manfred Weichel 1999-01-20 Manfred Weichel * ltconfig.in (sysv5*): same as sysv4.3* 1999-01-20 Alexandre Oliva * libltdl/ltdl.c (lt_dlopen): properly detect error condition when full pathname of non-libtool library is provided * libltdl/configure.in (libltdl_cv_preloaded_symbols, HAVE_PRELOADED_SYMBOLS): test whether we support -dl*open * libltdl/ltdl.c (!HAVE_PRELOADED_SYMBOLS, lt_preloaded_symbols): define it to an empty list if libtool won't generate it, so as to avoid link errors. This will cause silent dlopening failures, but maybe this is better than failing to link the program... * libltdl/ltdl.h (LTDL_PRELOADED_SYMBOLS): remove it; better to declare lt_preloaded_symbols * doc/libtool.texi (LTDL_PRELOADED_SYMBOLS): ditto * ltmain.in (dlpredeps): removed, reverting 1999-01-17's change 1999-01-19 Alexandre Oliva * libltdl/Makefile.am (Makefile): depend on libtool * ltmain.in (lt_preloaded_setup): function added to symbol list source file to work around FreeBSD problem * Makefile.am (check-local): depend on libltdl/Makefile * mdemo/Makefile.am (mdemo_LDFLAGS, mdemo_LDADD): moved -dlopen flags to LDADD * doc/libtool.texi (Using Automake): how to add -dlopen to LDADD 1999-01-19 Gary V. Vaughan From Andrey Slepuhin * ltmain.in (hardcode_action) Oops, misapplied the patch! * ltconfig.in (compile_dependencylbs): removed this variable and pick up the library dependencies from $deplibs. * ltmain.in (compile_dependencylibs): removed this variable, use deplibs to hold these dependencies. From Andrey Slepuhin * ltmain.in (hardcode_action) make sure deplibs is set to include all the extra libs added to compile_command. 1999-01-18 Alexandre Oliva * libtool.m4 (LIBTOOL_DEPS): set it * libltdl/configure.in (LIBTOOL_DEPS): AC_SUBST it * libltdl/Makefile.am (libtool): use it * doc/libtool.texi (AM_PROG_LIBTOOL): document it * Makefile.am (libltdl.tar.gz): don't create it as part of the build, since it is likely to become stale if we do (install-data-hook): create and install libltdl.tar.gz, without depending on GNU tar Reported by Manfred Weichel 1999-01-17 Thomas Tanner * Makefile.am: added libltdl.tar.gz to CLEANFILES * ChangeLog: some reformatting * TODO: documentation updates * doc/libtool.texi: added preliminary libltdl documentation, updated dlopen and -module documentation, renamed -avoid-versioning to -avoid-version documented the libtool script variables compiler_c_o, compiler_o_lo, need_locks, old_postuninstall_cmds, postuninstall_cmds, sys_lib_search_path_spec, fix_srcfile_path, objdir, objext, libext, documented the two new flags (--ltdl[-tar]) of libtoolize * libltdl/Makefile.am: incremented the version, removed libtool dependency so that it can be build independently * libltdl/configure.in: removed LTDL_SHLIB_EXT hack, set version to 1.0, use AM_MAINTAINER_MODE, DLPREOPEN is always supported, check for libtool's objdir variable (LTDL_OBJDIR) * libltdl/ltdl.c: some cleanups (moved constants to the beginning of the file and prefixed all of them with LTDL_, minor optimizations in find_file() and find_module()), renamed lt_dlpreopen* to lt_dlpreload* for consistency, removed LTDL_SHLIB_EXT hack, we don't need unistd.h, DLPREOPEN is _always_ supported, reverted Alexandre's lt_dlpreopen_default_ change, try to open the not-installed module before the installed one, replaced lt_dlsearchpath() with lt_dladdsearchdir(), lt_dlsetsearchpath() and lt_dlgetsearchpath() * libltdl/ltdl.h: renamed lt_dlpreopen* to lt_dlpreload* for consistency, removed the declaration of lt_preloaded_symbols (should be imported by programs), reverted Alexandre's lt_dlpreopen_default_ change and added two new macros LTDL_PRELOADED_SYMBOLS and LTDL_SET_PRELOADED_SYMBOLS(), added lt_dladdsearchdir(), lt_dlsetsearchpath() and lt_dlgetsearchpath() * libtool.m4: some reformatting * libtoolize.in: implemented --ltdl, bugfix when checking for the libtool package directory * ltconfig.in: removed $thread_safe_flags from Andrey Slepuhin's AIX patch, renamed sys_lib_search_path to sys_lib_search_path_spec, some reformatting, fixed typo in deplibs_check_method (unkwnon) * ltmain.in: documented -o for compile mode, some reformatting, renamed -avoid-versioning to -avoid-version renamed sys_lib_search_path to sys_lib_search_path_spec * mdemo/Makefile.am: use -avoid-version * mdemo/main.c: use LTDL_PRELOADED_SYMBOLS and LTDL_SET_PRELOADED_SYMBOLS() 1999-01-17 Alexandre Oliva * ltconfig.in (wlarc): set to either '${wl}' or an empty string, depending on whether archive_cmds runs CC or LD (gnu_ld=yes, whole_archive_flag_spec): "$wlarc" instead of '${wl}' * mdemo/Makefile.am (../libltdl/libltdlc.la): depend on ../libtool, because ../libltdl/libtool depends on it (mdemo_debug_*): copy from mdemo_*, adding -static to LDFLAGS * ltmain.in (dlpredeps): append dependencies from dlopened modules (but not dlpreopened ones) after all explicitly linked libraries * ltconfig.in (need_lib_prefix, need_version, deplibs_check_method): default to unknown, so that we're remembered that this needs porting; unknown is interpreted as yes, yes and none, respectively (freebsd2*, freebsd3*, sunos4*, need_version): set to yes (freebsd2*, freebsd3*, library_names_spec): libraries without a version number are not used by `ld'; add $versuffix; Reported by Ben Jackson * ltmain.in (deplibs_check_method): alias unknown to none (need_version): if vinfo was not provided and release info was, zero out versuffix only if we don't need_version. * doc/libtool.texi: document what `unknown' means * libltdl/ltdl.h (lt_dlpreopen_default): reverted to a macro without arguments, that calls lt_dlpreopen_default_ with lt_dlpreloaded_symbols * libltdl/ltdl.c (lt_dlpreopen_default_): renamed from lt_dlpreopen_default (find_module) tryall_dlopen old_name first, so that we don't override statically linked symbols with dlopened ones 1999-01-15 Gary V. Vaughan From Andrey Slepuhin * libtoolize.in (cd $pkgdatadir): Make sure we return the the working directory when this is done. From Andrey Slepuhin * ltconfig.in (aix): Use shared library support correctly on aix4*, and tweak the config for aix3. * NEWS: added aix3 and aix4 to list of hosts with improved support. * THANKS: added Andrey Slepuhin . 1999-01-15 Thomas Tanner * Makefile.am (@DIST_MAKEFILE_LIST@): added a second '$' before abs_scrdir, removed ltconfig and ltmain.sh from EXTRA_DIST (automake distributes them by default) 1999-01-14 Thomas Tanner * autogen: moved faking of the libtool scripts before the call of automake, so that ltconfig and ltmain.sh are included in the distribution * ltconfig.in: when checking whether PIC is supported assume only on HP/UX that warnings during compilation mean that PIC is not supported (Thanks to Ron O'Hara) * THANKS: added Ron O'Hara 1999-01-14 Alexandre Oliva * Makefile.am: Moved ltconfig and ltmain.sh back into srcdir, and add them to the distribution. Added work-around if `mv -f' fails. fix @AINCLUDE_M4_LIST@ and @DIST_MAKEFILE_LIST@ for relative and absolute specifications of srcdir 1999-01-14 Thomas Tanner * libltdl/ltdl.c: added variable symbol prefix, added user-defined library search path (can be set using lt_dlsearchpath()), added default_preloaded_symbols which are independent of lt_dlinit/exit * libltdl/ltdl.h: added lt_dlsearchpath() and lt_dlpreopen_default() * mdemo/Makefile.am: use -export-dynamic until libtool and libltdl are able to handle module dependencies 1999-01-14 Gary V. Vaughan * THANKS: added Mark Elbrecht. * ltconfig.in (PATH_SEPARATOR): new variable to hold valid $PATH separator characters for the build host, to support DJGPP environment. * ltconfig.in: Use PATH_SEPARATOR instead of hardcoded `:'. Reported by Mark Elbrecht * cdemo/README: typo: mdemo->cdemo 1999-01-14 Thomas Tanner * autogen: fake the libtool scripts to help fixing the bootstrapping problem * Makefile.am: always configure libltdl, however after building the libtool scripts, build the libtool scripts in builddir, not srcdir (unfortunately this breaks building when srcdir!=objdir, but it was just plain wrong - needs to be fixed), build and install libltdl.tar.gz, copy acinclude.m4 instead of linking them, so that we can 'make dist' in libltdl, fixed configuring of subdirectories * configure.in: removed --enable-ltdl-install - libltdl is supposed to be installed by packages, not by libtool itself * libtoolize.in: new flags --ltdl and --ltdl-tar to install libltdl in packages (--ltdl doesn't work yet), install only the necessary libtool scripts, not just all files in pkgdatadir * mdemo/Makefile.am: removed the rule for libltdl configuration 1999-01-13 Alexandre Oliva * mdemo/Makefile.am (../libltdl/libtool): mkdir and configure ../libltdl 1999-01-13 Thomas Tanner * demo/dlmain.c, libltdl/ltdl.c, ltconfig.in, ltmain.in, doc/libtool.texi: renamed dld_preloaded_symbols to lt_preloaded_symbols, symbol lists are 'const' * cdemo/configure.in: don't check for string.h * demo/dlmain.c: renamed dld_symlist to lt_symlist, preloaded symbols are 'const', use lt_ptr_t instead of void* * demo/foo.h: define lt_ptr_t * doc/libtool.texi: document lt_preloaded_symbols correctly * libltdl/Makefile.am, mdemo/Makefile.am: renamed libtest to libltdlc * libltdl/ltdl.c: fixed some minor typos, renamed dldpre to presym, bugfix: search in search_path only if we have no directory and a search_path, in lt_dlsym() check whether symbol != 0 * libltdl/ltdl.h: removed lt_dlpreopen_default() * ltconfig.in (dlpreopen): removed dld_preloaded_symbol_count * ltmain.in: added help for -avoid-versioning, -export-symbols, -module, add @SYMFILE@ if one of -export-dynamic, -dlopen or -dlpreopen is used * mail/deplibs.html: added Gordon Matzigkeit's inter-library dependencies article * mdemo/Makefile.am: removed -export-dynamic from LDFLAGS (no longer necessary, since libtool defines lt_preloaded_symbols when -dlopen is used), initialize with lt_preloaded_symbols 1999-01-13 Alexandre Oliva * doc/libtool.texi (Test descriptions): cdemo-static works, thanks to Edouard Parmelan! * THANKS: added Sebastian Wilhelmi * ltconfig.in (solaris): define `need_version' to no 1999-01-13 Sebastian Wilhelmi * ltconfig.in (solaris): Define `deplibs_check_method', `file_magic_command', `need_lib_prefix' and `sys_lib_search_path' * ltmain.in (file_magic_regex): Add space before matching pattern, such that it works on solaris (solaris has a tab between the library name (including the colon) and the `ELF' and such the `ELF' will never be matched). 1999-01-13 Edouard G. Parmelan * ltconfig.in (NM): PATH search was not updated like in libtool.m4, in last Alexandre Oliva's change to it (sysv4*, ncr): pass all library dependencies * ltmain.in (dependency_libs, -R): use `deplib' instead of `arg' to iterate, otherwise we'd overwrite `arg' (convenience, old_libs): if --disable-shared, convenience libraries are just old archives, as .lo's are of no use * tests/cdemo-static.test: print --disable-shared here 1999-01-13 Alexandre Oliva * libltdl/configure.in (libltdl_cv_shlibext, LTDL_SHLIB_EXT): system-dependent extension of shared libraries (libltdl_cv_shlibpath_var, LTDL_SHLIBPATH_VAR): system-dependent run-time shared library search path * libltdl/ltdl.c (dldpre_init, dldpre_exit): unrelate init/exit from add/remove symlists, so one may add dld_preloaded_symbols from main(), when only a library will call dldpre_init (lt_dlopen): use LTDL_SHLIBPATH_VAR, if defined, as secondary search path. Also, if a requested .la file cannot be found, try with the LTDL_SHLIB_EXTension instead. * ltmain.in (old_archives, oldobjs): use find to SYMDEF here too * Makefile.am (@DIST_MAKEFILE_LIST@): `$' must be doubled * configure.in (AC_CONFIG_DIRS): configure only libltdl, and then, only if --enable-ltdl-install (CONF_SUBDIRS): list directories that are configured on demand, but that must be included in the distribution (ACINCLUDE_M4_LIST, DIST_MAKEFILE_LIST): generated from CONF_SUBDIRS * Makefile.am (AUTOMAKE_OPTIONS): added version 1.3e and readme-alpha, to handle README-alpha automatically (EXTRA_DIST): removed README-alpha (BUILD_SUBDIRS): subdirectories that are always built (SUBDIRS): BUILD_SUBDIRS plus BUILD_LTDL (DIST_SUBDIRS): BUILD_SUBDIRS plus CONF_SUBDIRS, from configure (all-local, check-local): depend on $(ACINCLUDE_M4_LIST), from configure, and libtool, so that it is built before subdirs (configure-subdirs): new target (configure-subdirs, distdir): depend on $(DIST_MAKEFILE_LIST), from configure (@DIST_MAKEFILE_LIST@): create subdir if needed, then run configure. On-demand configuration of subdirs at distribution time was suggested by Gary V. Vaughan * libtool.m4, ltconfig.in (NM): search for NM in PATH before /usr/ccs/bin, /usr/ucb and /bin. However, if the found one isn't BSD-compat keep searching. If no BSD-compat is found, use the first we found. * THANKS: added Raffaele Sena 1999-01-13 Raffaele Sena * libltdl/ltdl.c: replaced RTDL with RTLD 1999-01-13 Manish Singh * ltconfig.in (osf3*, osf4*, irix6*): include ${libname}{release}.so for library_names_spec 1999-01-13 Alexandre Oliva * configure.in (AC_CONFIG_SUBDIRS): added cdemo * Makefile.am (DIST_SUBDIRS): ditto (ACINCLUDE_M4_LIST): ditto * tests/Makefile.am (TESTS): added cdemo-shared.test * tests/cdemo-static.test: disable shared libraries here * tests/cdemo-shared.test: disable static libraries here * doc/libtool.texi (Test descriptions): added cdemo tests * THANKS: added Edouard G. Parmelan 1999-01-13 Edouard G. Parmelan * ltmain.in: fix convenience libraries when static libraries are disables. * cdemo/README, cdemo/Makefile.am, cdemo/configure.in, cdemo/foo.h, cdemo/foo1.c, cdemo/main.c, cdemo/.cvsignore, test/cdemo-conf.test, test/cdemo-make.test, test/cdemo-exec.test, test/cdemo-static.test: new tests for convenience libraries. * autogen, Makefile.am, test/Makefile.am: ditto. * ltconfig.in, doc/PLATFORMS: Added support for NCR MP-RAS (i586-ncr-sysv4.3*) with native compiler. * README, doc/libtool.texi: Added note for NCR MP-RAS compiler. 1999-01-12 Thomas Tanner * ltmain.in: before using LN_S remove the symlink * libltdl/ltdl.c: support multiple symbol lists, moved library- and file searching to separate functions, renamed "preload_libs" to "dl_dependency_libs", set the LT_SYMBOL_OVERHEAD to the correct value (7), fix to support lt_dlsym() for not-libtool modules again, check for invalid handles, when using strdup() check whether it fails * libltdl/ltdl.h: declare the lt_dlsymlist type for lt_dlpreopen() * mdemo/README: rewritten * mdemo/configure.in: check only for math.h (string.h is no longer necessary) 1999-01-12 Gary V. Vaughan * configure.in (ltdl-install): Fixed up the indentation so that `configure --help' is pretty again. 1999-01-11 Alexandre Oliva * ltmain.in, NEWS, doc/libtool.texi: Added support for -R flag * ltmain.in, doc/libtool.texi: documented that -rpath is the same as -R for programs * ltmain.in: softened the instructions for linking with installed libraries, and noted that libtool can be used to link with them; documented that -rpath is not required for convenience libraries * ltconfig.in (symxfrm): don't print $pipe_works twice, once for each $ac_symprfx Reported by Godmar Back * ltmain.in (convenience, libobjs): get only .o and .lo files from the files extract from the convenience library. Some systems, such as FreeBSD2, will add a SYMDEF file, that is not an object file, and therefore should not be fed to the linker * libtool.m4 (AM_SYS_NM_PARSE): while we are at it, we may well cache the value of ac_cv_sys_symbol_underscore * libtool.m4 (AM_SYS_NM_PARSE): need for underscore prefix is now auto-detected, by trying first without, then with it. * ltconfig.in: ditto 1999-01-10 Alexandre Oliva * configure.in (AC_CONFIG_SUBDIRS): add libltdl, demo, mdemo and depdemo commented out, so that `dist' works before `check' (BUILD_LTDL): will contain libltdl if --enable-ltdl-install * Makefile.am (DIST_SUBDIRS): expand SUBDIRS and add depdemo, commented out (SUBDIRS): add $(BUILT_LTDL) * libltdl/Makefile.am (EXTRA_LTLIBRARIES): add libtest.la, the same as libltdl but always a convenience library. Not built by default. Both libraries now depend on the libtool script, that depends on ../libtool and is rebuilt when needed * mdemo/Makefile.am (mdemo, mdemo.debug): depend on and link with ../libltdl/libtest.la, that is rebuilt if needed (mdemo_LDADD): removed $(LIBADD_M), to avoid silent failures (foo1.la): renamed from libfoo1.la; test removing the lib prefix * mdemo/foo1.c: renamed libfoo1_LTX symbols to foo1_LTX * mdemo/main.c: don't include string.h nor math.h, nor refer to sin nor cos * tests/mdemo-exec.test: renamed libfoo1.la to foo1.la * tests/mdemo-inst.test: ditto * libltdl/ltdl.c (FILENAME_MAX): use it instead of MAX_FILENAME, and don't redefine it if already defined; default to 1024, as on most systems (LT_SYMBOL_LENGTH): renamed from MAX_SYMBOL_LENGTH (LT_SYMBOL_OVERHEAD): new macro, that accounts for the size of the _LTX_ separator and the initial underscore (lt_dlsym): sym now points to a stack buffer (lsym) if possible, or is dynamically allocated. If allocation fails, a buffer_overflow_error is returned. 1999-01-10 Thomas Tanner * ltmain.in: define dld_preloaded_symbols if at least one of -export-dynamic, -dlopen or -dlpreopen was specified, do not include program objects in the symbol list if -export-dynamic was not enabled * libltdl/ltdl.c: limit symbols to max. 256 bytes * mdemo/Makefile.am: build libltdl in a subdirectory, do not use -export-dynamic for mdemo and mdemo.debug * tests/mdemo-conf.test,tests/mdemo-make.test,tests/mdemo-inst.test: do not check for libltdl 1999-01-09 Alexandre Oliva * libltdl/ltdl.c (lt_dlopen): missing strlen in bound test 1999-01-09 Thomas Tanner * NEWS: support for BSD/OS 4.x was not documented * demo/Makefile.am: link against libm only if available * mdemo/Makefile.am: likewise, use -avoid-versioning flag instead of -avoid-version (typo) * demo/configure.in: check for libm, string.h and math.h * mdemo/configure.in: likewise * depdemo/configure.in: check for libm and math.h * libltdl/configure.in: check for dlerror * libltdl/ltdl.c: check for buffer overflows, implemented dlerror, fixed a severe bug which occured when opening non-libtool modules, dlopen with the flags GLOBAL and NOW * mdemo/main.c: report the error using lt_dlerror() 1999-01-08 Gary V. Vaughan * doc/libtool.texi (old_archive_from_new_commands): Documented this ltcofig variable. 1999-01-07 Gary V. Vaughan * ltmain.sh (cygwin, allow_undefined): Unfortunately, there are problems with this variable when trying to make a dll which has undefined symbols, in which case not even a static library is built. For now, we need to specify -no-undefined on the libtool link line when we can be certain that all symbols are satisfied, otherwise we get a static library. 1999-01-06 Thomas Tanner * ChangeLog: merged in tests/ChangeLog * tests/ChangeLog: deleted * libltdl/ltdl.c: assigned copyright to the FSF * libltdl/ltdl.h, mdemo/foo*,main.c: likewise 1999-01-06 Gary V. Vaughan * ltmain.in (dllsearchpath): add absolute directory paths to dllsearchpath so that the wrapper scripts can be called from any directory (e.g. tests) on cygwin. * ltconfig.in (cygwin, library_names_spec): revert Alexandre's change from yesterday to use `-dll.a' suffix. That change caused $libname-dll.a to be a symlink to $soname, which isn't even an `ar' archive. Before the import library suffix can be changed, we need to figure out how to handle building objects differently for linking with an import library versus an equivalent static library. * TODO: Added details of a Linux wrapper script bug. Reported by Jeff Garzik . 1999-01-05 Alexandre Oliva * ltmain.in (libobjs_save, oldobjs): when building an old-fashioned archive, use a copy of libobjs saved before convenience libraries are appended * libltdl/ltdl.h (_LTDLL_EXPORT, _LTDLL_IMPORT): use cygwin or unix library import/export primitives; this may be convenient for people willing to create DLLs (_LTDLL_EXTERN): select _LTDLL_EXPORT or _LTDLL_IMPORT depending on _LTDL_COMPILE_ * libltdl/ltdl.h, libltdl/ltdl.c (lt_dlpreopen): new function, that replaces the current preloaded_symbols list with its argument, and returns the old value, initially NULL (dldpre_init): don't refer to dld_preloaded_symbols any more (dldpre_open, dldpre_sym): search preloaded_symbols (lt_dlpreopen_default): call lt_dlpreopen with dld_preloaded_symbols, that is declared as extern; it should be called from the main program or from some static library without -no-undefined (lt_dlerror): new function, that returns the error message for the last error occurred; the error message is kept in the static variable last_error * libltdl/configure.in (enable-ltdl-install): moved back from enable-install; other packages might use enable-install already, better have fine grained control over this. * libltdl/Makefile.am (libltdls.la): discarded 1999-01-05 Thomas Tanner * configure.in: do not configure libltdl by default * Makefile.am: do not build libltdl by default * libltdl/Makefile.am: ltdls.lo depends on libtool * tests/Makefile.am: before starting the tests make sure that libtool was build * tests/mdemo-conf.test: configure libltdl * tests/mdemo-make.test: build libltdl 1999-01-05 Alexandre Oliva * ltmain.in (SP2NL, NL2SP): Don't delete empty lines, as this would lose for files with embedded blanks. * ltconfig.in (cygwin, archive_cmds, archive_sym_cmds): Moved ltdll.c into ltmain.in, to avoid its duplication, and added a sed script to extract it. Also, create def and base files in $objdir, and don't remove them after the compilation. (cygwin, library_names_spec): Create static part of the dll with suffix -dll.a, to avoid conflicts with actual static libraries. * ltmain.in: Added ltdll.c, as commented out text 1999-01-01 Thomas Tanner * NEWS: new BeOS support * THANKS: added Joseph Beckenbach * libltdl/ltdl.h: use dllimport/export on Win32 1998-12-31 Joseph Beckenbach III * ltconfig.in: added support for BeOS * ltmain.in (shlibpath_var): added a workaround for an odd bug in the BeOS R4 sed 1998-12-31 Thomas Tanner * verified all copyright notices and updated them to 1999 * TODO: added some things that need to documented * doc/libtool.texi: -export-symbols is not supported on all platforms * doc/PLATFORMS: added a few new platforms 1998-12-30 Thomas Tanner * NEWS: updated * THANKS: added Todd Vierling 1998-12-30 Todd Vierling * ltconfig.in: improved shared object handling on both a.out and ELF platforms for NetBSD 1998-12-29 Thomas Tanner * ltconfig.in: do not rely on a leading space when concatenating variables as suggested by Erez Zadok * ltmain.in: likewise * doc/PLATFORMS: updated and reformatted (thanks to Erez Zadok for the testing) 1998-12-27 Thomas Tanner * THANKS: added Erez Zadok 1998-12-26 Erez Zadok * ltconfig.in: support i486-ncr-sysv4.3.03 shared libraries. * ltmain.in: before every ln -s, remove the link name 1998-12-25 Thomas Tanner * depdemo/configure.in: removed last relics of demo * depdemo/sysdep.h: ditto * mdemo/Makefile.am: ditto * libltdl/Makefile.am: fixed the version number, build libltdls if -enable-install and -enable-dlpreopen are enabled * libltdl/configure.in: libltdl is version 0.1, not 1.0, renamed -enable-ltdl-install to -enable-install, conditionals for libltdls, check for strchr and index, replaced NULL with 0 * libltdl/ltdl.c: replaced NULL with 0, dlpreopen only if USE_DLPREOPEN was defined, integrated shl_load code from GModule (still untested) 1998-12-24 Gary V. Vaughan * libltdl/configure.in: fixup spacing in --enable-ltdl-install help string so that it lines up nicely for configure --help. * ltmain.in (dllsearchpath): keep track of what the dll search path will need to be in the wrapper scripts as deplibs are calculated. Make sure the wrapper script doesn't end in `.exr', which makes win32 try to execute it as a binary! Add the contents of dllsearchpath to $PATH in the wrapper script. Use the relative path to the wrapped program so that the dll search path is calculated properly by win32 OSes. * TODO: removed the item for making wrapper scripts work on win32. * TODO: removed the reference to making libltdl and demo work on win32. They *do* work now that wrapper scripts are functioning. * ltmain.in (file_magic_command): It turns out that if the file_magic_command generates huge output (e.g. running `objdump -f' over a large import lib [say libX11.a]) the expr to check it against the file_magic_regex blows up. There is now an optimistic heuristic, to save only the first 10 lines of running file_magic_command which (at risk of sounding like Bill) should be enough for anyone =)O|. * ltmain.in: Set the compile_dependencylibs and dllsearchpath for non-libtool libs, or else libdeps only works between ltlibs for cygwin32. 1998-12-23 Alexandre Oliva * ltmain.in (SP2NL, NL2SP): use `tr' magic to avoid passing very long lines to sed * doc/libtool.texi (sed): very long lines are no longer a problem * libltdl/Makefile.am: install libltdl conditionally... * libltdl/configure.in: ... if --enable-ltdl-install is issued * libltdl/ltdl.c: removed #ifdef DEBUG * mdemo/Makefile.am (mdemo_debug_LDADD, mdemo_debug_DEPENDENCIES): use libltdl.la 1998-12-23 Gary V. Vaughan * doc/PLATFORMS: added my cygwin32 box (i686-pc-cygwin32). * TODO: remind myself of the win32 tasks remaining. * ltconfig.in (archive_cmds, archive_sym_cmds, old_archive_from_new_cmds): Fixed a bug which left an a.exe in the build directory. Fixed a bug where $soname-def was never deleted. * ltconfig.in (file_magic_command): new variable holds the command (including any args) to run to generate the string to match against the regex in $file_magic. Use the variable where necessary. Added to libtool header output. (deplibs_check_method): use file_magic for win32, but compare the output of `objdump -f' with the regex (see below). (archive_cmds, archive_sym_cmds): use compile_dependencylibs for each $CC invokation (see below). * ltmain.in: Set allow_undefined to `no' for win32 variants by default, otherwise it is impossible to link a dll without forcing the makefile maintainer to figure out whether to pass --no-undefined at every libtool invokation. (compile_dependencylibs): save the list of dependency library flags needed for a deplib build on win32. (link_against_libtool_libs): commented out the check for this; if it is left in, then ltlibs (i.e. *.la files) cannot be deplibs for subsequent links. Don't add -lc to the deplibs line for win32 platforms (which don't have a libc as such). (file_magic_command): use this to get some output to compare with the file_magic regex (instead of hardcoding `file' which doesn't exist on win32. * doc/libtool.texi (Porting inter-library dependencies): Updated to document the changes above. * ltconfig.in (deplibs_check_method): Changed the file_magic regex to match more linux variants. This is less lenient than Thomas Tanner's commit to fix the same problem below. Reported by Joel Klecker * THANKS: added Joel Klecker 1998-12-23 Thomas Tanner * ltconfig.in: fixed file-magic for Linux shared libraries * ltmain.in: removed the unused -force-static flag * libltdl/ltdl.c: added strchr, search modules in LTDL_LIBRARY_PATH, check whether actual module was already dlopened, read in preload_libs rather than dependency_libs 1998-12-23 Thomas Tanner * libltdl/Makefile.am: build two versions of libltdl: libltdl (support native dlopen if available, otherwise dlpreopen), libltdls (like libltdl, but always support for dlpreopen) * libltdl/ltdl.c: ditto * libltdl/configure.in: warn if dlopen is not supported * mdemo/Makefile.am (mdemo.debug): use libltdls 1998-12-22 Gary V. Vaughan * ltconfig.in: revert Thomas Tanners change to create all libraries without the `lib' prefix on win32, otherwise `gcc foo.c -lbar' can't find libbar.a. 1998-12-22 Alexandre Oliva * Makefile.am (SUBDIRS): prepend `.' to avoid am-recursive dependency hack 1998-12-21 Thomas Tanner * ltconfig.in: indentation is now 8 character wide tabs * ltmain.in: ditto * ChangeLog: ditto * ltmain.in: renamed check_shared_deplibs_method to deplibs_check_method (we_dont_want_too_long_variable_names :) * doc/libtool.texi (Porting inter-library dependencies): ditto * depdemo/.cvsignore: renamed hell* to depdemo*, added *.lo,*.la * mdemo/.cvsignore: ditto 1998-12-21 Gary V. Vaughan * libtool.m4 (AM_SYS_NM_PARSE): apparently __ptr_t is predefined on some systems - use lt_ptr_t instead. * ltconfig.in: ditto. * ltmain.in: ditto. * libtool.m4 (AM_SYS_SYMBOL_UNDERSCORE): use an AC_SUBST to pass the result of this into the compile rather than AC_DEFINE which breaks when building with older versions of autoconf. * ltconfig.in (symxfrm): Don't put the leading underscore back with the global_symbol_pipe. * demo/dlmain.c (main): No need to specialcase underscores in dld_preloaded_symbols - it is fixed by symxfrm above! * libltdl/configure.in: use AM_SYS_SYMBOL_UNDERSCORE from libtool.m4 rather than reinvent the wheel here =)O| * ltmain.in: Fix deplibs methods to not rely on a.out (cygwin uses a.exe!). * libltdl/configure.in: Cleanups - fix header comment and emacs local-vars. * demo/dlmain.c (win32_force_data_import_address): a nasty hack to force the address of imported data symbols into dld_preloaded_symbols on win32, which does data imports differently to function imports (sheesh!). This functionality needs to be moved into the dld_preloaded_symbols generation code. demo/helldl with static linking is broken on win32 by this change, probably until after libtool-1.3 =(O| * demo/foo.h: make sure __CYGWIN32__ is always defined on cygwin32 systems. Use the correct __declspec macro for lib exports/imports on cygwin32. * demo/foo.c, demo/hello.c: Make sure we tell foo.h that these sources are inside libfoo, and want to export symbols. 1998-12-20 Thomas Tanner * autogen: configure demo, depdemo, libltdl and mdemo * tests/mdemo-exec.test: renamed hell* to mdemo* * tests/mdemo-inst.test: ditto 1998-12-19 Thomas Tanner * libltdl/Makefile.am: build a normal libtool library * libltdl/ltdl.c: get LTDL_LIBRARY_PATH but don't make use of it yet, some reformatting * ltmain.in: fixed a bug which listed symbols in dld_preloaded_symbols twice * TODO: removed symbol export lists and deplibs 1998-12-18 Thomas Tanner * ltconfig.in: added need_lib_prefix and need_version, which determine whether we must prefix modules with 'lib' and whether versioning is required for libraries. * ltmain.in: allow modules names without 'lib' prefix, new -avoid-versioning option * doc/libtool.texi (link flags): updated documentation for -module, added -avoid-versioning * doc/libtool.texi (libtool script contents): documented the two new flags and archive_sym_cmds * doc/libtool.texi (tests): added (partially very short) documentation for assign.test, nomode.test, quote.test, sh.test * libltdl/ltdl.c: canonicalize module names, some cleanups and bugfixes, __ptr_t is predefined on some systems - use lt_ptr_t instead * mdemo/: renamed hell* to mdemo* (hell is already used in demo), updated the documentation, import sin and cos in main program rather than linking libfoo1 statically 1998-12-17 Gary V. Vaughan * libtool.m4 (AM_PROG_LIBTOOL): Added AC_PREREQ(2.12) to prevent people using libtool with old autoconfs that don't provide the features we need. 1998-12-16 Alexandre Oliva * NEWS, configure.in, libtool.spec: Bumped to 1.2e for CVS * NEWS, configure.in, libtool.spec: Bumped to 1.2d for release * Makefile.am (cvs-dist): our release tags are in lower case (cvs-diff): ditto (EXTRA_DIST): added README-alpha * README-alpha: minor adaptations * demo/Makefile.am, mdemo/Makefile.am, depdemo/Makefile.am: removed comment about special needs for distribution * depdemo/Makefile.am: don't generate dependencies * depdemo/configure.in: modified version number * ltmain.in (-force-static, force_static): removed * libltdl/Makefile.am (CFLAGS): ditto * libltdl/configure.in: check for memory.h, rindex() and dlpreopening. Fixed NEED_USCORE caching policy. * libltdl/ltdl.h (lt_dlsym): make the name argument const * libltdl/ltdl.c (types): new variable: head of list of available dlopening mechanisms (lt_dltype_t): interface of a dlopening mechanism, with pointers to functions for init, exit, open, close and sym (lt_dlhandle_t): added pointer to interface type (strdup): don't name it strdup; it can be troublesome (strrchr): ditto; use rindex if available (LIBTOOL_STATIC): check HAVE_DLPREOPEN instead, and move to the end of the file, so that it becomes the header of the list (all): renamed all interface-implementation functions, to avoid name clashes, and created lt_dltype_t nodes for all of them (lt_dlinit): initialize all available interfaces; remove those that fail from the list. Return failure only if no interfaces could be initialized. (lt_dlexit): return number of failures (tryall_dlopen): try to open the library with all available interfaces (lt_dlopen): use tryall_dlopen; increased size of fixed buffers. We should probably make these bound-checked or dynamically allocated for the final release! Fix bug when filename did not contain slashes; should we check for `\\' too? Try old_library if everything else fails. (lt_dlclose): use the interface type for closing (lt_dlsym): make `symbol' const, use interface type for looking up * mdemo/Makefile.am: moved mdemo/modules/* back into mdemo (SUBDIRS): removed (libfoo2_la_LDFLAGS): added -static; nice test. However, since it causes -lm to linked into hell*, it causes tests that should fail to pass (noinst_HEADERS): no need to install foo.h * mdemo/configure.in: remove modules/Makefile tests/mdemo-exec.test: updated accordingly * NEWS: Added Thomas Tanner and Gary V. Vaughan to the list of new maintainers. Detailed expected failures of libltdl+mdemo. Listed recent ports. Added full URL for the home page. Note that libtool C program is unusable. 1998-12-16 Bruno Haible * doc/libtool.texi (Tested platforms): broken `sed' programs 1998-12-16 Alexandre Oliva * THANKS: added Stephan Kulow; removed Gary V. Vaughan and Thomas Tanner, now that they're AUTHORS 1998-12-16 Stephan Kulow * ltmain.in (freebsd-aout, freebsd-elf): added missing dot to versuffix 1998-12-16 Alexandre Oliva * libltdl/Makefile.am (EXTRA_DIST): removed, nothing needed (libtool): automatically update * libltdl/configure.in (stdlib.h, unistd.h, stdio.h): check * libltdl/ltdl.c: include them * demo/configure.in (BINARY_HELLDL): test whether dlopen is supported at configure time * demo/Makefile.am (helldl): use automake conditionals to build helldl as a script or as a binary program * tests/Makefile.am (EXTRA_DIST): remove ltdl-*.test (clean-local): don't clean libltdl any more * tests/ltdl-conf.test: removed * tests/ltdl-inst.test: ditto * tests/ltdl-make.test: ditto * tests/ltdl-unst.test: ditto * tests/mdemo-make.test: updated accordingly * tests/mdemo-inst.test: ditto * tests/mdemo-unst.test: ditto * doc/libtool.texi: ditto * ltmain.in (-DSTATIC): changed to -DLIBTOOL_STATIC, and defined only for -force-static; it should be removed soon, before people start to use it * configure.in (AC_CONFIG_SUBDIRS): added libltdl * Makefile.am (SUBDIRS): build libltdl by default (DIST_SUBDIRS): simplify distribution of demo and mdemo (libtool, clibtool, libtoolize, ltconfig, ltmain.sh): add srcdir where appropriate (ACINCLUDE_M4_LIST): new rule for maintaining links from acinclude.m4 to libtool.m4 (*demo/Makefile.in): don't update autoconf/automake files any more; make check is needed 1998-12-14 Gary V. Vaughan * ltconfig.in (archive_cmds): tweaked for cygwin b18->b20.1 compatibility and fixed a bug with generating the export definitions file. This is only tested on b20.1, but should work back to b18 at least. 1998-12-11 Thomas Tanner * ltmain.in: -module implies now -export-dynamic, dlpreopen files if we're linking statically * doc/libtool.texi (link flags): added documentation for -module and the tests for mdemo and libltdl * mdemo/Makefile.am: replaced -dlpreopen with -dlopen 1998-12-09 Alexandre Oliva * PORTING: removed the text Akim Demaille converted to .texi 1998-12-09 Akim Demaille * doc/libtool.texi: converted inter-library dependencies instructions from PORTING 1998-12-09 Alexandre Oliva * ltmain.in (convenience, deplibs): propagate dependencies * libltdl/Makefile.am (noinst_HEADERS): don't install ltdl.h yet (noinst_LTLIBRARIES): ditto for libltdl.la 1998-12-08 Gary V. Vaughan * README-alpha: adapted the release procedure from automake/HACKING. * Makefile.am: adapted the cvs-dist and cvs-diff rules from automake/Makefile.am. I guess this is probably safe to use already, but I didn't test it as it tags the CVS tree. If it needs tweaking, we'll find out come 1.2d. 1998-12-08 Thomas Tanner * ltconfig.in: fixed some typos in archive_sym_cmds * ltmain.in: replaced basename with a sed expression 1998-12-07 Alexandre Oliva * configure.in: we no longer use PRCS * doc/libtool.texi (author): listed all the AUTHORS (Dlopen issues): added reference to libltdl, still undocumented (C++ libraries): it's not *that* simple, after all :-( (Inter-library dependencies): they're back! 1998-12-04 Alexandre Oliva * libtool.m4 (ac_cv_sys_symbol_underscore): `test a == b' doesn't work, use `test a = b' instead * Makefile.am (mdemo_distfiles): libfoo[12].sym no longer exist * ltconfig.in (solaris): do not use $CC for linking if GNU ld is not available 1998-12-04 Manfred Weichel * ltconfig.in: Port to SCO UnixWare 7.x. 1998-12-03 Thomas Tanner * ChangeLog: converted CR/LF back to CR format * ltconfig.in: new variable sys_lib_search_path for searching of installed libraries, export archive_sym_cmds and sys_lib_search_path * ltmain.in: use sys_lib_search_path, removed extradeplibs (they're not portable) 1998-12-02 Gary V. Vaughan * libltdl/configure.in: look for string.h or else strings.h, and also check for ANSI strrchr() function. Fix `undescore before symbols' macro to not rely on a.out (cygwin uses a.exe!). Fix `underscore for dlsym' to set cache variable properly, not just in environment of AC_DEFINE(NEED_USCORE). * libltdl/ltdl.h (__ptr_t): for K&R compatibility using char*. * libltdl/ltdl.c (strrchr): fallback function incase none is defined in libc. (trim, ltdlopen): replace rindex with ANSI strrchr. Add static function declarations so that we get type checking with ANSI compilers. Use __ptr_t instead of void*. 1998-12-01 Thomas Tanner * ltconfig.in: added -export-symbols support for GNU ld and Solaris (untested), archive_sym_cmds for -export-symbols * doc/libtool.texi, ltmain.in: -export-symbols is now independent from -export-dynamic and does not work for modules anymore * ltmain.in: added some checks for -export-symbols * mdemo/modules/Makefile.am: replaced -export-symbols with -export-dynamic since it doesn't work for modules 1998-12-01 Gary V. Vaughan * README: Updated homepage pointer to gnu libtool page. * ltconfig.in (ltdll.c): update the ltdll.c file for cygwinb20. Based on code from Mumit Khan . (archive_cmds): correct typo libtool.c->ltdll.c. Update shell commands for cygwin32. * libtool.m4 (AM_SYS_SYMBOL_UNDERSCORE): New macro; find out whether compiled symbols have an extra leading underscore. (AM_SYS_NM_PARSE): New macro (converted to m4 from ltconfig.in); find a sed expression to parse global symbols from the output of $NM. (AM_PROG_LIBTOOL): require AM_SYS_NM_PARSE and AM_SYS_SYMBOL_UNDERSCORE. * demo/dlmain.c (main): Remove a single leading underscore from compiled symbol names if necessary. 1998-12-01 Alexandre Oliva * config.guess, config.sub: imported from autoconf pre-2.13 1998-11-27 Gary V. Vaughan * libtool (AM_PROG_LD): Oops... we need to know the host_os for the changes below. I'm not sure whether mingw32 and os2 support UNC paths, if they did we wouldn't need the check, we could use UNC paths on all three; or if the bug with $LD not being shell-meta escaped was fixed, we could use '\\' separators on all three. AC_REQUIRE'ed AC_CANONICAL_HOST. * libtool.m4 (AM_PROG_LD): Cannonicalize the absolute path for the ld program; The order is funny to provide canonicalization to paths with '\\' separators as well as '/'. * ltconfig.in: ditto. * AUTHORS: Added myself as a co-maintainer. * ltconfig.in (archive_cmds): The `;\' in a compound statement is expanded wrongly for cygwin32, mingw32, aix3 and aix4. Changed to `;'. 1998-11-25 Alexandre Oliva * libtool.spec (URL): point to www.gnu.org (Source): point to ftp.gnu.org * Makefile.am (EXTRA_DIST): removed libtool.prj Reported by Akim Demaille 1998-11-24 Alexandre Oliva * ltconfig.in (echo): avoid shell error messages when we're testing for large command line support Reported by Axel Thimm * doc/PLATFORMS: updated last-tested release for platforms I've got access to * THANKS: added Chris P. Ross 1998-11-24 Chris P. Ross * ltconfig.in: added recognition of the dynamic linker on BSD/OS 4.x * README: added BSD/OS 4.x to the list of supported platforms * doc/PLATFORMS: added BSD/OS 4.x support for various host id's 1998-11-24 David Heine * ltmain.in (pass_all): actively pass the flags 1998-11-24 Thomas Tanner * depdemo: added inter-library dependencies demo (doesn't work yet!) * AUTHORS: added myself to the list of maintainers 1998-11-22 Thomas Tanner * libltdl: added support for .la files, LGPL license, K&R compatibility, some API changes and bugfixes * ltmain.in: renamed -module flag (for compiling) to -force-static, define -DSTATIC when compiling static .o files, do not include directories in dld_preloaded_symbols * mdemo: modified mdemo to work with the new libltdl * tests/mdemo-exec.test, tests/mdemo-inst.test: use .la files 1998-11-21 Alexandre Oliva * libltdl/ltdl.c: replace NULL with 0, so that we don't depend on header files defining it. * ltconfig.in (archive_cmds, osf3, osf4, solaris, sunos4): create libraries with gcc -shared if using gcc without GNU ld. * ltconfig.in: replaced occurrences of solaris2 with solaris, to prepare for Solaris 7 1998-11-19 Alexandre Oliva * mdemo/Makefile.am (hell_debug_LDFLAGS): -dlpreopen -> -dlopen (hell_LDFLAGS): added -export-dynamic and -dlopen (SUBDIRS, INCLUDES): added modules directory (foo1.c, foo2.c, foo.h, libfoo1.sym, libfoo2.sym): moved to modules * Makefile.am: ditto * tests/mdemo-exec.test, tests/mdemo-inst.test: libraries moved * mdemo/modules/Makefile.am: new file * */Makefile.am (AUTOMAKE_OPTIONS): added no-dependencies * ltmain.in: missing `test' between `&&' and `"$module"' * ltconfig.in (echo_test_string): the whole ltconfig script was too much for DU4.0's ksh, but the first 50 lines will be enough. * ltmain.in (installed): new variable defined within a .la file, so that libtool can now link already-installed libraries into a program. * NEWS: ditto * doc/libtool.texi (Linking executables): document it * ltmain.in (output_objdir): compute it from $output, not $arg * tests/mdemo-inst.test (libltdl): install it * tests/mdemo-unst.test (libltdl): uninstall it * tests/Makefile.am (TESTS): list ltdl-unst.test before mdemo-conf.test 1998-11-18 Alexandre Oliva * NEWS: -module and libltdl * mdemo/Makefile.am: ../libltdl is within $(srcdir) 1998-11-18 Thomas Tanner * libltdl, Makefile.am: added libltdl (a system independent dlopen wrapper library extracted from mdemo) * ltmain.in: added -module flag for compiling and linking of modules. If enabled it compiles always both .o (with -DLT_RENAME) and .lo files * mdemo: modified mdemo to work with libltdl * tests/ltdl*: added tests for libltdl 1998-11-16 Steve Price * ltconfig.in: when $host_os is freebsd[23]* determine whether the current linker format is a.out or ELF * ltmain.in: add two new $version_type's, freebsd-aout and freebsd-elf, to support above change 1998-11-16 Stephan Kulow * ltconfig.in: extent no_builtin_flag to contain -fno-rtti and -fno-exceptions in case we compile with a gcc, that supports this options (egcs and gcc >= 2.8) 1998-11-16 Alexandre Oliva * ltmain.in (C_compiler): copy $CC before it is overwritten with command-line compiler, so that we can use it to compile C sources generated during the build. This fixes the problem that showed up with -export-dynamic of C++ programs in egcs 1.1. * NEWS: ditto 1998-11-12 Alexandre Oliva * PORTING: Porting instructions are in the libtool manual already * NEWS: Mention -export-symbols and new dlpreopen 1998-11-11 Alexandre Oliva * ltmain.in (IFS): revert Gary's patch when parsing version information; we still use `:' here :-) * NEWS: updated * PORTING: new file, with general instructions and inter-library dependencies tips 1998-11-11 Gary V. Vaughan * ltconfig.in: make use of '~' field separator in reload_cmds, old_archive_from_new_cmds, old_archive_cmds, archive_cmds, old_postinstall_cmds, postinstall_cmds, old_postuninstall_cmds, postuninstall_cmds and finish_cmds, so that the semi-colons inside if/then/else/fi and for/do/done etc. do not break the eval loop in ltmain.in (below). * ltmain.in: changed all of the eval loops to use an IFS of `~', to allow differentiation between the end-of-statement-; (now `~' is used) and end-of-substatement-; (still `;'). This fixes AIX and win32 at least. 1998-11-11 Alexandre Oliva * ltconfig.in (sunos*, sympat, symxfrm): remove underscore prepended by the compiler 1998-11-10 Toshio Kuratomi * ltconfig.in: re-enable deplibs * ltmain.in: support deplibs, at least for GNU/Linux/x86 Updated to current libtool by Thomas Tanner 1998-11-10 Gordon Matzigkeit * ltmain.in (link): Make the relink warning less harsh. 1998-11-07 William M. Perry * ltconfig.in (aix3, aix4): uniquify symbol names in archive_cmds 1998-11-07 Alexandre Oliva * ltconfig.in: add --falback-echo, to be used if everything else fails. The tests now check the behavior of $echo for very large strings, because some echo commands would just core dump (e.g., Solaris' printf). If too large strings fail, smaller ones are tested. (ltecho): arrange that, if the --fallback-echo method is selected, echo will be defined in the libtool script so as to re-run itself, not ltconfig * ltmain.in: add --fallback-echo (qecho) ensure that, if --falback-echo is being used, qecho is defined with the full pathname of the libtool script * tests/sh.test (test X): ensure that the double-quote supposed to be reported is really reported 1998-11-07 Thomas Tanner * mdemo/main.c: removed hardcoded library names; link against -lm * tests/mdemo-exec, tests/mdemo-inst: pass the library names to the program 1998-11-07 Marc J. Fraioli * README: Added DG/UX * doc/PLATFORMS: ditto 1998-11-04 Michael Tiemann * ltconfig.in (irix6): it's a little bit different from irix5 1998-11-04 Alexandre Oliva * THANKS: Added Thomas Tanner and Gary V. Vaughan * ltconfig.in, ltmain.in: updated and fixed the patches below 1998-11-04 Thomas Tanner * mdemo/*: added new demo to demonstrate building of dlopenend modules * tests/Makefile.am, tests/mdemo*: added some tests for mdemo 1998-11-04 Gary V. Vaughan * demo/configure.in: added AC_EXEEXT macro so that the tests can work on cywin32/mingw32 hosts. This requires the current CVS autoconf 1998-11-04 Thomas Tanner * ltmain.in: New flag -export-symbols; new dlpreopen system * demo/dlmain.c: removed dld_preloaded_symbol_count 1998-11-04 Ian Lance Taylor * ltmain.in: On installation, don't get confused if the same name appears more than once in the list of library names. 1998-11-04 Ian Lance Taylor * ltconfig.in: Add objext and libext variables. Check for object suffix. Check for mingw32* as well as cygwin32*. Use objext when testing compiler. Add support for Visual C++ on cygwin32 when not using gcc. Add objext, libext, and fix_srcfile_path to generated libtool script. * ltmain.in: Use .${objext} rather than .o. Use fix_srcfile_path if it is set. Check for .obj as well as for .o, and for .lib as well as for .a. Use .${libext} rather than .a when creating old libraries. * libtoolize.in: Change initial /bin/sh to @SHELL@. * libtool.m4 (AM_PROG_LIBTOOL): Add AC_REQUIRE for AC_CANONICAL_BUILD, so that autoconf doesn't get mixed up by the AC_REQUIRE in AC_CHECK_TOOL. 1998-11-04 Ian Lance Taylor * ltconfig.in: Look in the right directory for libtool.c in archive_cmds for cygwin32. 1998-11-04 Ian Lance Taylor * ltconfig.in: Fix cygwin32 support to avoid using a double extension, to delete the def file, to set version_type to windows, and to include versuffix in the DLL name. * ltmain.in: Add support for a version_type of windows. 1998-11-04 Ian Lance Taylor * ltconfig.in: Add cygwin32 support. * libtool.m4 (AM_PROG_LIBTOOL): Call AM_SYS_LIBTOOL_CYGWIN32 on a cygwin32 host. Pass DLLTOOL and AS to ltconfig. (AM_SYS_LIBTOOL_CYGWIN32): New macro. 1998-11-04 Alexandre Oliva * libtool.m4 (sco): fix typo 1998-11-04 Ian Lance Taylor * ltconfig.in: On AIX, don't treat GNU ld specially. 1998-11-04 Alexandre Oliva * ltconfig.in (hardcode_minus_L): Revert Ian's patch for ltconfig.in. Although -L hardcoding is not used with GNU ld, it does happen, so hardcode_minus_L must be set to yes. * ltconfig.in (compiler_o_lo): check whether we can write directly to a .lo * ltmain.in (compiler_o_lo): if not, write to .o and rename it 1998-11-04 Ian Lance Taylor * ltconfig.in: For sunos4 using GNU ld, set hardcode_minus_L to no. * ltmain.in: Add some hacks to make SunOS --enable-shared work when using GNU ld. 1998-11-04 Alexandre Oliva * THANKS: Added Marc J. Fraioli 1998-11-04 Marc J. Fraioli * ltconfig.in (dgux): new supported platforms 1998-11-04 Alexandre Oliva * ltconfig.in (need_locks): if neither `-c -o' nor hard links are available, fallback to not so safe mechanism, by setting need_locks to warn * ltmain.in (need_locks): when need_locks is set to warn, use the lockfile to try to fail in case of incorrect concurrent builds * THANKS: Added Eric Estievenart 1998-11-04 Eric Estievenart * doc/libtool.texi (Compile mode): Document that -o is fully supported. * libtool.m4 (libtool-lock): new ARG_ENABLE; sets (need_locks) * ltconfig.in (disable-lock): control need_locks (hard_links): check whether hard-links can be used for locking * ltmain.in (need_locks): use $output_obj.lock for locking 1998-11-03 Alexandre Oliva * ltmain.in: correctly create libraries and programs with directory components in their names 1998-11-03 Eric Estievenart * ltmain.in (output_obj): typo 1998-11-02 Ian Lance Taylor * ltconfig.in: For sunos4, add ${libname}.so$versuffix to library_names_spec. * ltmain.in: For version_type of sunos, set versuffix even if -version-info was not used. 1998-11-02 Alexandre Oliva * ltmain.in (libobj): default value must not contain directory components 1998-11-02 Eric Estievenart * ltconfig.in (compiler): detect if the compiler supports -c and -o flags, create a variable compiler_c_o. Also issue a big warning if it is not supported * ltmain.in (compile): enable the -o option as input for libtool. The objects are not moved if the compiler supports -o with -c. Sources and objects can contain relative directories. (link): enable the linking of executables into relative directories 1998-11-02 Alexandre Oliva * AUTHORS: added myself as a co-maintainer * THANKS: and removed my name from here * autogen: new script; run it to bootstrap libtool after checking it out from CVS * libtool.m4 (CFLAGS): check whether -belf is needed on SCO, as suggested by Robert Lipe 1998-10-31 Gordon Matzigkeit * demo/Makefile.am (hc-libpath): Use parameters from the libtool in the top build directory, since the one in the demo directory is not guaranteed to exist. 1998-10-27 Alexandre Oliva * demo/Makefile.am (objdir): there are no longer quotes around objdir in the libtool script 1998-10-27 Gordon Matzigkeit * ltconfig.in (dynamic_linker): Echo the result to fd 6, so that --silent works correctly. From William M. Perry. 1998-09-24 Gordon Matzigkeit * ltmain.in (link): Fix problems when building only static libraries. From Owen Taylor. 1998-08-20 Gordon Matzigkeit * ltmain.in (install): When library_names_spec has redundancies, avoid deleting the main library when installing symlinks. From Jeff Dairiki. (link): Get rid of backticks in a here doc comment. This causes segfaults on Solaris 2. From Aleksandar Bakic. (finish): Don't display messages * ltconfig.in (archive_cmds): On HP-UX 9, make sure we don't try to move a file to itself. From Jeff Dairiki. 1998-08-19 Gordon Matzigkeit * ltconfig.in: Make changes to accomodate ltmain.c. * Makefile.am (clibtool): New target for the C version of libtool. * ltmain.c: Experimental C version of libtool. 1998-07-10 Ian Lance Taylor * ltmain.in (install): Test against both $SHELL and /bin/sh. 1998-06-30 Gordon Matzigkeit * ltmain.in: Convenience archive support. From Ulrich Drepper. * ltconfig.in (postinstall_commands): Change libraries to be executable on Solaris in order to prevent ldd from moaning. From Julian Gosnell. (whole_archive_flag_spec): New variable to shortcut convenience archive expansion. From Ulrich Drepper. 1998-06-11 Gordon Matzigkeit * ltconfig.in, ltmain.in: Change globs to accept forward slashes in absolute directory names used on DOS-like systems. From Robert S. Maier. Thu May 28 18:59:08 1998 Ian Lance Taylor * ltconfig.in: Use $SHELL when invoking shell scripts. 1998-05-21 Gordon Matzigkeit * ltmain.in (compile): Don't have `-static' turn off libtool libraries, so that people can use it just to guarantee that `.o' files exist. Suggested by David Mosberger-Tang. 1998-05-18 Gordon Matzigkeit * ltmain.in (link): Possibly reexec the shell from within the wrapper script. Allow `-version-info' and `-release' to coexist again. If people want to shoot themselves in the foot, I'd better let them do so, so that people who are smart enough not to can squeeze out another ounce of functionality. From Tim Janik. (version_vars): Delete dead variable. * ltconfig.in (hardcode_minus_L): FreeBSD 3.0 doesn't hardcode, at last. Reported by Jason Nordwick. * libtoolize.in, ltconfig.in, ltmain.in: Change a bunch of `if test ...; then : ; else ...' constructs to `if test ! ...; then ...', for clarity. 1998-05-17 Gordon Matzigkeit * ltmain.in (LC_ALL, LANG): Save these values and restore them during execute mode. From Pavel Kankovsky. (mode): Accept strace and truss as programs that throw us into execute mode. From Pavel Kankovsky. 1998-05-07 Ian Lance Taylor * ltconfig.in: Don't use .$versuffix or .$major. Instead, assume the variable will include any required prefix. * ltmain.in: If no -version-info option was used, produce empty version strings rather than 0.0.0. When making library symlinks, avoid making a symlink if the name would be the same. 1998-04-27 Gordon Matzigkeit * ltmain.in (link): Support `unsupported' as a hardcode_action. Reported by Lars Hecking. (lib_linked): Do some sanity checking to make sure that we actually do link libtool libraries into the program to prevent the above problem from happening again. 1998-04-20 Gordon Matzigkeit * ltmain.in: Maybe reexec under $SHELL, if $echo doesn't work. Reported by Lars Hecking. 1998-04-19 Gordon Matzigkeit * Makefile.am (maintainer-rekey): New rule to force us to change Project-Version after we make a release. This keeps all version numbers in sync, rather than branching just before the release. (maintainer-release, maintainer-checkin): Use maintainer-rekey. * ltmain.in (finish): Notice when a finish command fails, so that we can add it to the list of recommendations. 1998-04-17 Gordon Matzigkeit * libtool.m4 (AM_PROG_LIBTOOL): Append file descriptor 5 to config.log, so that configure doesn't clobber the messages that ltconfig put there. From David Taylor. 1998-04-15 Gordon Matzigkeit * ltconfig.in (archive_cmds): Try using `$CC -shared' when configuring for GCC under irix5 and irix6. From Wolfram Gloger. (ofile): Add `--output' flag to change the name of the generated libtool. Suggested by Wolfram Gloger. 1998-04-14 Gordon Matzigkeit * ltmain.in: Remove all hardcoded references to ltmain.in in favour of $PACKAGE and $PROGRAM. (install): Compute the installation name for programs, in case we install a relinked file which has a different name. Reported by Pieter Schoenmakers. * ltconfig.in (echo): Try using the ksh(1) `print -r' builtin command, before reverting to printf(1). * Makefile.am (libtool): Use $(SHELL) when invoking ltconfig. * ltconfig.in (echo): Rewrite the test for a working echo so that we win on Solaris by avoiding printf(1), if possible. * tests/quote.test (echo): Update the echo test from ../ltconfig.in. 1998-04-13 Ian Lance Taylor * libtool.m4 (AM_PROG_NM): Don't override NM in the environment. 1998-04-13 Gordon Matzigkeit * ltmain.in: New `--config' flag to print out all configured variables. * libtool.m4: Pass ltconfig the undocumented --no-reexec flag, since we call it explicitly using CONFIG_SHELL. * ltconfig.in: Restart the script under a different shell if CONFIG_SHELL is not /bin/sh. This way, people can use Bash if they don't have a working echo program. * ltmain.in, ltconfig.in: Use $SHELL instead of /bin/sh when generating executable scripts. * libtoolize.in, ltconfig.in, ltmain.in: Implement the `--debug' flag to begin shell tracing. * ltconfig.in (archive_cmds): Don't use `gcc -shared', even if we have GNU ld. Reported by Robert S. Maier. 1998-04-06 Gordon Matzigkeit * ltconfig.in (pic_flag): Create more than just a null C file, so that the SunPRO 4.2 cc doesn't complain. From Bob Friesenhahn. (gnu_ld_acts_native): Delete this variable. There is just too much version skew to try to pretend GNU ld is the same as the system ld. Reported by Ian Lance Taylor. (hardcode_action): Don't bother relinking or aborting on systems that are too dynamic to have a consistent hardcode method. Reported by Doug Winterburn. 1998-03-24 Gordon Matzigkeit * doc/libtool.texi: A little proofreading. From Albert Chin-A-Young. 1998-03-23 Gordon Matzigkeit * ltconfig.in: Treat HP-UX 11 just like HP-UX 10. From Jeff Law. 1998-03-21 Gordon Matzigkeit * ltconfig.in (reload_flag): Correct a tiny bug where `--silent' would still print out the reload flag. From Stephan Kulow. 1998-03-20 Ian Lance Taylor * libtool.m4: Use changequote to avoid problems with square bracket patterns. 1998-03-20 Gordon Matzigkeit * Release 1.2. 1998-03-18 Gordon Matzigkeit * ltmain.in: Rearrange some of the echos to make them more consistent. 1998-03-14 Gordon Matzigkeit * ltmain.in: Break up an echo command that causes Solaris printf to dump core. Apparently the Solaris people hardcoded a 2110-byte buffer into their printf(1). Feh. From John Judge. 1998-03-11 Gordon Matzigkeit * ltconfig.in: Change the test for the PIC compiler flag so that we assume it doesn't work if there are any warning messages. This fixes a bug using old GCC's on HP-UX. Reported by Akim Demaille. 1998-03-10 Andreas Schwab * Makefile.am ($(srcdir)/ltconfig): Remove bogus command to create a file ltconfig in the build directory. 1998-03-09 Andreas Schwab * ltmain.in: Avoid unnecessary use of command substitution, replacing foo=`eval \\$echo \"$mumble\"` by eval foo=\"$mumble\". (link): Use ${1+"$@"} in wrapper scripts in order to pass arguments safely to a program. * ltconfig.in: Use -fpic instead of -fPIC if $host_cpu matches m68*. 1998-03-08 Gordon Matzigkeit * Release 1.1. * ltmain.in: I like `here documents' a lot, but apparently they are so badly handled by old and buggy /bin/sh's, that replacing `cat < * ltconfig.in: Copy the contents of ltmain.sh into the generated libtool. This should more than halve the execution times on old or buggy /bin/sh systems, such as HP-UX 9 and SunOS 4.1.4. From Tom Lane. 1998-03-05 Gordon Matzigkeit * libtool.m4 (AM_ENABLE_SHARED, AM_ENABLE_STATIC): Add support for the `default' package, so that people can control unnamed packages. (LD): Only add an ABI flag under IRIX 6.x, since IRIX 5.x doesn't support them. From Alexandre Oliva. 1998-03-01 Gordon Matzigkeit * ltconfig.in: Port to UnixWare 2.x. From Christopher Olsen. 1998-02-25 Gordon Matzigkeit * ltmain.in (compile): For consistency, honour the `-static' flag during compilation. 1998-02-23 Brendan Kehoe * libtool.m4 (AM_ENABLE_SHARED, AM_ENABLE_STATIC): For --enable-shared, heed the value of $PACKAGE from AM_INIT_AUTOMAKE if given as the argument for the library to be built shared. 1998-02-20 Gordon Matzigkeit * libtool.m4, ltconfig.in (NM): Fix up a typo confusion between $ac_dir and $dir. Reported by Akim Demaille. * ltmain.in (link): Don't allow both `-version-info' and `-release'. Reported by Danny Backx. 1998-02-18 Gordon Matzigkeit * Makefile.am (noinst_SCRIPTS): Remove lineno from distribution. * lineno: Remove from distribution, as it is no longer needed. * Makefile.am ($(srcdir)/ltconfig.in, $(srcdir)/ltmain.sh): Rewrite these rules not to use config.status or lineno. This makes things simpler, and reduces dependencies, so that the scripts are rebuilt and installed in srcdir only when necessary. Reported by Stephan Kulow. * tests/sh.test (scripts): Remove the lineno script, since it is no longer distributed. * tests/assign.test, if.test, test-e.test: Even though 15 tests looks impressive, these are now redundant. Remove them from the distribution. * tests/sh.test: Do what assign.test, if.test, and test-e.test used to do. 1998-02-16 Gordon Matzigkeit * libtool.m4, ltmain.in, ltconfig.in: Correctly identify absolute directory names on MS-DOS. Suggested by Bob Friesenhahn. * ltconfig.in, ltmain.in, libtool.m4: Change a bunch of `sed N!d' commands to `sed Nq', for efficiency. * ltmain.in: Only egrep the first few lines of files in order to determine if they were libtool-generated. This prevents egrep(1) from taking forever to look at a 10MB binary on Solaris. From Stephan Kulow. * tests/defs: Correctly identify absolute directory names on MS-DOS. Suggested by Bob Friesenhahn. 1998-02-11 Gordon Matzigkeit * ltconfig.in (no_undefined_flag): Add a flag to declare under Solaris that the library should not have any undefined references. Suggested by Bob Friesenhahn. * ltmain.in (mkdir): Fix one more mkdir race. From H.J. Lu. 1998-02-08 Gordon Matzigkeit * ltconfig.in, ltmain.in (striplib, old_striplib): Ditto. * ltconfig.in (profile_flag_pattern): Get rid of dead code. 1998-02-07 Gordon Matzigkeit * libtool.m4 (AM_ENABLE_SHARED, AM_ENABLE_STATIC): New macros to modify the `--enable-shared' and `--enable-static' defaults in the configure script. This works a lot better than the old `enable_shared' and `enable_static' variables did. Reported by Bob Friesenhahn. * tests/suffix.test (extensions): Added GNAT (GNU Ada Translator) suffices, `.ada', `.ads', `.adb'. From Samuel Tardieu. 1998-02-07 Samuel Tardieu * ltmain.in: Recognize .ada, .ads and .adb as known suffixes (they are used by GNAT, the GNU Ada compiler). 1998-02-06 Gordon Matzigkeit * ltconfig.in: Turn on IRIX shared libraries again! * libtool.m4 (LD): Use file(1) to discover which ABI we're using on IRIX, and propagate the correct linker flag. From Jim Wilson. * ltconfig.in, ltmain.in (Xsed): `arg=-n; echo "$arg" | sed ...' gives problems, because the `-n' is interpreted as an option to echo(1). So, use `echo "X$arg" | sed -e 's/^X//' ...' everywhere, via the $Xsed convenience variable. Suggested by H.J. Lu. 1998-02-02 Gordon Matzigkeit * ltconfig.in: Turn off IRIX shared library support until 32-bit and 64-bit ABI differences can be resolved. 1998-01-28 Gordon Matzigkeit * libtool.m4 (LD): Reverse yesterday's change because `-old_ld' isn't accepted by GCC. 1998-01-27 Gordon Matzigkeit * ltconfig.in (soname_spec): Add in user-specified release numbers for every host system that supports an soname that differs from the linkname. * libtool.m4 (LD): Add `-old_ld' to the list of flags that need to be passed through on SGI. Reported by Chris Lee. * ltmain.in (release): Prepend a hyphen to the release number, and fix a typo because `-version-info' takes only 3 args. From H.J. Lu. 1998-01-25 Gordon Matzigkeit * ltconfig.in (library_names_spec): On Linux, use the user-specified release. * ltmain.in (link): Allow the user to specify a release number for the library using the `-release' flag. Suggested by H.J. Lu and Ian Lance Taylor. 1998-01-23 Gordon Matzigkeit * tests/Makefile.am (TESTS_ENVIRONMENT): Export some important environment variables. Reported by Ian Haggard. 1998-01-19 Gordon Matzigkeit * ltconfig.in (old_postuninstall_cmds): Reorder so that chmod happens after ranlib. From Markus F.X.J. Oberhumer. * ltmain.in (mode): Added `gcc*' and `*-gcc*' to the patterns that recognize compilers. From Pieter Schoenmakers. (link): Recognize `.a' files again. Suggested by Pieter Schoenmakers. 1998-01-18 Gordon Matzigkeit * ltmain.in (compile): Recognize `.asm' extension, for use with the nasm assembler. From Markus F.X.J. Oberhumer. * tests/suffix.test (extensions): Recognize `.asm'. From Markus F.X.J. Oberhumer. 1998-01-12 Gordon Matzigkeit * ltconfig.in (runpath_var): Use instead of `hardcode_runpath_var'. 1998-01-11 Gordon Matzigkeit * ltmain.in (finish): Add a better --finish message. Suggested by Kenneth Albanowski. * ltconfig.in, ltmain.in: Fix a few typos. 1998-01-03 Gordon Matzigkeit * ltmain.in (link): Quote the definition of $echo in the wrapper script. * ltconfig.in (export_dynamic_flag_spec): Use `--export-dynamic' instead of `-export-dynamic', which is not accepted by all GNU ld's. From Eiichi Takamori. * ltmain.in (install): Don't print silly `library stripping' warnings. Reported by Franois Pinard. 1997-12-19 Gordon Matzigkeit * ltmain.in: Don't forget to quote the CDPATH substitution. From Tor Lillqvist. 1997-12-18 Gordon Matzigkeit * ltconfig.in, ltmain.in (CDPATH): Unset this environment variable so that HP-UX shells, at least, don't print out the directory name after a `cd' command. From Tor Lillqvist. 1997-12-10 Gordon Matzigkeit * demo/Makefile.am (hardcode): Change a bunch of references to `$(LIBS)' to `-lm', since we no longer put -lm in LIBS. * demo/configure.in: Delete the test for libm, since it is standard on every system. * demo/Makefile.am (libhello_la_LDFLAGS): Change to include -lm, in accordance with new inter-library dependency code. * ltmain.in (dependency_libs): Added to help people link programs without having to explicitly specify inter-library dependencies. * ltconfig.in (COLLECT_NAMES): Oops... I forgot to apply the AIX 3 restriction to the generated libtool script. Reported by Stefan Westerfeld. 1997-12-05 Gordon Matzigkeit * ltconfig.in (thisdir): Quote $echo in the generated libtool script for HP-UX. From Markus F.X.J. Oberhumer. * ltmain.in (link): Recognize the `.s' suffix. From Markus F.X.J. Oberhumer. * ltconfig.in (link_static_flag): Don't quote ${wl} on HP-UX because link_static_flag is never evaled. From Eric Backus. * tests/suffix.test (extensions): Recognize `.s'. From Markus F.X.J. Oberhumer. 1997-12-01 Gordon Matzigkeit * demo/Makefile.am (helldl_DEPENDENCIES): Add `libhello.la' to our dependencies so that parallel builds work correctly. From Jim Meyering. * Makefile.am ($(srcdir)/ltconfig, $(srcdir)/ltmain.sh): Rewrite these rules so that they are parallelizable. Reported by Jim Meyering. * ltconfig.in (ltecho): We need special handling to quote the `echo' variable itself. From Alexandre Oliva. 1997-11-29 Gordon Matzigkeit * ltconfig.in (COLLECT_NAMES): Enable this workaround for a broken collect2 only on AIX 3. This avoids problems on other AIX versions. Reported by Stefan Westerfeld. * ltmain.in, ltconfig.in (finish_eval): Variable like finish_cmds, except it is a single command which is evaled, and not shown. * ltconfig.in: Port to AmigaOS. From Joop van de Wege. * ltmain.in (echo): Delete preamble to check for a working echo, since we just use the one included in the generated libtool. * ltconfig.in (echo): Include this definition in the generated libtool script. 1997-11-28 Gordon Matzigkeit * ltconfig.in, libtool.m4 (NM): Add /usr/ccs/bin to the PATH before checking. From Kaveh R. Ghazi. (NM): Delete an extraneous egrep from ltconfig. * ltconfig.in (finish_cmds): Change back to using `ldconfig -n'. This makes Linux behave like other systems, which is more in line with what libtool needs. 1997-11-27 Gordon Matzigkeit * ltmain.in: Change a whole bunch of `progname' variables to `modename'. This is for clarity, and to fix a tiny typo in finish mode. * libtool.spec (Name, Version): Ditto. * configure.in (AM_INIT_AUTOMAKE): Use PRCS to automatically generate the proper package name and version number. * ltconfig.in (gnu_ld_acts_native): Treat GNU ld like the native linker on SunOS 4.x. Suggested by Alexandre Oliva. (deplibs): Change the defaults all over, since most systems cannot handle inter-library dependencies. * libtool.m4, ltconfig.in (NM): Only look at the first line of the output from NM when determining whether it supports a command line option. This prevents false positives on OSes which ignore invalid flags, like HP-UX, which prints `nm: unknown option "B" ignored'. Reported by Kaveh R. Ghazi. * ltconfig.in (finish_cmds): On Linux, update ld.so.cache by removing the `-n' flag from ldconfig. Suggested by Kenneth Albanowski. * Makefile.am (maintainer-checkin, maintainer-release): New commands to reap the full benefit of using PRCS to maintain libtool version numbers. * ltconfig.in, ltmain.in (global_symbol_pipe): Explicitly cast all addresses to __ptr_t. This fixes a bug due to a strict IRIX compiler. Suggested by Kaveh R. Ghazi. 1997-11-23 Gordon Matzigkeit * ltmain.in (echo): For aesthetics, avoid using `$echo' when `echo' will do *exactly* the same thing. This prevents ugly `printf %s\n timestamp > some.lo' commands from appearing in the libtool output. (link): Delete the `-allow-undefined' flag because it is now the default. Make `-no-undefined' in order for people to declare that a library is entirely self-contained. This prevents maintainers from accidentally creating shared libraries that won't work on AIX. Reported by Stefan Westerfeld and Danny Backx. * ltconfig.in (echo): Use an echo variable, just as in ltmain.in, because we need it for quoting substitutions. For most of the script, though, use the default echo, just like Autoconf does. Without this patch, character \001 ends up in global_symbol_pipe. Reported by Lars Hecking and Jrgen Fluk. * ltmain.in (echo): Set default to `echo=echo'. Ooops. That's what you get for testing obscure code paths and forgetting to revert to the original version. Reported by Danny Backx. 1997-11-14 Gordon Matzigkeit * ltconfig.in (hardcode_libdir_flag_spec): Set to `-R' for FreeBSD 2.2. From Sean Kelly. (postuninstall_cmds, old_postuninstall_cmds): Commands to run after uninstall mode deletes the libraries. Suggested by Joop van de Wege. (export_dynamic_flag_spec): On HP-UX, add the `${wl}-E' export_dynamic_flag_spec. Reported by Matthias Hoelzer. 1997-11-11 Gordon Matzigkeit * ltconfig.in, ltmain.in (sed_quote_subst): Oops. We forgot to quote backticks. Reported by Joop van de Wege. * tests/quote.test: Add backticks to the backslashify test. 1997-11-09 Gordon Matzigkeit * ltconfig.in (symcode): On IRIX, don't extract undefined symbols. When a function is inlined by G++, references to it are still marked as undefined in the object file. This means that our symbol file causes undefined references, because there are actually no matching global symbols. Reported by Paul Kendall. 1997-11-08 Gordon Matzigkeit * ltconfig.in: Don't forget to redirect the COLLECT_NAMES libtool script fragment to the generated libtool, rather than to stdout. 1997-11-07 Gordon Matzigkeit * libtool.m4 (LD): Add a more sophisticated test to determine the ABI flag on IRIX 6. Suggested by Lars Hecking and Ian Lance Taylor. * ltconfig.in, ltmain.in (COLLECT_NAMES): Only export this variable if we are running under AIX. Otherwise, we tickle a g++ bug under IRIX. From Paul Kendall. * Change bug reporting address to . * ltconfig.in (allow_undefined_flag): OSF/1 3.x also requires a wildcard argument to `-expect_unresolved'. From Stephan Kulow. 1997-11-06 Gordon Matzigkeit * ltmain.in (link): Use libname_spec. * ltconfig.in (pic_flag): Somehow, the HP-UX pic_flag (`+Z') was dropped between libtool-1.0 and now. Add it back in. Reported by Akim Demaille. Integrated more patches for OS/2. From Jeff Freedman. (libname_spec): New variable for OSes that don't require their libraries to look like `libNAME.a'. * ltmain.in (link): Only use global_symbol_pipe if it has been defined. From Stephan Kulow. * ltconfig.in (global_symbol_pipe): Protect C fragment under C++ compilers. From Stephan Kulow. * Makefile.am ($(srcdir)/acinclude.m4, $(srcdir)/demo/acinclude.m4): Change rules to use LN_S so that they can be run on any system. * ltconfig.in (archive_cmds): For NetBSD, don't include deplibs. From Dieter Baron. * ltmain.in (mkdir): Check that the directory doesn't exist before we exit with error, so that we don't get races during parallel builds. From H.J. Lu. (fbsd_hideous_sh_bug): Apparently, some FreeBSD /bin/sh's have a bug that will empty base_compile unless we do this dummy assignment. From Marc van Kempen. 1997-10-22 Gordon Matzigkeit * libtool.m4 (libtool_shared, libtool_static): Fixed logic error to reenable override of libtool's defaults by setting enable_shared or enable_static in configure.in. Reported by Tom Tromey and Stephan Kulow. * ltmain.in (link): Add explicit support for compiler options that begin with `+'. Reported by Aubert Pierre. 1997-10-20 Gordon Matzigkeit * ltmain.in: Silly me. Change a bunch of occurances of "* $dir *" into *" $dir "*. * ltconfig.in (pic_flag): PIC is the default for AIX. From Mark Kettenis. It is also the default for OSF/1. * demo/Makefile.am (objdir): Quote double-quotes. From Mark Kettenis. * ltconfig.in (global_symbol_pipe): This variable is not double-evaled, so it should not be double quoted. From Mark Kettenis. 1997-10-19 Gordon Matzigkeit * ltconfig.in (LD): Same as below. * libtool.m4 (LD): Set LD if we discover an absolute path to GNU ld. This prevents breakage when `$CC -print-prog-name=ld' returns an absolute directory name. Reported by Ulrich Drepper. * ltconfig.in: Port to OS/2 using EMX. From Jeff Freedman. * ltmain.in (link): Use old_archive_from_new_cmds. * ltconfig.in (old_archive_from_new_cmds): New variable to support DLL libraries. * ltmain.in (link): Only `eval' export_dynamic_flag_spec if it is not empty. Reported by Stephan Kulow. 1997-10-18 Gordon Matzigkeit * ltconfig.in (objdir): Use the .libs directory on all systems for which that name is valid, and _libs on the others (like MS-DOS). Suggested by Juergen Erhard. 1997-10-14 Gordon Matzigkeit * ltmain.in (link): Added a bit more inter-language support to the symbol file generation process. Instead of complaining about unrecognized argument suffices, pass them to the linker. This prevents libtool from barfing on mandatory arguments to linker flags. Reported by Michael Tiemann. 1997-10-09 Gordon Matzigkeit * ltmain.in (link): Change the wrapper script to follow symlinks in order to find thisdir. This should put the final nail in the coffin for problems with wrapper scripts. From Ian Lance Taylor. 1997-10-07 Gordon Matzigkeit * ltmain.in: Change a few `$echo' commands into `$show' to make --silent mode behave as advertised. * ltconfig.in (allow_undefined_flag): On OSF/1 4.x, use `-expect_unresolved \*'. From Christian Mondrup. * ltmain.in (install): Change install mode to allow a specified /bin/sh argument at the beginning of the install_prog. Also, specify the shell to run when invoking libtool recursively for finish mode. From Chris Provenzano. * libtool.m4 (LIBTOOL): Change definition to include $(SHELL). From Chris Provenzano. * ltconfig.in: Port to UTS 4.x. From Alistair Crooks. * demo/Makefile.am (hc-libflag): Add rules to make this binary for hardcode.test. * tests/hardcode.test (hardcode_libdir_flag_spec): Check the hardcoding properties of the flag_spec, too. 1997-09-24 Gordon Matzigkeit * ltconfig.in (LD): As with libtool.m4, don't override LD. Do a whole bunch of ac_t quoting. 1997-09-24 Ian Lance Taylor * libtool.m4 (AM_PROG_LD): Don't override LD in the environment. 1997-09-21 Gordon Matzigkeit * libtool.m4, ltconfig.in (NM): Arguments to the for loop must be whitespace separated. This fixes a bug under FreeBSD's /bin/sh. From George Scott. * tests/defs, tests/Makefile.am (clean-local): Change =inst to _inst to fix portability on MS-DOS. From Robert Hoehne. 1997-09-20 Gordon Matzigkeit * ltmain.in (deplibs): When building shared libraries, always add -lc to deplibs. Reported by Andreas Jellinghaus. 1997-09-15 Gordon Matzigkeit * ltconfig.in, ltmain.in (COLLECT_NAMES): If the COLLECT_NAMES environment variable has not been set, set it to empty. This apparently fixes the AIX bug with GCC's collect2. Reported by Mark Kettenis. * demo/Makefile.am, ltmain.in, tests/hardcode.test (objdir): Changed objdir variable .libs to _libs. This is another MS-DOS portability fix. Suggested by Robert Hoehne. * tests/hardcode.test (objdir): New variable to simplify change from .libs to _libs (MS-DOS portability fix). 1997-09-13 Gordon Matzigkeit * ltconfig.in, ltmain.in (hardcode_minusL): Fix typo by renaming hardcode_minusL to hardcode_minus_L. Also add FreeBSD hardcode_libdir_flag_spec. From Paul Traina. * ltmain.in (link): Honour multiple `-rpath' flags when linking programs. Suggested by Bengt Martensson. Quote appearances of $echo in the wrapper script. From Alexandre Oliva. * Makefile.am, configure.in, tests/tlibtool: Use ltmain.in instead of ltmain.sh.in. * ltmain.in: Rename ltmain.sh.in to ltmain.in. This fixes a portability problem (on MS-DOS, of all places!). From Robert Hoehne. 1997-09-11 Gordon Matzigkeit * ltmain.sh.in (link): Do not transform libtool objects to regular objects if we did not build old libs. Reported by Tomas Hiller. 1997-09-05 Gordon Matzigkeit * demo/Makefile.am (hell_debug_LDFLAGS): Change hell.static to hell.debug in order to reflect the new static linking semantics. * ltmain.sh.in (link): Add new `-all-static' flag to prevent all dynamic linking. The old `-static' flag just prevents dynamic linking against libtool libraries. Suggested by Bengt Martensson. * ltconfig.in (with_gnu_ld): Add a test to make sure that we are actually using GNU ld. This fixes an inconsistency when running ltconfig without using libtool.m4. Reported by Ulrich Drepper. (global_symbol_pipe): Delete symbols that are not valid C identifiers. Reported by Johan Danielsson and Bengt Martensson. * tests/demo-exec.test, tests/demo-inst.test: Change references from hell.static to hell.debug. * tests/quote.test (echo): Add the same Digital Unix echo test fixes as the ones to ltmain.sh.in from Todd Kover. * tests/if.test, tests/test-e.test (scripts): Add ../lineno to the scripts we check. * tests/if.test: Check for accidental use of test X$something rather than test "X$something". 1997-09-04 Gordon Matzigkeit * ltmain.sh.in (echo): Quote all the uses of `echo' in all eval statements. Reported by Bengt Martensson and Alexandre Oliva. (echo): Need to surround test args with double quotes, or the echo test fails on Digital Unix 4.0. From Todd Kover. 1997-08-28 Gordon Matzigkeit * ltmain.sh.in (echo): Change test to one that uses printf. This works on AIX, which has the same problems that Solaris does, but no working echo program. * tests/quote.test (echo): Change test to version that uses printf. Be less strict about return results. 1997-08-27 Gordon Matzigkeit * ltmain.sh.in (link): Make sure that compile_command and finalize_command are always evaled. Quote any unknown linker flags we need to pass through. (compile): Use quoting for flags we pass. (echo): I hate Sun! The /usr/bin/echo on Solaris handles backslash sequences, which makes it impossible to do backslash quoting using echo and sed. So, we search for an echo that obeys the `echo '\t'` = '\t' equality. Then we use `$echo' everywhere in ltmain.sh. Put tabs back into the ${IFS= } sequences. Emacs untabify is libtool bane. * ltconfig.in: Quote all variable values that may contain metacharacters creating the libtool script. This provides complete protection, so that even single-quotes may appear inside a libtool variable value. * ltmain.sh.in (link): Quote finalize_command before putting it in the wrapper script. * tests/quote.test (echo): Add the test for a non-backslash-mangling echo. 1997-08-26 Gordon Matzigkeit * ltmain.sh.in (sed_quote_subst): Change the quoting procedure again. I think that the new one is robust for *all* characters, including whitespace and metacharacters. * tests/quote.test: New torture test for libtool metacharacter quoting. 1997-08-25 Gordon Matzigkeit * ltmain.sh.in: Change quoting procedure because some shells cannot handle `]' in scan sets. From Ian Dall. 1997-08-22 Gordon Matzigkeit * ltmain.sh.in (execute): Added -dlopen flag handling. Suggested by Alexandre Oliva. 1997-08-21 Gordon Matzigkeit * ltmain.sh.in (link): Change executable wrapper to fix up value of thisdir, as well as progdir, if the $0 path doesn't work. This guarantees that shlibpath_var is set correctly. Add support for execute mode. * ltmain.sh.in (execute): New mode to automatically set shlibpath_var, which allows easy debugging of uninstalled executables and libraries. Suggested by Kenneth Albanowski. 1997-08-20 Gordon Matzigkeit * Makefile.am ($(srcdir)/ltconfig): Use lineno. * configure.in: Add AM_PROG_AWK for lineno. * lineno: New program to automatically put line numbers in ltconfig. * libtool.m4, ltconfig.in (AM_PROG_LD): Yet Another Rewrite, which incorporates the results of `gcc -print-program-name=ld'. Suggested by Alexandre Oliva. 1997-08-14 Gordon Matzigkeit * ltmain.sh.in: Accept `--quiet' and `--silent' flags to turn off command echoing. From Juergen A. Erhard. (compile): Recognize the Objective C `.m' extension. From Juergen A. Erhard. (compile): Suppress error output from the second compilation (if any) so that we don't get those frustrating duplicate error messages. * tests/suffix.test (extensions): Added Objective C extension, `.m'. 1997-08-12 Gordon Matzigkeit * ltconfig.in: Added messages to config.log to describe what sort of test we are running. (pic_flag): Added a sanity check for pic_flag. This should fix bugs reported using the cc bundled with HP-UX 10. Suggested by Bruno Haible and Akim Demaille. 1997-08-01 Gordon Matzigkeit * ltmain.sh.in (link): Add -dlopen and -dlpreopen support for libtool objects. This means that dlopened modules no longer need to be shared libraries. * ltconfig.in (pic_flag): GCC on IRIX 6 always builds PIC. Reported by Ian Lance Taylor. * libtool.m4 (LD): Always add `-n32' to the linker if we are using GCC on IRIX 6. Reported by Ian Lance Taylor. 1997-07-30 Gordon Matzigkeit * libtool.m4 (AM_PROG_LIBTOOL): Explicitly check enable_shared and enable_static rather than just enableval. This allows configure.in scripts to set their own defaults. Suggested by Tommy Reilly. 1997-07-29 Gordon Matzigkeit * ltmain.sh.in: Add NLS environment variable handling copied from ltconfig.in. Reported by Akim Demaille. (link): If allow_undefined_flag is not supported, then turn on old libraries. Reported by Akim Demaille. * demo/dlmain.c (main): Use dld_preloaded_symbol_count to display a message about the sortedness of the symbol table. * ltconfig.in (nlist): Use an nlist convenience variable, so that code can be shared directly with ltmain.sh.in. * ltconfig.in, ltmain.sh.in (dld_preloaded_symbol_count): Count up the number of symbols in the dld_preloaded_symbols. Set to `-1' if the list wasn't both sorted and counted. This allows applications to do a quick binary search, if they are so inclined. 1997-07-25 Gordon Matzigkeit * ltmain.sh.in (link): Remove code for `-version-file', since it has been long-deprecated. Disable static linking if hardcode_direct is unsupported and there is no working link_static_flag. This provides correct behaviour for all cases on AIX 3, regardless of whether collect2 is broken or not. Reported by Mark Kettenis. * ltconfig.in: Fix typo in test polarity. From Mark Kettenis. 1997-07-24 Gordon Matzigkeit * ltconfig.in (hardcode_direct): Set to `unsupported' if aix3 uses a broken collect2. Adapted out of test results from Mark Kettenis. (link_static_flag): Make sure the link_static_flag actually works with a trivial binary. * ltmain.sh.in, ltconfig.in (export_dynamic_flag_spec): Renamed from export_dynamic_flag because we eval it in ltmain.sh. * ltmain.sh.in (link_static): Don't eval link_static_flag. * demo/dlmain.c (main): Change function prototype to be KNR compatible. From Kaveh R. Ghazi. * ltmain.sh.in (link): Use no_builtin_flag. This works around conflicting definitions of builtin functions with at least GCC. Reported by Kazuhiro Sasayama. * ltconfig.in (no_builtin_flag): New flag to turn off builtin functions when compiling an object file. (pipe_works): Use it. * tests/demo-exec.test (status): Use status variables so that we try to execute all the programs. 1997-07-23 Gordon Matzigkeit * ltconfig.in (pic_flag): According to the libg++ 2.7.2 configure script, DEC alpha CPUs are PIC-only, as well. Reported by Kevin Jacobs. 1997-07-21 Gordon Matzigkeit * ltconfig.in, ltmain.sh.in: Replace all occurances of "sed 'X; Y'" with "sed -e 'X' -e 'Y'". * ltmain.sh.in (link): Finish full integration for `-dlopen' and `-dlpreopen'. Fix two silly typos where I used a compile_command in place of a finalize_command, and vice versa. Change the wrapper script to check a hardcoded path only if the argv[0] method fails. This is a compromise for the previous two patches, and should solve the majority of problems with wrapper scripts. From Kenneth Albanowski. (link): Change a reference to hardcode_libdir_colon_separated to use the new hardcode_libdir_separator variable. * demo/Makefile.am (helldl_LDFLAGS): Add `-export-dynamic' and `-dlpreopen' for building helldl. * demo/dlmain.c (main): Succeed, even if none of the libhello symbols have been preloaded. 1997-07-20 Gordon Matzigkeit * ltconfig.in (global_symbol_pipe): Add `U' to the accepted global symbol types. This means that we will get duplicate symbols, but we'll also be sure to get all global symbols used by the program. * ltconfig.in (pipe_works), ltmain.sh.in (link): Sort and make symbol output unique. 1997-07-19 Gordon Matzigkeit * ltconfig.in (pipe_works): Check to make sure our guessed global_symbol_pipe actually works. * ltmain.sh.in (link): Revert change from Kenneth Albanowski. The wrapper scripts are more reliable when they just use the argv[0] value. Generally, when the argv[0] method doesn't work, the user is trying to do something weird with an uninstalled binary, and should try a different approach. * ltconfig.in, ltmain.sh.in (CC): Always use `$CC' instead of `$cc'. This fixes a FreeBSD bug. Reported by Chuck Robey, and others. 1997-07-14 Gordon Matzigkeit * ltmain.sh.in (link): In wrapper scripts, hardcode the current directory to prevent phony argv[0] values from screwing up our program. From Kenneth Albanowski. 1997-07-13 Gordon Matzigkeit * Makefile.am (demo_distfiles): Add demo/dlmain.c to the distribution. 1997-07-12 Gordon Matzigkeit * demo/Makefile.am: Add helldl, made from dlmain.c, to demostrate `-dlopen' usage. * demo/dlmain.c: New file to demonstrate preloaded modules. * ltmain.sh.in (link): Add `-dlopen' flag to preload dynamic modules, even on static platforms. Use `$NM' and `$global_symbol_cmd' to extract symbols from required files. (dlname): Delete dlname mode entirely. It is rendered obsolete because the `.la' file format is now a public interface. * ltconfig.in (NM): New variable for BSD-compatible nm program. (global_symbol_cmd): Pipeline to extract global symbols from the nm output. * ltmain.sh.in: The .la file header should depend on `ltmain.sh', not `$PROGRAM'. (link): Make sure $export_dynamic_flag is eval'ed before it is used. * tests/demo-exec.test, tests/demo-inst.test: Check the new helldl program, too. 1997-07-11 Gordon Matzigkeit * libtool.spec: New Red Hat Package Manager specification file in order to help people prepare distributions of libtool for Linux. * ltmain.sh.in: Eliminate two accidental uses of the NONE magic value. These were breaking libtool's behaviour when no mode is specified. * tests/nomode.test: New test to make sure there is correct behaviour when we don't specify a mode. 1997-07-08 Gordon Matzigkeit * Release 1.0. * ltconfig.in: On SunOS, append /usr/etc to the PATH before running ldconfig; on *BSD, append /sbin. This was done in line with the Linux change suggested by Kenneth Albanowski. * demo/Makefile.am (hardcode_tests): Aesthetic change to alphabetize order of compiling the hardcode tests. * Makefile.am (EXTRA_DIST): Delete README-automake. * README-automake: Remove from distribution. 1997-07-02 Gordon Matzigkeit * ltmain.sh.in (link): In the executable wrapper, strip trailing colons from the shlibpath_var because some ld.so's, notably OpenBSD 2.0's (!), don't parse colon-terminated values correctly. From Tim Pierce. 1997-07-01 Gordon Matzigkeit * ltmain.sh.in, ltconfig.in: Eliminate uses of the NONE magic variable value. Use an empty variable instead. * ltconfig.in (with_gcc, with_gnu_ld): Do the tests for the C compiler and linker if the variables are unset, or if they are not GNU C and ld. (RANLIB): Eliminate redundant `if' statement. * configure.in: Use AM_PROG_LD. * libtool.m4 (AM_PROG_LD_GNU): New macro to determine if LD is GNU ld. (AM_PROG_LD): Rename AM_PATH_PROG_LD to AM_PROG_LD. Parameterize so that the user can specify `--with-gnu-ld' or `--without-gnu-ld' to indicate his preference. (AM_PROG_LIBTOOL): Use it. 1997-06-30 Gordon Matzigkeit * ltconfig.in: Append /sbin to the path before running ldconfig on Linux. This helps superusers who haven't set their PATH correctly. Suggested by Kenneth Albanowski. * tests/if.test: New test to make sure that we haven't forgotten to follow an `if' statement with a `test' command. This should avoid the majority of hard-to-track bugs. 1997-06-29 Gordon Matzigkeit * ltmain.sh.in: Change all the `eval "$run ..."' sequences to `$run "eval ..."'. Change all `$ln_s ...' sequences to use `(cd /dir && $LN_S ...)'. This is the sequence recommended by the Autoconf manual, and should avoid any problems on older machines. Eliminate all uses of `cp -p'. Reported by Akim Demaille. (install): Use `test $# -gt 0' instead of `test -n "$1"'. * ltconfig.in (LN_S): Add test to see if `ln -s' works. * libtool.m4: Increment serial number, and require AC_PROG_LN_S. 1997-06-26 Gordon Matzigkeit * ltmain.sh.in (link): Add missing `test' statement. Reported by Akim Demaille. 1997-06-24 Gordon Matzigkeit * libtool.m4 (LD): Consistently use ac_cv_path_ld instead of am_cv_path_ld. From Tim Pierce. 1997-06-20 Gordon Matzigkeit * ltmain.sh.in: Redo two robustness fixes. Alexandre had the correct approach, but I botched them. * ltconfig.in (dynamic_linker): Disable shared libraries on MkLinux unless GNU libc is in use. Reported by Akim Demaille. 1997-06-19 Gordon Matzigkeit * ltmain.sh.in (install): Add a missing `test' command. Reported by Joel Weber. Miscellaneous fixes to improve robustness. From Alexandre Oliva. * tests/demo-conf.test (CONFIG_SITE): Set to /dev/null, so that the config.site file doesn't mess up our prefix. Reported by Joel Weber. * tests/demo-inst.test: Always run both hell.static and hell. * tests/demo-conf.test: Always remove the local config.cache, but run `make distclean' only if the Makefile exists. Otherwise, the demo directory is not cleaned up if a user uses their own config.cache. Reported by Joel Weber. 1997-06-14 Gordon Matzigkeit * ltmain.sh.in (link): Create invalid libtool objects when partial linking if we don't have PIC. From Jeff Dairiki. (install): Fix bug if libtool object is installed to a file name without directory components. From Jeff Dairiki. 1997-06-13 Gordon Matzigkeit * Makefile.am (demo/configure): Fix up rules to run autoconf. (aclocal.m4): Now we depend on our own libtool.m4. * configure.in (AM_PATH_PROG_LD): Use it. * libtool.m4 (AM_PATH_PROG_LD): New macro to find the linker used by the C compiler. (AM_PROG_LIBTOOL): Use it. * ltmain.sh.in (install, uninstall): Support installing and uninstalling `.lo' files. From Jeff Dairiki. 1997-06-11 Gordon Matzigkeit * Makefile.am (ltconfig, ltmain.sh): Only move if $(srcdir) is not the current directory. Don't regenerate every time the package is reconfigured. Reported by Tom Tromey. (MAINTAINERCLEANFILES): Added ltconfig, ltmain.sh, so that $(srcdir) is not messed with during a regular clean. 1997-06-10 Gordon Matzigkeit * Makefile.am (ltconfig, ltmain.sh): Be sure to move these files into $(srcdir) once they are created. * ltmain.sh.in (link): Disable building static libraries. People should use their favourite AR and RANLIB commands. Disable building old-style objects if `--disable-static' is given. Suggested by Tom Lees and Stephan Kulow. 1997-06-08 Gordon Matzigkeit * ltconfig.in (host_cpu, host_vendor, host_os): Patch up definitions, to allow for the fact that the host_os may contain hyphens (as in linux-gnu). From Scott Goehring. * ltmain.sh.in (link): Move the `dlname' setting closer to the top of the file. Suggested by David Mosberger-Tang. Symlink the libtool archive into the `.libs' directory so that it can be found by programs that want to find a library's dlname by searching LD_LIBRARY_PATH. Reported by David Mosberger-Tang. 1997-06-06 Gordon Matzigkeit * Tell people to report bugs to the new libtool mailing list, . 1997-06-05 Gordon Matzigkeit * ltconfig.in (allow_undefined_flag): New variable that implements `-allow-undefined'. (archive_cmds): Enable C++ constructors for FreeBSD 2.2. From David Nugent. * ltmain.sh.in (link): Accept new `-allow-undefined' flag when building libtool libraries. This tells libtool to allow unresolved symbols to exist in shared libraries. Basically, this turns off shared libraries on AIX. Suggested by Ian Lance Taylor. 1997-05-26 Gordon Matzigkeit * libtool.m4 (LD): On at least IRIX, many different flags need to be propagated to the linker if they are part of the compiler command line. Reported by Anthony Green. 1997-05-10 Gordon Matzigkeit * ltconfig.in: Trivial port to FreeBSD 3. From David Nugent. 1997-04-25 Gordon Matzigkeit * ltmain.sh.in (link): Remove all traces of `-whole-archive', `-no-whole-archive', and libtool convenience libraries. They were more trouble than they're worth. If these are ever reimplemented, they need more careful attention to make portable. * libtool.m4, ltconfig.in: Added a `--disable-static' flag to turn off static library creation. From Tom Lees (who finally convinced me that it was the Right Thing to do). 1997-04-22 Gordon Matzigkeit * ltmain.sh.in (hardcode_runpath_var, runpath_var): Use them, if the linker has no -rpath flag. Quote the values we use to set runpath_var and shlibpath_var. (link): Use libobjlibs for libtool convenience libraries. * ltconfig.in (hardcode_runpath_var, runpath_var): Add new variables to describe linkers that honour `LD_RUN_PATH'. (host_cpu, host_os): Use these more specific variables, rather than the full canonical host system name. * ltmain.sh.in (dlname): Distinguish between missing `-export-dynamic' and when the library is only statically linked. 1997-04-21 Gordon Matzigkeit * ltconfig.in: Trivial port to OpenBSD by making it an alias for NetBSD. From Tim Pierce. 1997-04-16 Gordon Matzigkeit * ltconfig.in: Temporary measures to check for a broken collect2 program. Right now, we just see if we're using GCC on AIX 3. * tests/hardcode.test: AIX also has arbitrary limits on the line length of input to fgrep(1), so we need to translate NUL characters to newlines in order to properly detect embedded `.libs'. From Bruno Haible. Also redirect stderr to /dev/null, so that AIX users don't get worried by `fgrep: Maximum line length of 2048 exceeded.'. 1997-04-13 Gordon Matzigkeit * ltmain.sh.in (mode): Use `egrep -e' when inferring the operation mode. 1997-04-12 Gordon Matzigkeit * ltconfig.in (linker): Some GNU ld's don't accept `--version', but do accept `-v'. From Jukka Honkela. (ld_shlibs): AIX lossage may be settling down. AIX 3.2.5 ld does *not* hardcode direct libraries, but AIX 4.1.[45] ld does. 1997-04-07 Gordon Matzigkeit * ltconfig.in (hardcode_action): Fix silly logic error. From Bruno Haible. 1997-04-05 Gordon Matzigkeit * ltmain.sh.in (install): Relink if hardcode_action is `relink', rather than using complex conditionals based on the other hardcode variables. * ltconfig.in (hardcode_action): Set to `relink', not `immediate', if we can only hardcode existing directories. Rearrange conditionals to make the intent clearer, otherwise this can be one hellish piece of code for the already-dizzy libtool maintainer. 1997-04-02 Gordon Matzigkeit * replfunc.m4: Delete from the distribution. Documentation now describes how to set LTALLOCA and LTLIBOBJS in your own configure.in. * ltmain.sh.in (link): Make sure a libtool library only counts as a shared library if its library_names are non-null. Use timestamps for .lo's when PIC is turned off, rather than symlinking to the real object. This helps invalid mixtures of PIC and non-PIC to fail. 1997-04-01 Gordon Matzigkeit * Makefile.am (EXTRA_DIST): Distribute libtool.prj. * Shameless plug: Changed source code management system from CVS to PRCS. * libtool.scm: Initial Guile implementation of libtool. * ltmain.sh.in: An unexpected inconsistency in my whole approach to shared libraries has proven that libtool needs to be completely rewritten if I'm going to give full shared library support for platforms that don't use the GNU C library version 2 (which to my knowledge currently only works on GNU Hurd and Linux/GNU systems). Porting the GNU C library should not be difficult, though. Platforms that don't have the dlopen(3) family of functions will need to install GNU DLD version 4 in order to build any kind of libraries at all. Unfortunately, DLD 4 won't be released for a while, because I maintain it, and I'm too busy working on libtool. I'll keep the old ltconfig/ltmain.sh implementation around for as long as I can, and continue applying bug fixes, so that I'll have a reasonable starting point for this new libtool implementation. It looks like this implementation will be even more complex than the original (pre-0.7) libtool. Initial estimates show that it may be up to 3 times slower, and 5 times larger than libtool-0.9. I'll probably have to rewrite it in Guile to get reasonable performance, which will severely limit its portability for a while. That will also introduce a bootstrapping issue, since the next release of Guile will use libtool to build shared libraries. So, if users want to have shared Guile libraries, they will have to configure Guile with `--disable-shared', compile it, install it, then reconfigure Guile with `--enable-shared' and repeat. I was hoping to get libtool 1.0 out the door by early April, but now it looks like it will take at least another year before it'll be usable by the public at large. April fools. libtool.scm doesn't exist yet, either. * ltconfig.in (verify_host): Remove redundant `Transform *-*-linux* to *-*-linux-gnu*'. From Bruno Haible. * tests/hardcode.test: AIX 3 doesn't have strings(1) so we need to do a funny tr and pipe the output to fgrep. From Bruno Haible. 1997-03-31 Gordon Matzigkeit * Makefile.am: Use the new AUTOMAKE and ACLOCAL variables. * ltmain.sh.in (link): Only fail if a convenience library doesn't exist, and the user specified -whole-archive. Fix shell quoting that was breaking @OUTPUT@ substitution. 1997-03-28 Gordon Matzigkeit * ltmain.sh.in (link): Use the hardcode_libdir_separator. Convenience libraries are libtool objects if we're not building libtool libs. * ltconfig.in (hardcode_libdir_separator): Added in case the linker only honours the last of the -rpath flags (but it can contain multiple colon-separated directories), such as on OSF/1. Reported by Carl D. Roth. * ltmain.sh.in (link): Set the dlname if -export-dynamic is given. (install, uninstall): Handle the dlname file separately. * ltconfig.in (export_dynamic_flag): Added to allow programs to use reflexive dlopens. * ltmain.sh.in: Include the mode name in any help messages. (dlname): New mode to give the name to be used with dlopen(3). * ltconfig.in (AR): Allow AR to be set by the user, and export it to ltmain.sh. * ltmain.sh.in: Remove broken profiled library support. Added `-whole-archive' and `-no-whole-archive' to manipulate convenience libraries. 1997-03-27 Gordon Matzigkeit * ltmain.sh.in (link): Allow the creation of static convenience libraries made of libtool objects. Suggested by David Mosberger-Tang. 1997-03-25 Gordon Matzigkeit * ltconfig.in: On AIX, libtool also needs to look for `B' symbols in nm output. These are global variable definitions. * ltmain.sh.in: Linking with -static should link against the linklib if old_library is empty (like it is on AIX). * ltconfig.in: Change the order of OS detection, so that linux-gnu* is detected before gnu*. * Makefile.am (libtool): Use the correct CC, RANLIB, LD, when generating libtool. From Carl D. Roth. * configure.in: Find out the user-supplied CC, LD, RANLIB. From Carl D. Roth. 1997-03-24 Gordon Matzigkeit * ltmain.sh.in: Linking with -static should link against the old library, not linklib. * README-automake: Updated to point to Automake 1.1m. 1997-03-15 Gordon Matzigkeit * demo/main.c: Use it. * demo/foo.h: Declare it. * demo/foo.c: Added definition of `nothing' so that we have an global variable definition, as well as functions. 1997-03-12 Gordon Matzigkeit * ltconfig.in: Make sure either enable_shared or enable_static is configured. Reported by Tom Tromey. * ltmain.sh.in: Bomb out if no library types are configured. 1997-02-22 Gordon Matzigkeit * ltconfig.in, ltmain.sh.in (hardcode_libdir_flag_spec): Renamed from `hardcode_libdir_flag'. (library_names_spec): Renamed from `lib_names'. * ltconfig.in, ltmain.sh.in (hardcode_action): Change value from `rpath' to `immediate'. * replfunc.m4: Add AM_FUNC_ALLOCA, AM_FUNC_MEMCMP, and AM_STRUCT_ST_BLOCKS. 1997-02-18 Gordon Matzigkeit * ltconfig.in: Transform *-*-linux* to *-*-linux-gnu* to support old-style config.guess scripts. 1997-02-17 Gordon Matzigkeit * ltmain.sh.in: Create objdir *before* linking a program into it. 1997-02-12 Gordon Matzigkeit * ltconfig.in: Any ld --version that returns GNU is probably a GNU ld. From Marcus Daniels. * libtool.m4: Added AM_REPLACE_FUNCS. 1997-02-11 Gordon Matzigkeit * ltconfig.in: Trivial port to *-*-osf4. From Bruno Haible. 1997-02-10 Gordon Matzigkeit * ltconfig.in: AIX 3 and 4 ld only hardcodes LIBPATH if -L is not specified. This behaviour is the same with both xlc and gcc. 1997-02-07 Gordon Matzigkeit * doc/platforms.texi: Yaay! We found a workaround for HP-UX /bin/sh buffer overflows. From Eric Backus. 1997-02-03 Gordon Matzigkeit * Release 0.9. * PLATFORMS, doc/platforms.texi, Makefile.am, doc/Makefile.am: Move PLATFORMS to doc/platforms.texi. * ltmain.sh.in (link): Use hardcode_libdir_flag to get a library directory into the resulting binary. Use hardcode_action, and make many simplifying changes to have compilation and finalization be consistent with each other. * ltconfig.in: Not so amazing! It's AIX cc that hardcodes direct libraries... gcc doesn't, though. (link_rpath_flag): Change link_rpath_flag to be hardcode_libdir_flag. (hardcode_action): New variable to simplify ltmain.sh. * tests/Makefile.am (TESTS): Do the full make sequence with --disable-shared, then without. * tests/demo-sttc.test: Configure the demo directory with --disable-shared. 1997-01-29 Gordon Matzigkeit * ltmain.sh.in: Change to take advantage of linkers that don't hardcode direct libraries. * ltconfig.in: Amazing! AIX 3 linker doesn't hardcode direct libraries, which makes it less buggy than AIX 4. Reported by Mark Kettenis. * demo/configure.in: Check for the math library. * demo/foo.c (foo): Change to use the `cos' function, so that we need to link against another library. * tests/hardcode.test: Rewrite to use fgrep on output from ``strings -a'' if using fgrep directly on the binary files fails. From Mark Kettenis. 1997-01-28 Gordon Matzigkeit * ltmain.sh.in (link): Export the PATH variable in order to find the program, rather than giving a full path. This helps give the program a less confusing value for argv[0]. * tests/hardcode.test: Make sure that ../demo/libhello.la really is a shared library before running hardcoding tests. 1997-01-26 Gordon Matzigkeit * Release 0.8. 1997-01-24 Gordon Matzigkeit * Makefile.am (demo_distfiles): Add demo/acinclude.m4 to the distribution. 1997-01-22 Gordon Matzigkeit * libtool.m4: For IRIX 6, ld needs -n32 if cc uses it. Reported by Bruno Haible. * ltconfig.in: IRIX ld does not hardcode direct libraries. Reported by Bruno Haible. 1997-01-18 Gordon Matzigkeit * ltconfig.in, ltmain.sh.in (hardcode_shlibpath_var): Allow new value, `unsupported', since most linkers do not allow you to use shlibpath_var for initial linking. * ltconfig.in: Lots of bug fixes from Bruno Haible. Set wl on OSF/1, fix definitions of hardcode_* variables. (archive_cmds): Fix not to use +h on HP-UX 9.x. Reported by Bruno Haible. * tests/demo-conf.test: Use the CONFIG_SHELL environment variable when running configure in the demo directory. From Bruno Haible. * tests/Makefile.am (clean-local): Make distclean in the demo directory, so that ``make clean; env CC=cc make check'' works as one would expect. * tests/demo-make.test: Fix typo (use $make instead of make). Reported by Akim Demaille. 1997-01-17 Gordon Matzigkeit * libtoolize.in: Handle explicit AC_CONFIG_AUX_DIR settings. Suggested by Akim Demaille. * libtool.m4: Change ltconfig line to use $CONFIG_SHELL when it is specified. Reported by Bruno Haible. 1997-01-16 Gordon Matzigkeit * demo/Makefile.am (hc-direct): Do better searching for the proper name to do a direct link. (hc-libpath): Make allowances if shlibpath_var cannot be used to find libraries at link time, such as on AIX. * Makefile.am (demo_distfiles): Remove ansi2knr.1 and ansi2knr.c. * demo/foo.c, demo/hello.c, demo/main.c: Change ANSI prototypes to KNR form, for better portability, and less ansi2knr hair. * demo/configure.in: Remove AM_FUNC_PROTOTYPES. * demo/Makefile.am: Remove ansi2knr from the AUTOMAKE_OPTIONS. * demo/ansi2knr.1, demo/ansi2knr.c: Removed these files. * ltmain.sh.in: Use 1>&2 consistently to direct errors and warnings to stderr. (compile): Fix missing single quote. * ltconfig.in (hardcode_direct): On Solaris at least, using DIR/libNAME.so does not hardcode DIR, so introduce a new hardcode variable to reflect that. * ltmain.sh.in (link): If linking with $link_static_flag fails, then retry without it, but still use the .a versions of uninstalled libtool archives. * tests/tlibtool: Rewrote to grab all the settings from the generated libtool script. * tests/hardcode.test: Make allowances if shlibpath_var cannot be used to find libraries at link time, such as on AIX. 1997-01-15 Gordon Matzigkeit * ltmain.sh.in (link): Eval $link_static_flag. Reported by Bruno Haible. * PLATFORMS: Add to distribution. Suggested by Bruno Haible. 1997-01-14 Gordon Matzigkeit * tests/demo-conf.test, tests/demo-inst.test, tests/demo-unst.test, tests/hardcode.test: Use $make instead of make. * tests/defs (make): Add definition of $make that uses the $MAKE environment variable, if set. Suggested by Bruno Haible. * tests/demo-unst.test (leftovers): Change the find command to ignore files beginning with a dot, as egrep -v doesn't seem to do the trick. Reported by Bruno Haible. 1997-01-13 Gordon Matzigkeit * ltconfig.in: Add support for SCO OpenServer 5.x. From Christopher Olsen. (can_build_shared): Initialize at the top of the file, so that shared libraries aren't built on platforms that don't support them. * tests/hardcode.test: Added a test to make sure that libtool's idea of hardcoding system linkers is correct. 1997-01-11 Gordon Matzigkeit * ltmain.sh.in, ltconfig.in, libtoolize.in, doc/libtool.texi: Update the copyright completion years. 1997-01-08 Gordon Matzigkeit * ltconfig.in: Port to IRIX 5.3, 6.2. 1997-01-06 Gordon Matzigkeit * ltconfig.in: HP-UX 9 support is the same as HP-UX 10, so the port is trivial. * libtoolize.in: Add --dry-run option, -n for short. 1997-01-03 Gordon Matzigkeit * ltmain.sh.in (link): On at least SunOS, /bin/sh doesn't understand "export something=val". From Bruno Haible. * tests/Makefile.am (distclean-local): Remove all files that the tests may have created. Reported by Bruno Haible. * For all tests, discover srcdir when running from the command line. * tests/demo-unst.test: Don't fail if make uninstall doesn't delete files beginning with a dot, since spurious .nfsXXX files may be present when running NFS. Reported by Bruno Haible. 1997-01-02 Gordon Matzigkeit * ltmain.sh.in (compile): Recognize valid source file suffixes for Fortran and C++. * tests/suffix.test: New test to guarantee that libtool compile recognizes valid source file suffices. 1996-12-17 Gordon Matzigkeit * ltmain.sh.in (link): Don't allow *._o and *.l_o to be valid object type suffixes, in spite of Automake's current ansi2knr implementation. Not all compilers allow non-`.o' suffixes. 1996-12-16 Gordon Matzigkeit * ltmain.sh.in (link): Delete the `libtool' version type. 1996-12-12 Gordon Matzigkeit * ltconfig.in: Use the full autoconf syntax when checking for GNU C. Delete library stripping program, until we have a correct test. 1996-12-11 Gordon Matzigkeit * ltconfig.in: On AIX 3, use /usr/ucb/nm, not /ucb/nm. From Mark Kettenis. 1996-12-09 Gordon Matzigkeit Reported by Charles Kerr: * doc/libtool.texi (Creating Object Files): Doc fix independant -> independent. * ltconfig.in (ld_shlibs): SunOS 4 doesn't support shared library dependencies. 1996-12-08 Gordon Matzigkeit * Release 0.7. * Makefile.am (EXTRA_DIST): Add README-automake to the distribution. * ltmain.sh.in (link): When linking libtool libraries, use standard objects if they are PIC. This prevents spurious warnings about invalid suffixes on AIX. * demo/Makefile.am: Rename libhell to libhello, so that we're not quite as offensive. * ltconfig.in: Remove unnecessary host validity checking. * ltmain.sh.in: Don't force people to use libNAME.la: SOMETHING.la is good enough (for consistency with *.a handling). * tests/demo.test: Break up into demo-conf.test, demo-make.test, demo-exec.test, demo-inst.test, and demo-unst.test, so that passes and failures are reported more quickly. * tests/link-2.test: Test to make sure that .lo files don't get built directly into programs. 1996-12-07 Gordon Matzigkeit * ltmain.sh.in (link): Accept files ending in .a as standard object files. Reported by Ulrich Drepper. Remove support for creating profiled libraries (for now). Transform all library objects into standard objects when linking a program. * ltconfig.in (thisdir): How embarrassing! An error in the regexp for finding the directory component of the script path. * tests/tlibtool: A typically-configured libtool script, that uses ../ltmain.sh.in for its backend. * tests/link.test: Make sure that it is legal to link against .a files. 1996-12-05 Gordon Matzigkeit * ltmain.sh.in (compile): Support `.S' (preprocessed assembler) files. Reported by Anthony Green. * libtoolize.in: Give clearer instrutions for how to update aclocal.m4. * ltconfig.in, ltmain.sh.in (link): Add support for creating reloadable objects. 1996-12-04 Gordon Matzigkeit * ltmain.sh.in (install): Fix passing -n flag to `libtool --finish'. (compile): Compile `.lo' and `.o' objects at the same time so that non-PIC objects (if they are available) can be used for linking into programs and creating static archives. Suggested by Ulrich Drepper. 1996-12-03 Gordon Matzigkeit * ltmain.sh.in (link): Give the full path to the libtool library when sourcing it. * ltconfig.in (old_striplib): Do a configuration test to determine if old-style libraries actually can be stripped or not. 1996-12-02 Gordon Matzigkeit * tests/demo.test: Try compiling the ../demo subdirectory, with no special options. * test-e.test: Check that we haven't used `test -e' anywhere in our portable shell scripts. 1996-12-02 Gordon Matzigkeit * ltconfig.in: Delete reference to ABOUT-LIBS. * tests: Added new subdirectory. * doc/libtool.texi: Doc fixes, and finished up the Configuring chapter. * ltmain.sh.in (link): Allow *._o and *.l_o to be valid object file suffixes, for Automake's ansi2knr implementation. New option -version-info replaces -version-file. [help]: Give a pointer to mode-specific help when appropriate. * ltconfig.in: Changed messages to correspond to AM_PROG_CC_STDC. * demo: Also test Automake's ansi2knr support. 1996-11-19 Gordon Matzigkeit * ltconfig.in: Bug fixes for AIX 4, and for static platforms. * ltmain.sh.in (install): Fix for loops over arguments. Need to quote ${IFS= } -> "${IFS= }". (link): Fix soname_spec bug. Create objdir whether or not we have shared libraries. * ltconfig.in: Check for library stripping program. Use test -f instead of test -e. 1996-11-18 Gordon Matzigkeit * ltconfig.in: Don't run the RANLIB test unless RANLIB wasn't set. Be verbose about the environment variables we were configured with. * ltmain.sh.in (objdir): change to .libs. 1996-11-16 Gordon Matzigkeit * ltmain.sh.in (install): Just plunge ahead with the installation... don't try to enforce dependencies. 1996-11-15 Gordon Matzigkeit * ltmain.sh.in: Fix up $libdir to be $dest in install mode. 1996-11-10 Gordon Matzigkeit * ltmain.sh: Finished rewrite of compile, link, and install modes. * New ChangeLog file for libtool-0.7, since I've totally rewritten libtool. 1996-03-15 Gordon Matzigkeit * For historical reasons: this is when I started writing libtool. -- Copyright (C) 1996-2010 Free Software Foundation, Inc. This file is part of GNU Libtool. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. usr/share/doc/htop/ChangeLog000064400000123005152527304730011761 0ustar00What's new in version 3.2.1 * Fix setting to show all branches collapsed by default * Restore functionality of stripExeFromCmdline setting * Fix some command line display settings not being honored without restart * Display single digit precision for CPU% greater than 99.9% * On Linux, FreeBSD and PCP consider only shrinkable ZFS ARC as cache * On Linux, increase field width of CPUD% and SWAPD% columns * Colorize process state characters in help screen * Use mousemask(3X) to enable and disable mouse control * Fix heap buffer overflow in Vector_compact * On Solaris, fix a process time scaling error * On Solaris, fix the build * On NetBSD, OpenBSD and Solaris ensure env buffer size is sufficient * On Linux, resolve processes exiting interfering with sampling * Fix ProcessList quadratic removal when scanning processes * Under LXC, limit CPU count to that given by /proc/cpuinfo * Improve container detection for LXC * Some minor documentation fixes What's new in version 3.2.0 * Support for displaying multiple tabs in the user interface * Allow multiple filter and search terms (logical OR, separate by "|") * Set correct default sorting direction (defaultSortDesc) * Improve performance for process lookup and update * Rework the IOMeters initial display * Removed duplicate sections on COMM and EXE * Highlight process UNINTERRUPTIBLE_WAIT state (D) * Show only integer value when CPU% more than 99.9% * Handle rounding ambiguity between 99.9 and 100.0% * No longer leaves empty the last column in header * Fix header layout and meters reset if a header column is empty * Fix PID and UID column widths off-by-one error * On Linux, read generic sysfs batteries * On Linux, do not collect LRS per thread (it is process-wide) * On Linux, dynamically adjust the SECATTR and CGROUP column widths * On Linux, fix a crash in LXD * On FreeBSD, add support for showing process emulation * On Darwin, lazily set process TTY name * Always set SIGCHLD to default handling * Avoid zombie processes on signal races * Ensure last line is cleared when SIGINT is received * Instead of SIGTERM, pre-select the last sent signal * Internal Hashtable performance and sizing improvements * Add heuristics for guessing LXC or Docker from /proc/1/mounts * Force elapsed time display to zero if process started in the future * Avoid extremely large year values when printing time * Fix division by zero when calculating IO rates * Fix out of boundary writes in XUtils * Fix custom thread name display issue * Use AC_CANONICAL_HOST, not AC_CANONICAL_TARGET in configure.ac * Support libunwind of LLVM What's new in version 3.1.2 * Bugfix for crash when storing modified settings at exit * Generate xz-compressed source tarball (with configure) using github actions * Allow -u UID with numerical value as argument * Added documentation for obsolete/state libraries/program files highlighting * Some obsolete/stale library highlighting refinements * Column width issues resolved * Dynamic UID column sizing improved * Discard stale information from Disk and Network I/O meters * Refined Linux kernel thread detection * Reworked process state handling * New CCGROUP column showing abbreviated cgroup name * New OFFSET column in the list of open files screen What's new in version 3.1.1 * Update license headers to explicitly say GPLv2+ * Document minimum version for libcap (thanks to James Brown) * Fix mouse wheel collision with autogroups nice adjustment * Adjust Makefile.am macro definitions for older automake versions * Ensure consistent reporting of MemoryMeter 'used' memory * Report hugepage memory as real and used memory (as before) * Handle procExeDeleted, usesDeletedLib without mergedCommandline mode * Validate meter configuration before proceeding beyond htoprc parsing * Properly release memory on partially read configuration * Handle interrupted sampling from within libpcp PDU transfers * On Linux, provide O_PATH value if not defined * On Linux, always compute procExeDeleted if already set * Workaround for Rosetta 2 on Darwin (thanks to Alexander Momchilov) * Fix FreeBSD cmdline memory leak in Process_updateCmdline, and * Plug a Disk I/O meter memory leak on FreeBSD (thanks to Ximalas) What's new in version 3.1.0 * Updated COPYING file to remove the PLPA exemption (appendix 2) With this change the license is now GPLv2 without any additional wording. * Improved default sort ordering Note for users: This may lead to an inverted sort order on startup of htop 3.1.0 compared to previous versions. This is due to what is stored in your htoprc file. Solution: Press I (to invert sort order). This changed setting will be saved by htop on exit as long as it can write to your htoprc file. * The compile-time option to cater specifically for running htop as setuid has been removed * Add read-only option This allows htop to be run in an non-intrusive fashion where it acts only as a process viewer disabling all functions to manipulate system state. Note: This is not a security feature! * Move the code for handling the command line formatting related tasks to be shared across all platforms This means important features like stale binary/library highlighting can now be available on all supported platforms. * Make the EXE and COMM columns available on all platforms All supported platforms have the name of the executable (EXE) and a self-chosen thread/command name (COMM) available one way or the other. Moving this column to be handled as a platform-independently available information simplifies the markup of the command line. * Introduce configuration file versioning and config_reader_min_version Starting with this version the configuration file contains a version identifying the minimum version of the configuration parser needed to fully understand the configuration file format. Old configuration file formats are automatically upgraded when saving the config file (htoprc). * Make the configuration parser friendlier to users (thanks to Bart Bakker) With this change only settings that cannot be parsed properly are reset to their defaults. * Improve default display for systems with many CPUs * Add the process ELAPSED time column * Improve the process STATE column sorting * Reworked handling resize and redrawing of the UI * Fixed an issue where the LED meter mode could overflow allotted space * Allow text mode Meters to span empty neighbors to the right * Rescale graph meters when value of total changes (thanks to Michael Schönitzer) * Update generic process field display Usually "uninteresting" values in columns like 1 thread, nice value of 0, CPU and memory of 0%, idle/sleeping state, etc. are shown with reduced intensity (dark grey) * Option and key ("*") to collapse / expand all branches under PID 1 (and PID 2 if kernel threads are shown) (thanks to Krishna Chaitanya) * Keep following a process when inverting the sort order, displaying the help screen or hiding/unhiding userland threads. If a thread is currently selected the selection is updated to point to the thread's parent process. (thanks to Gonzalo, et.al.) * Reorder process scanning to be performed before updating the display of the meters in the header * Always check the user for a process for any changes. This affects multiple platforms that previously didn't correctly handle the user field for a process to change at runtime (e.g. due to seteuid or similar syscalls). * Disable mouse option when support is unavailable * Support curses libraries without ncurses mouse support (thanks to Santhosh Raju) * Support offline and hot-swapping of CPUs on all platforms * Fix the CPU Meter for machines with more than 256 CPUs * Supplemented the "show updated/deleted executables" feature (red basename) to indicate when linked libraries were updated (yellow basename) * Apply the stale binary highlighting for the EXE column in addition to the command line field * Add new combined Memory and Swap meter * Implement bar and graph mode for NetworkIO Meter (thanks to Michael F. Schönitzer) * Rework TTY column to be more consistent across platforms * Make the CWD column generally available on all platforms (thanks to Santhosh Raju et. al.) * Add Performance Co-Pilot (PCP) platform support This is added via a separate pcp-htop(1) binary which provides remote host analysis, new Meters for any PCP metric and new Columns for any PCP process metric - see the pcp-htop(5) man page for further details. (thanks to Sohaib Mohamed) * Add Linux columns and key bindings for process autogroup identifier and nice value * Change available and used memory reporting on Linux to be based on MemAvailable (Kernel 3.14+) (thanks to Chris Cheney and Tomas Wido) * Add a new SysArchMeter showing kernel and platform information (thanks to ahgamut) * Linux memory usage explicitly treats tmpfs memory usage as shared memory This is to make memory used by tmpfs visible as this cannot be freed unlike normal filesystem cache data. * Exclude zram devices when calculating DiskIO on Linux * Use PATH lookup for systemctl in systemd meter (thanks to Scott Olson) * Add native platform support for NetBSD This allows htop to run on NetBSD without the need for active Linux emulation of the procfs filesystem. (thanks to Santhosh Raju and Nia Alarie) * Add NetworkIO, DiskIO, CPU frequency, and battery meter support on NetBSD (thanks to Nia Alarie) * Fix NetBSD display of in-use and cached memory (thanks to Nia Alarie) * Rework NetBSD CPU and memory accounting (thanks to Santhosh Raju) * Fix NetBSD accounting of user and kernel threads (thanks to Santhosh Raju) * Initial work to allow building with default libcurses on NetBSD (thanks to Santhosh Raju) * FreeBSD updates - implement process majflt and processor column values * Add FreeBSD support for CPU frequency and temperature * Fixes and cleanups for ZFS Meters and metrics * Correctly color the ZFS ARC ratio (thanks to Ross Williams) * Bugfixes related to CPU time display/calculations for darwin on M1 systems (thanks to Alexander Momchilov) * Harmonize the handling of multiple batteries across different platforms. The system is now considered to run on AC if at least one power supply marked as AC is found in the system. Battery capacity is summed up over all batteries found. This also changes the old behavior that batteries reported by the system after the first AC adapter where sometimes ignored. * Correctly handle multiple batteries on Darwin. Resolves a possible memory leak on systems with multiple batteries. * Handle Linux Shmem being part of Cached in the MemoryMeter * Add SwapCached to the Linux swap meter (thanks to David Zarzycki) * Convert process time to days if applicable (thanks to David Zarzycki) * Always show the number of threads in the TaskMeter, even when threads are not shown in the process list * Fix Linux --drop-capabilities option handling * Correctly detect failure to initialize Linux boottime * Overhaul the Linux memory fields to partition them like free(1) now does * Improve the Linux process I/O column values * Rework the libsensors parsing on Linux * Update the MemoryMeter to display shared memory * Update OpenBSD platform - implement additional columns, scan LWP, proper markup for STATE, show CPU frequency * Fix the tree view on OpenBSD when hiding kernel threads * Remove old InfoScreen lines before re-scanning (thanks to Øystein Hiåsen) * Document historic naming of Light-Weight Processes column aka threads * Improve user interaction when the last process entry is selected * Draw the panel header on the TraceScreen (thanks to Youngjae Lee) * Add mouse wheel scroll and fix mouse selection on the InfoScreen (thanks to Youngjae Lee) * Add a HugepageMeter and subtract hugepages from normal memory * Display wide characters in LED meters and restore non-wide ncurses support * Add command line option to drop Linux capabilities * Support scheduler affinity on platforms beyond Linux * Report on any failure to write the configuration file * Cache stderr to be able to print assert messages. These messages are shown in case htop terminates unexpectedly. * Print current settings on crash * Reset signal handlers on program exit * Add configure script option to create a static htop binary * Resolved longer-standing compilation issues on Solaris/Illumos * Check for availability of set_escdelay in configure (thanks to Stefan Polluks) * Build system updates for autotools 2.70 What's new in version 3.0.5 * BUGFIX / SECURITY: InfoScreen: fix uncontrolled format string * BUGFIX: Improve white text in the Light Terminal colour scheme (both of the above thanks to V) * Enable the function bar on the main screen to be hidden (see Setup -> Display options) * BUGFIX: Reduce layout issues esp. around printing wide characters (not complete yet) * BUGFIX: Make the follow function exit cleanly after followed process died * Solaris: make Process callbacks static * Update help and man page for improved -t / -s options * Drop usage of formatted error messages from * Show arrow indicating order of sorted process column * Lots of plumbing around the internal Hashtable, hardening and code cleanups * LibSensors: add support for Ryzen CPUs (thanks to Matej Dian) * BUGFIX: Fix CPU percentage on M1 silicon Macs (thanks to Luke Groeninger) * LoadMeter: dynamically adjust color and total of bar * Find libsensors.so.4 for Fedora and friends * Add support to display CPU frequencies on Solarish platforms (thanks to Dominik Hassler) * Enable going back to previous search matches (Shift-F3) * Added keybind 'N' for sorting by PID (drops 'n'/'N' as not used before much) (thanks to Jake Mannens) What's new in version 3.0.4 * Separate tree and list sort orders * Invert Process_compare so that superclass matches run first (thanks to Hisham Muhammad) * Unhardcode Mac OS tick-to-milliseconds conversion (thanks to Alexander Momchilov) * Check if clock_gettime needs linking of librt * Define O_PATH if not already defined (thanks to Chris Burr) * Add column on Mac for processes running under translation (thanks to Dániel Bakai) * Configure check for additional linker flags for keypad(3) * PSI Meter: constant width and only print ten-duration as bar * Sort in paused mode after inverting sort order * Handle absence of package CPU temperature * Meter: restore non-wide-character build * LibSensors: restore temperature for Raspberry Pi * MainPanel: do not reset hideProcessSelection on KEY_SHUFFLE * BarMeter: rework text padding * Panel: rework drawing of FunctionBar * Meter: fix artifacts with very tiny width * DragonFlyBSD updates * BUGFIX: Fix dlopen issue for libsensors5 for some platforms * BUGFIX: Fix broken tree display on inverted sort order * BUGFIX: Fix pause mode ("Z") in tree view * BUGFIX: Correct timebase for non-x86 CPUs on Darwin * BUGFIX: Avoid NULL dereference on zombie processes * Document dynamic bindings and assumed external configuration * Update key mapping documentation for sorting What's new in version 3.0.3 * Process sorting in 'tree' mode (thanks to Maxim Zhiburt) * Improved command display/sort functionality (thanks to Narendran Gopalakrishnan) * Add screen for active file locks (thanks to Fynn J. Wulf) * Calculate library size (M_LRS column) from maps file (thanks to Fynn J. Wulf) * Add a Zram meter (thanks to Murloc Knight) * Add Linux cwd process column * Dynamically load libsensors at runtime * Improve PressureStall Meter display strings * Hide process selection on ESC * Fully support non-ascii characters in Meter-Bar * Add support to change numeric options in settings screen * Rename virtual memory column from M_SIZE to M_VIRT * Add process column for normalized CPU usage * Show CPU temperature in CPU meter * Drop hideThreads Setting * Add a systemd meter * Add a network IO meter * Add a SELinux meter * Compress size of default FunctionBar * Updates to the OpenFiles screen * Continue updating header data in paused mode * BUGFIX: Handle data wraparounds in IO meters * BUGFIX: Update InfoScreen content on resize * Add security attribute process column * Add DiskIOMeter for IO read/write usage * Read CPU frequency from sysfs by default * Add Linux process column for context switches * Several FreeBSD and Mac OS X platform updates (thanks to Christian Göttsche) * Add process environment for FreeBSD (thanks to Ross Williams) * Parse POWER_SUPPLY_CAPACITY for Linux Battery meter (thanks to Jan Palus) * Add octuple-column CPU meters. * BUGFIX: On Linux consider ZFS ARC to be cache (thanks to @multi) * BUGFIX: Limit screen title length to window width * Show selected command wrapped in a separate window (thanks to @ryenus) * Allow to pass '/' for item search * Document implicit incremental search * Handle 'q' as quit if first character * Avoid expensive build of process tree when not using it * Include documentation for COMM and EXE * Distinguish display of no permissions for reading M_LRS * Only calculate M_LRS size every 2 seconds * Improvements to comm / cmdline display functionality * Merged view for COMM, EXE and cmdline (thanks to Narendran Gopalakrishnan and Benny Baumann) * Consistent kernel thread display for COMM/EXE columns * Central fault handling for all platforms * Handle parsing envID & VPid from process status file * Use threshold for display of guest/steal/irq meters * Enhance highlighting of semi-large and large numbers * Documentation on the repository style guide (thanks to Benny Baumann) * Align processor identifier to the right (thanks to Christian Hesse) * Document M_PSS, M_PSSWP, M_SWAP in man page * Add Date and DateTime meters (thanks to Michael F. Schönitzer) * BUGFIX: Fix Solaris 11.4 due to missing ZFS ARC kstats (thanks to @senjan) * Code hardening, speedups, fd and memory leak fixes (thanks to Christian Göttsche and Benny Baumann) * Number CPUs from zero by default (thanks to Zev Weiss) * Remove residual python checks during the build process (thanks to Stephen Gregoratto) What's new in version 3.0.2 * BUGFIX: Drop 'vim_mode' - several issues, needs rethink * BUGFIX: fix regression in -u optional-argument handling * Build system rework to remove python, header generation (thanks to Zev Weiss and Hugo Musso Gualandi) * BUGFIX: report nice level correctly on Solaris (thanks to Dominik Hassler) * CI, code quality improvements (thanks to Tobias Kortkamp, Christian Hesse, Benny Baumann) What's new in version 3.0.1 * Coverity fixes, CI improvements, documentation updates * BUGFIX: Fix early exit with longer sysfs battery paths * BUGFIX: Improve OOM output, fix sorting (thanks to Christian Göttsche) * Rework check buttons and tree open/closed (thanks to Bert Wesarg) * Add -U/--no-unicode option to disable unicode (thanks to Christian Hesse) * Improvements to the affinity panel (thanks to Bert Wesarg) What's new in version 3.0.0 * New maintainers - after a prolonged period of inactivity from Hisham, the creator and original maintainer, a team of community maintainers have volunteered to take over a fork at https://htop.dev and https://github.com/htop-dev to keep the project going. * Support ZFS ARC statistics (thanks to Ross Williams) * Support more than 2 smaller CPU meter columns (thanks to Christoph Budziszewski) * Support Linux proportional set size metrics (thanks to @linvinus, @ntninja and @himikof) * Support Linux pressure stall information metrics (thanks to Ran Benita) * New display option to show CPU frequency in CPU meters (thanks to Arnav Singh) * Update Linux sysfs battery discovery for recent kernels (thanks to @smattie) * Add hardware topology information in the affinity panel (thanks to Bert Wesarg) * Add timestamp reporting to the strace screen (thanks to Mario Harjac) * Add simple, optional vim key mapping mode (thanks to Daniel Flanagan) * Added an option to disable the mouse (thanks to MartinJM) * Add Solaris11 compatibility (thanks to Jan Senolt) * Without an argument -u uses $USER value automatically (thanks to @solanav) * Support less(1) search navigation shortcuts (thanks to @syrrim) * Update the FreeBSD maximum PID to match FreeBSD change (thanks to @multiplexd) * Report values larger than 100 terabytes (thanks to @adrien1018) * Widen ST_UID (UID) column to allow for UIDs > 9999 (thanks to DLange) * BUGFIX: fix makefiles for building with clang (thanks to Jorge Pereira) * BUGFIX: fix major() usage (thanks to @wataash and Kang-Che Sung) * BUGFIX: fix the STARTTIME column on FreeBSD (thanks to Rob Crowston) * BUGFIX: truncate overwide jail names on FreeBSD (thanks to Rob Crowston) * BUGFIX: fix reported memory values on FreeBSD (thanks to Tobias Kortkamp) * BUGFIX: fix reported CPU meter values on OpenBSD (thanks to @motet-a) * BUGFIX: correctly identify other types of zombie process (thanks to @joder) * BUGFIX: improve follow-process handling in some situations (thanks to @wangqr) * BUGFIX: fix custom meters reverting to unexpected setting (thanks to @wangqr) * BUGFIX: close pipe after running lsof(1) (thanks to Jesin) * BUGFIX: meters honour setting of counting CPUs from 0/1 (thanks to @rnsanchez) What's new in version 2.2.0 * Solaris/Illumos/OpenIndiana support (thanks to Guy M. Broome) * -t/--tree flag for starting in tree-view mode (thanks to Daniel Flanagan) * macOS: detects High Sierra version to avoid OS bug (thanks to Pierre Malhaire) * OpenBSD: read battery data (thanks to @nerd972) * Various automake and build improvements (thanks to Kang-Che Sung) * Check for pkg-config when building with --enable-delayacct (thanks to @florian2833z for the report) * Avoid some bashisms in configure script (thanks to Jesin) * Use CFLAGS from ncurses*-config if present (thanks to Michael Klein) * Header generator supports non-UTF-8 environments (thanks to @volkov-am) * Linux: changed detection of kernel threads * Collapse current subtree pressing Backspace * BUGFIX: fix behavior of SYSCR column (thanks to Marc Kleine-Budde) * BUGFIX: obtain exit code of lsof correctly (thanks to @wangqr) * BUGFIX: fix crash with particular keycodes (thanks to Wellington Torrejais da Silva for the report) * BUGFIX: fix issue with small terminals (thanks to Daniel Elf for the report) * BUGFIX: fix terminal color issues (thanks to Kang-Che Sung for the report) * BUGFIX: preserve LDFLAGS when building (thanks to Lance Frederickson for the report) * BUGFIX: fixed overflow for systems with >= 100 signals What's new in version 2.1.0 * Linux: Delay accounting metrics (thanks to André Carvalho) * DragonFlyBSD support (thanks to Diederik de Groot) * Support for real-time signals (thanks to Kang-Che Sung) * 'c' key now works with threads as well * Session column renamed from SESN to SID (thanks to Kamyar Rasta) * Improved UI for meter style selection (thanks to Kang-Che Sung) * Improved code for constructing process tree (thanks to wangqr) * Compile-time option to disable setuid * Error checking of various standard library operations * Replacement of sprintf with snprintf (thanks to Tomasz Kramkowski) * Linux: performance improvements in battery meter * Linux: update process TTY device * Linux: add support for sorting TASK_IDLE (thanks to Vladimir Panteleev) * Linux: add upper-bound to running process counter (thanks to Lucas Correia Villa Real) * BUGFIX: avoid crash when battery is removed (thanks to Jan Chren) * BUGFIX: macOS: fix infinite loop in tree view (thanks to Wataru Ashihara) What's new in version 2.0.2 * Mac OS X: stop trying when task_for_pid fails for a process, stops spamming logs with errors. * Add Ctrl+A and Ctrl+E to go to beginning and end of line * FreeBSD: fixes for CPU calculation (thanks to Tim Creech, Andy Pilate) * Usability: auto-follow process after a search. * Use Linux backend on GNU Hurd * Improvement for reproducible builds. * BUGFIX: Fix behavior of Alt-key combinations (thanks to Kang-Che Sung) * Various code tweaks and cleanups (thanks to Kang-Che Sung) What's new in version 2.0.1 * OpenBSD: Various fixes and improvements (thanks to Michael McConville and Juan Francisco Cantero Hurtado) * FreeBSD: fix CPU and memory readings (thanks to Tim Creech, Hung-Yi Chen, Bernard Spil, Greg V) * FreeBSD: add battery support (thanks to Greg V) * Linux: Retain last-obtained name of a zombie process * Mac OS X: Improve portability for OS X versions (thanks to Michael Klein) * Mac OS X: Fix reading command-line arguments and basename * Mac OS X: Fix process state information * Mac OS X: Fix tree view collapsing/expanding * Mac OS X: Fix tree organization * Mac OS X: Fix memory accounting * Fix crash when emptying a column of meters * Make Esc key more responsive What's new in version 2.0.0 * Platform abstraction layer * Initial FreeBSD support * Initial Mac OS X support (thanks to David Hunt) * Swap meter for Mac OSX (thanks to Ștefan Rusu) * OpenBSD port (thanks to Michael McConville) * FreeBSD support improvements (thanks to Martin Misuth) * Support for NCurses 6 ABI, including mouse wheel support * Much improved mouse responsiveness * Process environment variables screen (thanks to Michael Klein) * Higher-resolution UTF-8 based Graph mode (Thanks to James Hall from vtop for the idea!) * Show program path settings (thanks to Tobias Geerinckx-Rice) * BUGFIX: Fix crash when scrolling an empty filtered list. * Use dynamic units for text display, and several fixes (thanks to Christian Hesse) * BUGFIX: fix error caused by overflow in usertime calculation. (thanks to Patrick Marlier) * Catch all memory allocation errors (thanks to Michael McConville for the push) * Several tweaks and bugfixes (See the Git log for details and contributors!) What's new in version 1.0.3 * Tag all children ('c' key) * Fixes in accounting of guest time when using virtualization (thanks to Patrick Marlier) * Performance improvements (thanks to Jann Horn) * Further performance improvements due to conditional parsing of IO data depending on selected fields. * Better consistency in coloring. * Increase limit of buffer when tracing a deep nested process tree. * Display pagefault stats. * BUGFIX: Fix crash when adding meters and toggling detailed CPU time. (thanks to Dawid Gajownik) * Add column to track the OOM-killer score of processes (thanks to Leigh Simpson) What's new in version 1.0.2 * Add IO priority support ('i' key) * Avoid deleting .htoprc if it is a symlink * Fail gracefully when /proc is not mounted (thanks to Philipp Hagemeister) * Option to update process names on every refresh (thanks to Rob Hoelz) * BUGFIX: Fix crashes when process list is empty What's new in version 1.0.1 * Move .htoprc to XDG-compliant path ~/.config/htop/htoprc, respecting $XDG_CONFIG_HOME (thanks to Hadzhimurad Ustarkhan for the suggestion.) * Safer behavior on the kill screen, to make it harder to kill the wrong process. * Fix for building in FreeBSD 8.2 (thanks to Trond Endrestol) * BUGFIX: behavior of 'F' (follow) key was broken, also affecting the persistence of mouse selections. * BUGFIX: keep main panel up-to-date when running the screen manager, to fix crash when processes die while on the F9/Kill screen. What's new in version 1.0 * Performance improvements * Support for splitting CPU meters into two or four columns (thanks to Wim Heirman) * Switch from PLPA, which is now deprecated, to HWLOC. * Bring back support for native Linux sched_setaffinity, so we don't have to use HWLOC where we don't need to. * Support for typing in user names and column fields in selection panels. * Support for UTF-8 tree drawing (thanks to Bin Guo) * Option for counting CPUs from zero (thanks to Sean Noonan) * Meters update in every screen (no longer halting while on Setup, etc.) * Stricter checks for command-line options (thanks to Sebastian Pipping) * Incremental filtering (thanks to Seth Heeren for the idea and initial implementation) * Try harder to find the ncurses header (thanks to Moritz Barsnick) * Man page updates (thanks to Vincent Launchbury) * BUGFIX: Support larger numbers for process times. (thanks to Tristan Nakagawa for the report.) * BUGFIX: Segfault in BarMeterMode_draw() for small terminal widths (patch by Sebastian Pipping) What's new in version 0.9 * Add support for "steal"/guest CPU time measurement in virtualization environments * Expand and collapse subtrees using '+' and '-' when in tree-view * Support for cgroups (thanks to Guillaume Zitta and Daniel Lezcano) * Show custom thread names (thanks to Anders Torger) * Add support for STARTTIME field * Upgrade PLPA to version 1.3.2 * Fix license terms with regard to PLPA (thanks to Tom Callaway) * getopt-based long options and --no-color (thanks to Vincent Launchbury) * BUGFIX: Fix display of nan% in CPU meters (thanks to Steven Hampson) * BUGFIX: Fix memory leak (thanks to Pavol Rusnak) * Add Bash/emacs style navigation keys (thanks to Daniel Schuler) * Improve battery meter support (thanks to Richard W.) * BUGFIX: Fix IO-wait color in "Black on White" scheme * BUGFIX: Fix search by process name when list is filtered by user. (thanks to Sergej Pupykin for the report.) * BUGFIX: Fix alignment for display of memory values above 100G (sign of the times!) (thanks to Jan van Haarst for the report.) What's new in version 0.8.3 * BUGFIX: Fix crash on F6 key (thanks to Rainer Suhm) * BUGFIX: Fix a minor bug which affected the build process. What's new in version 0.8.2 * Integrated lsof (press 'l') * Fix display of gigabyte-sized values (thanks to Andika Triwidada) * Option to display hostname in the meters area * Rename VEID to CTID in OpenVZ systems (thanks to Thorsten Schifferdecker) * Corrections to the desktop entry file (thanks by Samuli Suominen) * BUGFIX: Correct page size calculation for FreeBSD systems (thanks to Andrew Paulsen) * Allow compilation without PLPA on systems that don't support it (thanks to Timothy Redaelli) * BUGFIX: Fix missing tree view when userland threads are hidden (thanks to Josh Stone) * BUGFIX: Fix for VPID on OpenVZ systems (thanks to Wolfgang Frisch) What's new in version 0.8.1 * Linux-VServer support (thanks to Jonathan Sambrook and Benedikt Bohm) * Battery meter (thanks to Ian Page Hands) * BUGFIX: Fix collection of IO stats in multithreaded processes (thanks to Gerhard Heift) * Remove assertion that fails on hardened kernels (thanks to Wolfram Schlich for the report) What's new in version 0.8 * Ability to change sort column with the mouse by clicking column titles (click again to invert order) * Add support for Linux per-process IO statistics, enabled with the --enable-taskstats flag, which requires a kernel compiled with taskstats support. (thanks to Tobias Oetiker) * Add Unicode support, enabled with the --enable-unicode flag, which requires libncursesw. (thanks to Sergej Pupykin) * BUGFIX: Fix display of CPU count for threaded processes. When user threads are hidden, process now shows the sum of processor usage for all processors. When user threads are displayed, each thread shows its own processor usage, including the root thread. (thanks to Bert Wesarg for the report) * BUGFIX: avoid crashing when using many meters (thanks to David Cho for the report) What's new in version 0.7 * CPU affinity configuration ('a' key) * Improve display of tree view, properly nesting threads of the same app based on TGID. * IO-wait time now counts as idle time, which is a more accurate description. It is still available in split time, now called detailed CPU time. (thanks to Samuel Thibault for the report) * BUGFIX: Correct display of TPGID field * Add TGID field * BUGFIX: Don't crash with invalid command-line flags (thanks to Nico Golde for the report) * Fix GCC 4.3 compilation issues (thanks to Martin Michlmayr for the report) * OpenVZ support, enabled at compile-time with the --enable-openvz flag. (thanks to Sergey Lychko) What's new in version 0.6.6 * Add support of NLWP field (thanks to Bert Wesarg) * BUGFIX: Fix use of configurable /proc location (thanks to Florent Thoumie) * Fix memory percentage calculation and make it saner (thanks to Olev Kartau for the report) * Added display of DRS, DT, LRS and TRS (thanks to Matthias Lederhofer) * BUGFIX: LRS and DRS memory values were flipped (thanks to Matthias Lederhofer) * BUGFIX: Don't crash on very high UIDs (thanks to Egmont Koblinger) What's new in version 0.6.5 * Add hardened-debug flags for debugging with Hardened GCC * BUGFIX: Handle error condition when a directory vanishes from /proc * BUGFIX: Fix leak of process command line * BUGFIX: Collect orphaned items when arranging the tree view. (thanks to Wolfram Schlich for assistance with debugging) * Separate proc and memory debugging into separate #defines. * BUGFIX: Fix message when configure fails due to missing libraries (thanks to Jon) * BUGFIX: Don't truncate value when displaying a very large process (thanks to Bo Liu) What's new in version 0.6.4 * Add an option to split the display of kernel time in the CPU meter into system, IO-wait, IRQ and soft-IRQ. (thanks to Philipp Richter) * --sort-key flag in the command-line, overriding the saved setting in .htoprc for the session. (thanks to Rodolfo Borges) * BUGFIX: Fixed string overflow on uptime display. (thanks to Marc Cahalan) What's new in version 0.6.3 * Performance improvements: uses much less CPU than the previous release with the default setup. * Use 64-bit values when storing processor times to avoid overflow. * Memory consumption improvements, compensating storage of 64-bit values. * Internal change: rename TypedVector to Vector and ListBox (and related classes) to Panel. * Have configure actually fail when needed libraries or headers are not found. * Horizontally scroll in larger increments when on the Linux console because of slow update of unaccelerated fb * No longer untag processes after sending a signal (useful for when SIGTERM fails and one wants to try again with SIGKILL). All processes can be untagged at once with 'U'. (thanks to A. Costa for the suggestion) What's new in version 0.6.2 * BUGFIX: Fixed crash when using some .htoprc files from 0.6 (thanks to Wolfram Schlich and John Thomas for the reports) * BUGFIX: Ensure changes to color scheme are saved * BUGFIX: Make configure behave correctly with --with-proc * Minor addition to .desktop file. What's new in version 0.6.1 * New meter type: "All CPUs", which dynamically adjusts to the number of CPUs present in the machine. Note that because of this, older versions of htop may crash when using an .htoprc file modified my the newer version. * Accept --with-proc= in configure, to specify alternative procfs locations (making htop friendlier to the Linux compatibility layer in FreeBSD) * Included icon .desktop and desktop entry (thanks to Peter Hyman) * Added a check to make sure that a root-user htop closes when its parent non-root terminal is closed. (thanks to Ilya Evseev for the report) * BUGFIX: does not crash anymore when $HOME is not set (thanks to Henning Schild for the report) * Wait for strace child process to die properly. (thanks to Marcus Fritzsch) * Support $HTOPRC (thanks to Luis Limon) What's new in version 0.6 * Configuration of columns merged into the Setup screen * Integrated strace (press 's') (thanks to Marinho Barcellos for the help) * BUGFIX: some fixes, aided by Valgrind (thanks to Wolfram Schlich for the report) * BUGFIX: fixed bug when switching meter modes (thanks to Eduardo Righes for the report) * Show processes of a single user * "SortBy" function now menu-based * Improved mouse handling * ...and on top of that reduced memory consumption! What's new in version 0.5.4 * Color schemes * -d flag, to configure delay between updates. Note that the delay value is saved in ~/.htoprc. * BUGFIX: Update of meters was halting after help screen. (thanks to Matt Moore) * BUGFIX: No longer display incorrect information in first frame. * BUGFIX: Fix auto-detection of /proc/stat, correcting CPU usage information on multiprocessor systems. What's new in version 0.5.3 * Read new field "steal" on newer /proc/stat files * Auto-detects format of /proc/stat, to cope with patched 2.4 kernels which display 2.6-style information (most notably those on RHEL 3) (thanks to Fernando Dotta for the report) * Support $HOME_ETC initiative (see http://www.pld-linux.org/Docs/home-etc) (thanks to Roman Barczynski for the tip) * The configure script now tests for /proc, so that it fails early on unsupported platforms instead of during compilation/execution. * Made presentation of the function keys in the status bar consistent across views (thanks to David Mathog for the report) * Minor changes to make the codebase more friendly to possible future ports (thanks to Jari Aalto and David Mathog for the reports) What's new in version 0.5.2 * BUGFIX: Correct display of user field (thanks to Marcin Miroslaw for the report) * Keyboard support improvements (thanks to Aury Fink Filho for the report) What's new in version 0.5.1 * BUGFIX: Correctly displays NPTL threads from /proc//task subdirectories (thanks to Mike Pot for the report) * BUGFIX: Fixes key handling on Signals listbox (thanks to Ondrej Vlach) * Renicing no longer displays temporary illegal values (thanks to Ondrej Vlach) * 'Hide userland threads' feature for NPTL threads What's new in version 0.5 * Tree view * New column, TIME (user + system time, like in top, 'T' switches to "sort by time") * Major reorganization of the underlying code of the setup screen, to manage setup pages * New setup page: Display options * Hide kernel threads ('K' key) * Colorized memory numbers * Vastly improved support for monochromatic terminals * Shadow processes that do not belong to user ('U' key) * Header margin configuration accessible via setup screen * Visual feedback on failing incremental search * BUGFIX: fixed keyboard input issues on 64-bit machines * BUGFIX: hopefully fixed the incorrect values that show on status bars in some systems * BUGFIX: doesn't mess with fields list anymore when canceling after changing the number of items * Uptime meter no longer says "1 days" ;) What's new in version 0.4.1 * BUGFIX: compiles on 64-bit architectures again (thanks to Bartosz Fenski for the report) * BUGFIX: multi-processor support fixed on kernels 2.6 (thanks to Wolfram Schlich for the report) What's new in version 0.4 * Support for multiple processors! * Basic mouse support * Modular header based on configurable meters; supports 4 view modes: bar, text, LED, graph * Uptime, load average meters (thanks to Marc Calahan) * Meters setup screen; should eventually evolve into a general setup screen, with column setup, keybindings, etc. * Thread hiding toggleable (press 'T' to hide the nonstandard dotfiles in /proc) * BUGFIX: Do not flicker screen on column configuration screen * Clock and load average meters (thanks to Marc Calahan) * BUGFIX: numeric swap indicator was printing bogus value * BUGFIX: internal fixes on Panel widget * Clear the bottom line when exiting * Press "F3" during search to walk through the results * Improved navigation on column configuration screen * BUGFIX: fix segfault on kernels with restricted /proc enabled * BUGFIX: a few last-minute bugfixes in the setup UI (thanks to Gaspare Bruno for the reports) What's new in version 0.3.3 * Saves column and sorting configuration in ~/.htoprc * Displays "hidden" threads on RedHat 9 (Thanks to Leonardo Godinho) * BUGFIX: supports process names with spaces (Thanks to Marc Calahan) * BUGFIX: ...and parentheses :) * BUGFIX: long process names overflowed RichString (Thanks to Marc Calahan) What's new in version 0.3.2 * Performance and memory usage improvements, aided by gprof * BUGFIX: quite a few fixes, aided by Valgrind * Header preview on column configuration screen (Thanks to Marc Calahan) What's new in version 0.3.1 * BUGFIX: crash fixes related to process list handling (thanks to Marc Calahan) * Man page (thanks to Bartosz Fenski) * Tag processes with the space bar * Kill multiple process based on tag * BUGFIX: corrected processing order of updates in list * Screen refresh function on Ctrl-L * Large numbers are shown in MB/GB notation in order to fit screen (thanks to Marc Calahan) * Realtime priority is correctly displayed (thanks to Marc Calahan) * Preliminary support for configurable columns, with 'C' (thanks to Marc Calahan) -- not all columns display properly yet What's new in version 0.3 * BUGFIX: no dirt left on screen on horizontal scrolling * Signal selection on "kill" command * Color-coding for users, nice and process status * "Follow" function * Fully selectable sort order * Function bar on last line * Build system now uses autotools What's new in version 0.2.1 * Sorting by process or memory usage ('P' and 'M', like top) * Quicker default update (1.5 second, not yet configurable) * Now the order of the elements in the process list stay 'locked' for a while after you move the cursor to ease selecting a process * Corrected the installation instructions in README (Thanks to Jeremy Eglen) * Should now compile cleanly on Conectiva 9 and similar systems (Thanks to Adriano Frare for the report) * Friendlier Makefile * Help screen ('h') What's new in version 0.2 * Memory indicators in header now show used and total, in MB * Preliminary support for sorting (CPU% only) * Memory percentage field (resident memory / used memory) * BUGFIX: identified source of spurious crashes * Can search names containing numbers (Thanks to Rafael Jeffman) * Correctly calculates memory page size (Thanks to Rafael Jeffman) What's new in version 0.13 * Handles terminal resize * Display all user names (not only those in /etc/passwd) (Thanks to Julio Biason) What's new in version 0.12 * Support for 2.6 kernels * Uses terminal default colors as a background What's new in version 0.11 * BUGFIX: does not crash when UID is not in /etc/passwd What's new in version 0.1 * Everything! usr/share/doc/ncdu/ChangeLog000064400000022536152527310150011740 0ustar001.22 - 2025-03-05 - Add support for @-prefixed lines to ignore errors in config file (from 2.8) - List all supported options in `--help` (from 2.8) - Use `kB` instead of `KB` in `--si` mode (from 2.8) - Add `--graph-style` option (from 2.1) - Fix supported range of uid/gid numbers 1.21 - 2024-11-19 - Perform tilde expansion on paths in the config file (from 2.7) - Fix JSON import of escaped UTF-16 surrogate pairs (from 2.7) - Fix displaying and exporting zero values when extended info is not available (from 2.6) - Fix JSON export and import of the “other filesystem” flag (from 2.5) 1.20 - 2024-04-21 - Revert default color scheme back to 'off' - Rewrite man page in mdoc, drop pod2man dependency 1.19 - 2023-09-11 - Fix typo in --exclude-from argument - Add --(enable|disable)-natsort options - Add indicator to apparent size/disk usage selection in the footer 1.18.1 - 2023-02-12 - Fix build on non-Linux platforms 1.18 - 2022-12-06 - Fix 'dark-bg' color scheme to actually have a dark background - Backport configuration file support from 2.x - Backport many new CLI options from 2.x - Negation of existing flags: --no-si, --no-confirm-quit, --no-follow-symlinks, --include-caches, --include-kernfs - --[no-]extended in addition to -e - --one-file-system and --cross-file-system in addition to -x - --slow-ui-updates, --fast-ui-updates in addition to -q - Column visibility options: --(show|hide)-(hidden|itemcount|mtime|graph|percent) - Sorting: --sort, --[no-]group-directories-first - Feature selection: --(enable|disable)-(shell|delete|refresh) - Deletion confirmation: --[no-]confirm-delete - Hidden file visibility: --show-hidden, --hide-hidden - Size display: --apparent-size, --disk-usage 1.17 - 2022-04-28 - Add 'dark-bg' color scheme and use that by default - Use natural sort order when sorting by file name - Improve compatibility with C89 environments - Fix wrong assumption about errno not being set by realloc() 1.16 - 2021-07-02 - Increase width of size bar depending on terminal size (Christian Göttsche) - Set/increment $NCDU_LEVEL variable when spawning a shell - Indicate whether apparent size or disk usage is being displayed - Display setuid, setgid and sticky bits in file flags in extended mode - Fix error handling while reading --exclude-from file - Improve JSON import to allow for several future extensions to the format - Export link count in JSON dumps - Don't export inode in JSON dumps for non-hardlinks 1.15.1 - 2020-06-10 - (Linux) Fix build on older Linux systems (Christian Göttsche) - (MacOS) Revert "Exclude firmlinks by default" behavior (until we have a better solution) - (MacOS) Add --exclude-firmlinks option to opt-in to the above behavior 1.15 - 2020-05-30 - (Linux) Add --exclude-kernfs option to exclude pseudo filesystems (Christian Göttsche) - (MacOS) Exclude firmlinks by default (Saagar Jha) - (MacOS) Add --follow-firmlinks option to follow firmlinks (Saagar Jha) - Fix bug in calculating the apparent size of directories containing hardlinks - Fix integer overflow with directories containing >2GiB worth of file names - Fix yet another possible 100% CPU bug when losing terminal 1.14.2 - 2020-02-10 - Fix compilation with GCC 10 (-fno-common) - Fix minor display issue when scanning 10M+ files - Slightly reduce memory usage for hard link detection 1.14.1 - 2019-08-05 - Fix occasional early exit on OS X - Fix --exclude-caches - Improve handling of out-of-memory situations 1.14 - 2019-02-04 - Add mtime display and sorting (Alex Wilson) - Add (limited) --follow-symlinks option (Simon Doppler) - Display larger file counts in browser UI - Add -V, --version, and --help alias flags - Fix crash when attempting to sort an empty directory - Fix 100% CPU bug when ncdu loses the terminal - Fix '--color=off' flag - Fix some typos 1.13 - 2018-01-29 - Add "extended information" mode and -e flag - Add file mode, modification time and uid/gid to info window with -e - Add experimental color support and --color flag - Add -rr option to disable shell spawning - Remove directory nesting limit on file import - Fix handling of interrupts during file import - Fix undefined behavior that triggered crash on OS X 1.12 - 2016-08-24 - Add NCDU_SHELL environment variable - Add --confirm-quit flag - Fix compilation due to missing sys/wait.h include 1.11 - 2015-04-05 - Added 'b' key to spawn shell in the current directory - Support scanning (and refreshing) of empty directories - Added --si flag for base 10 prefixes - Fix toggle dirs before files 1.10 - 2013-05-09 - Added 'c' key to display item counts - Added 'C' key to order by item counts - Added CACHEDIR.TAG support and --exclude-caches option - Use locale-dependent thousand separator - Use pkg-config to detect ncurses - Clip file/dir sizes to 8 EiB minus one byte - Fix buffer overflow when formatting huge file sizes 1.9 - 2012-09-27 - Added option to dump scanned directory information to a file (-o) - Added option to load scanned directory information from a file (-f) - Added multiple scan and load interfaces (-0,-1,-2) - Fit loading and error windows to the terminal width (#13) - Fix symlink resolving bug (#18) - Fix path display when scanning an empty directory (#15) - Fix hang when terminal is resized to a too small size while loading - Use top-level automake build - Remove useless AUTHORS, INSTALL and NEWS files - ncdu.1 now uses POD as source format 1.8 - 2011-11-03 - Use hash table to speed up hard link detection - Added read-only option (-r) - Use KiB instead of kiB (#3399279) 1.7 - 2010-08-13 - List the detected hard links in file info window - Count the size of a hard linked file once for each directory it appears in - Fixed crash on browsing dirs with a small window size (#2991787) - Fixed buffer overflow when some directories can't be scanned (#2981704) - Fixed segfault when launched on a nonexistent directory (#3012787) - Fixed segfault when root dir only contains hidden files - Improved browsing performance - More intuitive multi-page browsing - Display size graph by default - Various minor fixes 1.6 - 2009-10-23 - Implemented hard link detection - Properly select the next item after deletion - Removed reliance of dirfd() - Fixed non-void return in void delete_process() - Fixed several tiny memory leaks - Return to previously opened directory on failed recalculation - Properly display MiB units instead of MB (IEEE 1541 - bug #2831412) - Link to ncursesw when available - Improved support for non-ASCII characters - VIM keybindings for browsing through the tree (#2788249, #1880622) 1.5 - 2009-05-02 - Fixed incorrect apparent size on directory refresh - Browsing keys now work while file info window is displayed - Current directory is assumed when no directory is specified - Size graph uses the apparent size if that is displayed - Items are ordered by displayed size rather than disk usage - Removed switching between powers of 1000/1024 - Don't rely on the availability of suseconds_t - Correctly handle paths longer than PATH_MAX - Fixed various bugs related to rpath() - Major code rewrite - Fixed line width when displaying 100% 1.4 - 2008-09-10 - Removed the startup window - Filenames ending with a tidle (~) will now also be hidden with the 'h'-key - Fixed buffer overflow when supplying a path longer than PATH_MAX (patch by Tobias Stoeckmann) - Used S_BLKSIZE instead of a hardcoded block size of 512 - Fixed display of disk usage and apparent sizes - Updated ncdu -h - Included patches for Cygwin - Cursor now follows the selected item - Added spaces around path (debian #472194) - Fixed segfault on empty directory (debian #472294) - A few code rewrites and improvements 1.3 - 2007-08-05 - Added 'r'-key to refresh the current directory - Removed option to calculate apparent size: both the disk usage and the apparent size are calculated. - Added 'a'-key to switch between showing apparent size and disk usage. - Added 'i'-key to display information about the selected item. - Small performance improvements - configure checks for ncurses.h (bug #1764304) 1.2 - 2007-07-24 - Fixed some bugs on cygwin - Added du-like exclude patterns - Fixed bug #1758403: large directories work fine now - Rewrote a large part of the code - Fixed a bug with wide characters - Performance improvements when browsing large dirs 1.1 - 2007-04-30 - Deleting files and directories is now possible from within ncdu. - The key for sorting directories between files has changed to 't' instead of 'd'. The 'd'-key is now used for deleting files. 1.0 - 2007-04-06 - First stable release - Small code cleanup - Added a key to toggle between sorting dirs before files and dirs between files - Added graphs and percentages to the directory browser (can be enabled or disabled with the 'g'-key) 0.3 - 2007-03-04 - When browsing back to the previous directory, the directory you're getting back from will be selected. - Added directory scanning in quiet mode to save bandwidth on remote connections. 0.2 - 2007-02-26 - Fixed POSIX compliance: replaced realpath() with my own implementation, and gettimeofday() is not required anymore (but highly recommended) - Added a warning for terminals smaller than 60x16 - Mountpoints (or any other directory pointing to another filesystem) are now considered to be directories rather than files. 0.1 - 2007-02-21 - Initial version usr/share/doc/gettext-devel/ChangeLog000064400000077175152527362000013602 0ustar002016-06-11 Daiki Ueno build: Fix unintentional soname bump * gettext-runtime/intl/Makefile.in: Revert LTV_CURRENT and increment LTV_REVISION. * gettext-tools/libgettextpo/Makefile.am: Likewise. 2016-06-09 Daiki Ueno Update translations * gettext-runtime/po/eo.po: Update from Felipe Castro * gettext-runtime/po/hr.po: Update from Božidar Putanec * gettext-runtime/po/sv.po: Update from Göran Uddeborg * gettext-tools/examples/po/eo.po: Update from Felipe Castro * gettext-tools/examples/po/hr.po: Update from Božidar Putanec * gettext-tools/examples/po/sv.po: Update from Göran Uddeborg * gettext-tools/po/bg.po: Update from Roumen Petrov * gettext-tools/po/es.po: Update from Antonio Ceballos * gettext-tools/po/fr.po: Update from Stéphane Aulery * gettext-tools/po/ja.po: Update from Masahito Yamaga * gettext-tools/po/ko.po: Update from Changwoo Ryu * gettext-tools/po/nl.po: Update from Benno Schulenberg * gettext-tools/po/pl.po: Update from Rafał Maszkowski * gettext-tools/po/sk.po: Update from Marcel Telka * gettext-tools/po/sr.po: Update from Мирослав Николић * gettext-tools/po/sv.po: Update from Göran Uddeborg * gettext-tools/po/tr.po: Update from Nilgün Belma Bugüner * gettext-tools/po/uk.po: Update from Yuri Chornoivan * gettext-tools/po/vi.po: Update from Trần Ngọc Quân Update matrix NEWS: Fix release date of 0.19.8 Prepare for 0.19.8 THANKS: Update 2016-06-08 Daiki Ueno gnulib-local: Work around regcomp.c compile error * gnulib-local/Makefile.am (EXTRA_DIST): Add lib/regcomp.c.diff. * gnulib-local/lib/regcomp.c.diff: New file, partially revert Gnulib commit f97745b0. tests: Use Exit instead of exit if init.sh is used * gettext-tools/tests/*: Use Exit instead of exit, as suggested by init.sh. 2016-06-07 Daiki Ueno build: Create intl/ChangeLog * autogen.sh: Create an empty ChangeLog for gettext-runtime/intl, which is necessary when running "make dist" from the top level directory. 2016-06-02 Daiki Ueno build: Simplify placeholder ChangeLog creation * autogen.sh: Use empty ChangeLog for placeholder. Bail out if any error occurs in autoreconf phase. maint: Update release steps 2016-06-01 Daiki Ueno tests: Check invalid input in sentence-1-prg * gettext-tools/tests/sentence-1-prg.c (main): Check input buffer overflow, while it is not possible with the current test case. tests: Fix test data for sentence-1 * gettext-tools/tests/sentence-1: Use NO-BREAK SPACE instead of IDEOGRAPHIC SPACE. 2016-05-31 Daiki Ueno tests: Fix location of valgrind suppression file * gettext-tools/tests/Makefile.am (CHECKER): Use $(abs_srcdir) instead of $(srcdir). tests: Turn sentence test into a shell script For consistency with other tests. Also it fixes a test failure when built with --disable-shared, since LOG_COMPILER set to $(SHELL) doesn't recognize binary executable. * gettext-tools/tests/Makefile.am (TESTS): Rename 'sentence' to 'sentence-1'. (check_PROGRAMS): Rename 'sentence' to 'sentence-1-prg'. (sentence_1_prg_SOURCES): Rename from 'sentence_SOURCES'. (sentence_1_prg_CPPFLAGS): Rename from 'sentence_CPPFLAGS'. (sentence_1_prg_LDADD): Rename from 'sentence_LDADD'. * gettext-tools/tests/sentence-1: New file. * gettext-tools/tests/sentence-1-prg.c: Rename from sentence.c, move the test data to sentence-1. * gettext-tools/tests/.gitignore: Ignore sentence-1-prg. 2016-05-30 Daiki Ueno maint: Update copyright year xgettext: Update usage documentation * gettext-tools/src/xgettext.c (usage): Mention 'bullet-unicode' check. 2016-05-28 Daniel Burr (tiny change) build: Make libxml2 check tighter * gnulib-local/m4/libxml.m4 (gl_LIBXML): Try to check xmlXPathSetContextNode, which is available in libxml2 2.9.1 or later. Problem reported by Dominyk in: http://savannah.gnu.org/bugs/?46844 2016-05-27 Daiki Ueno desktop: Add missing "extern" in header * gettext-tools/src/read-desktop.h: Add "extern" to each function declaration. Possibly related to: https://savannah.gnu.org/bugs/?45896 NEWS: Mention gettext.m4 change m4: Rely less on internal symbols * gettext-runtime/m4/gettext.m4 (AM_GNU_GETTEXT): Skip checks for the internal symbols _nl_msg_cat_cntr, _nl_domain_bindings, and _nl_expand_alias, if __GNU_GETTEXT_SUPPORTED_REVISION is defined. Problem reported and fix suggested by Masanori Ogino in: https://lists.gnu.org/archive/html/bug-gettext/2016-04/msg00000.html The rationale behind this is: (1) those symbol checks are for detecting certain broken implementations, namely NetBSD and Solaris 7, and (2) __GNU_GETTEXT_SUPPORTED_REVISION is not defined in those implementations, while it is defined on compatible implementations, such as musl-libc which doesn't have those internal symbols. 2016-05-25 Daiki Ueno NEWS: Add 0.19.8 changes intl: Pacify pre-C99 compilers * gettext-runtime/intl/plural-exp.h (HAVE_STRUCT_INITIALIZER): New macro, based on the check previously in plural-exp.c. Also add check for __SUNPRO_C for Solaris Studio C compiler. (GERMANIC_PLURAL): Define as 'struct expression' not 'const struct expression' if struct/union initializers are not supported by the compiler. * gettext-runtime/intl/plural-exp.c: Use HAVE_STRUCT_INITIALIZER. Reported by Dagobert Michelsen and investigated by pan7 in: https://savannah.gnu.org/support/?108743 2016-05-24 David Shea desktop: Fix invalid memory access * gettext-tools/src/read-desktop.c (desktop_lex): Don't access memory deallocated with realloc(). Reported in: http://savannah.gnu.org/bugs/?47991 2016-05-23 Daiki Ueno tests: Add more tests for JavaScript format string * gettext-tools/tests/format-javascript-1: Add test for multiple uses of same argument. * gettext-tools/tests/format-javascript-2: Use proper flag to activate javascript format checker. javascript: Fix format type compatibility check * gettext-tools/src/format-javascript.c (format_check): Check if the two argument types are the same. 2016-05-20 Daiki Ueno tests: Add test for ITS search path * gettext-tools/tests/Makefile.am (TESTS): Add new test. * gettext-tools/tests/xgettext-its-2: New file. search-path: Fix XDG_DATA_DIRS traversal * gettext-tools/src/search-path.c (foreach_elements): Append "gettext" suffix to each element from XDG_DATA_DIRS. search-path: Don't relocate dirs given as envvar * gettext-tools/src/search-path.c (foreach_function_ty): New typedef. (path_array_ty): New struct. (foreach_components, increment, fill): New functions. (get_search_path): Rewrite using those functions. Relocate GETTEXTDATADIR here. * gettext-tools/src/search-path.h (get_search_path): Update documentation. * gettext-tools/src/msgfmt.c (main): Don't relocate directories in ITS search path. * gettext-tools/src/xgettext.c (main): Likewise. 2016-05-19 Daiki Ueno Update after Gnulib changed * gnulib-local/lib/gettext.h: Update from gnulib. * gettext-runtime/m4/extern-inline.m4: Likewise. * gettext-runtime/m4/intdiv0.m4: Likewise. Update gnulib * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Explicitly pull 'gettext', as the module is now marked as obsolete. * gnulib-local/Makefile.am (EXTRA_DIST): Remove m4/hard-locale.m4.diff. * gnulib-local/m4/hard-locale.m4.diff: Remove, as it is no longer needed. * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gettext-tools/libgettextpo/.gitignore: Likewise. 2016-05-18 Daiki Ueno maint: Add --no-git option to autogen.sh * autogen.sh: Port --no-git option from Gnulib's bootstrap. 2016-05-16 Daiki Ueno msgfmt, xgettext: Respect XDG_DATA_DIRS Suggested in https://savannah.gnu.org/bugs/?47123 * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add 'xmemdup0'. * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gettext-tools/src/search-path.c: New file. * gettext-tools/src/search-path.h: New file. * gettext-tools/src/Makefile.am (noinst_HEADERS): Add search-path.h. (libgettextsrc_la_SOURCES): Add search-path.c. * gettext-tools/src/msgfmt.c: Include "search-path.h". (main): Use get_search_path to locate ITS directories. * gettext-tools/src/xgettext.c: Include "search-path.h". (main): Use get_search_path to locate ITS directories. javascript: Avoid uninitialized variable * gettext-tools/src/format-javascript.c (format_check): Fix loop initialization. Spotted by clang-analyzer. 2016-03-26 Hanno Boeck (tiny change) lua: Avoid heap buffer overflow * gettext-tools/src/x-lua.c (string_end): Allocate a room for terminating NUL. Reported in: http://savannah.gnu.org/bugs/?4753 2016-03-23 Daiki Ueno format-python-brace: Support chained expression * gettext-tools/src/format-python-brace.c (parse_directive): Recognize chained getattr/getitem expressions. * gettext-tools/tests/format-python-brace-1: Add test for the case where both getattr and getitem are used. Reported by Paul Franklin in: https://lists.gnu.org/archive/html/bug-gettext/2016-03/msg00017.html doc: Fix ngettext usage example * gettext-tools/doc/gettext.texi (Plural forms): Fix positional argument syntax in the C example. Reported by Jonathan Leffler in: http://lists.gnu.org/archive/html/bug-gettext/2016-03/msg00002.html 2016-03-22 Daiki Ueno javascript: Fix invalid memory access * gettext-tools/src/format-javascript.c (format_parse): Fix numbered_arg allocation for the unnumbered case. Reported by Roger Mc Murtrie in: . 2016-03-22 Daiki Ueno maint: Clean up .gitignore * gettext-tools/gnulib-lib/.gitignore: Sort lines. 2016-03-02 Daiki Ueno xgettext: Put --its help in the right section * gettext-tools/src/xgettext.c (usage): Move --its=FILE option under "Language specific options" from "Output details". 2016-02-22 Daiki Ueno xgettext: Add new check bullet-unicode * gettext-tools/src/xgettext.c (main): Generalize --check option handling. * gettext-tools/src/message.h (enum syntax_check_type): New enum value sc_bullet_unicode. (NSYNTAXCHECKS): Increment. * gettext-tools/src/message.c (syntax_check_name): Add name for sc_bullet_unicode. * gettext-tools/src/msgl-check.c (struct bullet_ty, struct bullet_stack_ty): New struct. (bullet_stack): New variable. (syntax_check_bullet_unicode): New function. (sc_funcs): Register syntax_check_bullet_unicode as a check function for sc_bullet_unicode. * gettext-tools/tests/xgettext-14: Add tests for --check=bullet-unicode 2016-02-10 Daiki Ueno doc: Mention the behavior stripping *.in * gettext-tools/doc/gettext.texi (Preparing ITS Rules): Add footnote explaining the matching behavior if the input file name has the .in suffix. Suggested by Jan Synacek. 2016-02-08 Daiki Ueno javascript: Support '%m$' in format strings Gjs has had support for numbered arguments in format strings since 1.40. Recognize it as well in format-javascript, so msgfmt -c doesn't fail when numbered arguments are in msgstr. Reported by Sean Burke in: https://lists.gnu.org/archive/html/bug-gettext/2015-10/msg00002.html * gettext-tools/src/format-javascript.c (struct numbered_arg): New struct. (struct spec): Rename format_args_count to numbered_arg_count. Add NUMBERED field in place of FORMAT_ARGS. All callers changed. (numbered_arg_compare): New function. (format_parse): Handle numbered arguments. Based on format-awk.c. (format_check): Add check for numbered arguments. * gettext-tools/tests/format-javascript-1: Add tests for numbered arguments. * gettext-tools/tests/lang-javascript: Use numbered argument in format strings. Add check for Gjs version >= 1.40. moopp: Revert file modes accidentally set 2016-01-20 KO Myung-Hun gettext-tools: Use a short name for DLLs on OS/2 OS/2 does not support a DLL name longer than 8 characters. * gettext-tools/configure.ac (OS2): Define on OS/2. * gettext-tools/gnulib-lib/Makefile.am (libgettextlib_la_LDFLAGS): Set a DLL name to gtlib on OS/2. * gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_LDFLAGS): Set a DLL name to gtpo on OS/2. * gettext-tools/src/Makefile.am (libgettextsrc_la_LDFLAGS): Set a DLL name to gtsrc on OS/2. 2016-01-20 KO Myung-Hun libasprintf: Build a shared library on OS/2 * gettext-runtime/libasprintf/configure.ac (LTNOUNDEF): Set to -no-undefined on OS/2. 2016-01-20 KO Myung-Hun intl: Support UNIXROOT in BINDTEXTDOMAIN () on EMX $UNIXROOT is a drive on which a root of FHS is. * gettext-runtime/intl/bindtextdom.c (BINDTEXTDOMAIN): Prepend $UNIXROOT to dirname if it is started '/' or it is an empty string. 2016-01-20 KO Myung-Hun moop: Replace CR as well as LF with a space On OS/2, EOL marker is CR+LF. * gnulib-local/bulid-aux/moopp (func_check_header_syntax): Replace CR as well as LF with a space. 2016-01-15 Bruno Haible Change msgfmt to produce little-endian .mo files by default. * gettext-tools/src/msgfmt.c (main): Initialize 'byteswap' so as to produce little-endian .mo files by default. * gettext-tools/doc/gettext.texi: Update documentation. * gettext-tools/doc/msgfmt.texi (--endianness): Likewise. 2016-01-13 Daiki Ueno maint: Revert copyright year changes in test data Some test programs started failing after mass update of copyright notice for year 2016 (commit 7fa0c277), because of embedded test data with fixed copyright dates. Revert the commit for those files. Reported by Bruno Haible. * .x-update-copyright: Exclude test programs embedding copyright date. * gettext-tools/tests/msgcomm-22: Revert the last change. * gettext-tools/tests/msgfilter-sr-latin-1: Likewise. * gettext-tools/tests/msggrep-1: Likewise. * gettext-tools/tests/msggrep-2: Likewise. * gettext-tools/tests/msggrep-3: Likewise. * gettext-tools/tests/msggrep-4: Likewise. * gettext-tools/tests/msggrep-5: Likewise. * gettext-tools/tests/msggrep-9: Likewise. * gettext-tools/tests/msggrep-11: Likewise. * gettext-tools/tests/msgmerge-14: Likewise. 2016-01-07 Daiki Ueno its: Recognize *.glade as a GtkBuilder file too 2016-01-05 Santiago Vila (tiny change) * PACKAGING: List version specific files 2016-01-02 Daiki Ueno maint: Update copyright year Update gnulib maint: Use maintainer-makefile from gnulib * autogen.sh: Pull GNUmakefile, maint.mk, and dependency scripts in build-aux. * cfg.mk (update-copyright-env): Adjust for gettext. * .x-update-copyright: New file. * .gitignore: Ignore files brought in by gnulib-tool. 2015-12-28 Daiki Ueno maint: Update release-steps to current practice * Admin/release-steps: Split document into two sections ('Making a snapshot release' and 'Making an official release'), reorder some steps, and remove mention of manual generation of PO/POT files. Update translations * gettext-runtime/po/fr.po: Update from Stéphane Aulery . * gettext-runtime/po/nb.po: Update from Johnny A. Solbu . * gettext-runtime/po/pt_BR.po: Update from Rafael Ferreira . * gettext-runtime/po/sr.po: Update from Мирослав Николић . * gettext-runtime/po/zh_TW.po: Update from Wei-Lun Chao . * gettext-tools/examples/po/fr.po: Update from Stéphane Aulery . * gettext-tools/examples/po/nb.po: Update from Johnny A. Solbu . * gettext-tools/examples/po/pt_BR.po: Update from Rafael Ferreira . * gettext-tools/examples/po/sr.po: Update from Мирослав Николић . * gettext-tools/examples/po/zh_TW.po: Update from Wei-Lun Chao . * gettext-tools/po/bg.po: Update from Roumen Petrov . * gettext-tools/po/es.po: Update from Antonio Ceballos . * gettext-tools/po/fr.po: Update from Stéphane Aulery . * gettext-tools/po/ja.po: Update from Masahito Yamaga . * gettext-tools/po/nl.po: Update from Benno Schulenberg . * gettext-tools/po/pt_BR.po: Update from Rafael Fontenelle . * gettext-tools/po/sk.po: Update from Marcel Telka . * gettext-tools/po/sl.po: Update from Primoz PETERLIN . * gettext-tools/po/sr.po: Update from Мирослав Николић . * gettext-tools/po/uk.po: Update from Yuri Chornoivan . * gettext-tools/po/vi.po: Update from Trần Ngọc Quân . Prepare for 0.19.7 doc: Regenerate translation matrix * gettext-runtime/ABOUT-NLS: Regenerate for 0.19.7. * gettext-runtime/doc/matrix.texi: Regenerate for 0.19.7. NEWS: Add 0.19.7 changes Update gnulib Ignore file brought by gnulib-tool * gettext-tools/gnulib-tests/.gitignore: Ignore file brought by gnulib-tool. 2015-12-23 Daiki Ueno term-ostream-tests: Add test data for FreeBSD 10.1 * gnulib-local/modules/term-ostream-tests: Add test-term-ostream-xterm-freebsd101.out. * gnulib-local/tests/test-term-ostream-xterm: Use new test data. * gnulib-local/tests/test-term-ostream-xterm-freebsd101.out: New file. 2015-12-21 Daiki Ueno cldr-plurals: Fix errors from clang-analyzer * gettext-tools/src/cldr-plurals.c (extract_rules): Add extra null checks for NODE and BUFFER. Don't add NUL byte to the end of buffer manually. 2015-12-17 Daiki Ueno po: Prefer to use host tools when cross compiling * gettext-runtime/po/Makefile.in.in (CROSS_COMPILING): New substitute variable. (.nop.po-update): Don't prepend ../src to $PATH when cross compiling. * gettext-runtime/po/Rules-quot (.insert-header.po-update-en): Likewise. its: Allow CDATA and comments in translatable node * gettext-tools/src/its.c (its_rule_list_is_translatable): Don't return false on CDATA and comments. its: Fix typo in GSettings rule * gettext-tools/its/gsettings.its: Fix typo in escape rule. 2015-12-15 Daiki Ueno gnulib-local: Fix link error due to symbol dupes * gnulib-local/lib/libxml/trionan.c (minus_zerod): Mark as static. gnulib-local: Pull more functions for libxml * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gnulib-local/modules/libxml (Depends-on): Add 'pow', 'log10', and 'fabs'. gnulib-local: Replace libxml2 trio with Gnulib * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gnulib-local/lib/libxml/triodef.h: Remove. * gnulib-local/lib/libxml/trionan.c: Replace it with Gnulib functions. * gnulib-local/lib/libxml/trionan.h: Remove. * gnulib-local/modules/libxml (Depends-on): Add 'isinf', 'isnan', and 'signbit'. 2015-12-14 Daiki Ueno gnulib-local: Update included libxml2 to 2.9.3 * gnulib-local/lib/libxml/*: Update from libxml2 2.9.3. Add buf.[ch], enc.h, save.h, triodef.h, trionan.[ch]. Enable XPath and XPointer support. * gnulib-local/modules/libxml (Files): Add new files from libxml2 2.9.3. 2015-12-10 Daiki Ueno gettext-tools: Update POTFILES.in * gettext-tools/po/POTFILES.in: Add newly added files. gnulib-local: Make markup.c translator friendly * gnulib-local/lib/markup.c: Reuse strings. its: Mark some attributes as escape="no" * gettext-tools/its/glade2.its: Mark "comments" attribute as escape="no". * gettext-tools/its/gsettings.its: Mark "context" attribute as escape="no". * gettext-tools/its/gtkbuilder.its: Mark "comments" attribute as escape="no". xgettext: Respect ITS escape rule for attributes * gettext-tools/src/its.c (its_rule_list_extract_text): Check for "escape" value for an attribute node. * gettext-tools/tests/xgettext-its-1: Add tests for gt:escapeRule. 2015-12-10 KO Myung-Hun (tiny change) intl: Fix name resolution failures on kLIBC kLIBC already has _nl_default_dirname and _nl_msg_cat_cntr in its own gettext implmenetation. * gettext-runtime/intl/dcigettext.c: Do not declare _nl_default_dirname on kLIBC. * gettext-runtime/intl/gettextP.h: Define _nl_msg_cat_cntr to libintl_nl_msg_cat_cntr on kLIBC. build: Do not include os2compat.[ch] kLIBC does not need os2compat.[ch] * gettext-runtime/configure.ac (AH_BOTTOM): Do not include intl/os2compat.h on kLIBC. * gettext-runtime/intl/osdep.c: Do not include os2compat.c on kLIBC. * gettext-tools/configure.ac (AH_BOTTOM): Do not include intl/os2compat.h on kLIBC. test-lock: Do not include sched.h on kLIBC * gettext-runtime/tests/test-lock.c: Do not include sched.h on kLIBC, since kLIBC does not have sched.h. 2015-12-10 Daiki Ueno kde: Fix KUIT error handling when libxml2 is used * gettext-tools/src/format-kde-kuit.c (format_parse): Return NULL if xmlReadMemory returns NULL. xgettext: Add --its option for ease of testing * gettext-tools/doc/xgettext.texi (Output details): Mention --its option. * gettext-tools/src/xgettext.c (long_options): Add --its option. (main): Handle --its option. Suggested by Sébastien Wilmet. xgettext: Improve error reporting when ITS is used * gettext-tools/src/xgettext.c (main): Print error when an ITS file is designated through a locating rule, but the file does not exist. build: Update DEPENDENCIES * DEPENDENCIES: Remove duplicate entry for libxml2. 2015-12-09 Daiki Ueno build: Remove expat dependency * DEPENDENCIES: Suggest libxml2 instead of expat. * gnulib-local/lib/markup.c: New file. * gnulib-local/lib/markup.h: New file. * gnulib-local/modules/markup: New file. * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Add markup module. * gettext-tools/configure.ac: Remove checks for expat. * gettext-tools/gnulib-lib/.gitignore: Ignore modules pulled by gnulib-tool due to the markup module usage. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gettext-tools/libgettextpo/.gitignore: Likewise. * gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_AUXSOURCES): Remove ../src/libexpat-compat.c. (libgettextpo_la_LDFLAGS): Remove @LTLIBEXPAT@. * gettext-tools/src/Makefile.am (noinst_HEADERS): Remove libexpat-compat.h. (libgettextsrc_la_SOURCES): Remove libexpat-compat.c. (libgettextsrc_la_LDFLAGS): Remove @LTLIBEXPAT@. * gettext-tools/src/format-kde-kuit.c: Use functions from markup.h, when the file is being compiled as part of libgettextpo. Otherwise use libxml2. * gettext-tools/src/libexpat-compat.c: Remove. * gettext-tools/src/libexpat-compat.h: Remove. 2015-12-08 Daiki Ueno build: Fix texi2html failure with perl 5.22 * gettext-runtime/libasprintf/texi2html (update_sec_num): Don't use "defined" against an array ref. * gettext-tools/doc/texi2html (update_sec_num): Likewise. Update gnulib xgettext: Ignore --from-code when XML mode * gettext-tools/src/xgettext.c (extract_from_xml_file): Forcibly set current source encoding to UTF-8, on XML mode. build: Suppress compiler warning * gettext-tools/src/its.c (its_rule_list_extract_text): Remove unused local variable "message". 2015-12-04 Daiki Ueno msgfmt: Support XML file merging * gettext-tools/src/Makefile.am (noinst_HEADERS): Add write-xml.h. (msgfmt_SOURCES): Add write-xml.c. * gettext-tools/src/its.c (its_merge_context_merge_node): New function. (its_merge_context_merge): New function. (its_merge_context_alloc): New function. (its_merge_context_write): New function. (its_merge_context_free): New function. * gettext-tools/src/its.h (its_merge_context_ty): New type. * gettext-tools/src/msgfmt.c: Include "its.h", "locating-rule.h", and "write-xml.h". (SIZEOF): New macro. (xml_mode, xml_locale_name, xml_template_name, xml_base_directory, xml_language, xml_its_rules): New variable. (long_options): Add --language and --xml. (main): Handle new options. (usage): Document new options. (msgfmt_xml_bulk): New function. * gettext-tools/src/write-xml.c: New file. * gettext-tools/src/write-xml.h: New file. * gettext-tools/doc/gettext.texi: Mention XML file merging use-case. * gettext-tools/doc/msgfmt.texi: Mention --xml option. * gettext-tools/tests/msgfmt-xml-1: New file. * gettext-tools/tests/msgfmt-xml-2: New file. * gettext-tools/tests/Makefile.am (TESTS): Add new tests. xgettext: Rewrite Glade scanner in ITS * gettext-tools/its/glade.loc: New file. * gettext-tools/its/glade1.its: New file. * gettext-tools/its/glade2.its: New file. * gettext-tools/its/gtkbuilder.its: New file. * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files. * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-glade.c. * gettext-tools/src/x-glade.c: Remove. * gettext-tools/src/x-glade.h (EXTENSIONS_GLADE): Set language field to NULL. (SCANNERS_GLADE): Set func field to NULL. * gettext-tools/po/POTFILES.in: Remove x-glade.c xgettext: Rewrite GSettings scanner in ITS * gettext-tools/its/gsettings.its: New file. * gettext-tools/its/gsettings.loc: New file. * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files. * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-gsettings.c. * gettext-tools/src/x-gsettings.c: Remove. * gettext-tools/src/x-gsettings.h (EXTENSIONS_GSETTINGS): Set language field to NULL. (SCANNER_GSETTINGS): Set func field to NULL. xgettext: Rewrite AppData scanner in ITS * gettext-tools/its/appdata.loc: New file. * gettext-tools/its/appdata.its: New file. * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files. * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-appdata.c. * gettext-tools/src/x-appdata.c: Remove. * gettext-tools/src/x-appdata.h (EXTENSIONS_APPDATA): Set language field to NULL. (SCANNERS_APPDATA): Set func field to NULL. xgettext: Add support for generic XML files * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add trim module. * gettext-tools/src/locating-rule.h: New file. * gettext-tools/src/locating-rule.c: New file. * gettext-tools/src/its.h: New file. * gettext-tools/src/its.c: New file. * gettext-tools/src/xgettext.c: Include "locating-rule.h" and "its.h". (its_locators): New variable. (long_options): Add --itstool option. (extract_from_xml_file): New function. (main): Handle --itstool option. (usage): Document --itstool option. * gettext-tools/src/Makefile.am (noinst_HEADERS): Add locating-rule.h and its.h. (libgettextsrc_la_CPPFLAGS): Add $(INCXML). (libgettextsrc_la_SOURCES): Add locating-rule.c and its.c. * gettext-tools/Makefile.am (SUBDIRS): Add its directory. * gettext-tools/configure.ac: Output its/Makefile. * gettext-tools/doc/gettext.texi (Preparing ITS Rules): New section. * gettext-tools/doc/xgettext.texi: Mention --itstool option. * gettext-tools/tests/Makefile.am (TESTS): Add new tests. * gettext-tools/tests/xgettext-its-1: New file * gettext-tools/tests/init-env.in: Set GETTEXTDATADIR for ITS tests. 2015-11-18 Daiki Ueno cldr-plurals: Add sanity checks for input * gettext-tools/src/cldr-plurals.c (extract_rules): Add null checks and element type checks. 2015-11-17 Daiki Ueno cldr-plurals: Rewrite XML handling using libxml2 * src/cldr-plurals.c: Include and , instead of "libexpat-compat.h". (extract_locale, extracted_rules, parser, logical_file_name) (struct element_state, stack, stack_size, stack_depth) (ensure_stack_size, start_element_handler, end_element_handler) (character_data_handler): Remove. (extract_rules): Rename from extract_rule and rewrite using DOM. (main): Use extract_rules. * src/Makefile.am (cldr_plurals_CFLAGS): Add $(INCXML). cldr-plurals: Fix a trivial leak * src/cldr-plural.y (sample_range): Free unused operand value. 2015-11-17 Phil Davis (tiny change) doc: Fix typo in gettext_noop example * doc/gettext.texi (Special cases): Add missing ')' to a gettext_noop call. 2015-10-29 Daiki Ueno maint: Ignore more generated ChangeLogs * .gitignore: Add gettext-runtime/intl/ChangeLog, gettext-runtime/po/ChangeLog, and gettext-tools/po/ChangeLog. m4: Fix typo in usage comment * gettext-runtime/m4/gettext.m4: Remove duplicate words. * gettext-runtime/m4/intl.m4: Likewise. * gettext-runtime/m4/intldir.m4: Likewise. * gettext-runtime/m4/intlmacosx.m4: Likewise. * gettext-runtime/m4/lcmessage.m4: Likewise. * gettext-runtime/m4/nls.m4: Likewise. * gettext-runtime/m4/po.m4: Likewise. * gettext-runtime/m4/progtest.m4: Likewise. Reported by Jakub Wilk in: https://lists.gnu.org/archive/html/bug-gettext/2015-10/msg00026.html. doc: Fix typo in msgfmt invocation * gettext-tools/doc/msgfmt.texi: Fix the documentation of -d option, used in the Desktop Entry mode. 2015-10-15 Daiki Ueno build: Generate ChangeLogs for intl and po * autogen.sh: Create empty ChangeLog files under intl and po. * Makefile.am (gen-ChangeLogs): Rename from gen-ChangeLog. Generate ChangeLog files for */intl and */po as well as top-level. * gettext-runtime/intl/ChangeLog.0: Rename from ChangeLog. * gettext-runtime/po/ChangeLog.0: Rename from ChangeLog. * gettext-tools/po/ChangeLog.1: Rename from ChangeLog. build: Distribute old ChangeLogs in tarball * Makefile.am (changelog_etc): Remove non-existent ChangeLog files under intl and po. (EXTRA_DIST): Add $(changelog_etc). 2015-10-14 Mike Frysinger tests: use check_PROGRAMS The noinst_xxx targets will be compiled all the time. For test programs, the check_xxx targets make more sense as they'll only be built when the user runs `make check`. * gettext-runtime/tests/Makefile.am (noinst_PROGRAMS): Rename to ... (check_PROGRAMS): ... this. 2015-10-14 Mike Frysinger intl/localename: control langinfo.h inclusion This header is only used to work around buggy behavior in old versions of glibc, so do not include it all the time. Otherwise we get build failures on systems that do not provide langinfo.h. * gettext-runtime/intl/localename.c: Wrap langinfo.h include with same ifdefs used in the source later on. 2015-10-14 Daiki Ueno build: Remove ChangeLogs Generate ChangeLog files at "make dist" time, using gitlog-to-changelog. We still keep ChangeLog files under "po" and "intl" directories, since those files are copied as part of gettext infrastructure and it is still meaningful to have them there. * .gitignore: Add ChangeLog files. * Admin/release-steps: Remove mention of running update-changelog script. * Admin/update-changelog: Remove. * Makefile.am (gen-ChangeLog): New rule. * autogen.sh: Copy gitlog-to-changelog from gnulib. Create empty ChangeLog files to suppress Automake errors. * gettext-tools/doc/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gettext-tools/man/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gettext-tools/src/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gettext-tools/tests/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gnulib-local/Makefile.am (EXTRA_DIST): Remove ChangeLog files. * */ChangeLog: Rename to ChangeLog.0 or ChangeLog.1. * HACKING: Add brief guideline to submit patches. usr/share/doc/pinentry/ChangeLog000064400000213361152527411420012657 0ustar002017-12-03 Werner Koch Release 1.1.0. + commit 02df3d26b986c8f2850eeba47efcb3aca9d5dbcb 2017-11-22 Damien Goutte-Gattat "deloptes" tqt: Add a TQt-based pinentry. + commit 985e5cad6f60de8e60d8ae410cffcd7e2d84f3a2 * NEWS: Update. * Makefile.am: Add new tqt subdirectory. * configure.ac: Add --enable-pinentry-tqt option. * tqt/Makefile.am: New file. * tqt/main.cpp: New file. * tqt/pinentrydialog.cpp: New file. * tqt/pinentrydialog.h: New file. * tqt/secqinternal.cpp: New file. * tqt/secqinternal_p.h: New file. * tqt/secqlineedit.cpp: New file. * tqt/secqlineedit.h: New file. * tqt/secqstring.cpp: New file. * tqt/secqstring.h: New file. 2017-11-21 Werner Koch w32: Allow building for Windows again. + commit 8ea3a6c3f8e72ebece2af9b1b05ea1da4865a786 * pinentry/pinentry.c [W32]: Do not include utsname.h (WITH_UTF8_CONVERSION): New macro. (lc_ctype_unknown_warning): Move that var to the top and define only if needed. (pinentry_utf8_to_local, pinentry_local_to_utf8): Simplyfy by using the new macro. (get_cmdline) [W32]: Do not build. (get_pid_name_for_uid) [W32]: Do not build. (pinentry_get_title) [W32]: Do not use the new utsname code. (option_handler) : Ignore for any Windows version. 2017-11-20 Werner Koch Add SPDX-License-Identifier to most files. + commit 622f876784239c9524a598e6486181bcd0ee64b2 Add copyright info for AUTHORS. + commit 738ab548f13cc032f01ca5da1f8dc3ea221b209d 2017-11-16 Damien Goutte-Gattat fltk: Fix compilation and distcheck errors. + commit 89ae5378d1cc54be0825bcfa3ea567b1caa4a247 * fltk/Makefile.am (AM_CXXFLAGS): Add -std=c++11 flag. (pinentry_fltk_SOURCES): Add header files. (EXTRA_DIST): Add icon files. * .gitignore: Ignore autoconf-generated files in fltk/. 2017-10-19 Daniel Kahn Gillmor core: Expect (and verify) a uid on "owner" option. + commit 6aafa61b199ab9091d6c9e190129f2ead2a647c7 * pinentry/pinentry.h (struct pinentry): Add field 'owner_uid'. * pinentry/pinentry.c (pinentry_reset): Handle this new field. (get_pid_name_for_uid): New. Atomic check for the base process name contingent on process ownership. (pinentry_get_title): Only scan for full commandline if the process actually belongs to the claimed uid. (option_handler): Option "owner" now expects "pid/uid hostname". 2017-10-12 Daniel Kahn Gillmor core: Only scan for the command line if probably on the same host. + commit 1f5b351531205214e9513a0aed170660dc822ceb * pinentry/pinentry.c (pinentry_get_title): Check the current hostname and make sure it matches. If it does not, do not bother looking for the command line. core: Clean up command line extraction. + commit 242b658289488696d371c639c1da631712bd774c * pinentry/pinentry.c (get_cmdline): Avoid trailing space, and return NULL when no bytes were read from /proc. tty: correct comments. + commit d7c54372512fbbd77709a3ea913b902061e5d45d * tty/Makefile.am, tty/pinentry-tty.c: comments were copy/pasted from pinentry-curses; correcting them. 2017-08-23 Damien Goutte-Gattat gtk: Really always set the window as transient. + commit 2b1fb2f30a94a967dacec298e3c7d8a80b4c3194 * gtk+-2/pinentry-gtk-2.c (make_transient): Set the window as transient even if we do not grab the keyboard. 2017-08-23 Marcus Brinkmann core: Supress compiler warnings. + commit 858bde1fbbc5e14f2d6410da05869188bdc36ee3 * pinentry/password-cache.c (password_cache_save, password_cache_lookup, password_cache_clear) [!HAVE_LIBSECRET]: Suppress unused parameter warnings. 2017-08-04 Damien Goutte-Gattat gtk: Disable tooltips in keyboard-grabbing mode. + commit 1590b664d88be8386a4664c2994b685187d1eb25 * gtk+-2:/pinentry-gtk-2.c (show_hide_button): Do not show the tooltip if we attempt to grab the keyboard. (create_window): Likewise. 2017-07-12 Daiki Ueno doc: Make Emacs frontend description more accurate. + commit ebfa54e6044420ae12a090cdef9df7e7b0d961d2 * doc/pinentry.texi (Front ends): Remove false assertions on insecurity of Emacs, and mention allow-emacs-pinentry option of gpg-agent. 2017-07-12 Marcus Brinkmann core: Disable "save passphrase" checkbox without secret service. + commit e57bcb7a2acff3a61a342d24e6a55407bf736631 * pinentry/password-cache.c (password_cache_lookup): New argument FATAL_ERROR. Set it on fatal error. * pinentry/password-cache.h (password_cache_lookup): New argument FATAL_ERROR in declaration. * pinentry/pinentry.c (cmd_getpin): On fatal error, disallow external password store. * NEWS: Update. 2017-07-11 Alon Bar-Lev Use pkg-config consistently. + commit 6053cb4f3873897acf5d899bc6f02046d0748a0f * configure.ac: Invoke PKG_PROG_PKG_CONFIG. Consistently use PKG_CHECK_MODULES for GTK+2.0, Gnome 3 and libsecret. * gnome3/Makefile.am (AM_CPPFLAGS, LDADD): Adjust Gnome 3 flags. * gtk+-2/Makefile.am (AM_CPPFLAGS, LDADD): Adjust Gtk+2.0 flags. 2017-07-11 Marcus Brinkmann curses: Add option to beep or flash terminal on dialog. + commit 1dba96fafa123f3631c0a50bb01835306c23b903 * pinentry/pinentry-curses.c (dialog_run): Beep or flash terminal. * pinentry/pinentry.c (pinentry_reset): Reset ttyalert option. (pinentry_parse_opts): Parse option ttyalert. (option_handler): Handle option ttyalert. * pinentry/pinentry.h (struct pinentry): New option ttyalert. 2017-07-05 Damien Goutte-Gattat gtk: Always set the window as transient. + commit f69dadc6ccea7672869436291ab5c1f58d545466 * gtk+-2/pinentry-gtk-2.c (create_window): Setup the make_transient callback whether we ask for a passphrase or not. 2017-05-03 Andre Heinecke qt: Improve width of pinentryconfirm. + commit 4101806bf73caf25c8ce4e455b154901da1fe788 * qt/pinentryconfirm.cpp (PinentryConfirm::showEvent): Add spacer item for text width. qt: Fix build with Qt4. + commit 8bf41fe086438de9fa223ccf4162ed9d98e54646 * qt/main.cpp (main): Don't use Q_NULLPTR. 2017-03-08 Justus Winter fltk: Remove commented-out code. + commit 5c3f796798d655b5583257f9dfc81ae9c1427fb3 * fltk/main.cxx: Remove commented-out code. fltk: Fix warning. + commit 2b2bbc9f67115baf518514281d3911b727b1caf9 * fltk/main.cxx (fltk_cmd_handler): Use a 'std::unique_ptr' instead of a deprecated 'std::auto_ptr'. 2017-03-08 Anatoly madRat L. Berenblit fltk: Add a FLTK-based pinentry. + commit 6c45eed62214b44fcc11e642b19df7b6ca0da0bd * NEWS: Update. * Makefile.am: Add new subdirectory. * configure.ac: Add configuration for FLTK. * fltk/Makefile.am: New file. * fltk/encrypt.xpm: Likewise. * fltk/icon.xpm: Likewise. * fltk/main.cxx: Likewise. * fltk/passwindow.cxx: Likewise. * fltk/passwindow.h: Likewise. * fltk/pinwindow.cxx: Likewise. * fltk/pinwindow.h: Likewise. * fltk/qualitypasswindow.cxx: Likewise. * fltk/qualitypasswindow.h: Likewise. 2017-02-13 Andre Heinecke qt: Fix pinentry-curses fallback for qt5. + commit cd7b35e8ff106993b9ce98ea99a5210d637f3452 * qt/main.cpp (main): Initialize QApplication later. 2017-02-03 Werner Koch core: Show the command line in the titlebar. + commit e467a000f87e87582f5838964b6f1e0a960d4445 * pinentry/pinentry.c (get_cmdline): New. (pinentry_get_title): Add the cmdline to the title. Use a shared function to construct the title. + commit 36d32fbdedb07b285d01871b3ee66400c81681d3 * pinentry/pinentry.c (pinentry_get_title): New. * qt/main.cpp (qt_cmd_handler): Use that function for the title. * tty/pinentry-tty.c (confirm, password): Ditto. * gnome3/pinentry-gnome3.c (create_prompt): Ditto. * gtk+-2/pinentry-gtk-2.c (create_window): Ditto. * pinentry/pinentry-emacs.c (set_labels): Ditto. gtk: Unless SETTITLE is used show the pid in the titlebar. + commit c0d60e130b9bbd21801c8e71e80ab7c36f4ad6bd * gtk+-2/pinentry-gtk-2.c (create_window): Display the pid as title. core: New Assuan option "owner". + commit 61cde37b3e6a41bd24476d3c285288c12da0ed60 * pinentry/pinentry.h (struct pinentry): Add fields 'owner_pid' and 'owner_host'. * pinentry/pinentry.c (pinentry_reset): Take care of these fields. (option_handler): New option "owner". curses: Do not return OK on error. + commit ce745a292192b01203ba5f557205a6f000bff953 * pinentry/pinentry.c (cmd_confirm): Take care not to return OK if the RESULT is negative. * pinentry/pinentry-curses.c (dialog_create): Amend error reporting by setting specific_err_loc. (dialog_run): Use new var confirm_mode for clearness. In confirm mode return Cancel instead of error. This is how the gtk Pinentry does it. core: New command getinfo/ttyinfo. + commit cd45d74d07512f8ec8d2b3306a1804457dd12964 * pinentry/pinentry.c (remember_display): New var. (pinentry_have_display): Peek at --display. (pinentry_parse_opts): Set pinentry.display. (cmd_getinfo): Add sub-command "ttyinfo". 2017-02-03 Werner Koch Vincent Lefevre gtk2: Fix a problem with fvwm. + commit b0e0bdeac5d40ca645afc9017778b39a26303523 * gtk+-2/pinentry-gtk-2.c (grab_pointer): Take care of GDK_GRAB_ALREADY_GRABBED. 2017-01-16 Justus Winter gnome3: Use the program name as default title. + commit 8e3aa3204e74e8d7a7538e0d0f04e555f140131b * gnome3/pinentry-gnome3.c (create_prompt): If no title is requested, use the program name as the default title. This mimics what the GTK+2 variant does (although the GTK+2 pinentry seems to use basename(argv[0])). 2017-01-13 NIIBE Yutaka gnome3: Fix CONFIRM condition. + commit c725fdd260b0c2291660ff954e6b2250006ec08f * gnome3/pinentry-gnome3.c (gnome3_cmd_handler): No buffer for PIN means it's not passphrase input but confirmation dialog. 2016-12-19 Raphael Kubo da Costa Qt: Make sure extended grep is used with '|'. + commit 1acb06aac3dd08f573d7c2e3be75226346e61ed2 * m4/qt.m4: Use grep -E when using the alternation character. 2016-12-01 Werner Koch Fix linkage problem in tty and emacs pinentries. + commit c5c7bee68730c9f66a27f9bb0d023480623a2bfb * emacs/pinentry-emacs.c (curses_cmd_handler): Remove var. * tty/pinentry-tty.c (curses_cmd_handler): Remove var. * pinentry/pinentry.c (flavor_flag): New local var. (pinentry_set_flavor_flag): New function. (cmd_getinfo): Use FLAVOR_FLAG for the "flavor" sub-command. * gnome3/pinentry-gnome3.c (main): Call pinentry_set_flavor_flag. * gtk+-2/pinentry-gtk-2.c (main): Ditto. * pinentry/pinentry-emacs.c (initial_emacs_cmd_handler): Ditto. * qt/main.cpp (main): Ditto. 2016-11-22 Werner Koch Create SWDB entry during make distcheck. + commit d015020b56dc11848d638d8a0f22c11971f896ea * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Build emacs flavor. (distcheck-hook): New. Release 1.0.0. + commit 5eb55801a70148111a78a7ffd8ee459790f1aafe emacs: Add curses handler stub. + commit d126036671e7dd631babc118cb4113f723f15748 * emacs/pinentry-emacs.c (curses_cmd_handler): New stub. 2016-11-08 Daniel Kahn Gillmor gnome3: Tighten up error messages when GNOME screensaver is absent. + commit cf8885fd5a61654a164f470fa3e7095b8e424258 * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): clean up error messages when GNOME screensaver is absent or misbehaving. 2016-11-07 Werner Koch Add fail-safe string termination for snprintf. + commit 8f51108a17d0080c33fae182f1e4b9259f10a9e5 * gtk+-2/pinentry-gtk-2.c (changed_text_handler): Make sure an snprintf buffer is always ternminated. * pinentry/pinentry.c (my_strusage): Ditto. (write_status_error): Ditto. (cmd_getinfo): Ditto. * w32/main.c (w32_strerror): Ditto. 2016-11-07 Daniel Kahn Gillmor gnome3: Avoid risk of uinitialized memory access. + commit 15a6fd9f1ee0e3bc62daf143546f5186ce947700 * gnome3/pinentry-gnome3.c (_propagate_g_error_to_pinentry): Ensure that pinentry->specific_err_info is null-terminated. tty: Declare dummy curses_cmd_handler. + commit e4e3a9cc88704dcffac660d0b92fd1ed8abecc11 * tty/pinentry-tty.c: Declare a dummy handler for the curses_cmd_handler for fallback. gnome3: Fall back to curses if screensaver is locked. + commit e353f4d1ac31e58f46eeba29279adf809dfb96a9 * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): New Function. Returns true only if we can talk to a GNOME screensaver over D-Bus and it assures us that it is locked. (main): If GNOME screensaver is locked, fall back to curses. 2016-11-05 Daniel Kahn Gillmor gnome3: Test if Gcr System Prompter is available at startup. + commit 2e17565fd9cb94afe840050780d28db75e5c4053 * gnome3/pinentry-gnome3.c (gcr_system_prompt_available): New. Tests whether it is possible to create a GcrSystemPrompt. (main): Use gcr_system_prompt_available() to decide whether to fall back to curses or not. build: Avoid unnecessary dependency on gtk+-2 for GNOME3 development. + commit b945576fe906ffcd5bcc50b4322ef2f34d8fb89f * configure.ac: There is no reason to reject building the GNOME3 pinentry if GTK+-2 development libraries are not present. GNOME3 does not require GTK+-2. 2016-11-05 Werner Koch gnome3: Avoid using gnome and gcr symbol namespace. + commit 799116010a57aec9a86c5529388111d54aff3c55 * gnome3/pinentry-gnome3.c (struct _gnome3_run): Rename to pe_gnome3_run_s. (_gcr_prompt_password_done): Rename to pe_gcr_prompt_password_done. (_gcr_prompt_confirm_done): Rename to pe_gcr_prompt_confirm_done. (_gcr_timeout_done): Rename to pe_gcr_timeout_done. 2016-11-05 Daniel Kahn Gillmor gnome3: Honor timeout. + commit f7b99ff5f7f78db45350308bf409ea4a9e94f161 * gnome3/pinentry-gnome3.c (create_prompt): Use timeout to determine how long to wait for Gcr to provide a system prompt before giving up. (_gcr_timeout_done): New. Record that a timeout has elapsed. (gnome3_cmd_handler): Set up a timeout before launching the prompt, and tear it down afterward. (_gcr_prompt_password_done): Report timeout differently from normal cancellation. (_gcr_prompt_confirm_done): Report timeout differently from normal cancellation. gnome3: Convert password/confirmation to asynchronous model. + commit d0fe54d592a8d2be6fc82b26290a644bb3629214 * gnome3/pinentry-gnome3.c (gnome3_cmd_handler): Convert main part of password or confirmation fetching into asynchronous code by moving completion into... (_gcr_prompt_password_done): ... here and... (_gcr_prompt_confirm_done): ... here. qt: Report timeout. + commit 102832a2c1f3ffa432e2a169791611bb3ca13a04 * qt/pinentryconfirm.h (PinentryConfirm): Add _timed_out, timedOut(). * qt/pinentrydialog.h (PinentryDialog): Add _timed_out, timedOut(). * qt/pinentryconfirm.cpp (slotTimeout): Record elapsed timeout. (PinentryConfirm): Initialize _timed_out to false. (timedOut): New. Returns value of _timed_out. * qt/pinentryDialog.cpp (slotTimeout): Record elapsed timeout. (PinentryDialog): Initialize _timed_out to false. (timedOut): New. Returns value of _timed_out. * qt/main.cpp (qt_cmd_handler): Report if canceled due to timeout. curses: Report timeout. + commit 784c4e0a3acace39a4a632bf443c794752297d54 * pinentry/pinentry-curses.c (dialog_run): Report if canceled due to timeout. gtk2: Report timeout. + commit 93b4454f4fe4d97dd89efccd64dbdd02bd002f77 * gtk+-2/pinentry-gtk-2.c (create_window): Send pointer to pinentry into timeout_cb. (timeout_cb): Report if canceled due to timeout. tty: Report timeout. + commit 3be5b4fabaabf86f085b0b5303a1312abb7d0617 * tty/pinentry-tty.c (confirm): Report if canceled due to timeout. (password): Report if canceled due to timeout. gnome3: Propagate GError messages to pinentry. + commit 19c2110557d0504c1b406bde24e86cb5eb552fc7 * gnome3/pinentry-gnome3.c (_propagate_g_error_to_pinentry): New. Send GError messages back out to pinentry error reporting. (create_prompt): Use _propagate_g_error_to_pinentry on error. (gnome3_cmd_handler): Use _propagate_g_error_to_pinentry on error. gnome3: Set parent window. + commit 96e3c5fcf210e971fe1ba66b9127ad51144fcc49 * gnome3/pinentry-gnome3.c (create_prompt): Tell Gcr about the caller window, if we know it. 2016-11-05 Werner Koch core: Add command getinfo/flavor. + commit 553af04cf9c103c2e2cd5085b0d5fb647a608d51 * pinentry/pinentry.c: Inlcude pinentry-curses.h. (cmd_getinfo): Add sub-command "flavor" 2016-11-03 Daniel Kahn Gillmor Convert to UTF-8. + commit 7b0a822460eb6f4bf28f85f38c64a86bb8f80d3d 2016-10-11 Daiki Ueno core: Don't report error on setting option 'allow-emacs-pinentry'. + commit a383ddeb76463ddcf5aca2fb38847ea3158c42a7 Previously "OPTION allow-emacs-pinentry" returned an error if the Emacs pinentry is not compiled in. Since it is merely an option, it would make more sense to just return OK. 2016-10-04 Werner Koch gnome3: Drop unnecessary use of gtk. + commit 65d8e0ec19795d9ec60d7f37f1511f65135cfd84 * configure.ac: pinentry-gnome3 only needs gcr-base, not gcr. * gnome3/pinentry-gnome3.c (main): Instead of testing whether GTK can be loaded, check for DBUS_SESSION_BUS_ADDRESS. (create_prompt): Use fprintf (stderr, ...) instead of g_warning (...), to align with the rest of pinentry.c. core: Add a way to print ERROR status lines. + commit 777650b9b021342ba887543396c67f9148218caf * pinentry/pinentry.h (struct pinentry): New fields SPECIFIC_ERR_LOC and SPECIFIC_ERR_INFO. * pinentry/pinentry.c (pinentry_reset): Free the new field. (write_status_error): New. (cmd_getpin): Use new fields. (cmd_confirm): Ditto. * gnome3/pinentry-gnome3.c (create_prompt): Set error for failed GCR_PROMPT. 2016-10-03 Ineiev tty: Provide default text for "notok". + commit db3b2bf0c7ae4d3d0fbeecfe6a9a77ea4ed0f84e * tty/pinentry-tty.c (confirm): Provide default text for "notok". tty: Fix underscore processing in accelerators. + commit f0ae2986708614bce9070eec77309e838c403db7 * tty/pinentry-tty.c (button): Fix underscore processing in accelerators. tty: Refactor usage of tolower. + commit aa969a09a1225f8fb683ba8d0c3ccc099dd8d1d3 * tty/pinentry-tty.c (button): Apply tolower to the result. * tty/pinentry-tty.c (confirm): Compare lowercased character instead of converting them every time. 2016-09-01 Werner Koch curses: Return better error codes for bad ttynames. + commit 4c5ae72d481ffd24ff93accee0b42e9b264285f2 * pinentry/pinentry-curses.c (dialog_create): Return better error codes. 2016-08-18 Andre Heinecke Qt: Add SetWindowPos based foreground hack for Win. + commit c032ea2dcb4ac3ce970e62eae88fd24bec822f9c * qt/pinentrydialog.cpp(raiseWindow): Add another fallback for our foreground window hacks. 2016-08-12 Andre Heinecke Qt: Disable automatic wrap for desc and errors. + commit 300755c1a10eec1f8bccd4182ed15c569473982c * qt/pinentrydialog.cpp (PinEntryDialog): Disable WordWrap. 2016-08-12 Kristian Fiskerstrand Qt: Append -std=c++11 if building against Qt 5.7. + commit fa97de673bd36758ae4ce151923435318f7c8877 * m4/qt.m4: Append -std=c++11 to CFLAGS if building against Qt 5.7 2016-08-04 Ben Kibbey Fix ncurses build. + commit 2227f67af53f38d3d7f97760f2553d2c9ed05969 * pinentry/Makefile.am: Add NCURSES_CFLAGS. 2016-08-02 Justus Winter gtk2: Also grab the pointer. + commit 2f1f1f06c1885d2f5a30ea734359613609be0743 * gtk+-2/pinentry-gtk-2.c (grab_pointer): New function. (ungrab_keyboard): Rename to 'ungrab_inputs' and also release the pointer grab. (create_window): Also grab the pointer. 2016-08-01 Justus Winter gtk2: Be more persistent trying to grab the keyboard. + commit ad390f29df34ef73f2393a8ad97cbe2d60af31e7 We seem to get the 'visibility-notify' event before X is willing to let us grab the keyboard, insisting that the target window is not viewable (sic). * gtk+-2/pinentry-gtk-2.c (grab_keyboard): Retry grabbing the keyboard. gtk2: Print keyboard grabbing errors. + commit fe5bb475da08cb46242825d5abe5b4d27e6086e3 * gtk+-2/pinentry-gtk-2.c (grab_strerror): New function. (grab_keyboard): Use the new function to print the error. gtk2: Avoid possible format string troubles. + commit abf4f9924412c7afb6ce6c08eeda81b4c5365ab5 * gtk+-2/pinentry-gtk-2.c (confirm_unhiding): Do not use message as format string. 2016-04-25 Andre Heinecke Qt: Only use one line action for visibility. + commit ed066c261594de69c3c2aeaac98aeaf74bbb5f9e * qt/pinentrydialog.cpp (PinEntryDialog::toggleVisibility): Toggle both lines in repeat mode. (PinEntryDialog::PinEntryDialog): Remove repeat line action. Qt: Move qualitybar below repeat. + commit d580304566b5b1c4e7c97c060d7a7b8c0b810ae3 * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Move quality bar below repeat. Qt: Do not take icon from theme. + commit 1532b60dcc5a45a74195cfbc20225006d027e7fa * qt/main.cpp (main): Revert changes to take icon from theme. 2016-04-15 Andre Heinecke Qt: Change qualitybar position back to below. + commit e925e8955b0a82f1a0e3c697704007c503a5f8b7 * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Change position back to below the entry. Fix label alignment. gtk2: Add a button to show/hide the passphrase. + commit f4b5049c68a79d5e4faba06447db5440936cefeb * gtk+-2/pinentry-gtk-2.c (HIG_TINY): New. (confirm_unhiding): New. (show_hide_button_toggled): New. (create_show_hide_button): New. (create_window): Add a show/hide button. 2016-04-14 Andre Heinecke Revert "GTK: Add visibility toggle button" + commit 3a10a0beddc059ce4b0d75bacf6d7f4e3148fcff This reverts commit 71b51e02cf20174ba7144765e985f7e889eaa429. GTK: Add visibility toggle button. + commit 71b51e02cf20174ba7144765e985f7e889eaa429 * gtk+-2/pinentry-gtk-2.c (create_window): Create checkbox. (show_passphrase_toggled): New. Do the toggling. Qt: Restrict list of icon themes to try. + commit 287d40e879f767dbcb3d19b3629b872c08d39cf4 * qt/main.cpp (main): Only search in select icon themes. Qt: Add actions to make passphrase visible. + commit 49a7ac5209aa54f3b91209acc899463e8097f808 * qt/main.cpp (qt_cmd_handler): Support visibility tooltips. * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Add a checkbox or line actions. (PinEntryDialog::checkRepeat): Renabed to textChanged. (PinEntryDialog::toggleVisibility): New. Toggle echo mode. * qt/pinentrydialog.h: Update accordingly. Add support for visibility string options. + commit 15685a9c1471eb01066e0bbdb7d6b929a8fcc314 * doc/pinentry.texi: Note new values. * pinentry/pinentry.c (pinentry): Add default_cf_visi, default_tt_visi and default_tt_hide. (option_handler): Parse new values. * pinentry/pinentry.h (pinentry_t): Add new values. Qt: Implement repeat and improve grabbing. + commit 04115b3289dcc9b02044f88c08580618c055a571 The keyboard is now only grabbed if an edit has input focus. * qt/main.cpp (qt_cmd_handler): Parse repeat values. Set repeat_okay. * qt/pinentrydialog.cpp (PinentryDialog::PinentryDialog): Update layout. Add repeat label and edit. Connect focusChanged. (PinEntryDialog::hideEvent): Remove grabbing hack. (PinEntryDialog::focusChanged): New. Properly handle grabbing. (PinEntryDialog::checkRepeat): New. Enable Ok if repeat matches. (PinEntryDialog::repeatedPin): New. Getter for repeated pin. (PinEntryDialog::setRepeatErrorText): Setter for error. * qt/pinentrydialog.h: Update accordingly. Qt: Respect icon themes and only fallback to own. + commit c6b43bd147186deee84dcccbc14f5763db67a0f3 * m4/qt.m4: Raise version requirement. * qt/main.cpp (main): Use QIcon::fromTheme to get the icon. Qt: Unify coding style and encoding. + commit 8d801fe2c74041f2f8c563785ed7cba73f47500e * qt/main.cpp, qt/pinentryconfirm.cpp, qt/pinentryconfirm.h, qt/pinentrydialog.cpp, qt/pinentrydialog.h: Use KDE coding style. Encode as UTF-8. 2016-03-04 Andre Heinecke Qt: Fix Windows foreground window hacks for Qt5. + commit 30aa1046afe9a745c918fc1311c1f598c91bf913 * qt/pinentrydialog.cpp: Use Q_OS_WIN instead of Q_WS_WIN (SetForegroundWindowEx): Handle new Wid type with casts. 2016-02-15 Stef Walter pinentry: Use stderr to print failures in password-cache.c. + commit 2f5bfa071ab5eaf86f64404bff448ca29cd0bdb6 Otherwise this interferes with the assuan protocol expected on stdout. 2016-01-05 Andre Heinecke Qt: Fix use after free in quality calculation. + commit 954da56c2325c3a5ca628cfc2e3086c1e146a390 * qt/pinentrydialog.cpp (PinEntryDialog::updateQuality): Keep UTF8 byte array alive after conversion. 2015-12-07 Werner Koch Release 0.9.7. + commit 97b6ea59de0ca33323aa204eb47d45fd412a8ff2 2015-12-01 Werner Koch Remove unused code. + commit bd3781f92bb0989bfbc33a89fe1f6db3c89cdf31 * secmem/util.c (lower_privs, raise_privs): Remove commented functions. 2015-11-27 Neal H. Walfield tty: Fix formatting. + commit 999162e7c38d4b8c76270e7b6790417fd6439ef3 * tty/pinentry-tty.c (password): Remove trailing space. 2015-11-18 Neal H. Walfield tty: Flush output. Show an error if an invalid option is selected. + commit f238a58772b7d51362ca7d819e1648a64ff50d57 * tty/pinentry-tty.c (confirm): Flush the output after printing the prompt. Echo what the user typed. If the user's selection is invalid, indicate as much. 2015-10-22 Dirk Mueller Qt: Do not use temporary reference to utf8 pin. + commit f143d216eff4eac3f05a85640b9f91431aec5588 * qt/main.cpp (qt_cmd_handler): Keep utf8 pin byte array. 2015-10-02 Andre Heinecke Qt: Fix assignment of have_qt5_libs variable. + commit 48ab8cdccff4eefec4d8fa2e23b933c2277bc30c * m4/qt.m4 (FIND_QT): Remove spaces in variable assignment. Qt: Fix quoting of have_qt5_libs init in FIND_QT. + commit e9d063e2371540ad9c1d7a727c44f9dcc1e9e400 * m4/qt.m4 (FIND_QT): Quote initialization of have_qt5_libs var. 2015-09-25 Andre Heinecke Add option to disable looking for qt5. + commit 08ec9556c8a384ea7bb5d42d3f6aab6c2f6a8786 * m4/qt.m4 (FIND_QT): Add --disable-pinentry-qt5 option to disable qt5 support even if it is available. 2015-09-16 Werner Koch Add option "invisible-char". + commit 9cc13bbd6954928f8a7dae022728c13415816a67 * pinentry/pinentry.h (struct pinentry): Add field invisible_char. * pinentry/pinentry.c (pinentry_reset): Restore that. (option_handler): Add option "invisible-char". * gtk+-2/pinentry-gtk-2.c (create_window): Set the invisible char if given. 2015-09-10 Werner Koch Release 0.9.6. + commit 192ee8ad5bd9c4950d749cf9bb1efd9369836257 2015-08-24 Neal H. Walfield tty: When reading the password, print any supplied error message. + commit bfd4cf3bee8c9e4a3af825c95694b8af098b1cb2 * tty/pinentry-tty.c (password): Print any supplied error message. tty: Refactor the code for printing error messages. + commit 7e91e5f71c86c3899c7f256d7ae9d872e692dd28 * tty/pinentry-tty.c (dump_error_text): New function to display error messages. (confirm): Use it. (password): Likewise. 2015-08-18 Andre Heinecke Clarify comment about fds in pinentry_loop2. + commit 13e09800a997845906bfb10ac3379bad00e6e63d * pinentry/pinentry.h (pinetry_loop2): Clarify comment. Qt: Make it possible to build qt5 variant static. + commit 11886c530de3b0a7c4dcd932c5c23762f3ccc4b0 * qt/main.cpp: Import static platform plugins when necessary. Respect SYSROOT variable when looking for assuan. + commit 8d73d2a55a0043202c08beaed9972343b1021327 * m4/libassuan.m4: Respect SYSROOT Variable. Fix pinentry for Windows. + commit 78afb80e5742f8542f21537307c6f39c05c1a7f3 * pinentry/pinentry.c (pinentry_loop2): Use assuan_fdopen for pipe fds. * pinentry/pinentry.h (pinentry_loop2): Mention this in the comment. 2015-08-11 Neal H. Walfield tty: Correctly implement the repeat passphrase functionality. + commit 1532bf3fa57f624c80ea1e9f958d88fedc377e68 * tty/pinentry-tty.c (password): If the user repeated the passphrase and they matched, then set PINENTRY->REPEAT_OKAY. tty: Fix buffer resizing bug. + commit ffd37b673b3cbe05fac037ac02c1424a76772b3f * tty/pinentry-tty.c (read_password): Fix buffer resizing bug. 2015-07-28 Andre Heinecke Qt4: Rename to pinentry-qt and add Qt5 Support. + commit abb59f50abf698ff1e56490fb39bcc98c26ab44b * qt4: Moved to qt. * Makefile.am: Change qt4 suffix to qt. * m4/qt.m4: Remove old qt lookup functions. (FIND_QT): New. Use pkg-config to find either Qt5 or Qt4 * configure.ac: Change qt4 suffix to qt. Use new FIND_QT function. * qt/Makefile.am: Change qt4 suffix to qt. Use new FLAGS / LIBS. * qt/pinentrydialog.cpp, qt/qrc_pinentry.cpp: Fix whitespace. * .gitignore: Change qt4 paths to qt. * README: Update accordingly. * autogen.rc: Change qt4 to qt. * qt/main.cpp (qt_cmd_handler, main): Change qt4 to qt. 2015-07-28 Neal H. Walfield doc: Describe the frontends and their security implications. + commit 43f975bf0348663dc8b01737dee5b15244ef7ee8 * doc/pinentry.texi: Describe the frontends and their security implications. 2015-07-28 Andre Heinecke qt4: Replace the custom, secure entry widget with the standard widget. + commit a4694dcda0fe27852be20db3017f9313adf361a3 * configure.ac: Remove enable-pinentry-qt4-clipboard option. * qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h, qt4/qsecurelineedit_p.h, qt4/secstring.cpp, qt4/secstring.h: Removed. * qt4/Makefile.am: Update accordingly. * qt4/main.cpp (qt_cmd_handler): Use QString instead of secqstring. * qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog), (PinEntryDialog::error, PinEntryDialog::pin), (PinEntryDialog::updateQuality): Use QLineEdit and QString instead of secmem variants. * qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog): Set echo mode to password. * qt4/pinentrydialog.h: Update accordingly. 2015-07-26 Neal H. Walfield gtk2: Use gtk_widget_get_window instead of accessing the struct. + commit d70a106d71dbcaf90e2246ed8e72c14d9c2cf266 * gtk+-2/pinentry-gtk-2.c (make_transient): Don't directly access the window field of WIN. Use gtk_widget_get_window instead. (grab_keyboard): Likewise. (ungrab_keyboard): Likewise. gtk2: Use newer tooltips functions, if available. + commit c9c3576b5e2e3139fd9f6af3426b5f5e727deadd * gtk+-2/pinentry-gtk-2.c (tooltips): Don't declare for Gtk+ >=2.12.0. (create_window): Gtk+ >=2.12.0, use gtk_widget_set_tooltip_text instead of gtk_tooltips_set_tip. Don't build the emacs pinentry program by default. + commit 676b1ac38d0c1db754492b6817bbc6195dcef300 gtk2: Replace the custom, secure entry widget with the standard widget. + commit f9db93786cbdbc0f5f6edf0ae996ec405931decf * gtk+-2/Makefile.am (pinentry_gtk_2_SOURCES): Remove gtksecentry.c, gtksecentry.h and gseal-gtk-compat.h. * gtk+-2/gseal-gtk-compat.h: Remove file. * gtk+-2/gtksecentry.c: Remove file. * gtk+-2/gtksecentry.h: Remove file. * gtk+-2/pinentry-gtk-2.c: Don't include "gtksecentry.h". (button_clicked): Use gtk_entry_get_text instead of gtk_secure_entry_get_text. (changed_text_handler): Use gtk_entry_get_text instead of gtk_secure_entry_get_text and use gtk_entry_set_text instead of gtk_secure_entry_set_text. (create_window): Use gtk_entry_new instead of gtk_secure_entry_new. Disable text visibility on ENTRY and REPEAT_ENTRY. (main): Don't override the memory allocation functions. gtk2: Simplify focus / default entry management. + commit ae74440c8a3469e1e69882cd26a742d41f28e37b * gtk+-2/pinentry-gtk-2.c (create_window): Don't have ENTRY or REPEAT_ENTRY explicitly grab the focus. The default is fine. Don't add the GDK_ENTER_NOTIFY_MASK and GDK_LEAVE_NOTIFY_MASK events to QUALITYBAR. Only set GTK_CAN_DEFAULT on the ok button. In pin entry mode, make the ok button the default. gtk2: Have enter in the text entry, send the focus to the repeat entry. + commit af3de269bc0f56058eefcd46bce1b03d9466d1b4 * gtk+-2/pinentry-gtk-2.c (enter_callback): Rename anentry to next_widget. If NEXT_WIDGET is not NULL, send the focus to it. Otherwise, call button_clicked. (create_window): Initialize repeat_entry to NULL. When connecting the enter_callback entry to REPEAT_ENTRY, set the user data paramter to NULL. Connect the entry_callback entry to ENTRY after initializing REPEAT_ENTRY (if applicable) and set the user data parameter to REPEAT_ENTRY. gtk2: Simplify: combine confirm_button_clicked and button_clicked. + commit 5dfb7f5662917c9d2f8a4772045074544bd4d472 * gtk+-2/pinentry-gtk-2.c (confirm_mode): New global static. (confirm_button_clicked): Fold this function... (button_clicked): ... into this one. Update all callers. (create_window): Remove argument confirm_mode. (gtk_cmd_handler): Set confirm_mode. 2015-07-01 Werner Koch Release 0.9.5. + commit 404943e465beeb34d71039f64f2b7e214d2d9368 w32: Adjust for use of standard libassuan. + commit 380757782373c2069c182550d9093f995bea2f13 * autogen.rc: Add gpg-error and libassuan prefix options. * w32/Makefile.am (AM_CPPFLAGS): Use COMMON_FLAGS. (pinentry_w32_LDADD): Use COMMON_LIBS. Distribute files in m4/ + commit 11cd8aff6e1720d4a37c92fb6d4cf2613eb17a10 2015-06-24 Gergely Imreh curses: remove hard-wired ncursesw include path. + commit f0db3192463cccf4541820de36d985629c4df6ee * pinentry/pinentry-curses.c: pkg-config finds the correct include paths so should not hard-wire the path for the ncursesw header file. 2015-06-23 Neal H. Walfield emacs: Don't link against ../assuan/libassuan.a. + commit 266f1c9e3542627b1cbd191141af4e6f76f706fe * emacs/Makefile.am (LDADD): Don't link against ../assuan/libassuan.a. We now use the system libassuan. curses: Recognize ASCII DEL as backspace. + commit 6ce1d0c0d4106c359eee65d7cf27d522d3f8b72a * pinentry/pinentry-curses.c (dialog_input): Recognize ASCII DEL as backspace. 2015-06-17 Daiki Ueno Add inside-Emacs mode to GUI pinentry programs. + commit 3ef5d07873ab917e66c299521e85cff12fbbf40c * configure.ac: Add --enable-pinentry-emacs and --enable-inside-emacs option. (BUILD_LIBPINENTRY_EMACS): New conditional. (BUILD_PINENTRY_EMACS): New conditional. (INSIDE_EMACS): New conditional. * Makefile.am (pinentry_emacs): New. (SUBDIRS): Add "emacs" subdir if PINENTRY_EMACS is set. * pinentry/pinentry-emacs.h: New file. * pinentry/pinentry-emacs.c: New file. * pinentry/Makefile.am: New file. * pinentry/pinentry.c (option_handler): Handle the allow-emacs-prompt Assuan option. * emacs/pinentry-emacs.c: New file. * emacs/Makefile.am: New file. 2015-06-16 Neal H. Walfield If we fail to initialize gtk, fallback to the curses frontend. + commit 34f3cdbf5aa0b7b8647a3bcedef7e1a51746b5ed * gnome3/pinentry-gnome3.c (main): Use gtk_init_check instead of gtk_init. If it fails, fallback to the curses frontend. Fix comment for pinentry_cmd_handler_t. + commit 34539f97a6ddc552295b5cb64676eee9dab5bd30 * pinentry/pinentry.h (pinentry_cmd_handler_t): Fix comment. Describe default-prompt in the implementation section of the manual. + commit 56fe7ef451ee473407b7dc604e3d73a6a5771c5d * doc/pinentry.texi (Implementation Details): Describe default-prompt. Remove internal mini-libassuan implementation and link to libassuan. + commit 302903f76b8d62b1e07219a203f7219cb3aff7d8 * assuan/ChangeLog-old: Remove file. * assuan/Makefile.am: Remove file. * assuan/README.1st: Remove file. * assuan/assuan-buffer.c: Remove file. * assuan/assuan-defs.h: Remove file. * assuan/assuan-handler.c: Remove file. * assuan/assuan-listen.c: Remove file. * assuan/assuan-pipe-server.c: Remove file. * assuan/assuan-util.c: Remove file. * assuan/assuan.h: Remove file. * assuan/mkerrors: Remove file. * configure.ac: Check for libgpg-error and libassuan. (COMMON_CFLAGS): Add $GPG_ERROR_CFLAGS and $LIBASSUAN_CFLAGS. (COMMAND_LIBS): Add $GPG_ERROR_LIBS and $LIBASSUAN_LIBS. (GPG_ERR_ENABLE_GETTEXT_MACROS): Define this macro. (GPG_ERR_ENABLE_ERRNO_MACROS): Likewise. (GNUPG_LIBASSUAN_VERSION): Likewise. (AC_CONFIG_FILES): Don't generate assuan/Makefile. (config.h): Define GPG_ERR_SOURCE_DEFAULT. * Makefile.am (SUBDIRS): Remove assuan. * curses/Makefile.am (LDADD): Remove ../assuan/libassuan.a. * gnome3/Makefile.am (AM_CPPFLAGS): Remove -I$(top_srcdir)/assuan. (LDADD): Remove ../assuan/libassuan.a. * gtk+-2/Makefile.am (LDADD): Remove ../assuan/libassuan.a. * pinentry/Makefile.am: Remove -I$(top_srcdir)/assuan. * qt4/Makefile.am (AM_CPPFLAGS): Remove -I$(top_srcdir)/assuan. (pinentry_qt4_LDADD): Remove $(top_builddir)/assuan/libassuan.a. * tty/Makefile.am (LDADD): Remove ../assuan/libassuan.a. * gnome3/pinentry-gnome3.c: Include , not "assuan.h". Replace ASSUAN_General_Error, etc. with gpg_error or gpg_error_from_syserror. * pinentry/pinentry-curses.c: Likewise. * pinentry/pinentry.c: Likewise. (pinentry_assuan_reset_handler): Change return type to gpg_error_t. Change type of argument CTX from ASSUAN_CONTEXT to assuan_context_t. Return 0. (pinentry_inq_quality): Change variable CTX's type from ASSUAN_CONTEXT to assuan_context_t. (assuan_malloc_hooks): New variable. (pinentry_init): Call gpgrt_check_version. Change use of assuan_set_malloc_hooks to match libassuan's semantics. (option_handler): Return a gpg_error_t, not an int. Replace use of ASSUAN_Out_Of_Core, etc. with gpg_error or gpg_error_from_syserror. (cmd_setdesc): Return a gpg_error_t, not an int. Change argument CTX's type from ASSUAN_CONTEXT to assuan_context_t. Replace use of ASSUAN_Out_Of_Core, etc. with gpg_error or gpg_error_from_syserror. GPG_ERR_ENOMEM), etc. (cmd_setprompt): Likewise. (cmd_setkeyinfo): Likewise. (cmd_setrepeat): Likewise. (cmd_setrepeaterror): Likewise. (cmd_seterror): Likewise. (cmd_setok): Likewise. (cmd_setnotok): Likewise. (cmd_setcancel): Likewise. (cmd_settimeout): Likewise. (cmd_settitle): Likewise. (cmd_setqualitybar): Likewise. (cmd_setqualitybar_tt): Likewise. (cmd_getpin): Likewise. (cmd_confirm): Likewise. (cmd_message): Likewise. (cmd_getinfo): Likewise. (cmd_clear_passphrase): Likewise. (register_commands): Likewise. Change use of assuan_register_command to match libassuan's semantics. (pinentry_loop2): Change variable RC's type from int to gpg_error_t. Change variable CTX's type from ASSUAN_CONTEXT to assuan_context_t. Use assuan_new to initialize CTX. Change use of assuan_init_pipe_server to match libassuan's semantics. Replace use of assuan_strerror with gpg_strerror. Call assuan_release instead of assuan_deinit_server. 2015-06-16 Andre Heinecke Qt4: Fix GCC compile warnings. + commit 5026d0b9ac08d8366c82beec6c4425fb7f7b11e5 * qt4/qsecurelineedit.cpp (QSecureLineEdit::sizeHint), (QSecureLineEdit::minimumSizeHint): Remove unused Q_D macros. (QSecureLineEdit::setCursorPosition, QSecureLineEditPrivate::setText), (QSecureLineEditPrivate::hasAcceptableInput): Explicitly cast length to int. (QSecureLineEditPrivate::maskString): Use unsigned type for strIndex. (QSecureLineEditPrivate::maskString): Remove uneccesary casts. * qt4/secstring.cpp (toUtf8): Remove unused variable. 2015-06-07 Neal H. Walfield gnome3: Actually respect the user's choice of using a password manager. + commit 444598586d0abf70d5a27d2aafcd6c14989621db * gnome3/pinentry-gnome3.c (create_prompt) [HAVE_LIBSECRET]: Only show the libsecret prompt in this case. (gnome3_cmd_handler) [HAVE_LIBSECRET]: Set PE->MAY_CACHE_PASSWORD according to the user's choice. 2015-06-05 Werner Koch Release 0.9.4. + commit 29d7c5ffda648e61431b42964e773c13f77bf501 2015-06-05 Neal H. Walfield secmem: When clearing memory, don't clear beyond the end of the buffer. + commit 554250b56ae00d590d05b1c5af7892314f0e72d8 * secmem/secmem.c (secmem_malloc): Only clear the user memory; don't clear beyond the end of the buffer. 2015-06-04 Daniel Kahn Gillmor Make pinentry_setbufferlen always return the pin buffer. + commit c29c5657fd77e212799715c23806a0cb6e1cfd47 * pinentry/pinentry.c (pinentry_setbufferlen): When the pin buffer is already large enough, return the buffer instead of NULL. 2015-06-02 Werner Koch Fixed compiler warnings - mostly unused parameter. + commit ee23924390a45700b35ab37a75278cfeb965b8c8 Add more GCC warnings flags. + commit f74e40465f979749af6df5b9ea325324a428a669 * configure.ac: Add GCC specific -W flags. 2015-06-02 Daniel Kahn Gillmor use g_debug(format, ...) safely. + commit 87e6811f2d1e72c501d14670ad911245a41c0828 * pinentry/password-cache.c (password_cache_clear): use g_debug safely in case error->message is malformed. 2015-06-01 Werner Koch Release 0.9.3. + commit 9f98bbfa7f05f1c7e02443bc8d0bd74a61eb39bc 2015-05-31 Stanislav Ochotnicky Fix qt4 pinentry window created in the background. + commit eab03a469d82018e53380f26390594f47bb4c5c8 This is probably just a workaround. Proper fix is being investigated. See: https://bugzilla.redhat.com/show_bug.cgi?id=589532 http://stackoverflow.com/questions/2788518/calling-activatewindow-on-qdia 2015-05-20 Werner Koch Improve configure log messages for ncurses/ncursesw. + commit 55ea554b2020b1e7b0996bd9f7bb38c8af2b03f3 * m4/pkg.m4: Print the moule name not the variable name. Allow building without ncursesw and other minor fixes. + commit 0c1af8e9af59d01936924c91c5d2d45133923d6d * pinentry/password-cache.c (password_cache_clear): s/debug/g_debug/. * pinentry/pinentry-curses.c (dialog_input): Actually bail out. (dialog_run) [!HAVE_NCURSESW]: Define alt. 2015-05-19 Neal H. Walfield gtk+-2: Make sure the save-passphrase-externally checkbox is not checked. + commit 54dd881a9a733074bafee4062f8591f4fe69cad5 * gtk+-2/pinentry-gtk-2.c (create_window): Make sure the check button to save the passphrase externally is not checked by default. Provide an Assuan command to clear a cached password. + commit 72b653d8088ce508ab688c68d88c363832d50eb7 * pinentry/password-cache.c (password_cache_clear): New function. * pinentry/password-cache.h (password_cache_clear): New declaration. * pinentry/pinentry.c (cmd_getinfo): New function. (register_commands): Have the Assuan command "CLEARPASSPHRASE" call it. If there is an error message, show it and don't read from the cache. + commit 516e01049e9829020b40ddbcf387d4c5c05b1c3f * pinentry/pinentry.c (cmd_getpin): If PINENTRY.ERROR is not NULL, don't read the password from the cache. 2015-05-18 Neal H. Walfield curses: When creating the button text, respect underscores. + commit 6fdcad6a1f91bc769b03d2cb32f0b8001ed3ae19 * pinentry/pinentry-curses.c (MAKE_BUTTON): When creating the button text, respect underscores. curses: Make control-l repaint the screen. + commit cade1ae102d5f4972f68b5bef0003f1ad1b3bde3 * pinentry/pinentry-curses.c (dialog_input): Make control-l repaint the screen. curses: Make control-h an alias for backspace. + commit 85646e9c08875214f6888df507c6f9ceb463a000 * pinentry/pinentry-curses.c (dialog_input): Add control-h an alias for backspace. When checking for ncurses, first try using PKG_CHECK_MODULES. + commit 25e77c0fd10e9a1d26c31c0a8ec1917b51da5cd2 * m4/curses.m4: When checking for ncurses, first try using PKG_CHECK_MODULES. Purge dead code enabled by ENABLE_ENHANCED. + commit e89c36a6546515c2a19645356d8f80dd459f2075 2015-05-16 Neal H. Walfield gtk+-2: If gtk fails to initialize, fallback to the curses backend. + commit edd9a884604ff76e63d238504ede9b118655c55b * gtk+-2/pinentry-gtk-2.c (main): Use gtk_init_check instead of gtk_init. If gtk_init_check fails, fallback to the curses backend. curses: Handle control-u, control-w and alt-backspace. + commit d3c52a144b5b23d0d841a99a310090dcafe2074b * pinentry/pinentry-curses.c (dialog_input): Take additional argument, alt. Update callers. If passed control-u, erase the whole line. If passed alt-backspace or control-w, erase any white space the the previous word. (dialog_run): Detect when alt is pressed. secmem: Clear the buffer before returning it from secmem_malloc. + commit 1d3583a2562e83496ac515276e9bd63a7f1abbc7 * secmem/secmem.c (secmem_malloc): In case wipememory2 gets optimized away in secmem_free, clear the buffer before returning it. curses: NUL terminate the pin entry buffer. + commit 97a47ee99e14e0c8c6a2c3c5eec0434e6eac77e0 * pinentry/pinentry-curses.c (dialog_run): NUL terminate the pin entry buffer. curses: Make sure the pin entry buffer is larger enough. + commit c33073eb40ee4bb6e079605dbf2f343de50390d7 * pinentry/pinentry-curses.c (dialog_input): Make sure the pin entry buffer is large enough. curses: Avoid aliasing the pin buffer. + commit c7736745f5683b820ebbd11e30ddb425748c16ab * pinentry/pinentry-curses.c (struct dialog): Remove field pin. Add field pinentry. (dialog_create): Don't set DIALOG->PIN to PINENTRY->PIN. Set DIALOG->PINENTRY to PINENTRY and access PIN via DIALOG->PINENTRY->PIN. Update other users. gtk+-2: When the dialog is destroyed, remove any pending timers. + commit 88772ddaac96303a63c97a45c26144d93a942798 * gtk+-2/pinentry-gtk-2.c (timeout_source): New variable. (timeout_cb): Set it to 0. (create_window): When setting up the timeout, save the source identifier in TIMEOUT_SOURCE. (gtk_cmd_handler): If TIMEOUT_SOURCE is not 0, remove the timeout. curses: If an error occurs while reading input, cancel the operation. + commit f3cb78985c3c7f96401a06a73412fb704c5efaab * pinentry/pinentry-curses.c (dialog_run) [! HAVE_DOSISH_SYSTEM]: If an error occurs while reading input, cancel the operation. tty: ok takes precedence over default-ok. Likewise for cancel. + commit ae3352566994623d54723283e887bc5f74766e1c * tty/pinentry-tty.c (confirm): When creating the ok button, pinentry->ok takes precedence over pinentry->default-ok. Likewise for pinentry->cancel and pinentry->default_cancel. Don't use a static initializer to initialize PINENTRY. + commit de3241ae0bc9072cfef204ea638171a3a95380a3 * pinentry/pinentry.c (pinentry): Don't use a static initializer. (pinentry_reset): Initialize PINENTRY here. (pinentry_parse_opts): Call pinentry_reset here. (pinentry_assuan_reset_handler): New function. (pinentry_loop2): Register it as the assuan reset handler. Don't emit the LC_CTYPE-not-set warning more than once. + commit 9fdb05554b5fc9c6f6621d606ccf21c038c7b6cb * pinentry/pinentry.c (lc_ctype_unknown_warning): New variable. (pinentry_utf8_to_local): Only emit the LC_CTYPE warning if lc_ctype_unknown_warning is not set. After emitted such a warning, set lc_ctype_unknown_warning. (pinentry_local_to_utf8): Likewise. curses: Use default-ok and default-cancel if set. + commit 222866894993041ceaca3ca4ef33373ab78bfdff * pinentry/pinentry-curses.c (default_notok): New macro. (MAKE_BUTTON): Also check if default variant is set. curses: Don't show the notok button in pin entry mode. + commit 3d97b18ba928677550a8f7eaa938551aad42dacf * pinentry/pinentry-curses.c (dialog_create): Don't show the notok button in pin entry mode. 2015-05-16 Daniel Kahn Gillmor Avoid implicit declaration of function addnwstr. + commit 21e83f422667e431c1283b9ae3356fded3523e50 * pinentry/pinentry-curses.c [HAVE_NCURSESW]: Include . [! HAVE_NCURSESW]: Only include in this case. 2015-05-13 Neal H. Walfield tty: Handle the case where the user needs to repeat the passphrase. + commit 4549998627ee04e74f8d1c94aef55e3ed17f14d9 * tty/pinentry-tty.c: Include "memory.h". (read_password): Break into two functions: read_password and password. (read_password): Just read the password from the terminal and return it in secure memory (or NULL if the user canceled the entry or there was an error). (password): Improve output. Handle the repeat passphrase case (i.e., when pinentry->repeat_passphrase is set). * tty/Makefile.am (AM_CPPFLAGS): Add "-I$(top_srcdir)/secmem". Add a new helper function, pinentry_setbuffer_use. + commit c68a6854aadaf8c271648f369f14b4943e684ecf * pinentry/pinentry.c (pinentry_setbuffer_use): New function. * pinentry/pinentry.h (pinentry_setbuffer_use): New declaration. tty: Always call do_touch_file if we (potentially) touched the screen. + commit 960317ec86c06bc737e1ff3c1b571dc8f4194763 * tty/pinentry-tty.c (tty_cmd_handler): Always call do_touch_file. tty: Improve confirmation mode functionality. + commit dd0307be51587a9a7866981ce00eed474bee6e14 * tty/pinentry-tty.c: Include . (UNDERLINE_START): Define. (ALERT_START): Define. (NORMAL_RESTORE): Define. (button): New function. (confirm): Rewrite to include all confirmation mode functionality. (tty_cmd_handler): Don't include any confirmation mode functionality. Just call confirm. Fix linking order to work when linked with --as-needed. + commit 496235af8dfd373b54e5610f86bf1cada175ac23 * curses/Makefile.am (LDADD): Add $(COMMON_LIBS) after all of the local objects and object archives. * gnome3/Makefile.am (LDADD): Likewise. * gtk+-2/Makefile.am (LDADD): Likewise. * qt4/Makefile.am (pinentry_qt4_LDADD): Likewise. * tty/Makefile.am (LDADD): Likewise. Don't interpret the handler's return value as the passphrase's length. + commit 3062742b945f95d72001896f8ba5468b9e63aa9b * pinentry/pinentry.c (cmd_getpin): Don't interpret the return value as the passphrase length. Use strlen instead. Make the management of pinentry.pin more explicit. + commit bdd81974633f8e31d582b62999ef9b004bc3b95e * pinentry/pinentry.c: Include . (pinentry): Set pin_len to 0. (pinentry_setbufferlen): If len is less than 2048, set it to 2048. Add an assertion. (pinentry_setbuffer_clear): New function that releases the pin buffer. (pinentry_setbuffer_init): New function that initializes the pin buffer. (cmd_getpin): Use pinentry_setbuffer_init and pinentry_setbuffer_clear instead of manual memory management. (cmd_confirm): Use pinentry_setbuffer_clear instead of manual memory management. Better document struct pinentry. + commit ae7dfae00df81a683adf0292a52b63632491319e * pinentry/pinentry.h (struct pinentry): Better document the various fields. 2015-05-12 Neal H. Walfield Fix some documentation details. + commit 2582cb9eb23ca287520caa04a12f83f10c268f71 * doc/pinentry.texi: Fix some details. Add a GNOME3 pinentry based on gcr. + commit be87785005d256b7f3dacc607ba5ea0a14de8593 * configure.ac (--enable-pinentry-gnome3): Option to enable the GNOME3 pinentry. (pinentry_gnome_3): Set to yes if enabled and gcr-3 and gcr-base-3 gcr is available. (GNOME3CFLAGS): Define and AC_SUBST. (GNOME3LIBS): Define and AC_SUBST. (GCR_API_SUBJECT_TO_CHANGE): Define. (BUILD_PINENTRY_GNOME_3): Define. * Makefile.am (pinentry_gnome_3): Define. (SUBDIRS): Add ${pinentry_gnome_3}. * gnome3/Makefile.am: New file. * gnome3/pinentry-gnome3.c: New file. Add new chapter to documentation describing implementation details. + commit 14b95bd6d92ba699c3d263ac1f9140973d8c9156 * doc/pinentry.texi: Add new chapter describing some implementation details. Simplify code. + commit 831782b3b625ca81624fae0ee184da0d2fc46d96 * pinentry/pinentry.c (cmd_confirm): Don't use nested ternary expressions. Implement cmd_confirm in terms of cmd_message. + commit 29236f84aca64be72c97a9b5513457a4e45afbc6 * pinentry/pinentry.c (cmd_confirm): Implement cmd_confirm in terms of cmd_message. Fix memory allocation in pinentry_setbufferlen. + commit aa04dac66f2ee949e8789a3c91090b01646f2e57 * pinentry/pinentry.c (pinentry_setbufferlen): Set PIN->PIN to a buffer that is LEN bytes large, not 2 * PIN->PIN_LENGTH. 2015-05-11 Werner Koch Release 0.9.2. + commit 8e52ddc874838ad512ed76cdc1c34057da328fba Return better error codes. + commit 726c00514be4a0c2831dd775e306f7d5243bab8b * assuan/assuan.h (ASSUAN_Too_Short): New (ASSUAN_ENOENT, ASSUAN_ENOTTY): New. * pinentry/pinentry-curses.c: Include assuan.h. (dialog_create, dialog_run): Set specific error codes. * pinentry/pinentry.h (struct pinentry): Add field specific_err. * pinentry/pinentry.c (cmd_getpin): Return specific_err. (cmd_confirm, cmd_message): Ditto. curses: Reset tty state on failed dialog creation. + commit d7f2081fdd605b0d0789bcb6984decfea3777f23 * pinentry/pinentry-curses.c (dialog_run): Cleanup on dialog_create error. gtk: Use a description string from gpg-agent for libsecret. + commit 319e1a32e3ab67cb0624c0586d7519c16c76d43b * pinentry/pinentry.h (struct pinentry): Add field default_pwmngr. * pinentry/pinentry.c (option_handler): Set it. * gtk+-2/pinentry-gtk-2.c (create_window) [HAVE_LIBSECRET]: Use new string. gtk: Silence compiler warning. + commit 3d02645d757e573e4628a1caf2e36bb92d523e77 2015-05-07 Neal H. Walfield Don't use asprintf. + commit 1a8af55b76d8235ce891f44808064e7f846e193c * pinentry/password-cache.c (keygrip_to_label): Don't use asprintf. Improve documentation. + commit 09203147bef487c9a85f55f8cc96d265197b0bf5 * doc/pinentry.texi: Improve description of SETKEYINFO's format. Minor documentation cleanups. + commit 3a8daef81c49dc3c04b6703a0384381cb43eb91b Add support for saving the passphrase with libsecret. + commit c6eaa7bf8300f524de41956a339ca0ed3af4656e * configure.ac (COMMON_CFLAGS): New variable. AC_SUBST it. (COMMON_LIBS): Likewise. AC_SUBST it. (LIBSECRET_CFLAGS): Likewise. (LIBSECRET_LIBS): Likewise. (--enable-libsecret): Add option to enable support for libsecret. If enabled, check for its presense. * pinentry/password-cache.h: New field. * pinentry/password-cache.c: New field. * pinentry/pinentry.h (struct pinentry): Add fields pin_from_cache, allow_external_password_cache, tried_password_cache, keyinfo, and may_cache_password. * pinentry/pinentry.c: Include "password-cache.h". (pinentry): Initialize new fields. (option_handler): Handle the "allow-external-password-cache" option. (cmd_setkeyinfo): Implement it. (cmd_getpin): Read the password from the cache, if appropriate. Save it to the cache, if appropriate. * pinentry/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). (LDADD): Add $(COMMON_LIBS). (libpinentry_a_SOURCES): Add password-cache.h password-cache.c. * gtk+-2/pinentry-gtk-2.c (may_save_passphrase_toggled): New function. (create_window): Take additional parameter, the pinentry's context. Update callers. [HAVE_LIBSECRET]: Show a checkbox asking whether the passphrase should be saved. * gtk+-2/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). (LDADD): Add $(COMMON_LIBS). * curses/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). (LDADD): Add $(COMMON_LIBS). * tty/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). (LDADD): Add $(COMMON_LIBS). * doc/pinentry.texi (Protocol): Update documentation. Describe the protocol and provide some justification. 2015-05-07 Werner Koch w32: Do not build gtk pinentry by default. + commit aa98f25ddcc3c36035f18249443cec15d16e8fa5 * autogen.rc: Remove obsolete options. 2015-05-07 Neal H. Walfield Align secmem_realloc behavior with realloc's. + commit aaec7c7c50adfb51510962a14c0fa2179a34a01e * secmem/secmem.c (secmem_realloc): If passed a NULL pointer, then call secmem_malloc instead of crashing. 2015-05-05 Werner Koch w32: Minor changes to the dialog. + commit cbecc6d38a86f8fa7c052efab7649be07b5df334 * w32/main.c (set_bitmap): New. (dlg_proc): Show error prompt in red. * w32/pinentry-w32.rc: Add icons and chnage dialog. * w32/logo-128.bmp: New. * w32/logo-32.bmp: New. * w32/logo-48.bmp: New. * w32/logo-64.bmp: New. * w32/logo-96.bmp: New. pinentry-tty: Fix problem with zero length prompt. + commit a616bd9dec00e068185b6b37a35ced4ec12ac5a7 * tty/pinentry-tty.c (read_password): Use default prompt also for an empty prompt argument. 2015-05-01 Neal H. Walfield Improve documentation. + commit 8b802cf928d199d9c09080f71a7dd1eb397f414a Improve documentation: clean up wording and add some minor improvements to the content. Improve comment. + commit b9d529557b368548d6a55ae6c2df66ece7023e5f * tty/pinentry-tty.c (tty_cmd_handler): Add comment. When reading the pin, correctly handle backspace. + commit 189ab07e94dc2d4103c1edf00e15e0156df89297 * tty/pinentry-tty.c (read_password): Handle backspace. Improve prompt for pin. + commit c7099565524010b86891fc14b723fc722509d4bb * tty/pinentry-tty.c (read_password): Improve prompt for pin. 2015-05-01 Daniel Kahn Gillmor fix small memory leak in pinentry-curses. + commit 03e4207f11e228a4c079af991f82507539793bae * pinentry/pinentry-curses.c: free internally allocated local string. pinentry-tty: make confirm actions work. + commit 21d28d114259da9cb555ee612e053e6e68f37fd3 * tty/pinentry-tty.c: treat the situation where no PIN is requested and one_button is not set as a confirmation prompt. pinentry-tty: fix segfault on MESSAGE or CONFIRM. + commit 93bd60a3ca91581a1cf8e754c4fb51e54c9e7ce9 * tty/pinentry-tty.c: avoid prompting for a PIN when one was not asked for. pinentry-tty: handle designated tty outside of read_password. + commit b4bf75f24f1126a8ba8f8c1c025103c2dcee0710 * tty/pinentry-tty.c: reorganize, wrapping read_password in tty open/close. 2015-04-16 Yuri D'Elia gtk: Make Escape key work. + commit 9d2d8b6bfaf2d5b07e7fb5be7188516e4158ed98 * gtk+-2/pinentry-gtk-2.c: Include gdk/gdkkeysyms.h. (enter_callback): Pass confirm_value_t to button_clicked. (confirm_button_clicked): Use confirm_value_t cast. (cancel_callback): New. (create_window): Add accelerator for the Escape key. 2015-04-14 Werner Koch Add stub command SETKEYINFO. + commit 2bffbbff09177afb75ad667d949eed2a8cb846ea * pinentry/pinentry.c (cmd_setkeyinfo): New. (register_commands): Addd command. 2015-03-18 Werner Koch Release 0.9.1. + commit 0b2d5e435445e3b9f8dffcf2240a95313c3ce335 Fix build problems on AIX. + commit 1cfcf9dadb73bccc52b7ece47616d621d9cbe044 * pinentry/pinentry.c: Do not include getopt.h. * pinentry/pinentry-curses.c (dialog_run): Call use_default_colors only with ncurses. Update to automake 1.14. + commit 2c56b16a18713786a7e66e408967f91388a008cb 2015-03-17 Werner Koch Get rid of getopt_long and improve --help output. + commit 2f7b275b2b5d31df48f02ab2913ba3ff2e74b7a4 * pinentry/argparse.c, pinentry/argparse.h: New. Taken from GnuPG master. * pinentry/Makefile.am (libpinentry_a_SOURCES): Add them. * pinentry/pinentry.c: Include argparse.h. (usage): Remove. (my_strusage): New. (pinentry_parse_opts): Rewrite. Do not return a value. Change call callers. Use CH type instead of wchar_t for curses. + commit 8fa3ca90bfbaa84314443fab9865742b78eb85a9 * pinentry/pinentry-curses.c (collect_line): Change second arg to CH. * pinentry/pinentry.c (pinentry_utf8_to_local): Make args const. 2014-12-15 Andre Heinecke qt4: Improve moc handling. + commit bb423620fca82159e60ab25de3c608a0243088b0 * configure.ac: Disable pinentry-qt4 or exit if moc not found. * m4/qt.m4: Look for and prefer moc-qt4. * qt4/Makefile.am: Add moc files to nodist and clean them. doc: Update gpl.texi to match version from gcrypt. + commit c911657710893643558f91ec497fac2831d91040 * doc/gpl.texi: Use version from gcrypt. 2014-12-09 Vicente Olivert Riera pinentry-qt4: make the accessibility part optional. + commit 484465338ea6f5f12eb1341ca0ef84aa79224ed4 Check if the Qt libraries have support for QT Accessibility before using it. Otherwise it will raise error like these one: main.cpp: In function 'int qt_cmd_handler(pinentry_t)': main.cpp:220:51: error: 'class QAbstractButton' has no member named 'setAccessibleDescription' 2014-10-26 Werner Koch Release 0.9.0. + commit 8943bc86d6cf8295d0ec4382480d886b1f2ec062 gtk: Aboid segv for opaste keys. + commit 821dc21a241a27cc381c7d65be690e3858e2ddc6 * gtk+-2/gtksecentry.c (gtk_secure_entry_class_init): Disable paste key bindings. Remove support form QT3 and GTK+-1. + commit f2ed42297528f2a126d189c6181d3105ceecca22 * configure.ac: Remove old qt and gtk+-1 support. * Makefile.am: Ditto. 2014-10-26 Stanislav Ochotnicky Check if we are on tty before initializing curses. + commit 3803fd15942f2f25108e400be6cd6faef791c8f7 * pinentry/pinentry-curses.c (dialog_run): Check stant stdin and stout are connected to ttys. 2014-10-26 Werner Koch gtk: Allow pasting using the mouse. + commit 4f4af9056d1c100aa53363f019253160cd8d9ff0 * gtk+-2/gtksecentry.h (_GtkSecureEntry): Add fields insert_pos, real_changed, cand change_count. (_GtkSecureEntryClass): Add field paste_clipboard. * gtk+-2/gtksecentry.c (PASTE_CLIPBOARD): New. (gtk_secure_entry_class_init): Set paste_clipboard and create paste-clipboard signal. (gtk_secure_entry_button_press): Call gtk_secure_entry_pase. (begin_change, end_change, emit_changed): New. (gtk_secure_entry_real_insert_text): Use emit_changed. (gtk_secure_entry_real_delete_text): Ditto. (paste_received, gtk_secure_entry_paste) (gtk_secure_entry_paste_clipboard): New. 2014-10-24 Werner Koch gtk+-2: Make current focus visible again. + commit 2ef788fb5dce2e49fa925264802388f4c002cd31 * gtk+-2/pinentry-gtk-2.c (grab_keyboard): Return false (ungrab_keyboard): Ditto. gtk+-2: Implement the SETREPEAT command. + commit e483abb883f65719ce8008a211f49b8d207ee4af * gtk+-2/pinentry-gtk-2.c (repeat_entry, error_label): New. (button_clicked): Implement repeat check. (changed_text_handler): Clear repeat field. (create_window): Add repeat entry. Add commands to allow implementing a "repeat passphrase" field. + commit 9f78f0709d9ba60677129c179f7f0ef835c51c1d * pinentry/pinentry.c (cmd_setrepeat): New. (cmd_setrepeaterror): New. (register_commands): Add new commands. (cmd_getpin): Print "PIN_REPEATED" status. 2014-09-18 Werner Koch Release 0.8.4. + commit f610ea6248b5a77739d2e16052b8ddd78f95394e Add missing build support files and move them to build-aux. + commit f21dcb8083905efef8e82e1bf91dd01457af81d1 Use generic autogen.sh script. + commit 549479d69363ca1ef5e7c676517e2327b8baadea * autogen.rc: New. * autogen.sh: New. Take from GnuPG. * Makefile.am (EXTRA_DIST): Add autogen.rc. (DISTCHECK_CONFIGURE_FLAGS): Disable qt4. 2014-08-12 Werner Koch common: Fix compiler warning. + commit 888591602fc359e2c1baaa49d92825e050426956 * pinentry/pinentry.c (pinentry_utf8_to_local): Use cast for iconv arg. (pinentry_local_to_utf8): Ditto. New pinentry-tty version for dumb terminals. + commit 12369b15c65fa64eef9dbc5e475b407e338641c7 * Makefile.am: Add pinentry-tty. * NEWS: Add news about pinentry-tty. * README: Update. * configure.ac: Add support for this pinentry. * tty/Makefile.am: New. * tty/pinentry-tty.c: New. 2014-08-06 Andre Heinecke Check for MOC also if pinentry-qt is disabled. + commit 52cf95c4fd97dc38856e72aa3e42a135d010df06 * configure.ac: Call QT_PATH_MOC if pinentry_qt4 is not no. Add fallbacks for SetForegroundWindow. + commit f4d14ffcf2e04b1938c00a0ef1504e0e932631fd If that foreground window fails pinentry-qt now tries to attach to the current foreground process and then tries to set the foreground window again. If that fails it also calls ShowWindow as a last resort. * qt4/pinentrydialog.cpp (raiseWindow): Add fallbacks in case SetForegroundWindow fails. Use raiseWindow also for confirm dialogs. + commit 47476d2f288a22c29567ae2c179ce0472db4257e This should fix the case that the dialog opened in the foreground but a warning / confirm dialog opened in the background. * qt4/pinentryconfirm.cpp, qt4/pinentryconfirm.h (showEvent): New overwrite base class method to call raiseWindow. * NEWS: Mention this. 2014-07-30 Andre Heinecke Set some accessibility information. + commit 41d046022e912c76cb424c906064745e732f01f3 * qt4/main.cpp (qt_cmd_handler): Build buttons with accessibile Description. * qt4/pinentrydialog.cpp (setDescription, setError, setOkText) (setCancelText, setQualityBar): Set an accessible description. * qt4/pinentryconfirm.cpp (PinentryConfirm): Set message box contents also as accessible values. * NEWS: Mention it and the copy/paste change from last year. 2013-07-15 Andre Heinecke Lower paste length limit to 300. + commit 556d305b970ed60ef1dc2718fcafbf3bea6b7fea This should be more then enough and avoids possible problems with libassuan cmd line lenght or percent escaping etc. * qt4/qsecurelineedit.cpp (insert): Lower paste limit Limit paste length to 1023 characters. + commit 9b154c9f87abd3ea5df4b763c958e538b19d0904 * qt4/qsecurelineedit.cpp (insert): Check for a maximum length before allocation the secmem string. Fix contextmenu support for pasting. + commit 4d56651dd4ab2568f8adc7e4448bb1239dbdbfb0 MOC ignores preprocessor definitions so we can not conditionally declare SLOTS. So we now move the ifdefs in the definition and always declare the SLOTS. * qt4/qsecurelinedit.cpp (cut, copy, paste): Do nothing if QT_NO_CLIPBOARD is defined. * qt4/qsecurelinedit.h: Always declare cut, copy and paste slots Remove check for RTL extensions. + commit d4feabe153b096db896dfe25bd1bf763d23123d7 Our code does nothing RTL specific there anyway. And the qt_use_rtl_extensions symbol has been removed. * qt4/qsecurelinedit.cpp: Remove check for RTL extensions. 2013-07-12 Werner Koch Fix for commit fb38be9 to allow for "make distcheck". + commit 54b9b92c13a496a33868501dec893bc8d82b1a8d * qt4/Makefile.am: Make correct use of BUILT_SOURCES. 2013-05-29 Andre Heinecke Add pinentry-qt4-clipboard option. + commit 0b3a8568e14b994a8d1f4c1cb42aed4959dfc811 Enabling this option will make it possible to paste a passphrase into pinentry-qt4. This defeats the secmem mechanism but drastically increases usability for some users. * configure.ac: New option pinentry-qt4-clipboard. * qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h: Activate clipboard and context menu if PINENTRY_QT4_CLIPBOARD is defined. Remove qt4 moc files and add moc to buildsystem. + commit fb38be960e837bb5854aa65bf8cbf9cbf535631e This is neccessary to conditionally enable signals/slots at build time. * qt4/Makefile.am: Moc files automatically. * qt4/pinentryconfirm.moc, qt4/pinentrydialog.moc, qsecurelineedit.moc: Removed. 2013-04-26 Werner Koch Release 0.8.3. + commit ce7f2e69fa78d9afac96efc3009513b203668b4b 2013-04-26 Andre Heinecke Switch to i686-w64-mingw32 as default Windows toolchain. + commit a421efcb91b80a37f58ae35687dc33db08a04b3d * autogen.sh : Insert i686-w64-mingw32. * configure.ac: Pretty print final info. Fix declaration of lock_set_foreground_window for pinnetry-w32. + commit 369e774ab835ecf23da267cf55f9ecf8ae8c5585 * w32/main.c (lock_set_foreground_window): Remove WINUSERAPI qualifier. Fix ressource compilation of pinentry-w32. + commit 18b0d8849e51b6203b3f1dbc1cc1cc71e52f78b6 * w32/pinentry-w32.rc: Include windows.h 2013-02-16 Ben Kibbey Curses build fix for DOS'ish systems. + commit 462f00dfc6636fbfe2e453c1b820d919ec1d0c99 2013-02-14 Ben Kibbey Document the --timeout and SETTIMEOUT feature. + commit 31467f7c2cd748d6f822ccf627a2ce8870fb09c6 Add timeout support to the Gtk+2 pinentry. + commit 8ce6e0c9cecd91d7b1dfe8bcc9942803c13c7afb * gtk+-2/pinentry-gtk-2.c (create_window): Add timer. (timeout_cb): New. Add timeout support to the curses pinentry. + commit e3bed4f087304ac126e247053fc82a593bec31b6 * pinentry/pinentry-curses.c (dialog_run): Set the window input to non-blocking. (catchsig): New. (main): Catch SIGALRM and set the timeout. 2013-01-06 Ben Kibbey Fix initializing the timeout timer. + commit d33537aef0358313cbcf1d010b227d93f3430900 When timeout == 0 a segfault would occur. 2012-08-08 Werner Koch Release 0.8.2. + commit ffc59acd0188006b9c90d03b59fe93dc7e12fe51 Distribute only bzip2 tarballs. + commit 94f356b2615a8cd2c5ce608b9f08a5fde3d02b26 * Makefile.am (AUTOMAKE_OPTIONS): New. qt4: Update all moc files to Qt version 4.8.2. + commit 7cbe87800fa8f84d7868da507010999cbc314beb Update config.guess and config.sub. + commit b3016d72478a57dd1132721a324b1a09ca23fed2 * config.guess, config.sub: Update to version 2012-07-31 from gnulib. Change build system to auto-generate the ChangeLog. + commit 826ca44db0d29bae54de8b5d4c0d67a3f22430ee * build-aux/gitlog-to-changelog: New script. Taken from GnuPG. * build-aux/git-log-fix: New file. * build-aux/git-log-footer: New file. * doc/HACKING: Describe the ChangeLog policy * ChangeLog: New file. * Makefile.am (EXTRA_DIST): Add new files. (gen-ChangeLog): New. (dist-hook): Run gen-ChangeLog. Rename existing ChangeLog files to ChangeLog-old. Switch to an automagic beta numbering scheme. + commit 19fae1e8652410712d52f1d926fb9bb40a506787 * configure.ac: Add all the required m4 magic. 2012-08-08 Werner Koch NB: Changes done before August 8, 2012 are described in per directory files named ChangeLog-old. See doc/HACKING for details. ----- Copyright (C) 2002, 2003, 2010, 2012 g10 Code GmbH Copying and distribution of this file and/or the original GIT commit log messages, with or without modification, are permitted provided the copyright notice and this notice are preserved. usr/share/doc/libtiff-devel/ChangeLog000064400001072331152527413140013525 0ustar002017-11-18 Bob Friesenhahn * configure.ac: libtiff 4.0.9 released. * html/v4.0.9.html: Add HTML file to document changes in libtiff v4.0.9. 2017-11-17 Even Rouault * libtiff/tif_aux.c, tif_getimage.c, tif_read.c: typo fixes in comments. 2017-11-02 Bob Friesenhahn * test/Makefile.am: Add some tests for tiff2bw. 2017-11-01 Bob Friesenhahn * tools/tiff2bw.c (main): Free memory allocated in the tiff2bw program. This is in response to the report associated with CVE-2017-16232 but does not solve the extremely high memory usage with the associated POC file. 2017-10-29 Bob Friesenhahn * tools/tiff2pdf.c (t2p_sample_realize_palette): Fix possible arithmetic overflow in bounds checking code and eliminate comparison between signed and unsigned type. * tools/fax2tiff.c (_FAX_Client_Data): Pass FAX_Client_Data as the client data. This client data is not used at all at the moment, but it makes the most sense. Issue that the value of client_data.fd was passed where a pointer is expected was reported via email by Gerald Schade on Sun, 29 Oct 2017. 2017-10-23 Even Rouault * libtiff/tif_getimage.c: avoid floating point division by zero in initCIELabConversion() Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3733 Credit to OSS Fuzz 2017-10-17 Even Rouault * libtiff/tif_jpeg.c: add compatibility with libjpeg-turbo 1.5.2 that honours max_memory_to_use > 0. Cf https://github.com/libjpeg-turbo/libjpeg-turbo/issues/162 2017-10-10 Even Rouault * nmake.opt: support a DEBUG=1 option, so as to adjust OPTFLAGS and use /MDd runtime in debug mode. 2017-10-01 Even Rouault * tools/tiffset.c: fix setting a single value for the ExtraSamples tag (and other tags with variable number of values). So 'tiffset -s ExtraSamples 1 X'. This only worked when setting 2 or more values, but not just one. 2017-09-29 Even Rouault * libtiff/libtiff.def: add TIFFReadRGBAStripExt and TIFFReadRGBATileExt Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2735 2017-09-09 Even Rouault * libtiff/tif_dirread.c: add NULL check to avoid likely false positive null-pointer dereference warning by CLang Static Analyzer. 2017-09-07 Even Rouault * libtiff/tiffiop.h, tif_aux.c: redirect SeekOK() macro to a _TIFFSeekoK() function that checks if the offset is not bigger than INT64_MAX, so as to avoid a -1 error return code of TIFFSeekFile() to match a required seek to UINT64_MAX/-1. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2726 Adapted from proposal by Nicolas Ruff. 2017-08-29 Even Rouault * libtiff/tif_jpeg.c: accept reading the last strip of a JPEG compressed file if the codestream height is larger than the truncated height of the strip. Emit a warning in this situation since this is non compliant. 2017-08-28 Even Rouault * test/Makefile.am: add missing reference to images/quad-lzw-compat.tiff to fix "make distcheck". Patch by Roger Leigh 2017-08-23 Even Rouault * libtiff/tif_dirwrite.c: replace assertion to tag value not fitting on uint32 when selecting the value of SubIFD tag by runtime check (in TIFFWriteDirectoryTagSubifd()). Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2728 Reported by team OWL337 2017-08-23 Even Rouault * libtiff/tif_dirwrite.c: replace assertion related to not finding the SubIFD tag by runtime check (in TIFFWriteDirectorySec()) Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2727 Reported by team OWL337 2017-07-24 Even Rouault * libtiff/tif_luv.c: further reduce memory requirements for temporary buffer when RowsPerStrip >= image_length in LogLuvInitState() and LogL16InitState(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2700 Credit to OSS Fuzz 2017-07-24 Even Rouault * libtiff/tif_getimage.c: fix fromskew computation when to-be-skipped pixel number is not a multiple of the horizontal subsampling, and also in some other cases. Impact putcontig8bitYCbCr44tile, putcontig8bitYCbCr42tile, putcontig8bitYCbCr41tile, putcontig8bitYCbCr21tile and putcontig8bitYCbCr12tile Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2637 (discovered by Agostino Sarubbo) and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2691 (credit to OSS Fuzz) 2017-07-24 Even Rouault * libtiff/tif_getimage.c: gtTileContig() and gtTileSeparate(): properly break from loops on error when stoponerr is set, instead of going on iterating on row based loop. 2017-07-18 Even Rouault * libtiff/tif_luv.c: LogLuvInitState(): avoid excessive memory allocation when RowsPerStrip tag is missing. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2683 Credit to OSS-Fuzz 2017-07-15 Even Rouault * libtiff/tif_read.c: add protection against excessive memory allocation attempts in TIFFReadDirEntryArray() on short files. Effective for mmap'ed case. And non-mmap'ed case, but restricted to 64bit builds. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2675 2017-07-15 Even Rouault * libtiff/tif_read.c: in TIFFFetchStripThing(), only grow the arrays that hold StripOffsets/StripByteCounts, when they are smaller than the expected number of striles, up to 1 million striles, and error out beyond. Can be tweaked by setting the environment variable LIBTIFF_STRILE_ARRAY_MAX_RESIZE_COUNT. This partially goes against a change added on 2002-12-17 to accept those arrays of wrong sizes, but is needed to avoid denial of services. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2350 Credit to OSS Fuzz 2017-07-15 Even Rouault * libtiff/tif_read.c: TIFFFillStrip() / TIFFFillTile(). Complementary fix for http://bugzilla.maptools.org/show_bug.cgi?id=2708 in the isMapped() case, so as to avoid excessive memory allocation when we need a temporary buffer but the file is truncated. 2017-07-15 Even Rouault * tools/tiff2pdf.c: prevent heap buffer overflow write in "Raw" mode on PlanarConfig=Contig input images. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2715 Reported by team OWL337 2017-07-11 Even Rouault * libtiff/tif_dir.c: avoid potential null pointer dereference in _TIFFVGetField() on corrupted TIFFTAG_NUMBEROFINKS tag instance. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2713 2017-07-11 Even Rouault * libtiff/tif_lzw.c: fix potential out-of-buffer read on 1-byte LZW strips. Crashing issue only on memory mapped files, where the strip offset is the last byte of the file, and the file size is a multiple of one page size on the CPU architecture (typically 4096). Credit to myself :-) 2017-07-11 Even Rouault * test/tiffcp-lzw-compat.sh, test/images/quad-lzw-compat.tiff: new files to test old-style LZW decompression * test/common.sh, Makefile.am, CMakeList.txt: updated with above 2017-07-11 Even Rouault * refresh autoconf/make stuff with what is on Ubuntu 16.04 (minor changes) 2017-07-11 Even Rouault * libtiff/tif_lzw.c: fix 4.0.8 regression in the decoding of old-style LZW compressed files. 2017-07-10 Even Rouault * libtiff/tif_pixarlog.c: avoid excessive memory allocation on decoding when RowsPerStrip tag is not defined (and thus td_rowsperstrip == UINT_MAX) Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2554 Credit to OSS Fuzz 2017-07-04 Even Rouault * libtiff/tif_read.c, tiffiop.h: add a _TIFFReadEncodedTileAndAllocBuffer() and _TIFFReadTileAndAllocBuffer() variants of TIFFReadEncodedTile() and TIFFReadTile() that allocates the decoded buffer only after a first successful TIFFFillTile(). This avoids excessive memory allocation on corrupted files. * libtiff/tif_getimage.c: use _TIFFReadTileAndAllocBuffer(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2470 Credit to OSS Fuzz. 2017-07-04 Even Rouault * libtiff/tif_error.c, tif_warning.c: correctly use va_list when both an old-style and new-style warning/error handlers are installed. Patch by Paavo Helde (sent on the mailing list) 2017-07-02 Even Rouault * libtiff/tif_read.c: TIFFStartTile(): set tif_rawcc to tif_rawdataloaded when it is set. Similarly to TIFFStartStrip(). This issue was revealed by the change of 2017-06-30 in TIFFFileTile(), limiting the number of bytes read. But it could probably have been hit too in CHUNKY_STRIP_READ_SUPPORT mode previously ? Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2454 Credit to OSS Fuzz 2017-06-30 Even Rouault * man: update documentation regarding SubIFD tag and TIFFSetSubDirectory() data type. Patch by Eric Piel Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2671 2017-06-30 Even Rouault * libtiff/tif_dirwrite.c: in TIFFWriteDirectoryTagCheckedXXXX() functions associated with LONG8/SLONG8 data type, replace assertion that the file is BigTIFF, by a non-fatal error. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2712 Reported by team OWL337 2017-06-30 Even Rouault * libtiff/tif_read.c, tiffiop.h: add a _TIFFReadEncodedStripAndAllocBuffer() function, variant of TIFFReadEncodedStrip() that allocates the decoded buffer only after a first successful TIFFFillStrip(). This avoids excessive memory allocation on corrupted files. * libtiff/tif_getimage.c: use _TIFFReadEncodedStripAndAllocBuffer(). Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2708 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2433 . Credit to OSS Fuzz 2017-06-30 Even Rouault * libtiff/tif_read.c: TIFFFillTile(): add limitation to the number of bytes read in case td_stripbytecount[strip] is bigger than reasonable, so as to avoid excessive memory allocation (similarly to what was done for TIFFFileStrip() on 2017-05-10) 2017-06-29 Even Rouault * libtiff/tiffiop.h, libtiff/tif_jpeg.c, libtiff/tif_jpeg_12.c, libtiff/tif_read.c: make TIFFReadScanline() works in CHUNKY_STRIP_READ_SUPPORT mode with JPEG stream with multiple scans. Also make configurable through a LIBTIFF_JPEG_MAX_ALLOWED_SCAN_NUMBER environment variable the maximum number of scans allowed. Defaults to 100. 2017-06-27 Even Rouault * libtiff/tif_dirread.c: in TIFFReadDirEntryFloat(), check that a double value can fit in a float before casting. Patch by Nicolas RUFF 2017-06-26 Even Rouault * libtiff/tif_jbig.c: fix memory leak in error code path of JBIGDecode() Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2706 Reported by team OWL337 2017-06-24 Even Rouault * libtiff/tif_jpeg.c: error out at decoding time if anticipated libjpeg memory allocation is above 100 MB. libjpeg in case of multiple scans, which is allowed even in baseline JPEG, if components are spread over several scans and not interleavedin a single one, needs to allocate memory (or backing store) for the whole strip/tile. See http://www.libjpeg-turbo.org/pmwiki/uploads/About/TwoIssueswiththeJPEGStandard.pdf This limitation may be overriden by setting the LIBTIFF_ALLOW_LARGE_LIBJPEG_MEM_ALLOC environment variable, or recompiling libtiff with a custom value of TIFF_LIBJPEG_LARGEST_MEM_ALLOC macro. 2017-06-24 Even Rouault * libtiff/tif_jpeg.c: add anti-denial of service measure to avoid excessive CPU consumption on progressive JPEGs with a huge number of scans. See http://www.libjpeg-turbo.org/pmwiki/uploads/About/TwoIssueswiththeJPEGStandard.pdf Note: only affects libtiff since 2014-12-29 where support of non-baseline JPEG was added. 2017-06-18 Even Rouault * libtiff/tiffiop.h: add TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW macro to disable CLang warnings raised by -fsanitize=undefined,unsigned-integer-overflow * libtiff/tif_predict.c: decorate legitimate functions where unsigned int overflow occur with TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW * libtiff/tif_dirread.c: avoid unsigned int overflow in EstimateStripByteCounts() and BYTECOUNTLOOKSBAD when file is too short. * libtiff/tif_jpeg.c: avoid (harmless) unsigned int overflow on tiled images. * libtiff/tif_fax3.c: avoid unsigned int overflow in Fax3Encode2DRow(). Could potentially be a bug with huge rows. * libtiff/tif_getimage.c: avoid many (harmless) unsigned int overflows. 2017-06-12 Even Rouault * libtiff/tif_dirread.c: TIFFFetchStripThing(): limit the number of items read in StripOffsets/StripByteCounts tags to the number of strips to avoid excessive memory allocation. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2215 Credit to OSS Fuzz 2017-06-12 Even Rouault * libtiff/tif_dirread.c: fix regression of libtiff 4.0.8 in ChopUpSingleUncompressedStrip() regarding update of newly single-strip uncompressed files whose bytecount is 0. Before the change of 2016-12-03, the condition bytecount==0 used to trigger an early exit/disabling of strip chop. Re-introduce that in update mode. Otherwise this cause later incorrect setting for the value of StripByCounts/StripOffsets. ( https://trac.osgeo.org/gdal/ticket/6924 ) 2017-06-10 Even Rouault * .appveyor.yml, .travis.yml, build/travis-ci: apply patches 0001-ci-Travis-script-improvements.patch and 0002-ci-Invoke-helper-script-via-shell.patch by Roger Leigh (sent to mailing list) 2017-06-08 Even Rouault * .travis.yml, build/travis-ci: new files from 0001-ci-Add-Travis-support-for-Linux-builds-with-Autoconf.patch by Roger Leigh (sent to mailing list on 2017-06-08) This patch adds support for the Travis-CI service. * .appveyor.yml: new file from 0002-ci-Add-AppVeyor-support.patch by Roger Leigh (sent to mailing list on 2017-06-08) This patch adds a .appveyor.yml file to the top-level. This allows one to opt in to having a branch built on Windows with Cygwin, MinGW and MSVC automatically when a branch is pushed to GitHub, GitLab, BitBucket or any other supported git hosting service. * CMakeLists.txt, test/CMakeLists.txt, test/TiffTestCommon.cmake: apply patch 0001-cmake-Improve-Cygwin-and-MingGW-test-support.patch from Roger Leigh (sent to mailing list on 2017-06-08) This patch makes the CMake build system support running the tests with MinGW or Cygwin. 2017-06-08 Even Rouault * libtiff/tif_swab.c: if DISABLE_CHECK_TIFFSWABMACROS is defined, do not do the #ifdef TIFFSwabXXX checks. Make it easier for GDAL to rename the symbols of its internal libtiff copy. 2017-06-01 Even Rouault * libtiff/tif_dirinfo.c, tif_dirread.c: add _TIFFCheckFieldIsValidForCodec(), and use it in TIFFReadDirectory() so as to ignore fields whose tag is a codec-specified tag but this codec is not enabled. This avoids TIFFGetField() to behave differently depending on whether the codec is enabled or not, and thus can avoid stack based buffer overflows in a number of TIFF utilities such as tiffsplit, tiffcmp, thumbnail, etc. Patch derived from 0063-Handle-properly-CODEC-specific-tags.patch (http://bugzilla.maptools.org/show_bug.cgi?id=2580) by Raphaël Hertzog. Fixes: http://bugzilla.maptools.org/show_bug.cgi?id=2580 http://bugzilla.maptools.org/show_bug.cgi?id=2693 http://bugzilla.maptools.org/show_bug.cgi?id=2625 (CVE-2016-10095) http://bugzilla.maptools.org/show_bug.cgi?id=2564 (CVE-2015-7554) http://bugzilla.maptools.org/show_bug.cgi?id=2561 (CVE-2016-5318) http://bugzilla.maptools.org/show_bug.cgi?id=2499 (CVE-2014-8128) http://bugzilla.maptools.org/show_bug.cgi?id=2441 http://bugzilla.maptools.org/show_bug.cgi?id=2433 2017-05-29 Even Rouault * libtiff/tif_getimage.c: initYCbCrConversion(): stricter validation for refBlackWhite coefficients values. To avoid invalid float->int32 conversion (when refBlackWhite[0] == 2147483648.f) Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1907 Credit to OSS Fuzz 2017-05-29 Even Rouault * libtiff/tif_color.c: TIFFYCbCrToRGBInit(): stricter clamping to avoid int32 overflow in TIFFYCbCrtoRGB(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1844 Credit to OSS Fuzz 2017-05-21 Bob Friesenhahn * configure.ac: libtiff 4.0.8 released. * html/v4.0.8.html: Add description of changes targeting the 4.0.8 release. 2017-05-20 Even Rouault * libtiff/tif_getimage.c: initYCbCrConversion(): stricter validation for refBlackWhite coefficients values. To avoid invalid float->int32 conversion. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1718 Credit to OSS Fuzz 2017-05-18 Even Rouault * libtiff/tif_getimage.c: initYCbCrConversion(): check luma[1] is not zero to avoid division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1665 Credit to OSS Fuzz 2017-05-17 Even Rouault * libtiff/tif_read.c: _TIFFVSetField(): fix outside range cast of double to float. Credit to Google Autofuzz project 2017-05-17 Even Rouault * libtiff/tif_getimage.c: initYCbCrConversion(): add basic validation of luma and refBlackWhite coefficients (just check they are not NaN for now), to avoid potential float to int overflows. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1663 Credit to OSS Fuzz 2017-05-17 Even Rouault * libtiff/tif_pixarlog.c: PixarLogDecode(): resync tif_rawcp with next_in and tif_rawcc with avail_in at beginning and end of function, similarly to what is done in LZWDecode(). Likely needed so that it works properly with latest chnges in tif_read.c in CHUNKY_STRIP_READ_SUPPORT mode. But untested... 2017-05-17 Even Rouault * libtiff/tif_lzw.c: update dec_bitsleft at beginning of LZWDecode(), and update tif_rawcc at end of LZWDecode(). This is needed to properly work with the latest chnges in tif_read.c in CHUNKY_STRIP_READ_SUPPORT mode. 2017-05-14 Even Rouault * libtiff/tif_luv.c: LogL16InitState(): avoid excessive memory allocation when RowsPerStrip tag is missing. Credit to OSS-Fuzz (locally run, on GDAL) 2017-05-14 Even Rouault * libtiff/tif_packbits.c: fix out-of-buffer read in PackBitsDecode() Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1563 Credit to OSS-Fuzz 2017-05-13 Even Rouault * libtiff/tif_pixarlog.c, tif_luv.c: avoid potential int32 overflows in multiply_ms() and add_ms(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1558 Credit to OSS-Fuzz 2017-05-13 Even Rouault * libtiff/tif_color.c: avoid potential int32 overflow in TIFFYCbCrToRGBInit() Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1533 Credit to OSS-Fuzz 2017-05-13 Even Rouault * libtiff/tif_read.c: update tif_rawcc in CHUNKY_STRIP_READ_SUPPORT mode with tif_rawdataloaded when calling TIFFStartStrip() or TIFFFillStripPartial(). This avoids reading beyond tif_rawdata when bytecount > tif_rawdatasize. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1545. Credit to OSS-Fuzz 2017-05-12 Even Rouault * libtiff/tif_read.c: TIFFFillStripPartial(): avoid excessive memory allocation in case of shorten files. Only effective on 64 bit builds. Credit to OSS-Fuzz (locally run, on GDAL) 2017-05-12 Even Rouault * libtiff/tif_read.c: TIFFFillStripPartial() / TIFFSeek(), avoid potential integer overflows with read_ahead in CHUNKY_STRIP_READ_SUPPORT mode. Should especially occur on 32 bit platforms. 2017-05-10 Even Rouault * libtiff/tif_read.c: TIFFFillStrip() and TIFFFillTile(): avoid excessive memory allocation in case of shorten files. Only effective on 64 bit builds and non-mapped cases. Credit to OSS-Fuzz (locally run, on GDAL) 2017-05-10 Even Rouault * libtiff/tif_zip.c, tif_pixarlog.c, tif_predict.c: fix memory leak when the underlying codec (ZIP, PixarLog) succeeds its setupdecode() method, but PredictorSetup fails. Credit to OSS-Fuzz (locally run, on GDAL) 2017-05-10 Even Rouault * libtiff/tif_read.c: TIFFFillStrip(): add limitation to the number of bytes read in case td_stripbytecount[strip] is bigger than reasonable, so as to avoid excessive memory allocation. 2017-04-28 Even Rouault * tools/tiff2bw.c: close TIFF handle in error code path. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2677 2017-04-27 Even Rouault * litiff/tif_fax3.c: avoid crash in Fax3Close() on empty file. Patch by Alan Coopersmith + complement by myself. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2673 * tools/fax2tiff.c: emit appropriate message if the input file is empty. Patch by Alan Coopersmith. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2672 2017-04-27 Even Rouault * libtiff/tif_ojpeg.c: fix potential memory leak in OJPEGReadHeaderInfoSecTablesQTable, OJPEGReadHeaderInfoSecTablesDcTable and OJPEGReadHeaderInfoSecTablesAcTable Patch by Nicolás Peña. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2670 2017-04-27 Even Rouault * libtiff/tif_dirread.c: fix memory leak in non DEFER_STRILE_LOAD mode (ie default) when there is both a StripOffsets and TileOffsets tag, or a StripByteCounts and TileByteCounts Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2689 * tools/tiff2ps.c: call TIFFClose() in error code paths. 2017-02-25 Even Rouault * libtiff/tif_fax3.c, tif_predict.c, tif_getimage.c: fix GCC 7 -Wimplicit-fallthrough warnings. 2017-02-18 Even Rouault * libtiff/tif_pixarlog.c: fix memory leak in error code path of PixarLogSetupDecode(). Patch by Nicolás Peña. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2665 2017-02-18 Even Rouault * libtiff/tif_lzw.c: in LZWPostEncode(), increase, if necessary, the code bit-width after flushing the remaining code and before emitting the EOI code. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=1982 2017-01-31 Even Rouault * libtiff/tif_jpeg.c: only run JPEGFixupTagsSubsampling() if the YCbCrSubsampling tag is not explicitly present. This helps a bit to reduce the I/O amount when te tag is present (especially on cloud hosted files). 2017-01-14 Even Rouault * tools/raw2tiff.c: avoid integer division by zero. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2631 2017-01-12 Even Rouault * libtiff/tif_ojpeg.c: fix leak in OJPEGReadHeaderInfoSecTablesQTable, OJPEGReadHeaderInfoSecTablesDcTable and OJPEGReadHeaderInfoSecTablesAcTable when read fails. Patch by Nicolás Peña. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2659 2017-01-11 Even Rouault * libtiff/tif_luv.c, tif_lzw.c, tif_packbits.c: return 0 in Encode functions instead of -1 when TIFFFlushData1() fails. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2130 2017-01-11 Even Rouault * tools/tiffcp.c: error out cleanly in cpContig2SeparateByRow and cpSeparate2ContigByRow if BitsPerSample != 8 to avoid heap based overflow. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2656 and http://bugzilla.maptools.org/show_bug.cgi?id=2657 2017-01-11 Even Rouault * libtiff/tiffio.h, tif_unix.c, tif_win32.c, tif_vms.c: add _TIFFcalloc() * libtiff/tif_read.c: TIFFReadBufferSetup(): use _TIFFcalloc() to zero initialize tif_rawdata. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2651 2017-01-11 Even Rouault * libtiff/tif_getimage.c: add explicit uint32 cast in putagreytile to avoid UndefinedBehaviorSanitizer warning. Patch by Nicolás Peña. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2658 2017-01-11 Even Rouault * libtiff/tif_read.c: avoid potential undefined behaviour on signed integer addition in TIFFReadRawStrip1() in isMapped() case. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2650 2017-01-11 Even Rouault * libtiff/tif_jpeg.c: validate BitsPerSample in JPEGSetupEncode() to avoid undefined behaviour caused by invalid shift exponent. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2648 2017-01-11 Even Rouault * libtiff/tif_dir.c, tif_dirread.c, tif_dirwrite.c: implement various clampings of double to other data types to avoid undefined behaviour if the output range isn't big enough to hold the input value. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2643 http://bugzilla.maptools.org/show_bug.cgi?id=2642 http://bugzilla.maptools.org/show_bug.cgi?id=2646 http://bugzilla.maptools.org/show_bug.cgi?id=2647 2017-01-11 Even Rouault * libtiff/tif_dirread.c: avoid division by floating point 0 in TIFFReadDirEntryCheckedRational() and TIFFReadDirEntryCheckedSrational(), and return 0 in that case (instead of infinity as before presumably) Apparently some sanitizers do not like those divisions by zero. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2644 2017-01-11 Even Rouault * libtiff/tif_dirwrite.c: in TIFFWriteDirectoryTagCheckedRational, replace assertion by runtime check to error out if passed value is strictly negative. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2535 * tools/tiffcrop.c: remove extraneous TIFFClose() in error code path, that caused double free. Related to http://bugzilla.maptools.org/show_bug.cgi?id=2535 2017-01-11 Even Rouault * libtiff/tif_jpeg.c: avoid integer division by zero in JPEGSetupEncode() when horizontal or vertical sampling is set to 0. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2653 2017-01-03 Even Rouault * libtiff/tif_jpeg.c: increase libjpeg max memory usable to 10 MB instead of libjpeg 1MB default. This helps when creating files with "big" tile, without using libjpeg temporary files. Related to https://trac.osgeo.org/gdal/ticket/6757 2016-12-20 Even Rouault * tools/tiff2pdf.c: avoid potential heap-based overflow in t2p_readwrite_pdf_image_tile(). Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2640 2016-12-20 Even Rouault * tools/tiff2pdf.c: avoid potential invalid memory read in t2p_writeproc. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2639 2016-12-20 Even Rouault * tools/tiff2pdf.c: fix wrong usage of memcpy() that can trigger unspecified behaviour. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2638 2016-12-18 Even Rouault * libtiff/tif_getimage.c: fix potential memory leaks in error code path of TIFFRGBAImageBegin(). Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2627 2016-12-18 Even Rouault * tools/tiff2pdf.c: prevent heap-based buffer overflow in -j mode on a paletted image. Note: this fix errors out before the overflow happens. There could probably be a better fix. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2635 2016-12-17 Even Rouault * libtiff/tiffio.h, libtiff/tif_getimage.c: add TIFFReadRGBAStripExt() and TIFFReadRGBATileExt() variants of the functions without ext, with an extra argument to control the stop_on_error behaviour. 2016-12-17 Even Rouault * tools/tiff2ps.c: fix 2 heap-based buffer overflows (in PSDataBW and PSDataColorContig). Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2633 and http://bugzilla.maptools.org/show_bug.cgi?id=2634. 2016-12-13 Even Rouault * libtiff/tif_fax3.h: revert change done on 2016-01-09 that made Param member of TIFFFaxTabEnt structure a uint16 to reduce size of the binary. It happens that the Hylafax software uses the tables that follow this typedef (TIFFFaxMainTable, TIFFFaxWhiteTable, TIFFFaxBlackTable), although they are not in a public libtiff header. Raised by Lee Howard. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2636 2016-12-04 Even Rouault * html/man/Makefile.am: remove thumbnail.1.html and rgb2ycbcr.1.html from installed pages since the corresponding utilities are no longer installed. Reported by Havard Eidnes Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2606 2016-12-03 Even Rouault * libtiff/tif_write.c: fix misleading indentation as warned by GCC. 2016-12-03 Even Rouault * tools/tiffcp.c: replace assert( (bps % 8) == 0 ) by a non assert check. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2605 2016-12-03 Even Rouault * tools/tiffcp.c: fix uint32 underflow/overflow that can cause heap-based buffer overflow. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2610 2016-12-03 Even Rouault * tools/tiffcp.c: avoid potential division by zero is BitsPerSamples tag is missing. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2607 2016-12-03 Even Rouault * man/Makefile.am: remove thumbnail.1 and rgb2ycbcr.1 from installed man pages since the corresponding utilities are no longer installed. Reported by Havard Eidnes Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2606 2016-12-03 Even Rouault * tools/tif_dir.c: when TIFFGetField(, TIFFTAG_NUMBEROFINKS, ) is called, limit the return number of inks to SamplesPerPixel, so that code that parses ink names doesn't go past the end of the buffer. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2599 2016-12-03 Even Rouault * tools/tiffcp.c: avoid potential division by zero is BitsPerSamples tag is missing. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2597 2016-12-03 Even Rouault * tools/tiffinfo.c: fix null pointer dereference in -r mode when the image has no StripByteCount tag. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2594 2016-12-03 Even Rouault * tools/tiffcrop.c: fix integer division by zero when BitsPerSample is missing. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2619 2016-12-03 Even Rouault * tools/tiffcrop.c: add 3 extra bytes at end of strip buffer in readSeparateStripsIntoBuffer() to avoid read outside of heap allocated buffer. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2621 2016-12-03 Even Rouault * tools/tiffcrop.c: fix readContigStripsIntoBuffer() in -i (ignore) mode so that the output buffer is correctly incremented to avoid write outside bounds. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2620 2016-12-03 Even Rouault * libtiff/tif_ojpeg.c: make OJPEGDecode() early exit in case of failure in OJPEGPreDecode(). This will avoid a divide by zero, and potential other issues. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2611 2016-12-03 Even Rouault * libtiff/tif_dirread.c: modify ChopUpSingleUncompressedStrip() to instanciate compute ntrips as TIFFhowmany_32(td->td_imagelength, rowsperstrip), instead of a logic based on the total size of data. Which is faulty is the total size of data is not sufficient to fill the whole image, and thus results in reading outside of the StripByCounts/StripOffsets arrays when using TIFFReadScanline(). Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2608. * libtiff/tif_strip.c: revert the change in TIFFNumberOfStrips() done for http://bugzilla.maptools.org/show_bug.cgi?id=2587 / CVE-2016-9273 since the above change is a better fix that makes it unnecessary. 2016-12-03 Even Rouault * libtiff/tif_pixarlog.c, libtiff/tif_luv.c: fix heap-based buffer overflow on generation of PixarLog / LUV compressed files, with ColorMap, TransferFunction attached and nasty plays with bitspersample. The fix for LUV has not been tested, but suffers from the same kind of issue of PixarLog. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2604 2016-12-02 Even Rouault * tools/tiffcp.c: avoid uint32 underflow in cpDecodedStrips that can cause various issues, such as buffer overflows in the library. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2598 2016-12-02 Even Rouault * libtiff/tif_read.c, libtiff/tiffiop.h: fix uint32 overflow in TIFFReadEncodedStrip() that caused an integer division by zero. Reported by Agostino Sarubbo. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2596 2016-11-20 Even Rouault * libtiff/tif_getimage.c, libtiff/tif_open.c: add parenthesis to fix cppcheck clarifyCalculation warnings * libtiff/tif_predict.c, libtiff/tif_print.c: fix printf unsigned vs signed formatting (cppcheck invalidPrintfArgType_uint warnings) 2016-11-20 Bob Friesenhahn * tools/fax2tiff.c (main): Applied patch by Jörg Ahrens to fix passing client data for Win32 builds using tif_win32.c (USE_WIN32_FILEIO defined) for file I/O. Patch was provided via email on November 20, 2016. 2016-11-19 Bob Friesenhahn * libtiff 4.0.7 released. * configure.ac: Update for 4.0.7 release. * tools/tiffdump.c (ReadDirectory): Remove uint32 cast to _TIFFmalloc() argument which resulted in Coverity report. Added more mutiplication overflow checks. 2016-11-18 Even Rouault * tools/tiffcrop.c: Fix memory leak in (recent) error code path. Fixes Coverity 1394415. 2016-11-17 Bob Friesenhahn * libtiff/tif_getimage.c: Fix some benign warnings which appear in 64-bit compilation under Microsoft Visual Studio of the form "Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.". Problem was reported on November 16, 2016 on the tiff mailing list. 2016-11-16 Even Rouault * libtiff/tif_dirread.c: in TIFFFetchNormalTag(), do not dereference NULL pointer when values of tags with TIFF_SETGET_C16_ASCII / TIFF_SETGET_C32_ASCII access are 0-byte arrays. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2593 (regression introduced by previous fix done on 2016-11-11 for CVE-2016-9297). Reported by Henri Salo. Assigned as CVE-2016-9448 2016-11-12 Bob Friesenhahn * tools/tiffinfo.c (TIFFReadContigTileData): Fix signed/unsigned comparison warning. (TIFFReadSeparateTileData): Fix signed/unsigned comparison warning. * tools/tiffcrop.c (readContigTilesIntoBuffer): Fix signed/unsigned comparison warning. * html/v4.0.7.html: Add a file to document the pending 4.0.7 release. 2016-11-11 Even Rouault * tools/tiff2pdf.c: avoid undefined behaviour related to overlapping of source and destination buffer in memcpy() call in t2p_sample_rgbaa_to_rgb() Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2577 2016-11-11 Even Rouault * tools/tiff2pdf.c: fix potential integer overflows on 32 bit builds in t2p_read_tiff_size() Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2576 2016-11-11 Even Rouault * libtiff/tif_aux.c: fix crash in TIFFVGetFieldDefaulted() when requesting Predictor tag and that the zip/lzw codec is not configured. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2591 2016-11-11 Even Rouault * libtiff/tif_dirread.c: in TIFFFetchNormalTag(), make sure that values of tags with TIFF_SETGET_C16_ASCII / TIFF_SETGET_C32_ASCII access are null terminated, to avoid potential read outside buffer in _TIFFPrintField(). Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2590 (CVE-2016-9297) 2016-11-11 Even Rouault * libtiff/tif_dirread.c: reject images with OJPEG compression that have no TileOffsets/StripOffsets tag, when OJPEG compression is disabled. Prevent null pointer dereference in TIFFReadRawStrip1() and other functions that expect td_stripbytecount to be non NULL. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2585 2016-11-11 Even Rouault * tools/tiffcrop.c: fix multiple uint32 overflows in writeBufferToSeparateStrips(), writeBufferToContigTiles() and writeBufferToSeparateTiles() that could cause heap buffer overflows. Reported by Henri Salo from Nixu Corporation. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2592 (CVE-2016-9532) 2016-11-10 Even Rouault * libtiff/tif_strip.c: make TIFFNumberOfStrips() return the td->td_nstrips value when it is non-zero, instead of recomputing it. This is needed in TIFF_STRIPCHOP mode where td_nstrips is modified. Fixes a read outsize of array in tiffsplit (or other utilities using TIFFNumberOfStrips()). Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2587 (CVE-2016-9273) 2016-11-04 Even Rouault * libtiff/tif_predic.c: fix memory leaks in error code paths added in previous commit (fix for MSVR 35105) 2016-10-31 Even Rouault * libtiff/tif_predict.h, libtiff/tif_predict.c: Replace assertions by runtime checks to avoid assertions in debug mode, or buffer overflows in release mode. Can happen when dealing with unusual tile size like YCbCr with subsampling. Reported as MSVR 35105 by Axel Souchet & Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. 2016-10-26 Even Rouault * tools/fax2tiff.c: fix segfault when specifying -r without argument. Patch by Yuriy M. Kaminskiy. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2572 2016-10-25 Even Rouault * libtiff/tif_dir.c: discard values of SMinSampleValue and SMaxSampleValue when they have been read and the value of SamplesPerPixel is changed afterwards (like when reading a OJPEG compressed image with a missing SamplesPerPixel tag, and whose photometric is RGB or YCbCr, forcing SamplesPerPixel being 3). Otherwise when rewriting the directory (for example with tiffset, we will expect 3 values whereas the array had been allocated with just one), thus causing a out of bound read access. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2500 (CVE-2014-8127, duplicate: CVE-2016-3658) * libtiff/tif_dirwrite.c: avoid null pointer dereference on td_stripoffset when writing directory, if FIELD_STRIPOFFSETS was artificially set for a hack case in OJPEG case. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2500 (CVE-2014-8127, duplicate: CVE-2016-3658) 2016-10-25 Even Rouault * tools/tiffinfo.c: fix out-of-bound read on some tiled images. (http://bugzilla.maptools.org/show_bug.cgi?id=2517) * libtiff/tif_compress.c: make TIFFNoDecode() return 0 to indicate an error and make upper level read routines treat it accordingly. (linked to the test case of http://bugzilla.maptools.org/show_bug.cgi?id=2517) 2016-10-14 Even Rouault * tools/tiffcrop.c: fix out-of-bound read of up to 3 bytes in readContigTilesIntoBuffer(). Reported as MSVR 35092 by Axel Souchet & Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. 2016-10-09 Even Rouault * tools/tiff2pdf.c: fix write buffer overflow of 2 bytes on JPEG compressed images. Reported by Tyler Bohan of Cisco Talos as TALOS-CAN-0187 / CVE-2016-5652. Also prevents writing 2 extra uninitialized bytes to the file stream. 2016-10-08 Even Rouault * tools/tiffcp.c: fix out-of-bounds write on tiled images with odd tile width vs image width. Reported as MSVR 35103 by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. 2016-10-08 Even Rouault * tools/tiff2pdf.c: fix read -largely- outsize of buffer in t2p_readwrite_pdf_image_tile(), causing crash, when reading a JPEG compressed image with TIFFTAG_JPEGTABLES length being one. Reported as MSVR 35101 by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. CVE-2016-9453 2016-10-08 Even Rouault * tools/tiffcp.c: fix read of undefined variable in case of missing required tags. Found on test case of MSVR 35100. * tools/tiffcrop.c: fix read of undefined buffer in readContigStripsIntoBuffer() due to uint16 overflow. Probably not a security issue but I can be wrong. Reported as MSVR 35100 by Axel Souchet from the MSRC Vulnerabilities & Mitigations team. 2016-09-25 Bob Friesenhahn * html: Change as many remotesensing.org broken links to a working URL as possible. 2016-09-24 Bob Friesenhahn * libtiff/tif_getimage.c (TIFFRGBAImageOK): Reject attempts to read floating point images. * libtiff/tif_predict.c (PredictorSetup): Enforce bits-per-sample requirements of floating point predictor (3). Fixes CVE-2016-3622 "Divide By Zero in the tiff2rgba tool." 2016-09-23 Even Rouault * tools/tiffcrop.c: fix various out-of-bounds write vulnerabilities in heap or stack allocated buffers. Reported as MSVR 35093, MSVR 35096 and MSVR 35097. Discovered by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. * tools/tiff2pdf.c: fix out-of-bounds write vulnerabilities in heap allocate buffer in t2p_process_jpeg_strip(). Reported as MSVR 35098. Discovered by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. * libtiff/tif_pixarlog.c: fix out-of-bounds write vulnerabilities in heap allocated buffers. Reported as MSVR 35094. Discovered by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. * libtiff/tif_write.c: fix issue in error code path of TIFFFlushData1() that didn't reset the tif_rawcc and tif_rawcp members. I'm not completely sure if that could happen in practice outside of the odd behaviour of t2p_seekproc() of tiff2pdf). The report points that a better fix could be to check the return value of TIFFFlushData1() in places where it isn't done currently, but it seems this patch is enough. Reported as MSVR 35095. Discovered by Axel Souchet & Vishal Chauhan & Suha Can from the MSRC Vulnerabilities & Mitigations team. 2016-09-20 Bob Friesenhahn * html/man/index.html: Comment out links to documentation for abandoned utilities. 2016-09-17 Even Rouault * libtiff/tif_lzma.c: typo fix in comment 2016-09-04 Even Rouault * libtiff/*.c: fix warnings raised by clang 3.9 -Wcomma 2016-09-03 Even Rouault * libtiff/tif_dirwrite.c, libtiff/tif_color.c: fix warnings raised by GCC 5 / clang -Wfloat-conversion 2016-08-16 Even Rouault * tools/tiffcrop.c: fix C99'ism. 2016-08-15 Even Rouault * tools/tiff2bw.c: fix weight computation that could result of color value overflow (no security implication). Fix bugzilla #2550. Patch by Frank Freudenberg. 2016-08-15 Even Rouault * tools/rgb2ycbcr.c: validate values of -v and -h parameters to avoid potential divide by zero. Fixes CVE-2016-3623 (bugzilla #2569) 2016-08-15 Even Rouault * tools/tiffcrop.c: Fix out-of-bounds write in loadImage(). From patch libtiff-CVE-2016-3991.patch from libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro (bugzilla #2543) 2016-08-15 Even Rouault * libtiff/tif_pixarlog.c: Fix write buffer overflow in PixarLogEncode if more input samples are provided than expected by PixarLogSetupEncode. Idea based on libtiff-CVE-2016-3990.patch from libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro, but with different and simpler check. (bugzilla #2544) 2016-08-15 Even Rouault * tools/tiff2rgba.c: Fix integer overflow in size of allocated buffer, when -b mode is enabled, that could result in out-of-bounds write. Based initially on patch tiff-CVE-2016-3945.patch from libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro, with correction for invalid tests that rejected valid files. (bugzilla #2545) 2016-07-11 Even Rouault * tools/tiffcrop.c: Avoid access outside of stack allocated array on a tiled separate TIFF with more than 8 samples per pixel. Reported by Kaixiang Zhang of the Cloud Security Team, Qihoo 360 (CVE-2016-5321 / CVE-2016-5323 , bugzilla #2558 / #2559) 2016-07-10 Even Rouault * libtiff/tif_read.c: Fix out-of-bounds read on memory-mapped files in TIFFReadRawStrip1() and TIFFReadRawTile1() when stripoffset is beyond tmsize_t max value (reported by Mathias Svensson) 2016-07-10 Even Rouault * tools/tiffdump.c: fix a few misaligned 64-bit reads warned by -fsanitize 2016-07-03 Even Rouault * libtiff/tif_read.c: make TIFFReadEncodedStrip() and TIFFReadEncodedTile() directly use user provided buffer when no compression (and other conditions) to save a memcpy(). * libtiff/tif_write.c: make TIFFWriteEncodedStrip() and TIFFWriteEncodedTile() directly use user provided buffer when no compression to save a memcpy(). 2016-07-01 Even Rouault * libtiff/tif_luv.c: validate that for COMPRESSION_SGILOG and PHOTOMETRIC_LOGL, there is only one sample per pixel. Avoid potential invalid memory write on corrupted/unexpected images when using the TIFFRGBAImageBegin() interface (reported by Clay Wood) 2016-06-28 Even Rouault * libtiff/tif_pixarlog.c: fix potential buffer write overrun in PixarLogDecode() on corrupted/unexpected images (reported by Mathias Svensson) (CVE-2016-5875) 2016-06-15 Bob Friesenhahn * libtiff/libtiff.def: Added _TIFFMultiply32 and _TIFFMultiply64 to libtiff.def 2016-06-05 Bob Friesenhahn * tools/Makefile.am: The libtiff tools bmp2tiff, gif2tiff, ras2tiff, sgi2tiff, sgisv, and ycbcr are completely removed from the distribution. The libtiff tools rgb2ycbcr and thumbnail are only built in the build tree for testing. Old files are put in new 'archive' subdirectory of the source repository, but not in distribution archives. These changes are made in order to lessen the maintenance burden. 2016-05-10 Bob Friesenhahn * libtiff/tif_config.vc.h (HAVE_SNPRINTF): Add a '1' to the HAVE_SNPRINTF definition.' 2016-05-09 Bob Friesenhahn * libtiff/tif_config.vc.h (HAVE_SNPRINTF): Applied patch by Edward Lam to define HAVE_SNPRINTF for Visual Studio 2015. 2016-04-27 Even Rouault * libtiff/tif_dirread.c: when compiled with DEFER_STRILE_LOAD, fix regression, introduced on 2014-12-23, when reading a one-strip file without a StripByteCounts tag. GDAL #6490 2016-04-07 Bob Friesenhahn * html/bugs.html: Replace Andrey Kiselev with Bob Friesenhahn for purposes of security issue reporting. 2016-01-23 Even Rouault * libtiff/*: upstream typo fixes (mostly contributed by Kurt Schwehr) coming from GDAL internal libtiff 2016-01-09 Even Rouault * libtiff/tif_fax3.h: make Param member of TIFFFaxTabEnt structure a uint16 to reduce size of the binary. 2016-01-03 Even Rouault * libtiff/tif_read.c, tif_dirread.c: fix indentation issues raised by GCC 6 -Wmisleading-indentation 2015-12-27 Even Rouault * libtiff/tif_pixarlog.c: avoid zlib error messages to pass a NULL string to %s formatter, which is undefined behaviour in sprintf(). 2015-12-27 Even Rouault * libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode() triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif (bugzilla #2508) 2015-12-27 Even Rouault * libtiff/tif_luv.c: fix potential out-of-bound writes in decode functions in non debug builds by replacing assert()s by regular if checks (bugzilla #2522). Fix potential out-of-bound reads in case of short input data. 2015-12-26 Even Rouault * libtiff/tif_getimage.c: fix out-of-bound reads in TIFFRGBAImage interface in case of unsupported values of SamplesPerPixel/ExtraSamples for LogLUV / CIELab. Add explicit call to TIFFRGBAImageOK() in TIFFRGBAImageBegin(). Fix CVE-2015-8665 reported by limingxing and CVE-2015-8683 reported by zzf of Alibaba. 2015-12-21 Even Rouault * libtiff/tif_dirread.c: workaround false positive warning of Clang Static Analyzer about null pointer dereference in TIFFCheckDirOffset(). 2015-12-19 Even Rouault * libtiff/tif_fax3.c: remove dead assignment in Fax3PutEOLgdal(). Found by Clang Static Analyzer 2015-12-18 Even Rouault * libtiff/tif_dirwrite.c: fix truncation to 32 bit of file offsets in TIFFLinkDirectory() and TIFFWriteDirectorySec() when aligning directory offsets on a even offset (affects BigTIFF). This was a regression of the changeset of 2015-10-19. 2015-12-12 Even Rouault * libtiff/tif_write.c: TIFFWriteEncodedStrip() and TIFFWriteEncodedTile() should return -1 in case of failure of tif_encodestrip() as documented * libtiff/tif_dumpmode.c: DumpModeEncode() should return 0 in case of failure so that the above mentionned functions detect the error. 2015-12-06 Even Rouault * libtiff/uvcode.h: const'ify uv_code array 2015-12-06 Even Rouault * libtiff/tif_dirinfo.c: const'ify tiffFields, exifFields, tiffFieldArray and exifFieldArray arrays 2015-12-06 Even Rouault * libtiff/tif_print.c: constify photoNames and orientNames arrays 2015-12-06 Even Rouault * libtiff/tif_close.c, libtiff/tif_extension.c : rename link variable to avoid -Wshadow warnings 2015-11-22 Even Rouault * libtiff/*.c: fix typos in comments (patch by Kurt Schwehr) 2015-11-22 Even Rouault * libtiff/*.c: fix MSVC warnings related to cast shortening and assignment within conditional expression 2015-11-18 Even Rouault * libtiff/*.c: fix clang -Wshorten-64-to-32 warnings 2015-11-18 Even Rouault * libtiff/tif_dirread.c: initialize double* data at line 3693 to NULL to please MSVC 2013 2015-11-17 Even Rouault * libtiff/tif_dirread.c: prevent reading ColorMap or TransferFunction if BitsPerPixel > 24, so as to avoid huge memory allocation and file read attempts 2015-11-02 Even Rouault * libtiff/tif_dirread.c: remove duplicated assignment (reported by Clang static analyzer) 2015-10-28 Even Rouault * libtiff/tif_dir.c, libtiff/tif_dirinfo.c, libtiff/tif_compress.c, libtiff/tif_jpeg_12.c: suppress warnings about 'no previous declaration/prototype' 2015-10-19 Even Rouault * libtiff/tiffiop.h, libtiff/tif_dirwrite.c: suffix constants by U to fix 'warning: negative integer implicitly converted to unsigned type' warning (part of -Wconversion) 2015-10-17 Even Rouault * libtiff/tif_dir.c, libtiff/tif_dirread.c, libtiff/tif_getimage.c, libtiff/tif_print.c: fix -Wshadow warnings (only in libtiff/) 2015-09-12 Bob Friesenhahn * libtiff 4.0.6 released. * html/v4.0.6.html: Added release notes for 4.0.6. 2015-09-06 Bob Friesenhahn * tools/tiffgt.c: Silence glut API deprecation warnings on MacOS X. Patch by Roger Leigh. * Makefile.am: Added a 'coverity' rule to assist with Coverity submissions. * tools/tiff2pdf.c: Fix compiler warning about unused function when JPEG is not available. * tools/fax2ps.c (main): Detect failure to write to temporary file. 2015-09-05 Bob Friesenhahn * libtiff/tif_dirread.c (TIFFReadDirEntryCheckRangeSlongSlong8): Change implementation so that it does not sometimes overflow the range of a 32-bit int and to avoid a signed vs unsigned compare compiler warning. (TIFF_INT64_MAX): Avoid use of platform-specific large constants. (TIFF_UINT32_MAX): Avoid use of platform-specific large constants. 2015-09-01 Bob Friesenhahn * Makefile.am (distcheck-hook), configure.ac: Applied patches by Roger Leigh (via tiff mailing list on 2015-09-01) to fix issue with BSD make and to make use of cmake in 'distcheck' target conditional on if cmake is available. * CMakeLists.txt, Makefile.am, configure.ac: Applied patches by Roger Leigh (via tiff mailing list on 2015-09-01). CMake build is now included in 'distcheck' target. Builds with CMake 2.8.9 and newer. Tar is now resquested to use POSIX PAX format. 2015-08-31 Bob Friesenhahn * CMakeLists.txt, libtiff/test/Makefile.am: Applied patches by Roger Leigh (via tiff mailing list on 2015-08-31. CMake reads all version information directly from configure.ac to avoid duplication of values. This basically greps over the file for the LIBTIFF_* variables, then translates them to the form needed for cmake. This includes the release version and libtool shared library version information. Make shared/static library building configurable. Currently it always builds shared libraries, with static libs having a _static suffix (copying zlib, but it means it's got a non-standard name). CMake has a -DBUILD_SHARED_LIBS=ON|OFF option to select one or the other, which is now used instead. There's now a single "tiff" target to build either shared or static as required, and all the tests and tools are linked with this. Note: the Windows tests fail when linked with a static libtiff (says: libtiff.dll not found). Not really a regression since this was not tested up to this point, and it's likely the unit tests haven't (ever?) been run on Windows with a static libtiff, so there's some additional portability issue here to address. Works fine on UNIX systems, and fine on Windows with the default to build a DLL. Add a missing file which wasn't being distributed, causing unit tests to fail. Note that "find . -name '*.cmake'" lists all the CMake files which need distributing in addition to all the CMakeLists.txt files (which now are distributed). 2015-08-31 Even Rouault * libtiff/tif_predict.c: pedantic change to add explicit masking with 0xff before casting to uchar in floating-point horizontal differencing and accumulation routines. 2015-08-31 Even Rouault * libtiff/tif_predict.c: fix generation of output with 16 bit or 32 bit integer, when byte swapping is needed, in horizontal predictor (#2521). Also fixes decoding when there is a single pixel to code (unlikely case...) and byte swapping is involved. 2015-08-30 Even Rouault * libtiff/tif_lzw.c: make nextdata a unsigned type to avoid undefined behaviour with shifts (gcc -fsanitize=shift) 2015-08-30 Even Rouault * libtiff/tif_fax3.c, libtiff/tif_lzw.c, libtiff/tif_predict.c: add explicit masking with 0xff before casting to unsigned char (make icc -check=conversions happy) * libtiff/tif_predict.c: operate on unsigned datatypes when computing/applying differences to avoid undefined behaviour of signed types (C standard compliance) 2015-08-30 Bob Friesenhahn * configure.ac: libtiff 4.0.5 released. 2015-08-29 Bob Friesenhahn * CMakeLists.txt: Applied patch by Roger Leigh (via tiff mailing list on 2015-08-29) to add ld-version-script option to cmake build to match autoconf. Note: defaults to 'on' to be ABI-compatible by default with common Linux distribution builds. Note that the autoconf configure script defaults to 'off'. * html/build.html: Applied patch by Roger Leigh (via tiff mailing list on 2015-08-29) to describe how to use CMake to build libtiff. 2015-08-28 Bob Friesenhahn * html/v4.0.5.html: Added HTML file describing the changes which will appear in the 4.0.5 release. 2015-08-23 Bob Friesenhahn * libtiff/tiffiop.h: For MinGW comiles, make sure that build supports necessary __MSVCRT_VERSION__ (at least at least 0x800). Otherwise large files can not be supported for POSIX-style I/O. * tools/fax2tiff.c (main): Eliminate a compiler warning in 64-bit builds about cast to thandle_t. * test/rewrite_tag.c (main): Does not require any arguments. 2015-08-20 Bob Friesenhahn * tools/CMakeLists.txt, port/snprintf.c: Patch by Roger Leigh to fix build issues when using Cmake due to Windows large file changes. 2015-08-18 Bob Friesenhahn * libtiff/tiffiop.h: First cut at supporting large files under Microsoft Windows using tif_unix.c and the libtiff tools. This only works if the Windows CDK is new enough to support the APIs used (Visual C++ 2005 or later). Support for large files is not actually tested yet. 2015-08-15 Bob Friesenhahn * libtiff/tif_jpeg.c: Applied patch by Räisä Olli to assure that client_data is initialized to a known value, and to report an error on two memory allocation failures. 2015-08-13 Bob Friesenhahn * CMakeLists.txt: Applied patch by Roger Leigh to fix libtiffxx symbol versioning. Patch was mailed to libtiff list on Thu, 13 Aug 2015. 2015-07-04 Bob Friesenhahn * cmake: Add d suffix to debug libraries with MSVC. Patch #3 of 3 by Roger Leigh posted to tiff list on Wed, 1 Jul 2015 15:58:20 +0100. * cmake: Add extra warning flags. Patch #2 of 3 by Roger Leigh posted to tiff list on Wed, 1 Jul 2015 15:58:20 +0100. * cmake: Correct snprintf fallback for VS2015. Patch #1 of 3 by Roger Leigh posted to tiff list on Wed, 1 Jul 2015 15:58:20 +0100. 2015-06-24 Bob Friesenhahn * CMakeLists.txt: Add CMake patchset by Roger Leigh as posted to libtiff mailing list on Mon, 22 Jun 2015 21:21:01 +0100. Several corrections to ensure that the autotools build still works were added by me. I have not yet tested the build using 'cmake' or MSVC with 'nmake'. 2015-06-21 Bob Friesenhahn * test/Makefile.am: tiff2rgba-quad-tile.jpg.sh depends on the JPEG library so only execute if JPEG is available. * libtiff 4.0.4 released. * configure.ac: Add a HAVE_FOO Automake conditional for each add-on library. * test/Makefile.am (JPEG_DEPENDENT_CHECK_PROG): raw_decode requires JPEG support to compile. Use Automake conditional to only include it when JPEG support is available. * html/build.html: Try to improve the nmake-based VC++ build description. * libtiff/tiffconf.vc.h: Build fixes based on testing. * libtiff/tif_config.vc.h: Build fixes based on testing. * libtiff/libtiff.def: TIFFRasterScanline does not exist so remove export for it. 2015-06-20 Bob Friesenhahn * libtiff/tif_config.vc.h: Make adjustments to match the new definitions that configure produces, including for WIN64. Still needs to be tested. * configure.ac: For 64-bit MinGW, fix SSIZE_FORMAT formatting specifier. 64-bit MinGW supports 'long long' but support for 'lld' is not assured by the run-time DLLs and so GCC warns. Add TIFF_SIZE_T and TIFF_SIZE_FORMAT to provide a type definition and printf format specifier to deal with printing values of 'size_t' type. In particular, this was necessary for WIN64. Added a configure test for if the system headers provide 'optarg' (normal case) and block out the many explicit 'extern' statements in the utilities. This was found to be necessary under Windows when getopt is in a DLL and the symbols are already imported with dllimport via standard header files. * test/raw_decode.c (XMD_H): Avoid conflicting typedefs for INT32 and boolean in MinGW build due to including jpeglib.h. * test/rewrite_tag.c (main): Fix problem with location of variable declaration. * libtiff/libtiff.def: Added exports for TIFFGetConfiguredCODECs, TIFFReadRGBAImageOriented, TIFFSetCompressionScheme, TIFFSwabArrayOfTriples, TIFFVGetFieldDefaulted, _TIFFCheckRealloc, TIFFRasterScanline, TIFFSetErrorHandlerExt, TIFFSetWarningHandlerExt, TIFFNumberOfDirectories, TIFFCreateCustomDirectory, TIFFCreateEXIFDirectory, TIFFWriteCustomDirectory, _TIFFRewriteField as recommended by Roger Leigh and justified by use in libtiff tests, documentation, and changelog notes. Also sorted symbol list and removed duplicate entries. 2015-06-16 Bob Friesenhahn * libtiff/tif_getimage.c: Fix four Coverity issues related to unintended sign extension. 2015-06-16 Even Rouault * libtiff/tif_unix.c: fix compilation with MSVC (fix by Jeff McKenna) 2015-06-14 Lee Howard * libtiff/tif_unix.c: contribution from Vadim Zeitlin on Bugzilla Bug #2510 fixes several harmless but still annoying warnings * configure: contribution from Ludolf Holzheid on Bugzilla Bug #2498. Adds an option to select the file I/O style on Windows hosts. * libtiff/tif_getimage.c: contribution from Gary Cramblitt on Bugzilla Bug #2409. Correct reading of certain tiled TIFFs. * configure, configure.ac: contribution from Marcos H. Woehrmann on Bugzilla Bug #2405. Correct shell equality operator. * tools/tiffgt.c (raster_draw): contribution from Jay Berkenbilt on Bugzilla Bug #2401. Appropriately call glFlush(). * tools/tiff2pdf.c: change ColorTransform from "0" to "1" following Bugzilla Bug #2150. 2015-06-13 Lee Howard * libtiff/tif_lzw.c: contribution from Andy Cave - decode files that contain consecutive CODE_CLEAR codes. * tools/tiff2pdf.c: contribution from Antti S. Lankila on Bugzilla Bug #2078. Suppress initial output of the header. * tools/tiff2pdf.c: contribution from Yuriy M. Kaminskiy - Take care in using the return value from snprintf(). * tools/tiffcrop.c: contribution from Eduardo Robles Elvira - correctly copy the compression tag from the source TIFF. * tools/tiff2ps.c: contribution from Eduardo Robles Elvira - correct sizing and scaling problems with output document. 2015-06-10 Bob Friesenhahn * libtiff/tif_jpeg.c (JPEGDecode): Split JPEGDecode() into two clean implementations in order to avoid pre-processor hell. Only one of the implementations is used in a given build. 2015-06-08 Even Rouault * libtiff/tif_jpeg.c: Fix compilation in BITS_IN_JSAMPLE == 12 case 2015-06-07 Bob Friesenhahn * libtiff/tif_write.c (TIFFWriteEncodedStrip): Fix Coverity 715975 "Division or modulo by zero". (TIFFWriteEncodedTile): Fix Coverity 715976 and 715977 "Division or modulo by zero". (TIFFWriteRawStrip): Fix Coverity 715978 "Division or modulo by zero". (TIFFWriteScanline): Fix Coverity 715979 "Division or modulo by zero". * libtiff/tif_read.c (TIFFStartTile): Fix Coverity 715973 and 715974 "Division or modulo by zero". 2015-05-31 Bob Friesenhahn * libtiff/tif_dir.c (TIFFNumberOfDirectories): Quiet Coverity 1134470 "Logically dead code" by making the roll-over check explicit. * libtiff/tif_luv.c (LogLuvDecodeTile): Fix Coverity 991227 "Division or modulo by zero". (LogLuvDecodeStrip): Fix Coverity 991239 "Division or modulo by zero". (LogLuvEncodeStrip): Fix Coverity 991240 "Division or modulo by zero". (LogLuvEncodeTile): Fix Coverity 991241 "Division or modulo by zero". * libtiff/tif_dirread.c (TIFFReadDirEntryDoubleArray): Fix Coverity 298626 "Logically dead code". (TIFFReadDirEntryFloatArray): Fix Coverity 298627 "Logically dead code". (TIFFReadDirEntryIfd8Array): Fix Coverity 298628 "Logically dead code". (TIFFReadDirEntrySlong8Array): Fix Coverity 298629 "Logically dead code" * libtiff/tif_dir.c (TIFFNumberOfDirectories): Don't depend on ++ operator precedenc in evaluation. Might quench Coverity 1134470 "Logically dead code". * libtiff/tif_jpeg.c (JPEGDecode): Fix Coverity 602597 "Operands don't affect result". This change uses ifdefs to include applicable code based on properties of libjpeg. Still needs to be re-tested with 12-bit "6b" and "MK1". 2015-05-30 Bob Friesenhahn * libtiff/tif_dirwrite.c (_TIFFRewriteField): Fix Coverity 1024310 "Resource leak". * libtiff/tif_ojpeg.c (OJPEGReadHeaderInfoSecStreamDht): Fix Coverity 601720 "Resource leak". * libtiff/tif_jpeg.c (JPEGCleanup): Fix Coverity 298624 "Dereference before null check". * libtiff/tif_ojpeg.c (OJPEGReadBufferFill): Fix Coverity 603400 "Missing break in switch". * contrib/addtiffo/tif_overview.c (TIFF_DownSample): Check buffer size calculation for overflow. * contrib/addtiffo/addtiffo.c (main): Possibly address Coverity 1024226 "Untrusted value as argument". * tools/gif2tiff.c (readgifimage): Fix Coverity 1024222 "Untrusted value as argument". (checksignature): Fix Coverity 1024894 "Ignoring number of bytes read". (readextension): Fix Coverity 1024893 "Ignoring number of bytes read". (readgifimage): Fix Coverity 1024890 "Ignoring number of bytes read". (readraster): Fix Coverity 1024891 "Ignoring number of bytes read". (readgifimage): Fix Coverity 1024892 "Ignoring number of bytes read". * tools/tiff2pdf.c (t2p_readwrite_pdf_image): Fix Coverity 1024181 "Structurally dead code". * tools/raw2tiff.c (main): Fix Coverity 1024887 "Unchecked return value from library". (guessSize): Fix Coverity 1024888 "Unchecked return value from library". (guessSize): Fix Coverity 1214162 "Ignoring number of bytes read". (guessSize): Fix Coverity 1024889 "Unchecked return value from library". * tools/tiff2pdf.c (t2p_readwrite_pdf_image): Fix Coverity 298621 "Resource leak". (t2p_readwrite_pdf_image): Fix Coverity 1024181 "Structurally dead code". (t2p_write_pdf): Fix Coverity 1227690 "Unused value". 2015-05-29 Bob Friesenhahn * contrib/iptcutil/iptcutil.c (formatIPTC): Fix Coverity 1024468 "Infinite loop". (formatIPTC): Fix Coverity 1024727 "Truncated stdio return value". (formatIPTC): Fix Coverity 1214240 "Untrusted loop bound". 2015-05-28 Bob Friesenhahn * contrib/addtiffo/tif_ovrcache.c (TIFFCreateOvrCache): Fix Coverity 298615 "Resource leak". (TIFFGetOvrBlock): Fix Coverity 1024649 "Unintended sign extension". * tools/bmp2tiff.c (main): Fix Coverity 1024225 "Untrusted value as argument". (main): Fix Coverity 1024678 "Unchecked return value from library". (main): Fix Coverity 1024679 "Unchecked return value from library". (main): Fix Coverity 1214160 "Ignoring number of bytes read". * contrib/addtiffo/tif_ovrcache.c (TIFFCreateOvrCache): Fix Coverity 298615 "Resource leak". * tools/tiffcp.c: Fix Coverity 1024306, 1024307, 1024308, 1024309 "Resource leak". * tools/tiffsplit.c (cpTiles): Fix Coverity 1024304 "Resource leak". (cpStrips): Fix Coverity 1024305 "Resource leak". 2015-05-27 Bob Friesenhahn * tools/ras2tiff.c: Fix Sun Raster header definition to be safe for 64-bit systems. Add some header validations. Should fix many Coverity issues. (main): Fix Coverity 1301206: "Integer handling issues (BAD_SHIFT)". (main): Quiet Coverity 1024223 "Untrusted value as argument". * tools/tiffmedian.c (GetInputLine): Fix Coverity 1024795 "Nesting level does not match indentation". (get_histogram): Quiet Coverity 1024386 "Out-of-bounds read". This was a benign mis-diagnosis but added code to enforce against buffer overflow. * tools/tiffcrop.c (ROTATE_ANY): Fix Coverity 1294542 "Logical vs. bitwise operator". (readContigStripsIntoBuffer): Fix Coverity 1024545 "Division or modulo by zero". (readContigTilesIntoBuffer): Fix Coverity 1024586 "Logically dead code". (writeSingleSection): Fix Coverity 1024796 "Nesting level does not match indentation". (writeCroppedImage): Fix Coverity 1024797 "Nesting level does not match indentation". (loadImage): Fix Coverity 1299741 "Dereference before null check". (loadImage): Fix Coverity 1299740 "Out-of-bounds write". 2015-03-02 Even Rouault * tools/tiffdither.c: check memory allocations to avoid writing to NULL pointer. Also check multiplication overflow. Fixes #2501, CVE-2014-8128. Derived from patch by Petr Gajdos. 2015-01-26 Even Rouault * add html/v4.0.4beta.html under version control * HOWTO-RELEASE: write that cvs add html/vX.X.html must be used 2015-01-26 Even Rouault * libtiff 4.0.4beta released 2015-01-26 Even Rouault * automake: updated to 1.15 * libtool: updated to 2.4.5 2015-01-22 Even Rouault * tools/tiff2pdf.c: Fix two crashes (oCERT-2014-013) 2015-01-05 Frank Warmerdam * html/bugs.html: remove note about needing to email the tiff mailing list administrator about being approved for membership, this appears not to be true. 2015-01-05 Olivier Paquet * tools/tiff2pdf.c: Fixed unsigned integer addition overflow detection. 2015-01-03 Even Rouault * libtiff/tif_dirread.c: in TIFFCheckDirOffset(), avoid uint16 overflow when reading more than 65535 directories, and effectively error out when reaching that limit. 2014-12-29 Even Rouault * libtiff/tif_jpeg.c: in JPEGFixupTags(), recognize SOF2, SOF9 and SOF10 markers to avoid emitting a warning (even if, according to the TechNote, there are admitedly unusual/not recommended or even forbidden variants, but they do work well with libjpeg for SOF2, and with libjpeg-turbo for SOF2, SOF9 and SOF10). Define in_color_space and input_components to the right values in JPEGSetupEncode(), before calling jpeg_set_defaults(), as specified by libjpeg API documentation, so as to be compatible with mozjpeg library. Note: the default settings of mozjpeg will produce progressive scans, which is forbidden by the TechNote. 2014-12-29 Even Rouault * libtiff/tif_getimage.c: move test on vertical value of YCbCr subsampling. to avoid buffer leak (fix previous fix, found by Coverity scan) 2014-12-29 Even Rouault * libtiff/tif_next.c: add new tests to check that we don't read outside of the compressed input stream buffer. * libtiff/tif_getimage.c: in OJPEG case, fix checks on strile width/height in the putcontig8bitYCbCr42tile, putcontig8bitYCbCr41tile and putcontig8bitYCbCr21tile cases. 2014-12-27 Even Rouault * libtiff/tif_dir.c: in TIFFDefaultDirectory(), reset any already existing extented tags installed by user code through the extender mechaninm before calling the extender callback (GDAL #5054) 2014-12-26 Bob Friesenhahn * tools/tiffcrop.c: Fix warnings about variables set but not used. * contrib/iptcutil/iptcutil.c: Fix warnings about variables set but not used. * tools/tiffgt.c: Fix warnings about unused parameters. * libtiff/tif_stream.cxx: Fix warnings about unused parameters. 2014-12-25 Even Rouault * libtiff/tif_getimage.c, libtiff/tif_ojpeg.c, libtiff/tif_zip.c: fix various typos found by Debian lintian tool (GDAL #5756) 2014-12-24 Even Rouault * libtiff/tif_getimage.c: avoid divide by zero on invalid YCbCr subsampling. http://bugzilla.maptools.org/show_bug.cgi?id=2235 2014-12-24 Even Rouault * tools/tiff2pdf.c: fix buffer overflow on some YCbCr JPEG compressed images. http://bugzilla.maptools.org/show_bug.cgi?id=2445 2014-12-24 Even Rouault * tools/tiff2pdf.c: fix buffer overflow on YCbCr JPEG compressed image. Derived from patch by Petr Gajdos, http://bugzilla.maptools.org/show_bug.cgi?id=2443 2014-12-23 Even Rouault * libtiff/tif_dirread.c: In EstimateStripByteCounts(), check return code of _TIFFFillStriles(). This solves crashing bug on corrupted images generated by afl. 2014-12-23 Even Rouault * libtiff/tif_read.c: fix several invalid comparisons of a uint64 value with <= 0 by casting it to int64 first. This solves crashing bug on corrupted images generated by afl. 2014-12-21 Bob Friesenhahn * tools/tiffdump.c: Guard against arithmetic overflow when calculating allocation buffer sizes. 2014-12-21 Even Rouault * tools/tiff2bw.c: when Photometric=RGB, the utility only works if SamplesPerPixel = 3. Enforce that http://bugzilla.maptools.org/show_bug.cgi?id=2485 (CVE-2014-8127) 2014-12-21 Even Rouault * tools/pal2rgb.c, tools/thumbnail.c: fix crash by disabling TIFFTAG_INKNAMES copying. The right fix would be to properly copy it, but not worth the burden for those esoteric utilities. http://bugzilla.maptools.org/show_bug.cgi?id=2484 (CVE-2014-8127) 2014-12-21 Even Rouault * tools/thumbnail.c: fix out-of-buffer write http://bugzilla.maptools.org/show_bug.cgi?id=2489 (CVE-2014-8128) 2014-12-21 Even Rouault * tools/thumbnail.c, tools/tiffcmp.c: only read/write TIFFTAG_GROUP3OPTIONS or TIFFTAG_GROUP4OPTIONS if compression is COMPRESSION_CCITTFAX3 or COMPRESSION_CCITTFAX4 http://bugzilla.maptools.org/show_bug.cgi?id=2493 (CVE-2014-8128) 2014-12-21 Even Rouault * libtiff/tif_next.c: check that BitsPerSample = 2. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2487 (CVE-2014-8129) 2014-12-21 Even Rouault * tools/tiff2pdf.c: check return code of TIFFGetField() when reading TIFFTAG_SAMPLESPERPIXEL 2014-12-21 Even Rouault * tools/tiffcp.c: fix crash when converting YCbCr JPEG-compressed to none. Based on patch by Tomasz Buchert (http://bugzilla.maptools.org/show_bug.cgi?id=2480) Description: fix for Debian bug #741451 tiffcp crashes when converting JPEG-encoded TIFF to a different encoding (like none or lzw). For example this will probably fail: tiffcp -c none jpeg_encoded_file.tif output.tif The reason is that when the input file contains JPEG data, the tiffcp code forces conversion to RGB space. However, the output normally inherits YCbCr subsampling parameters from the input, which leads to a smaller working buffer than necessary. The buffer is subsequently overrun inside cpStripToTile() (called from writeBufferToContigTiles). Note that the resulting TIFF file would be scrambled even if tiffcp wouldn't crash, since the output file would contain RGB data intepreted as subsampled YCbCr values. This patch fixes the problem by forcing RGB space on the output TIF if the input is JPEG-encoded and output is *not* JPEG-encoded. Author: Tomasz Buchert 2014-12-21 Even Rouault Fix various crasher bugs on fuzzed images. * libtiff/tif_dir.c: TIFFSetField(): refuse to set negative values for TIFFTAG_XRESOLUTION and TIFFTAG_YRESOLUTION that cause asserts when writing the directory * libtiff/tif_dirread.c: TIFFReadDirectory(): refuse to read ColorMap or TransferFunction if BitsPerSample has not yet been read, otherwise reading it later will cause user code to crash if BitsPerSample > 1 * libtiff/tif_getimage.c: TIFFRGBAImageOK(): return FALSE if LOGLUV with SamplesPerPixel != 3, or if CIELAB with SamplesPerPixel != 3 or BitsPerSample != 8 * libtiff/tif_next.c: in the "run mode", use tilewidth for tiled images instead of imagewidth to avoid crash * tools/bmp2tiff.c: fix crash due to int overflow related to input BMP dimensions * tools/tiff2pdf.c: fix crash due to invalid tile count (should likely be checked by libtiff too). Detect invalid settings of BitsPerSample/SamplesPerPixel for CIELAB / ITULAB * tools/tiffcrop.c: fix crash due to invalid TileWidth/TileHeight * tools/tiffdump.c: fix crash due to overflow of entry count. 2014-12-15 Even Rouault * libtiff/tif_jpeg.c: Fix regression introduced on 2010-05-07 that caused all tiles/strips to include quantization tables even when the jpegtablesmode had the JPEGTABLESMODE_QUANT bit set. Also add explicit removal of Huffman tables when jpegtablesmode has the JPEGTABLESMODE_HUFF bit set, which avoids Huffman tables to be emitted in the first tile/strip (only useful in update scenarios. create-only was fine) 2014-12-09 Bob Friesenhahn * tools/tiff2pdf.c: Assure that memory size calculations for _TIFFmalloc() do not overflow the range of tmsize_t. 2014-12-07 Even Rouault * tools/thumbnail.c, tools/tiffcrop.c: "fix" heap read over-run found with Valgrind and Address Sanitizer on test suite 2014-12-07 Bob Friesenhahn * tools/tiff2pdf.c (t2p_read_tiff_init): TIFFTAG_TRANSFERFUNCTION tag can return one channel, with the other two channels set to NULL. The tiff2pdf code was expecting that other two channels were duplicate pointers in the case where there is only one channel. Detect this condition in order to avoid a crash, and presumably perform correctly with just one channel. 2014-12-06 Bob Friesenhahn * tools/tiffdump.c: Fix double-free bug. 2014-11-27 Even Rouault * libtiff/tif_config.vc.h: no longer use "#define snprintf _snprintf" with Visual Studio 2015 aka VC 14 aka MSVC 1900 2014-11-20 Even Rouault * libtiff/tif_lzw.c: prevent potential null dereference of sp->dec_codetab in LZWPreDecode (bug #2459) * libtiff/tif_read.c: in TIFFReadBufferSetup(), avoid passing -1 size to TIFFmalloc() if passed user buffer size is 0 (bug #2459) * libtiff/tif_ojpeg.c: make Coverity happier (not a bug, #2459) * libtiff/tif_dir.c: in _TIFFVGetField() and _TIFFVSetField(), make Coverity happier (not a bug, #2459) * libtiff/tif_dirread.c: in TIFFFetchNormalTag(), make Coverity happier (not a bug, #2459) * tools/tiff2pdf.c: close PDF file (bug #2479) * tools/fax2ps.c: check malloc()/realloc() result (bug #2470) * tools/tiffdump.c: detect cycle in TIFF directory chaining (bug #2463) and avoid passing a NULL pointer to read() if seek() failed before (bug #2459) * tools/tiffcrop.c: fix segfault if bad value passed to -Z option (bug #2459) and add missing va_end in dump_info (#2459) * tools/gif2tif.c: apply patch for CVE-2013-4243 (#2451) 2014-11-20 Even Rouault * libtiff/tif_jpeg.c: fix segfault in JPEGFixupTagsSubsampling() on corrupted image where tif->tif_dir.td_stripoffset == NULL (bug #2471) 2014-11-20 Even Rouault * automake: updated to 1.14.1 * libtool: updated to 2.4.3 * HOWTO-RELEASE: small update about autotools building order 2014-10-20 Olivier Paquet * tools/tiff2pdf.c: Preserve input file directory order when pages are tagged with the same page number. 2014-08-31 Bob Friesenhahn * libtiff/tif_dirread.c (TIFFReadDirEntryOutputErr): Incorrect count for tag should be a warning rather than an error since errors terminate processing. 2014-06-07 Bob Friesenhahn * tools/tiff2rgba.c (]): Fixed tiff2rgba usage message in that zip was wrongly described. Fix suggested by Miguel Medalha. 2014-05-06 Bob Friesenhahn * libtiff/tif_dirinfo.c (TIFFField) : Fix data type for TIFFTAG_GLOBALPARAMETERSIFD tag. Patch by Steve Underwood. Reviewed and forwarded by Lee Howard. 2013-11-30 Frank Warmerdam * libtiff/tif_dir.c: fix last fix for TIFFNumberOfDirectories() 2013-10-21 Frank Warmerdam * libtiff/tif_dir.c: generate error in case of directory count overflow. 2013-10-01 Frank Warmerdam * libtiff/tiff.h, libtiff/tif_dirinfo.c: add definitions for TIFF/EP CFARepeatPatternDim and CFAPattern tags (bug #2457) 2013-09-12 Bob Friesenhahn * libtiff/tif_dir.c (TIFFAdvanceDirectory): If nextdir is found to be defective, then set it to zero before returning error in order to terminate processing of truncated TIFF. Issue found and fix suggested by Richard Nolde. 2013-08-14 Frank Warmerdam * tools/gif2tiff.c: fix possible OOB write (#2452, CVE-2013-4244) 2013-08-13 Frank Warmerdam * tools/gif2tiff.c: Be more careful about corrupt or hostile input files (#2450, CVE-2013-4231) * tools/tiff2pdf.c: terminate after failure of allocating ycbcr buffer (bug #2449, CVE-2013-4232) 2013-07-09 Frank Warmerdam * tools/tiffinfo.c: Default various values fetched with TIFFGetField() to avoid being uninitialized. 2013-05-02 Tom Lane * tools/tiff2pdf.c: Rewrite JPEG marker parsing in t2p_process_jpeg_strip to be at least marginally competent. The approach is still fundamentally flawed, but at least now it won't stomp all over memory when given bogus input. Fixes CVE-2013-1960. 2013-05-02 Tom Lane * contrib/dbs/xtiff/xtiff.c, libtiff/tif_codec.c, libtiff/tif_dirinfo.c, tools/rgb2ycbcr.c, tools/tiff2bw.c, tools/tiff2pdf.c, tools/tiff2ps.c, tools/tiffcrop.c, tools/tiffdither.c: Enlarge some fixed-size buffers that weren't large enough, and eliminate substantially all uses of sprintf(buf, ...) in favor of using snprintf(buf, sizeof(buf), ...), so as to protect against overflow of fixed-size buffers. This responds in particular to CVE-2013-1961 concerning overflow in tiff2pdf.c's t2p_write_pdf_page(), but in general it seems like a good idea to deprecate use of sprintf(). 2013-03-29 Bob Friesenhahn * configure.ac: Applied patch by Brad Smith to improve pkg-config static linking by adding -lm to Libs.private when needed. 2013-03-05 Tom Lane * html/man/tiff2ps.1.html, html/man/tiffcp.1.html, html/man/tiffdither.1.html, man/tiff2ps.1, man/tiffcp.1, man/tiffdither.1, tools/tiff2ps.c, tools/tiffcp.c, tools/tiffdither.c: Sync tool usage printouts and man pages with reality (quite a few options had escaped being documented in one or both places). Per an old report from Miroslav Vadkerti. 2013-01-25 Bob Friesenhahn * tools/tiff2ps.c:Fix bug in auto rotate option code. Once a rotation angle was set by the auto rotate check, it was retained for all pages that followed instead ofa being retested for each page. Patch by Richard Nolde. 2013-01-18 Frank Warmerdam * libtiff/tif_write.c: tmsize_t related casting warning fixed for 64bit linux. * libtiff/tif_read.c: uint64/tmsize_t change for MSVC warnings. http://bugzilla.maptools.org/show_bug.cgi?id=2427 2012-12-20 Tom Lane * test/raw_decode.c: Relax raw_decode's pixel-value checks so that it will pass with more versions of libjpeg. (There are at least three in active use now, and JPEG_LIB_VERSION doesn't tell us enough to uniquely identify expected results.) 2012-12-12 Tom Lane * libtiff/tif_print.c: Fix TIFFPrintDirectory's handling of field_passcount fields: it had the TIFF_VARIABLE and TIFF_VARIABLE2 cases backwards. 2012-12-10 Tom Lane * tools/ppm2tiff.c: Improve previous patch for CVE-2012-4564: check the linebytes calculation too, get the max() calculation straight, avoid redundant error messages, check for malloc failure. 2012-12-10 Tom Lane * libtiff/tif_pixarlog.c: Improve previous patch for CVE-2012-4447 (to enlarge tbuf for possible partial stride at end) so that overflow in the integer addition is detected. Per gripe from Huzaifa Sidhpurwala. 2012-12-03 Bob Friesenhahn * tools/tiffset.c: tiffset now supports a -u option to unset a tag. Patch by Zach Baker. See http://bugzilla.maptools.org/show_bug.cgi?id=2419 2012-11-18 Bob Friesenhahn * automake: Update Automake to 1.12.5 release. * libtiff/tif_{unix,vms,win32}.c (_TIFFmalloc): ANSI C does not require malloc() to return NULL pointer if requested allocation size is zero. Assure that _TIFFmalloc does. 2012-11-01 Frank Warmerdam * tools/ppm2tiff.c: avoid zero size buffer vulnerability. CVE-2012-4564 - Thanks to Huzaifa Sidhpurwala of the Red Hat Security Response team for the fix. 2012-10-18 Frank Warmerdam * tif_zip.c: Avoid crash on NULL error messages. 2012-09-22 Bob Friesenhahn * libtiff 4.0.3 released. 2012-09-20 Bob Friesenhahn * Makefile.am: Update to Automake 1.12.4 2012-08-19 Bob Friesenhahn * Makefile.in: Update to Automake 1.12.3 * libtiff{tiff.h, tif_print.c, tif_dirinfo.c, tif_dirread.c}: Add some TIFF/FX support in libtiff. Add the tag definitions to tiff.h. Add the related TIFF field definitions to tif_dirinfo.c, and also fixes an error in a comment. Adds the photometric values to tif_print.c, and fixes a bug. These changes are by Steve Underwood. 2012-08-13 Frank Warmerdam * libtiff/tif_write.c: Fix bug rewriting image tiles in a compressed file: http://trac.osgeo.org/gdal/ticket/4771 2012-08-02 Frank Warmerdam * libtiff/tif_dirread.c: report error in case of mismatch value counts for tags (ie. DotRange). 2012-07-26 Tom Lane * libtiff/{tiffio.h, tif_dirinfo.c, libtiff.def}: Add six new functions TIFFFieldTag(), TIFFFieldName(), TIFFFieldDataType(), TIFFFieldPassCount(), TIFFFieldReadCount(), TIFFFieldWriteCount() as external accessors for the opaque type TIFFField. * tools/tiffset.c: Make tiffset use the above functions instead of relying on library private headers. 2012-07-19 Tom Lane * tools/tiff2pdf.c: Fix two places where t2p_error didn't get set after a malloc failure. No crash risk AFAICS, but the program might not report exit code 1 as desired. h/t mancha@mac.hush.com 2012-07-18 Tom Lane * tools/tiff2pdf.c: Fail when TIFFSetDirectory() fails. This prevents core dumps or perhaps even arbitrary code execution when processing a corrupt input file (CVE-2012-3401). 2012-07-06 Bob Friesenhahn * test/raw_decode.c (main): Test fixes to work with IJG JPEG 7+. IJG JPEG 7+ uses a different upsampling algorithm which produces different numeric results. * libtiff/tif_jpeg.c (JPEGPreDecode): Patch from Even Rouault to work with IJG JPEG 7+. 2012-07-04 Bob Friesenhahn * test/raw_decode.c: Add changes so that test can run with build directory outside of source directory. 2012-07-02 Frank Warmerdam * libtiff/tif_jpeg.c: Fix handling when writing RGBA jpeg compressed imagery (http://trac.osgeo.org/gdal/ticket/4732) 2012-06-20 Frank Warmerdam * libtiff/tif_fax3.c: fix memory initialization of runs, only partly done. * libtiff/tif_pixarlog.c: Make sure tbuf is large enough for one full "stride" past the end. 2012-06-19 Frank Warmerdam * libtiff/tif_packbits.c: fix read past end of data buffer. 2012-06-15 Frank Warmerdam * libtiff 4.0.2 released. * tools/tif2pdf.c, tools/tifdump.c: avoid unitialized variable warnings with clang. 2012-06-15 Tom Lane * tools/tiff2pdf.c: Defend against integer overflows while calculating required buffer sizes (CVE-2012-2113). 2012-06-12 Frank Warmerdam * libtiff/tif_print.c: Be careful about printing corrupt inknames. * libtiff/tif_fax3.c: Ensure runs array is initialized to zeros. 2012-06-07 Frank Warmerdam * libtiff/tif_print.c: avoid pretty printing other fields when we don't have the proper amount and type of data or if the field is actually autodefined. 2012-06-05 Frank Warmerdam * libtiff/tif_tile.c, libtiff/tif_strip.c: Ensure that illegal ycbcrsubsampling values result in a runtime error, not just an assertion. * tests/custom_dir.c: Add testing of EXIF and custom directory reading and writing. * libtiff/tif_dir.c, libtiff/tiffio.h: Add TIFFCreateCustomDirectory() and TIFFCreateEXIFDirectory() functions. * libtiff/tif_dir.c, tif_print.c : Remove FIELD_CUSTOM handling for PAGENUMBER, HALFTONEHINTS, and YCBCRSUBSAMPLING. Implement DOTRANGE differently. This is to avoid using special TIFFGetField/TIFFSetField rules for these fields in non-image directories (like EXIF). 2012-06-04 Frank Warmerdam * libtiff/tif_jpeg.c: Remove code for fixing up h_sampling and v_sampling in JPEGPreDecode(). If a fixup will be done it needs to be done sooner in JPEGFixupTagsSubsampling() or else buffer sized may be wrong. 2012-06-01 Frank Warmerdam * tools/tiffinfo.c: Do not try to read image data in EXIF directories. * libtiff/tif_getimage.c: added support for _SEPARATED CMYK images. http://bugzilla.maptools.org/show_bug.cgi?id=2379 * libtiff/tif_unix.c: use strerror() to return a more specific error message on failed open. http://bugzilla.maptools.org/show_bug.cgi?id=2341 * libtiff/tif_jpeg.c: Fix JPEGDecodeRaw() bugs. http://bugzilla.maptools.org/show_bug.cgi?id=2386 * tests/decode_raw.c, tests/images/quad-tile.jpg.tiff: add limited support for testing jpeg in tiff image decoding including the "raw" decode interface. 2012-05-31 Frank Warmerdam * libtiff/tif_jpeg.c: avoid overrunning the end of the output buffer in JPEGDecodeRaw() - mostly likely to occur when there is confusion about sampling values. * libtiff/tif_read.c: Make sure tif_rawdatasize is cleared when tif_rawdata is freed. * libtiff/tif_getimage.c: Add support for greyscale+alpha c/o Jérémie Laval. http://bugzilla.maptools.org/show_bug.cgi?id=2398 2012-05-29 Frank Warmerdam * libtiff/tif_dir.c: avoid using specific set/get logic to process fields in custom directories, like EXIF directories. This fixes problems like a tag "320" existing in a custom directory getting processed as if it were a colormap when it isn't really. Damn the wide variety of argument formulations to get/set functions for different tags! * libtiff/tif_dir.c: Ensure that we keep track of when tif_rawdata is a pointer into an mmap()ed file via TIFF_BUFFERMMAP flag. 2012-05-24 Frank Warmerdam * libtiff/tif_pixarlog.c: Allocate working buffer one word larger since we "forward accumulate" and overwrite the end by one word in at least some cases. 2012-05-23 Frank Warmerdam * libtiff/tif_pixarlog.c: avoid accessing out of the lookup arrays for out of range inputs. * tools/tiffinfo.c: initialize h=0 to avoid undefined variable for degenerate files. * libtiff/tif_ojpeg.c: if OJPEGWriteHeader() fails once do not bother trying again on the same image. * libtiff/tif_ojpeg.c: make things more resilient in the face of files without stripbytecounts or stripoffsets or where loading these fails. * libtiff/tif_print.c: be careful about whether min/max values are singular or one per sample. * libtiff/tif_print.c: Avoid confusion about count size when printing custom fields. May affect things like ISOSpeedRatings. * libtiff/tif_dir.c: avoid one byte past end of ink names reading in some cases. 2012-05-19 Bob Friesenhahn * man/TIFFGetField.3tiff: Correct the 'count' field type in the example for how to retreive the value of unsupported tags. 2012-03-30 Frank Warmerdam * tif_getimage.c: Fix size overflow (zdi-can-1221,CVE-2012-1173) care of Tom Lane @ Red Hat. 2012-02-18 Bob Friesenhahn * libtiff 4.0.1 released. * Update automake used to 1.11.3. * libtiff/tiffio.h: Use double-underbar syntax in GCC printf attribute specification to lessen the risk of accidental macro substitution. Patch from Vincent Torri. 2012-01-31 Frank Warmerdam * libtiff/tif_dir.c, libtiff/tif_dirread.c: Extra caution around assumption tag fetching is always successful. * libtiff/tif_jpeg.c: Extra caution for case where sp is NULL. 2012-01-22 Bob Friesenhahn * configure.ac: Add support for using library symbol versioning on ELF systems with the GNU linker. Support is enabled via --enable-ld-version-script. Disabled by default for now until there is a decision for how to deploy a libtiff with versioned symbols after libtiff 4.0.0 was already released. 2011-12-22 Bob Friesenhahn * libtiff/tif_win32.c: Eliminate some minor 64-bit warnings in tif_win32.c. Patch by Edward Lam. * configure.ac: Add libtiff private dependency on -llzma for pkg-config. Patch by Mark Brand. Updated Automake to 1.11.2. 2011-12-21 Bob Friesenhahn * libtiff 4.0.0 released. 2011-12-08 Frank Warmerdam * libtiff/tif_dirread.c, libtiff/tif_read.c: more cautious checking of _TIFFFillStriles() results (#gdal 4372) 2011-12-07 Frank Warmerdam * libtiff/tif_dirread.c: fixes to deal with invalid files where _TIFFFillStriles() fails, and we try to chop up strips (gdal #4372) * libtiff/tif_dirread.c: fix error reporting when there is no tag information struct and name (gdal #4373) 2011-10-22 Bob Friesenhahn * Update GNU libtool to 2.4.2. * tools/tiffsplit.c (tiffcp): TIFFGetField count field should be uint32 type for TIFFTAG_JPEGTABLES. Patch by Christophe Deroulers. 2011-06-21 Frank Warmerdam * libtiff/libtiff.def: Restore TIFFMergeFieldInfo. 2011-05-31 Jim Meyering * libtiff/tif_dirread.c (TIFFFetchStripThing): Free "data" also upon failure to allocate "resizeddata". * tools/tiff2ps.c (PSDataBW): Zero buffer *after* checking for allocation failure, not before. * libtiff/tif_ojpeg.c: plug leaks on OJPEG read failure path * tools/rgb2ycbcr.c (cvtRaster): unchecked malloc * libtiff/tif_jpeg.c, tools/tiff2pdf.c, tools/tiff2ps.c: mark NULL-deref and possible overflow * tools/tiff2pdf.c: remove decl+set of set-but-not-used local, "written" * libtiff/tif_jpeg.c (JPEGInitializeLibJPEG): Remove declaration and set of otherwise unused local, data_is_empty. * libtiff/tif_jpeg.c (JPEGDecodeRaw) [JPEG_LIB_MK1_OR_12BIT]: Diagnose out-of-memory failure and return 0 rather than dereferencing NULL. 2011-05-24 Frank Warmerdam * libtiff/tif_dirread.c: produce special error message for zero tag directories instead of error out on the malloc(0) failure. 2011-05-16 Frank Warmerdam * libtiff/tif_dirinfo.c: Restore TIFFMergeFieldInfo() and related declarations as they are in active use by libraries such as libgeotiff, and work just fine. (#2315) 2011-04-20 Frank Warmerdam * libtiff/tif_dirinfo.c,tiffio.h: Remove the obsolete TIFFMergeFieldInfo/TIFFFindFieldInfo/TIFFFindFieldInfoByName API. http://bugzilla.maptools.org/show_bug.cgi?id=2315 * libtiff/libtiff.def: add some missing (64bit) APIs. http://bugzilla.maptools.org/show_bug.cgi?id=2316 2011-04-09 Bob Friesenhahn * libtiff 4.0.0beta7 released. 2011-04-09 Bob Friesenhahn * configure.ac: Should use AC_CANONICAL_HOST since host specifies the run-time target whereas target is used to specify the final output target if the package is a build tool (like a compiler), which libtiff is not. Resolves libtiff bug 2307 "Use AC_CANONICAL_HOST macro". 2011-04-02 Bob Friesenhahn * configure.ac: Support configuring TIFF_INT64_FORMAT and TIFF_UINT64_FORMAT appropriately for MinGW32. * tools/tiffdump.c (ReadDirectory): MinGW32 needs to use WIN32 printf conventions for 64-bit types because it uses the WIN32 CRT. * libtiff/{tif_dumpmode.c,tif_luv.c,tif_lzw.c,tif_print.c, tif_read.c,tif_strip.c,tif_thunder.c}: MinGW32 needs to use WIN32 printf conventions for 64-bit types because it uses the WIN32 CRT. * tools/tiff2pdf.c (t2p_write_pdf_string): Fix printf syntax not understood by WIN32 CRT. * libtiff/tif_ojpeg.c: Fixes to compile with MinGW32 GCC. * tools/fax2ps.c (main): Use tmpfile() rather than mkstemp() since it is much more portable. Tmpfile is included in ISO/IEC 9899:1990 and the WIN32 CRT. 2011-03-26 Frank Warmerdam * tools/tiffset.c: add -d and -sd switches to allow operation on a particular directory, not just the first (jef). 2011-03-21 Frank Warmerdam * libtiff/tif_thunder.c: Correct potential buffer overflow with thunder encoded files with wrong bitspersample set. The libtiff development team would like to thank Marin Barbella and TippingPoint's Zero Day Initiative for reporting this vulnerability (ZDI-CAN-1004, CVE-2011-1167). http://bugzilla.maptools.org/show_bug.cgi?id=2300 2011-03-10 Frank Warmerdam * libtiff/tif_fax3.h: Fix to last change allowing zero length runs at the start of a scanline - needed for legal cases. 2011-03-02 Frank Warmerdam * libtiff/tif_fax3.h: Protect against a fax VL(n) codeword commanding a move left. Without this, a malicious input file can generate an indefinitely large series of runs without a0 ever reaching the right margin, thus overrunning our buffer of run lengths. Per CVE-2011-0192. This is a modified version of a patch proposed by Drew Yao of Apple Product Security. It adds an unexpected() report, and disallows the equality case, since emitting a run without increasing a0 still allows buffer overrun. 2011-02-23 Frank Warmerdam * libtiff/tif_jpeg.c: avoid divide by zero in degenerate case (#2296) * tools/tiff2rgba.c: close source file on error to make leak detection easier. * libtiff/tif_getimage.c: avoid leaks if TIFFRGBAImageBegin() fails. http://bugzilla.maptools.org/show_bug.cgi?id=2295 2011-02-22 Frank Warmerdam * libtiff/tif_lzma.c: Maintain tif_rawcc/tif_rawcp (CHUNKY_STRING_READ _SUPPORT) 2011-02-18 Frank Warmerdam * configure.ac, configure: Added support for --enable-chunky-strip-read configure option to enable the experimental feature from a couple months ago for reading big strips in chunks. * configure.ac, tif_read.c, tif_readdir.c, tif_dir.h, tiffiop.h, tif_write.c, tif_print.c, tif_jpeg.c, tif_dirwrite.c, tif_write.c: Implement optional support for deferring the load of strip/tile offset and size tags for optimized scanning of directories. Enabled with the --enable-defer-strile-load configure option (DEFER_STRILE_LOAD #define in tif_config.h). 2011-02-11 Frank Warmerdam * libtiff/tif_print.c: remove unused variable. 2011-02-09 Frank Warmerdam * libtiff/tif_win32.c: avoid error/warning buffer overrun problem with non-console (popup message) builds on win32. http://bugzilla.maptools.org/show_bug.cgi?id=2293 2011-01-24 Olivier Paquet * libtiff/{tif_dir.{h,c}, tif_dirinfo.c, tif_dirread.c, tif_dirwrite.c, tif_print.c, tiff.h, tiffiop.h} : Added support for TIFFTAG_SMINSAMPLEVALUE and TIFFTAG_SMAXSAMPLEVALUE to have different values for each sample. Presents the min/max of all samples by default for compatibility. TIFFSetField/TIFFGetField can be made to handle those tags as arrays by changing the new TIFFTAG_PERSAMPLE pseudo tag. http://www.asmail.be/msg0055458208.html 2011-01-06 Frank Warmerdam * libtiff/tif_pixarlog.c: Note that tif_rawcc/tif_rawcp are not maintained. * libtiff/tif_zip.c: Maintain tif_rawcc/tif_rawcp when decoding for CHUNKY_STRIP_READ_SUPPORT. * libtiff/tif_jpeg.c: ensure that rawcc and rawcp are maintained during JPEGPreDecode and JPEGDecode calls. * libtiff/tif_read.c: larger read ahead for CHUNKY_STRIP_READ_SUPPORT, as compression formats like JPEG keep 16 lines interleaved in a sense and might need to touch quite a bit of data. http://trac.osgeo.org/gdal/ticket/3894 2011-01-03 Lee Howard * libtiff/tif_jpeg.c: Fix regressions with 2 and 3 band images caused by commit on 2010-12-14. Submitted by e-mail from Even Rouault 2010-12-31 Olivier Paquet * libtiff/tif_dirwrite.c: Fixed writing of TIFFTAG_REFERENCEBLACKWHITE. http://bugzilla.maptools.org/show_bug.cgi?id=2266 2010-12-23 Andrey Kiselev * tools/tiffcp.c, man/tiffcp.1: Added support for specifying the compression level parameter (preset) for Deflate and LZMA encoders, e.g "-c lzma:p1" or "-c zip:p9". * libtiff/tif_lzma.c: Properly set the LZMA2 compression level (preset) in LZMAVSetField(). 2010-12-18 Bob Friesenhahn * libtiff/Makefile.am (libtiff_la_SOURCES): Added tif_lzma.c to Makefile. 2010-12-14 Andrey Kiselev * configure.ac, libtiff/{tif_codec.c, tif_config.h.in, tiff.h, tiffiop.h, tif_lzma.c}, tools/tiffcp.c, man/tiffcp.1: Implement a new TIFF compression scheme LZMA reserving a new value 34925 for Compression tag. As per bug http://bugzilla.maptools.org/show_bug.cgi?id=2221 2010-12-14 Lee Howard * libtiff/tif_dirread.c: tolerate some cases where FIELD_COLORMAP is missing http://bugzilla.maptools.org/show_bug.cgi?id=2189 2010-12-14 Lee Howard * libtiff/tif_read.c: change read_ahead to tmsize_t http://bugzilla.maptools.org/show_bug.cgi?id=2222 2010-12-14 Lee Howard * configure.ac, libtiff/Makefile.am: Build tif_win32.c on Windows except on Cygwin http://bugzilla.maptools.org/show_bug.cgi?id=2224 2010-12-14 Lee Howard * tools/gif2tiff.c: fix buffer overrun http://bugzilla.maptools.org/show_bug.cgi?id=2270 2010-12-14 Lee Howard * libtiff/tif_jpeg.c: reduce usage of JCS_UNKNOWN in order to improve compatibility with various viewers submitted by e-mail from Dwight Kelly 2010-12-13 Lee Howard * tools/fax2ps.c: be consistent with page-numbering http://bugzilla.maptools.org/show_bug.cgi?id=2225 2010-12-13 Lee Howard * libtiff/tif_color.c: prevent crash in handling bad TIFFs resolves CVE-2010-2595 http://bugzilla.maptools.org/show_bug.cgi?id=2208 2010-12-13 Lee Howard * tools/tiffcrop.c: new release by Richard Nolde http://bugzilla.maptools.org/show_bug.cgi?id=2004 2010-12-12 Lee Howard * tools/tiff2pdf.c: fix colors for images with RGBA interleaved data http://bugzilla.maptools.org/show_bug.cgi?id=2250 2010-12-12 Lee Howard * libtiff/tif_dirread.c: fix for Zeiss LSM and Canon CR2 files http://bugzilla.maptools.org/show_bug.cgi?id=2164 2010-12-11 Lee Howard * tools/tiff2pdf.c: remove invalid duplication for Lab http://bugzilla.maptools.org/show_bug.cgi?id=2162 2010-12-11 Lee Howard * libtiff/tif_jpeg.c: fix use of clumplines calculation http://bugzilla.maptools.org/show_bug.cgi?id=2149 2010-12-11 Lee Howard * tools/fax2ps.c: replace unsafe tmpfile() with mkstemp() http://bugzilla.maptools.org/show_bug.cgi?id=2118 2010-12-11 Lee Howard * libtiff/tif_ojpeg.c, libtiff/tif_pixarlog.c, libtiff/tif_zip.c: fix build errors for VC6 http://bugzilla.maptools.org/show_bug.cgi?id=2105 2010-12-11 Lee Howard * libtiff/tif_stream.cxx: warnings cleanup http://bugzilla.maptools.org/show_bug.cgi?id=2091 * libtiff/tif_dirread.c: warnings cleanup http://bugzilla.maptools.org/show_bug.cgi?id=2092 2010-12-11 Lee Howard * tools/tiff2pdf.c: add fill-page option http://bugzilla.maptools.org/show_bug.cgi?id=2051 2010-12-11 Lee Howard * libtiff/tif_dirread.c: modify warnings http://bugzilla.maptools.org/show_bug.cgi?id=2016 2010-12-11 Lee Howard * libtiff/tif_ojpeg.c: fix buffer overflow on problem data http://bugzilla.maptools.org/show_bug.cgi?id=1999 2010-12-11 Lee Howard * tools/tiffinfoce.c: strip byte counts are uint64* now 2010-12-11 Lee Howard * libtiff/tif_ojpeg.c: fix crash when reading a TIFF with a zero or missing byte-count tag * tools/tiffsplit.c: abort when reading a TIFF without a byte-count per http://bugzilla.maptools.org/show_bug.cgi?id=1996 2010-12-08 Lee Howard * libtiff/tif_dirread.c: fix crash when reading a badly-constructed TIFF per http://bugzilla.maptools.org/show_bug.cgi?id=1994 2010-12-06 Lee Howard * libtiff/tif_open.c: Fix mode check before opening a file. http://bugzilla.maptools.org/show_bug.cgi?id=1906 2010-11-27 Bob Friesenhahn * libtiff-4.pc.in: Added libtiff pkg-config .pc file support. Patch by Vincent Torri. 2010-10-21 Frank Warmerdam * tools/tiffinfo.c: avoid direct reference to _TIFFerrorHandler. * libtiff/tif_config.vc.h: define snprintf to _snprintf for tiff2pdf. * libtiff/libtiff.def: export _TIFFCheckMalloc for tools. 2010-09-25 Lee Howard * tools/tiff2ps.c: improvements and enhancements from Richard Nolde with additional command line options for Document Title, Document Creator, and Page Orientation 2010-07-13 Bob Friesenhahn * tools/tiffcrop.c: Patch from Richard Nolde to avoid a potentially unterminated buffer due to using an exceptionally long file name. 2010-07-08 Andrey Kiselev * tools/tiff2pdf.c: Fixed ID buffer filling in t2p_write_pdf_trailer(), thanks to Dmitry V. Levin. 2010-07-07 Andrey Kiselev * libtiff/tif_dirread.c: Really reset the tag count in CheckDirCount() to expected value as the warning message suggests. As per bug http://bugzilla.maptools.org/show_bug.cgi?id=1963 2010-07-06 Andrey Kiselev * tools/tiffset.c: Properly handle TIFFTAG_PAGENUMBER, TIFFTAG_HALFTONEHINTS, TIFFTAG_YCBCRSUBSAMPLING, TIFFTAG_DOTRANGE which should be set by value. * libtiff/tif_dirinfo.c: Don't use assertions in _TIFFFieldWithTag() and _TIFFFieldWithName() if the tag is not found in the tag table. This should be normal situation and returned NULL value should be properly handled by the caller. 2010-07-02 Andrey Kiselev * libtiff/tif_getimage.c: Avoid wrong math du to the signed/unsigned integer type conversions. As per bug http://bugzilla.maptools.org/show_bug.cgi?id=2207 * tools/{tiff2bw.c, thumbnail.c, pal2rgb.c}: Fix the count for WhitePoint tag as per bug http://bugzilla.maptools.org/show_bug.cgi?id=2042 * libtiff/tif_getimage.c: Check the number of samples per pixel when working with YCbCr image in PickContigCase(). As per bug http://bugzilla.maptools.org/show_bug.cgi?id=2216 * libtiff/tif_dir.c: Set the bogus post-decoding hook when processing TIFFTAG_BITSPERSAMPLE in _TIFFVSetField() for the case of 8 bit when we don't need any post-processing. That helps to reset the hook if we previously set this field to some other value and the hook was initialized accordingly. As per bug http://bugzilla.maptools.org/show_bug.cgi?id=2035 2010-07-01 Andrey Kiselev * tools/tiffgt.c: Properly check the raster buffer allocations for integer overflows. As per bug http://bugzilla.maptools.org/show_bug.cgi?id=2108 * m4/acinclude.m4: Update GL/GLU/GLUt/Pthread macros from the upstream. * libtiff/{tif_aux.c, tif_strip.c, tif_tile.c, tiffiop.h}: Move multiply_32() and multiply_64() functions into tif_aux.c file and rename them into _TIFFMultiply32() and _TIFFMultiply64() respectively. 2010-06-30 Andrey Kiselev * tools/tiff2pdf.c: Better generation of ID field in t2p_write_pdf_trailer(). Get rid of GCC aliasing warnings. * tools/tiff2pdf.c: Fixed computation of the tile buffer size when converting JPEG encoded tiles. * tools/tiff2pdf.c: Better handling of string fields, use static string buffers instead of dynamically allocated, use strncpy() instead of strcpy(), control the string lengths. 2010-06-25 Andrey Kiselev * tools/tiffcp.c: Initialize buffer arrays with zero to avoid referencing to uninitialized memory in some cases (e.g. when tile size set bigger than the image size). 2010-06-15 Bob Friesenhahn * tools/tiffcrop.c: Patch from Richard Nolde. Reject YCbCr subsampled data since tiffcrop currently doesn't support it. Fix JPEG support. 2010-06-13 Frank Warmerdam * libtiff/tif_dirinfo.c: Fix invocation of tag compare function (#2201) * tools/tiff2pdf.c: Fix assorted bugs in tiff2pdf: missing "return" in t2p_read_tiff_size() causes t2p->tiff_datasize to be set entirely wrong for COMPRESSION_JPEG case, resulting in memory stomp if actual size is larger. Also, there are a bunch of places that try to memset() a malloc'd buffer before checking for malloc failure, which would result in core dump if there actually were a failure. (#2211) 2010-06-11 Bob Friesenhahn * libtiff/tiffiop.h (TIFFSafeMultiply): Need more castings to avoid compiler warnings if parameter types are not sign consistent. * libtiff 4.0.0alpha6 released. * tools/tiffcrop.c: Applied patch from Richard Nolde: Corrected European page size dimensions. Added an option to allow the user to specify a custom page size on the command line. Fix the case where a page size specified with a fractional part was being coerced to an integer by retyping the variables that define the paper size. * html/index.html: Update for the 3.9.3 release. * tools/tiffcp.c (tiffcp): Applied Tom Lane's patch to reject YCbCr subsampled data since tiffcp currently doesn't support it. http://bugzilla.maptools.org/show_bug.cgi?id=2097 * Update libtool to version 2.2.10. 2010-06-10 Bob Friesenhahn * libtiff/tiffiop.h (TIFFSafeMultiply): Work properly if multiplier is zero. 2010-06-09 Bob Friesenhahn * libtiff/tif_fax3.c (Fax3SetupState): Yesterday's fix for CVE-2010-1411 was not complete. * libtiff/tiffiop.h (TIFFSafeMultiply): New macro to safely multiply two integers. Returns zero if there is an integer overflow. * tools/tiffcp.c (main): tiffcp should not leak memory if an error is reported when reading the input file. 2010-06-08 Bob Friesenhahn * Update libtool to version 2.2.8. * libtiff/tif_fax3.c (Fax3SetupState): Avoid under-allocation of buffer due to integer overflow in TIFFroundup() and several other potential overflows. In conjunction with the fix to TIFFhowmany(), fixes CVE-2010-1411. * libtiff/tiffiop.h (TIFFhowmany): Return zero if parameters would result in an integer overflow. This causes TIFFroundup() to also return zero if there would be an integer overflow. * contrib: Add an emacs formatting mode footer to all source files so that emacs can be effectively used. 2010-06-03 Oliver Chen Feng * libtiff/tools/tiffcp.c: add a new option -x to force merged tiff file PAGENUMBER value in sequence for users who care the page sequence, this will also prevent tiff2pdf from creating pdf file from the merged tiff file with wrong page sequence. 2010-05-08 Olivier Paquet * libtiff/tif_dirread.c: Restored TIFFReadDirEntryFloat function in order to add missing TIFF_SETGET_FLOAT case to TIFFFetchNormalTag. * libtiff/tif_dirinfo.c: Use correct set_field_type for TIFFTAG_PIXAR_FOVCOT so it is readable again (regression from 3.9.2). http://bugzilla.maptools.org/show_bug.cgi?id=2192 2010-05-07 Frank Warmerdam * libtiff/tif_jpeg.c: Ensure that quality is always set in JPEGPreEncode(), not just when we want to output local tables. Otherwise the quality used during compression may not be right and might not match the tables in the tables tag. This bug only occurs when seeking between directories in the midst of writing blocks. http://trac.osgeo.org/gdal/ticket/3539 2010-05-06 Andrey Kiselev * html/man/TIFFGetField.3tiff.html, html/man/TIFFSetField.3tiff.html: Regenerated from the source. 2010-05-05 Olivier Paquet * libtiff/tif_print.c: Fixed printing of TIFFTAG_REFERENCEBLACKWHITE which had stopped working. Also made it always print 6 floats instead of 2*SamplesPerPixel. http://bugzilla.maptools.org/show_bug.cgi?id=2191 http://bugzilla.maptools.org/show_bug.cgi?id=2186 * man/TIFFGetField.3tiff, man/TIFFSetField.3tiff: Fixed doc to reflect the fact that libtiff considers TIFFTAG_REFERENCEBLACKWHITE to be 6 floats. 2010-05-05 Frank Warmerdam * libtiff/tif_jpeg.c: Fix to use memcmp(), not memcpy() when checking if the jpeg table was written. This is a fix for the last fix on 04-21. 2010-04-21 Frank Warmerdam * libtiff/tif_jpeg.c: avoid preparing jpeg tables everytime JPEGSetupEncode() is called if the tables already seem to be established. This prevents spurious updates and rewriting of directories with jpegtables when doing updates to existing images. http://trac.osgeo.org/gdal/ticket/3539 2010-04-20 Olivier Paquet * libtiff/tif_dirinfo.c: Use correct set_field_type for TIFFTAG_PIXAR_IMAGEFULLWIDTH, TIFFTAG_PIXAR_IMAGEFULLLENGTH, TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN and TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA. They were unreadable with TIFF_SETGET_UNDEFINED, a regression from 3.9.2. http://bugzilla.maptools.org/show_bug.cgi?id=2139 2010-04-10 Bob Friesenhahn * libtiff/tif_dir.c (_TIFFVSetField): Add a special error case for when the tag count value is zero. Error handling is still a regression since in 3.9.2, empty tags are skipped (with a warning) rather than returning a hard error and refusing to read the file. * tools/ppm2tiff.c (main): While case for parsing comment line requires extra parenthesis to work as expected. Reported by Thomas Sinclair. 2010-04-02 Frank Warmerdam * libtiff/tif_read.c (primarily): Add support for CHUNKY_STRIP_READ_SUPPORT where large strips are read in chunks for applications using TIFFReadScanline(). This is intended to make it more practical work with very large compressed one-strip files. Feature is off by default. Enable by defining CHUNK_STRIP_READ_SUPPORT as a macro. http://trac.osgeo.org/gdal/ticket/3514 2010-03-31 Frank Warmerdam * libtiff/tif_flush.c: Use TIFFRewriteDirectory() when flushing directories so previously placed directories will be migrated to the end of file if needed. 2010-03-30 Frank Warmerdam * libtiff/tif_lzw.c: change type of dec_bitsleft field to uint64 to support operating on strips/tiles of more than 256MB. http://trac.osgeo.org/gdal/ticket/3512 2010-03-10 Bob Friesenhahn * libtiff/tif_aux.c (_TIFFCheckRealloc): Improve error message so that it is clearly a memory allocation error message, and also includes the size of the allocation request. 2010-02-22 Lee Howard * libtiff/tif_jpeg.c: Do not generate a JPEGTables tag when creating the JPEG TIFF as is is not required in order to prevent it from being unused and filled with invalid data. (Leave it to be generated by later activity.) http://bugzilla.maptools.org/show_bug.cgi?id=2135 * tools/tiff2pdf.c: Write the JPEG SOI headers into the TIFF strip data rather than skipping them. This fixes the ability to view in Acrobat Reader, Evince, and Ghostscript. http://bugzilla.maptools.org/show_bug.cgi?id=2135 * libtiff/tif_fax3.c: Don't return error on badly-terminated MMR strips. http://bugzilla.maptools.org/show_bug.cgi?id=2029 2009-12-03 Frank Warmerdam * libtiff/tif_jpeg.c: Made JPEGDecodeRaw() check for buffer overruns. Made so that when working with downsampled images a stub function reporting an error is used for tif_decoderow. We cannot meaningfully support reading scanlines in this situation. (#1936) * libtiff/tif_jpeg.c: Ensure that tif_scanlinesize is computed after resetting of the upsampling values (gdal:#3259). http://bugzilla.maptools.org/show_bug.cgi?id=1936 2009-11-30 Frank Warmerdam * contrib/dbs/tiff-grayscale.c, contrib/tif-palette.c, tools/ras2tiff.c: Fix resource leaks on error. http://bugzilla.maptools.org/show_bug.cgi?id=2121 * libtiff/tif_{aux.c,dir.c,dir.h,dirinfo.c}: Return to handling TIFFTAG_REFERENCEBLACKWHITE as a field in the TIFF directory instead of as a custom(generic) field to avoid a potential reentrancy problem. http://bugzilla.maptools.org/show_bug.cgi?id=2125 * libtiff/tif_color.c, libtiff/tif_getimage.c, libtiff/tiffio.h, man/TIFFcolor.3tiff: Make TIFFDisplay argument in TIFFCIELabToRGBInit const, and display_sRGB static and const. http://bugzilla.maptools.org/show_bug.cgi?id=2124 2009-11-04 Bob Friesenhahn * libtiff 4.0.0alpha5 released. 2009-11-03 Bob Friesenhahn * tools/tiffcrop.c: Updated tiffcrop from Richard Nolde. This version has undergone substantial testing with arbitrary sample bit depths. Also eliminates GCC compilation warnings. 2009-11-02 Bob Friesenhahn * port/libport.h: Add extern declarations for getopt standard globals. 2009-10-31 Bob Friesenhahn * libtiff/tif_lzw.c (LZWDecode, LZWDecodeCompat): Fix warnings noticed in 64-bit build of libtiff with Visual Studio 2005. Resolves "Bug 2067 - Visual Studio 2005 64-bit warnings in tif_lzw.c", http://bugzilla.maptools.org/show_bug.cgi?id=2067 * libtiff/tif_pixarlog.c (PixarLogEncode): Fix non-important warning noticed in Visual Studio 2005 build. Resolves "Bug 2068 - Visual Studio 2005 64-bit warning in tif_pixarlog.c", http://bugzilla.maptools.org/show_bug.cgi?id=2068 2009-10-29 Bob Friesenhahn * libtiff/tif_dirread.c: Eliminate GCC "dereferencing type-punned pointer" warnings. 2009-10-28 Bob Friesenhahn * html/tools.html: Add manual page links, and a summary description of tiffcrop. 2009-10-07 Bob Friesenhahn * configure.ac: x86_64 should use the same fill order as i386. 2009-09-24 Bob Friesenhahn * tools/tiffcrop.c, man/tiffcrop.1: New tiffcrop from Richard Nolde. Major updates to add significant functionality for reading and writing tile based images with bit depths not a multiple of 8 which cannot be handled by tiffcp. 2009-09-03 Bob Friesenhahn * libtiff/tif_ojpeg.c (OJPEGWriteHeaderInfo): IJG JPEG 7 needs do_fancy_upsampling=FALSE in order to read raw data. Resolves "Bug 2090 - OJPEG crash with libjpeg v7". http://bugzilla.maptools.org/show_bug.cgi?id=2090 2009-09-03 Frank Warmerdam * libtiff/tif_getimage.c: Fixed error recognition handling in RGBA interface when stoponerror is set. http://bugzilla.maptools.org/show_bug.cgi?id=2071 2009-08-30 Bob Friesenhahn * tools/{tiffcrop.c,tiffgt.c}: Applied patch from Oden Eriksson to fix build with gcc when using the "-Wformat -Werror=format-security" flags. 2009-08-29 Bob Friesenhahn * test/{bmp2tiff_palette.sh, bmp2tiff_rgb.sh, gif2tiff.sh, ppm2tiff_pbm.sh, ppm2tiff_pgm.sh, ppm2tiff_ppm.sh}: Additional utilities tests. 2009-08-28 Bob Friesenhahn * tools/tiffinfo.c: tiffinfo should return error status to the caller. Register a private error callback to accomplish that. * test/Makefile.am (TIFFIMAGES): Add test images in BMP, GIF, and PNM formats so that we will be able to test more of the tools. While adding these test images I notice that bmp2tiff and gif2tiff only support ancient versions of their respective formats. 2009-08-27 Bob Friesenhahn * libtiff 4.0.0alpha4 released. * HOWTO-RELEASE: Improved release instructions. 2009-08-24 Bob Friesenhahn * man/{TIFFClose.3tiff,raw2tiff.1,tiffcmp.1,tiffsplit.1}: Applied fixes for "Bug 2023 - nroff errors in manual pages". http://bugzilla.maptools.org/show_bug.cgi?id=2023 * tools/{rgb2ycbcr.c, tiff2rgba.c}: Applied fixes for "Bug 2079 - CVE-2009-2347 libtiff: integer overflows in various inter-color space conversion tools". http://bugzilla.maptools.org/show_bug.cgi?id=2079 * libtiff/tif_print.c (TIFFPrintDirectory): Apply fix from Jay Berkenbilt for "Bug 2024 - possible null pointer dereference with one-line fix". http://bugzilla.maptools.org/show_bug.cgi?id=2024 * libtiff/tif_dirread.c (TIFFReadCustomDirectory): Apply patch from Jay Berkenbilt for "Bug 1895 - logic error in tif_dirread.c: segfault after setting tdir_tag = IGNORE". http://bugzilla.maptools.org/show_bug.cgi?id=1895 2009-08-23 Bob Friesenhahn * test/Makefile.am, test/tiffcrop*.sh: Split previously existing tiffcrop.sh into a collection of many specific tests. Re-wrote all of the existing tests to be based on some simple shell functions. Make distcheck works again. Export certain variables (MAKE, MAKEFLAGS, MEMCHECK) to tests and added 'memcheck' and 'ptrcheck' targets to make it easy to run the tests under valgrind. 2009-08-21 Bob Friesenhahn * test/tiffcp-logluv.sh: Fix test so that it works with a VPATH build. * test/Makefile.am (AUTOMAKE_OPTIONS): Colorized tests was not actually activated since it needed to be enabled in this Makefile.am. Also activated parallel-tests mode since it offers useful features such as per-test .log files and a summary test report .log file. 2009-08-20 Bob Friesenhahn * configure.ac: Updated autotools. Autoconf 2.64, Automake 1.11, libtool 2.2.6. Enabled support for silent build rules (--enable-silent-rules or 'make V=0') and colorized tests. * html/{index.html, v3.9.0.html}: Update for 3.9.0 release. 2009-06-30 Frank Warmerdam * tests/tiffcp-logluv.sh: minimal testing of sgilog compression. * tools/tiffcp.c: add -c sgilog support. * libtiff/tif_luv.c: correct return codes from encoderow to be 1 on success instead of zero. http://bugzilla.maptools.org/show_bug.cgi?id=2069 * libtiff/tif_lzw.c: back out patch from #2065 and apply patch from #1085 for a better underflow fix that errors properly. http://bugzilla.maptools.org/show_bug.cgi?id=2065 http://bugzilla.maptools.org/show_bug.cgi?id=1985 2009-06-26 Frank Warmerdam * libtiff/tif_strip.c: Remove an inappropriate assertion that often fails on oddly sized 12bit jpeg compressed ycbcr images. 2009-06-22 Frank Warmerdam * libtiff/tif_lzw.c: Fix buffer underflow bug. http://bugzilla.maptools.org/show_bug.cgi?id=2065 2009-06-21 Frank Warmerdam * configure.ac, libtiff/tif_jpeg.c, libtiff/tif_jpeg_12.c: add support for dual mode 8/12 bit jpeg support. 2009-06-03 Frank Warmerdam * libtiff/tif_write.c: do not override the planar configuration to be contig for one sample files if planar configuration is already set. http://bugzilla.maptools.org/show_bug.cgi?id=2057 2009-06-02 Frank Warmerdam * libtiff/libtiff.def: Add TIFFUnsetField. 2009-05-03 Frank Warmerdam * libtiff/{tif_jpeg.c,tif_ojpeg.c,tif_getimage.c}: Fixed various error reports to use "%s" as format string. http://trac.osgeo.org/gdal/ticket/2976 2009-03-12 Frank Warmerdam * libtiff/{tif_fax3.c,tif_jpeg.c,tif_ojpeg.c}: Fix printdir chaining for some codecs (#2020). 2009-02-12 Frank Warmerdam * libtiff/tif_luv.c: Fix handling of tiled logluv images. http://bugzilla.maptools.org/show_bug.cgi?id=2005 2009-02-09 Frank Warmerdam * libtiff/tif_dirread.c: Improve allocation safety when allocated buffer for large tags. (#1998) Related to (#1993) 2009-02-06 Frank Warmerdam * tools/tiffcrop.c: Don't default image->res_unit to INCH. Now the test suite should pass. 2009-02-05 Frank Warmerdam * libtiff/tif_dirread.c: Re-incorporated a sanity check on tag size, but at the 2GB boundary to avoid overflow on 32bit systems. http://bugzilla.maptools.org/show_bug.cgi?id=1993 * libtiff/tif_dirread.c: Remove some assertions that blow due to corrupt files rather than in response to library internal inconsistencies. http://bugzilla.maptools.org/show_bug.cgi?id=1995 http://bugzilla.maptools.org/show_bug.cgi?id=1991 * libtiff/tif_dirread.c: Fixed testing for failed result from TIFFReadDirectoryFindFieldInfo(). http://bugzilla.maptools.org/show_bug.cgi?id=1992 2009-01-23 Frank Warmerdam * libtiff/tif_predict.c: Add support for 32bit integer horz. predictors. http://bugzilla.maptools.org/show_bug.cgi?id=1911 * libtiff/tif_dirwrite.c: Fix byte swapping of next directory offset. http://bugzilla.maptools.org/show_bug.cgi?id=1924 * tools/tiffcrop.c: initialize xres/yres values. * test/*.sh - default ${srcdir} to local directory. * test/common.sh - start verbose mode after common settings. * libtiff/tif_dirinfo.c: Replace lfind() with local equivelent to avoid type mismatches on different platforms. http://bugzilla.maptools.org/show_bug.cgi?id=1889 2009-01-22 Frank Warmerdam * tools/{fax2tiff.c,thumbnail.c,tiff2pdf.c,tiff2ps.c,tiffdump.c, tiffsplit.c}: avoid warnings, mostly 32bit/64bit casting issues. * port,tools: Introduce libport.h, and include in tools if NEED_LIBPORT defined, primarily to reduce prototype warnings on windows. * libtiff/tif_dirinfo.c,tif_dirread.c: Avoid warnings about unused parameters, and uninitialized variables. 2009-01-21 Bob Friesenhahn * test/common.sh: Execute tests like 'make VERBOSE=TRUE check' in order to trace full execution detail while executing the test suite. 2009-01-20 Frank Warmerdam * tools/tiffsplit.c: fix sampleformat to be shortv instead of longv. 2009-01-20 Bob Friesenhahn * test/Makefile.am (CLEANFILES): Make sure that test output files are removed by 'make clean' * Update autotools for 4.0.0 beta3 * 4.0.0 beta3 produced. 2009-01-12 Bob Friesenhahn * test/tiffcrop.sh: New test script for tiffcrop from Richard Nolde. * tools/tiff2ps.c: Remove spurious message to stderr. 2009-01-11 Bob Friesenhahn * tools/tiff2ps.c: Incorporated significant functionality update from Richard Nolde. In particular, support for rotating the image by 90, 180, 270, and 'auto' has been added. * man/tiffcrop.1: Incorporated documentation updates from Richard Nolde. * tools/tiffcrop.c: Incorporated significant functionality update from Richard Nolde. 2008-12-31 Bob Friesenhahn * libtiff/tiffio.h: GCC will now validate format specifications for TIFFError(), TIFFErrorExt(), TIFFWarning(), and TIFFWarningExt() in order to reveal bugs. * Many fixes throughout to work better as a 64-bit build. 2008-12-30 Bob Friesenhahn * tools/{tiff2pdf.c, tiff2ps.c, tiffinfo.c}: Offset and length tags now require 64-bit parameter rather than 32-bit. * libtiff/tif_dirread.c: Fixed issues with unaligned access to 64-bit values. * tools/thumbnail.c: Eliminate crash noticed while running test suite. 2008-12-29 Bob Friesenhahn * libtiff/tif_ojpeg.c (OJPEGLibjpegJpegSourceMgrFillInputBuffer): Initialize stack variables to avoid compiler warning. * tools/tiffinfoce.c (main): Use toff_t for offset type when retrieving offset of EXIF IFD. * libtiff/tiffio.h: Undeprecate toff_t and restore its use in the TIFFClientOpen() callback and other external function definitions. * tools/tiffinfo.c (main): Offset to EXIF IFD requires a 64-bit type now. Fixes crash when dumping files containing an EXIF IFD. * m4/libtool.m4: Update to libtool 2.2.6. 2008-12-21 Frank Warmerdam * libtiff/tif_dir.c, tiffio.h: Introduce TIFFUnsetField() function. * libtiff/tif_jpeg.c: Avoid errors if the application writes a full strip for the last partial strip in a jpeg compressed file. http://bugzilla.maptools.org/show_bug.cgi?id=1981 2008-10-29 Frank Warmerdam * libtiff/tif_flush.c: Make sure that BEENWRITING is cleared when we take the shortcut to only update the strip/tile offsets in place. http://trac.osgeo.org/gdal/ticket/2621 2008-10-21 Andrey Kiselev * libtiff/tif_jbig.c: Support the JBIG-KIT 2.0 (compatibility with the older versions retained). 2008-10-09 Frank Warmerdam * libtiff/tif_jpeg.c: Add #ifdefs for changes needed if using IPP enabled version of libjpeg from Intel. http://bugzilla.maptools.org/show_bug.cgi?id=1951 2008-09-05 Andrey Kiselev * tools/tiffsplit.c: Use byte counts of proper size (uint64). Required for libtiff 4.0. * tools/tiffsplit.c: Use dynamically allocated array instead of static when constructing output file names. 2008-09-03 Andrey Kiselev * tools/tiffsplit.c: Get rid of unsafe strcpy()/strcat() calls when doing the filename/path construction. * tools/tiff2pdf.c: More appropriate format string in t2p_write_pdf_string(); avoid signed/unsigned mismatch. * libtiff/tif_lzw.c: Properly zero out the codetable. As per bug http://bugzilla.maptools.org/show_bug.cgi?id=1929 * libtiff/tif_lzw.c: Properly zero out the string table. Fixes CVE-2008-2327 security issue. 2008-09-01 Frank Warmerdam * libtiff/tif_dirread.c: Avoid unused TIFFReadDirEntryFloat() function. * libtiff/tif_dirwrite.c: modified to write IFDs as either IFD8 or IFD depending on whether the file is bigtiff or classic tiff. http://bugzilla.maptools.org/show_bug.cgi?id=1917 2008-08-12 Edward Lam * tools/tiffdump.c: When compiling for Microsoft Windows, apply consistent (__int64) casting when testing if _lseeki64 has successfully seeked as requested. This is necessary for large file support to work since off_t is only 32-bit. 2008-07-29 Frank Warmerdam * tif_strip.c: Replace assertions related to samplesperpixel != 3 or the subsampling values not being 1, 2 or 4 (for jpeg compressed images) with control logic to return runtime errors (c/o Even Rouault) (#1927). 2008-06-17 Frank Warmerdam * tools/tiffcrop.c: Fix some portability problems. * libtiff/tif_ojpeg.c: Use same jpeg/win32 boolean/FAR hacks as are used in tif_jpeg.c. * libtiff/tif_win32.c: Ensure TIFFOpenW() uses same FILE_SHARE flags as TIFFOpen(). 2008-06-01 Frank Warmerdam * libtiff/tif_dirwrite.c: Fix alignment problems affecting architectures like Sparc/Solaris. http://bugzilla.maptools.org/show_bug.cgi?id=1892 2008-05-27 Frank Warmerdam * libtiff.def: Add TIFFFindField http://bugzilla.maptools.org/show_bug.cgi?id=1891 2008-05-26 Frank Warmerdam * tif_config.*.h, tiffconf.*.h: Remove SIZEOF_LONG definition, unused. * li2008-04-15 Andrey Kiselev btiff/tif_win32.c: Replace custom Win32 memory api with generic POSIX one. No apparent value to use of GlobalAlloc() in the modern age. http://bugzilla.maptools.org/show_bug.cgi?id=1885 * libtiff/tiffconf.vc.h: Added JBIG_SUPPORT and MDI_SUPPORT items in windows version (care of Edward Lam). 2008-05-24 Frank Warmerdam * tif_codec.c: Avoid NULL pointer dereferencing for exotic compression codec codes. * tif_dirwrite.c: fix potential memory leak. * tif_dirread.c: Fix unchecked malloc result. 2008-05-24 Bob Friesenhahn * test {tiff2pdf.sh tiff2ps-EPS1.sh tiff2ps-PS1.sh tiff2ps-PS2.sh tiff2ps-PS3.sh tiffcp-g3-1d-fill.sh tiffcp-g3-1d.sh tiffcp-g3-2d-fill.sh tiffcp-g3-2d.sh tiffcp-g3.sh tiffcp-g4.sh tiffcp-split-join.sh tiffcp-split.sh tiffcp-thumbnail.sh tiffdump.sh tiffinfo.sh}: Added more test scripts based on suggestions from Lee Howard posted to the tiff list on 13 Sep 2007. 2008-05-23 Frank Warmerdam * libtiff/tif_fax3.c: Add an assert in an effort to detect a possible runtime problem reported by coverity. * contrib/iptcutil/iptcutil.c: Fixed memory leak of str. * tools/tiffcrop.c, man/tiffcrop.1: Major update from Richard Nolde. http://bugzilla.maptools.org/show_bug.cgi?id=1888 * tools/tiffdither.c: remove dead onestrip code. avoid memory leak. * tools/rgb2ycbcr.c: fix memory leak of raster buffer. * tools/tiffcp.c: Simplify inknames code to avoid pointless test. Cleanup scanline allocation to avoid coverity warning. * tools/thumbnail.c: Check for TIFFOpen() failure. 2008-05-18 Frank Warmerdam * libtiff/tif_dirinfo.c: Use TIFF_SETGET_ASCII for PIXAR_TEXTUREFORMAT and PIXAR_WRAPMODES instead of TIFF_SETGET_UNDEFINED. Not exactly clear why this is needed. 2008-05-09 Bob Friesenhahn * Makefile.am (ACLOCAL_AMFLAGS): Libtool 2.2.4 does not like "ACLOCAL_AMFLAGS=-I ./m4". It wants "ACLOCAL_AMFLAGS=-I m4". 2008-04-15 Andrey Kiselev * test/: Test suite updated. Everything is passed now. * libtiff/tif_dirinfo.c: Fixed description of the TIFFTAG_NUMBEROFINKS tag. 2008-04-14 Andrey Kiselev * libtiff/{tif_dirread.c, tif_dirwrite.c, tiffiop.h}: Get rid of some of "dereferencing type-punned" warnings by converting tdir_offset field of TIFFDirEntry structure into union. 2008-04-10 Andrey Kiselev * libtiff/{tif_flush.c, tif_dirwrite.c, tiffio.h, tiffiop.h}: TIFFRewriteField() renamed into _TIFFRewriteField() and moved out from the public interface. Type of its 'count' parameter changed from uint32 to tmsize_t. * /libtiff/tiffiop.h: Make tif_nfields and tif_nfieldscompat fields of the tiff structure have the size_t type instead of uint32. 2008-04-09 Andrey Kiselev * tools/tiffdump.c: Added support for MSVS 6.0. * libtiff/tif_dirread.c: Use custom functions _TIFFUInt64ToFloat() and _TIFFUInt64ToDouble() to convert 64-bit integers into floating point values on MSVS 6.0 platform. 2008-03-14 Frank Warmerdam * tif_dirread.c: Removed sanity checks on tags larger than 4MB in TIFFReadDirEntryArray() since they are interfering with seemingly legitimate files. http://trac.osgeo.org/gdal/ticket/2005 2008-02-09 Joris Van Damme * tif_dirread.c: Added handling for the case of number of values for PageNumber tag different from 2 (previously resulted in an assert indicating lack of handling and was forgotten about) 2008-02-01 Frank Warmerdam * libtiff/tif_jpeg.c: Do not try to fixup subsampling tags based on the actual jpeg data stream if the first strip/tile has zero size. This is the case when GDAL creates a new file with zero sizes, closes and reopens it. 2008-01-07 Frank Warmerdam * tools/tiff2ps.c: fix up 64bit issues (from Edward Lam). 2008-01-01 Frank Warmerdam * libtiff/tif_dirwrite.c: #ifdef out lots of unused functions. * Makefile.vc, libtiff/Makefile.vc, tools/Makefile.vc: Improve clean targets. * tools/tiffinfo.c, tools/tiffcmp.c, tools/gif2tiff.c, tools/bmp2tiff.c tools/tiff2pdf.c: Fix 64-bit warnings when compiling under MSVC 2005 (x64). * tools/tiffset.c: Changes to reflect the fact that TIFFFieldWithTag() and TIFFFieldWithName() now return TIFFField pointers instead of TIFFFieldInfo pointers. * tools/tiffdump.c: Added ssize_t typedef on Windows since it doesn't exist. This makes it compile again on Windows * tif_aux.c, tif_getimage.c, tif_next.c, tif_predict.c, tif_win32.c, tiffconf.vc.h: Various 64bit fixes from Edward Lam identified on win64. * test/rewrite_tag.c: New test for TIFFRewriteField(). 2007-12-31 Frank Warmerdam * tif_dirwrite.c: Added TIFFRewriteField(). This new function rewrites one field "on disk" updating an existing directory entry. Lots of limitations still... * tiffiop.h, tif_write.c, tif_dirread.c, tif_flush.c: Keep track of TIFF_DIRTYSTRIP separately from TIFF_DIRTYDIRECT to indicate that the strip offset/size values are dirty but nothing else about the directory is dirty. In flush handle "just stripmaps dirty" as a special case that just rewrites these values without otherwise modifying the directory on disk using TIFFRewriteField(). We also modify logic so that in update mode the directory is not marked dirty on read, but only when something is changed. This means we need to keep track of updates to the stripmap stuff in TIFFAppendToStrip(). 2007-12-10 Frank Warmerdam * tif_jpeg.c: Improve ability to switch between encoding and decoding in the jpeg code (gdal bug #2033). 2007-11-23 Frank Warmerdam * tif_dir.c, tif_dirread.c, tif_dirwrite.c, tif_read.c, tif_write.c, tiffiop.h: Added TIFF_BUF4WRITE flag to indicate if contents of the rawcp/rawcc buffer are for writing and thus may require flushing. Necessary to distinguish whether they need to be written to disk when in mixed read/write mode and doing a mixture of writing followed by reading. http://trac.osgeo.org/gdal/ticket/1758 2007-11-23 Andrey Kiselev * configure.com, libtiff/tif_vms.c: Better OpenVMS support. Patches from Alexey Chupahin. 2007-11-02 Frank Warmerdam * tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for establishing if an existing tile can be rewritten to the same location by comparing the current size to all the other blocks in the same directory. This is dangerous in many situations and can easily corrupt a file. (observed in esoteric GDAL situation that's hard to document). This change involves leaving the stripbytecount[] values unaltered till TIFFAppendToStrip(). Now we only write a block back to the same location it used to be at if the new data is the same size or smaller - otherwise we move it to the end of file. * tif_dirwrite.c: Try to avoid writing out a full readbuffer of tile data when writing the directory just because we have BEENWRITING at some point in the past. This was causing odd junk to be written out in a tile of data when a single tile had an interleaving of reading and writing with reading last. (highlighted by gdal autotest/gcore/tif_write.py test 7. * tif_predict.c: use working buffer in PredictorEncodeTile to avoid modifying callers buffer. http://trac.osgeo.org/gdal/ticket/1965 * tif_predict.c/h: more fixes related to last item, keeping a distinct pfunc for encode and decode cases as these were getting mixed up sometimes. http://trac.osgeo.org/gdal/ticket/1948 2007-11-01 Frank Warmerdam * tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so that predictor based encoding and decoding works in read-write update mode properly. http://trac.osgeo.org/gdal/ticket/1948 2007-10-24 Joris Van Damme * tif_dirread.c: Fixed problem with bogus file triggering assert(td->td_planarconfig == PLANARCONFIG_CONTIG) in ChopUpSingleUncompressedStrip 2007-10-22 Joris Van Damme * tif_jpeg.c: Resolved buffer incrementation bug that lead to faulty images at best, access violation at worst, when subsampled JPEG compressed imagery is decoded without the JPEG_COLORMODE feature 2007-10-11 Frank Warmerdam * html/index.html: Update "people responsible" section. 2007-10-05 Frank Warmerdam * tools/tiff2pdf.c: Fix problem with alpha setting in some cases as reported on the mailing list. 2007-10-01 Joris Van Damme * changed some more incorrect %lud printf flags to %lu 2007-09-29 Joris Van Damme * tif_dirread.c: Strip chopping interfered badly with uncompressed subsampled images because it tried to divide subsampled rowblocks, leading to all sorts of errors throughout the library for these images. Fixed by making strip chopping divide in row counts that are a multiple of vertical subsampling value. 2007-09-28 Joris Van Damme * tif_dirread.c: Logical cast working around compiler warning * tif_read.c: Correction of some error flags and parameter lists 2007-09-27 Joris Van Damme * tif_dirread.c: Made calculation of td_maxsamplevalue more robust when dealing with large bitspersample values, shutting up purification tools that warn about truncation, though it remains incorrect and indicates a conceptual problem there. * tif_open.c: Moved early exit in case of 'h' flag (to disable reading of first IFD) to proper place because it badly interfered with memory mapping, resulting in mapping flag even with dummy mapping functions that returned 0 whilst at the same time the mapping tif_size wasn't set, thus resulting in continuous incorrect beyond-eof errors. 2007-09-24 Joris Van Damme * tif_dirinfo.c: Fixed (MSVC) compiler reports about inconsistent use of const in tiffFields and exifFields definition 2007-09-20 Frank Warmerdam * tif_dirwrite.c: Always write tile/strip offsets and sizes using LONG8 type when output format is BigTIFF. The TIFFWriteDirectoryTagLongLong8Array() function was restructured accordingly. * tif_dirread.c: Improvements to error reporting text in TIFFFetchDirectory(). 2007-09-19 Bob Friesenhahn * test/images: Added a small collection of test images for use by test programs and scripts. * test/tiffinfo.sh: A trivial example test script. * test/common.sh: Added small script for setting the environment used by script-based tests. 2007-08-24 Frank Warmerdam * tif_dirwrite.c: Write the tif_nextdiroff value instead of a fixed zero when writing directory contents to preserve the ability to rewrite directories in place, even in the middle of a directory chain. * tif_dirinfo.c: _TIFFMergeFields() now only merges in field definitions that are missing. Existing definitions are silently ignored. * tif_dirread.c: Add runtime error for fields for which no definition is found (in addition to an assert for developers) in TIFFFetchNormalTag(). Not sure if this is needed, but it seems prudent. 2007-08-10 Joris Van Damme * libtiff/tif_getimage.c: removed SubsamplingHor and SubsamplingVer from _TIFFRGBAImage structure to revert unwanted ABI change. 2007-08-10 Joris Van Damme * libtiff/tif_win32.c: use SetFilePointer instead of SetFilePointerEx, as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1580 2007-07-19 Andrey Kiselev * libtiff/tif_stream.cxx: Put all callback functions declarations inside extern "C" block. * libtiff/{tif_lzw.c, tif_luv.c, tif_dumpmode.c, tif_print.c, tif_read.c, tif_strip.c, tif_thunder.c}: Use "%I64d" printf() formatter instead of "%lld" with MSVC compiler. * libtiff/{tiffiop.h, tif_aux.c}: Added _TIFFUInt64ToFloat() and _TIFFUInt64ToDouble() functions. 2007-07-18 Andrey Kiselev * libtiff/tif_dirread.c: Handle the case of MSVC 6 when using 64-bit integer constants. * libtiff/{Makefile.am, Makefile.v}: Do not distribute tiffconf.h, remove tif_config.h/tiffconf.h during cleaning. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1573 * libtiff/tif_unix.c: Do not use O_LARGEFILE. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1577 2007-07-13 Andrey Kiselev * libtiff 4.0.0alpha released. 2007-07-12 Andrey Kiselev * tools/tiff2pdf.c: Added missed extern optind as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1567 * libtiff/{tif_close.c, tif_dirinfo.c, tiffiop.c, tif_dirread.c, tif_dir.h, tif_dir.c, tiffio.h}: Transition to the new-style tag extending scheme completed. 2007-07-11 Bob Friesenhahn * libtiff/tif_stream.cxx: Adapt to use toff_t again. Update to use standard C++ library size types and attempt to detect overflow cases. 2007-07-08 Andrey Kiselev * libtiff/{tif_jpeg.c, tif_dir.h, tif_dir.c, tif_dirinfo.c, tiffio.h, tif_ojpeg.c, tif_print.c, tif_fax3.c, tif_dirread.c}: More work on new tag extending scheme. Use the new scheme everywhere. * libtiff/{tif_zip.c, tif_predict.c, tif_pixarlog.c, tif_luv.c, tif_fax3.c, tif_dirread.c, tif_dirwrite.c, tif_close.c, tif_ojpeg.c, tif_jpeg.c, tif_dirinfo.c, tif_dir.h, tiffio.h, tiffiop.h}: TIFFFIeldInfo structure replaced with TIFFField structure. TIFFFieldInfo retained for the backward compatibility. 2007-07-05 Bob Friesenhahn * tools/tiff2pdf.c: Fix a compile problem when JPEG_SUPPORT is not defined. 2007-07-04 Andrey Kiselev * libtiff/{tif_dir.c, tiff.h, tiffio.h, libtiff.def}: Unused TIFFReassignTagToIgnore() function and TIFFIgnoreSense enumeration removed. * libtiff/{tif_dirinfo.c, tif_fax3.c, tif_jbig.c, tif_jpeg.c}: Move tags TIFFTAG_FAXRECVPARAMS, TIFFTAG_FAXSUBADDRESS, TIFFTAG_FAXRECVTIME and TIFFTAG_FAXDCS to the common tag directory. These tags are not codec-specific and relate to image content, so process them as other normal tags. * libtiff/{tiffio.h, tif_dir.h}: TIFFTagValue structure moved from the public tiffio.h to private tif_dir.h. * contrib/{acorn, mac-cw, mac-mpw}: Removed as unmaintained and outdated. 2007-07-03 Andrey Kiselev * libtiff{tif_acorn.c, tif_apple.c, tif_atari.c, tif_msdos.c, tif_win3.c}: Obsoleted portability stuff removed. * tools/tiff2ps.c: Added support 16-bit images as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1566 Patch from William Bader. * tools/tiff2pdf.c: Fix for TIFFTAG_JPEGTABLES tag fetching and significant upgrade of the whole utility as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1560 Now we don't need tiffiop.h in tiff2pdf anymore and will open output PDF file using TIFFClientOpen() machinery as it is implemented by Leon Bottou. 2007-06-26 Bob Friesenhahn * configure.ac: Fix typo when substituting value for unsigned 8 bit type. Added support for a TIFF_PTRDIFF_T type to use when doing pointer arithmetic. Added support for a TIFF_SSIZE_T in order to return memory sizes but still allow returning -1 for errors. * libtiff/tiffconf.vc.h: Add porting type defintions for WIN32. 2007-06-25 Bob Friesenhahn * port/strtoull.c: New porting function in case strtoull() is not available on the target system. * configure.ac: Add configure support for determining sized types in a portable way and performing necessary substitutions in tif_config.h and tiffconf.h. Updated tiff.h to use the new definitions. 2007-04-27 Andrey Kiselev * tools/tiff2pdf.c: Check the tmpfile() return status as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=154 2007-04-07 Andrey Kiselev * libtiff/{tif_dir.h, tif_dirread.c, tif_dirinfo.c, tif_jpeg.c, tif_fax3.c, tif_jbig.c, tif_luv.c, tif_ojpeg.c, tif_pixarlog.c, tif_predict.c, tif_zip.c}: Finally fix bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1274 by introducing _TIFFMergeFieldInfo() returning integer error status instead of void in case of problems with field merging (e.g., if the field with such a tag already registered). TIFFMergeFieldInfo() in public API remains void. Use _TIFFMergeFieldInfo() everywhere and check returned value. 2007-04-07 Frank Warmerdam * contrib/addtiffo/tif_overview.c: Fix problems with odd sized output blocks in TIFF_DownSample_Subsampled() (bug 1542). 2007-04-06 Frank Warmerdam * libtiff/tif_jpeg.c: Changed JPEGInitializeLibJPEG() so that it will convert from decompressor to compressor or compress to decompress if required by the force arguments. This works around a problem in where the JPEGFixupTestSubsampling() may cause a decompressor to be setup on a directory when later a compressor is required with the force flag set. Occurs with the addtiffo program for instance. 2007-04-06 Andrey Kiselev * tools/tiffcrop.c, man/tiffcrop.1: Significant update in functionality from Richard Nolde. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1525 2007-03-28 Frank Warmerdam * libtiff/tif_fax3.c: "inline static" -> "static inline" for IRIC CC. 2007-03-17 Joris Van Damme * start of BigTIFF upgrade - CVS HEAD unstable until further notice 2007-03-07 Joris Van Damme * libtiff/tif_getimage.c: workaround for 'Fractional scanline' error reading OJPEG images with rowsperstrip that is not a multiple of vertical subsampling factor. This bug is mentioned in: http://bugzilla.remotesensing.org/show_bug.cgi?id=1390 http://www.asmail.be/msg0054766825.html 2007-03-07 Joris Van Damme * libtiff/tif_win32.c: made inclusion of windows.h unconditional * libtiff/tif_win32.c: replaced preprocessor indication for consiously unused arguments by standard C indication for the same 2007-02-27 Andrey Kiselev * libtiff/tif_dirread.c: Use uint32 type instead of tsize_t in byte counters in TIFFFetchData(). Should finally fix the issue http://bugzilla.remotesensing.org/show_bug.cgi?id=890 2007-02-24 Andrey Kiselev * tools/tiffset.c: Properly handle tags with TIFF_VARIABLE writecount. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1350 * libtiff/tif_dirread.c: Added special function to handle SubjectDistance EXIF tag as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1362 * tools/tiff2pdf.c: Do not assume inches when the resolution units do not specified. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1366 * tools/{tiffcp.c, tiffcrop.c}: Do not change RowsPerStrip value if it was set as infinite. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1368 * tools/tiffcrop.c, man/tiffcrop.1: New tiffcrop utility contributed by Richard Nolde. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1383 2007-02-22 Andrey Kiselev * libtiff/tif_dir.c: Workaround for incorrect TIFFs with ExtraSamples == 999 produced by Corel Draw. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1490 * libtiff/{tif_dirread.c, tif_read.c}: Type of the byte counters changed from tsize_t to uint32 to be able to work with data arrays larger than 2GB. Fixes bug http://bugzilla.remotesensing.org/show_bug.cgi?id=890 Idea submitted by Matt Hancher. 2007-01-31 Andrey Kiselev * tools/tif2rgba.c: This utility does not work properly on big-endian architectures. It was fixed including the bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1149 2007-01-15 Mateusz Loskot * Submitted libtiff port for Windows CE platform * libtiff/tif_config.wince.h: Added configuration header for WinCE. * libtiff/tiffconf.wince.h: Ported old configuration header for WinCE. * libtiff/tif_wince.c: Added WinCE-specific implementation of some functons from tif_win32.c. * libtiff/tif_win32.c: Disabled some functions already reimplemented in tif_wince.c. * libtiff/tiffiop.h, port/lfind.c: Added conditional include of some standard header files for Windows CE build. * tools/tiffinfoce.c: Ported tiffinfo utility for Windows CE. 2006-11-19 Frank Warmerdam * libtiff/tif_write.c: TIFFAppendToStrip() - clear sorted flag if we move a strip. http://bugzilla.remotesensing.org/show_bug.cgi?id=1359 2006-10-13 Andrey Kiselev * libtiff/tif_dir.c: More fixes for vulnerabilities, reported in Gentoo bug (): http://bugs.gentoo.org/show_bug.cgi?id=142383 * libtiff/contrib/dbs/xtiff/xtiff.c: Make xtiff utility compilable. Though it is still far from the state of being working and useful. 2006-10-12 Andrey Kiselev * libtiff/tif_fax3.c: Save the state of printdir codec dependent method. * libtiff/tif_jpeg.c: Save the state of printdir codec dependent method as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1273 * libtiff/tif_win32.c: Fixed problem with offset value manipulation as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1322 * libtiff/{tif_read.c, tif_jpeg.c, tif_dir.c}: More fixes for vulnerabilities, reported in Gentoo bug (): http://bugs.gentoo.org/show_bug.cgi?id=142383 2006-09-28 Andrey Kiselev * libtiff/{tif_fax3.c, tif_next.c, tif_pixarlog.c}: Fixed multiple vulnerabilities, as per Gentoo bug (): http://bugs.gentoo.org/show_bug.cgi?id=142383 2006-09-27 Frank Warmerdam * libtiff/tif_lzw.c, libtiff/tif_zip.c: Fixed problems with mixing encoding and decoding on the same read-write TIFF handle. The LZW code can now maintain encode and decode state at the same time. The ZIP code will switch back and forth as needed. http://bugzilla.remotesensing.org/show_bug.cgi?id=757 2006-09-20 Frank Warmerdam * libtiff: Rename config.h.vc and tif_config.h.vc to config.vc.h and tif_config.vc.h for easier identification by folks using an IDE. 2006-07-25 Frank Warmerdam * tif_msdos.c: Avoid handle leak for failed opens. c/o Thierry Pierron 2006-07-19 Frank Warmerdam * tif_dirwrite.c: take care not to flush out buffer of strip/tile data in _TIFFWriteDirectory if TIFF_BEENWRITING not set. Relates to bug report by Peng Gao with black strip at bottom of images. 2006-07-12 Frank Warmerdam * tif_dirwrite.c: make sure to use uint32 for wordcount in TIFFWriteNormanTag if writecount is VARIABLE2 for ASCII fields. It already seems to have been done for other field types. Needed for "tiffset" on files with geotiff ascii text. 2006-07-04 Bob Friesenhahn * {configure.ac, libtiff/tif_config.h.vc, libtiff/tif_jbig.c} (JBIGDecode): jbg_newlen is not available in older JBIG-KIT and its use does not appear to be required, so use it only when it is available. 2006-06-24 Andrey Kiselev * libtiff/tif_dirinfo.c: Added missed EXIF tag ColorSpace (40961). * libtiff/tif_dirread.c: Move IFD fetching code in the separate function TIFFFetchDirectory() avoiding code duplication in TIFFReadDirectory() and TIFFReadCustomDirectory(). 2006-06-19 Frank Warmerdam * tools/tiff2pdf.c: Fix handling of -q values. http://bugzilla.remotesensing.org/show_bug.cgi?id=587 2006-06-17 Frank Warmerdam * tif_readdir.c: Added case in EstimateStripByteCounts() for tiled files. Modified TIFFReadDirectory() to not invoke EstimateStripByteCounts() for case where entry 0 and 1 are unequal but one of them is zero. http://bugzilla.remotesensing.org/show_bug.cgi?id=1204 2006-06-08 Andrey Kiselev * libtiff/{tif_open.c, tif_dirread.c, tiffiop.h}: Move IFD looping checking code in the separate function TIFFCheckDirOffset(). * libtiff/tif_aux.c: Added _TIFFCheckRealloc() function. * tools/tiffcmp.c: Fixed floating point comparison logic as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1191 * libtiff/tif_fax3.c: Fixed problems in fax decoder as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1194 * tools/tiff2pdf.c: Fixed buffer overflow condition in t2p_write_pdf_string() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1196 2006-06-07 Andrey Kiselev * {configure, configure.ac, libtiff/tif_jbig.c, tools/tiffcp.c}: Added support for JBIG compression scheme (34661 code) contributed by Lee Howard. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=896 * configure, configure.ac: OJPEG support enabled by default. * contrib/ojpeg/: Removed. New OJPEG support does not need this patch. 2006-06-03 Bob Friesenhahn * libtiff/{tif_dirinfo.c, tif_print.c} : Fix crash in TIFFPrintDirectory(). Joris Van Damme authored the fix. 2006-04-21 Andrey Kiselev * tools/tiff2pdf.c: Unified line ending characters (always use '\n') as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1163 * README.vms, Makefile.am, configure.com, libtiff/{Makefile.am, tif_config.h-vms, tif_stream.cxx, tif_vms.c, tiffconf.h-vms}: Added support for OpenVMS by Alexey Chupahin, elvis_75@mail.ru. 2006-04-20 Andrey Kiselev * tools/{fax2ps.c, fax2tiff.c, ppm2tiff.c, ras2tiff.c, tiff2pdf.c}: Properly set the binary mode for stdin stream as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1141 * man/{bmp2tiff.1, fax2ps.1, fax2tiff.1, gif2tiff.1, ras2tiff.1, raw2tiff.1, rgb2ycbcr.1, sgi2tiff.1, tiff2bw.1, tiff2pdf.1, tiff2ps.1, tiff2rgba.1, tiffcmp.1, tiffcp.1, tiffdither.1, tiffdump.1, tiffgt.1, tiffset.1}: Improvements in page formatting as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1140 * html/tools.html, html/man/Makefile.am, tools/tiff2pdf.c: Fixed typos as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1139 2006-04-18 Frank Warmerdam * nmake.opt: use /EHsc for VS2005 compatibility. Also define _CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005. 2006-04-12 Joris Van Damme * libtiff/tif_getimage.c: Added support for planarconfig separate non-subsampled YCbCr (i.e. separate YCbCr with subsampling [1,1]) 2006-04-11 Joris Van Damme * libtiff/tif_getimage.c: Revision of all RGB(A) put routines - Conversion of unassociated alpha to associated alpha now done with more performant LUT, and calculation more correct - Conversion of 16bit data to 8bit data now done with more performant LUT, and calculation more correct - Bugfix of handling of 16bit RGB with unassociated alpha 2006-04-11 Joris Van Damme * libtiff/tif_getimage.c: - When there is no alpha, gtTileSeparate and gtStripSeparate allocated buffer for alpha strile and filled it, only to never read it back. Removed allocation and fill. - Minor rename of vars in gtTileSeparate and gtStripSeparate anticipating planned functionality extension 2006-04-08 Joris Van Damme * libtiff/tif_getimage.c: renamed pickTileContigCase to PickContigCase and pickTileSeparateCase to PickSeparateCase as both work on strips as well * libtiff/tif_getimage.c: moved img->get selection from TIFFRGBAImageBegin into PickContigCase and PickSeparateCase to create logical hook for planned functionality extension 2006-04-08 Joris Van Damme * libtiff/tif_ojpeg.c: resolved memory leak that was a consequence of inappropriate use of jpeg_abort instead of jpeg_destroy 2006-04-07 Joris Van Damme * libtiff/tif_getimage.c: replaced usage of TIFFScanlineSize in gtStripContig with TIFFNewScanlineSize so as to fix buggy behaviour on subsampled images - this ought to get sorted when we feel brave enough to replace TIFFScanlineSize alltogether * libtiff/tif_ojpeg.c: fixed bug in OJPEGReadSkip 2006-04-04 Joris Van Damme * libtiff/tiffio.h: added new type tstrile_t * libtiff/tif_dir.h: changed types of td_stripsperimage and td_nstrips to new tstrile_t, types of td_stripoffset and td_stripbytecount to toff_t* * libtiff/tif_ojpeg.c: totally new implementation * libtiff/tif_dirread.c: added several hacks to suit new support of OJPEG * libtiff/tif_getimage.c: removed TIFFTAG_JPEGCOLORMODE handling of OJPEG images in favor of tif_getimage.c native handling of YCbCr and desubsampling 2006-03-29 Frank Warmerdam * libtiff/tif_jpeg.c: JPEGVSetField() so that altering the photometric interpretation causes the "upsampled" flag to be recomputed. Fixes peculiar bug where photometric flag had to be set before jpegcolormode flag. 2006-03-25 Joris Van Damme * libtiff/tif_jpeg.c: strip size related bugfix in encode raw * libtiff/tif_strip.c: temporarilly added two new versions of TIFFScanlineSize - TIFFNewScanlineSize: proposed new version, after all related issues and side-effects are sorted out - TIFFOldScanlineSize: old version, from prior to 2006-03-21 change This needs further sorting out. 2006-03-25 Joris Van Damme * contrib/addtiffo/tif_ovrcache.c: bugfix to correctly pass size of last truncated strip data to TIFFWriteEncodedStrip 2006-03-25 Joris Van Damme * libtiff/{tif_jpeg.c, tif_strip.c}: bugfix of tif_jpeg decode raw 2006-03-25 Joris Van Damme * libtiff/tif_getimage.c: bugfix/rewrite of putcontig8bitYCbCr22tile * libtiff/tif_getimage.c: added putcontig8bitYCbCr12tile * libtiff/tif_read.c: added support for new TIFF_NOREADRAW flag to prepare the path for new tif_ojpeg.c 2006-03-23 Andrey Kiselev * libtiff 3.8.2 released. * tools/Makefile.am: Use runtime paths linker flags when rpath option enabled. 2006-03-21 Andrey Kiselev * libtiff/libtiff.def: Added missed exports as per bug http://bugzilla.remotesensing.org/attachment.cgi?id=337 * contrib/addtiffo/Makefile.vc, libtiff/Makefile.vc, port/Makefile.vc, tools/Makefile.vc: Makefiles improvements as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1128 * nmake.opt libtiff/{tif_config.h.vc, tif_unix.c, tiffio.h}, tools/{fax2ps.c, fax2tiff.c, tiff2pdf.c}: Fixed win32 I/O functions usage as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1127 * libtiff/tif_strip.c: Take subsampling in account when calculating TIFFScanlineSize(). * tools/tiffcp.c: Do not set RowsPerStrip bigger than image length. 2006-03-17 Andrey Kiselev * tools/fax2tiff.c: Fixed wrong TIFFerror() invocations as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1125 * tools/fax2ps.c: Fixed reading the input stream from stdin as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1124 2006-03-16 Andrey Kiselev * libtiff/tiffiop.h: Added decalration for _TIFFSetDefaultCompressionState(). * libtiff/{tif_jpeg.c, tif_fax3.c, tif_zip.c, tif_pixarlog.c, tif_lzw.c, tif_luv.c}: Use _TIFFSetDefaultCompressionState() in all codec cleanup methods. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1120 2006-03-15 Andrey Kiselev * libtiff/tif_jpeg.c: Do not cleanup codec state in TIFFInitJPEG(). As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1119 * tools/raw2tiff.c: Do not set RowsPerStrip larger than ImageLength. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1110 * libtiff/tiffiop.h: dblparam_t typedef removed; GLOBALDATA macro removed; move here the STRIP_SIZE_DEFAULT macro definition. * libtiff/{tif_dirread.c, tif_strip.c}: Removed STRIP_SIZE_DEFAULT macro definition. * libtiff/tif_dir.c: Use double type instead of dblparam_t. 2006-03-14 Andrey Kiselev * libtiff/tif_dirread.c: Do not check the PlanarConfig tag presence in TIFFReadDirectory, because it is always set at the start of function and we allow TIFFs without that tag set. 2005-03-13 Andrey Kiselev * libtiff 3.8.1 released. 2006-03-07 Andrey Kiselev * libtiff/tif_dirread.c: Fixed error reporting in TIFFFetchAnyArray() function as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1102 * libtiff/tif_dirread.c: More wise check for integer overflow condition as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1102 * libtiff/{tif_jpeg.c, tif_pixarlog.c, tif_fax3.c, tif_zip.c}: Properly restore setfield/getfield methods in cleanup functions. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1102 2006-03-03 Andrey Kiselev * libtiff/{tif_predict.c, tif_predict.h}: Added new function TIFFPredictorCleanup() to restore parent decode/encode/field methods. * libtiff/{tif_lzw.c, tif_pixarlog.c, tif_zip.c}: Use TIFFPredictorCleanup() in codec cleanup methods. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1102 * libtiff/tif_dirread.c: Fixed integer overflow condition in TIFFFetchData() function. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1102 2006-03-01 Andrey Kiselev * libtiff/tif_ojpeg.c: Set the ReferenceBlackWhite with the TIFFSetField() method, not directly. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1043 * tools/ppm2tiff.c: Added support for PBM files as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1044 2006-02-27 Andrey Kiselev * libtiff/tif_write.c: Small code rearrangement in TIFFWriteScanline() to avoid crash as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1081. 2006-02-26 Andrey Kiselev * tools/tiff2pdf.c: Functions t2p_sample_rgbaa_to_rgb() and t2p_sample_rgba_to_rgb() was used in place of each other, that was resulted in problems with RGBA images with associated alpha. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1097 2006-02-23 Andrey Kiselev * libtiff/tif_dirwrite.c: Properly write TIFFTAG_DOTRANGE tag as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1088. * libtiff/tif_print.c: Properly read TIFFTAG_PAGENUMBER, TIFFTAG_HALFTONEHINTS, TIFFTAG_YCBCRSUBSAMPLING and TIFFTAG_DOTRANGE tags as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1088. * tools/tiff2ps.c: Properly scale all the pages when converting multipage TIFF with /width/height/center options set. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1080 2006-02-15 Andrey Kiselev * tools/tiff2pdf.c: Do not create output file until all option checks will be done. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1072 * tools/bmp2tiff.c: Added ability to create multipage TIFFs from the list of input files as per bug: http://bugzilla.remotesensing.org/show_bug.cgi?id=1077 2006-02-09 Andrey Kiselev * libtiff/tif_tile.c: Fix error reporting in TIFFCheckTile() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1063. * tools/tiffgt.c: Avoid crashing in case of image unsupported by TIFFRGBAImage interface. * libtiff/tif_color.c: Avoid overflow in case of wrong input as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1065. 2006-02-07 Frank Warmerdam * tools/tiff2pdf.c: Fixed support for non-YCbCr encoded JPEG compressed TIFF files, per submission from Dan Cobra. 2006-02-07 Andrey Kiselev * libtiff/{tif_dirread.c, tif_packbits.c, tif_win32.c}: Properly cast values to avoid warnings. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1033. * libtiff/tif_dirinfo.c: Use TIFF_NOTYPE instead of 0 when appropriate. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1033. * libtiff/tif_aux.c: Fixed type of temporary variable in _TIFFCheckMalloc() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1033. 2006-02-06 Andrey Kiselev * libtiff/tif_aux.c: Return static array when fetching default YCbCrCoefficients (another problem, reported a the http://bugzilla.remotesensing.org/show_bug.cgi?id=1029 entry). 2006-02-03 Andrey Kiselev * libtiff/tif_dir.c: Special handling for PageNumber, HalftoneHints, YCbCrSubsampling and DotRange tags as per bugs http://bugzilla.remotesensing.org/show_bug.cgi?id=1029 http://bugzilla.remotesensing.org/show_bug.cgi?id=1034 * libtiff/tif_dirread.c: Use _TIFFGetExifFieldInfo() instead of _TIFFGetFieldInfo() in TIFFReadEXIFDirectory() call as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1026. 2006-01-23 Andrey Kiselev * libtool related stuff updated from the 2.1a branch. 2006-01-11 Frank Warmerdam * tools/bmp2tiff,pal2rgb,ppm2tiff,ras2tiff,raw2tiff,sgi2tiff, tiff2bw,tiffcp: Fixed jpeg option processing so -c jpeg:r:50 works properly as per bug: http://bugzilla.remotesensing.org/show_bug.cgi?id=1025 2006-01-09 Bob Friesenhahn * configure.ac: Fix with_default_strip_size comparison as reported by Norihiko Murase. 2006-01-08 Bob Friesenhahn * test/Makefile.am (LIBTIFF): Due to linking against libtiff incorrectly, tests were not actually testing the uninstalled libtiff. Now they are. 2006-01-04 Andrey Kiselev * libtiff/tif_dirinfo.c: Change definitions for TIFFTAG_ICCPROFILE, TIFFTAG_PHOTOSHOP, TIFFTAG_RICHTIFFIPTC, TIFFTAG_XMLPACKET: readcount should be uint32 value. 2006-01-02 Bob Friesenhahn * html/man/Makefile.am (htmldoc): Fix htmldoc rule so that it can be used if build directory is not the same as source directory. * man/{TIFFGetField.3tiff, TIFFSetField.3tiff}: Documented TIFFTAG_PHOTOSHOP, TIFFTAG_RICHTIFFIPTC, and TIFFTAG_XMLPACKET, and re-sorted tag names in alphabetical order. 2005-12-29 Andrey Kiselev * libtiff 3.8.0 released. 2005-12-28 Bob Friesenhahn * tools/bmp2tiff.c (main): Fixed warning regarding returning inconsistent types from a condition. * tools/tiffcmp.c (CheckLongTag): Eliminate warning due to printf format. * tools/bmp2tiff.c: Reduce compilation warnings on big-endian CPUs. 2005-12-28 Joris Van Damme * html/{index.html, support.hml, libtiff.html}: Cleaned up HTML 2005-12-27 Andrey Kiselev * libtiff/tiffio.h: Added VC_EXTRALEAN definition before including windows.h, to reduce the compile time. 2005-12-26 Bob Friesenhahn * libtiff/tif_jpeg.c: Improve compilation under MinGW. 2005-12-26 Andrey Kiselev * libtiff/{tif_dir.c, tif_dir.h, tif_dirread.c, tif_dirinfo.c}: tiffFieldInfo and exifFieldInfo arrays definitions moved back to tif_dirinfo.c; added _TIFFGetFieldInfo() and _TIFFGetExifFieldInfo() private functions to retrieve FieldInfo arrays. 2005-12-24 Bob Friesenhahn * html/build.html: Added some additional instructions for when building using MSVC under Windows. Also fixed two HTML syntax errors and used HTML Tidy to tidy up the HTML syntax and formatting. 2005-12-24 Andrey Kiselev * libtiff/{tif_aux.c, tif_dir.c, tif_dir.h, tif_dirwrite.c, tif_print.c, tif_getimage.c}: Make InkSet, NumberOfInks, DotRange and StoNits tags custom. 2005-12-23 Andrey Kiselev * libtiff/{tif_aux.c, tif_dir.c, tif_dir.h, tif_print.c}: Make WhitePoint tag custom. * libtiff/{tif_dir.h, tiff.h}: More EXIF tags added. 2005-12-23 Joris Van Damme * libtiff/tiffio.h: fixed typo that potentially resulted in redefininition of USE_WIN32_FILEIO * libtiff/*: Added more 'dual-mode' error handling: Done TIFFWarning calls in core LibTiff. 2005-12-21 Andrey Kiselev * libtiff/{tif_dir.c, tif_dir.h, tif_print.c}: Make RichTIFFIPTC, Photoshop and ICCProfile tags custom. 2005-12-21 Joris Van Damme * libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling newer code to get context indicator in error handler and still remain compatible with older code: Done TIFFError calls everywhere except in tools 2005-12-20 Andrey Kiselev * tools/tiffcp.c: Added many error reporting messages; fixed integer overflow as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=789 2005-12-16 Frank Warmerdam * contrib/addtiffo/*: Major upgrade by Joris to support subsampled YCbCr images in jpeg compressed TIFF files. 2005-12-14 Andrey Kiselev * tools/tiffcp.c: Return non-zero status when reading fails (again). 2005-12-13 Andrey Kiselev * tools/tiffcp.c: Return non-zero status when reading fails. 2005-12-12 Andrey Kiselev * libtiff/{tif_dir.h, tiff.h}: Added more EXIF tags. 2005-12-09 Andrey Kiselev * libtiff/{tif_dir.c, tif_dir.h, tif_print.c}: Make XMLPacket tag custom. * tools/tiffinfo.c: Print EXIF directory contents if exist. * libtiff/tiff.h: Few EXIF tag numbers added. * libtiff/{tif_dirinfo.c, tif_dirread.c, tif_dir.h, tif_dir.c, tiffio.h}: Preliminary support to read custom directories. New functions: TIFFReadCustomDirectory() and TIFFReadEXIFDirectory(). 2005-12-07 Andrey Kiselev * libtiff/{tif_dirinfo.c, tif_dirread.c, tif_dir.h, tif_dir.c}: More work to implement custom directory read support. * libtiff/{tif_aux.c, tif_dirinfo.c, tif_dirread.c, tif_dir.h, tif_dir.c, tif_print.c}: Make YCbCrCoefficients and ReferenceBlackWhite tags custom. 2005-12-05 Andrey Kiselev * libtiff/tif_dirread.c: One more workaround for broken StripByteCounts tag. Handle the case when StripByteCounts array filled with completely wrong values. 2005-11-30 Andrey Kiselev * libtiff/tif_dirinfo.c: Release file descriptor in case of failure in the TIFFOpenW() function as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1003 * libtiff/tif_dirinfo.c: Correctly yse bsearch() and lfind() functions as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1008 2005-11-20 Frank Warmerdam * tif_open.c, tiff.h, tiffdump.c: Incorporate preliminary support for MS MDI format. http://bugzilla.remotesensing.org/show_bug.cgi?id=1002 * .cvsignore: many files added, and a few update according to suggestion of Brad HArds on tiff mailing list. 2005-11-03 Frank Warmerdam * libtiff/libtiff.def, tiffiop.h, tiffio.h: Made TIFFFreeDirectory public. 2005-10-31 Andrey Kiselev * tools/fax2tiff.c: Properly calculate sizes of temporary arrays as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=943 * tools/fax2tiff.c: Added option '-r' to set RowsPerStrip parameter as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=944 * tools/tiffdump.c: Fixed typeshift and typemask arrays initialization problem as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=946 * tools/bmp2tiff.c: Fixed possible integer overflow error as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=965 * libtiff/tif_dirinfo.c: Make XResolution, YResolution and ResolutionUnit tags modifiable during write process. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=977 * tools/tiffsplit.c: Copy fax related fields over splitted parts as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=983 2005-10-21 Frank Warmerdam * tif_dirread.c: Don't try and split single strips into "0" strips in ChopUpSingleUncompressedStrip. This happens in some degenerate cases (like 1x1 files with stripbytecounts==0 (gtsmall.jp2 embed tiff) 2005-10-20 Joris Van Damme * tif_fax3.c: changed 'at scanline ...' style warning/errors with incorrect use of tif_row, to 'at line ... of strip/tile ...' style 2005-10-15 Frank Warmerdam * tif_write.c: fixed setting of planarconfig as per bug report on the mailing list from Joris. 2005-10-07 Andrey Kiselev * configure.ac, configure, nmake.opt, libtiff/{tif_config.h, tif_dirread.c}: Make the default strip size configurable via the --with-default-strip-size and STRIP_SIZE_DEFAULT options. 2005-09-30 Bob Friesenhahn * html/support.html: Fixed link to documentation on Greg Ward's LogLuv TIFF format. 2005-09-28 Andrey Kiselev * tools/tiffdump.c: Fixed crash when reading malformed tags. 2005-09-20 Andrey Kiselev * tools/tiff2pdf.c: Added missed 'break' statement as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=932 2005-09-12 Andrey Kiselev * libtiff 3.7.4 released. * {configure, configure.ac, Makefile.am, autogen.sh}: Applied patch from Patrick Welche (all scripts moved in the 'config' and 'm4' directories). 2005-09-12 Frank Warmerdam * libtiff/tif_open.c: reintroduce seek to avoid problem on solaris. 2005-09-05 Frank Warmerdam * libtiff/tif_dir.c: When prefreeing tv->value in TIFFSetFieldV also set it to NULL to avoid double free when re-setting custom string fields as per: http://bugzilla.remotesensing.org/show_bug.cgi?id=922 2005-08-12 Frank Warmerdam * libtiff/tif_print.c: avoid signed/unsigned warning. * libtiff/tif_dirread.c: removed unused variable. 2005-07-30 Frank Warmerdam * libtiff/tif_dir.c: Fixed up support for swapping "double complex" values (128 bits as 2 64 bits doubles). GDAL gcore tests now pass on bigendian (macosx) system. 2005-07-28 Andrey Kiselev * libtiff/{tif_aux.c, tif_dirread.c, tif_fax3.c, tiffiop.h}: Rename CheckMalloc() function to _TIFFCheckMalloc() and make it available globally as an internal helper routine. 2005-07-27 Andrey Kiselev * libtiff/tif_dir.c: More improvements in the "pass by value" part of the custom tags handling code. 2005-07-26 Andrey Kiselev * libtiff/{tif_dirread.c, tif_dirinfo.c}: Do not upcast BYTEs to SHORTs in the TIFFFetchByteArray(). Remove TIFFFetchExtraSamples() function, use TIFFFetchNormalTag() instead as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=831 Remove TIFFFetchExtraSamples() function, use TIFFFetchNormalTag() instead. * libtiff/tiffconf.h.in: One more attempt to fix the AIX bug http://bugzilla.remotesensing.org/show_bug.cgi?id=39 2005-07-25 Andrey Kiselev * libtiff/tif_print.c: Fixed printing of the BYTE and SBYTE arrays. * tools/tiffdump.c: Added support for TIFF_IFD datatype. 2005-07-21 Andrey Kiselev * libtiff/tif_write.c: Do not check the PlanarConfiguration field in the TIFFWriteCheck() function in case of single band images (as per TIFF spec). 2005-07-12 Andrey Kiselev * SConstruct, libtiff/SConstruct: Added the first very preliminary support for SCons software building tool (http://www.scons.org/). This is experimental infrastructure and it will exist along with the autotools mechanics. 2005-07-07 Andrey Kiselev * port/{getopt.c, strcasecmp.c, strtoul.c}: Update modules from the NetBSD source tree (the old 4-clause BSD license changed to the new 3-clause one). * configure.ac, port/lfind.c, libtiff/tiffiop.h: Added lfind() replacement module. * port/dummy.c: Make the dummy function static. 2005-07-06 Andrey Kiselev * tools/tiffcp.c: Fixed WhitePoint tag copying. * libtiff/{tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_print.c}: Make FieldOfViewCotangent, MatrixWorldToScreen, MatrixWorldToCamera, ImageFullWidth, ImageFullLength and PrimaryChromaticities tags custom. 2005-07-04 Andrey Kiselev * libtiff 3.7.3 released. * configure, configure.ac: Do not use empty -R option when linking with --enable-rpath. 2005-07-01 Andrey Kiselev * libtiff/{tiffiop.h, tif_open.c}: Added open option 'h' to avoid reading the first IFD when needed. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=875 * libtiff/tif_color.c: Better use of TIFFmin() macro to avoid side effects. 2005-06-23 Andrey Kiselev * tools/tiff2pdf.c: Print two characters per loop in the t2p_write_pdf_trailer(). As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=594 * tools/tiffgt.c: Use MacOS X OpenGL framework when appropriate. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=844 * acinclude.m4: Updated to latest OpenGL test macros versions. * libtiff/tiff.h: Use correct int size on Sparc 64bit/Sun compiler platform. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=855 2005-06-14 Andrey Kiselev * libtiff/tif_dirinfo.c: Added support for ClipPath, XClipPathUnits and YClipPathUnits tags. 2005-06-07 Andrey Kiselev * contrib/addtiffo/tif_ovrcache.c: Properly extract tile/strip size; use pixel sized shift in contigous case. 2005-06-06 Andrey Kiselev * contrib/addtiffo/{tif_overview.c, tif_ovrcache.c, tif_ovrcache.h}: Make overviews working for contiguos images. 2005-06-03 Andrey Kiselev * libtiff/tif_open.c: Replace runtime endianess check with the compile time one. * libtiff/tif_predict.c: Floating point predictor now works on big-endian hosts. 2005-06-01 Andrey Kiselev * libtiff/tif_dir.c: Use _TIFFsetString() function when read custom ASCII values. * libtiff/{tif_dirinfo.c, tif_dir.h, tif_dir.c, tif_print.c}: Make DocumentName, Artist, HostComputer, ImageDescription, Make, Model, Copyright, DateTime, PageName, TextureFormat, TextureWrapModes and TargetPrinter tags custom. * libtiff/tif_jpeg.c: Cleanup the codec state depending on TIFF_CODERSETUP flag (to fix memry leaks). * libtiff/tif_jpeg.c: Initialize JPEGTables array with zero after allocating. 2005-05-26 Andrey Kiselev * configure.ac, libtiff/Makefile.am: Added workaround for OpenBSD/MirOS soname problem as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=838 * libtiff/tif_dirwrite.c: Use tdir_count when calling TIFFCvtNativeToIEEEDouble() in the TIFFWriteDoubleArray() function as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=845 2005-05-25 Andrey Kiselev * tools/ppm2tiff.c: Fixed format string when read PPM file header with the fscanf() function. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=861 * libtiff/{tif_dirinfo.c, tif_print.c}: TIFFFetchByteArray() returns uint16 array when fetching the BYTE and SBYTE filds, so we should consider result as pointer to uint16 array and not as array of chars. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=831 * libtiff/tif_dir.c: More efficient custom tags retrieval as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=830 * libtiff/tif_win32.c: Use FILE_SHARE_READ | FILE_SHARE_WRITE share mode in CreateFile() call as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=829 * libtiff/Makefile.am: Fixed parallel compilation of the libtiff and libtiffxx libraries as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=826 * contrib/addtiffo/{tif_overview.c, tif_ovrcache.h}: Sinchronized with GDAL. 2005-05-23 Frank Warmerdam * libtiff/tif_jpeg.c: Substantial fix for addtiffo problems with JPEG encoded TIFF files. Pre-allocate lots of space for jpegtables in directory. 2005-05-22 Frank Warmerdam * libtiff/tif_dirread.c: Changed the code that computes stripbytecount[0] if it appears bogus to ignore if stripoffset[0] is zero. This is a common case with GDAL indicating a "null" tile/strip. 2005-05-17 Andrey Kiselev * tools/tiffsplit.c: Check for JPEGTables tag presence before copying. 2005-05-06 Frank Warmerdam * libtiff/tif_dirread.c: Applied similar change to TIFFFetchPerSampleLongs and TIFFFetchPerSampleAnys. http://bugzilla.remotesensing.org/show_bug.cgi?id=843 * libtiff/tif_jpeg.c: added LIB_JPEG_MK1 support in JPEGDecodeRaw(). 2005-05-06 Andrey Kiselev * tools/tiff2pdfr.c, man/tiff2pdf.1: Calculate the tile width properly; added new option '-b' to use interpolation in output PDF files (Bruno Ledoux). 2005-05-05 Frank Warmerdam * libtiff/tif_dirread.c: Ensure that broken files with too many values in PerSampleShorts work ok instead of crashing. http://bugzilla.remotesensing.org/show_bug.cgi?id=843 2005-04-27 Andrey Kiselev * tools/tiffdither.c: Copy the PhotometricInterpretation tag from the input file. 2005-04-15 Andrey Kiselev * libtiff/tif_predict.c: Added ability to encode floating point predictor, as per TIFF Technical Note 3. 2005-04-14 Andrey Kiselev * libtiff/{tif_predict.h, tif_predict.c}: Added ability to decode floating point predictor, as per TIFF Technical Note 3. 2005-04-13 Andrey Kiselev * libtiff/{tiffio.h, tiffiop.h, tif_dir.c, tif_read.c, tif_swab.c}: Added _TIFFSwab24BitData() and TIFFSwabArrayOfLong() functions used to swap 24-bit floating point values. * libtiff/tiff.h: Added predictor constants. 2005-04-08 Andrey Kiselev * libtiff/{tiffiop.h, tif_dir.c}: Use uint32 type for appropriate values in _TIFFVSetField() function. Inspired by the bug http://bugzilla.remotesensing.org/show_bug.cgi?id=816 * man/TIFFSetField.3tiff: Fixed definition of the TIFFTAG_INKNAMES tag as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=816 2005-03-30 Andrey Kiselev * libtiff/tif_open.c: Do not read header in case the output file should be truncated (Ron). * libtiff/{tif_dirinfo.c, tif_config.h.vc}: Use lfind() instead of bsearch() in _TIFFFindFieldInfoByName() function (Ron). * libtiff/{tiff.h, tif_dirinfo.c}: Fixes in EXIF tag ordering (Ron). 2005-03-22 Andrey Kiselev * configure.ac, libtiff/Makefile.am: Use libtool machinery to pass rpath option. 2005-03-21 Andrey Kiselev * libtiff/{tif_dir.c, tif_print.c}: Handle all data types in custom tags. 2005-03-18 Andrey Kiselev * libtiff/dirinfo.c: Added DNG tags. * libtiff/{tif_dir.c, tif_print.c}: More improvements in custom tag handling code. * libtiff/tiff.h: More comments; added missed DNG tag (LensInfo); added DNG 1.1.0.0 tags. * tools/tif2pdf.c: Fixed problem with alpha channel handling as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=794 * man/TIFFGetField.3tiff: Add a note about autoregistered tags. 2005-03-17 Andrey Kiselev * nmake.opt: Build with Win32 CRT library by default. * tools/tiff2ps.c: Fixed typo in page size handling code. * libtiff/{tif_dir.c, tif_print.c}: Support for custom tags, passed by value. * libtiff/{tiff.h, tif_dirinfo.c, tiffiop.h}: Added EXIF related tags. 2005-03-15 Andrey Kiselev * libtiff 3.7.2 released. 2005-03-09 Andrey Kiselev * tools/tiffcmp.c: Added ability to compare the 32-bit integer and floating point data; complain on unsupported bit depths. 2005-03-05 Andrey Kiselev * tif_stream.cxx: Use ios namespace instead of ios_base to support GCC 2.95. * libtiff/{tiff.h, tif_fax3.tif, tif_jpeg.c}: Applied correct patch from Lee Howard for HylaFax DCS tag (see http://bugzilla.remotesensing.org/show_bug.cgi?id=771) 2005-03-04 Andrey Kiselev * configure, configure.ac: Use -rpath option instead of -R as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=732 * libtiff/{tiff.h, tif_fax3.tif, tif_jpeg.c}: Applied patch from Lee Howard to support a new tag TIFFTAG_FAXDCS (34911) used in HylaFax software. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=771 * nmake.opt, html/build.html: Add more comments, change the config file organization a bit as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=764 * tools/tiffcmp.c: Use properly sized buffer in short arrays comparison as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=785 2005-03-03 Andrey Kiselev * libtiff/tif_dirread.c: More logic to guess missed strip size as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=705 * tools/fax2ps.c: Replace insecure mktemp() function with the tmpfile() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=786 2005-02-04 Andrey Kiselev * libtiff/tiff.h: Changed the int8 definition to be always signed char as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=727 * libtiff/tiffio.h: Move TIFFOpenW() function into the extern "C"{} block as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=763 2005-02-03 Bob Friesenhahn * tools/tiffgt.c: Fix problem on big-endian CPUs so that images display more correctly. Images display brighter than they should on a Sun workstation. 2005-02-03 Andrey Kiselev * libtiff/tif_dirread.c: Estimate strip size in case of wrong or suspicious values in the tags. As per bugs http://bugzilla.remotesensing.org/show_bug.cgi?id=705 and http://bugzilla.remotesensing.org/show_bug.cgi?id=320 * tools/tiff2ps.c: Fixed problem with page sizes as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=742 2005-01-31 Bob Friesenhahn * libtiff/tiff.h (TIFFTAG_TILEWIDTH): Corrected description. (TIFFTAG_TILELENGTH): Corrected description. 2005-01-30 Andrey Kiselev * configure.ac: Fixes for --with-docdir option as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=759 * libtiff/tif_open.c: Remove unnesessary TIFFSeekFile() call as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=756 * libtiff/tif_stream.cxx: Fixes for C++ stream interface from Michael Rinne and Edward Lam. 2005-01-15 Andrey Kiselev * configure.ac: Make the documentation directory location configurable via the --with-docdir option (as suggested by Jeremy C. Reed). * libtiff/tif_color.c: Use double as the second argument of pow() function in TIFFCIELabToRGBInit(). As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=741 * libtiff/tif_pixarlog.c: Avoid warnings when converting float to integer as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=740 * libtiff/tif_getimage.c: Always fill the error message buffer in TIFFRGBAImageBegin() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=739 2005-01-12 Andrey Kiselev * libtiff/tif_jpeg.c: Added ability to read/write the fax specific TIFFTAG_FAXRECVPARAMS, TIFFTAG_FAXSUBADDRESS and TIFFTAG_FAXRECVTIME tags as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=736 * libtiff/tif_win32.c: Fixed message formatting in functions Win32WarningHandler() and Win32ErrorHandler() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=735 * tools/tiff2ps.c: Interpret the -w and -h options independently. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=689 2005-01-11 Andrey Kiselev * libtiff/tiffio.h: Move the color conversion routines in the 'extern "C"' section as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=727 * libtiff/tiff.h: Restore back the workaround for AIX Visual Age C compiler to avoid double definition of BSD types as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=39 * libtiff/Makefile.am: Place the C++ stream API in the separate library called libtiffxx to avoid unneeded dependencies. Probably there will be more C++ API in the future. As per bugs http://bugzilla.remotesensing.org/show_bug.cgi?id=733 and http://bugzilla.remotesensing.org/show_bug.cgi?id=730 2005-01-05 Andrey Kiselev * tools/tiffdump.c: Fixed problem when read broken TIFFs with the wrong tag counts (Dmitry V. Levin, Martin Pitt). * configure.ac: Replace --disable-c++ with the --disable-cxx option as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=730 2004-12-25 Andrey Kiselev * libtiff/tif_getimage.c: More fixes for multiple-alpha-channelled RGB-images as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=713 * tools/tiffset.c: Convert character option to integer value as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=725 2004-12-20 Andrey Kiselev * libtiff 3.7.1 released. * html/tiffset.1.html: Add missed manual page as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=678 * libtiff/tiff.h: Revert back libtiff data type definitions as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=687 2004-12-19 Andrey Kiselev * libtiff/tif_dirread.c: Do not forget about TIFF_VARIABLE2 when checking for tag count in TIFFReadDirectory() function. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=713 * libtiff/{tif_dirread.c, tif_fax3.c}: More argument checking in CheckMallock() function. * libtiff/tif_getimage.c: Support for multiple-alpha-channelled RGB-images as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=718 2004-12-15 Frank Warmerdam * libtiff/tif_getimage.c: #define A1 bracketing for clean build on SunPro compiler. 2004-12-11 Bob Friesenhahn * autogen.sh: aclocal and autoheader should be executed after libtoolize. Also add '-I .' to aclocal invocation to check current directory for macros. 2004-12-10 Andrey Kiselev * libtiff/tif_dirwrite.c: Always write TIFFTAG_SUBIFD using LONG type as per bugs http://bugzilla.remotesensing.org/show_bug.cgi?id=703 and http://bugzilla.remotesensing.org/show_bug.cgi?id=704 2004-12-04 Andrey Kiselev * nmake.opt: Link with the user32.lib in windowed mode. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=697 * libtiff/tif_win32.c: Use char* strings instead of TCHAR in windowed mode as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=697 * libtiff/tif_config.in.vc: Removed unneded definitions for read/open/close/lseek functions to fix the http://bugzilla.remotesensing.org/show_bug.cgi?id=680 2004-12-03 Andrey Kiselev * libtiff/{tif_dir.c, tif_dirread.c}: Remove TIFFReassignTagToIgnore() call from the TIFFReadDirectory() function. TIFFReassignTagToIgnore must be removed in the future, as it was never used properly. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=692 2004-11-30 Bob Friesenhahn * libtiff/tif_jpeg.c: Added a work-around in order to allow compilation with the heavily modified version of libjpeg delivered with Cygwin. 2004-11-29 Andrey Kiselev * libtiff/tif_dir.c: Properly handle tags, which have the uint32 counts. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=693 * tools/fax2ps.c: Be able to extract the first page (#0). As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=690 2004-11-28 Andrey Kiselev * libtiff/tif_unix.c: Make UNIX module compilable (and usable) on Windows. * nmake.opt: Add missed DLLNAME variable. 2004-11-26 Frank Warmerdam * libtiff/makefile.vc: make it easier to rename the libtiff DLL. 2004-11-24 Andrey Kiselev * man/libtiff.3tiff: Improvements in the "LIST OF ROUTINES" table as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=545 * man/tiffset.1: Added manual page for tiffset tool written by Jay Berkenbilt. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=678 2004-11-23 Frank Warmerdam * libtiff/tif_error.c: fixed TIFFerror call to be TIFFError. 2004-11-21 Frank Warmerdam * html/document.html: Updated Adobe web links as per email from Joris. 2004-11-21 Andrey Kiselev * libtiff/{tiffio.hxx, tiffio.h}: C++ stream interface moved to new file tiffio.hxx. We don't have any C++ in tiffio.h, those who want to use C++ streams should #include . 2004-11-13 Andrey Kiselev * libtiff/tiff.h: Added Adobe DNG tags. * libtiff/tif_win32.c: Typo fixed. * libtiff/{tif_stream.cxx, tiffio.h}: C++ stream interface updated to be compliant with the latest standard. Appropriate additions in makefiles now completed. 2004-11-11 Andrey Kiselev * tools/tiffset.c, libtiff/tif_dirinfo.c: Properly handle the different tag types. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=600 2004-11-10 Andrey Kiselev * libtiff/tif_aux.c: Set the appropriate ReferenceBlackWhite array for YCbCr image which lacks that tag (noted by Hans Petter Selasky). 2004-11-09 Andrey Kiselev * libtiff/tif_color.c: Division by zero fixed (Hans Petter Selasky). 2004-11-07 Andrey Kiselev * libtiff/{tif_stream.cxx, tiffio.h}: Added C++ stream interface contributed by Edward Lam (see http://bugzilla.remotesensing.org/show_bug.cgi?id=654 for details). Though no changes in any makefiles yet. 2004-11-05 Frank Warmerdam * libtiff/tif_open.c: Removed close() in TIFFClientOpen() if file is bad. This is the callers responsibility. http://bugzilla.remotesensing.org/show_bug.cgi?id=651 2004-11-05 Andrey Kiselev * libtiff/{tiffio.h, tif_win32.c, libtiff.def}: Added TIFFOpenW() function to work with the double byte strings (used to represent filenames in some locales). As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=625 * libtiff/tif_dirread.c: Fixed problem when fetching BitsPerSample and Compression tags of type LONG from broken TIFFS as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=662 * libtiff/tif_dirinfo.c: Fixed definition for TIFFTAG_RICHTIFFIPTC, the writecount should have uint32 type. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=662 * libtiff/tif_write.c: Fixed wrong if() statement in TIFFAppendToStrip() function as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=660 2004-11-04 Andrey Kiselev * libtiff/tif_dirinfo.c: Change definition for TIFFTAG_EXTRASAMPLES field. The caller should supply a count when setting this field. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=648 * libtiff/{tif_jpeg.c, tif_ojpeg.c}: TIFFTAG_JPEGTABLES should have uint32 count. Use this type everywhere. 2004-11-03 Frank Warmerdam * libtiff/tif_next.c: avoid use of u_long and u_char types. Bug 653. 2004-11-02 Frank Warmerdam * tools/tiff2rgba.c: removed extra newlines in usage message. 2004-10-30 Andrey Kiselev * libtiff/tif_dirwrite.c: Improvements in tag writing code. * tools/tiff2ps.c: Fixed wrong variable data type when read Position tags (Tristan Hill). 2004-10-30 Frank Warmerdam * libtiff/tiffiop.h: added fallback definition of assert() if we don't have assert.h. 2004-10-29 Andrey Kiselev * libtiff/tif_fax3.c: Fixed case with the wrong decode routines choosing when the incorrect Group4Options tag set. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=323 * libtiff/tif_dirwrite.c: Fixed problem with passing count variable of wrong type when writing the TIFF_BYTE/TIFF_SBYTE tags in TIFFWriteNormalTag(). 2004-10-28 Andrey Kiselev * tools/tiff2ps.c: Fixed wrong variable data type when read Resolution tags (Peter Fales). * tools/{bmp2tiff.c, raw2tiff.c}: Get rid of stream I/O functions. 2004-10-28 Frank Warmerdam * tools/tiff2pdf.c: added casts to avoid warnings. * libtiff/libtiff.def: Added several more entry points required to link fax2tiff.c against the DLL on windows. 2004-10-27 Andrey Kiselev * configure, configure.ac: Added --enable-rpath option to embed linker paths into library binary. 2004-10-26 Andrey Kiselev * tools/tiffset.c: Check the malloc return value (Dmitry V. Levin). * libtiff/{tif_strip.c, tif_tile.c}: Zero division problem fixed (Vladimir Nadvornik, Dmitry V. Levin). 2004-10-16 Andrey Kiselev * libtiff 3.7.0 released. 2004-10-15 Bob Friesenhahn * libtiff/tif_jpeg.c: There seems to be no need to include stdio.h in this file so its inclusion is removed. Including stdio.h sometimes incurs an INT32 typedef conflict between MinGW's basetsd.h and libjpeg's jmorecfg.h. 2004-10-15 Andrey Kiselev * man/bmp2tiff.1: Added manual page for bmp2tiff utility. 2004-10-13 Bob Friesenhahn * tools/tiffcmp.c (leof): Renamed from 'eof' in order to avoid conflict noticed under MinGW. * ltmain.sh: Fix for MinGW compilation. 2004-10-13 Frank Warmerdam * man/tiffsplit.1: Fixed to indicate using aaa-zzz, not aa-zz. http://bugzilla.remotesensing.org/show_bug.cgi?id=635 2004-10-12 Andrey Kiselev * libtiff/{tif_dirread.c, tif_jpeg.c, tif_luv.c, tif_ojpeg.c, tif_pixarlog.c, tif_write.c}: Handle the zero strip/tile sizes properly (Dmitry V. Levin, Marcus Meissner). 2004-10-11 Andrey Kiselev * libtiff/tif_dirinfo.c: Type of the TIFFTAG_SUBIFD field changed to TIFF_IFD. 2004-10-10 Andrey Kiselev * tools/bmp2tif.c: Check the space allocation results. 2004-10-09 Andrey Kiselev * libtiff/tif_dir.c: Initialize td_tilewidth and td_tilelength fields of the TIFFDirectory structure with the 0 instead of -1 to avoid confusing integer overflows in TIFFTileRowSize() for striped images. * tools/tiff2pdf.c: Fixed TransferFunction tag handling reported by Ross A. Finlayson. * libtiff/tif_dir.c: Fixed custom tags handling as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=629 2004-10-08 Frank Warmerdam * libtiff/tif_dirinfo.c: Fix bug with tif_foundfield and reallocation of tif_fieldinfo. http://bugzilla.remotesensing.org/show_bug.cgi?id=630 2004-10-04 Bob Friesenhahn * contrib/iptcutil/README: Added the missing README which goes along with iptcutil. 2004-10-03 Andrey Kiselev * libtiff/tif_compress.c: Improved error reporting in TIFFGetConfiguredCODECs() (Dmitry V. Levin). 2004-10-02 Andrey Kiselev * libtiff 3.7.0beta2 released. * libtiff/{tif_aux.c, tif_compress.c, tif_dirinfo.c, tif_dirwrite.c, tif_extension.c, tif_fax3.c, tif_luv.c, tif_packbits.c, tif_pixarlog.c, tif_write.c}: Added checks for failed memory allocations and integer overflows (Dmitry V. Levin). * libtiff/tiff.h: Missed TIFF_BIGTIFF_VERSION constant added. 2004-10-01 Frank Warmerdam * libtiff/tif_open.c: added a more informative message if a BigTIFF file is opened. 2004-09-30 Frank Warmerdam * libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to TIFFTAG_BYTE instead of TIFFTAG_UNDEFINED to comply with the info in the Adobe XMP Specification. 2004-09-29 Andrey Kiselev * libtiff/{tif_jpeg.c, tif_pixarlog.c}: Use _TIFFmemset() instead of memset(). * libtiff/{tif_dirread.c, tif_strip.c, tif_tile.c}: Applied patches from Dmitry V. Levin to fix possible integer overflow problems. 2004-09-28 Andrey Kiselev * libtiff/tif_getimage.c: Check for allocated buffers before clearing (Dmitry V. Levin). 2004-09-26 Andrey Kiselev * libtiff/{tif_dir.h, tif_dir.c, tif_dirread.c, tif_write.c}: Optimize checking for the strip bounds. * libtiff/{tif_dirread.c, tif_strip.c}: TIFFScanlineSize() and TIFFRasterScanlineSize() functions report zero in the case of integer overflow now. Properly handle this case in TIFFReadDirectory() (patches from Dmitry V. Levin). 2004-09-25 Andrey Kiselev * libtiff/{tif_dirinfo.c, tif_strip.c, tif_tile.c}: Use TIFFhowmany8() macro where appropriate. * tools/tiff2bw.c: Write ImageWidth/Height tags to output file, as noted by Gennady Khokhorin. * libtiff/tif_dirread.c: Always check the return values, returned by the _TIFFmalloc() (Dmitry V. Levin). * libtiff/tif_dir.c: Fixed possible integer overflow _TIFFset*Array() functions (Dmitry V. Levin). * libtiff/{tif_dirread.c, tif_dir.c, tif_write.c}: Potential memory leak fixed in TIFFReadDirectory(), _TIFFVSetField(), TIFFGrowStrips() (found by Dmitry V. Levin). 2004-09-24 Andrey Kiselev * libtiff/{tiffio.h, tif_compress.c}: Added TIFFGetConfiguredCODECs() to get the list of configured codecs. * libtiff/{tiffiop.h, tif_dirread.c}: More overflow fixes from Dmitry V. Levin. 2004-09-23 Andrey Kiselev * libtiff/tif_dirread.c: Applied patch from Dmitry V. Levin to fix possible integer overflow in CheckMalloc() function. 2004-09-22 Andrey Kiselev * libtiff/{tiffiop.h, tif_strip.c}: Use TIFFhowmany8() macro instead of plain TIFFhowmany() where appropriate. 2004-09-21 Andrey Kiselev * libtiff/tif_getimage.c: Initialize arrays after space allocation. 2004-09-19 Andrey Kiselev * libtiff 3.7.0beta released. * libtiff/{tif_luv.c, tif_next.c, tif_thunder.c}: Several buffer overruns fixed, as noted by Chris Evans. 2004-09-14 Bob Friesenhahn * commit: Added a script to make it more convenient to commit updates. The CVS commit message is extracted from this ChangeLog file. 2004-09-14 Andrey Kiselev * configure.ac, configure, aclocal.m4, libtiff/{mkspans.c, tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_ojpeg.c, tif_packbits.c, tif_predict.c, tif_read.c, tif_swab.c, tif_thunder.c, tif_write.c, tif_dir.c, tif_dirread.c, tif_dirwrite.c, tif_jpeg.c, tif_dirinfo.c, tif_vms.c, tif_print.c, tif_strip.c, tif_tile.c, tif_dir.h, tif_config.h.in, tiffiop.h}: Get rid of BSD data types (u_char, u_short, u_int, u_long). 2004-09-13 Bob Friesenhahn * libtiff/tiff.h: Fix column tagging. Reference current Adobe XMP specification. Reference libtiff bug tracking system to submit private tag additions. 2004-09-12 Bob Friesenhahn * tools/tiffgt.c: Include "tif_config.h". * configure.ac: Use AM_PROG_CC_C_O since it is now needed to build tiffgt. This results in the 'compile' script being added to the project. * tools/Makefile.am (tiffgt_CFLAGS): Add extra build options required to find OpenGL headers necessary to build tiffgt. Also ensure that the libtiff that we built is used rather than some other libtiff installed on the system. 2004-09-12 Andrey Kiselev * configure.ac, acinclude.m4, aclocal.m4: New macros to detect GLUT libraries. 2004-09-11 Bob Friesenhahn * configure.ac: Pass library configuration defines via tif_config.h rather than extending CPPFLAGS. Configure a libtiff/tiffconf.h in order to satisfy application requirements (not used by library build). Do not define _POSIX_C_SOURCE=2 since this causes failure to build on systems which properly respect this request. * libtiff/tiffconf.h.in: New file to act as the template for the configured tiffconf.h * libtiff/files.lst (HDRS): Install the configured tiffconf.h. 2004-09-10 Frank Warmerdam * html/internals.html: Split off a discussion of adding new tags into addingtags.html. 2004-09-10 Andrey Kiselev * test/{ascii_tag.c, long_tag.c}: Preliminary test suite added. * tools/tiff2pdf.c: Fixed reading TransferFunction tag as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=590 * libtiff/tif_print.c: Fixes in InkNames and NumberOfInks reporting. * libtiff/tif_dirread.c: Don't reject to read tags of the SamplesPerPixel size when the tag count is greater than number of samples as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=576 * libtiff/tiff.h: Use _TIFF_DATA_TYPEDEFS_ guardian to switch off defining int8/uint8/... etc. types. As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=607 2004-09-09 Frank Warmerdam * tools/tiff2ps.c, tools/tiffmedian.c: fiddle with include files to avoid compile warnings about getopt() and a few other things. 2004-09-02 Andrey Kiselev * libtiff/tif_dirread.c: Use memcpy() function instead of pointer assigning magic in TIFFFetchFloat(). 2004-09-01 Andrey Kiselev * libtiff/{tiffio.h, tif_open.c}: Applied patches from Joris Van Damme to avoid requirement for tiffiop.h inclusion in some applications. See here http://www.asmail.be/msg0054799560.html for details. * tools/fax2tiff.c: Use the new functions in the code. 2004-08-25 Andrey Kiselev * tools/tiff2pdf.c: Initialize arrays properly. * tools/tiff2ps.c: Avoid zero division in setupPageState() function; properly initialize array in PSDataBW(). 2004-08-24 Andrey Kiselev * tools/tiff2pdf.c: More fixes for bug http://bugzilla.remotesensing.org/show_bug.cgi?id=590 from Ross Finlayson. 2004-08-23 Andrey Kiselev * tools/tiff2ps.c: Fixed problem with uninitialized values. * libtiff/tif_dir.c: Initialize tif_foundfield data member in the TIFFDefaultDirectory() (in addition to 2004-08-19 fix). * tools/tiff2pdf.c: Fixed a bunch of problems as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=590 2004-08-20 Andrey Kiselev * tools/tiff2pdf.c: Applied patch from Ross Finlayson that checks that the input file has compression, photometric interpretation, etcetra, tags or if not than a more descriptive error is returned. * libtiff/tif_dirread.c: Fixed problem in TIFFReadDirectory() in the code, responsible for tag data type checking. 2004-08-19 Andrey Kiselev * libtiff/{tiffiop.h, tif_dirinfo.c}: Fixed problem with the static variable as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=593 2004-08-16 Andrey Kiselev * tools/ras2tiff.c: Fixed issue with missed big-endian checks as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=586 2004-08-01 Andrey Kiselev * libtiff/{tif_config.h.in, tif_config.h.vc}: config.h.in and config.h.vc files renamed in the tif_config.h.in and tif_config.h.vc. 2004-07-24 Andrey Kiselev * libtiff/tif_lzw.c: LZW compression code is merged back from the separate package. All libtiff tools are updated to not advertise an abcence of LZW support. 2004-07-12 Andrey Kiselev * libtiff/tiffio.h: Revert thandle_t back to void* type. 2004-07-11 Andrey Kiselev * libtiff/{tif_read.c, tif_tile.c, tif_strip.c}: Fixes in error messages, as suggested by Bernd Herd. 2004-07-03 Andrey Kiselev * libtiff/tif_dir.c: Call TIFFError() instead of producing warnings when setting custom tags by value. Reported by Eric Fieleke. 2004-06-14 Andrey Kiselev * tools/bmp2tiff.c: Add missed RawsPerStrip setting. 2004-06-08 Andrey Kiselev * tools/bmp2tiff.c: Added new utility to convert Windows BMP files into TIFFs. 2004-06-07 Andrey Kiselev * libtiff 3.7.0alpha released. 2004-06-06 Andrey Kiselev * libtiff/{tiff.h, tif_dirwrite.c, tif_fax3.c, tif_packbits.c,}: Get rid of ugly 64-bit hacks, replace them with the clever (autoconf based ) ones :-). * libtiff/tiffio.h: Define thandle_t as int, not void* (may cause problems in 64-bit environment). 2004-06-05 Andrey Kiselev * tools/tiffset.c: tiffset now can set any libtiff supported tags. Tags can be supplied by the mnemonic name or number. * libtiff/{tiffio.h, tif_dir.h, tif_dirinfo.c,}: Added two new functions TIFFFindFieldInfoByName() and TIFFFieldWithName(). 2004-05-27 Andrey Kiselev * libtiff/tif_ojpeg.c: Fixed problem with duplicated SOI and SOF markers as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=581 2004-05-24 Andrey Kiselev * tools/tiffsplit.c: Don't forget to copy Photometric Interpretation tag. 2004-05-20 Andrey Kiselev * libtiff/{tif_open.c, tiffio.h}: New function added: TIFFIsBigEndian(). Function returns nonzero if given was file written in big-endian order. * tools/tiffsplit.c: Fixed problem with unproperly written multibyte files. Now output files will be written using the same byte order flag as in the input image. See http://bugzilla.remotesensing.org/show_bug.cgi?id=574 for details. 2004-05-19 Frank Warmerdam * libtiff/tif_print.c: added (untested) support for printing SSHORT, SLONG and SRATIONAL fields. * tools/tiffcp.c: close output file on normal exit. 2004-05-17 Andrey Kiselev * libtiff/tif_fax3.c: Avoid reading CCITT compression options if compression type mismatches. See http://bugzilla.remotesensing.org/show_bug.cgi?id=565 2004-04-30 Andrey Kiselev * libtiff/tif_strip.c: Never return 0 from the TIFFNumberOfStrips(). 2004-04-29 Andrey Kiselev * libtiff/tif_dirread.c: Workaround for broken TIFF writers which store single SampleFormat value for multisampled images. See http://bugzilla.remotesensing.org/show_bug.cgi?id=562 2004-04-25 Andrey Kiselev * configure.ac, libtiff/{tiff.h, config.h.in}: Added tests for int8, int16 and int32 types to avoid complains on some compilers. Details at http://bugzilla.remotesensing.org/show_bug.cgi?id=39 2004-04-20 Andrey Kiselev * tools/tiff2pdf.c: Fixed problem with unaligned access as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=555 2004-04-14 Andrey Kiselev * libtiff/tif_write.c: Allow in-place updating of the compressed images (don't work properly with all codecs). For details see GDAL bug http://bugzilla.remotesensing.org/show_bug.cgi?id=534 2004-04-06 Andrey Kiselev * libtiff/tif_jpeg.c: Workaround for wrong sampling factors used in the Intergarph JPEG compressed TIFF images as per bug: http://bugzilla.remotesensing.org/show_bug.cgi?id=532 2004-04-04 Frank Warmerdam * libtiff/tif_open.c: close clientdata if TIFFClientOpen() fails via bad2. 2004-03-26 Andrey Kiselev * tools/tiffcp.c: Properly set Photometric Interpretation in case of JPEG compression of grayscale images. * tools/tiffcp.c: Don't emit warnings when Orientation tag does not present in the input image. 2004-03-19 Andrey Kiselev * {many}: The first attempt to switch to autotools. 2004-03-03 Andrey Kiselev * libtiff/tif_open.c: Use dummy mmap/munmap functions in TIFFClientOpen() when the appropriate client functions was not supplied by user. 2004-03-02 Frank Warmerdam * tools/ycbcr.c: fixed main() declaration as per: http://bugzilla.remotesensing.org/show_bug.cgi?id=513 2004-02-26 Andrey Kiselev * tools/tiffsplit.c: Copy JPEGTables tag contents for JPEG compressed images. Reported by Artem Mirolubov. * libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED tag type in TIFFFetchNormalTag() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=508 2004-02-17 Frank Warmerdam * libtiff/tif_codec.c: Fixed typo in TIFFInitPackBits name as per: http://bugzilla.remotesensing.org/show_bug.cgi?id=494 2004-02-05 Andrey Kiselev * libtiff/tif_fax3.c: Fixed problem with CCITT encoding modes as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=483 But we need more work on fax codec to support update mode. 2004-01-30 Frank Warmerdam * libtiff/libtiff.def: Added TIFFCurrentDirOffset, TIFFWriteCheck, TIFFRGBAImageOK, and TIFFNumberOfDirectories as suggested by Scott Reynolds. 2004-01-29 Andrey Kiselev * libtiff/tiff.h: Fixed tag definitions for TIFFTAG_YCLIPPATHUNITS and TIFFTAG_INDEXED as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=475 * libtiff/{tif_win32.c, tif_unix.c}: Check whether the pointer is NULL before proceeding further as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=474 Check results, returned by the TIFFFdOpen() before returning and close file if TIFFFdOpen() failed as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=468 * libtiff/tif_open.c: More fixes for http://bugzilla.remotesensing.org/show_bug.cgi?id=468 2004-01-28 Andrey Kiselev * libtiff/{libtiff.def, tif_close.c, tiffio.h, tif_open.c}: Separate TIFFCleanup() from the TIFFClose() in order to fix the bug http://bugzilla.remotesensing.org/show_bug.cgi?id=468 * tools/tiffcp.c: Fixed problem with wrong interpretation of the InkNames tag as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=466 Memory leak fixed. 2004-01-21 Frank Warmerdam * libtiff/tif_dirwrite.c: Fixed handling of writable ASCII tags that are field_passcount=TRUE properly. Arguably anonymous custom tags should be declared as passcount=FALSE, but I don't want to change that without a careful review. 2004-01-20 Andrey Kiselev * libtiff/tif_write.c: Fixed reporting size of the buffer in case of stripped image in TIFFWriteBufferSetup(). As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=460 2004-01-11 Andrey Kiselev * libtiff/tif_dir.c: Incomplete cleanup in TIFFFreeDirectory(), patch from Gerben Koopmans. * libtiff/tif_dirread.c: Check field_passcount value before setting the value of undefined type, patch from Gerben Koopmans. 2004-01-02 Andrey Kiselev * tools/tiffcp.c: Fixed problem with wrong Photometric setting for non-RGB images. 2003-12-31 Andrey Kiselev * libtiff/tif_win32.c: Fixed problem with _TIFFrealloc() when the NULL pointer passed. Patch supplied by Larry Grill. * libtiff/{tiff.h, tif_fax3.c}:Fixes for AMD 64 platform as suggested by Jeremy C. Reed. 2003-12-26 Andrey Kiselev * libtiff 3.6.1 released. 2003-12-24 Andrey Kiselev * config.guess, config.sub: Updated from the recent upstream. 2003-12-22 Andrey Kiselev * libtiff/{tif_color, tif_getimage.c, tiffio.h}, man/TIFFcolor.3t: More cleanups in color conversion interface, added appropriate manual page. 2003-12-19 Andrey Kiselev * libtiff/{tif_extension.c, tif_dirinfo.c, tiff.h}: Warnings fixed as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=357 * tools/tiff2ps.c: Added support for alpha channel. Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=428 * libtiff/{libtiff.def, tif_color.c, tif_getimage.c, tiffio.h}: Interface for Lab->RGB color conversion is finally cleaned up. Added support for ReferenceBlackWhite tag handling when converted from YCbCr color space. The latter closes http://bugzilla.remotesensing.org/show_bug.cgi?id=120 2003-12-07 Andrey Kiselev * libtiff/{tif_getimage.c, tiffio.h}: Avoid warnings. * libtiff/makefile.vc, tools/makefile.vc: Support for IJG JPEG library. 2003-12-06 Andrey Kiselev * libtiff/{tif_getimage.c, tif_aux.c}: Read WhitePoint tag from the file and properly use it for CIE Lab->RGB transform. 2003-12-04 Andrey Kiselev * libtiff/{tif_getimage.c, tif_color.c, tiffio.h}: YCbCr->RGB conversion routines now in the tif_color.c module. New function TIFFYCbCrtoRGB() available in TIFF API. * libtiff/tif_dirwrite.c: Handle TIFF_IFD tag type correctly. 2003-12-03 Andrey Kiselev * libtiff/{tif_getimage.c, tif_color.c, tiffio.h}: Improvements in CIE Lab conversion code. Start moving YCbCr stuff to the tif_color.c module. * libtiff/{tif_getimage.c, tiffio.h}, man{TIFFReadRGBAImage.3t, TIFFReadRGBAStrip.3t, TIFFReadRGBATile.3t, TIFFRGBAImage.3t}: Finally resolved problems with orientation handling. TIFFRGBAImage interface now properly supports all possible orientations, i.e. images will be flipped both in horizontal and vertical directions if required. 'Known bugs' section now removed from the appropriate manual pages. Closed bug entry: http://bugzilla.remotesensing.org/show_bug.cgi?id=322 2003-12-02 Andrey Kiselev * libtiff/tif_dir.c: Fixed order of the parameters in TIFFError() function calls as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=440 2003-11-28 Ross Finlayson * tools/tiff2pdf.c: Some bugs fixed. 2003-11-27 Andrey Kiselev * libtiff/tif_luv.c: Fixed bug in 48-bit to 24-bit conversion routine, reported by Antonio Scuri. * man/tiff2pdf.1: Few improvements in page layout. * Makefile.in, /man/Makefile.in, /html/man/tiff2pdf.1.html: Added support fpr tiff2pdf manual page. 2003-11-26 Ross Finlayson * /man/tiff2pdf.1: File added to repository. 2003-11-26 Andrey Kiselev * Makefile.in, /tools/{Makefile.in, makefile.vc}: Added support fpr tiff2pdf utility. 2003-11-25 Ross Finlayson * /tools/tiff2pdf.c: File added to repository. 2003-11-22 Andrey Kiselev * /tools/raw2tiff.c: sqrtf() replaced with sqrt(). 2003-11-21 Andrey Kiselev * /tools/raw2tiff.c: #include removed. * tools/{Makefile.in, tiffgt.c}: Unmaintained and platform dependent sgigt utility removed and replaced with the completely rewritten portable tiffgt tool (depend on OpenGL and GLUT). Initial revision, there is a lot of things to improve. * libtiff/tif_ojpeg.c: TIFFVGetField() function now can properly extract the fields from the OJPEG files. Patch supplied by Ross Finlayson. * libtiff/{tiffio.h, tif_codec.c}, man/{libtiff.3t, TIFFcodec.3t}: Added new function TIFFIsCODECConfigured(), suggested by Ross Finlayson. 2003-11-18 Andrey Kiselev * libtiff/tif_dirinfo.c: Implemented binary search in _TIFFMergeFieldInfo(). Patch supplied by Ross Finlayson. * libtiff/tif_dir.h: _TIFFFindOrRegisterdInfo declaration replaced with _TIFFFindOrRegisterFieldInfo as reported by Ross Finlayson. 2003-11-17 Frank Warmerdam * tif_dirread.c: do not mark all anonymously defined tags to be IGNOREd. 2003-11-17 Andrey Kiselev * contrib/pds/{tif_pdsdirread.c, tif_pdsdirwrite.c}: Use TIFFDataWidth() function insted of tiffDataWidth array. 2003-11-16 Andrey Kiselev * libtiff/{tiff.h, tif_dirinfo.c}: Added support for IFD (13) datatype, intruduced in "Adobe PageMaker TIFF Tech. Notes". 2003-11-15 Frank Warmerdam * Makefile.in: fixed missing backslash for tif_color.c in list. 2003-11-13 Andrey Kiselev * libtiff/{tif_color.c, tif_getimage.c, tiffio.h, Makefile.in}: New color space conversion code: CIE L*a*b* 1976 images now supported by the TIFFRGBAImage interface. All introduced routines go to new module tif_color.c. Eventually all color conversion functions should be moved there. 2003-11-12 Andrey Kiselev * tools/{ras2tiff.c, rasterfile.h}: Properly determine SUN Rasterfiles with the reverse byte order (it is reported by the magic header field). Problem reported by Andreas Wiesmann. * tools/raw2tiff.c, man/raw2tiff.1: Few improvements in correlation calculation function. Guessing mechanics now documented in manual page. 2003-11-11 Andrey Kiselev * tools/raw2tiff.c: Implemented image size guessing using correlation coefficient calculation between two neighbour lines. 2003-11-09 Frank Warmerdam * libtiff/tif_tile.c: remove spurious use of "s" (sample) in the planarconfig_contig case in TIFFComputeTile(). http://bugzilla.remotesensing.org/show_bug.cgi?id=387 2003-11-09 Andrey Kiselev * libtiff/tiffiop.h: New macros: TIFFmax, TIFFmin and TIFFrint. 2003-11-07 Andrey Kiselev * libtiff/{tiffio.h, tif_strip.c}, man/{TIFFstrip.3t, libtiff.3t}: Added TIFFRawStripSize() function as suggested by Chris Hanson. 2003-11-03 Andrey Kiselev * libtiff/{tif_lzw.c, tif_fax3.c}: Proper support for update mode as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=424 2003-10-29 Andrey Kiselev * libtiff/libtiff.def: Added TIFFReadRGBAImageOriented. * html/build.html: Added note about GNU make requirement. 2003-10-25 Andrey Kiselev * Makefile.in: Fixes in using MAKEFLAGS as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=418 * port/install.sh.in: Option -p added to the mkdir command to create all directory tree structure before installing. 2003-10-18 Andrey Kiselev * /tools/tiff2ps.c: #include replaced with the #include . 2003-10-16 Andrey Kiselev * Makefile.in: Add an absolute path to the test_pics.sh call. 2003-10-12 Andrey Kiselev * libtiff/tiffcomp.h: #define _BSDTYPES_DEFINED when defining BSD typedefs. 2003-10-09 Andrey Kiselev * configure, libtiff/{Makefile.in, mkversion.c}: Relative buildings fixed. * tools/Makefile.in: Added "-I../libtiff" to the tiffset building rule. 2003-10-07 Andrey Kiselev * Makefile.in: Added missed v3.6.0.html. * libtiff/tiffio.h: Typo fixed: ORIENTATION_BOTTOMLEFT replaced with ORIENTATION_BOTLEFT. 2003-10-04 Andrey Kiselev * 3.6.0 final release. 2003-10-03 Andrey Kiselev * libtiff/{tif_getimage.c, tiffio.h}, man/TIFFReadRGBAImage.3t: New function TIFFReadRGBAImageOriented() implemented to retrieve raster array with user-specified origin position as suggested by Jason Frank. See http://bugzilla.remotesensing.org/show_bug.cgi?id=322 for details. * tools/tiff2rgba.c: Switched to use TIFFReadRGBAImageOriented() instead of TIFFReadRGBAImage(). * tools/tiff2ps.c: Fixed possible endless loop as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=404 2003-09-30 Andrey Kiselev * libtiff/tif_dirread.c: Check field counter against number of fields in order to fix http://bugzilla.remotesensing.org/show_bug.cgi?id=366 * libtiff/tif_fax3.c: Fix wrong line numbering as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=342 2003-09-25 Andrey Kiselev * libtiff/{tiffiop.h, tif_dirread.c, tif_dir.c, tif_open.c, tif_close.c}: Store a list of opened IFD to prevent looping as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=383 2003-09-23 Andrey Kiselev * libtiff/tif_dirread.c: More fixes for EstimateStripByteCounts(). See http://bugzilla.remotesensing.org/show_bug.cgi?id=358 2003-08-21 Andrey Kiselev * tools/tiffmedian.c: int declaration replaced with the uint32 to support large images as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=382 2003-08-12 Andrey Kiselev * libtiff/Makefile.in: Fixed problem with building in different directory. * tools/tiff2ps.c: Added missing #include . * libtiff/tif_dirwrite.c: More fixes for custom tags code from Ashley Dreier. 2003-08-07 Andrey Kiselev * tools/tiff2ps.c: Added page size setting when creating PS Level 2. Patch submitted by Balatoni Denes (with corrections from Tom Kacvinsky). * tools/tiff2ps.c: Fixed PS comment emitted when FlateDecode is being used. Reported by Tom Kacvinsky. * libtiff/tif_dirwrite.c: Fixed problem with custom tags writing, reported by Ashley Dreier. * libtiff/tif_print.c: Fixed problem with float tags reading, support for printing RATIONAL and BYTE tags added. 2003-08-05 Andrey Kiselev * libtiff/tif_lzw.c: Move LZW codec state block allocation back to TIFFInitLZW(), because its initialization in LZWSetupDecode() cause problems with predictor initialization. Remove O_RDONLY check during state block allocation to be able open LZW compressed files in update mode. Problem exist for libtiff version of the tif_lzw.c module. One from lzw-compression-kit hasn't such troubles. 2003-08-04 Frank Warmerdam * libtiff/tif_write.c: modified tif_write.c so that the various encoded write functions use tif_postdecode() to apply byte order swapping (swab) to the application passed data buffer if the same would be done when reading. This allows us to write pixel data with more than 8 bits per sample to existing files of a non-native byte order. One side effect of this change is the applications buffer itself is altered in this case by the act of writing. http://bugzilla.remotesensing.org/show_bug.cgi?id=171 2003-07-25 Frank Warmerdam * libtiff/tif_open.c: avoid signed/unsigned casting warning initializing typemask as per patch from J.A. Strother. * tools/tiffcp.c: fixed signed/unsigned casting warning. * libtiff/tif_print.c: dos2unix conversion. * tools/tiffsplit.c: increased the maximum number of pages that can be split. Patch provided by Andrew J. Montalenti. 2003-07-11 Andrey Kiselev * tools/raw2tiff.c: Added option `-p' to explicitly select color space of input image data. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=364 2003-07-08 Frank Warmerdam * tif_aux.c, tif_codec.c, tif_dir.c, tif_dirread.c, tif_extension.c, tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_next.c, tif_packbits.c, tif_predict.c, tif_print.c, tif_swab.c, tif_thunder.c: avoid casting warning at /W4. 2003-07-03 Andrey Kiselev * tools/thumbnail.c: Memory leak fixed as reported by Robert S. Kissel. 2003-06-30 Andrey Kiselev * libtiff/tif_pixarlog.c: Unused variables removed. * libtiff/{tif_dirread.c, tif_dir.c}: Fixed problem with EstimateStripByteCounts() as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=358 * libtiff/{tif_dirwrite.c, tif_packbits.c}: Fixed compilation on 64-bit architectures as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=357 * libtiff/tif_dirinfo.c: TIFFDataWidth() returns 0 in case of unknown data type. 2003-06-19 Frank Warmerdam * libtiff/tif_print.c: fixed some serious bugs when printing custom tags ... almost certain to crash. * libtiff/tif_dirread.c: Don't ignore custom fields that are autodefined. Not sure how this got to be like this. 2003-06-18 Andrey Kiselev * 3.6.0 Beta2 released. * tools/tiffcmp.c, man/tiffcmp.1: Fixed problem with unused data comparing as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=349 `-z' option now can be used to set the number of reported different bytes. 2003-06-09 Andrey Kiselev * tools/tiffcp.c, man/tiffcp.1: Added possibility to specify value -1 to -r option to get the entire image as one strip. See http://bugzilla.remotesensing.org/show_bug.cgi?id=343 for details. 2003-06-04 Andrey Kiselev * tools/tiffcp.c: Set the correct RowsPerStrip and PageNumber values as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=343 2003-05-27 Frank Warmerdam * libtiff/tif_jpeg.c: modified segment_height calculation to always be a full height tile for tiled images. Also changed error to just be a warning. 2003-05-25 Andrey Kiselev * tools/fax2tiff.c: Page numbering fixed, as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=341 2003-05-20 Andrey Kiselev * contrib/ojpeg/{Makefile.in, jdhuff.h, jinclude.h, ojpeg.c, README}, configure, Makefile.in: Switched back to the old behaviour. Likely better solution should be found for OJPEG support. 2003-05-11 Andrey Kiselev * libtiff/mkversion.c: Fixed problem with wrong string size when reading RELEASE-DATE file. 2003-05-07 Andrey Kiselev * tools/tiff2ps.c: Fixed bug in Ascii85EncodeBlock() function: array index was out of range. 2003-05-06 Andrey Kiselev * contrib/ojpeg/{Makefile.in, jdhuff.h, jinclude.h, ojpeg.c, README}, configure, Makefile.in: Improved libtiff compilation with OJPEG support. Now no need for patching IJG JPEG library, hack requred by libtiff will be compiled and used in-place. Implemented with suggestion and help from Bill Allombert, Debian's libjpeg maintainer. * libtiff/tif_aux.c: Properly handle TIFFTAG_PREDICTOR in TIFFVGetFieldDefaulted() function. 2003-05-05 Andrey Kiselev * tools/ppm2tiff.c: PPM header parser improved: now able to skip comments. * tools/tiffdither.c: Fixed problem with bit fill order tag setting: was not copied from source image. * libtiff/getimage.c: Workaround for some images without correct info about alpha channel as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=331 2003-04-29 Andrey Kiselev * tools/tiff2ps.c, man/tiff2ps.1: Add ability to generate PS Level 3. It basically allows one to use the /flateDecode filter for ZIP compressed TIFF images. Patch supplied by Tom Kacvinsky. Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=328 * tools/tiff2ps.c: Force deadzone printing when EPS output specified as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=325 2003-04-17 Andrey Kiselev * libtiff/tif_dirread.c: Removed additional check for StripByteCounts due to problems with multidirectory images. Quality of error messages improved. 2003-04-16 Andrey Kiselev * tools/tiffcp.c: Fixed problem with colorspace conversion for JPEG encoded images. See bug entries http://bugzilla.remotesensing.org/show_bug.cgi?id=275 and http://bugzilla.remotesensing.org/show_bug.cgi?id=23 * libtiff/tif_dirread.c: Additional check for StripByteCounts correctness. Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=320 2003-03-12 Andrey Kiselev * tools/{fax2ps.c, fax2tiff.c, gif2tiff.c, pal2rgb.c, ppm2tiff.c, ras2tiff.c, raw2tiff.c, rgb2ycbcr.c, thumbnail.c, tiff2bw.c, tiff2ps.c, tiff2rgba.c, tiffcp.c, tiffdither.c, tiffinfo.c, tiffmedian.c}: Added library version reporting facility to all tools. 2003-03-06 Frank Warmerdam * port/install.sh.in: Fixed problems with install producing paths like ///usr/local/lib on cygwin. 2003-02-27 Andrey Kiselev * tools/fax2tiff.c, man/fax2tiff.1: New switch (-X) to set width of raw input page. Patch supplied by Julien Gaulmin. See http://bugzilla.remotesensing.org/show_bug.cgi?id=293 for details. 2003-02-26 Frank Warmerdam * libtiff/tif_dir.c: fixed up the tif_postdecode settings responsible for byte swapping complex image data. * libtiff/tif_lzw.c: fixed so that decoder state isn't allocated till LZWSetupDecode(). Needed to read LZW files in "r+" mode. 2003-02-07 Andrey Kiselev * tools/ppm2tiff.c: Fixed problem with too many arguments. 2003-02-04 Andrey Kiselev * tools/raw2tiff.c: Memory leak fixed. 2003-02-03 Andrey Kiselev * tools/fax2tiff.c, man/fax2tiff.1: Applied patch from Julien Gaulmin (thanks, Julien!). More switches for fax2tiff tool for better control of input and output. Details at http://bugzilla.remotesensing.org/show_bug.cgi?id=272 2003-02-03 Frank Warmerdam * libtiff/tif_jpeg.c: Modified to defer initialization of jpeg library so that we can check if there is already any tile/strip data before deciding between creating a compressor or a decompressor. 2003-01-31 Frank Warmerdam * libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is a pre-existing compressed image. That is, image writing to pre-existing compressed images is not allowed. * libtiff/tif_open.c: Removed error if opening a compressed file in update mode. http://bugzilla.remotesensing.org/show_bug.cgi?id=198 2003-01-31 Andrey Kiselev * config.guess, config.sub: Updated to recent upstream versions. 2003-01-15 Frank Warmerdam * cut 3.6.0 Beta release. 2002-12-20 Andrey Kiselev * tools/fax2ps.c, man/fax2ps.1: Page size was determined in wrong way as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=239 2002-12-17 Frank Warmerdam * libtiff/tif_dirread.c: Allow wrong sized arrays in TIFFFetchStripThing(). http://bugzilla.remotesensing.org/show_bug.cgi?id=49 2002-12-02 Frank Warmerdam * libtiff/tif_dir.c: fix problem with test on td_customValueCount. Was using realloc even first time. Fix by Igor Venevtsev. 2002-11-30 Frank Warmerdam * libtiff/tif_dir.c: fixed bug with resetting an existing custom field value. * libtiff/tif_dir.c: Fixed potential problem with ascii "custom" tags in TIFFVGetField() ... added missing break. 2002-10-14 Frank Warmerdam * tools/tiff2ps.c: fixes a problem where "tiff2ps -1e" did not make the scanline buffer long enough when writing rgb triplets. The scanline needs to be 3 X the number of dots or else it will contain an incomplete triplet and programs that try to separate the eps by redefining the colorimage operator will get messed up. Patch supplied by William Bader. * Makefile.in: added tif_extension.c to file list as per http://bugzilla.remotesensing.org/show_bug.cgi?id=218. 2002-10-11 Andrey Kiselev * configure, config.site, libtiff/{tif_unix.c, Makefile.in}: Fix for large files (>2GiB) supporting. New option in the config.site: LARGEFILE="yes". Should be enough for I/O of the large files. 2002-10-10 Frank Warmerdam * libtiff/html/v3.6.0.html: new release notes. * libtiff/index.html: removed faq, cvs snapshot cruft. Added email link for Andrey. Pointer to v3.6.0.html. * libtiff/Makefile.in: added direct rule for tiffvers.h for release. 2002-10-07 Andrey Kiselev * tools/tiff2ps.c, man/tiff2ps.1: Applied patch form Sebastian Eken (thanks, Sebastian!). New switches: -b # for a bottom margin of # inches -c center image -l # for a left margin of # inches -r rotate the image by 180 degrees New features merged with code for shrinking/overlapping. Previously added -c and -n switches (for overriding PS units) renamed in -x and -y respectively. http://bugzilla.remotesensing.org/show_bug.cgi?id=200 * html/man/*.html: Updated from actual manual pages. 2002-10-06 Frank Warmerdam * libtiff/tif_jpeg.c: fixed problem with boolean defined with wrong size on windows. Use #define boolean hack. http://bugzilla.remotesensing.org/show_bug.cgi?id=188 * libtiff/tiff.h: Don't do special type handling in tiff.h unless USING_VISUALAGE is defined. http://bugzilla.remotesensing.org/show_bug.cgi?id=39 2002-10-03 Frank Warmerdam * libtiff/tiff.h: added COMPRESSION_JP2000. 2002-10-02 Andrey Kiselev * libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays by the TIFFFetchByteArray() function. Should finally resolve http://bugzilla.remotesensing.org/show_bug.cgi?id=52 * configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT * html/Makefile.in: New targets added: html and groffhtml for producing HTML representations of the manual pages automatically. html target uses man2html tool, groffhtml uses groff tool. 2002-09-29 Frank Warmerdam * configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support from John H. DuBois III. 2002-09-15 Andrey Kiselev * Makefile.in, /man/{raw2tiff.1, Makefile.in, libtiff.3}: Added manual page for raw2tiff(1) tool. 2002-09-12 Andrey Kiselev * /libtiff/{tiffio.h, tif_dir.h}: TIFFDataWidth() declaration moved to the tiffio.h header file. * Makefile.in, /man/{TIFFDataWidth.3t, Makefile.in, libtiff.3}: Added manual page for TIFFDataWidth() function 2002-09-08 Frank Warmerdam * libtiff/tif_dirread.c: Expand v[2] to v[4] in TIFFFetchShortPair() as per http://bugzilla.remotesensing.org/show_bug.cgi?id=196. * tools/tiff2ps.c: Don't emit BeginData/EndData DSC comments since we are unable to properly include the amount to skip. http://bugzilla.remotesensing.org/show_bug.cgi?id=80 2002-09-02 Andrey Kiselev * /libtiff/tif_dirread.c: Fixed problem with SBYTE type data fetching in TIFFFetchByteArray(). Problem described at http://bugzilla.remotesensing.org/show_bug.cgi?id=52 2002-08-22 Andrey Kiselev * /libtiff/tif_dirinfo.c: Further additions to free custom fields in _TIFFSetupFieldInfo() function. See http://bugzilla.remotesensing.org/show_bug.cgi?id=169 for details. * /libtiff/tif_lzw.c: Additional consistency checking added in LZWDecode() and LZWDecodeCompat(). Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=190 and http://bugzilla.remotesensing.org/show_bug.cgi?id=100 * /libtiff/tif_lzw.c: Added check for valid code lengths in LZWDecode() and LZWDecodeCompat(). Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=115 2002-08-16 Andrey Kiselev * /libtiff/{Makefile.vc, libtiff.def}: Missed declarations added. 2002-08-15 Frank Warmerdam * tif_getimage.c: Ensure that TIFFRGBAImageBegin() returns the return code from the underlying pick function. http://bugzilla.remotesensing.org/show_bug.cgi?id=177 * tif_dir.h: changed FIELD_CODEC to 66 from 64 to avoid overlap with FIELD_CUSTOM as mentioned in bug 169. * tif_close.c: added logic to free dynamically created anonymous field definitions to correct a small memory leak. http://bugzilla.remotesensing.org/show_bug.cgi?id=169 2002-08-10 Andrey Kiselev * /tools/{raw2tiff.c, Makefile.in, Makefile.lcc, Makefile.vc}: New tool: raw2tiff --- raw images to TIFF converter. No manual page yet. 2002-07-31 Frank Warmerdam * libtiff/tif_jpeg.c: Fixed problem with setting of nrows in JPEGDecode() as per bugzilla bug (issue 1): http://bugzilla.remotesensing.org/show_bug.cgi?id=129 * libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to fetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't present in the tiff tags. http://bugzilla.remotesensing.org/show_bug.cgi?id=168 * libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and TIFFWriteScanline() now set tif_row explicitly in case the codec has fooled with the value. http://bugzilla.remotesensing.org/show_bug.cgi?id=129 2002-06-22 Andrey Kiselev * /tools/tiff2ps.c: Added workaround for some software that may crash when last strip of image contains fewer number of scanlines than specified by the `/Height' variable. See http://bugzilla.remotesensing.org/show_bug.cgi?id=164 for explanation. 2002-06-21 Andrey Kiselev * tools/tiff2ps, man/tiff2ps.1: New functionality for tiff2ps utility: splitting long images in several pages. See http://bugzilla.remotesensing.org/show_bug.cgi?id=142 for explanation. Patch granted by John Williams . 2002-06-11 Frank Warmerdam * libtiff/contrib/win95: renamed to contrib/win_dib. Added new Tiffile.cpp example of converting TIFF files into a DIB on Win32. This one is described in: http://bugzilla.remotesensing.org/show_bug.cgi?id=143 * libtiff/tif_ojpeg.c: Major upgrade from Scott. See details at: http://bugzilla.remotesensing.org/show_bug.cgi?id=156 2002-05-10 Andrey Kiselev * tools/tiff2ps: New commandline switches to override resolution units obtained from the input file. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=131 2002-04-26 Andrey Kiselev * libtiff/libtiff.def: Added missed declaration. 2002-04-22 Andrey Kiselev * tools/fax2tiff.c: Updated to reflect latest changes in libtiff. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=125 2002-04-20 Andrey Kiselev * libtiff/tif_open.c: Pointers to custom procedures in TIFFClientOpen() are checked to be not NULL-pointers. 2002-04-18 Andrey Kiselev * libtiff/libtiff.def: Added missed declarations. * libtiff/tif_pixarlog.c: Updated for using tif_tagmethods structure. 2002-04-16 Andrey Kiselev * libtiff/tif_lzw.c: Additional checks for data integrity introduced. Should finally close http://bugzilla.remotesensing.org/show_bug.cgi?id=100 2002-04-10 Andrey Kiselev * tools/tiff2ps: Division by zero fixed. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=88 2002-04-09 Andrey Kiselev * libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h: TIFFCheckpointDirectory() routine added. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=124 * man/: TIFFWriteDirectory.3t, Makefile.in: Added description for the new function. 2002-04-08 Andrey Kiselev * libtiff/: tif_codec.c, tif_compress.c, tiffiop.h: Introduced additional members tif->tif_decodestatus and tif->tif_encodestatus for correct handling of unconfigured codecs (we should not try to read data or to define data size without correct codecs). * libtiff/tif_getimage.c: The way of codecs checking in TIFFRGBAImageOK changed. Now it has used tif->tif_decodestatus and tif->tif_encodestatus. Should fix http://bugzilla.remotesensing.org/show_bug.cgi?id=119 (in case of __cvs_8.tif test image). * libtiff/: tif_dirinfo.c, tif_dirread.c: Somebody makes a bug in tif_dirread.c when TIFFCreateAnonFieldInfo was introduced. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=119 in case of _cvs_00000-00.tif, _cvs_00000-01.tif and _cvs_00000-02.tif. 2002-04-04 Andrey Kiselev * libtiff/: tif_lzw.c: Assertions in LZWDecode and LZWDecodeCompat replaced by warnings. Now libtiff should read corrupted LZW-compressed files by skipping bad strips. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=100 2002-04-03 Frank Warmerdam * libtiff/tif_dirwrite.c: Removed some dead code. * libtiff/*: Cleanup some warnings. * libtiff/tif_dir.c: Fixed bug with count returned by TIFFGetField() for variable length FIELD_CUSTOM values. Was int * but should be u_short *. 2002-04-01 Andrey Kiselev * tools/: tifcp.c: Added support for 'Orientation' tag in tiffcp utility (at cpStripToTile routine). 2002-03-27 Frank Warmerdam * tif_dirread.c: avoid div-by-zero if rowbytes is zero in chop func. http://bugzilla.remotesensing.org/show_bug.cgi?id=111 * tif_print.c: Fixed so that ASCII FIELD_CUSTOM values with passcount set FALSE can be printed (such as TIFFTAG_SOFTWARE). * libtiff/tif_dir.c,tif_dirinfo.c,tif_dir.h,tif_ojpeg.c: modified so that TIFFTAG_SOFTWARE uses FIELD_CUSTOM as an example. 2002-03-26 Dwight Kelly * libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c, tif_dirwrite.c: Added get/put code for new tag XMLPACKET as defined in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 spec INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes: CLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and INDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9). 2002-03-26 Andrey Kiselev * libtiff/: tif_getimage.c: TIFFReadRGBAStrip and TIFFReadRGBATile now also uses TIFFRGBAImageOK before reading. This is additional fix for http://bugzilla.remotesensing.org/show_bug.cgi?id=110 2002-03-25 Andrey Kiselev * libtiff/: tif_getimage.c: Additional check for supported codecs added in TIFFRGBAImageOK and TIFFReadRGBAImage now uses TIFFRGBAImageOK before reading. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=110 2002-03-15 Andrey Kiselev * libtiff/: tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c, tif_dirwrite.c: Added routine TIFFDataWidth for detrmining TIFFDataType sizes instead of working with tiffDataWidth array directly. Should prevent out-of-borders bugs in case of unknown or broken data types. EstimateStripByteCounts routine modified, so it won't work when tags with uknown sizes founded. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=109 2002-03-13 Andrey Kiselev * libtiff/tif_getimage.c: Added support for correct handling `Orientation' tag in gtTileContig. Should be added in other gt* functions as well, but I have not images for testing yet. Partially resolves http://bugzilla.remotesensing.org/show_bug.cgi?id=23 2002-03-10 Andrey Kiselev * libtiff/: tif_dirinfo.c, tif_dirwrite.c: Added possibility to read broken TIFFs with LONG type used for TIFFTAG_COMPRESSION, TIFFTAG_BITSPERSAMPLE, TIFFTAG_PHOTOMETRIC. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=99 2002-03-08 Andrey Kiselev * libtiff/Makefile.in, tools/Makefile.in: Shared library will not be stripped when installing, utility binaries will do. Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=93 2002-02-28 Frank Warmerdam * man/TIFFGetField: fixed type of TIFFTAG_COPYRIGHT. * man/libtiff.3t: added copyright tag info. 2002-02-11 Frank Warmerdam * libtiff/{tiff.h,tif_fax3.c}: Add support for __arch64__. http://bugzilla.remotesensing.org/show_bug.cgi?id=94 * man/Makefile.in: Patch DESTDIR handling http://bugzilla.remotesensing.org/show_bug.cgi?id=95 * configure: OpenBSD changes for Sparc64 and DSO version. http://bugzilla.remotesensing.org/show_bug.cgi?id=96 2002-02-05 Frank Warmerdam * config.site/configure: added support for OJPEG=yes option to enable OJPEG support from config.site. 2002-01-27 Frank Warmerdam * html/document.html: fixed links for TIFf 6 docs. 2002-01-18 Frank Warmerdam * config.guess, config.sub: Updated from ftp.gnu.org/pub/config. * libtiff/tif_read.c: Fixed TIFFReadEncodedStrip() to fail if the decodestrip function returns anything not greater than zero as per http://bugzilla.remotesensing.org/show_bug.cgi?id=97 * configure: Modify CheckForBigEndian so it can work in a cross compiled situation. 2002-01-16 Frank Warmerdam * tools/tiffdump.c: include TIFFTAG_JPEGTABLES in tag list. * tools/tiffset.c: fix bug in error reporting. * tools/tiffcp.c: fix several warnings that show up with -Wall. 2002-01-04 Frank Warmerdam * libtiff/tif_jpeg.c: fixed computation of segment_width for tiles files to avoid error about it not matching the cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile size.") for ITIFF files. Apparently the problem was incorporated since 3.5.5, presumably during the OJPEG/JPEG work recently. 2001-12-15 Frank Warmerdam * configure, libtiff/Makefile.in: Changes for building on MacOS 10.1. http://bugzilla.remotesensing.org/show_bug.cgi?id=94 * libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1 (defined in tiffconf.h - 1 by default) then the RGBA interface will assume that a fourth extra sample is ASSOCALPHA if the EXTRASAMPLE value isn't set for it. This changes the behaviour of the library, but makes it work better with RGBA files produced by lots of applications that don't mark the alpha values properly. http://bugzilla.remotesensing.org/show_bug.cgi?id=93 http://bugzilla.remotesensing.org/show_bug.cgi?id=65 2001-12-12 Frank Warmerdam * libtiff/tif_jpeg.c: allow jpeg data stream sampling values to override those from tiff directory. This makes this work with ImageGear generated files. 2001-12-07 Frank Warmerdam * html/Makefile.in: added missing images per bug 92. * port/Makefile.in: fixed clean target per bug 92. 2001-11-28 Frank Warmerdam * Reissue 3.5.7 release. * libtiff/mkversion.c: Fix output of TIFF_VERSION to be YYYYMMDD so that it is increasing over time. * Makefile.in: Ensure that tiffvers.h is regenerated in the make release target. * Makefile.in: added libtiff/tiffvers.h to the release file list. 2001-11-23 Frank Warmerdam * added html/v3.5.7.html, updated html/index.html. * Makefile.in: added contrib/addtiffo/tif_ovrcache.{c,h}. 2001-11-15 Frank Warmerdam * configure: fixed test for -lm. 2001-11-02 Frank Warmerdam * Added PHOTOMETRIC_ITULAB as per bug 90. http://bugzilla.remotesensing.org/show_bug.cgi?id=90 2001-10-10 Frank Warmerdam * libtiff/tiff.h: I have created COMPRESSION_CCITT_T4, COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases in keeping with TIFF 6.0 standard in tiff.h http://bugzilla.remotesensing.org/show_bug.cgi?id=83 2001-09-26 Frank Warmerdam * libtiff/tif_dirwrite.c: added TIFFRewriteDirectory() function. Updated TIFFWriteDirectory man page to include TIFFRewriteDirectory. 2001-09-24 Frank Warmerdam * libtiff/tif_lzw.c: Avoid MS VC++ 5.0 optimization bug. http://bugzilla.remotesensing.org/show_bug.cgi?id=78 * libtiff/tif_lzw.c: added dummy LZWSetupEncode() to report an error about LZW not being available. * libtiff/tif_dir.c: propagate failure to initialize compression back from TIFFSetField() as an error status, so applications can detect failure. * libtiff/tif_dir.c: removed the auto replacement of COMPRESSION_LZW with COMPRESSION_NONE in _TIFFVSetField(). * Removed Makefile, tools/Makefile, port/install.sh, man/Makefile from CVS as they are all supposed to be auto-generated by configure. 2001-09-22 Frank Warmerdam * libtiff/tif_ojpeg.c: new update from Scott. 2001-09-09 Frank Warmerdam * libtif/tif_fax3.c: Removed #ifdef PURIFY logic, and modified to always use the "safe" version, even if there is a very slight cost in performance. http://bugzilla.remotesensing.org/show_bug.cgi?id=54 * libtiff/Makefile.in: Fixed @DSOSUB_VERSION to be @DSOSUF_VERSION@ in two places. * libtiff/tif_getimage.c: Fixed problem with reading strips or tiles that don't start on a tile boundary. Fix contributed by Josep Vallverdu (from HP), and further described in bug 47. http://bugzilla.remotesensing.org/show_bug.cgi?id=47 * tools/tiff2ps.c: added OJPEG YCbCr to RGB support. * libtiff/tif_ojpeg.c: Applied substantial patch from Scott. 2001-09-06 Frank Warmerdam * libtiff/tif_packbits.c: fixed memory overrun error. http://bugzilla.remotesensing.org/show_bug.cgi?id=77 2001-08-31 Frank Warmerdam * libtiff/tif_getimage.c: relax handling of contig case where there are extra samples that are supposed to be ignored. This should now work for 8bit greyscale or palletted images. http://bugzilla.remotesensing.org/show_bug.cgi?id=75 2001-08-28 Frank Warmerdam * libtiff/tif_getimage.c: Don't complain for CMYK (separated) images with more than four samples per pixel. See: http://bugzilla.remotesensing.org/show_bug.cgi?id=73 2001-08-10 Frank Warmerdam * libtiff/tif_getimage.c: Use memmove() instead of TIFFmemcpy() in TIFFReadRGBATile() to avoid issues in cases of overlapping buffers. See Bug 69 in Bugzilla. http://bugzilla.remotesensing.org/show_bug.cgi?id=69 * tools/tiff2rgba.c: fixed getopt() call so that -b works again. 2001-08-09 Frank Warmerdam * libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__ when checking for 64 bit architectures as per bugzilla bug 67. 2001-07-27 Frank Warmerdam * man/Makefile.in: add TIFFClientOpen link as per debian submitted bug 66. 2001-07-20 Frank Warmerdam * libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H has been included. 2001-07-19 Frank Warmerdam * libtiff/tif_open.c: Seek back to zero after failed read, before writing header. 2001-07-18 Frank Warmerdam * libtiff/tif_ojpeg.c: updates from Scott. Handles colors much better. Now depends on having patched libjpeg as per patch in contrib/ojpeg/*. 2001-07-17 Frank Warmerdam * */Makefile.in: added DESTDIR support. http://bugzilla.remotesensing.org/show_bug.cgi?id=60 2001-07-16 Frank Warmerdam * configure, libtiff/Makefile.in: applied OpenBSD patches as per: http://bugzilla.remotesensing.org/show_bug.cgi?id=61 2001-06-28 Frank Warmerdam * libtiff/tif_getimage.c: Fixed so that failure is properly reported by gtTileContig, gtStripContig, gtTileSeparate and gtStripSeparate. See http://bugzilla.remotesensing.org/show_bug.cgi?id=51 * tiffcmp.c: Fixed multi samples per pixel support for ContigCompare. Updated bug section of tiffcmp.1 to note tiled file issues. See http://bugzilla.remotesensing.org/show_bug.cgi?id=53 2001-06-22 Frank Warmerdam * configure: Changes for DSO generation on AIX provided by John Marquart . * configure, libtiff/Makeifle.in: Modified to build DSOs properly on Darwin thanks to Robert Krajewski (rpk@alum.mit.edu) and Keisuke Fujii (fujiik@jlcuxf.kek.jp). 2001-06-13 Frank Warmerdam * tools/tiff2rgba.c: added -n flag to avoid emitting alpha component. * man/tiff2rgba.1: new 2001-05-22 Frank Warmerdam * Added tiffset and tif_ojpeg to the dist lists in Makefile.in. 2001-05-13 Frank Warmerdam * libtiff/tools/thumbnail.c: changed default output compression to packbits from LZW since LZW isn't generally available. 2001-05-12 Frank Warmerdam * libtiff/tif_ojpeg.c: New. libtiff/tif_jpeg.c, tiffconf.h, tif_getimage.c: changes related to OJPEG support. Scott Marovich supplied OJPEG support. 2001-05-11 Frank Warmerdam * tiff.h: removed, it duplicates libtiff/tiff.h. 2001-05-08 Frank Warmerdam * libtiff/tif_dirinfo.c: moved pixar and copyright flags to ensure everything is in order. * libtiff/libtiff.def: added TIFFCreateDirectory and TIFFDefaultStripSize as per: http://bugzilla.remotesensing.org/show_bug.cgi?id=46 2001-05-02 Frank Warmerdam * libtiff/tif_dirinfo.c: Modified the TIFF_BYTE definition for TIFFTAG_PHOTOSHOP to use a writecount of TIFF_VARIABLE2 (-3) to force use of uint32 counts instead of short counts. * libtiff/tif_dirwrite.c: Added support for TIFF_VARIABLE2 in the case of writing TIFF_BYTE/TIFF_SBYTE fields. http://bugzilla.remotesensing.org/show_bug.cgi?id=43 2001-05-01 Frank Warmerdam * libtiff/tif_dirinfo.c: removed duplicate TIFFTAG_PHOTOSHOP as per bug report http://bugzilla.remotesensing.org/show_bug.cgi?id=44 2001-04-05 Frank Warmerdam * tiffio.h: removed C++ style comment. * configure: fixed up SCRIPT_SH/SHELL handling. * Makefile.in: Fixed SCRIPT_SH/SHELL handling. * config.guess: documented more variables as per bug 40. 2001-04-03 Frank Warmerdam * configure, *Makefile.in: Various changes to improve configuration for HP/UX specifically, and also in general. They include: - Try to handle /usr/bin/sh instead of /bin/sh where necessary. - Upgrade to HP/UX 10.x+ compiler, linker and dso options. - Fixed mmap() test to avoid MMAP_FIXED ... it isn't available on HP - Use -${MAKEFLAGS} in sub makes from makefiles. http://bugzilla.remotesensing.org/show_bug.cgi?id=40 2001-04-02 Frank Warmerdam * libtiff/tiff.h: Applied hac to try and resolve the problem with the inttypes.h include file on AIX. See http://bugzilla.remotesensing.org/show_bug.cgi?id=39 * VERSION: update to 3.5.7 beta in preparation for release. * configure/config.site: modified to check if -lm is needed for MACHDEPLIBS if not supplied by config.site. Needed for Darwin. * config.guess: updated wholesale to an FSF version apparently from 1998 (as opposed to 1994). This is mainly inspired by providing for MacOS X support. 2001-03-29 Frank Warmerdam * configure, Makefile.in, etc: added support for OPTIMIZER being set from config.site. 2001-03-28 Frank Warmerdam * fax2ps.c: Helge (libtiff at oldach.net) submitted fix: Here's a fix for fax2ps that corrects behaviour for non-Letter paper sizes. It fixes two problems: Without scaling (-S) the fax is now centered on the page size specified with -H and/or -W. Before, fax2ps was using an obscure and practially useless algorithm to allocate the image relative to Letter sized paper which sometime sled to useless whitespace on the paper, while at the same time cutting of the faxes printable area at the opposite border. Second, scaling now preserves aspect ratio, which makes unusual faxes (in particular short ones) print properly. See http://bugzilla.remotesensing.org/show_bug.cgi?id=35 * tiff2ps.c/tiff2ps.1: Substantial changes to tiff2ps by Bruce A. Mallett. See check message for detailed information on all the changes, including a faster encoder, fixes for level 2 PostScript, and support for the imagemask operator. 2001-03-27 Frank Warmerdam * libtiff/tiffio.h: Changed "#if LOGLUV_PUBLIC" to "#ifdef LOGLUV_PUBLIC" so it will work with VisualAge on AIX. http://bugzilla.remotesensing.org/show_bug.cgi?id=39 2001-03-16 Frank Warmerdam * tif_dirinfo.c: moved definition of copyright tag in field list. Apparently they have to be in sorted order by tag id. 2001-03-13 Frank Warmerdam * tif_getimage.c: Added support for 16bit minisblack/miniswhite images in RGBA interface. 2001-03-02 Frank Warmerdam * Added TIFFTAG_COPYRIGHT support. 2001-02-19 Frank Warmerdam * Brent Roman contributed updated tiffcp utility (and tiffcp.1) with support for extracting subimages with the ,n syntax, and also adding the -b bias removal flag. 2001-02-16 Frank Warmerdam * libtiff/libtiff.def: Brent Roman submitted new version adding serveral missing entry points. * libtiff/tif_dirinfo.c: don't declare tiffFieldInfo static on VMS. Some sort of weird VMS thing. http://bugzilla.remotesensing.org/show_bug.cgi?id=31 * tif_luv.c/tiff.h/tiffio.h: New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward (greg@shutterfly.com). He writes: 1) I improved the gamut-mapping function in tif_luv.c for imaginary colors, because some images were being super-saturated on the input side and this resulted in some strange color shifts in the output. 2) I added a psuedotag in tiff.h to control random dithering during LogLuv encoding. This is turned off by default for 32-bit LogLuv and on for 24-bit LogLuv output. Dithering improves the average color accuracy over the image. 3) I added a #define for LOG_LUV_PUBLIC, which is enabled by default in tiffio.h, to expose internal routines for converting between LogLuv and XYZ coordinates. This is helpful for writing more efficient, specialized conversion routines, especially for reading LogLuv files. Changes applied with minor edits. 2001-01-23 Frank Warmerdam * tif_fax3.c: keep rw_mode flag internal to fax3 state to remember whether we are encoding or decoding. This is to ensure graceful recovery if TIFFClientOpen() discovers an attempt to open a compressed file for "r+" access, and subsequently close it, as it resets the tif_mode flag to O_RDONLY in this case to avoid writes, confusing the compressor's concept of whether it is in encode or decode mode. 2001-01-08 Mike Welles * Makefile.in: Now cleaning up after itself after creating the .tar.gz and .zip 2001-01-07 Frank Warmerdam * html/libtiff.html: Fixed arguments in example for TIFFRGBAImageGet() as per bug report by Patrick Connor. 2000-12-28 Frank Warmerdam * Added RELEASE-DATE file to release file list. * Fixed libtiff/makefile.vc to make tiffvers.h not version.h. 2000-12-22 Mike Welles * added link to CVS mirror from index.html * updated html/internals.html to note that LZW compression is not supported by default. 2000-12-22 Frank Warmerdam * updated html/libtiff.html to not point at Niles' old JPL web site for the man pages, point at www.libtiff.org. 2000-12-21 Frank Warmerdam * libtiff/tif_apple.c: Applied "Carbon" support patches supplied by Leonard Rosenthol . May interfere with correct building on older systems. If so, please let me know. 2000-12-19 Mike Welles * Took out LZW Encoding from tif_lzw.c * Created HOWTO-RELEASE * Created html/v3.5.6.html * updated index.html 2000-12-01 Frank Warmerdam * Added patches for EOFB support in tif_fax3.c and tif_fax3.h. Patches supplied by Frank Cringle Example file at: ftp://ftp.remotesensing.org/pub/libtiff/eofb_396.tif 2000-11-24 Frank Warmerdam * libtiff/Makefile.in: Added an installPrivateHdrs and install-private target so that the private headers required by libgeotiff can be installed with the others. They are not installed by default. * libtiff/Makefile.in: Added @MACHLIBDEPS@ to LINUXdso and GNULDdso targets so libtiff.so will be built with an explicit dependency on libm.so. * libtiff/Makefile.in: Use softlinks to link libtiff.so.3 to libtiff.so.3.5.5. * libtiff/Makefile.in & configure: Remove all references to the ALPHA file, or ALPHA version logic. Added stuff about DIST_POINT in place of DIST_TYPE and the alpha release number stuff. 2000-11-22 Frank Warmerdam * I have applied a patch from Steffen Moeller to the configure script so that it now accepts the --prefix, and --exec-prefix directives. 2000-11-13 Frank Warmerdam * I have made a variety of modifications in an effort to ensure the TIFFLIB_VERSION macro is automatically generated from the RELEASE-DATE file which seems to be updated regularly. o mkversion.c now reads RELEASE-DATE and emits TIFFLIB_VERSION in version include file. o renamed version.h to tiffvers.h because we now have to install it with the public libtiff include files. o include tiffvers.h in tiffio.h. o updated tif_version.c to use tiffvers.h. o Updated Makefile.in accordingly. * As per http://bugzilla.remotesensing.org/show_bug.cgi?id=25 I have updated the win32 detection rules in tiffcomp.h. 2000-10-20 Frank Warmerdam * tif_getimage.c: Fixed RGBA translation for YCbCr images for which the strip/tile width and height aren't multiples of the sampling size. See http://bugzilla.remotesensing.org/show_bug.cgi?id=20 Some patches from Rick LaMont of Dot C Software. * Modified tif_packbits.c encoder to avoid compressing more data than provided if rowsize doesn't factor into provided data (such as occurs for YCbCr). 2000-10-19 Frank Warmerdam * tools/rgb2ycbcr.c: fixed output strip size to account for vertical roundup if rows_per_strip not a multiple of vertical sample size. 2000-10-16 Frank Warmerdam * tif_dir.c: Clear TIFF_ISTILED flag in TIFFDefaultDirectory as per http://bugzilla.remotesensing.org/show_bug.cgi?id=18 from vandrove@vc.cvut.cz. * Modified tif_packbits.c decoding to avoid overrunning the output buffer, and to issue a warning if data needs to be discarded. See http://bugzilla.remotesensing.org/show_bug.cgi?id=18 2000-10-12 Frank Warmerdam * Modified tiff2bw to ensure portions add to 100%, and that white is properly recovered. See bug http://bugzilla.remotesensing.org/show_bug.cgi?id=15 Patch c/o Stanislav Brabec 2000-09-30 Frank Warmerdam * Modified TIFFClientOpen() to emit an error on an attempt to open a comperessed file for update (O_RDWR/r+) access. This is because the compressor/decompressor code gets very confused when the mode is O_RDWR, assuming this means writing only. See bug http://bugzilla.remotesensing.org/show_bug.cgi?id=13 2000-09-27 Frank Warmerdam * Added GNULDdso target an`d switched linux and freebsd to use it. 2000-09-26 Frank Warmerdam * Applied patch for 0x0000 sequences in tif_fax3.h's definition of EXPAND1D() as per bug 11 (from Roman). 2000-09-25 Frank Warmerdam * Fixed tiffcomp.h to avoid win32 stuff if unix #defined, to improve cygwin compatibility. * Applied patch from Roman Shpount to tif_fax3.c. This seems to be a proper fix to the buffer sizing problem. See http://bugzilla.remotesensing.org/show_bug.cgi?id=11 * Fixed tif_getimage.c to fix overrun bug with YCbCr images without downsampling. http://bugzilla.remotesensing.org/show_bug.cgi?id=10 Thanks to Nick Lamb for reporting the bug and proving the patch. 2000-09-18 Frank Warmerdam * Fixed tif_jpeg.c so avoid destroying the decompressor before we are done access data thanks to bug report from: Michael Eckstein . * Reverted tif_flush change. 2000-09-14 Frank Warmerdam * tif_flush.c: Changed so that TIFFFlushData() doesn't return an error when TIFF_BEENWRITING is not set. This ensures that the directory contents can still be flushed by TIFFFlush(). 2000-08-14 Frank Warmerdam * tif_open.c: Don't set MMAP for O_RDWR files. * tif_open.c: Set STRIPCHOP_DEFAULT for O_RDWR as well as O_RDONLY so that files opened for update can be strip chopped too. * tif_read.c: fixed up bug with files missing rowsperstrip and the strips per separation fix done a few weeks ago. 2000-07-17 Frank Warmerdam * Tentatively added support for SAMPLEFORMAT_COMPLEXIEEEFP, and SAMPLEFORMAT_COMPLEXINT. 2000-07-13 Mike Welles * index.html, bugs.html: added bugzilla info. 2000-07-12 Frank Warmerdam * tif_read.c: fix subtle bug with determining the number of rows for strips that are the last strip in a separation but not the last strip of all in TIFFReadEncodedStrip(). * Applied 16/32 bit fix to tif_fax3.c. Fix supplied by Peter Skarpetis 2000-06-15 Frank Warmerdam * Modified tiffio.h logic with regard to including windows.h. It won't include it when building with __CYGWIN__. 2000-05-11 Frank Warmerdam * README: update to mention www.libtiff.org, don't list Sam's old email address. * configure: Fixed DSO test for Linux as per patch from Jan Van Buggenhout . 2000-04-21 Frank Warmerdam * libtiff/tif_dirread.c: Don't use estimate strip byte count for one tile/strip images with an offset, and byte count of zero. These could be "unpopulated" images. 2000-04-18 Frank Warmerdam * contrib/addtiffo: Added "averaging" resampling option. * tools/tiffsplit.c: Copy TIFFTAG_SAMPLEFORMAT. Tue Apr 18 16:18:08 2000 Frank Warmerdam * tools/Makefile.in: Modified to install properly on SGI. 2000-04-12 Mike Welles * configure: Fixed stupid mistake in libc6 test on Linux 2000-04-04 Mike Welles * tif_win32.c: Applied patch to fix overreads and ovverwrites caught by BoundsChecker. From Arvan Pritchard (untested). * tif_getimage.c: Applied patch to silence VC6 warnings. From Arvan Pritchard * tif_lzw.c: Applied patch to silence VC6 warnings. From Arvan Pritchard 2000-03-28 Frank Warmerdam * Added contrib/stream (stream io) code submitted by Avi Bleiweiss. 2000-03-28 Frank Warmerdam *** 3.5.5 release *** * fax2ps: Fixed mixup of width and height in bounding box statement as per submission by Nalin Dahyabhai . 2000-03-27 Mike Welles * fax2ps: Modified printruns to take uint32 instead of uint16. Patch courtesy of Bernt Herd 2000-03-20 Mike Welles * configure: added test for libc6 for linux targets. Bug reported by Stanislav Brabec * Added 3.5 docs to html/Makefile.in. Thanks to Stanislav Brabec * configure: fixed bugs in sed scripts (applied sed script s:/@:s;@:;s:/s;;:;: to configure). fix submitted to Stanislav Brabec * tools/iptcutil was not in files list, and wasn't being added to tar archive. Updated Makefile.in. 2000-03-17 Frank Warmerdam * tif_fax3.c: Fixed serious bug introduced during the uint16->uint32 conversion for the run arrays. 2000-03-03 Frank Warmerdam * Set td_sampleformat default to SAMPLEFORMAT_UINT instead of SAMPLEFORMAT_VOID in TIFFDefaultDirectory() in tif_dir.c. 2000-03-02 Frank Warmerdam * Added "GetDefaulted" support for TIFFTAG_SAMPLEFORMAT in tif_aux.c. * Patched tif_fax3.c so that dsp->runs is allocated a bit bigger to avoid overruns encountered with frle_bug.tif. Tue Feb 15 22:01:05 2000 Frank Warmerdam * Fixed tools/tiffcmp so that stopondiff testing works. Patch care of Joseph Orost . 2000-01-28 * Modified tif_unix.c to support 2-4GB seeks if USE_64BIT_API is set to 1, and added default (off) setting in tiffconf.h. This should eventually be set by the configure script somehow. The original work on all these 2-4GB changes was done by Peter Smith (psmith@creo.com). * Modified tif_win32.c to support 2-4GB seeks. * tentatively changed toff_t to be unsigned instead of signed to facilitate support for 2-4GB files. * Updated a variety of files to use toff_t. Fixed some mixups between toff_t and tsize_t. Fri Jan 28 10:13:49 2000 Frank Warmerdam * Largely reimplemented contrib/addtiffo to avoid temp files, updating the TIFF file in place. Fixed a few other bugs to. * Set tif_rawdatasize to zero when freeing raw data buffer in TIFFWriteDirectory(). * Enabled "REWRITE_HACK" in tif_write.c by default. * Fix bug in tif_write.c when switching between reading one directory and writing to another. * Made TIFFWriteCheck() public, and added TIFFCreateDirectory() Wed Jan 5 12:37:48 2000 Frank Warmerdam * Added TIFFmemory(3t) functions to libtiff.def. Tue Jan 4 13:39:00 2000 Frank Warmerdam * Added libtiff/libtiff.def to TIFFILES distribution list. Mon Dec 27 12:13:39 EST 1999 Mike Welles * Created lzw compression kit, as a new module (libtiff-lzw-compression-kit). * Altered descriptions in tools to reflect "by default" lzw not supported * Updated index.html to note lzw compression kit. Tue Dec 21 14:01:51 1999 Frank Warmerdam * Added fax3sm_winnt.c to distribution list in Makefile.in. Tue Dec 21 11:04:45 EST 1999 Mike Welles *** 3.5.4 release *** * Aadded Pixar tag support. Contributed by Phil Beffery * Made one more change to tif_dir.c for removal of LZW compression. Also added notice when LZW compression invoked. * Changed default compression in tools to TIFF_PACKBITS, and changed usage descriptions in tools to reflect removal of LZW compression Mon Dec 20 18:39:02 EST 1999 Mike Welles * Fixed bug that caused LZW (non) compression to segfault. Added warning about LZW compression removed being removed, and why. * Added nostrip to install in tools/Makefile.in so that debugging symbols are kept. Tue Dec 7 12:04:47 EST 1999 Mike Welles * Added patch from Ivo Penzar , supporting Adobe ZIP deflate. Untested. Sat Dec 4 15:47:11 1999 Frank Warmerdam * Made Packbits the default compression in tools/tiff2rgba.c instead of LZW. Tue Nov 30 14:41:43 1999 Frank Warmerdam *** 3.5.3. release *** * Added tif_luv to contrib/djgpp/Makefile.lib. Tue Nov 30 14:15:32 EST 1999 Mike Welles * Added zip creation to relase makefile target * Added html for TIFFWriteTile.3t man page. Tue Nov 30 09:20:16 1999 Frank Warmerdam * Added some changes to tif_write.c to support rewriting existing fixed sized tiles and strips. Code mods disabled by default, only enabled if REWRITE_HACK is defined for now. Mon Nov 29 11:43:42 1999 Frank Warmerdam * Added TIFFWriteTile.3t man page. Sun Nov 28 20:36:18 1999 Frank Warmerdam * Added notes on use of makefile.vc in build.html, and fixed email subscription address. 199-11-28 Mike Welles * Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c * Did some casts cleaning up to reduce compiler warnings in tif_fax3.c, from Bruce Carmeron -- modifications of changes made by Frank (sun cc still complained on cast). * Added tiffconf.h to install target per request from Bill Radcliffe : "We need a way for ImageMagick to know features have been compiled into the TIFF library in order to handle things properly". Sat Nov 27 16:49:21 1999 Frank Warmerdam * fixed various VC++ warnings as suggested by Gilles Vollant . Wed Nov 24 12:08:16 1999 Frank Warmerdam * Modified TIFFquery.3t man pages info on TIFFIsByteSwapped() to not imply applications are responsible for image data swapping. 1999-11-22 Mike Welles * HTML-ized the man pages, added to html/man * Removed LZW Compression to comply with Unisys patent extortion. 1999-09-29 Mike Welles * Corrected one remaining 16 -> 32 bit value in tif_fax3.c, From Ivo Penzar 1999-09-26 Mike Welles *** 3.5.2 release *** * Corrected alpha versioning. * Removed distinction between alpha and release targets in Makefile.in. * added release.stamp target, which tags cvs tree, and updates "RELEASE-DATE" * added releasediff target, which diffs tree with source as of date in "RELEASE-DATE" * Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving away from alpha/non-alpha distinctions). * updated html to reflect release 1999-09-23 * Set O_BINARY for tif_unix.c open() ... used on cygwin for instance. * Added CYGWIN case in configure. Fri Sep 17 00:13:51 CEST 1999 Mike Welles * Applied Francois Dagand's patch to handle fax decompression bug. (sizes >= 65536 were failing) Tue Sep 14 21:31:43 1999 Frank Warmerdam * Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested by Christopher Lawton Wed Sep 8 08:19:18 1999 Frank Warmerdam * Added IRIX/gcc, and OSF/1 4.x support on behalf of Albert Chin-A-Young * Added TIFFReassignTagToIgnore() API on behalf of Bruce Cameron . Man page still pending. Wed Aug 25 11:39:07 1999 Frank Warmerdam * Added test target in Makefile, test_pics.sh script and pics/*.rpt files to provide for a rudimentary testsuite. * Added contrib/tags back from old distribution ... fixed up a bit. 1999-08-16 * Added simple makefile.vc makefiles for building with MS VC++ on Windows NT/98/95 in console mode. Stuff in contrib/win* make give better solutions for some users. Mon Aug 16 21:52:11 1999 Frank Warmerdam * Added addtiffo (add overviews to a TIFF file) in contrib. Didn't put it in tools since part of it is in C++. 1999-08-16 Michael L. Welles * Updated html/index.html with anon CVS instructions. Mon Aug 16 13:18:41 1999 Frank Warmerdam * pre-remove so link before softlink in LINUXdso action in libtiff/Makefile.in to avoid failure on LINUXdso builds other than the first. * Fixed problem with cvtcmap() in tif_getimage.c modifying the colormaps owned by the TIFF handle itself when trying to fixup wrong (eight bit) colormaps. Corrected by maintaining a private copy of the colormap. * Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in tif_getimage.c. * CVS Repository placed at remotesensing.org. ChangeLog added.