http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/NEWS ---------------------------------------------------------------------- diff --git a/third_party/gperftools/NEWS b/third_party/gperftools/NEWS deleted file mode 100644 index 1f52438..0000000 --- a/third_party/gperftools/NEWS +++ /dev/null @@ -1,588 +0,0 @@ -== 10 Jan 2014 == - -gperftools 2.4 is out! The code is exactly same as 2.4rc. - -== 28 Dec 2014 == - -gperftools 2.4rc is out! - -Here are changes since 2.3: - -* enabled aggressive decommit option by default. It was found to - significantly improve memory fragmentation with negligible impact on - performance. (Thanks to investigation work performed by Adhemerval - Zanella) - -* added ./configure flags for tcmalloc pagesize and tcmalloc - allocation alignment. Larger page sizes have been reported to - improve performance occasionally. (Patch by Raphael Moreira Zinsly) - -* sped-up hot-path of malloc/free. By about 5% on static library and - about 10% on shared library. Mainly due to more efficient checking - of malloc hooks. - -* improved stacktrace capturing in cpu profiler (due to issue found by - Arun Sharma). As part of that issue pprof's handling of cpu profiles - was also improved. - -== 7 Dec 2014 == - -gperftools 2.3 is out! - -Here are changes since 2.3rc: - -* (issue 658) correctly close socketpair fds on failure (patch by glider) - -* libunwind integration can be disabled at configure time (patch by - Raphael Moreira Zinsly) - -* libunwind integration is disabled by default for ppc64 (patch by - Raphael Moreira Zinsly) - -* libunwind integration is force-disabled for OSX. It was not used by - default anyways. Fixes compilation issue I saw. - -== 2 Nov 2014 == - -gperftools 2.3rc is out! - -Most small improvements in this release were made to pprof tool. - -New experimental Linux-only (for now) cpu profiling mode is a notable -big improvement. - -Here are notable changes since 2.2.1: - -* (issue-631) fixed debugallocation miscompilation on mmap-less - platforms (courtesy of user iamxujian) - -* (issue-630) reference to wrong PROFILE (vs. correct CPUPROFILE) - environment variable was fixed (courtesy of WenSheng He) - -* pprof now has option to display stack traces in output for heap - checker (courtesy of Michael Pasieka) - -* (issue-636) pprof web command now works on mingw - -* (issue-635) pprof now handles library paths that contain spaces - (courtesy of user mich...@sebesbefut.com) - -* (issue-637) pprof now has an option to not strip template arguments - (patch by jiakai) - -* (issue-644) possible out-of-bounds access in GetenvBeforeMain was - fixed (thanks to user abyss.7) - -* (issue-641) pprof now has an option --show_addresses (thanks to user - yurivict). New option prints instruction address in addition to - function name in stack traces - -* (issue-646) pprof now works around some issues of addr2line - reportedly when DWARF v4 format is used (patch by Adam McNeeney) - -* (issue-645) heap profiler exit message now includes remaining memory - allocated info (patch by user yurivict) - -* pprof code that finds location of /proc/<pid>/maps in cpu profile - files is now fixed (patch by Ricardo M. Correia) - -* (issue-654) pprof now handles "split text segments" feature of - Chromium for Android. (patch by simonb) - -* (issue-655) potential deadlock on windows caused by early call to - getenv in malloc initialization code was fixed (bug reported and fix - proposed by user zndmitry) - -* incorrect detection of arm 6zk instruction set support - (-mcpu=arm1176jzf-s) was fixed. (Reported by pedronavf on old - issue-493) - -* new cpu profiling mode on Linux is now implemented. It sets up - separate profiling timers for separate threads. Which improves - accuracy of profiling on Linux a lot. It is off by default. And is - enabled if both librt.f is loaded and CPUPROFILE_PER_THREAD_TIMERS - environment variable is set. But note that all threads need to be - registered via ProfilerRegisterThread. - -== 21 Jun 2014 == - -gperftools 2.2.1 is out! - -Here's list of fixes: - -* issue-626 was closed. Which fixes initialization statically linked - tcmalloc. - -* issue 628 was closed. It adds missing header file into source - tarball. This fixes for compilation on PPC Linux. - -== 3 May 2014 == - -gperftools 2.2 is out! - -Here are notable changes since 2.2rc: - -* issue 620 (crash on windows when c runtime dll is reloaded) was - fixed - -== 19 Apr 2014 == - -gperftools 2.2rc is out! - -Here are notable changes since 2.1: - -* a number of fixes for a number compilers and platforms. Notably - Visual Studio 2013, recent mingw with c++ threads and some OSX - fixes. - -* we now have mips and mips64 support! (courtesy of Jovan Zelincevic, - Jean Lee, user xiaoyur347 and others) - -* we now have aarch64 (aka arm64) support! (contributed by Riku - Voipio) - -* there's now support for ppc64-le (by Raphael Moreira Zinsly and - Adhemerval Zanella) - -* there's now some support of uclibc (contributed by user xiaoyur347) - -* google/ headers will now give you deprecation warning. They are - deprecated since 2.0 - -* there's now new api: tc_malloc_skip_new_handler (ported from chromium - fork) - -* issue-557: added support for dumping heap profile via signal (by - Jean Lee) - -* issue-567: Petr Hosek contributed SysAllocator support for windows - -* Joonsoo Kim contributed several speedups for central freelist code - -* TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES environment variable now works - -* configure scripts are now using AM_MAINTAINER_MODE. It'll only - affect folks who modify source from .tar.gz and want automake to - automatically rebuild Makefile-s. See automake documentation for - that. - -* issue-586: detect main executable even if PIE is active (based on - patch by user themastermind1). Notably, it fixes profiler use with - ruby. - -* there is now support for switching backtrace capturing method at - runtime (via TCMALLOC_STACKTRACE_METHOD and - TCMALLOC_STACKTRACE_METHOD_VERBOSE environment variables) - -* there is new backtrace capturing method using -finstrument-functions - prologues contributed by user xiaoyur347 - -* few cases of crashes/deadlocks in profiler were addressed. See - (famous) issue-66, issue-547 and issue-579. - -* issue-464 (memory corruption in debugalloc's realloc after - memallign) is now fixed - -* tcmalloc is now able to release memory back to OS on windows - (issue-489). The code was ported from chromium fork (by a number of - authors). - -* Together with issue-489 we ported chromium's "aggressive decommit" - mode. In this mode (settable via malloc extension and via - environment variable TCMALLOC_AGGRESSIVE_DECOMMIT), free pages are - returned back to OS immediately. - -* MallocExtension::instance() is now faster (based on patch by - Adhemerval Zanella) - -* issue-610 (hangs on windows in multibyte locales) is now fixed - -The following people helped with ideas or patches (based on git log, -some contributions purely in bugtracker might be missing): Andrew -C. Morrow, yurivict, Wang YanQing, Thomas Klausner, -davide.itali...@10gen.com, Dai MIKURUBE, Joon-Sung Um, Jovan -Zelincevic, Jean Lee, Petr Hosek, Ben Avison, drussel, Joonsoo Kim, -Hannes Weisbach, xiaoyur347, Riku Voipio, Adhemerval Zanella, Raphael -Moreira Zinsly - -== 30 July 2013 == - -gperftools 2.1 is out! - -Just few fixes where merged after rc. Most notably: - -* Some fixes for debug allocation on POWER/Linux - -== 20 July 2013 == - -gperftools 2.1rc is out! - -As a result of more than a year of contributions we're ready for 2.1 -release. - -But before making that step I'd like to create RC and make sure people -have chance to test it. - -Here are notable changes since 2.0: - -* fixes for building on newer platforms. Notably, there's now initial - support for x32 ABI (--enable-minimal only at this time)) - -* new getNumericProperty stats for cache sizes - -* added HEAP_PROFILER_TIME_INTERVAL variable (see documentation) - -* added environment variable to control heap size (TCMALLOC_HEAP_LIMIT_MB) - -* added environment variable to disable release of memory back to OS - (TCMALLOC_DISABLE_MEMORY_RELEASE) - -* cpu profiler can now be switched on and off by sending it a signal - (specified in CPUPROFILESIGNAL) - -* (issue 491) fixed race-ful spinlock wake-ups - -* (issue 496) added some support for fork-ing of process that is using - tcmalloc - -* (issue 368) improved memory fragmentation when large chunks of - memory are allocated/freed - -== 03 February 2012 == - -I've just released gperftools 2.0 - -The `google-perftools` project has been renamed to `gperftools`. I -(csilvers) am stepping down as maintainer, to be replaced by -David Chappelle. Welcome to the team, David! David has been an -an active contributor to perftools in the past -- in fact, he's the -only person other than me that already has commit status. I am -pleased to have him take over as maintainer. - -I have both renamed the project (the Google Code site renamed a few -weeks ago), and bumped the major version number up to 2, to reflect -the new community ownership of the project. Almost all the -[http://gperftools.googlecode.com/svn/tags/gperftools-2.0/ChangeLog changes] -are related to the renaming. - -The main functional change from google-perftools 1.10 is that -I've renamed the `google/` include-directory to be `gperftools/` -instead. New code should `#include <gperftools/tcmalloc.h>`/etc. -(Most users of perftools don't need any perftools-specific includes at -all, so this is mostly directed to "power users.") I've kept the old -names around as forwarding headers to the new, so `#include -<google/tcmalloc.h>` will continue to work. - -(The other functional change which I snuck in is getting rid of some -bash-isms in one of the unittest driver scripts, so it could run on -Solaris.) - -Note that some internal names still contain the text `google`, such as -the `google_malloc` internal linker section. I think that's a -trickier transition, and can happen in a future release (if at all). - - -=== 31 January 2012 === - -I've just released perftools 1.10 - -There is an API-incompatible change: several of the methods in the -`MallocExtension` class have changed from taking a `void*` to taking a -`const void*`. You should not be affected by this API change -unless you've written your own custom malloc extension that derives -from `MallocExtension`, but since it is a user-visible change, I have -upped the `.so` version number for this release. - -This release focuses on improvements to linux-syscall-support.h, -including ARM and PPC fixups and general cleanups. I hope this will -magically fix an array of bugs people have been seeing. - -There is also exciting news on the porting front, with support for -patching win64 assembly contributed by IBM Canada! This is an -important step -- perhaps the most difficult -- to getting perftools -to work on 64-bit windows using the patching technique (it doesn't -affect the libc-modification technique). `premable_patcher_test` has -been added to help test these changes; it is meant to compile under -x86_64, and won't work under win32. - -For the full list of changes, including improved `HEAP_PROFILE_MMAP` -support, see the -[http://gperftools.googlecode.com/svn/tags/google-perftools-1.10/ChangeLog ChangeLog]. - - -=== 24 January 2011 === - -The `google-perftools` Google Code page has been renamed to -`gperftools`, in preparation for the project being renamed to -`gperftools`. In the coming weeks, I'll be stepping down as -maintainer for the perftools project, and as part of that Google is -relinquishing ownership of the project; it will now be entirely -community run. The name change reflects that shift. The 'g' in -'gperftools' stands for 'great'. :-) - -=== 23 December 2011 === - -I've just released perftools 1.9.1 - -I missed including a file in the tarball, that is needed to compile on -ARM. If you are not compiling on ARM, or have successfully compiled -perftools 1.9, there is no need to upgrade. - - -=== 22 December 2011 === - -I've just released perftools 1.9 - -This change has a slew of improvements, from better ARM and freebsd -support, to improved performance by moving some code outside of locks, -to better pprof reporting of code with overloaded functions. - -The full list of changes is in the -[http://google-perftools.googlecode.com/svn/tags/google-perftools-1.9/ChangeLog ChangeLog]. - - -=== 26 August 2011 === - -I've just released perftools 1.8.3 - -The star-crossed 1.8 series continues; in 1.8.1, I had accidentally -removed some code that was needed for FreeBSD. (Without this code -many apps would crash at startup.) This release re-adds that code. -If you are not on FreeBSD, or are using FreeBSD with perftools 1.8 or -earlier, there is no need to upgrade. - -=== 11 August 2011 === - -I've just released perftools 1.8.2 - -I was incorrectly calculating the patch-level in the configuration -step, meaning the TC_VERSION_PATCH #define in tcmalloc.h was wrong. -Since the testing framework checks for this, it was failing. Now it -should work again. This time, I was careful to re-run my tests after -upping the version number. :-) - -If you don't care about the TC_VERSION_PATCH #define, there's no -reason to upgrae. - -=== 26 July 2011 === - -I've just released perftools 1.8.1 - -I was missing an #include that caused the build to break under some -compilers, especially newer gcc's, that wanted it. This only affects -people who build from source, so only the .tar.gz file is updated from -perftools 1.8. If you didn't have any problems compiling perftools -1.8, there's no reason to upgrade. - -=== 15 July 2011 === - -I've just released perftools 1.8 - -Of the many changes in this release, a good number pertain to porting. -I've revamped OS X support to use the malloc-zone framework; it should -now Just Work to link in tcmalloc, without needing -`DYLD_FORCE_FLAT_NAMESPACE` or the like. (This is a pretty major -change, so please feel free to report feedback at -google-perfto...@googlegroups.com.) 64-bit Windows support is also -improved, as is ARM support, and the hooks are in place to improve -FreeBSD support as well. - -On the other hand, I'm seeing hanging tests on Cygwin. I see the same -hanging even with (the old) perftools 1.7, so I'm guessing this is -either a problem specific to my Cygwin installation, or nobody is -trying to use perftools under Cygwin. If you can reproduce the -problem, and even better have a solution, you can report it at -google-perfto...@googlegroups.com. - -Internal changes include several performance and space-saving tweaks. -One is user-visible (but in "stealth mode", and otherwise -undocumented): you can compile with `-DTCMALLOC_SMALL_BUT_SLOW`. In -this mode, tcmalloc will use less memory overhead, at the cost of -running (likely not noticeably) slower. - -There are many other changes as well, too numerous to recount here, -but present in the -[http://google-perftools.googlecode.com/svn/tags/google-perftools-1.8/ChangeLog ChangeLog]. - - -=== 7 February 2011 === - -Thanks to endlessr..., who -[http://code.google.com/p/google-perftools/issues/detail?id=307 identified] -why some tests were failing under MSVC 10 in release mode. It does not look -like these failures point toward any problem with tcmalloc itself; rather, the -problem is with the test, which made some assumptions that broke under the -some aggressive optimizations used in MSVC 10. I'll fix the test, but in -the meantime, feel free to use perftools even when compiled under MSVC -10. - -=== 4 February 2011 === - -I've just released perftools 1.7 - -I apologize for the delay since the last release; so many great new -patches and bugfixes kept coming in (and are still coming in; I also -apologize to those folks who have to slip until the next release). I -picked this arbitrary time to make a cut. - -Among the many new features in this release is a multi-megabyte -reduction in the amount of tcmalloc overhead uder x86_64, improved -performance in the case of contention, and many many bugfixes, -especially architecture-specific bugfixes. See the -[http://google-perftools.googlecode.com/svn/tags/google-perftools-1.7/ChangeLog ChangeLog] -for full details. - -One architecture-specific change of note is added comments in the -[http://google-perftools.googlecode.com/svn/tags/perftools-1.7/README README] -for using tcmalloc under OS X. I'm trying to get my head around the -exact behavior of the OS X linker, and hope to have more improvements -for the next release, but I hope these notes help folks who have been -having trouble with tcmalloc on OS X. - -*Windows users*: I've heard reports that some unittests fail on -Windows when compiled with MSVC 10 in Release mode. All tests pass in -Debug mode. I've not heard of any problems with earlier versions of -MSVC. I don't know if this is a problem with the runtime patching (so -the static patching discussed in README_windows.txt will still work), -a problem with perftools more generally, or a bug in MSVC 10. Anyone -with windows expertise that can debug this, I'd be glad to hear from! - - -=== 5 August 2010 === - -I've just released perftools 1.6 - -This version also has a large number of minor changes, including -support for `malloc_usable_size()` as a glibc-compatible alias to -`malloc_size()`, the addition of SVG-based output to `pprof`, and -experimental support for tcmalloc large pages, which may speed up -tcmalloc at the cost of greater memory use. To use tcmalloc large -pages, see the -[http://google-perftools.googlecode.com/svn/tags/perftools-1.6/INSTALL -INSTALL file]; for all changes, see the -[http://google-perftools.googlecode.com/svn/tags/perftools-1.6/ChangeLog -ChangeLog]. - -OS X NOTE: improvements in the profiler unittest have turned up an OS -X issue: in multithreaded programs, it seems that OS X often delivers -the profiling signal (from sigitimer()) to the main thread, even when -it's sleeping, rather than spawned threads that are doing actual work. -If anyone knows details of how OS X handles SIGPROF events (from -setitimer) in threaded programs, and has insight into this problem, -please send mail to google-perfto...@googlegroups.com. - -To see if you're affected by this, look for profiling time that pprof -attributes to `___semwait_signal`. This is work being done in other -threads, that is being attributed to sleeping-time in the main thread. - - -=== 20 January 2010 === - -I've just released perftools 1.5 - -This version has a slew of changes, leading to somewhat faster -performance and improvements in portability. It adds features like -`ITIMER_REAL` support to the cpu profiler, and `tc_set_new_mode` to -mimic the windows function of the same name. Full details are in the -[http://google-perftools.googlecode.com/svn/tags/perftools-1.5/ChangeLog -ChangeLog]. - - -=== 11 September 2009 === - -I've just released perftools 1.4 - -The major change this release is the addition of a debugging malloc -library! If you link with `libtcmalloc_debug.so` instead of -`libtcmalloc.so` (and likewise for the `minimal` variants) you'll get -a debugging malloc, which will catch double-frees, writes to freed -data, `free`/`delete` and `delete`/`delete[]` mismatches, and even -(optionally) writes past the end of an allocated block. - -We plan to do more with this library in the future, including -supporting it on Windows, and adding the ability to use the debugging -library with your default malloc in addition to using it with -tcmalloc. - -There are also the usual complement of bug fixes, documented in the -ChangeLog, and a few minor user-tunable knobs added to components like -the system allocator. - - -=== 9 June 2009 === - -I've just released perftools 1.3 - -Like 1.2, this has a variety of bug fixes, especially related to the -Windows build. One of my bugfixes is to undo the weird `ld -r` fix to -`.a` files that I introduced in perftools 1.2: it caused problems on -too many platforms. I've reverted back to normal `.a` files. To work -around the original problem that prompted the `ld -r` fix, I now -provide `libtcmalloc_and_profiler.a`, for folks who want to link in -both. - -The most interesting API change is that I now not only override -`malloc`/`free`/etc, I also expose them via a unique set of symbols: -`tc_malloc`/`tc_free`/etc. This enables clients to write their own -memory wrappers that use tcmalloc: -{{{ - void* malloc(size_t size) { void* r = tc_malloc(size); Log(r); return r; } -}}} - - -=== 17 April 2009 === - -I've just released perftools 1.2. - -This is mostly a bugfix release. The major change is internal: I have -a new system for creating packages, which allows me to create 64-bit -packages. (I still don't do that for perftools, because there is -still no great 64-bit solution, with libunwind still giving problems -and --disable-frame-pointers not practical in every environment.) - -Another interesting change involves Windows: a -[http://code.google.com/p/google-perftools/issues/detail?id=126 new -patch] allows users to choose to override malloc/free/etc on Windows -rather than patching, as is done now. This can be used to create -custom CRTs. - -My fix for this -[http://groups.google.com/group/google-perftools/browse_thread/thread/1ff9b50043090d9d/a59210c4206f2060?lnk=gst&q=dynamic#a59210c4206f2060 -bug involving static linking] ended up being to make libtcmalloc.a and -libperftools.a a big .o file, rather than a true `ar` archive. This -should not yield any problems in practice -- in fact, it should be -better, since the heap profiler, leak checker, and cpu profiler will -now all work even with the static libraries -- but if you find it -does, please file a bug report. - -Finally, the profile_handler_unittest provided in the perftools -testsuite (new in this release) is failing on FreeBSD. The end-to-end -test that uses the profile-handler is passing, so I suspect the -problem may be with the test, not the perftools code itself. However, -I do not know enough about how itimers work on FreeBSD to be able to -debug it. If you can figure it out, please let me know! - -=== 11 March 2009 === - -I've just released perftools 1.1! - -It has many changes since perftools 1.0 including - - * Faster performance due to dynamically sized thread caches - * Better heap-sampling for more realistic profiles - * Improved support on Windows (MSVC 7.1 and cygwin) - * Better stacktraces in linux (using VDSO) - * Many bug fixes and feature requests - -Note: if you use the CPU-profiler with applications that fork without -doing an exec right afterwards, please see the README. Recent testing -has shown that profiles are unreliable in that case. The problem has -existed since the first release of perftools. We expect to have a fix -for perftools 1.2. For more details, see -[http://code.google.com/p/google-perftools/issues/detail?id=105 issue 105]. - -Everyone who uses perftools 1.0 is encouraged to upgrade to perftools -1.1. If you see any problems with the new release, please file a bug -report at http://code.google.com/p/google-perftools/issues/list. - -Enjoy!
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/README ---------------------------------------------------------------------- diff --git a/third_party/gperftools/README b/third_party/gperftools/README deleted file mode 100644 index bffc617..0000000 --- a/third_party/gperftools/README +++ /dev/null @@ -1,265 +0,0 @@ -IMPORTANT NOTE FOR 64-BIT USERS -------------------------------- -There are known issues with some perftools functionality on x86_64 -systems. See 64-BIT ISSUES, below. - - -TCMALLOC --------- -Just link in -ltcmalloc or -ltcmalloc_minimal to get the advantages of -tcmalloc -- a replacement for malloc and new. See below for some -environment variables you can use with tcmalloc, as well. - -tcmalloc functionality is available on all systems we've tested; see -INSTALL for more details. See README_windows.txt for instructions on -using tcmalloc on Windows. - -NOTE: When compiling with programs with gcc, that you plan to link -with libtcmalloc, it's safest to pass in the flags - - -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free - -when compiling. gcc makes some optimizations assuming it is using its -own, built-in malloc; that assumption obviously isn't true with -tcmalloc. In practice, we haven't seen any problems with this, but -the expected risk is highest for users who register their own malloc -hooks with tcmalloc (using gperftools/malloc_hook.h). The risk is -lowest for folks who use tcmalloc_minimal (or, of course, who pass in -the above flags :-) ). - - -HEAP PROFILER -------------- -See doc/heap-profiler.html for information about how to use tcmalloc's -heap profiler and analyze its output. - -As a quick-start, do the following after installing this package: - -1) Link your executable with -ltcmalloc -2) Run your executable with the HEAPPROFILE environment var set: - $ HEAPPROFILE=/tmp/heapprof <path/to/binary> [binary args] -3) Run pprof to analyze the heap usage - $ pprof <path/to/binary> /tmp/heapprof.0045.heap # run 'ls' to see options - $ pprof --gv <path/to/binary> /tmp/heapprof.0045.heap - -You can also use LD_PRELOAD to heap-profile an executable that you -didn't compile. - -There are other environment variables, besides HEAPPROFILE, you can -set to adjust the heap-profiler behavior; c.f. "ENVIRONMENT VARIABLES" -below. - -The heap profiler is available on all unix-based systems we've tested; -see INSTALL for more details. It is not currently available on Windows. - - -HEAP CHECKER ------------- -See doc/heap-checker.html for information about how to use tcmalloc's -heap checker. - -In order to catch all heap leaks, tcmalloc must be linked *last* into -your executable. The heap checker may mischaracterize some memory -accesses in libraries listed after it on the link line. For instance, -it may report these libraries as leaking memory when they're not. -(See the source code for more details.) - -Here's a quick-start for how to use: - -As a quick-start, do the following after installing this package: - -1) Link your executable with -ltcmalloc -2) Run your executable with the HEAPCHECK environment var set: - $ HEAPCHECK=1 <path/to/binary> [binary args] - -Other values for HEAPCHECK: normal (equivalent to "1"), strict, draconian - -You can also use LD_PRELOAD to heap-check an executable that you -didn't compile. - -The heap checker is only available on Linux at this time; see INSTALL -for more details. - - -CPU PROFILER ------------- -See doc/cpu-profiler.html for information about how to use the CPU -profiler and analyze its output. - -As a quick-start, do the following after installing this package: - -1) Link your executable with -lprofiler -2) Run your executable with the CPUPROFILE environment var set: - $ CPUPROFILE=/tmp/prof.out <path/to/binary> [binary args] -3) Run pprof to analyze the CPU usage - $ pprof <path/to/binary> /tmp/prof.out # -pg-like text output - $ pprof --gv <path/to/binary> /tmp/prof.out # really cool graphical output - -There are other environment variables, besides CPUPROFILE, you can set -to adjust the cpu-profiler behavior; cf "ENVIRONMENT VARIABLES" below. - -The CPU profiler is available on all unix-based systems we've tested; -see INSTALL for more details. It is not currently available on Windows. - -NOTE: CPU profiling doesn't work after fork (unless you immediately - do an exec()-like call afterwards). Furthermore, if you do - fork, and the child calls exit(), it may corrupt the profile - data. You can use _exit() to work around this. We hope to have - a fix for both problems in the next release of perftools - (hopefully perftools 1.2). - - -EVERYTHING IN ONE ------------------ -If you want the CPU profiler, heap profiler, and heap leak-checker to -all be available for your application, you can do: - gcc -o myapp ... -lprofiler -ltcmalloc - -However, if you have a reason to use the static versions of the -library, this two-library linking won't work: - gcc -o myapp ... /usr/lib/libprofiler.a /usr/lib/libtcmalloc.a # errors! - -Instead, use the special libtcmalloc_and_profiler library, which we -make for just this purpose: - gcc -o myapp ... /usr/lib/libtcmalloc_and_profiler.a - - -CONFIGURATION OPTIONS ---------------------- -For advanced users, there are several flags you can pass to -'./configure' that tweak tcmalloc performace. (These are in addition -to the environment variables you can set at runtime to affect -tcmalloc, described below.) See the INSTALL file for details. - - -ENVIRONMENT VARIABLES ---------------------- -The cpu profiler, heap checker, and heap profiler will lie dormant, -using no memory or CPU, until you turn them on. (Thus, there's no -harm in linking -lprofiler into every application, and also -ltcmalloc -assuming you're ok using the non-libc malloc library.) - -The easiest way to turn them on is by setting the appropriate -environment variables. We have several variables that let you -enable/disable features as well as tweak parameters. - -Here are some of the most important variables: - -HEAPPROFILE=<pre> -- turns on heap profiling and dumps data using this prefix -HEAPCHECK=<type> -- turns on heap checking with strictness 'type' -CPUPROFILE=<file> -- turns on cpu profiling and dumps data to this file. -PROFILESELECTED=1 -- if set, cpu-profiler will only profile regions of code - surrounded with ProfilerEnable()/ProfilerDisable(). -CPUPROFILE_FREQUENCY=x-- how many interrupts/second the cpu-profiler samples. - -TCMALLOC_DEBUG=<level> -- the higher level, the more messages malloc emits -MALLOCSTATS=<level> -- prints memory-use stats at program-exit - -For a full list of variables, see the documentation pages: - doc/cpuprofile.html - doc/heapprofile.html - doc/heap_checker.html - - -COMPILING ON NON-LINUX SYSTEMS ------------------------------- - -Perftools was developed and tested on x86 Linux systems, and it works -in its full generality only on those systems. However, we've -successfully ported much of the tcmalloc library to FreeBSD, Solaris -x86, and Darwin (Mac OS X) x86 and ppc; and we've ported the basic -functionality in tcmalloc_minimal to Windows. See INSTALL for details. -See README_windows.txt for details on the Windows port. - - -PERFORMANCE ------------ - -If you're interested in some third-party comparisons of tcmalloc to -other malloc libraries, here are a few web pages that have been -brought to our attention. The first discusses the effect of using -various malloc libraries on OpenLDAP. The second compares tcmalloc to -win32's malloc. - http://www.highlandsun.com/hyc/malloc/ - http://gaiacrtn.free.fr/articles/win32perftools.html - -It's possible to build tcmalloc in a way that trades off faster -performance (particularly for deletes) at the cost of more memory -fragmentation (that is, more unusable memory on your system). See the -INSTALL file for details. - - -OLD SYSTEM ISSUES ------------------ - -When compiling perftools on some old systems, like RedHat 8, you may -get an error like this: - ___tls_get_addr: symbol not found - -This means that you have a system where some parts are updated enough -to support Thread Local Storage, but others are not. The perftools -configure script can't always detect this kind of case, leading to -that error. To fix it, just comment out (or delete) the line - #define HAVE_TLS 1 -in your config.h file before building. - - -64-BIT ISSUES -------------- - -There are two issues that can cause program hangs or crashes on x86_64 -64-bit systems, which use the libunwind library to get stack-traces. -Neither issue should affect the core tcmalloc library; they both -affect the perftools tools such as cpu-profiler, heap-checker, and -heap-profiler. - -1) Some libc's -- at least glibc 2.4 on x86_64 -- have a bug where the -libc function dl_iterate_phdr() acquires its locks in the wrong -order. This bug should not affect tcmalloc, but may cause occasional -deadlock with the cpu-profiler, heap-profiler, and heap-checker. -Its likeliness increases the more dlopen() commands an executable has. -Most executables don't have any, though several library routines like -getgrgid() call dlopen() behind the scenes. - -2) On x86-64 64-bit systems, while tcmalloc itself works fine, the -cpu-profiler tool is unreliable: it will sometimes work, but sometimes -cause a segfault. I'll explain the problem first, and then some -workarounds. - -Note that this only affects the cpu-profiler, which is a -gperftools feature you must turn on manually by setting the -CPUPROFILE environment variable. If you do not turn on cpu-profiling, -you shouldn't see any crashes due to perftools. - -The gory details: The underlying problem is in the backtrace() -function, which is a built-in function in libc. -Backtracing is fairly straightforward in the normal case, but can run -into problems when having to backtrace across a signal frame. -Unfortunately, the cpu-profiler uses signals in order to register a -profiling event, so every backtrace that the profiler does crosses a -signal frame. - -In our experience, the only time there is trouble is when the signal -fires in the middle of pthread_mutex_lock. pthread_mutex_lock is -called quite a bit from system libraries, particularly at program -startup and when creating a new thread. - -The solution: The dwarf debugging format has support for 'cfi -annotations', which make it easy to recognize a signal frame. Some OS -distributions, such as Fedora and gentoo 2007.0, already have added -cfi annotations to their libc. A future version of libunwind should -recognize these annotations; these systems should not see any -crashses. - -Workarounds: If you see problems with crashes when running the -cpu-profiler, consider inserting ProfilerStart()/ProfilerStop() into -your code, rather than setting CPUPROFILE. This will profile only -those sections of the codebase. Though we haven't done much testing, -in theory this should reduce the chance of crashes by limiting the -signal generation to only a small part of the codebase. Ideally, you -would not use ProfilerStart()/ProfilerStop() around code that spawns -new threads, or is otherwise likely to cause a call to -pthread_mutex_lock! - ---- -17 May 2011 http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/README_windows.txt ---------------------------------------------------------------------- diff --git a/third_party/gperftools/README_windows.txt b/third_party/gperftools/README_windows.txt deleted file mode 100644 index f74ee05..0000000 --- a/third_party/gperftools/README_windows.txt +++ /dev/null @@ -1,118 +0,0 @@ ---- COMPILING - -This project has begun being ported to Windows. A working solution -file exists in this directory: - gperftools.sln - -You can load this solution file into VC++ 7.1 (Visual Studio 2003) or -later -- in the latter case, it will automatically convert the files -to the latest format for you. - -When you build the solution, it will create a number of unittests, -which you can run by hand (or, more easily, under the Visual Studio -debugger) to make sure everything is working properly on your system. -The binaries will end up in a directory called "debug" or "release" in -the top-level directory (next to the .sln file). It will also create -two binaries, nm-pdb and addr2line-pdb, which you should install in -the same directory you install the 'pprof' perl script. - -I don't know very much about how to install DLLs on Windows, so you'll -have to figure out that part for yourself. If you choose to just -re-use the existing .sln, make sure you set the IncludeDir's -appropriately! Look at the properties for libtcmalloc_minimal.dll. - -Note that these systems are set to build in Debug mode by default. -You may want to change them to Release mode. - -To use tcmalloc_minimal in your own projects, you should only need to -build the dll and install it someplace, so you can link it into -further binaries. To use the dll, you need to add the following to -the linker line of your executable: - "libtcmalloc_minimal.lib" /INCLUDE:"__tcmalloc" - -Here is how to accomplish this in Visual Studio 2005 (VC8): - -1) Have your executable depend on the tcmalloc library by selecting - "Project Dependencies..." from the "Project" menu. Your executable - should depend on "libtcmalloc_minimal". - -2) Have your executable depend on a tcmalloc symbol -- this is - necessary so the linker doesn't "optimize out" the libtcmalloc - dependency -- by right-clicking on your executable's project (in - the solution explorer), selecting Properties from the pull-down - menu, then selecting "Configuration Properties" -> "Linker" -> - "Input". Then, in the "Force Symbol References" field, enter the - text "__tcmalloc" (without the quotes). Be sure to do this for both - debug and release modes! - -You can also link tcmalloc code in statically -- see the example -project tcmalloc_minimal_unittest-static, which does this. For this -to work, you'll need to add "/D PERFTOOLS_DLL_DECL=" to the compile -line of every perftools .cc file. You do not need to depend on the -tcmalloc symbol in this case (that is, you don't need to do either -step 1 or step 2 from above). - -An alternative to all the above is to statically link your application -with libc, and then replace its malloc with tcmalloc. This allows you -to just build and link your program normally; the tcmalloc support -comes in a post-processing step. This is more reliable than the above -technique (which depends on run-time patching, which is inherently -fragile), though more work to set up. For details, see - https://groups.google.com/group/google-perftools/browse_thread/thread/41cd3710af85e57b - - ---- THE HEAP-PROFILER - -The heap-profiler has had a preliminary port to Windows. It has not -been well tested, and probably does not work at all when Frame Pointer -Optimization (FPO) is enabled -- that is, in release mode. The other -features of perftools, such as the cpu-profiler and leak-checker, have -not yet been ported to Windows at all. - - ---- WIN64 - -The function-patcher has to disassemble code, and is very -x86-specific. However, the rest of perftools should work fine for -both x86 and x64. In particular, if you use the 'statically link with -libc, and replace its malloc with tcmalloc' approach, mentioned above, -it should be possible to use tcmalloc with 64-bit windows. - -As of perftools 1.10, there is some support for disassembling x86_64 -instructions, for work with win64. This work is preliminary, but the -test file preamble_patcher_test.cc is provided to play around with -that a bit. preamble_patcher_test will not compile on win32. - - ---- ISSUES - -NOTE FOR WIN2K USERS: According to reports -(http://code.google.com/p/gperftools/issues/detail?id=127) -the stack-tracing necessary for the heap-profiler does not work on -Win2K. The best workaround is, if you are building on a Win2k system -is to add "/D NO_TCMALLOC_SAMPLES=" to your build, to turn off the -stack-tracing. You will not be able to use the heap-profiler if you -do this. - -NOTE ON _MSIZE and _RECALLOC: The tcmalloc version of _msize returns -the size of the region tcmalloc allocated for you -- which is at least -as many bytes you asked for, but may be more. (btw, these *are* bytes -you own, even if you didn't ask for all of them, so it's correct code -to access all of them if you want.) Unfortunately, the Windows CRT -_recalloc() routine assumes that _msize returns exactly as many bytes -as were requested. As a result, _recalloc() may not zero out new -bytes correctly. IT'S SAFEST NOT TO USE _RECALLOC WITH TCMALLOC. -_recalloc() is a tricky routine to use in any case (it's not safe to -use with realloc, for instance). - - -I have little experience with Windows programming, so there may be -better ways to set this up than I've done! If you run across any -problems, please post to the google-perftools Google Group, or report -them on the gperftools Google Code site: - http://groups.google.com/group/google-perftools - http://code.google.com/p/gperftools/issues/list - --- craig - -Last modified: 2 February 2012 http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/TODO ---------------------------------------------------------------------- diff --git a/third_party/gperftools/TODO b/third_party/gperftools/TODO deleted file mode 100644 index 550f7e0..0000000 --- a/third_party/gperftools/TODO +++ /dev/null @@ -1,47 +0,0 @@ -HEAP PROFILER - -1) Fix heap profiling under all STLs - * Find out how to force non-glibc STL libraries to call new() and - delete() for every allocation / deallocation. - * Make heap profiler ignore STL-internal allocations for those - libraries under which we cannot profile accurately, so we only - see object-level leaks. -2) Remove dependency on tcmalloc? -3) Port to non-linux O/Ses (right now code uses /proc for library info) -4) Port to non-x86 architectures (locking code in spinlock is x86-specific) -5) Port to C? -6) Figure out how to get setenv() to work properly before main() in - shared libaries, and get rid of the profile-naming hack once we - do. (See HeapProfiler::Init().) - - -HEAP CHECKER - -1) Remove requirement that the heap-checker must be linked last into - an application (hard! -- it needs its global constructor to run - first) - -TCMALLOC - -1) Implement mallinfo/mallopt -2) Have tcmalloc work correctly when libpthread is not linked in - (currently working for glibc, could use other libc's too) -3) Return memory to the system when requirements drop -4) Explore coloring allocated objects to avoid cache conflicts -5) Explore biasing reclamation to larger addresses -6) Add contention stats to a synchronization.cc (can do spinlocks, - but threads? -- may have to provide our own thread implementation) - -CPU PROFILER - -1) Figure out how to get setenv() to work properly before main() in - shared libaries(), and get rid of the profile-naming hack once we - do. (See Profiler::GetUniquePathFromEnv().) -2) Resolve crashing problems on x86_64 (see README) - -STACKTRACE - -1) Remove dependency on linux/x86 - ---- -11 March 2008 http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/aclocal.m4 ---------------------------------------------------------------------- diff --git a/third_party/gperftools/aclocal.m4 b/third_party/gperftools/aclocal.m4 deleted file mode 100644 index 9b31409..0000000 --- a/third_party/gperftools/aclocal.m4 +++ /dev/null @@ -1,1199 +0,0 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. - -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# 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. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# 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. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# 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. - - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# 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. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-autom...@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <http://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2013 Free Software Foundation, Inc. -# -# 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. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# 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. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# 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. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# 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. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2013 Free Software Foundation, Inc. -# -# 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. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2013 Free Software Foundation, Inc. -# -# 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. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - AM_RUN_LOG([cat conftest.dir/file]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/ac_have_attribute.m4]) -m4_include([m4/acx_nanosleep.m4]) -m4_include([m4/acx_pthread.m4]) -m4_include([m4/compiler_characteristics.m4]) -m4_include([m4/install_prefix.m4]) -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) -m4_include([m4/namespaces.m4]) -m4_include([m4/pc_from_ucontext.m4]) -m4_include([m4/program_invocation_name.m4]) -m4_include([m4/stl_namespace.m4])