New issue
Advanced search Search tips

Issue 629088 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Mar 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Breakpad re-defines existing |r_debug| and |link_map| in its Android headers

Reported by tzimmerm...@mozilla.com, Jul 18 2016

Issue description

Steps to reproduce the problem:
1. Build breakpad with NDK 21 or later
2. Compiler will complain about redefined strcutures |r_debug| and |link_map|
3. Build aborts

What is the expected behavior?
The build process should complete without errors.

What went wrong?
The NDK for Android 21 and later comes with |r_debug| and |link_map| defined. Breakpad doesn't test this, but defines it's own structures unconditionally.

Did this work before? No 

Chrome version: <Copy from: 'about:version'>  Channel: n/a
OS Version: 
Flash Version: 

This problem has been mentioned before in https://bugs.chromium.org/p/chromium/issues/detail?id=358831#c5
 
There's a patch and review pending at https://codereview.chromium.org/2156173002

Comment 2 by caseq@chromium.org, Jul 18 2016

Components: -Platform>DevTools Internals>CrashReporting Build
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/breakpad/breakpad/+/13c634f6a1b0c8f6d713979a8ee05ab2ef61b5a4

commit 13c634f6a1b0c8f6d713979a8ee05ab2ef61b5a4
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Aug 10 20:39:30 2016

Revert "Don't define |r_debug| and |link_map| on Android releases 21 and later"

This reverts commit 0fc6d0c8dfbb6e4226fd79c622b701a62c901f14 because it
does not compile in Chromium due to the following error:

In file included from ../../breakpad/src/client/linux/minidump_writer/linux_dumper.h:43:0,
                 from ../../breakpad/src/client/linux/minidump_writer/minidump_writer.h:41,
                 from ../../breakpad/src/client/linux/handler/exception_handler.h:42,
                 from ../../components/crash/content/app/breakpad_linux.cc:44:
../../breakpad/src/common/android/include/link.h:46:9: error: multi-line comment [-Werror=comment]
 #endif  // !defined(__aarch64__) && !defined(__x86_64__) && \
         ^

> Don't define |r_debug| and |link_map| on Android releases 21 and later
>
> NDKs for Android 21 and later have the data structures |r_debug| and
> |link_map| defined in their header files. Defining them multiple times
> generates a compiler error.
>
> This patch protects both data structures from definition on Android 21
> and later.
>
> BUG= 629088 
> R=rmcilroy@chromium.org
>
> Review URL: https://codereview.chromium.org/2156173002 .
>
> Patch from Thomas Zimmermann <tzimmermann@mozilla.com>.
>
> Committed: https://chromium.googlesource.com/breakpad/breakpad/+/0ebdc4a10a506e2a4a3a039c479b40219a84b760

BUG= 629088 

Change-Id: Ia8d7d0eff060d661113e544d732813820bcb69e0
Reviewed-on: https://chromium-review.googlesource.com/367717
Reviewed-by: Mark Mentovai <mark@chromium.org>

[modify] https://crrev.com/13c634f6a1b0c8f6d713979a8ee05ab2ef61b5a4/src/common/android/include/link.h

FYI, breakpad is broken with NDK r15 for *all* ABIs/platform versions because of this: https://bugs.chromium.org/p/google-breakpad/issues/detail?id=733
Status: WontFix (was: Unconfirmed)
Hope this issue is resolved, please reopen if needed.

Sign in to add a comment