gnu: glog: Update to 0.4.0.

* gnu/packages/patches/glog-gcc-5-demangling.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/logging.scm (glog): Update to 0.4.0.
[source]: Use GIT-FETCH.
[arguments]: Remove.
This commit is contained in:
Marius Bakke 2019-07-18 23:44:59 +02:00
parent 262f904ebd
commit 4678cc46a4
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
3 changed files with 6 additions and 89 deletions

View File

@ -880,7 +880,6 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-2.27-git-fixes.patch \
%D%/packages/patches/glibc-2.28-git-fixes.patch \
%D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \
%D%/packages/patches/glog-gcc-5-demangling.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
%D%/packages/patches/gmp-faulty-test.patch \
%D%/packages/patches/gnome-shell-theme.patch \

View File

@ -64,40 +64,22 @@ staying as close to their API as is reasonable.")
(define-public glog
(package
(name "glog")
(version "0.3.5")
(version "0.4.0")
(home-page "https://github.com/google/glog")
(source (origin
(method url-fetch)
(uri (string-append home-page "/archive/v" version ".tar.gz"))
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(sha256
(base32
"1q6ihk2asbx95a56kmyqwysq1x3grrw9jwqllafaidf0l84f903m"))
(file-name (string-append name "-" version ".tar.gz"))
(patches (search-patches "glog-gcc-5-demangling.patch"))))
"1xd3maiipfbxmhc9rrblc5x52nxvkwxp14npg31y5njqvkvzax9b"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl) ;for tests
("autoconf" ,autoconf-wrapper)
("automake" ,automake)
("libtool" ,libtool)))
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'add-automake-files
(lambda _
;; The 'test-driver' file is a dangling symlink to
;; /usr/share/automake; replace it. We can't just run
;; 'automake -ac' because it complains about version
;; mismatch, so run the whole thing.
(delete-file "test-driver")
(delete-file "configure") ;it's read-only
(invoke "autoreconf" "-vfi")))
(add-before 'check 'disable-signal-tests
(lambda _
;; See e.g. https://github.com/google/glog/issues/219
;; and https://github.com/google/glog/issues/256
(substitute* "Makefile"
(("\tsignalhandler_unittest_sh") "\t$(EMPTY)"))
#t)))))
(synopsis "C++ logging library")
(description
"Google glog is a library that implements application-level logging.

View File

@ -1,64 +0,0 @@
Fix symbol demangling for GCC 5, as reported at:
https://github.com/google/glog/issues/14
Patch from:
https://github.com/google/glog/pull/50
From b1639e3014996fbc7635870e013559c54e7e3b2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Mart=C3=ADnez=20Moreno?= <ender@debian.org>
Date: Thu, 13 Aug 2015 09:31:26 -0700
Subject: [PATCH] Fix ABI demangling for the GCC 5.x case.
When glog is compiled with gcc-5.2 in cxx11 ABI mode, it barfs about unmangled symbols. This patches it getting inspiration from binutils and demangle.cc itself, although it may be totally wrong or maybe have to use ParseAbiTag in more places. I haven't read the spec for the symbols, though.
This patch makes the demangle unit test pass correctly.
---
src/demangle.cc | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/demangle.cc b/src/demangle.cc
index e858181..0f0c831 100644
--- a/src/demangle.cc
+++ b/src/demangle.cc
@@ -439,6 +439,7 @@ static bool ParseExprPrimary(State *state);
static bool ParseLocalName(State *state);
static bool ParseDiscriminator(State *state);
static bool ParseSubstitution(State *state);
+static bool ParseAbiTag(State *state);
// Implementation note: the following code is a straightforward
// translation of the Itanium C++ ABI defined in BNF with a couple of
@@ -567,6 +568,8 @@ static bool ParseNestedName(State *state) {
static bool ParsePrefix(State *state) {
bool has_something = false;
while (true) {
+ if (ParseAbiTag(state))
+ continue;
MaybeAppendSeparator(state);
if (ParseTemplateParam(state) ||
ParseSubstitution(state) ||
@@ -585,6 +588,22 @@ static bool ParsePrefix(State *state) {
return true;
}
+// <abi-tag> ::= B <source-name>
+static bool ParseAbiTag(State *state) {
+ State copy = *state;
+
+ Append(state, "[", 1);
+ if (ParseOneCharToken(state, 'B') &&
+ ParseSourceName(state))
+ {
+ Append(state, "]", 1);
+ return true;
+ }
+
+ *state = copy;
+ return false;
+}
+
// <unqualified-name> ::= <operator-name>
// ::= <ctor-dtor-name>
// ::= <source-name>