Commit Graph

25 Commits

Author SHA1 Message Date
Chandler Carruth 2946cd7010 Update the file headers across all of the LLVM projects in the monorepo
to reflect the new license.

We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351636
2019-01-19 08:50:56 +00:00
Tom Stellard a6749135df MachO: Change getString16() back to inline function
This was accidentally changed in r341670.

llvm-svn: 341672
2018-09-07 15:51:52 +00:00
Tom Stellard 493f3bad3c MachO: Fix out-of-bounds memory access in getString16
Summary:
This fixes the following tests when gcc is compiled with gcc8:

lld :: mach-o/do-not-emit-unwind-fde-arm64.yaml
lld :: mach-o/eh-frame-relocs-arm64.yaml

llvm.org/PR38096

Reviewers: lhames, kledzik, javed.absar

Subscribers: kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D51547

llvm-svn: 341670
2018-09-07 15:42:01 +00:00
Rui Ueyama 3f851704c1 Move new lld's code to Common subdirectory.
New lld's files are spread under lib subdirectory, and it isn't easy
to find which files are actually maintained. This patch moves maintained
files to Common subdirectory.

Differential Revision: https://reviews.llvm.org/D37645

llvm-svn: 314719
2017-10-02 21:00:41 +00:00
Zachary Turner 264b5d9e88 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
2017-06-07 03:48:56 +00:00
Benjamin Kramer 3ad3f5033d Retire llvm::alignOf in favor of C++11 alignof.
No functionality change intended.

llvm-svn: 284734
2016-10-20 15:30:02 +00:00
Pete Cooper 41f3e8e408 Generate LC_FUNCTION_STARTS load command.
This load command generates data in the LINKEDIT section which
is a list of ULEB128 delta's to all of the functions in the __text section.

It is then 0 terminated and pointer aligned to pad.

ld64 exposes the -function-starts and no-function-starts cmdline options
to override behaviour from the defaults based on file types.

rdar://problem/24472630

llvm-svn: 260188
2016-02-09 01:38:13 +00:00
Pete Cooper d75b7181df Move includes inside guards. NFC.
These includes were before the #ifndef/#define guards.  Moving them to
where they should be.

llvm-svn: 260153
2016-02-08 21:50:45 +00:00
Pete Cooper ac03979000 Don't emit relocs for the __eh_frame section as they can be implicit.
The __eh_frame section contains relocations which can always be implicitly generated.

This patch tracks whether sections have only implicitly relocations and skips emitting them to the object file if that is the case.

The test case here ensures that this is the case for __eh_frame sections.

Reviewed by Lang Hames.

http://reviews.llvm.org/D15594

llvm-svn: 257099
2016-01-07 21:07:26 +00:00
Rui Ueyama 25b87a4b5b Remove include/lld/Core/Endian.h and use llvm/Support/Endian.h instead.
llvm-svn: 231005
2015-03-02 20:31:43 +00:00
Rui Ueyama e088a0f989 Use read{le,be}{16,32}. NFC.
llvm-svn: 230728
2015-02-27 04:21:40 +00:00
Simon Atanasyan 55c2699d29 Follow-up to r221913. Fix some -Wcast-qual warning reasons.
llvm-svn: 221974
2014-11-14 07:15:43 +00:00
Tim Northover cadb77a43e [mach-o] explicitly cast little_n uses to ints to silence MSVC
Hopefully this'll fix the build failure in the bot.

llvm-svn: 221007
2014-10-31 22:12:20 +00:00
Tim Northover 40d3ad3319 TMP: fix readN & writeN to not encourage UB
llvm-svn: 220730
2014-10-27 22:48:35 +00:00
Artyom Skrobov 7a86a548b9 swapStruct extracted into include/llvm/Support/MachO.h (no functional change)
llvm-svn: 213362
2014-07-18 09:28:10 +00:00
Nick Kledzik 2458bec7e7 [mach-o] refactor KindHandler into ArchHandler and simplify passes.
All architecture specific handling is now done in the appropriate
ArchHandler subclass.

The StubsPass and GOTPass have been simplified.  All architecture specific
variations in stubs are now encoded in a table which is vended by the
current ArchHandler.

llvm-svn: 213187
2014-07-16 19:49:02 +00:00
Nick Kledzik de0860aae4 [mach-o] add parsing of x86 relocations
llvm-svn: 212239
2014-07-02 23:52:22 +00:00
Artyom Skrobov f8874b0a05 Using llvm::sys::swapByteOrder() for the common case of byte-swapping a value in place
llvm-svn: 210979
2014-06-14 13:26:14 +00:00
Artyom Skrobov 9b3f647bf3 llvm::sys::SwapByteOrder() renamed to llvm::sys::getSwappedBytes()
Further to this, llvm::sys::swapByteOrder() will be added, acting in-place

llvm-svn: 210974
2014-06-14 12:14:25 +00:00
Rafael Espindola 54427ccef3 include system_error directly.
llvm-svn: 210801
2014-06-12 17:15:58 +00:00
Rafael Espindola 1675d51eac Run llvm/utils/sort_includes.py in a few files.
This will reduce the noise in a followup patch.

llvm-svn: 210800
2014-06-12 17:12:28 +00:00
Nick Kledzik ec140834d4 [mach-o] refactor mach-o output section selection to be table driven.
In -r mode the sections use the table used to parse .o files.  Otherwise
use final exectuable table.  No functionality change.

llvm-svn: 210506
2014-06-10 01:50:00 +00:00
Shankar Easwaran 3d8de47f76 Fix trailing whitespace.
llvm-svn: 200182
2014-01-27 03:09:26 +00:00
Rui Ueyama 014192dbda Fix include guards.
llvm-svn: 194776
2013-11-15 03:09:26 +00:00
Nick Kledzik e34182f396 [mach-o] binary reader and writer
This patch adds support for converting normalized mach-o to and from binary
mach-o. It also changes WriterMachO (which previously directly wrote a 
mach-o binary given a set of Atoms) to instead do it in two steps. The first 
step uses normalizedFromAtoms() to convert Atoms to normalized mach-o, and the
second step uses writeBinary() which to generate the mach-o binary file.  

llvm-svn: 194167
2013-11-06 21:36:55 +00:00