| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 1 | // | 
 | 2 | // Copyright (C) 2017 The Android Open Source Project | 
 | 3 | // | 
 | 4 | // Licensed under the Apache License, Version 2.0 (the "License"); | 
 | 5 | // you may not use this file except in compliance with the License. | 
 | 6 | // You may obtain a copy of the License at | 
 | 7 | // | 
 | 8 | //      http://www.apache.org/licenses/LICENSE-2.0 | 
 | 9 | // | 
 | 10 | // Unless required by applicable law or agreed to in writing, software | 
 | 11 | // distributed under the License is distributed on an "AS IS" BASIS, | 
 | 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | 13 | // See the License for the specific language governing permissions and | 
 | 14 | // limitations under the License. | 
 | 15 | // | 
 | 16 |  | 
 | 17 | cc_defaults { | 
 | 18 |     name: "libunwindstack_flags", | 
 | 19 |  | 
 | 20 |     host_supported: true, | 
 | 21 |  | 
 | 22 |     cflags: [ | 
 | 23 |         "-Wall", | 
 | 24 |         "-Werror", | 
 | 25 |         "-Wextra", | 
 | 26 |     ], | 
| Christopher Ferris | 01d5037 | 2017-01-30 13:45:16 -0800 | [diff] [blame] | 27 |  | 
 | 28 |     target: { | 
 | 29 |         darwin: { | 
 | 30 |             enabled: false, | 
 | 31 |         }, | 
| Dan Willemsen | 0f04867 | 2017-09-19 17:53:12 -0700 | [diff] [blame] | 32 |         linux_bionic: { | 
 | 33 |             enabled: true, | 
 | 34 |         }, | 
| Christopher Ferris | 01d5037 | 2017-01-30 13:45:16 -0800 | [diff] [blame] | 35 |     }, | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 36 | } | 
 | 37 |  | 
| Christopher Ferris | f6d5431 | 2017-07-11 15:29:32 -0700 | [diff] [blame] | 38 | cc_library { | 
 | 39 |     name: "libunwindstack", | 
| Christopher Ferris | 6f3981c | 2017-07-27 09:29:18 -0700 | [diff] [blame] | 40 |     vendor_available: true, | 
| Justin Yun | 73bd4f0 | 2017-08-04 17:33:54 +0900 | [diff] [blame] | 41 |     vndk: { | 
 | 42 |         enabled: true, | 
 | 43 |         support_system_process: true, | 
 | 44 |     }, | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 45 |     defaults: ["libunwindstack_flags"], | 
| Christopher Ferris | d226a51 | 2017-07-14 10:37:19 -0700 | [diff] [blame] | 46 |     export_include_dirs: ["include"], | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 47 |  | 
 | 48 |     srcs: [ | 
 | 49 |         "ArmExidx.cpp", | 
| Christopher Ferris | 8642fcb | 2017-04-24 11:14:39 -0700 | [diff] [blame] | 50 |         "DwarfCfa.cpp", | 
| Christopher Ferris | 61d4097 | 2017-06-12 19:14:20 -0700 | [diff] [blame] | 51 |         "DwarfDebugFrame.cpp", | 
 | 52 |         "DwarfEhFrame.cpp", | 
| Christopher Ferris | 72a6fa6 | 2017-03-21 12:41:17 -0700 | [diff] [blame] | 53 |         "DwarfMemory.cpp", | 
| Christopher Ferris | 55d22ef | 2017-04-04 10:41:31 -0700 | [diff] [blame] | 54 |         "DwarfOp.cpp", | 
| Christopher Ferris | 53a3c9b | 2017-05-10 18:34:15 -0700 | [diff] [blame] | 55 |         "DwarfSection.cpp", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 56 |         "Elf.cpp", | 
 | 57 |         "ElfInterface.cpp", | 
 | 58 |         "ElfInterfaceArm.cpp", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 59 |         "Log.cpp", | 
| Christopher Ferris | 0d7cf3e | 2017-04-19 15:42:19 -0700 | [diff] [blame] | 60 |         "MapInfo.cpp", | 
| Christopher Ferris | 09385e7 | 2017-04-05 13:25:04 -0700 | [diff] [blame] | 61 |         "Maps.cpp", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 62 |         "Memory.cpp", | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 63 |         "Regs.cpp", | 
| Christopher Ferris | b9de87f | 2017-09-20 13:37:24 -0700 | [diff] [blame] | 64 |         "Unwinder.cpp", | 
| Christopher Ferris | e7ba4cc | 2017-04-04 14:06:58 -0700 | [diff] [blame] | 65 |         "Symbols.cpp", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 66 |     ], | 
 | 67 |  | 
| Josh Gao | e22701e | 2017-10-23 14:25:08 -0700 | [diff] [blame] | 68 |     cflags: [ | 
 | 69 |         "-Wexit-time-destructors", | 
 | 70 |     ], | 
 | 71 |  | 
| Christopher Ferris | 5f11851 | 2017-09-01 11:17:16 -0700 | [diff] [blame] | 72 |     target: { | 
 | 73 |         // Always disable optimizations for host to make it easier to debug. | 
| Dan Willemsen | cd58088 | 2017-10-02 10:29:02 -0700 | [diff] [blame] | 74 |         host: { | 
| Christopher Ferris | 5f11851 | 2017-09-01 11:17:16 -0700 | [diff] [blame] | 75 |             cflags: ["-O0", "-g"], | 
 | 76 |         }, | 
 | 77 |     }, | 
 | 78 |  | 
| Christopher Ferris | 2a25c4a | 2017-07-07 16:35:48 -0700 | [diff] [blame] | 79 |     arch: { | 
 | 80 |         x86: { | 
 | 81 |             srcs: ["AsmGetRegsX86.S"], | 
 | 82 |         }, | 
 | 83 |         x86_64: { | 
 | 84 |             srcs: ["AsmGetRegsX86_64.S"], | 
 | 85 |         }, | 
 | 86 |     }, | 
 | 87 |  | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 88 |     shared_libs: [ | 
 | 89 |         "libbase", | 
 | 90 |         "liblog", | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 91 |         "liblzma", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 92 |     ], | 
 | 93 | } | 
 | 94 |  | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 95 | //------------------------------------------------------------------------- | 
 | 96 | // Unit Tests | 
 | 97 | //------------------------------------------------------------------------- | 
| Christopher Ferris | f6d5431 | 2017-07-11 15:29:32 -0700 | [diff] [blame] | 98 | cc_test { | 
 | 99 |     name: "libunwindstack_test", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 100 |     defaults: ["libunwindstack_flags"], | 
 | 101 |  | 
 | 102 |     srcs: [ | 
 | 103 |         "tests/ArmExidxDecodeTest.cpp", | 
 | 104 |         "tests/ArmExidxExtractTest.cpp", | 
| Christopher Ferris | 8642fcb | 2017-04-24 11:14:39 -0700 | [diff] [blame] | 105 |         "tests/DwarfCfaLogTest.cpp", | 
 | 106 |         "tests/DwarfCfaTest.cpp", | 
| Christopher Ferris | 61d4097 | 2017-06-12 19:14:20 -0700 | [diff] [blame] | 107 |         "tests/DwarfDebugFrameTest.cpp", | 
 | 108 |         "tests/DwarfEhFrameTest.cpp", | 
| Christopher Ferris | 72a6fa6 | 2017-03-21 12:41:17 -0700 | [diff] [blame] | 109 |         "tests/DwarfMemoryTest.cpp", | 
| Christopher Ferris | 55d22ef | 2017-04-04 10:41:31 -0700 | [diff] [blame] | 110 |         "tests/DwarfOpLogTest.cpp", | 
 | 111 |         "tests/DwarfOpTest.cpp", | 
| Christopher Ferris | 53a3c9b | 2017-05-10 18:34:15 -0700 | [diff] [blame] | 112 |         "tests/DwarfSectionTest.cpp", | 
 | 113 |         "tests/DwarfSectionImplTest.cpp", | 
| Christopher Ferris | f6f691b | 2017-09-25 19:23:07 -0700 | [diff] [blame] | 114 |         "tests/ElfFake.cpp", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 115 |         "tests/ElfInterfaceArmTest.cpp", | 
 | 116 |         "tests/ElfInterfaceTest.cpp", | 
 | 117 |         "tests/ElfTest.cpp", | 
| Christopher Ferris | 570b76f | 2017-06-30 17:18:16 -0700 | [diff] [blame] | 118 |         "tests/ElfTestUtils.cpp", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 119 |         "tests/LogFake.cpp", | 
| Christopher Ferris | 570b76f | 2017-06-30 17:18:16 -0700 | [diff] [blame] | 120 |         "tests/MapInfoGetElfTest.cpp", | 
| Christopher Ferris | 09385e7 | 2017-04-05 13:25:04 -0700 | [diff] [blame] | 121 |         "tests/MapsTest.cpp", | 
| Christopher Ferris | f6d5431 | 2017-07-11 15:29:32 -0700 | [diff] [blame] | 122 |         "tests/MemoryBufferTest.cpp", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 123 |         "tests/MemoryFake.cpp", | 
 | 124 |         "tests/MemoryFileTest.cpp", | 
 | 125 |         "tests/MemoryLocalTest.cpp", | 
 | 126 |         "tests/MemoryRangeTest.cpp", | 
 | 127 |         "tests/MemoryRemoteTest.cpp", | 
| Christopher Ferris | 9744fb2 | 2017-07-07 12:18:16 -0700 | [diff] [blame] | 128 |         "tests/MemoryTest.cpp", | 
| Josh Gao | 6f580d8 | 2017-09-22 12:57:15 -0700 | [diff] [blame] | 129 |         "tests/RegsIterateTest.cpp", | 
| Christopher Ferris | eb4a6db | 2017-07-19 12:37:45 -0700 | [diff] [blame] | 130 |         "tests/RegsStepIfSignalHandlerTest.cpp", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 131 |         "tests/RegsTest.cpp", | 
| Christopher Ferris | e7ba4cc | 2017-04-04 14:06:58 -0700 | [diff] [blame] | 132 |         "tests/SymbolsTest.cpp", | 
| Christopher Ferris | 2a25c4a | 2017-07-07 16:35:48 -0700 | [diff] [blame] | 133 |         "tests/UnwindTest.cpp", | 
| Christopher Ferris | f6f691b | 2017-09-25 19:23:07 -0700 | [diff] [blame] | 134 |         "tests/UnwinderTest.cpp", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 135 |     ], | 
 | 136 |  | 
 | 137 |     cflags: [ | 
 | 138 |         "-O0", | 
 | 139 |         "-g", | 
 | 140 |     ], | 
 | 141 |  | 
 | 142 |     shared_libs: [ | 
 | 143 |         "libbase", | 
 | 144 |         "liblog", | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 145 |         "liblzma", | 
| Christopher Ferris | f6d5431 | 2017-07-11 15:29:32 -0700 | [diff] [blame] | 146 |         "libunwindstack", | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 147 |     ], | 
 | 148 |  | 
| Christopher Ferris | 53a3c9b | 2017-05-10 18:34:15 -0700 | [diff] [blame] | 149 |     static_libs: [ | 
 | 150 |         "libgmock", | 
 | 151 |     ], | 
 | 152 |  | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 153 |     data: [ | 
| Christopher Ferris | 570b76f | 2017-06-30 17:18:16 -0700 | [diff] [blame] | 154 |         "tests/files/elf32.xz", | 
 | 155 |         "tests/files/elf64.xz", | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 156 |     ], | 
| Christopher Ferris | 723cf9b | 2017-01-19 20:08:48 -0800 | [diff] [blame] | 157 | } | 
 | 158 |  | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 159 | //------------------------------------------------------------------------- | 
| Christopher Ferris | b5d7a87 | 2017-07-12 15:40:52 -0700 | [diff] [blame] | 160 | // Tools | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 161 | //------------------------------------------------------------------------- | 
 | 162 | cc_defaults { | 
| Christopher Ferris | b5d7a87 | 2017-07-12 15:40:52 -0700 | [diff] [blame] | 163 |     name: "libunwindstack_tools", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 164 |     defaults: ["libunwindstack_flags"], | 
 | 165 |  | 
 | 166 |     shared_libs: [ | 
 | 167 |         "libunwindstack", | 
 | 168 |         "libbase", | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 169 |         "liblzma", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 170 |     ], | 
| Christopher Ferris | b5d7a87 | 2017-07-12 15:40:52 -0700 | [diff] [blame] | 171 | } | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 172 |  | 
| Christopher Ferris | b5d7a87 | 2017-07-12 15:40:52 -0700 | [diff] [blame] | 173 | cc_binary { | 
 | 174 |     name: "unwind", | 
 | 175 |     defaults: ["libunwindstack_tools"], | 
 | 176 |  | 
 | 177 |     srcs: [ | 
 | 178 |         "tools/unwind.cpp", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 179 |     ], | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 180 | } | 
 | 181 |  | 
 | 182 | cc_binary { | 
 | 183 |     name: "unwind_info", | 
| Christopher Ferris | b5d7a87 | 2017-07-12 15:40:52 -0700 | [diff] [blame] | 184 |     defaults: ["libunwindstack_tools"], | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 185 |  | 
 | 186 |     srcs: [ | 
| Christopher Ferris | b5d7a87 | 2017-07-12 15:40:52 -0700 | [diff] [blame] | 187 |         "tools/unwind_info.cpp", | 
 | 188 |     ], | 
 | 189 | } | 
 | 190 |  | 
 | 191 | cc_binary { | 
 | 192 |     name: "unwind_symbols", | 
 | 193 |     defaults: ["libunwindstack_tools"], | 
 | 194 |  | 
 | 195 |     srcs: [ | 
 | 196 |         "tools/unwind_symbols.cpp", | 
| Christopher Ferris | 3958f80 | 2017-02-01 15:44:40 -0800 | [diff] [blame] | 197 |     ], | 
 | 198 | } | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 199 |  | 
 | 200 | // Generates the elf data for use in the tests for .gnu_debugdata frames. | 
 | 201 | // Once these files are generated, use the xz command to compress the data. | 
 | 202 | cc_binary_host { | 
 | 203 |     name: "gen_gnudebugdata", | 
| Christopher Ferris | f6d5431 | 2017-07-11 15:29:32 -0700 | [diff] [blame] | 204 |     defaults: ["libunwindstack_flags"], | 
| Christopher Ferris | bae69f1 | 2017-06-28 14:51:54 -0700 | [diff] [blame] | 205 |  | 
 | 206 |     srcs: [ | 
 | 207 |         "tests/GenGnuDebugdata.cpp", | 
 | 208 |     ], | 
 | 209 | } |