summaryrefslogtreecommitdiffstats
path: root/Source/cmELF.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into file-grd-archKyle Edwards2021-07-121-4/+3
|\
| * cmELF: Include the ELF parsing code unconditionallyAlex Richardson2021-06-241-4/+0
| | | | | | | | | | Now that the ELF definitions are provided on all platforms there is no need to keep the CMake_USE_ELF_PARSER option.
| * cmELF: Fix check for TagMipsRldMapRelAlex Richardson2021-06-241-0/+3
| | | | | | | | | | | | | | DT_MIPS_RLD_MAP_REL is a machine-speicific dynamic tag, so other architectures could re-use the value of 0x70000035 to mean something else. Before using DT_MIPS_RLD_MAP_REL, we have to check that the ELF file is actually has a e_machine of EM_MIPS.
* | file(GET_RUNTIME_DEPENDENCIES): Check architecture of dependenciesKyle Edwards2021-07-121-0/+4
|/ | | | Fixes: #22106
* Rename CMAKE_USE_ELF_PARSER to CMake_USE_ELF_PARSERBrad King2021-02-031-2/+2
| | | | We use the `CMake_` prefix for options affecting CMake itself.
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
| | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-041-1/+1
| | | | | | | | Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
* cmELF: Modernize to use std::unique_ptr instead of new/deleteSebastian Holtermann2019-07-171-1/+2
|
* Delete some default constructors and assignment operatorsAlbert Astals Cid2019-02-151-0/+3
| | | | | | They are unused, but if someone used them they would lead to problems since they would copy the internal raw pointers and the destructor would cause double delete
* Mark operator bool explicitRegina Pfeifer2018-11-191-1/+1
|
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-1/+1
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* clang-format: format all code as Cpp11Daniel Pfeifer2017-08-301-1/+1
|
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* elf: Remove GetDynamicEntryCount and ReadBytes methodsJames Cowgill2016-10-071-7/+0
| | | | These are no longer used after the DynamicEntryList changes.
* cmSystemTools, elf: handle DT_MIPS_RLD_REL_MAP in RemoveRPathJames Cowgill2016-10-071-1/+1
|
* elf: add DynamicEntryList methods and rpath tag constantsJames Cowgill2016-10-061-0/+18
|
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* fix a load of include-what-you-use violationsDaniel Pfeifer2016-09-031-0/+5
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-5/+2
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* ENH: Added cmELF methods to get information about DYNAMIC section entries.Brad King2008-04-141-0/+14
|
* BUG: A few more corrections for cmELFBrad King2008-03-021-1/+3
| | | | | | - Add os-specific and processor-specific file types - Add more error strings for invalid files. - Byte order of header fields does not always match encoding
* ENH: Add Size member to cmELF::StringEntry to return the amount of space in ↵Brad King2008-03-011-0/+4
| | | | the string entry.
* ENH: Make cmELF parser more general and powerfulBrad King2008-02-291-0/+17
| | | | | | - Add support to get RPATH and RUNPATH entries. - Add support to get file offsets to strings. - Add more DT_* tags to byte swapping.
* ENH: Add ELF file parsingBrad King2008-02-271-0/+76
- Enabled when system provides elf.h - Introduce cmELF class to parse ELF files - Use in cmSystemTools::GuessLibrarySOName to really get soname