Commit 6bc4bfea authored by Vasili Skurydzin's avatar Vasili Skurydzin Committed by Commit Bot

Fixes to V8 GN build process on aix platform

src/base/debug/stack_trace_posix.cc: suppressed unused function warnings
for functions DemangleSymbols, OutputPointer(in order to compile with
-Werror flag)

test/cctest/test-isolate-independent-builtins.cc: corrections to make
ByteInText test case compatible with aix. (affects aix only)

Change-Id: I49e45e63545404c77aaed3f51b26557f6f03455e
Reviewed-on: https://chromium-review.googlesource.com/927484Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52071}
parent 1f53e381
...@@ -72,6 +72,7 @@ const char kMangledSymbolPrefix[] = "_Z"; ...@@ -72,6 +72,7 @@ const char kMangledSymbolPrefix[] = "_Z";
const char kSymbolCharacters[] = const char kSymbolCharacters[] =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
#if HAVE_EXECINFO_H
// Demangles C++ symbols in the given text. Example: // Demangles C++ symbols in the given text. Example:
// //
// "out/Debug/base_unittests(_ZN10StackTraceC1Ev+0x20) [0x817778c]" // "out/Debug/base_unittests(_ZN10StackTraceC1Ev+0x20) [0x817778c]"
...@@ -81,7 +82,6 @@ void DemangleSymbols(std::string* text) { ...@@ -81,7 +82,6 @@ void DemangleSymbols(std::string* text) {
// Note: code in this function is NOT async-signal safe (std::string uses // Note: code in this function is NOT async-signal safe (std::string uses
// malloc internally). // malloc internally).
#if HAVE_EXECINFO_H
std::string::size_type search_from = 0; std::string::size_type search_from = 0;
while (search_from < text->size()) { while (search_from < text->size()) {
...@@ -117,9 +117,8 @@ void DemangleSymbols(std::string* text) { ...@@ -117,9 +117,8 @@ void DemangleSymbols(std::string* text) {
search_from = mangled_start + 2; search_from = mangled_start + 2;
} }
} }
#endif // HAVE_EXECINFO_H
} }
#endif // HAVE_EXECINFO_H
class BacktraceOutputHandler { class BacktraceOutputHandler {
public: public:
...@@ -129,6 +128,7 @@ class BacktraceOutputHandler { ...@@ -129,6 +128,7 @@ class BacktraceOutputHandler {
virtual ~BacktraceOutputHandler() {} virtual ~BacktraceOutputHandler() {}
}; };
#if HAVE_EXECINFO_H
void OutputPointer(void* pointer, BacktraceOutputHandler* handler) { void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
// This should be more than enough to store a 64-bit number in hex: // This should be more than enough to store a 64-bit number in hex:
// 16 hex digits + 1 for null-terminator. // 16 hex digits + 1 for null-terminator.
...@@ -139,7 +139,6 @@ void OutputPointer(void* pointer, BacktraceOutputHandler* handler) { ...@@ -139,7 +139,6 @@ void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
handler->HandleOutput(buf); handler->HandleOutput(buf);
} }
#if HAVE_EXECINFO_H
void ProcessBacktrace(void* const* trace, size_t size, void ProcessBacktrace(void* const* trace, size_t size,
BacktraceOutputHandler* handler) { BacktraceOutputHandler* handler) {
// NOTE: This code MUST be async-signal safe (it's used by in-process // NOTE: This code MUST be async-signal safe (it's used by in-process
......
...@@ -14,6 +14,11 @@ ...@@ -14,6 +14,11 @@
#define V8_ASM_RODATA_SECTION ".const_data\n" #define V8_ASM_RODATA_SECTION ".const_data\n"
#define V8_ASM_TEXT_SECTION ".text\n" #define V8_ASM_TEXT_SECTION ".text\n"
#define V8_ASM_DECLARE(NAME) ".private_extern " V8_ASM_MANGLE_LABEL NAME "\n" #define V8_ASM_DECLARE(NAME) ".private_extern " V8_ASM_MANGLE_LABEL NAME "\n"
#elif defined(V8_OS_AIX) // AIX
#define V8_ASM_RODATA_SECTION ".csect[RO]\n"
#define V8_ASM_TEXT_SECTION ".csect .text[PR]\n"
#define V8_ASM_MANGLE_LABEL ""
#define V8_ASM_DECLARE(NAME) ".globl " V8_ASM_MANGLE_LABEL NAME "\n"
#elif defined(V8_OS_WIN) // WIN #elif defined(V8_OS_WIN) // WIN
#if defined(V8_TARGET_ARCH_X64) #if defined(V8_TARGET_ARCH_X64)
#define V8_ASM_MANGLE_LABEL "" #define V8_ASM_MANGLE_LABEL ""
...@@ -23,7 +28,7 @@ ...@@ -23,7 +28,7 @@
#define V8_ASM_RODATA_SECTION ".section .rodata\n" #define V8_ASM_RODATA_SECTION ".section .rodata\n"
#define V8_ASM_TEXT_SECTION ".section .text\n" #define V8_ASM_TEXT_SECTION ".section .text\n"
#define V8_ASM_DECLARE(NAME) #define V8_ASM_DECLARE(NAME)
#else // !MACOSX && !WIN #else // !MACOSX && !WIN && !AIX
#define V8_ASM_MANGLE_LABEL "" #define V8_ASM_MANGLE_LABEL ""
#define V8_ASM_RODATA_SECTION ".section .rodata\n" #define V8_ASM_RODATA_SECTION ".section .rodata\n"
#define V8_ASM_TEXT_SECTION ".section .text\n" #define V8_ASM_TEXT_SECTION ".section .text\n"
...@@ -39,6 +44,24 @@ ...@@ -39,6 +44,24 @@
#define V8_ASM_LABEL(NAME) V8_ASM_MANGLE_LABEL NAME ":\n" #define V8_ASM_LABEL(NAME) V8_ASM_MANGLE_LABEL NAME ":\n"
// clang-format off // clang-format off
#if defined(V8_OS_AIX)
#define V8_EMBEDDED_TEXT_HEADER(LABEL) \
__asm__(V8_ASM_DECLARE(#LABEL) \
".csect " #LABEL "[DS]\n" \
#LABEL ":\n" \
".llong ." #LABEL ", TOC[tc0], 0\n" \
V8_ASM_TEXT_SECTION \
"." #LABEL ":\n");
#define V8_EMBEDDED_RODATA_HEADER(LABEL) \
__asm__(V8_ASM_RODATA_SECTION \
V8_ASM_DECLARE(#LABEL) \
".align 5\n" \
V8_ASM_LABEL(#LABEL));
#else
#define V8_EMBEDDED_TEXT_HEADER(LABEL) \ #define V8_EMBEDDED_TEXT_HEADER(LABEL) \
__asm__(V8_ASM_TEXT_SECTION \ __asm__(V8_ASM_TEXT_SECTION \
V8_ASM_DECLARE(#LABEL) \ V8_ASM_DECLARE(#LABEL) \
...@@ -50,6 +73,6 @@ ...@@ -50,6 +73,6 @@
V8_ASM_DECLARE(#LABEL) \ V8_ASM_DECLARE(#LABEL) \
V8_ASM_BALIGN32 \ V8_ASM_BALIGN32 \
V8_ASM_LABEL(#LABEL)); V8_ASM_LABEL(#LABEL));
// clang-format off
#endif // #if defined(V8_OS_AIX)
#endif // V8_SNAPSHOT_MACROS_H_ #endif // V8_SNAPSHOT_MACROS_H_
...@@ -236,7 +236,11 @@ TEST(GenerateTestFunctionData) { ...@@ -236,7 +236,11 @@ TEST(GenerateTestFunctionData) {
#elif V8_TARGET_ARCH_ARM #elif V8_TARGET_ARCH_ARM
#define FUNCTION_BYTES ".byte 0x01, 0x00, 0x80, 0xe0, 0x0e, 0xf0, 0xa0, 0xe1\n" #define FUNCTION_BYTES ".byte 0x01, 0x00, 0x80, 0xe0, 0x0e, 0xf0, 0xa0, 0xe1\n"
#elif V8_TARGET_ARCH_PPC #elif V8_TARGET_ARCH_PPC
#if defined(V8_OS_AIX)
#define FUNCTION_BYTES ".byte 0x7c, 0x64, 0x1a, 0x14, 0x4e, 0x80, 0x00, 0x20\n"
#else
#define FUNCTION_BYTES ".byte 0x14, 0x22, 0x63, 0x7c, 0x20, 0x00, 0x80, 0x4e\n" #define FUNCTION_BYTES ".byte 0x14, 0x22, 0x63, 0x7c, 0x20, 0x00, 0x80, 0x4e\n"
#endif
#elif defined(V8_TARGET_ARCH_MIPS) || defined(V8_TARGET_ARCH_MIPS64) #elif defined(V8_TARGET_ARCH_MIPS) || defined(V8_TARGET_ARCH_MIPS64)
#if defined(V8_TARGET_BIG_ENDIAN) #if defined(V8_TARGET_BIG_ENDIAN)
#define FUNCTION_BYTES \ #define FUNCTION_BYTES \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment