You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ba...@apache.org on 2020/04/27 23:35:45 UTC

[kudu] branch master updated: [c++17] Fixed compilation error of thirdparty package "breakpad" in gcc9

This is an automated email from the ASF dual-hosted git repository.

bankim pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new c5fd2e4  [c++17] Fixed compilation error of thirdparty package "breakpad" in gcc9
c5fd2e4 is described below

commit c5fd2e44245502c3c7f8dd0f2cd7639815fef0aa
Author: Volodymyr Verovkin <ve...@cloudera.com>
AuthorDate: Wed Apr 22 03:44:25 2020 -0700

    [c++17] Fixed compilation error of thirdparty package "breakpad" in gcc9
    
    gcc-9.2.1 produced error:
    kudu/thirdparty/src/breakpad-9eac2058b70615519b2c4d8c6bdbfca1bd079e39/
    src/third_party/lss/linux_syscall_support.h:
    In member function ‘bool
    google_breakpad::ExceptionHandler::GenerateDump(
    google_breakpad::ExceptionHandler::CrashContext*)’:
    kudu/thirdparty/src/breakpad-9eac2058b70615519b2c4d8c6bdbfca1bd079e39/
    src/third_party/lss/linux_syscall_support.h:2379:75:
    error: listing the stack pointer register ‘rsp’ in a clobber list is
    deprecated [-Werror=deprecated]
    : "rsp", "memory", "r8", "r10", "r11", "rcx");
    
    It's fixed by patch from Google Chromium team.
    Reference patch:
    https://chromium.googlesource.com/linux-syscall-support/+/8048ece6c16c91acfe0d36d1d3cc0890ab6e945c%5E%21/
    
    Change-Id: I75706392c5347a1b13f39b04d8c21b6ea528797a
    Reviewed-on: http://gerrit.cloudera.org:8080/15782
    Tested-by: Kudu Jenkins
    Reviewed-by: Bankim Bhavsar <ba...@cloudera.com>
    Reviewed-by: Alexey Serbin <as...@cloudera.com>
---
 thirdparty/download-thirdparty.sh                  |  5 +++--
 .../patches/breakpad-syscall-rsp-clobber-fix.patch | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/thirdparty/download-thirdparty.sh b/thirdparty/download-thirdparty.sh
index ab4e8ed..0466fea 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -368,12 +368,13 @@ if needs_openssl_workaround && [ ! -d "$OPENSSL_WORKAROUND_DIR" ] ; then
   $TP_DIR/install-openssl-el6-workaround.sh
 fi
 
-BREAKPAD_PATCHLEVEL=1
+BREAKPAD_PATCHLEVEL=2
 fetch_and_patch \
  breakpad-${BREAKPAD_VERSION}.tar.gz \
  $BREAKPAD_SOURCE \
  $BREAKPAD_PATCHLEVEL \
- "patch -p1 < $TP_DIR/patches/breakpad-add-basic-support-for-dwz-dwarf-extension.patch"
+ "patch -p1 < $TP_DIR/patches/breakpad-add-basic-support-for-dwz-dwarf-extension.patch" \
+ "patch -p1 < $TP_DIR/patches/breakpad-syscall-rsp-clobber-fix.patch"
 
 SPARSEHASH_PATCHLEVEL=3
 fetch_and_patch \
diff --git a/thirdparty/patches/breakpad-syscall-rsp-clobber-fix.patch b/thirdparty/patches/breakpad-syscall-rsp-clobber-fix.patch
new file mode 100644
index 0000000..d18152f
--- /dev/null
+++ b/thirdparty/patches/breakpad-syscall-rsp-clobber-fix.patch
@@ -0,0 +1,22 @@
+diff --git a/src/third_party/lss/linux_syscall_support.h b/src/third_party/lss/linux_syscall_support.h
+index 129aa75..9276f56 100644
+--- a/src/third_party/lss/linux_syscall_support.h
++++ b/src/third_party/lss/linux_syscall_support.h
+@@ -1964,7 +1964,7 @@ struct kernel_statfs {
+         __asm__ volatile(LSS_ENTRYPOINT                                       \
+                          : "=a" (__res)                                       \
+                          : "0" (__NR_##name)                                  \
+-                         : "esp", "memory");                                  \
++                         : "memory");                                         \
+         LSS_RETURN(type,__res);                                               \
+       }
+     #undef  _syscall1
+@@ -2405,7 +2405,7 @@ struct kernel_statfs {
+                                "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+                                "r"(LSS_SYSCALL_ARG(newtls)),
+                                "r"(LSS_SYSCALL_ARG(child_tidptr))
+-                             : "rsp", "memory", "r8", "r10", "r11", "rcx");
++                             : "memory", "r8", "r10", "r11", "rcx");
+       }
+       LSS_RETURN(int, __res);
+     }