Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/extern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-12-30 14:51:21 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-12-30 15:01:28 +0300
commit6b7ead4fe808d6442fe7ae9b7f4ec38de8f35ee0 (patch)
treeebf2e87f4450d5e689a84fc9bc7ed6263e295748 /extern
parent2583cc88dea50d143a27aeafaa0870cc668662c4 (diff)
Libmv: Update to the latest upstream version
Main reason is to bring up new Glog which should have MSVC 2015 support.
Diffstat (limited to 'extern')
-rw-r--r--extern/libmv/ChangeLog186
-rw-r--r--extern/libmv/SConscript2
-rw-r--r--extern/libmv/libmv/multiview/homography.cc25
-rw-r--r--extern/libmv/libmv/simple_pipeline/camera_intrinsics.h4
-rw-r--r--extern/libmv/libmv/simple_pipeline/modal_solver.cc38
-rw-r--r--extern/libmv/third_party/glog/README.libmv4
-rw-r--r--extern/libmv/third_party/glog/src/base/mutex.h4
-rw-r--r--extern/libmv/third_party/glog/src/config_freebsd.h104
-rw-r--r--extern/libmv/third_party/glog/src/config_hurd.h98
-rw-r--r--extern/libmv/third_party/glog/src/config_linux.h99
-rw-r--r--extern/libmv/third_party/glog/src/config_mac.h107
-rw-r--r--extern/libmv/third_party/glog/src/demangle.h2
-rw-r--r--extern/libmv/third_party/glog/src/glog/logging.h56
-rw-r--r--extern/libmv/third_party/glog/src/glog/raw_logging.h3
-rw-r--r--extern/libmv/third_party/glog/src/logging.cc20
-rw-r--r--extern/libmv/third_party/glog/src/signalhandler.cc16
-rw-r--r--extern/libmv/third_party/glog/src/utilities.cc18
-rw-r--r--extern/libmv/third_party/glog/src/vlog_is_on.cc42
-rw-r--r--extern/libmv/third_party/glog/src/windows/config.h4
-rw-r--r--extern/libmv/third_party/glog/src/windows/glog/logging.h3
-rw-r--r--extern/libmv/third_party/glog/src/windows/port.cc4
-rw-r--r--extern/libmv/third_party/glog/src/windows/port.h30
-rwxr-xr-xextern/libmv/third_party/glog/src/windows/preprocess.sh1
23 files changed, 465 insertions, 405 deletions
diff --git a/extern/libmv/ChangeLog b/extern/libmv/ChangeLog
index 0bb340b2491..39ec4781c8e 100644
--- a/extern/libmv/ChangeLog
+++ b/extern/libmv/ChangeLog
@@ -1,3 +1,85 @@
+commit d249280fdf7c937fd6ebbc465508843a70aafd4c
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed Dec 30 16:59:28 2015 +0500
+
+ Tweaks to Glog to support building on all platforms
+
+ This makes it possible to compile Libmv on all platforms,
+ amount of hacks is lower, which could bring some warnings
+ up, but those are better be addressed via upstream which
+ is now rather active.
+
+commit 86c57750ddb857643fb5dd2c83b4953da83dd57d
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed Dec 30 16:15:47 2015 +0500
+
+ Enable explicit Schur complement matrix by default
+
+ Gives up to 2x speed up of camera solving process in average scene.
+ In the really huge one it might be slower, but that we need to investigate.
+
+commit d6c52a70b5a0664b7c74bda68f59a895fe8aa235
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed Dec 30 16:13:03 2015 +0500
+
+ Fix one frame memory leak when tracking last frame
+
+commit 6e2ac41d25d5923b2a62c96d27d919a36eff9b48
+Author: Brecht Van Lommel <brechtvanlommel@gmail.com>
+Date: Wed Dec 30 16:11:24 2015 +0500
+
+ Motion tracking not workig with Xcode 7 on OS X.
+
+ Caused by use of the uninitialized shape_ variable in Resize().
+
+commit fc72ae06fb4ae559ac37d14d1b34d6669505cc86
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed Dec 30 15:56:40 2015 +0500
+
+ Update GLog to latest upstream
+
+ Should fix issues building with MSVC2015.
+
+commit d4b2d15bd3d195074b074331354de96a1b51042f
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed Dec 30 16:01:10 2015 +0500
+
+ Fix wrong README file reference
+
+commit 2b4aa0b7720cae9a408284834559bea9960157ee
+Author: Keir Mierle <mierle@gmail.com>
+Date: Mon May 11 02:16:53 2015 -0700
+
+ Make README more informative for GitHub viewers
+
+ Reviewers: sergey
+
+ Reviewed By: sergey
+
+ Differential Revision: https://developer.blender.org/D1295
+
+commit 514e4491aea655d20be047ed87f002fb7854d5c9
+Author: Keir Mierle <mierle@gmail.com>
+Date: Mon May 11 01:54:09 2015 -0700
+
+ Simplify the modal solver Ceres cost function
+
+ Fix test by flipping the quaternion.
+
+ Reviewers: sergey
+
+ Reviewed By: sergey
+
+ Projects: #libmv
+
+ Differential Revision: https://developer.blender.org/D756
+
+commit e55fafd31f7d53d42af7c6b7df2eebe3c2568da9
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed Dec 31 19:05:51 2014 +0500
+
+ Synchronize MSVC compilation fixes from Blender
+
commit 7d6020d2ec42c6cb2749bc891186b4880d26d40b
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Wed Dec 31 15:32:07 2014 +0500
@@ -601,107 +683,3 @@ Date: Wed Mar 26 17:44:09 2014 +0600
Fix bad memory write in BA code when having zero-weighted tracks
Issue was really stupid and caused by the wrong vector initialization.
-
-commit d14a372dfe09c7339f267c4904a541fbe2efec43
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Fri Mar 21 16:02:41 2014 +0600
-
- Attempt to fix compilation error with msvc2013
-
-commit 933531580b4dc4b65601d785cedc16506d615d7b
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Thu Mar 20 23:07:34 2014 +0600
-
- Compilation fixes for MinGW
-
- Many thanks to Antony Riakiotakis for the patch!
-
-commit f1aefcbf58fe04ea2967434f39f703bb486777c8
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Thu Feb 27 16:21:19 2014 +0600
-
- Implement separate BA step for tracks which have constant zero weight
-
- This is needed to minimize their reprojection error over the footage.
- Without this extra step positions of such tracks were calculated by
- algebraic intersection code only, which doesn't give best precision.
-
-commit bcf7f9470b2ea33cf89a31a72037ec03be631637
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Thu Feb 27 14:16:42 2014 +0600
-
- Avoid zero-sized problem when doing euclidean intersection
-
- Zero-sized problem might occur when intersecting track with
- constant zero weight. For such tracks we'll just use result
- of algebraic intersection.
-
- TODO: We probably need to have a separate BA step to adjust
- positions of tracks with constant zero weight.
-
-commit f884bb20a93189b8210639f3de939c64177d66b3
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Wed Feb 26 18:00:40 2014 +0600
-
- Ignore zero weighted markers in keyframe selection
-
- It doesn't make sense to use zero-weighted tracks as a correspondences
- in keyframe selection.
-
- Such tracks are not guaranteed to be tracked accurately because their
- purpose is to add reference points in 3D space without affecting the
- solution.
-
-commit 74db5175cdbcabe673b82eef59c88fb7f342c43f
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Wed Feb 26 13:23:02 2014 +0600
-
- Tweaks to make bundling into Blender warning-less
-
- Mainly issue i caused by conflicts in include directories,
- so glog used to include config.h from gflags. It might be
- fixed by splitting gflags/glog from Libmv in Blender build
- system but that's not something fun to work on. Fixed by
- making include directories bit more explicit.
-
- Also solved no-previous-prototype warnings.
-
-commit bc4bc66af0115069562b79e837ccf4fd95c8f97e
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Fri Feb 21 14:55:13 2014 +0600
-
- Raise epsilon used for model solver test
-
- It was too much small leading to false failure triggering
- caused simply by precision issues.
-
-commit bf750590a6af4af3622c01fd1004c44da60484a7
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Tue Feb 18 23:35:52 2014 +0600
-
- Made it possible to link against Ceres installed on the system
-
- Main purpose of this is to get away from bundled Ceres library
- which is not so trivial to re-bundle and takes some to do this
- (not talking about CMake options conflicts and pollution).
-
- Enabled by setting WITH_SYSTEM_CERES=ON. Default paths to search
- Ceres library:
-
- - /usr/local
- - /sw
- - /opt/local
- - /opt/csw
- - /opt/lib/ceres
-
- You might also specify Ceres root directory using CERES_ROOT_DIR
- variable (both CMake and environment variables are supported).
-
- If your Ceres is build statically, you're to control all additional
- libraries needed to link against using CMAKE_EXE_LINKER_FLAGS.
-
-commit c9156fbf80c86853806844b754b1e48f45c5ec11
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Tue Feb 18 19:38:22 2014 +0600
-
- Remove .orig file which was added by accident
diff --git a/extern/libmv/SConscript b/extern/libmv/SConscript
index 251e5835d64..c177f74c2b8 100644
--- a/extern/libmv/SConscript
+++ b/extern/libmv/SConscript
@@ -1,5 +1,3 @@
-#!/usr/bin/python
-
# NOTE: This file is automatically generated by bundle.sh script
# If you're doing changes in this file, please update template
# in that script too
diff --git a/extern/libmv/libmv/multiview/homography.cc b/extern/libmv/libmv/multiview/homography.cc
index 346acb3afd9..ce533a3ead2 100644
--- a/extern/libmv/libmv/multiview/homography.cc
+++ b/extern/libmv/libmv/multiview/homography.cc
@@ -179,12 +179,8 @@ void GetNormalizedPoints(const Mat &original_points,
class HomographySymmetricGeometricCostFunctor {
public:
HomographySymmetricGeometricCostFunctor(const Vec2 &x,
- const Vec2 &y) {
- xx_ = x(0);
- xy_ = x(1);
- yx_ = y(0);
- yy_ = y(1);
- }
+ const Vec2 &y)
+ : x_(x), y_(y) { }
template<typename T>
bool operator()(const T *homography_parameters, T *residuals) const {
@@ -193,8 +189,8 @@ class HomographySymmetricGeometricCostFunctor {
Mat3 H(homography_parameters);
- Vec3 x(T(xx_), T(xy_), T(1.0));
- Vec3 y(T(yx_), T(yy_), T(1.0));
+ Vec3 x(T(x_(0)), T(x_(1)), T(1.0));
+ Vec3 y(T(y_(0)), T(y_(1)), T(1.0));
Vec3 H_x = H * x;
Vec3 Hinv_y = H.inverse() * y;
@@ -203,19 +199,18 @@ class HomographySymmetricGeometricCostFunctor {
Hinv_y /= Hinv_y(2);
// This is a forward error.
- residuals[0] = H_x(0) - T(yx_);
- residuals[1] = H_x(1) - T(yy_);
+ residuals[0] = H_x(0) - T(y_(0));
+ residuals[1] = H_x(1) - T(y_(1));
// This is a backward error.
- residuals[2] = Hinv_y(0) - T(xx_);
- residuals[3] = Hinv_y(1) - T(xy_);
+ residuals[2] = Hinv_y(0) - T(x_(0));
+ residuals[3] = Hinv_y(1) - T(x_(1));
return true;
}
- // TODO(sergey): Think of better naming.
- double xx_, xy_;
- double yx_, yy_;
+ const Vec2 x_;
+ const Vec2 y_;
};
// Termination checking callback used for homography estimation.
diff --git a/extern/libmv/libmv/simple_pipeline/camera_intrinsics.h b/extern/libmv/libmv/simple_pipeline/camera_intrinsics.h
index 1a8bf7a1c87..6a3ade81089 100644
--- a/extern/libmv/libmv/simple_pipeline/camera_intrinsics.h
+++ b/extern/libmv/libmv/simple_pipeline/camera_intrinsics.h
@@ -197,7 +197,7 @@ class CameraIntrinsics {
double *normalized_x,
double *normalized_y) const = 0;
- // Distort an image using the current camera intrinsics
+ // Distort an image using the current camera instrinsics
//
// The distorted image is computed in output_buffer using samples from
// input_buffer. Both buffers should be width x height x channels sized.
@@ -226,7 +226,7 @@ class CameraIntrinsics {
int channels,
PixelType *output_buffer);
- // Undistort an image using the current camera intrinsics
+ // Undistort an image using the current camera instrinsics
//
// The undistorted image is computed in output_buffer using samples from
// input_buffer. Both buffers should be width x height x channels sized.
diff --git a/extern/libmv/libmv/simple_pipeline/modal_solver.cc b/extern/libmv/libmv/simple_pipeline/modal_solver.cc
index caccce68cbe..15e185eeda7 100644
--- a/extern/libmv/libmv/simple_pipeline/modal_solver.cc
+++ b/extern/libmv/libmv/simple_pipeline/modal_solver.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 libmv authors.
+// Copyright (c) 2015 libmv authors.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
@@ -62,32 +62,32 @@ struct ModalReprojectionError {
: observed_x_(observed_x), observed_y_(observed_y),
weight_(weight), bundle_(bundle) { }
+ // TODO(keir): This should support bundling focal length as well.
template <typename T>
- bool operator()(const T* quaternion, // Rotation quaternion
- T* residuals) const {
- T R[9];
- ceres::QuaternionToRotation(quaternion, R);
-
+ bool operator()(const T* quaternion, T* residuals) const {
// Convert bundle position from double to T.
- T X[3];
- X[0] = T(bundle_(0));
- X[1] = T(bundle_(1));
- X[2] = T(bundle_(2));
+ T X[3] = { T(bundle_(0)), T(bundle_(1)), T(bundle_(2)) };
- // Compute projective coordinates: x = RX.
+ // Compute the point position in camera coordinates: x = RX.
T x[3];
- x[0] = R[0]*X[0] + R[3]*X[1] + R[6]*X[2];
- x[1] = R[1]*X[0] + R[4]*X[1] + R[7]*X[2];
- x[2] = R[2]*X[0] + R[5]*X[1] + R[8]*X[2];
- // Compute normalized coordinates: x /= x[2].
+ // This flips the sense of the quaternion, to adhere to Blender conventions.
+ T quaternion_inverse[4] = {
+ quaternion[0],
+ -quaternion[1],
+ -quaternion[2],
+ -quaternion[3],
+ };
+ ceres::QuaternionRotatePoint(quaternion_inverse, X, x);
+
+ // Compute normalized coordinates by dividing out the depth.
T xn = x[0] / x[2];
T yn = x[1] / x[2];
- // The error is the difference between reprojected
- // and observed marker position.
- residuals[0] = xn - T(observed_x_);
- residuals[1] = yn - T(observed_y_);
+ // The error is the difference between reprojected and observed marker
+ // positions, weighted by the passed in weight.
+ residuals[0] = T(weight_) * (xn - T(observed_x_));
+ residuals[1] = T(weight_) * (yn - T(observed_y_));
return true;
}
diff --git a/extern/libmv/third_party/glog/README.libmv b/extern/libmv/third_party/glog/README.libmv
index 10e51fa6df4..43ee532b6eb 100644
--- a/extern/libmv/third_party/glog/README.libmv
+++ b/extern/libmv/third_party/glog/README.libmv
@@ -1,9 +1,7 @@
Project: Google Logging
URL: http://code.google.com/p/google-glog/
License: New BSD
-Upstream version: 0.3.3, r143
+Upstream version: 0.3.4, 4d391fe
Local modifications:
* Added per-platform config.h files so no configuration-time
checks for functions and so are needed.
-* See glog_tweaks.patch to see other tweaks which are done
- against glog upstream.
diff --git a/extern/libmv/third_party/glog/src/base/mutex.h b/extern/libmv/third_party/glog/src/base/mutex.h
index 36fc55c4dcb..00da50580b3 100644
--- a/extern/libmv/third_party/glog/src/base/mutex.h
+++ b/extern/libmv/third_party/glog/src/base/mutex.h
@@ -134,7 +134,9 @@
// *does* cause problems for FreeBSD, or MacOSX, but isn't needed
// for locking there.)
# ifdef __linux__
-# define _XOPEN_SOURCE 500 // may be needed to get the rwlock calls
+# ifndef _XOPEN_SOURCE // Some other header might have already set it for us.
+# define _XOPEN_SOURCE 500 // may be needed to get the rwlock calls
+# endif
# endif
# include <pthread.h>
typedef pthread_rwlock_t MutexType;
diff --git a/extern/libmv/third_party/glog/src/config_freebsd.h b/extern/libmv/third_party/glog/src/config_freebsd.h
index a1fe76fe806..afa4262b022 100644
--- a/extern/libmv/third_party/glog/src/config_freebsd.h
+++ b/extern/libmv/third_party/glog/src/config_freebsd.h
@@ -1,5 +1,5 @@
-/* src/config.h. Generated from config.h.in by configure. */
-/* src/config.h.in. Generated from configure.ac by autoheader. */
+/* define if glog doesn't use RTTI */
+/* #undef DISABLE_RTTI */
/* Namespace for Google classes */
#define GOOGLE_NAMESPACE google
@@ -7,29 +7,32 @@
/* Define if you have the `dladdr' function */
/* #undef HAVE_DLADDR */
+/* Define if you have the `snprintf' function */
+#define HAVE_SNPRINTF
+
/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
+#define HAVE_DLFCN_H
/* Define to 1 if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
+#define HAVE_EXECINFO_H
/* Define if you have the `fcntl' function */
-#define HAVE_FCNTL 1
+#define HAVE_FCNTL
/* Define to 1 if you have the <glob.h> header file. */
-#define HAVE_GLOB_H 1
+#define HAVE_GLOB_H
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `pthread' library (-lpthread). */
-#define HAVE_LIBPTHREAD 1
+/* #undef HAVE_LIBPTHREAD */
/* Define to 1 if you have the <libunwind.h> header file. */
-/* #undef HAVE_LIBUNWIND_H */
+#define HAVE_LIBUNWIND_H
/* define if you have google gflags library */
-#define HAVE_LIB_GFLAGS 1
+#define HAVE_LIB_GFLAGS
/* define if you have google gmock library */
/* #undef HAVE_LIB_GMOCK */
@@ -41,103 +44,119 @@
/* #undef HAVE_LIB_UNWIND */
/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
+#define HAVE_MEMORY_H
+
+/* define to disable multithreading support. */
+/* #undef NO_THREADS */
/* define if the compiler implements namespaces */
-#define HAVE_NAMESPACES 1
+#define HAVE_NAMESPACES
/* Define if you have the 'pread' function */
-#define HAVE_PREAD 1
+#define HAVE_PREAD
/* Define if you have POSIX threads libraries and header files. */
-#define HAVE_PTHREAD 1
+#define HAVE_PTHREAD
/* Define to 1 if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
+#define HAVE_PWD_H
/* Define if you have the 'pwrite' function */
-#define HAVE_PWRITE 1
+#define HAVE_PWRITE
/* define if the compiler implements pthread_rwlock_* */
-#define HAVE_RWLOCK 1
+/* #undef HAVE_RWLOCK */
+
+/* Define if you have the 'sigaction' function */
+#define HAVE_SIGACTION
/* Define if you have the `sigaltstack' function */
-#define HAVE_SIGALTSTACK 1
+/* #undef HAVE_SIGALTSTACK */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
+#define HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
+#define HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
+#define HAVE_STRING_H
/* Define to 1 if you have the <syscall.h> header file. */
-/* #undef HAVE_SYSCALL_H */
+#define HAVE_SYSCALL_H
/* Define to 1 if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
+#define HAVE_SYSLOG_H
/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/syscall.h> header file. */
-#define HAVE_SYS_SYSCALL_H 1
+#define HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/ucontext.h> header file. */
-#define HAVE_SYS_UCONTEXT_H 1
+/* #undef HAVE_SYS_UCONTEXT_H */
/* Define to 1 if you have the <sys/utsname.h> header file. */
-#define HAVE_SYS_UTSNAME_H 1
+#define HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <ucontext.h> header file. */
-#define HAVE_UCONTEXT_H 1
+#define HAVE_UCONTEXT_H
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define to 1 if you have the <unwind.h> header file. */
+#define HAVE_UNWIND_H 1
+
/* define if the compiler supports using expression for operator */
-#define HAVE_USING_OPERATOR 1
+#define HAVE_USING_OPERATOR
/* define if your compiler has __attribute__ */
-#define HAVE___ATTRIBUTE__ 1
+#define HAVE___ATTRIBUTE__
/* define if your compiler has __builtin_expect */
#define HAVE___BUILTIN_EXPECT 1
/* define if your compiler has __sync_val_compare_and_swap */
-/* #undef HAVE___SYNC_VAL_COMPARE_AND_SWAP */
+#define HAVE___SYNC_VAL_COMPARE_AND_SWAP
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+/* #undef LT_OBJDIR */
/* Name of package */
-#define PACKAGE "glog"
+/* #undef PACKAGE */
/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "opensource@google.com"
+/* #undef PACKAGE_BUGREPORT */
/* Define to the full name of this package. */
-#define PACKAGE_NAME "glog"
+/* #undef PACKAGE_NAME */
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "glog 0.3.2"
+/* #undef PACKAGE_STRING */
/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "glog"
+/* #undef PACKAGE_TARNAME */
+
+/* Define to the home page for this package. */
+/* #undef PACKAGE_URL */
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.3.2"
+/* #undef PACKAGE_VERSION */
/* How to access the PC from a struct ucontext */
-/* #define PC_FROM_UCONTEXT uc_mcontext.gregs[REG_RIP] */
+/* #undef PC_FROM_UCONTEXT */
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
@@ -149,7 +168,6 @@
/* Define to 1 if you have the ANSI C header files. */
/* #undef STDC_HEADERS */
-#define STDC_HEADERS 1
/* the namespace where STL code like vector<> is defined */
#define STL_NAMESPACE std
@@ -157,7 +175,7 @@
#define TEST_SRC_DIR "."
/* Version number of package */
-#define VERSION "0.3.2"
+/* #undef VERSION */
/* Stops putting the code inside the Google namespace */
#define _END_GOOGLE_NAMESPACE_ }
@@ -165,8 +183,4 @@
/* Puts following code inside the Google namespace */
#define _START_GOOGLE_NAMESPACE_ namespace google {
-/* isn't getting defined by configure script when clang compilers are used
- and cuases compilation errors in stactrace/unwind modules */
-#ifdef __clang__
-# define NO_FRAME_POINTER
-#endif
+#define GOOGLE_GLOG_DLL_DECL
diff --git a/extern/libmv/third_party/glog/src/config_hurd.h b/extern/libmv/third_party/glog/src/config_hurd.h
index 81e8ed7bac3..32cad59075e 100644
--- a/extern/libmv/third_party/glog/src/config_hurd.h
+++ b/extern/libmv/third_party/glog/src/config_hurd.h
@@ -1,5 +1,5 @@
-/* src/config.h. Generated from config.h.in by configure. */
-/* src/config.h.in. Generated from configure.ac by autoheader. */
+/* define if glog doesn't use RTTI */
+/* #undef DISABLE_RTTI */
/* Namespace for Google classes */
#define GOOGLE_NAMESPACE google
@@ -7,29 +7,32 @@
/* Define if you have the `dladdr' function */
/* #undef HAVE_DLADDR */
+/* Define if you have the `snprintf' function */
+#define HAVE_SNPRINTF
+
/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
+#define HAVE_DLFCN_H
/* Define to 1 if you have the <execinfo.h> header file. */
-#define HAVE_EXECINFO_H 1
+#define HAVE_EXECINFO_H
/* Define if you have the `fcntl' function */
-#define HAVE_FCNTL 1
+#define HAVE_FCNTL
/* Define to 1 if you have the <glob.h> header file. */
-#define HAVE_GLOB_H 1
+#define HAVE_GLOB_H
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `pthread' library (-lpthread). */
-#define HAVE_LIBPTHREAD 1
+/* #undef HAVE_LIBPTHREAD */
/* Define to 1 if you have the <libunwind.h> header file. */
-/* #undef HAVE_LIBUNWIND_H */
+#define HAVE_LIBUNWIND_H
/* define if you have google gflags library */
-#define HAVE_LIB_GFLAGS 1
+#define HAVE_LIB_GFLAGS
/* define if you have google gmock library */
/* #undef HAVE_LIB_GMOCK */
@@ -41,100 +44,116 @@
/* #undef HAVE_LIB_UNWIND */
/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
+#define HAVE_MEMORY_H
+
+/* define to disable multithreading support. */
+/* #undef NO_THREADS */
/* define if the compiler implements namespaces */
-#define HAVE_NAMESPACES 1
+#define HAVE_NAMESPACES
/* Define if you have the 'pread' function */
-#define HAVE_PREAD 1
+#define HAVE_PREAD
/* Define if you have POSIX threads libraries and header files. */
-#define HAVE_PTHREAD 1
+#define HAVE_PTHREAD
/* Define to 1 if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
+#define HAVE_PWD_H
/* Define if you have the 'pwrite' function */
-#define HAVE_PWRITE 1
+#define HAVE_PWRITE
/* define if the compiler implements pthread_rwlock_* */
-#define HAVE_RWLOCK 1
+/* #undef HAVE_RWLOCK */
+
+/* Define if you have the 'sigaction' function */
+#define HAVE_SIGACTION
/* Define if you have the `sigaltstack' function */
-#define HAVE_SIGALTSTACK 1
+/* #undef HAVE_SIGALTSTACK */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
+#define HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
+#define HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
+#define HAVE_STRING_H
/* Define to 1 if you have the <syscall.h> header file. */
-/* #undef HAVE_SYSCALL_H */
+#define HAVE_SYSCALL_H
/* Define to 1 if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
+#define HAVE_SYSLOG_H
/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/syscall.h> header file. */
-/* #undef HAVE_SYS_SYSCALL_H */
+#define HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/ucontext.h> header file. */
-#define HAVE_SYS_UCONTEXT_H 1
+/* #undef HAVE_SYS_UCONTEXT_H */
/* Define to 1 if you have the <sys/utsname.h> header file. */
-#define HAVE_SYS_UTSNAME_H 1
+#define HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <ucontext.h> header file. */
-#define HAVE_UCONTEXT_H 1
+#define HAVE_UCONTEXT_H
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define to 1 if you have the <unwind.h> header file. */
+#define HAVE_UNWIND_H 1
+
/* define if the compiler supports using expression for operator */
-#define HAVE_USING_OPERATOR 1
+#define HAVE_USING_OPERATOR
/* define if your compiler has __attribute__ */
-#define HAVE___ATTRIBUTE__ 1
+#define HAVE___ATTRIBUTE__
/* define if your compiler has __builtin_expect */
#define HAVE___BUILTIN_EXPECT 1
/* define if your compiler has __sync_val_compare_and_swap */
-/* #undef HAVE___SYNC_VAL_COMPARE_AND_SWAP */
+#define HAVE___SYNC_VAL_COMPARE_AND_SWAP
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+/* #undef LT_OBJDIR */
/* Name of package */
-#define PACKAGE "glog"
+/* #undef PACKAGE */
/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "opensource@google.com"
+/* #undef PACKAGE_BUGREPORT */
/* Define to the full name of this package. */
-#define PACKAGE_NAME "glog"
+/* #undef PACKAGE_NAME */
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "glog 0.3.1"
+/* #undef PACKAGE_STRING */
/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "glog"
+/* #undef PACKAGE_TARNAME */
+
+/* Define to the home page for this package. */
+/* #undef PACKAGE_URL */
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.3.1"
+/* #undef PACKAGE_VERSION */
/* How to access the PC from a struct ucontext */
#if defined(_M_X64) || defined(__amd64__) || defined(__x86_64__)
@@ -155,7 +174,6 @@
/* Define to 1 if you have the ANSI C header files. */
/* #undef STDC_HEADERS */
-#define STDC_HEADERS 1
/* the namespace where STL code like vector<> is defined */
#define STL_NAMESPACE std
@@ -163,10 +181,12 @@
#define TEST_SRC_DIR "."
/* Version number of package */
-#define VERSION "0.3.1"
+/* #undef VERSION */
/* Stops putting the code inside the Google namespace */
#define _END_GOOGLE_NAMESPACE_ }
/* Puts following code inside the Google namespace */
#define _START_GOOGLE_NAMESPACE_ namespace google {
+
+#define GOOGLE_GLOG_DLL_DECL
diff --git a/extern/libmv/third_party/glog/src/config_linux.h b/extern/libmv/third_party/glog/src/config_linux.h
index 7741ddebb63..b3a3325bc1b 100644
--- a/extern/libmv/third_party/glog/src/config_linux.h
+++ b/extern/libmv/third_party/glog/src/config_linux.h
@@ -1,5 +1,5 @@
-/* src/config.h. Generated from config.h.in by configure. */
-/* src/config.h.in. Generated from configure.ac by autoheader. */
+/* define if glog doesn't use RTTI */
+/* #undef DISABLE_RTTI */
/* Namespace for Google classes */
#define GOOGLE_NAMESPACE google
@@ -7,29 +7,32 @@
/* Define if you have the `dladdr' function */
/* #undef HAVE_DLADDR */
+/* Define if you have the `snprintf' function */
+#define HAVE_SNPRINTF
+
/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
+#define HAVE_DLFCN_H
/* Define to 1 if you have the <execinfo.h> header file. */
-#define HAVE_EXECINFO_H 1
+#define HAVE_EXECINFO_H
/* Define if you have the `fcntl' function */
-#define HAVE_FCNTL 1
+#define HAVE_FCNTL
/* Define to 1 if you have the <glob.h> header file. */
-#define HAVE_GLOB_H 1
+#define HAVE_GLOB_H
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `pthread' library (-lpthread). */
-#define HAVE_LIBPTHREAD 1
+/* #undef HAVE_LIBPTHREAD */
/* Define to 1 if you have the <libunwind.h> header file. */
-/* #undef HAVE_LIBUNWIND_H */
+#define HAVE_LIBUNWIND_H
/* define if you have google gflags library */
-#define HAVE_LIB_GFLAGS 1
+#define HAVE_LIB_GFLAGS
/* define if you have google gmock library */
/* #undef HAVE_LIB_GMOCK */
@@ -41,107 +44,116 @@
/* #undef HAVE_LIB_UNWIND */
/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
+#define HAVE_MEMORY_H
+
+/* define to disable multithreading support. */
+/* #undef NO_THREADS */
/* define if the compiler implements namespaces */
-#define HAVE_NAMESPACES 1
+#define HAVE_NAMESPACES
/* Define if you have the 'pread' function */
-#define HAVE_PREAD 1
+#define HAVE_PREAD
/* Define if you have POSIX threads libraries and header files. */
-#define HAVE_PTHREAD 1
+#define HAVE_PTHREAD
/* Define to 1 if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
+#define HAVE_PWD_H
/* Define if you have the 'pwrite' function */
-#define HAVE_PWRITE 1
+#define HAVE_PWRITE
/* define if the compiler implements pthread_rwlock_* */
-#define HAVE_RWLOCK 1
+/* #undef HAVE_RWLOCK */
+
+/* Define if you have the 'sigaction' function */
+#define HAVE_SIGACTION
/* Define if you have the `sigaltstack' function */
-#define HAVE_SIGALTSTACK 1
+/* #undef HAVE_SIGALTSTACK */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
+#define HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
+#define HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
+#define HAVE_STRING_H
/* Define to 1 if you have the <syscall.h> header file. */
-#define HAVE_SYSCALL_H 1
+#define HAVE_SYSCALL_H
/* Define to 1 if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
+#define HAVE_SYSLOG_H
/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/syscall.h> header file. */
-#define HAVE_SYS_SYSCALL_H 1
+#define HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/ucontext.h> header file. */
-#define HAVE_SYS_UCONTEXT_H 1
+/* #undef HAVE_SYS_UCONTEXT_H */
/* Define to 1 if you have the <sys/utsname.h> header file. */
-#define HAVE_SYS_UTSNAME_H 1
+#define HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <ucontext.h> header file. */
-#define HAVE_UCONTEXT_H 1
+#define HAVE_UCONTEXT_H
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define to 1 if you have the <unwind.h> header file. */
+#define HAVE_UNWIND_H 1
+
/* define if the compiler supports using expression for operator */
-#define HAVE_USING_OPERATOR 1
+#define HAVE_USING_OPERATOR
/* define if your compiler has __attribute__ */
-#define HAVE___ATTRIBUTE__ 1
+#define HAVE___ATTRIBUTE__
/* define if your compiler has __builtin_expect */
#define HAVE___BUILTIN_EXPECT 1
/* define if your compiler has __sync_val_compare_and_swap */
-/* #undef HAVE___SYNC_VAL_COMPARE_AND_SWAP */
+#define HAVE___SYNC_VAL_COMPARE_AND_SWAP
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
-#define LT_OBJDIR ".libs/"
+/* #undef LT_OBJDIR */
/* Name of package */
-#define PACKAGE "glog"
+/* #undef PACKAGE */
/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "opensource@google.com"
+/* #undef PACKAGE_BUGREPORT */
/* Define to the full name of this package. */
-#define PACKAGE_NAME "glog"
+/* #undef PACKAGE_NAME */
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "glog 0.3.2"
+/* #undef PACKAGE_STRING */
/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "glog"
+/* #undef PACKAGE_TARNAME */
/* Define to the home page for this package. */
-#define PACKAGE_URL ""
+/* #undef PACKAGE_URL */
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.3.2"
+/* #undef PACKAGE_VERSION */
/* How to access the PC from a struct ucontext */
#if defined(_M_X64) || defined(__amd64__) || defined(__x86_64__)
@@ -162,7 +174,6 @@
/* Define to 1 if you have the ANSI C header files. */
/* #undef STDC_HEADERS */
-#define STDC_HEADERS 1
/* the namespace where STL code like vector<> is defined */
#define STL_NAMESPACE std
@@ -170,7 +181,7 @@
#define TEST_SRC_DIR "."
/* Version number of package */
-#define VERSION "0.3.2"
+/* #undef VERSION */
/* Stops putting the code inside the Google namespace */
#define _END_GOOGLE_NAMESPACE_ }
@@ -178,8 +189,4 @@
/* Puts following code inside the Google namespace */
#define _START_GOOGLE_NAMESPACE_ namespace google {
-/* isn't getting defined by configure script when clang compilers are used
- and cuases compilation errors in stactrace/unwind modules */
-#ifdef __clang__
-# define NO_FRAME_POINTER
-#endif
+#define GOOGLE_GLOG_DLL_DECL
diff --git a/extern/libmv/third_party/glog/src/config_mac.h b/extern/libmv/third_party/glog/src/config_mac.h
index 1695472f031..afa4262b022 100644
--- a/extern/libmv/third_party/glog/src/config_mac.h
+++ b/extern/libmv/third_party/glog/src/config_mac.h
@@ -1,143 +1,162 @@
-/* src/config.h. Generated from config.h.in by configure. */
-/* src/config.h.in. Generated from configure.ac by autoheader. */
+/* define if glog doesn't use RTTI */
+/* #undef DISABLE_RTTI */
/* Namespace for Google classes */
#define GOOGLE_NAMESPACE google
/* Define if you have the `dladdr' function */
-#define HAVE_DLADDR 1
+/* #undef HAVE_DLADDR */
+
+/* Define if you have the `snprintf' function */
+#define HAVE_SNPRINTF
/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
+#define HAVE_DLFCN_H
/* Define to 1 if you have the <execinfo.h> header file. */
-#define HAVE_EXECINFO_H 1
+#define HAVE_EXECINFO_H
/* Define if you have the `fcntl' function */
-#define HAVE_FCNTL 1
+#define HAVE_FCNTL
/* Define to 1 if you have the <glob.h> header file. */
-#define HAVE_GLOB_H 1
+#define HAVE_GLOB_H
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `pthread' library (-lpthread). */
-#define HAVE_LIBPTHREAD 1
+/* #undef HAVE_LIBPTHREAD */
/* Define to 1 if you have the <libunwind.h> header file. */
-#define HAVE_LIBUNWIND_H 1
+#define HAVE_LIBUNWIND_H
/* define if you have google gflags library */
-#define HAVE_LIB_GFLAGS 1
+#define HAVE_LIB_GFLAGS
/* define if you have google gmock library */
/* #undef HAVE_LIB_GMOCK */
/* define if you have google gtest library */
-//#define HAVE_LIB_GTEST 1
+/* #undef HAVE_LIB_GTEST */
/* define if you have libunwind */
/* #undef HAVE_LIB_UNWIND */
/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
+#define HAVE_MEMORY_H
+
+/* define to disable multithreading support. */
+/* #undef NO_THREADS */
/* define if the compiler implements namespaces */
-#define HAVE_NAMESPACES 1
+#define HAVE_NAMESPACES
/* Define if you have the 'pread' function */
-#define HAVE_PREAD 1
+#define HAVE_PREAD
/* Define if you have POSIX threads libraries and header files. */
-#define HAVE_PTHREAD 1
+#define HAVE_PTHREAD
/* Define to 1 if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
+#define HAVE_PWD_H
/* Define if you have the 'pwrite' function */
-#define HAVE_PWRITE 1
+#define HAVE_PWRITE
/* define if the compiler implements pthread_rwlock_* */
-#define HAVE_RWLOCK 1
+/* #undef HAVE_RWLOCK */
+
+/* Define if you have the 'sigaction' function */
+#define HAVE_SIGACTION
/* Define if you have the `sigaltstack' function */
-#define HAVE_SIGALTSTACK 1
+/* #undef HAVE_SIGALTSTACK */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
+#define HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
+#define HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
+#define HAVE_STRING_H
/* Define to 1 if you have the <syscall.h> header file. */
-/* #undef HAVE_SYSCALL_H */
+#define HAVE_SYSCALL_H
/* Define to 1 if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
+#define HAVE_SYSLOG_H
/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/syscall.h> header file. */
-#define HAVE_SYS_SYSCALL_H 1
+#define HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/ucontext.h> header file. */
-#define HAVE_SYS_UCONTEXT_H 1
+/* #undef HAVE_SYS_UCONTEXT_H */
/* Define to 1 if you have the <sys/utsname.h> header file. */
-#define HAVE_SYS_UTSNAME_H 1
+#define HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <ucontext.h> header file. */
-/* #undef HAVE_UCONTEXT_H */
+#define HAVE_UCONTEXT_H
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define to 1 if you have the <unwind.h> header file. */
+#define HAVE_UNWIND_H 1
+
/* define if the compiler supports using expression for operator */
-#define HAVE_USING_OPERATOR 1
+#define HAVE_USING_OPERATOR
/* define if your compiler has __attribute__ */
-#define HAVE___ATTRIBUTE__ 1
+#define HAVE___ATTRIBUTE__
/* define if your compiler has __builtin_expect */
#define HAVE___BUILTIN_EXPECT 1
/* define if your compiler has __sync_val_compare_and_swap */
-/* #undef HAVE___SYNC_VAL_COMPARE_AND_SWAP */
+#define HAVE___SYNC_VAL_COMPARE_AND_SWAP
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+/* #undef LT_OBJDIR */
/* Name of package */
-#define PACKAGE "glog"
+/* #undef PACKAGE */
/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "opensource@google.com"
+/* #undef PACKAGE_BUGREPORT */
/* Define to the full name of this package. */
-#define PACKAGE_NAME "glog"
+/* #undef PACKAGE_NAME */
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "glog 0.3.2"
+/* #undef PACKAGE_STRING */
/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "glog"
+/* #undef PACKAGE_TARNAME */
+
+/* Define to the home page for this package. */
+/* #undef PACKAGE_URL */
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.3.2"
+/* #undef PACKAGE_VERSION */
/* How to access the PC from a struct ucontext */
-#undef PC_FROM_UCONTEXT
+/* #undef PC_FROM_UCONTEXT */
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
@@ -156,7 +175,7 @@
#define TEST_SRC_DIR "."
/* Version number of package */
-#define VERSION "0.3.2"
+/* #undef VERSION */
/* Stops putting the code inside the Google namespace */
#define _END_GOOGLE_NAMESPACE_ }
@@ -164,8 +183,4 @@
/* Puts following code inside the Google namespace */
#define _START_GOOGLE_NAMESPACE_ namespace google {
-/* isn't getting defined by configure script when clang compilers are used
- and cuases compilation errors in stactrace/unwind modules */
-#ifdef __clang__
-# define NO_FRAME_POINTER
-#endif
+#define GOOGLE_GLOG_DLL_DECL
diff --git a/extern/libmv/third_party/glog/src/demangle.h b/extern/libmv/third_party/glog/src/demangle.h
index 9c7591527c0..265302997fc 100644
--- a/extern/libmv/third_party/glog/src/demangle.h
+++ b/extern/libmv/third_party/glog/src/demangle.h
@@ -77,7 +77,7 @@ _START_GOOGLE_NAMESPACE_
// Demangle "mangled". On success, return true and write the
// demangled symbol name to "out". Otherwise, return false.
// "out" is modified even if demangling is unsuccessful.
-bool Demangle(const char *mangled, char *out, int out_size);
+bool GOOGLE_GLOG_DLL_DECL Demangle(const char *mangled, char *out, int out_size);
_END_GOOGLE_NAMESPACE_
diff --git a/extern/libmv/third_party/glog/src/glog/logging.h b/extern/libmv/third_party/glog/src/glog/logging.h
index 247c0467b6a..c632fcaca1b 100644
--- a/extern/libmv/third_party/glog/src/glog/logging.h
+++ b/extern/libmv/third_party/glog/src/glog/logging.h
@@ -52,14 +52,6 @@
#endif
#include <vector>
-// Annoying stuff for windows -- makes sure clients can import these functions
-#ifndef GOOGLE_GLOG_DLL_DECL
-# if defined(_WIN32) && !defined(__CYGWIN__)
-# define GOOGLE_GLOG_DLL_DECL __declspec(dllimport)
-# else
-# define GOOGLE_GLOG_DLL_DECL
-# endif
-#endif
#if defined(_MSC_VER)
#define GLOG_MSVC_PUSH_DISABLE_WARNING(n) __pragma(warning(push)) \
__pragma(warning(disable:n))
@@ -69,6 +61,15 @@
#define GLOG_MSVC_POP_WARNING()
#endif
+// Annoying stuff for windows -- makes sure clients can import these functions
+#ifndef GOOGLE_GLOG_DLL_DECL
+# if defined(_WIN32) && !defined(__CYGWIN__)
+# define GOOGLE_GLOG_DLL_DECL __declspec(dllimport)
+# else
+# define GOOGLE_GLOG_DLL_DECL
+# endif
+#endif
+
// We care a lot about number of bits things take up. Unfortunately,
// systems define their bit-specific ints in a lot of different ways.
// We use our own way, and have a typedef to get there.
@@ -133,15 +134,28 @@ typedef unsigned __int64 uint64;
#ifndef GOOGLE_PREDICT_BRANCH_NOT_TAKEN
#if 1
#define GOOGLE_PREDICT_BRANCH_NOT_TAKEN(x) (__builtin_expect(x, 0))
-#define GOOGLE_PREDICT_FALSE(x) (__builtin_expect(x, 0))
-#define GOOGLE_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
#else
#define GOOGLE_PREDICT_BRANCH_NOT_TAKEN(x) x
+#endif
+#endif
+
+#ifndef GOOGLE_PREDICT_FALSE
+#if 1
+#define GOOGLE_PREDICT_FALSE(x) (__builtin_expect(x, 0))
+#else
#define GOOGLE_PREDICT_FALSE(x) x
+#endif
+#endif
+
+#ifndef GOOGLE_PREDICT_TRUE
+#if 1
+#define GOOGLE_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
+#else
#define GOOGLE_PREDICT_TRUE(x) x
#endif
#endif
+
// Make a bunch of macros for logging. The way to log things is to stream
// things to LOG(<a particular severity level>). E.g.,
//
@@ -351,6 +365,9 @@ DECLARE_int32(minloglevel);
// default logging directory.
DECLARE_string(log_dir);
+// Set the log file mode.
+DECLARE_int32(logfile_mode);
+
// Sets the path of the directory into which to put additional links
// to the log files.
DECLARE_string(log_link);
@@ -546,7 +563,7 @@ class LogSink; // defined below
// vector<string> *outvec;
// The cast is to disambiguate NULL arguments.
#define LOG_STRING(severity, outvec) \
- LOG_TO_STRING_##severity(static_cast<vector<string>*>(outvec)).stream()
+ LOG_TO_STRING_##severity(static_cast<std::vector<std::string>*>(outvec)).stream()
#define LOG_IF(severity, condition) \
!(condition) ? (void) 0 : google::LogMessageVoidify() & LOG(severity)
@@ -631,7 +648,7 @@ void MakeCheckOpValueString(std::ostream* os, const unsigned char& v);
// Build the error message string. Specify no inlining for code size.
template <typename T1, typename T2>
std::string* MakeCheckOpString(const T1& v1, const T2& v2, const char* exprtext)
- __attribute__ ((noinline));
+ __attribute__((noinline));
namespace base {
namespace internal {
@@ -714,10 +731,10 @@ DEFINE_CHECK_OP_IMPL(Check_GT, > )
// to reduce the overhead of CHECK statments by 2x.
// Real DCHECK-heavy tests have seen 1.5x speedups.
-// The meaning of "string" might be different between now and
+// The meaning of "string" might be different between now and
// when this macro gets invoked (e.g., if someone is experimenting
// with other string implementations that get defined after this
-// file is included). Save the current meaning now and use it
+// file is included). Save the current meaning now and use it
// in the macro.
typedef std::string _Check_string;
#define CHECK_OP_LOG(name, op, val1, val2, log) \
@@ -910,6 +927,9 @@ template <bool>
struct CompileAssert {
};
struct CrashReason;
+
+// Returns true if FailureSignalHandler is installed.
+bool IsFailureSignalHandlerInstalled();
} // namespace glog_internal_namespace_
#define GOOGLE_GLOG_COMPILE_ASSERT(expr, msg) \
@@ -1155,6 +1175,8 @@ public:
char* str() const { return pbase(); }
private:
+ LogStream(const LogStream&);
+ LogStream& operator=(const LogStream&);
base_logging::LogStreamBuf streambuf_;
int ctr_; // Counter hack (for the LOG_EVERY_X() macro)
LogStream *self_; // Consistency check hack
@@ -1222,7 +1244,7 @@ public:
void SendToSyslogAndLog(); // Actually dispatch to syslog and the logs
// Call abort() or similar to perform LOG(FATAL) crash.
- static void Fail() __attribute__ ((noreturn));
+ static void __attribute__((noreturn)) Fail();
std::ostream& stream();
@@ -1270,7 +1292,7 @@ class GOOGLE_GLOG_DLL_DECL LogMessageFatal : public LogMessage {
public:
LogMessageFatal(const char* file, int line);
LogMessageFatal(const char* file, int line, const CheckOpString& result);
- ~LogMessageFatal() __attribute__ ((noreturn));
+ __attribute__((noreturn)) ~LogMessageFatal();
};
// A non-macro interface to the log facility; (useful
@@ -1574,7 +1596,7 @@ class GOOGLE_GLOG_DLL_DECL NullStreamFatal : public NullStream {
NullStreamFatal() { }
NullStreamFatal(const char* file, int line, const CheckOpString& result) :
NullStream(file, line, result) { }
- __attribute__ ((noreturn)) ~NullStreamFatal() { _exit(1); }
+ __attribute__((noreturn)) ~NullStreamFatal() throw () { _exit(1); }
};
// Install a signal handler that will dump signal information and a stack
diff --git a/extern/libmv/third_party/glog/src/glog/raw_logging.h b/extern/libmv/third_party/glog/src/glog/raw_logging.h
index b030f7f736d..de751d8a6b2 100644
--- a/extern/libmv/third_party/glog/src/glog/raw_logging.h
+++ b/extern/libmv/third_party/glog/src/glog/raw_logging.h
@@ -32,7 +32,6 @@
// Thread-safe logging routines that do not allocate any memory or
// acquire any locks, and can therefore be used by low-level memory
// allocation and synchronization code.
-
#ifdef WIN32
# include "windows/glog/raw_logging.h"
#else // WIN32
@@ -177,7 +176,7 @@ GOOGLE_GLOG_DLL_DECL void RawLog__(LogSeverity severity,
const char* file,
int line,
const char* format, ...)
- __attribute__((__format__ (__printf__, 4, 5)));
+ ;
// Hack to propagate time information into this module so that
// this module does not have to directly call localtime_r(),
diff --git a/extern/libmv/third_party/glog/src/logging.cc b/extern/libmv/third_party/glog/src/logging.cc
index 75047353535..ec9eef1b83d 100644
--- a/extern/libmv/third_party/glog/src/logging.cc
+++ b/extern/libmv/third_party/glog/src/logging.cc
@@ -35,7 +35,6 @@
#include <assert.h>
#include <iomanip>
#include <string>
-#include <algorithm>
#ifdef HAVE_UNISTD_H
# include <unistd.h> // For _exit.
#endif
@@ -89,6 +88,10 @@ using std::perror;
using std::fdopen;
#endif
+#ifdef _WIN32
+#define fdopen _fdopen
+#endif
+
// There is no thread annotation support.
#define EXCLUSIVE_LOCKS_REQUIRED(mu)
@@ -162,6 +165,8 @@ static const char* DefaultLogDir() {
return "";
}
+GLOG_DEFINE_int32(logfile_mode, 0664, "Log file mode/permissions.");
+
GLOG_DEFINE_string(log_dir, DefaultLogDir(),
"If specified, logfiles are written into this directory instead "
"of the default logging directory.");
@@ -254,6 +259,7 @@ static bool TerminalSupportsColor() {
!strcmp(term, "xterm") ||
!strcmp(term, "xterm-color") ||
!strcmp(term, "xterm-256color") ||
+ !strcmp(term, "screen-256color") ||
!strcmp(term, "screen") ||
!strcmp(term, "linux") ||
!strcmp(term, "cygwin");
@@ -307,7 +313,7 @@ WORD GetColorAttribute(GLogColor color) {
#else
// Returns the ANSI color code for the given color.
-static const char* GetAnsiColorCode(GLogColor color) {
+const char* GetAnsiColorCode(GLogColor color) {
switch (color) {
case COLOR_RED: return "1";
case COLOR_GREEN: return "2";
@@ -570,7 +576,7 @@ inline void LogDestination::FlushLogFilesUnsafe(int min_severity) {
// assume we have the log_mutex or we simply don't care
// about it
for (int i = min_severity; i < NUM_SEVERITIES; i++) {
- LogDestination* log = log_destination(i);
+ LogDestination* log = log_destinations_[i];
if (log != NULL) {
// Flush the base fileobject_ logger directly instead of going
// through any wrappers to reduce chance of deadlock.
@@ -817,6 +823,8 @@ void LogDestination::DeleteLogDestinations() {
delete log_destinations_[severity];
log_destinations_[severity] = NULL;
}
+ MutexLock l(&sink_mutex_);
+ delete sinks_;
}
namespace {
@@ -897,7 +905,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
string string_filename = base_filename_+filename_extension_+
time_pid_string;
const char* filename = string_filename.c_str();
- int fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0664);
+ int fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, FLAGS_logfile_mode);
if (fd == -1) return false;
#ifdef HAVE_FCNTL
// Mark the file close-on-exec. We don't really care if this fails
@@ -1669,8 +1677,6 @@ void LogToStderr() {
namespace base {
namespace internal {
-namespace {
-
bool GetExitOnDFatal() {
MutexLock l(&log_mutex);
return exit_on_dfatal;
@@ -1691,8 +1697,6 @@ void SetExitOnDFatal(bool value) {
exit_on_dfatal = value;
}
-} // namespace
-
} // namespace internal
} // namespace base
diff --git a/extern/libmv/third_party/glog/src/signalhandler.cc b/extern/libmv/third_party/glog/src/signalhandler.cc
index cccd800d769..a7aef8b99d2 100644
--- a/extern/libmv/third_party/glog/src/signalhandler.cc
+++ b/extern/libmv/third_party/glog/src/signalhandler.cc
@@ -335,6 +335,22 @@ void FailureSignalHandler(int signal_number,
#endif // HAVE_SIGACTION
+namespace glog_internal_namespace_ {
+
+bool IsFailureSignalHandlerInstalled() {
+#ifdef HAVE_SIGACTION
+ struct sigaction sig_action;
+ memset(&sig_action, 0, sizeof(sig_action));
+ sigemptyset(&sig_action.sa_mask);
+ sigaction(SIGABRT, NULL, &sig_action);
+ if (sig_action.sa_sigaction == &FailureSignalHandler)
+ return true;
+#endif // HAVE_SIGACTION
+ return false;
+}
+
+} // namespace glog_internal_namespace_
+
void InstallFailureSignalHandler() {
#ifdef HAVE_SIGACTION
// Build the sigaction struct.
diff --git a/extern/libmv/third_party/glog/src/utilities.cc b/extern/libmv/third_party/glog/src/utilities.cc
index 1e8836d243f..5c88e58d3c0 100644
--- a/extern/libmv/third_party/glog/src/utilities.cc
+++ b/extern/libmv/third_party/glog/src/utilities.cc
@@ -84,7 +84,7 @@ static void DebugWriteToStderr(const char* data, void *) {
}
}
-static void DebugWriteToString(const char* data, void *arg) {
+void DebugWriteToString(const char* data, void *arg) {
reinterpret_cast<string*>(arg)->append(data);
}
@@ -138,13 +138,15 @@ static void DumpStackTraceAndExit() {
// TOOD(hamaji): Use signal instead of sigaction?
#ifdef HAVE_SIGACTION
- // Set the default signal handler for SIGABRT, to avoid invoking our
- // own signal handler installed by InstallFailedSignalHandler().
- struct sigaction sig_action;
- memset(&sig_action, 0, sizeof(sig_action));
- sigemptyset(&sig_action.sa_mask);
- sig_action.sa_handler = SIG_DFL;
- sigaction(SIGABRT, &sig_action, NULL);
+ if (IsFailureSignalHandlerInstalled()) {
+ // Set the default signal handler for SIGABRT, to avoid invoking our
+ // own signal handler installed by InstallFailureSignalHandler().
+ struct sigaction sig_action;
+ memset(&sig_action, 0, sizeof(sig_action));
+ sigemptyset(&sig_action.sa_mask);
+ sig_action.sa_handler = SIG_DFL;
+ sigaction(SIGABRT, &sig_action, NULL);
+ }
#endif // HAVE_SIGACTION
abort();
diff --git a/extern/libmv/third_party/glog/src/vlog_is_on.cc b/extern/libmv/third_party/glog/src/vlog_is_on.cc
index cd7fc19bca8..4c95583b683 100644
--- a/extern/libmv/third_party/glog/src/vlog_is_on.cc
+++ b/extern/libmv/third_party/glog/src/vlog_is_on.cc
@@ -62,8 +62,6 @@ _START_GOOGLE_NAMESPACE_
namespace glog_internal_namespace_ {
-namespace {
-
// Implementation of fnmatch that does not need 0-termination
// of arguments and does not allocate any memory,
// but we only support "*" and "?" wildcards, not the "[...]" patterns.
@@ -97,8 +95,6 @@ GOOGLE_GLOG_DLL_DECL bool SafeFNMatch_(const char* pattern,
}
}
-} // namespace
-
} // namespace glog_internal_namespace_
using glog_internal_namespace_::SafeFNMatch_;
@@ -166,30 +162,32 @@ int SetVLOGLevel(const char* module_pattern, int log_level) {
int result = FLAGS_v;
int const pattern_len = strlen(module_pattern);
bool found = false;
- MutexLock l(&vmodule_lock); // protect whole read-modify-write
- for (const VModuleInfo* info = vmodule_list;
- info != NULL; info = info->next) {
- if (info->module_pattern == module_pattern) {
- if (!found) {
+ {
+ MutexLock l(&vmodule_lock); // protect whole read-modify-write
+ for (const VModuleInfo* info = vmodule_list;
+ info != NULL; info = info->next) {
+ if (info->module_pattern == module_pattern) {
+ if (!found) {
+ result = info->vlog_level;
+ found = true;
+ }
+ info->vlog_level = log_level;
+ } else if (!found &&
+ SafeFNMatch_(info->module_pattern.c_str(),
+ info->module_pattern.size(),
+ module_pattern, pattern_len)) {
result = info->vlog_level;
found = true;
}
+ }
+ if (!found) {
+ VModuleInfo* info = new VModuleInfo;
+ info->module_pattern = module_pattern;
info->vlog_level = log_level;
- } else if (!found &&
- SafeFNMatch_(info->module_pattern.c_str(),
- info->module_pattern.size(),
- module_pattern, pattern_len)) {
- result = info->vlog_level;
- found = true;
+ info->next = vmodule_list;
+ vmodule_list = info;
}
}
- if (!found) {
- VModuleInfo* info = new VModuleInfo;
- info->module_pattern = module_pattern;
- info->vlog_level = log_level;
- info->next = vmodule_list;
- vmodule_list = info;
- }
RAW_VLOG(1, "Set VLOG level for \"%s\" to %d", module_pattern, log_level);
return result;
}
diff --git a/extern/libmv/third_party/glog/src/windows/config.h b/extern/libmv/third_party/glog/src/windows/config.h
index 9fb3cc564d5..279eca478d5 100644
--- a/extern/libmv/third_party/glog/src/windows/config.h
+++ b/extern/libmv/third_party/glog/src/windows/config.h
@@ -12,6 +12,10 @@
/* Puts following code inside the Google namespace */
#define _START_GOOGLE_NAMESPACE_ namespace google {
+#ifdef __MINGW32__
+# define HAVE_SNPRINTF
+#endif
+
/* Always the empty-string on non-windows systems. On windows, should be
"__declspec(dllexport)". This way, when we compile the dll, we export our
functions/classes. It's safe to define this here because config.h is only
diff --git a/extern/libmv/third_party/glog/src/windows/glog/logging.h b/extern/libmv/third_party/glog/src/windows/glog/logging.h
index 6e9c9224f92..fec5d7672cd 100644
--- a/extern/libmv/third_party/glog/src/windows/glog/logging.h
+++ b/extern/libmv/third_party/glog/src/windows/glog/logging.h
@@ -919,6 +919,9 @@ template <bool>
struct CompileAssert {
};
struct CrashReason;
+
+// Returns true if FailureSignalHandler is installed.
+bool IsFailureSignalHandlerInstalled();
} // namespace glog_internal_namespace_
#define GOOGLE_GLOG_COMPILE_ASSERT(expr, msg) \
diff --git a/extern/libmv/third_party/glog/src/windows/port.cc b/extern/libmv/third_party/glog/src/windows/port.cc
index c16111a4b6d..a2f8395de1d 100644
--- a/extern/libmv/third_party/glog/src/windows/port.cc
+++ b/extern/libmv/third_party/glog/src/windows/port.cc
@@ -36,7 +36,7 @@
# error You should only be including windows/port.cc in a windows environment!
#endif
-#include "config.h"
+#include "../config.h"
#include <stdarg.h> // for va_list, va_start, va_end
#include <string.h> // for strstr()
#include <assert.h>
@@ -55,7 +55,7 @@ int safe_vsnprintf(char *str, size_t size, const char *format, va_list ap) {
return _vsnprintf(str, size-1, format, ap);
}
-#ifndef __MINGW64__
+#ifndef HAVE_SNPRINTF
int snprintf(char *str, size_t size, const char *format, ...) {
va_list ap;
va_start(ap, format);
diff --git a/extern/libmv/third_party/glog/src/windows/port.h b/extern/libmv/third_party/glog/src/windows/port.h
index 4879cbf5f92..3be525e8ce9 100644
--- a/extern/libmv/third_party/glog/src/windows/port.h
+++ b/extern/libmv/third_party/glog/src/windows/port.h
@@ -41,7 +41,7 @@
#ifndef CTEMPLATE_WINDOWS_PORT_H_
#define CTEMPLATE_WINDOWS_PORT_H_
-#include "config.h"
+#include "../config.h"
#ifdef _WIN32
@@ -111,12 +111,16 @@ enum { STDIN_FILENO = 0, STDOUT_FILENO = 1, STDERR_FILENO = 2 };
* because they don't always NUL-terminate. :-( We also can't use the
* name vsnprintf, since windows defines that (but not snprintf (!)).
*/
-extern int snprintf(char *str, size_t size,
+#ifndef HAVE_SNPRINTF
+extern int GOOGLE_GLOG_DLL_DECL snprintf(char *str, size_t size,
const char *format, ...);
-extern int safe_vsnprintf(char *str, size_t size,
+#endif
+extern int GOOGLE_GLOG_DLL_DECL safe_vsnprintf(char *str, size_t size,
const char *format, va_list ap);
#define vsnprintf(str, size, format, ap) safe_vsnprintf(str, size, format, ap)
+#ifndef va_copy
#define va_copy(dst, src) (dst) = (src)
+#endif
/* Windows doesn't support specifying the number of buckets as a
* hash_map constructor arg, so we leave this blank.
@@ -129,9 +133,6 @@ extern int safe_vsnprintf(char *str, size_t size,
typedef int pid_t;
#define getpid _getpid
-#include <BaseTsd.h>
-typedef SSIZE_T ssize_t;
-
#endif // _MSC_VER
// ----------------------------------- THREADS
@@ -143,30 +144,13 @@ enum { PTHREAD_ONCE_INIT = 0 }; // important that this be 0! for SpinLock
#define pthread_equal(pthread_t_1, pthread_t_2) ((pthread_t_1)==(pthread_t_2))
inline struct tm* localtime_r(const time_t* timep, struct tm* result) {
-#if __MINGW32__
- struct tm *local_result;
- local_result = localtime (timep);
-
- if (local_result == NULL || result == NULL)
- return NULL;
-
- memcpy (result, local_result, sizeof (result));
-
- return result;
-#else
localtime_s(result, timep);
return result;
-#endif
}
inline char* strerror_r(int errnum, char* buf, size_t buflen) {
-#if __MINGW32__
- strncpy(buf, "Not implemented yet", buflen);
- return buf;
-#else
strerror_s(buf, buflen, errnum);
return buf;
-#endif
}
#ifndef __cplusplus
diff --git a/extern/libmv/third_party/glog/src/windows/preprocess.sh b/extern/libmv/third_party/glog/src/windows/preprocess.sh
index ea4352e8e3a..5398988e7ea 100755
--- a/extern/libmv/third_party/glog/src/windows/preprocess.sh
+++ b/extern/libmv/third_party/glog/src/windows/preprocess.sh
@@ -96,6 +96,7 @@ DLLDEF_DEFINES="\
-e "s!@ac_cv_have___builtin_expect@!0!g" \
-e "s!@ac_cv_cxx_using_operator@!1!g" \
-e "s!@ac_cv___attribute___noreturn@!!g" \
+ -e "s!@ac_cv___attribute___noinline@!!g" \
-e "s!@ac_cv___attribute___printf_4_5@!!g" \
-e "s!@ac_google_attribute@!${HAVE___ATTRIBUTE__:-0}!g" \
-e "s!@ac_google_end_namespace@!$_END_GOOGLE_NAMESPACE_!g" \