Go to file
George Rimar b9f3ea3e1c [ELF] - Do not produce broken output when amount of sections is > ~65k
This is a part of ttps://bugs.llvm.org//show_bug.cgi?id=38119

We produce broken ELF header now when the number of output sections is >= SHN_LORESERVE (0xff00).

ELF spec says (http://www.sco.com/developers/gabi/2003-12-17/ch4.eheader.html):

e_shnum:
If the number of sections is greater than or equal to SHN_LORESERVE (0xff00), this member has the value zero
and the actual number of section header table entries is contained in the sh_size field of the section header at index 0.
(Otherwise, the sh_size member of the initial entry contains 0.)

e_shstrndx
If the section name string table section index is greater than or equal to SHN_LORESERVE (0xff00), this member has the
value SHN_XINDEX (0xffff) and the actual index of the section name string table section is contained in the sh_link field of
the section header at index 0. (Otherwise, the sh_link member of the initial entry contains 0.)

We did not set these fields correctly earlier. The patch fixes the issue.

Differential revision: https://reviews.llvm.org/D49371

llvm-svn: 337363
2018-07-18 08:44:38 +00:00
clang [modules] Print input files when -module-file-info file switch is passed. 2018-07-18 06:49:33 +00:00
clang-tools-extra [clang-tidy: modernize] Fix modernize-use-equals-default with {} brackets list initialization: patch 2018-07-17 14:35:15 +00:00
compiler-rt [XRay][compiler-rt] Segmented Array: Simplify and Optimise 2018-07-18 02:08:39 +00:00
debuginfo-tests [debuginfo-tests] Always use the system python to invoke llgdb.py. 2018-06-10 19:38:26 +00:00
libclc atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics 2018-06-21 19:27:39 +00:00
libcxx Address "always inline function is not always inlinable" warning with GCC. 2018-07-17 05:48:48 +00:00
libcxxabi [CMake] Set per-runtime library directory suffix in runtimes build 2018-07-10 19:13:33 +00:00
libunwind The semantics of DW_CFA_GNU_args_size have changed subtile over the 2018-07-17 19:00:51 +00:00
lld [ELF] - Do not produce broken output when amount of sections is > ~65k 2018-07-18 08:44:38 +00:00
lldb Link the lldb driver ("lldb") against the llvm static 2018-07-17 23:44:09 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [llvm-objdump] - Stop reporting bogus section IDs. 2018-07-18 08:34:35 +00:00
openmp [libomptarget] Also support several images for elf 2018-07-18 07:23:46 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [DependenceInfo] Use isl++ to replace foreach_set with for loop 2018-07-17 07:08:06 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.