From 8bafb3da8fe46993f995054ec84c75f82e6bb2d8 Mon Sep 17 00:00:00 2001 From: Steve Fung Date: Fri, 7 Aug 2015 13:22:46 -0700 Subject: [PATCH] crash_reporter: Fix initial compile issues with Android toolchain Fix some issues to get crash_reporter to compile on Android. C++ source: * bits/wordsize.h is used for __WORDSIZE, but is unavailable for most Android toolchain architectures. It instead is available in sys/cdefs.h Flex source: * The Flex compiler toolchain doesn't link against the default fl library using -lfl. Thus there is no yywrap() function defined. Since the default fl library implementation just returns 1 (true), instead add a directive to disable yywrap. * The index(..) function has been deprecated in favor of strchr(..) * Add a directive to disable the "deprecated conversion from string constant to 'char*'" warning in the generated code. * Remove warning suppression for the input() function which doesn't get generated with Flex v2.5.39 and the arguments passed in the build command. Bug: 22874187 Change-Id: I6d7dcf5f801010aeae06db9f0628a6652ee269ee --- crash_reporter/user_collector.cc | 2 +- crash_reporter/user_collector_test.cc | 2 +- crash_reporter/warn_collector.l | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/crash_reporter/user_collector.cc b/crash_reporter/user_collector.cc index ac2f90ef2..069b581b7 100644 --- a/crash_reporter/user_collector.cc +++ b/crash_reporter/user_collector.cc @@ -4,13 +4,13 @@ #include "user_collector.h" -#include #include #include #include // For struct group. #include #include // For struct passwd. #include +#include // For __WORDSIZE #include // For getpwuid_r, getgrnam_r, WEXITSTATUS. #include diff --git a/crash_reporter/user_collector_test.cc b/crash_reporter/user_collector_test.cc index a0ada0657..ee3ca128b 100644 --- a/crash_reporter/user_collector_test.cc +++ b/crash_reporter/user_collector_test.cc @@ -4,8 +4,8 @@ #include "user_collector.h" -#include #include +#include // For __WORDSIZE #include #include diff --git a/crash_reporter/warn_collector.l b/crash_reporter/warn_collector.l index 691ef9913..de746feff 100644 --- a/crash_reporter/warn_collector.l +++ b/crash_reporter/warn_collector.l @@ -11,6 +11,8 @@ * shipment to the crash server. */ +%option noyywrap + %{ #include #include @@ -122,6 +124,7 @@ static void SetHashSeen(uint32_t hash) { hash_bitmap[word_index] |= 1 << bit_index; } +#pragma GCC diagnostic ignored "-Wwrite-strings" int WarnStart(void) { uint32_t hash; char *spacep; @@ -140,7 +143,7 @@ int WarnStart(void) { yyout = fopen(warn_dump_path, "w"); if (yyout == NULL) Die("fopen %s failed: %s\n", warn_dump_path, strerror(errno)); - spacep = index(yytext, ' '); + spacep = strchr(yytext, ' '); if (spacep == NULL || spacep[1] == '\0') spacep = "unknown-function"; fprintf(yyout, "%08x-%s\n", hash, spacep + 1); @@ -318,5 +321,4 @@ int main(int argc, char **argv) { */ void UnusedFunctionWarningSuppressor(void) { yyunput(0, 0); - (void) input(); }