Skip to content

Commit 264b5d9

Browse files
author
Zachary Turner
committed
Move Object format code to lib/BinaryFormat.
This creates a new library called BinaryFormat that has all of the headers from llvm/Support containing structure and layout definitions for various types of binary formats like dwarf, coff, elf, etc as well as the code for identifying a file from its magic. Differential Revision: https://reviews.llvm.org/D33843 llvm-svn: 304864
1 parent b4b1655 commit 264b5d9

File tree

282 files changed

+3785
-3640
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

282 files changed

+3785
-3640
lines changed

lld/COFF/Chunks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
#include "InputFiles.h"
1313
#include "Symbols.h"
1414
#include "llvm/ADT/Twine.h"
15+
#include "llvm/BinaryFormat/COFF.h"
1516
#include "llvm/Object/COFF.h"
16-
#include "llvm/Support/COFF.h"
1717
#include "llvm/Support/Debug.h"
1818
#include "llvm/Support/Endian.h"
1919
#include "llvm/Support/raw_ostream.h"

lld/COFF/Driver.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "lld/Driver/Driver.h"
1919
#include "llvm/ADT/Optional.h"
2020
#include "llvm/ADT/StringSwitch.h"
21+
#include "llvm/BinaryFormat/Magic.h"
2122
#include "llvm/Object/ArchiveWriter.h"
2223
#include "llvm/Object/COFFImportFile.h"
2324
#include "llvm/Object/COFFModuleDefinition.h"
@@ -40,8 +41,6 @@ using namespace llvm;
4041
using namespace llvm::object;
4142
using namespace llvm::COFF;
4243
using llvm::sys::Process;
43-
using llvm::sys::fs::file_magic;
44-
using llvm::sys::fs::identify_magic;
4544

4645
namespace lld {
4746
namespace coff {

lld/COFF/InputFiles.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
#include "llvm/ADT/SmallVector.h"
2020
#include "llvm/ADT/Triple.h"
2121
#include "llvm/ADT/Twine.h"
22+
#include "llvm/BinaryFormat/COFF.h"
2223
#include "llvm/Object/Binary.h"
2324
#include "llvm/Object/COFF.h"
24-
#include "llvm/Support/COFF.h"
2525
#include "llvm/Support/Casting.h"
2626
#include "llvm/Support/Endian.h"
2727
#include "llvm/Support/Error.h"

lld/ELF/Config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
#include "llvm/ADT/MapVector.h"
1414
#include "llvm/ADT/StringRef.h"
1515
#include "llvm/ADT/StringSet.h"
16+
#include "llvm/BinaryFormat/ELF.h"
1617
#include "llvm/Support/CachePruning.h"
1718
#include "llvm/Support/CodeGen.h"
18-
#include "llvm/Support/ELF.h"
1919
#include "llvm/Support/Endian.h"
2020

2121
#include <vector>

lld/ELF/EhFrame.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
#include "Relocations.h"
2323
#include "Strings.h"
2424

25+
#include "llvm/BinaryFormat/Dwarf.h"
2526
#include "llvm/Object/ELF.h"
26-
#include "llvm/Support/Dwarf.h"
2727
#include "llvm/Support/Endian.h"
2828

2929
using namespace llvm;

lld/ELF/ICF.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@
7878
#include "SymbolTable.h"
7979
#include "Threads.h"
8080
#include "llvm/ADT/Hashing.h"
81+
#include "llvm/BinaryFormat/ELF.h"
8182
#include "llvm/Object/ELF.h"
82-
#include "llvm/Support/ELF.h"
8383
#include <algorithm>
8484
#include <atomic>
8585

lld/ELF/LTO.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
#include "llvm/ADT/SmallString.h"
1818
#include "llvm/ADT/StringRef.h"
1919
#include "llvm/ADT/Twine.h"
20+
#include "llvm/BinaryFormat/ELF.h"
2021
#include "llvm/IR/DiagnosticPrinter.h"
2122
#include "llvm/LTO/Caching.h"
2223
#include "llvm/LTO/Config.h"
2324
#include "llvm/LTO/LTO.h"
2425
#include "llvm/Object/SymbolicFile.h"
2526
#include "llvm/Support/CodeGen.h"
26-
#include "llvm/Support/ELF.h"
2727
#include "llvm/Support/Error.h"
2828
#include "llvm/Support/FileSystem.h"
2929
#include "llvm/Support/MemoryBuffer.h"

lld/ELF/LinkerScript.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
#include "Writer.h"
2626
#include "llvm/ADT/STLExtras.h"
2727
#include "llvm/ADT/StringRef.h"
28+
#include "llvm/BinaryFormat/ELF.h"
2829
#include "llvm/Support/Casting.h"
2930
#include "llvm/Support/Compression.h"
30-
#include "llvm/Support/ELF.h"
3131
#include "llvm/Support/Endian.h"
3232
#include "llvm/Support/ErrorHandling.h"
3333
#include "llvm/Support/FileSystem.h"

lld/ELF/Mips.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
#include "SymbolTable.h"
1717
#include "Writer.h"
1818

19+
#include "llvm/BinaryFormat/ELF.h"
1920
#include "llvm/Object/ELF.h"
20-
#include "llvm/Support/ELF.h"
2121
#include "llvm/Support/MipsABIFlags.h"
2222

2323
using namespace llvm;

lld/ELF/OutputSections.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include "SyntheticSections.h"
1717
#include "Target.h"
1818
#include "Threads.h"
19-
#include "llvm/Support/Dwarf.h"
19+
#include "llvm/BinaryFormat/Dwarf.h"
2020
#include "llvm/Support/MD5.h"
2121
#include "llvm/Support/MathExtras.h"
2222
#include "llvm/Support/SHA1.h"

lld/ELF/ScriptParser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
#include "llvm/ADT/SmallString.h"
2626
#include "llvm/ADT/StringRef.h"
2727
#include "llvm/ADT/StringSwitch.h"
28+
#include "llvm/BinaryFormat/ELF.h"
2829
#include "llvm/Support/Casting.h"
29-
#include "llvm/Support/ELF.h"
3030
#include "llvm/Support/ErrorHandling.h"
3131
#include "llvm/Support/FileSystem.h"
3232
#include "llvm/Support/Path.h"

lld/ELF/SyntheticSections.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
#include "Threads.h"
2828
#include "Writer.h"
2929
#include "lld/Config/Version.h"
30+
#include "llvm/BinaryFormat/Dwarf.h"
3031
#include "llvm/DebugInfo/DWARF/DWARFDebugPubTable.h"
3132
#include "llvm/Object/ELFObjectFile.h"
32-
#include "llvm/Support/Dwarf.h"
3333
#include "llvm/Support/Endian.h"
3434
#include "llvm/Support/MD5.h"
3535
#include "llvm/Support/RandomNumberGenerator.h"

lld/ELF/Target.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
#include "Thunks.h"
3636
#include "Writer.h"
3737
#include "llvm/ADT/ArrayRef.h"
38+
#include "llvm/BinaryFormat/ELF.h"
3839
#include "llvm/Object/ELF.h"
39-
#include "llvm/Support/ELF.h"
4040
#include "llvm/Support/Endian.h"
4141

4242
using namespace llvm;

lld/ELF/Thunks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
#include "Symbols.h"
3131
#include "SyntheticSections.h"
3232
#include "Target.h"
33+
#include "llvm/BinaryFormat/ELF.h"
3334
#include "llvm/Support/Casting.h"
34-
#include "llvm/Support/ELF.h"
3535
#include "llvm/Support/Endian.h"
3636
#include "llvm/Support/ErrorHandling.h"
3737
#include "llvm/Support/MathExtras.h"

lld/include/lld/Core/Reader.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313
#include "lld/Core/LLVM.h"
1414
#include "lld/Core/Reference.h"
1515
#include "llvm/ADT/StringRef.h"
16+
#include "llvm/BinaryFormat/Magic.h"
1617
#include "llvm/Support/ErrorOr.h"
1718
#include "llvm/Support/FileSystem.h"
1819
#include "llvm/Support/MemoryBuffer.h"
1920
#include <memory>
2021
#include <vector>
2122

22-
using llvm::sys::fs::file_magic;
23-
2423
namespace llvm {
2524
namespace yaml {
2625
class IO;
@@ -45,7 +44,7 @@ class Reader {
4544
/// The method is called with:
4645
/// 1) the file_magic enumeration returned by identify_magic()
4746
/// 2) the whole file content buffer if the above is not enough.
48-
virtual bool canParse(file_magic magic, MemoryBufferRef mb) const = 0;
47+
virtual bool canParse(llvm::file_magic magic, MemoryBufferRef mb) const = 0;
4948

5049
/// \brief Parse a supplied buffer (already filled with the contents of a
5150
/// file) and create a File object.

lld/include/lld/ReaderWriter/MachOLinkingContext.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
#include "llvm/ADT/STLExtras.h"
1717
#include "llvm/ADT/StringMap.h"
1818
#include "llvm/ADT/StringSet.h"
19+
#include "llvm/BinaryFormat/MachO.h"
1920
#include "llvm/Support/ErrorHandling.h"
20-
#include "llvm/Support/MachO.h"
2121
#include <set>
2222

2323
using llvm::MachO::HeaderFileType;

lld/lib/Core/Reader.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,16 @@
1111
#include "lld/Core/File.h"
1212
#include "lld/Core/Reference.h"
1313
#include "llvm/ADT/StringRef.h"
14+
#include "llvm/BinaryFormat/Magic.h"
1415
#include "llvm/Support/Errc.h"
1516
#include "llvm/Support/FileSystem.h"
1617
#include "llvm/Support/MemoryBuffer.h"
1718
#include <algorithm>
1819
#include <memory>
1920

21+
using llvm::file_magic;
22+
using llvm::identify_magic;
23+
2024
namespace lld {
2125

2226
YamlIOTaggedDocumentHandler::~YamlIOTaggedDocumentHandler() = default;
@@ -33,7 +37,7 @@ ErrorOr<std::unique_ptr<File>>
3337
Registry::loadFile(std::unique_ptr<MemoryBuffer> mb) const {
3438
// Get file magic.
3539
StringRef content(mb->getBufferStart(), mb->getBufferSize());
36-
llvm::sys::fs::file_magic fileType = llvm::sys::fs::identify_magic(content);
40+
file_magic fileType = identify_magic(content);
3741

3842
// Ask each registered reader if it can handle this file type or extension.
3943
for (const std::unique_ptr<Reader> &reader : _readers) {

lld/lib/Driver/DarwinLdDriver.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,30 @@
1818
#include "lld/Core/File.h"
1919
#include "lld/Core/Instrumentation.h"
2020
#include "lld/Core/LLVM.h"
21+
#include "lld/Core/LinkingContext.h"
2122
#include "lld/Core/Node.h"
2223
#include "lld/Core/PassManager.h"
2324
#include "lld/Core/Resolver.h"
2425
#include "lld/Core/SharedLibraryFile.h"
2526
#include "lld/Core/Simple.h"
26-
#include "lld/Core/LinkingContext.h"
2727
#include "lld/ReaderWriter/MachOLinkingContext.h"
2828
#include "llvm/ADT/ArrayRef.h"
2929
#include "llvm/ADT/Optional.h"
30-
#include "llvm/ADT/SmallString.h"
3130
#include "llvm/ADT/STLExtras.h"
31+
#include "llvm/ADT/SmallString.h"
3232
#include "llvm/ADT/StringExtras.h"
3333
#include "llvm/ADT/StringRef.h"
3434
#include "llvm/ADT/Twine.h"
35+
#include "llvm/BinaryFormat/MachO.h"
3536
#include "llvm/Option/Arg.h"
3637
#include "llvm/Option/ArgList.h"
37-
#include "llvm/Option/Option.h"
3838
#include "llvm/Option/OptTable.h"
39+
#include "llvm/Option/Option.h"
3940
#include "llvm/Support/Casting.h"
4041
#include "llvm/Support/CommandLine.h"
4142
#include "llvm/Support/Error.h"
4243
#include "llvm/Support/ErrorOr.h"
4344
#include "llvm/Support/Format.h"
44-
#include "llvm/Support/MachO.h"
4545
#include "llvm/Support/MathExtras.h"
4646
#include "llvm/Support/MemoryBuffer.h"
4747
#include "llvm/Support/Path.h"

lld/lib/ReaderWriter/FileArchive.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@
1111
#include "lld/Core/File.h"
1212
#include "lld/Core/LLVM.h"
1313
#include "lld/Core/Reader.h"
14+
#include "llvm/ADT/STLExtras.h"
1415
#include "llvm/ADT/StringRef.h"
16+
#include "llvm/BinaryFormat/Magic.h"
1517
#include "llvm/Object/Archive.h"
16-
#include "llvm/Support/Debug.h"
17-
#include "llvm/Support/Format.h"
18-
#include "llvm/Support/MemoryBuffer.h"
19-
#include "llvm/ADT/STLExtras.h"
2018
#include "llvm/Object/Error.h"
19+
#include "llvm/Support/Debug.h"
2120
#include "llvm/Support/ErrorOr.h"
2221
#include "llvm/Support/FileSystem.h"
22+
#include "llvm/Support/Format.h"
23+
#include "llvm/Support/MemoryBuffer.h"
2324
#include "llvm/Support/raw_ostream.h"
2425
#include <memory>
2526
#include <set>
@@ -30,6 +31,8 @@
3031
#include <vector>
3132

3233
using llvm::object::Archive;
34+
using llvm::file_magic;
35+
using llvm::identify_magic;
3336

3437
namespace lld {
3538

@@ -201,7 +204,7 @@ class ArchiveReader : public Reader {
201204
ArchiveReader(bool logLoading) : _logLoading(logLoading) {}
202205

203206
bool canParse(file_magic magic, MemoryBufferRef) const override {
204-
return magic == llvm::sys::fs::file_magic::archive;
207+
return magic == file_magic::archive;
205208
}
206209

207210
ErrorOr<std::unique_ptr<File>> loadFile(std::unique_ptr<MemoryBuffer> mb,

lld/lib/ReaderWriter/MachO/ExecutableAtoms.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "Atoms.h"
1414
#include "File.h"
1515

16-
#include "llvm/Support/MachO.h"
16+
#include "llvm/BinaryFormat/MachO.h"
1717

1818
#include "lld/Core/DefinedAtom.h"
1919
#include "lld/Core/File.h"

lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#include "llvm/ADT/STLExtras.h"
2323
#include "llvm/ADT/StringExtras.h"
2424
#include "llvm/ADT/Triple.h"
25+
#include "llvm/BinaryFormat/MachO.h"
2526
#include "llvm/Demangle/Demangle.h"
2627
#include "llvm/Support/Debug.h"
2728
#include "llvm/Support/Errc.h"
2829
#include "llvm/Support/Host.h"
29-
#include "llvm/Support/MachO.h"
3030
#include "llvm/Support/Path.h"
3131
#include <algorithm>
3232

lld/lib/ReaderWriter/MachO/MachONormalizedFile.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@
4848
#include "lld/ReaderWriter/MachOLinkingContext.h"
4949
#include "llvm/ADT/SmallString.h"
5050
#include "llvm/ADT/StringRef.h"
51+
#include "llvm/BinaryFormat/MachO.h"
5152
#include "llvm/Support/Allocator.h"
5253
#include "llvm/Support/Debug.h"
5354
#include "llvm/Support/ErrorOr.h"
54-
#include "llvm/Support/MachO.h"
5555
#include "llvm/Support/YAMLTraits.h"
5656

5757
using llvm::BumpPtrAllocator;

lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,33 @@
2121
/// | normalized |
2222
/// +------------+
2323

24-
#include "MachONormalizedFile.h"
2524
#include "ArchHandler.h"
25+
#include "MachONormalizedFile.h"
2626
#include "MachONormalizedFileBinaryUtils.h"
2727
#include "lld/Core/Error.h"
2828
#include "lld/Core/LLVM.h"
2929
#include "lld/Core/SharedLibraryFile.h"
30+
#include "llvm/ADT/STLExtras.h"
3031
#include "llvm/ADT/SmallString.h"
3132
#include "llvm/ADT/StringRef.h"
3233
#include "llvm/ADT/StringSwitch.h"
33-
#include "llvm/ADT/STLExtras.h"
3434
#include "llvm/ADT/Twine.h"
35+
#include "llvm/BinaryFormat/MachO.h"
36+
#include "llvm/BinaryFormat/Magic.h"
3537
#include "llvm/Object/MachO.h"
3638
#include "llvm/Support/Casting.h"
3739
#include "llvm/Support/Errc.h"
3840
#include "llvm/Support/ErrorHandling.h"
3941
#include "llvm/Support/FileOutputBuffer.h"
4042
#include "llvm/Support/Host.h"
41-
#include "llvm/Support/MachO.h"
4243
#include "llvm/Support/MemoryBuffer.h"
4344
#include "llvm/Support/raw_ostream.h"
4445
#include <functional>
4546
#include <system_error>
4647

4748
using namespace llvm::MachO;
4849
using llvm::object::ExportEntry;
50+
using llvm::file_magic;
4951
using llvm::object::MachOObjectFile;
5052

5153
namespace lld {
@@ -531,8 +533,7 @@ class MachOObjectReader : public Reader {
531533
MachOObjectReader(MachOLinkingContext &ctx) : _ctx(ctx) {}
532534

533535
bool canParse(file_magic magic, MemoryBufferRef mb) const override {
534-
return (magic == llvm::sys::fs::file_magic::macho_object &&
535-
mb.getBufferSize() > 32);
536+
return (magic == file_magic::macho_object && mb.getBufferSize() > 32);
536537
}
537538

538539
ErrorOr<std::unique_ptr<File>>
@@ -553,8 +554,8 @@ class MachODylibReader : public Reader {
553554

554555
bool canParse(file_magic magic, MemoryBufferRef mb) const override {
555556
switch (magic) {
556-
case llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib:
557-
case llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub:
557+
case file_magic::macho_dynamically_linked_shared_lib:
558+
case file_magic::macho_dynamically_linked_shared_lib_stub:
558559
return mb.getBufferSize() > 32;
559560
default:
560561
return false;

lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
#include "lld/Core/Error.h"
1515
#include "lld/Core/LLVM.h"
1616
#include "llvm/ADT/StringRef.h"
17+
#include "llvm/BinaryFormat/MachO.h"
1718
#include "llvm/Support/Casting.h"
1819
#include "llvm/Support/Endian.h"
1920
#include "llvm/Support/ErrorHandling.h"
2021
#include "llvm/Support/Host.h"
2122
#include "llvm/Support/LEB128.h"
22-
#include "llvm/Support/MachO.h"
2323
#include <system_error>
2424

2525
namespace lld {

0 commit comments

Comments
 (0)