GCC fix: Disable -Wmultichar warning throughout Crashpad [crashpad/crashpad : master]

295 views
Skip to first unread message

Robert Sesek (Gerrit)

unread,
Nov 10, 2016, 5:04:02 PM11/10/16
to Mark Mentovai, Robert Sesek, crashp...@chromium.org

Robert Sesek posted comments on GCC fix: Disable -Wmultichar warning throughout Crashpad.

View Change

Patch Set 1: Code-Review+1

    To view, visit this change. To unsubscribe, visit settings.

    Gerrit-MessageType: comment
    Gerrit-Change-Id: I9e7993761f5461281c9f4d8b4c56e8407e2c5b47
    Gerrit-PatchSet: 1
    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: master
    Gerrit-Owner: Mark Mentovai <ma...@chromium.org>Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>Gerrit-Reviewer: Robert Sesek <rse...@chromium.org>

    Gerrit-HasComments: No

    Mark Mentovai (Gerrit)

    unread,
    Nov 11, 2016, 12:35:28 PM11/11/16
    to Robert Sesek, crashp...@chromium.org

    Mark Mentovai merged GCC fix: Disable -Wmultichar warning throughout Crashpad.

    View Change

    GCC fix: Disable -Wmultichar warning throughout Crashpad
    
    -Wmultichar is enabled by default with GCC (but not clang). It is
    impossible to disable this warning with #pragma GCC diagnostic ignored.
    See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
    
    While compiling, for example, minidump_file_writer.cc:
    
    In file included from ../../minidump/minidump_extensions.h:25:0,
                     from ../../minidump/minidump_file_writer.h:27,
                     from ../../minidump/minidump_file_writer.cc:15:
    ../../util/misc/pdb_structures.h:45:38: error: multi-character character constan
    t [-Werror=multichar]
       static const uint32_t kSignature = '01BN';
                                          ^~~~~~
    ../../util/misc/pdb_structures.h:106:38: error: multi-character character consta
    nt [-Werror=multichar]
       static const uint32_t kSignature = 'SDSR';
                                          ^~~~~~
    ../../minidump/minidump_file_writer.cc:190:23: error: multi-character character
    constant [-Werror=multichar]
       header_.Signature = MINIDUMP_SIGNATURE;
                           ^~~~~~~~~~~~~~~~~~
    
    doc/developing.md is also updated to provide GCC build instructions for
    Android.
    
    Tested with:
     - GCC 4.9 from NDK r13 targeting arm with SDK 16
     - GCC 4.9 from NDK r13 targeting arm64 with SDK 21
     - GCC 6.2 targeting x86_64
    
    BUG=crashpad:30
    
    Change-Id: I9e7993761f5461281c9f4d8b4c56e8407e2c5b47
    Reviewed-on: https://chromium-review.googlesource.com/409776
    Reviewed-by: Robert Sesek <rse...@chromium.org>
    ---
    M build/crashpad.gypi
    M doc/developing.md
    2 files changed, 17 insertions(+), 1 deletion(-)
    
    
    Approvals:
      Robert Sesek: Looks good to me
    
    
    diff --git a/build/crashpad.gypi b/build/crashpad.gypi
    index 027c7b6..166e768 100644
    --- a/build/crashpad.gypi
    +++ b/build/crashpad.gypi
    @@ -25,5 +25,16 @@
           4201,  # nonstandard extension used : nameless struct/union.
           4324,  # structure was padded due to __declspec(align()).
         ],
    +    'conditions': [
    +      ['OS=="linux" or OS=="android"', {
    +        'conditions': [
    +          ['clang==0', {
    +            'cflags': [
    +              '-Wno-multichar',
    +            ],
    +          }],
    +        ],
    +      }],
    +    ],
       },
     }
    diff --git a/doc/developing.md b/doc/developing.md
    index 229e7b0..9f88167 100644
    --- a/doc/developing.md
    +++ b/doc/developing.md
    @@ -154,7 +154,12 @@
           --generator-output=out_android_arm64_api21 -f ninja-android
     ```
     
    -Target “triplets” to use for `ar`, `nm`, and `readelf` are:
    +It is also possible to use GCC instead of Clang by making the appropriate
    +substitutions: `aarch64-linux-android-gcc` for `CC_target`;
    +`aarch64-linux-android-g++` for `CXX_target`; and `-Dclang=0` as an argument to
    +`gyp_crashpad.py`.
    +
    +Target “triplets” to use for `ar`, `nm`, `readelf`, `gcc`, and `g++` are:
     
     | Architecture | Target “triplet”        |
     |:-------------|:------------------------|
    

    To view, visit this change. To unsubscribe, visit settings.

    Gerrit-MessageType: merged
    Gerrit-Change-Id: I9e7993761f5461281c9f4d8b4c56e8407e2c5b47
    Gerrit-PatchSet: 3

    Reply all
    Reply to author
    Forward
    0 new messages