From d4d813fa1fffb1ece1630a1fbc8bc9339dd4b3ae Mon Sep 17 00:00:00 2001 From: Andrew Hsieh Date: Wed, 19 Jun 2013 15:09:04 -0700 Subject: [PATCH 1/2] Compile against llvm-3.3 Change-Id: I3e34b391e5effb173dc1a08c75fae5e9ba530bec --- lib/Fragment/FragmentLinker.cpp | 2 +- lib/LD/ELFReader.cpp | 36 +++++++++++++++---------------- lib/LD/GNUArchiveReader.cpp | 4 ++-- lib/LD/RelocationFactory.cpp | 2 +- lib/Target/GNULDBackend.cpp | 8 +++---- tools/llvm-mcld/llvm-mcld.cpp | 3 ++- tools/mcld/lib/Support/Initialization.cpp | 3 ++- 7 files changed, 30 insertions(+), 28 deletions(-) diff --git a/lib/Fragment/FragmentLinker.cpp b/lib/Fragment/FragmentLinker.cpp index 2a183b2..5a4b53f 100644 --- a/lib/Fragment/FragmentLinker.cpp +++ b/lib/Fragment/FragmentLinker.cpp @@ -231,7 +231,7 @@ void FragmentLinker::writeRelocationResult(Relocation& pReloc, uint8_t* pOutput) uint8_t* target_addr = pOutput + out_offset; // byte swapping if target and host has different endian, and then write back - if(llvm::sys::isLittleEndianHost() != m_Config.targets().isLittleEndian()) { + if(llvm::sys::IsLittleEndianHost != m_Config.targets().isLittleEndian()) { uint64_t tmp_data = 0; switch(pReloc.size(*m_Backend.getRelocator())) { diff --git a/lib/LD/ELFReader.cpp b/lib/LD/ELFReader.cpp index 3807834..15d4862 100644 --- a/lib/LD/ELFReader.cpp +++ b/lib/LD/ELFReader.cpp @@ -91,7 +91,7 @@ bool ELFReader<32, true>::readSymbols(Input& pInput, st_info = symtab[idx].st_info; st_other = symtab[idx].st_other; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { st_name = symtab[idx].st_name; st_value = symtab[idx].st_value; st_size = symtab[idx].st_size; @@ -279,7 +279,7 @@ bool ELFReader<32, true>::isMyMachine(void* pELFHeader) const llvm::ELF::Elf32_Ehdr* hdr = reinterpret_cast(pELFHeader); - if (llvm::sys::isLittleEndianHost()) + if (llvm::sys::IsLittleEndianHost) return (hdr->e_machine == target().getInfo().machine()); return (mcld::bswap16(hdr->e_machine) == target().getInfo().machine()); } @@ -290,7 +290,7 @@ Input::Type ELFReader<32, true>::fileType(void* pELFHeader) const llvm::ELF::Elf32_Ehdr* hdr = reinterpret_cast(pELFHeader); uint32_t type = 0x0; - if (llvm::sys::isLittleEndianHost()) + if (llvm::sys::IsLittleEndianHost) type = hdr->e_type; else type = mcld::bswap16(hdr->e_type); @@ -322,7 +322,7 @@ ELFReader<32, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const uint32_t shnum = 0x0; uint32_t shstrtab = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { shoff = ehdr->e_shoff; shentsize = ehdr->e_shentsize; shnum = ehdr->e_shnum; @@ -356,7 +356,7 @@ ELFReader<32, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const shentsize); shdr = reinterpret_cast(shdr_region->start()); - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { sh_size = shdr->sh_size; sh_link = shdr->sh_link; } @@ -381,7 +381,7 @@ ELFReader<32, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const // get .shstrtab first shdr = &shdrTab[shstrtab]; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { sh_offset = shdr->sh_offset; sh_size = shdr->sh_size; } @@ -399,7 +399,7 @@ ELFReader<32, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const // create all LDSections, including first NULL section. for (size_t idx = 0; idx < shnum; ++idx) { - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { sh_name = shdrTab[idx].sh_name; sh_type = shdrTab[idx].sh_type; sh_flags = shdrTab[idx].sh_flags; @@ -479,7 +479,7 @@ ResolveInfo* ELFReader<32, true>::readSignature(Input& pInput, uint16_t st_shndx = 0x0; st_info = entry->st_info; st_other = entry->st_other; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { st_name = entry->st_name; st_shndx = entry->st_shndx; } @@ -541,7 +541,7 @@ bool ELFReader<32, true>::readDynamic(Input& pInput) const llvm::ELF::Elf32_Sword d_tag = 0x0; llvm::ELF::Elf32_Word d_val = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { d_tag = dynamic[idx].d_tag; d_val = dynamic[idx].d_un.d_val; } else { @@ -636,7 +636,7 @@ bool ELFReader<64, true>::readSymbols(Input& pInput, st_info = symtab[idx].st_info; st_other = symtab[idx].st_other; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { st_name = symtab[idx].st_name; st_value = symtab[idx].st_value; st_size = symtab[idx].st_size; @@ -820,7 +820,7 @@ bool ELFReader<64, true>::isMyMachine(void* pELFHeader) const llvm::ELF::Elf64_Ehdr* hdr = reinterpret_cast(pELFHeader); - if (llvm::sys::isLittleEndianHost()) + if (llvm::sys::IsLittleEndianHost) return (hdr->e_machine == target().getInfo().machine()); return (mcld::bswap16(hdr->e_machine) == target().getInfo().machine()); } @@ -831,7 +831,7 @@ Input::Type ELFReader<64, true>::fileType(void* pELFHeader) const llvm::ELF::Elf64_Ehdr* hdr = reinterpret_cast(pELFHeader); uint32_t type = 0x0; - if (llvm::sys::isLittleEndianHost()) + if (llvm::sys::IsLittleEndianHost) type = hdr->e_type; else type = mcld::bswap16(hdr->e_type); @@ -863,7 +863,7 @@ ELFReader<64, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const uint32_t shnum = 0x0; uint32_t shstrtab = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { shoff = ehdr->e_shoff; shentsize = ehdr->e_shentsize; shnum = ehdr->e_shnum; @@ -897,7 +897,7 @@ ELFReader<64, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const shentsize); shdr = reinterpret_cast(shdr_region->start()); - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { sh_size = shdr->sh_size; sh_link = shdr->sh_link; } @@ -922,7 +922,7 @@ ELFReader<64, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const // get .shstrtab first shdr = &shdrTab[shstrtab]; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { sh_offset = shdr->sh_offset; sh_size = shdr->sh_size; } @@ -940,7 +940,7 @@ ELFReader<64, true>::readSectionHeaders(Input& pInput, void* pELFHeader) const // create all LDSections, including first NULL section. for (size_t idx = 0; idx < shnum; ++idx) { - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { sh_name = shdrTab[idx].sh_name; sh_type = shdrTab[idx].sh_type; sh_flags = shdrTab[idx].sh_flags; @@ -1020,7 +1020,7 @@ ResolveInfo* ELFReader<64, true>::readSignature(Input& pInput, uint16_t st_shndx = 0x0; st_info = entry->st_info; st_other = entry->st_other; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { st_name = entry->st_name; st_shndx = entry->st_shndx; } @@ -1082,7 +1082,7 @@ bool ELFReader<64, true>::readDynamic(Input& pInput) const llvm::ELF::Elf64_Sxword d_tag = 0x0; llvm::ELF::Elf64_Xword d_val = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { d_tag = dynamic[idx].d_tag; d_val = dynamic[idx].d_un.d_val; } else { diff --git a/lib/LD/GNUArchiveReader.cpp b/lib/LD/GNUArchiveReader.cpp index 6324824..e391b20 100644 --- a/lib/LD/GNUArchiveReader.cpp +++ b/lib/LD/GNUArchiveReader.cpp @@ -265,7 +265,7 @@ bool GNUArchiveReader::readSymbolTable(Archive& pArchive) // read the number of symbols uint32_t number = 0; - if (llvm::sys::isLittleEndianHost()) + if (llvm::sys::IsLittleEndianHost) number = mcld::bswap32(*data); else number = *data; @@ -276,7 +276,7 @@ bool GNUArchiveReader::readSymbolTable(Archive& pArchive) // add the archive symbols for (uint32_t i = 0; i < number; ++i) { - if (llvm::sys::isLittleEndianHost()) + if (llvm::sys::IsLittleEndianHost) pArchive.addSymbol(name, mcld::bswap32(*data)); else pArchive.addSymbol(name, *data); diff --git a/lib/LD/RelocationFactory.cpp b/lib/LD/RelocationFactory.cpp index 8a065a8..bb56cdd 100644 --- a/lib/LD/RelocationFactory.cpp +++ b/lib/LD/RelocationFactory.cpp @@ -45,7 +45,7 @@ Relocation* RelocationFactory::produce(RelocationFactory::Type pType, DWord target_data = 0; // byte swapping if the host and target have different endian - if(llvm::sys::isLittleEndianHost() != m_pConfig->targets().isLittleEndian()) { + if(llvm::sys::IsLittleEndianHost != m_pConfig->targets().isLittleEndian()) { uint32_t tmp_data; switch (m_pConfig->targets().bitclass()) { diff --git a/lib/Target/GNULDBackend.cpp b/lib/Target/GNULDBackend.cpp index aa2d386..274fd7b 100644 --- a/lib/Target/GNULDBackend.cpp +++ b/lib/Target/GNULDBackend.cpp @@ -1679,7 +1679,7 @@ bool GNULDBackend::readRelocation(const llvm::ELF::Elf32_Rel& pRel, uint32_t& pOffset) const { uint32_t r_info = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { pOffset = pRel.r_offset; r_info = pRel.r_info; } @@ -1701,7 +1701,7 @@ bool GNULDBackend::readRelocation(const llvm::ELF::Elf32_Rela& pRel, int32_t& pAddend) const { uint32_t r_info = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { pOffset = pRel.r_offset; r_info = pRel.r_info; pAddend = pRel.r_addend; @@ -1724,7 +1724,7 @@ bool GNULDBackend::readRelocation(const llvm::ELF::Elf64_Rel& pRel, uint64_t& pOffset) const { uint64_t r_info = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { pOffset = pRel.r_offset; r_info = pRel.r_info; } @@ -1746,7 +1746,7 @@ bool GNULDBackend::readRelocation(const llvm::ELF::Elf64_Rela& pRel, int64_t& pAddend) const { uint64_t r_info = 0x0; - if (llvm::sys::isLittleEndianHost()) { + if (llvm::sys::IsLittleEndianHost) { pOffset = pRel.r_offset; r_info = pRel.r_info; pAddend = pRel.r_addend; diff --git a/tools/llvm-mcld/llvm-mcld.cpp b/tools/llvm-mcld/llvm-mcld.cpp index 2f356b3..6f66c4a 100644 --- a/tools/llvm-mcld/llvm-mcld.cpp +++ b/tools/llvm-mcld/llvm-mcld.cpp @@ -36,13 +36,14 @@ #include #include #include -#include +#include #include #include #include #include #include #include +#include #if defined(HAVE_UNISTD_H) # include diff --git a/tools/mcld/lib/Support/Initialization.cpp b/tools/mcld/lib/Support/Initialization.cpp index 71bd57d..90cb574 100644 --- a/tools/mcld/lib/Support/Initialization.cpp +++ b/tools/mcld/lib/Support/Initialization.cpp @@ -22,7 +22,8 @@ namespace { -void llvm_error_handler(void *pUserData, const std::string &pMessage) { +void llvm_error_handler(void *pUserData, const std::string &pMessage, + bool gen_crash_diag = true) { ALOGE("%s", pMessage.c_str()); ::exit(1); } -- 1.8.3