diff options
Diffstat (limited to 'compiler/utils/assembler_thumb_test.cc')
-rw-r--r-- | compiler/utils/assembler_thumb_test.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/compiler/utils/assembler_thumb_test.cc b/compiler/utils/assembler_thumb_test.cc index 68cb6569b1..25928da39c 100644 --- a/compiler/utils/assembler_thumb_test.cc +++ b/compiler/utils/assembler_thumb_test.cc @@ -14,7 +14,10 @@ * limitations under the License. */ +#include <dirent.h> #include <fstream> +#include <sys/types.h> +#include <map> #include "gtest/gtest.h" #include "utils/arm/assembler_thumb2.h" @@ -40,6 +43,8 @@ namespace arm { static constexpr bool kPrintResults = false; #endif +static const char* TOOL_PREFIX = "arm-linux-androideabi-"; + void SetAndroidData() { const char* data = getenv("ANDROID_DATA"); if (data == nullptr) { @@ -109,9 +114,9 @@ std::string GetAndroidToolsDir() { // Suffix on toolsdir will be something like "arm-eabi-4.8" while ((entry = readdir(dir)) != nullptr) { std::string subdir = toolsdir + std::string("/") + std::string(entry->d_name); - size_t eabi = subdir.find("arm-eabi-"); + size_t eabi = subdir.find(TOOL_PREFIX); if (eabi != std::string::npos) { - std::string suffix = subdir.substr(eabi + sizeof("arm-eabi-")); + std::string suffix = subdir.substr(eabi + sizeof(TOOL_PREFIX)); double version = strtod(suffix.c_str(), nullptr); if (version > maxversion) { maxversion = version; @@ -169,19 +174,19 @@ void dump(std::vector<uint8_t>& code, const char* testname) { char cmd[256]; // Assemble the .S - snprintf(cmd, sizeof(cmd), "%sarm-eabi-as %s -o %s.o", toolsdir.c_str(), filename, filename); + snprintf(cmd, sizeof(cmd), "%s%sas %s -o %s.o", toolsdir.c_str(), TOOL_PREFIX, filename, filename); system(cmd); // Remove the $d symbols to prevent the disassembler dumping the instructions // as .word - snprintf(cmd, sizeof(cmd), "%sarm-eabi-objcopy -N '$d' %s.o %s.oo", toolsdir.c_str(), + snprintf(cmd, sizeof(cmd), "%s%sobjcopy -N '$d' %s.o %s.oo", toolsdir.c_str(), TOOL_PREFIX, filename, filename); system(cmd); // Disassemble. - snprintf(cmd, sizeof(cmd), "%sarm-eabi-objdump -d %s.oo | grep '^ *[0-9a-f][0-9a-f]*:'", - toolsdir.c_str(), filename); + snprintf(cmd, sizeof(cmd), "%s%sobjdump -d %s.oo | grep '^ *[0-9a-f][0-9a-f]*:'", + toolsdir.c_str(), TOOL_PREFIX, filename); if (kPrintResults) { // Print the results only, don't check. This is used to generate new output for inserting // into the .inc file. |