Commit Graph

455 Commits

Author SHA1 Message Date
Nick Clifton
66bc6309ff Skip dynamic checks for binaries without a dynamic segment. (#1636606) 2018-10-08 10:42:53 +01:00
Nick Clifton
1750e06470 - Delay generating attach_to_group directives until the end of the compilation. (#1636265)
- Fix bug introduced in previous delta which would trigger a seg-fault when scanning for gaps.
- Annobin:   Fix section name selection for startup sections.
- Annocheck: Improve gap skipping heuristics.   (#1630574)
2018-10-05 12:22:45 +01:00
Nick Clifton
5b660fd112 Fix function section support (again). (#1630574) 2018-10-03 09:37:55 +01:00
Nick Clifton
fa19a50b6c Skip compiler option checks for non-GNU producers. (#1633749)
Fix function section support (again).   (#1630574)
Ignore ppc64le notes where start = end + 2.  (#1632259)
2018-10-01 10:01:11 +01:00
Nick Clifton
50a4793ba2 Make annocheck ignore symbols suffixed with ".end". 2018-09-25 10:17:37 +01:00
Nick Clifton
740bbaa891 Tweak tests. 2018-09-21 21:34:13 +01:00
Nick Clifton
2cdf84f0b4 Generate notes and groups for .text.hot and .text.unlikely sections.
When -ffunction-sections is active, put notes for startup sections into .text.startup.foo rather than .text.foo.
Similarly put exit section notes into .text.exit.foo.  (#1630574)
Change annocheck's maybe result for GNU Property note being missing into a PASS if it is not needed and a FAIL if it is needed.
2018-09-21 18:43:52 +01:00
Nick Clifton
97b046a1ec Make the --skip-* options skip all messages about the specified test. 2018-09-19 15:43:54 +01:00
Nick Clifton
98aa3b8d59 Improve error message when an ET_EXEC binary is detected. 2018-09-18 11:41:21 +01:00
Nick Clifton
00645328fd Skip failures for PIC vs PIE. (#1629698) 2018-09-17 14:47:45 +01:00
Nick Clifton
62a035e246 Ensure 4 byte alignment of note sub-sections.
Resolves: #1629671
2018-09-17 11:40:50 +01:00
Nick Clifton
38c6f9ee42 Add timing tool to report on speed of the checks.
Add check for conflicting use of the -fshort-enum option.
Add check of the GNU Property notes.
Skip check for -O2 if compiled with -Og.  (#1624162)
2018-09-12 14:27:41 +01:00
Nick Clifton
3218a502f3 Add test for ET_EXEC binaries.
Document --report-unknown option.
2018-09-03 16:45:27 +01:00
Nick Clifton
a241ed8b29 - Fix bug in hardened tool which would skip gcc compiled files if the notes were too small.
- Fix bugs in section-size tool.
- Fix bug in buillt-by tool.
2018-08-30 11:59:48 +01:00
Nick Clifton
ccb481d55d Generate notes for comdat sections. 2018-08-29 11:09:02 +01:00
Nick Clifton
59960d354a Add more names to the gap skip list. 2018-08-23 14:07:31 +01:00
Nick Clifton
f8f44e9346 Skip gaps covered by _x86.get_pc_thunk and _savegpr symbols.
Merge ranges where one is wholly covered by another.
2018-08-23 11:33:37 +01:00
Nick Clifton
665e3d6465 Skip gaps at the end of functions. (#1619267) 2018-08-22 11:50:15 +01:00
Nick Clifton
1fa3a94195 Fix thinko in ppc64 gap detection code.
Resolves: #1619267
2018-08-21 08:58:31 +01:00
Nick Clifton
4482b57ec2 Skip gaps at the end of the .text section in ppc64 binaries. 2018-08-20 14:26:52 +01:00
Nick Clifton
c396cc5131 Skip checks in stack_chk_local_fail.c
Treat gaps as FAIL results rather than MAYBE.
2018-08-15 09:51:54 +01:00
Nick Clifton
34de7bcad3 Skip checks in __stack_chk_local_fail. 2018-08-08 13:43:37 +01:00
Nick Clifton
57a69d60c2 Reduce version check to gcc major version number only.
Skip compiler option checks if binary not built with gcc.
Relates: #1603089
2018-08-08 09:30:17 +01:00
Nick Clifton
a8c8418bed Fix bug in annobin plugin. Add --section-size=NAME option to annocheck. 2018-08-07 15:21:37 +01:00
Peter Robinson
2f44ce6b02 rebuild for new gcc 2018-08-02 14:01:05 +01:00
Nick Clifton
504e1b0577 Correct name of man page for run-on-binaries-in script.
Resolves: #1611155
2018-08-02 09:51:33 +01:00
Nick Clifton
f7e6bb686b Allow $ORIGN to be at the start of entries in DT_RPATH and DT_RUNPATH. 2018-07-25 11:25:11 +01:00
Nick Clifton
848d99efa7 Add support for big endian targets. 2018-07-23 17:40:07 +01:00
Nick Clifton
38eb35a4e9 Count passes and failures on a per-component basis and report gaps. 2018-07-23 16:23:55 +01:00
Nick Clifton
9dbf46e911 Use our own copy of the targetm.asm_out.function_section() function. (#159861 comment#17) 2018-07-20 12:57:43 +01:00
Nick Clifton
baf40aa7ca Generate grouped note section name all the time. (#159861 comment#16) 2018-07-20 10:50:18 +01:00
Nick Clifton
d3e4501372 Fix section conflict problem.
Resolves: #1603071
2018-07-19 12:25:41 +01:00
Nick Clifton
c4f43f0cbb Fix for building with gcc version 4.
Fix symbol placement in functions with local assembler.
2018-07-18 15:24:48 +01:00
Nick Clifton
cc6b631f3a Fix assertions in rnage checking code. Add detection of -U options. 2018-07-17 18:06:21 +01:00
Nick Clifton
c760726387 Handle function sections properly. Handle .text.startup and .text.unlikely sections. Improve gap detection and reporting.
Resolves: #1601055
2018-07-17 16:04:01 +01:00
Fedora Release Engineering
accc579ff3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-12 20:14:26 +00:00
Nick Clifton
5a7b2e9a48 Fix construction of absolute versions of --dwarf-dir and --debug-rpm options. 2018-07-12 10:08:04 +01:00
Nick Clifton
7b83124311 Unknown reasons 2018-07-11 09:28:28 +01:00
Nick Clifton
4efcfc999f Fix buffer overrun when very long symbol names are encountered. 2018-07-11 09:27:49 +01:00
Igor Gnatenko
e8e22cc052
remove unneeded BuildRequires
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-07-10 15:58:48 +02:00
Igor Gnatenko
7aff41d33b
remove unneeded install-info scriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-07-10 15:55:33 +02:00
Nick Clifton
cb01155831 Add missing build dependency upon gcc-c++. 2018-07-10 14:24:32 +01:00
Nick Clifton
be50c56ece Do not force the generation of function notes when -ffunction-sections is active.
Relates: #1598961
2018-07-10 10:12:15 +01:00
Nick Clifton
a231425bc2 Skip the .annobin_ prfix when reporting symbols.
Resolves: #1599315
2018-07-09 17:23:41 +01:00
Nick Clifton
0342042e79 Use the assembler (c++ mangled) version of function names when switching sections.
Resolves: #1598579
2018-07-09 12:42:06 +01:00
Nick Clifton
efaf793911 Do not call function_section.
Resolves: #1598961
2018-07-09 12:22:24 +01:00
Nick Clifton
326c603396 Ignore cross-section gaps.
Resolves: #1598551
2018-07-06 12:23:12 +01:00
Nick Clifton
ce5f9d54ee Do not skip empty range notes in object files. 2018-07-05 10:53:33 +01:00
Nick Clifton
a1b8a53f98 Create the start symbol at the start of the function and the end symbol at the end.
Resolves: #1596823
2018-07-02 14:20:53 +01:00
Nick Clifton
7fa87a24cf Fix --debug-rpm when used inside a directory. 2018-07-02 11:58:23 +01:00
Nick Clifton
f4130c1b24 Use a prefix for all annobin generated symbols, and make them hidden.
Only generate weak symbol definitions for linkonce sections.
2018-06-28 13:20:24 +01:00
Nick Clifton
ae10117310 Skip some checks for relocatable object files, and dynamic objects.
Stop bogus complaints about stackrealignment not being enabled.
2018-06-27 14:55:35 +01:00
Nick Clifton
a55d84f6eb Add -debug-rpm= option to annocheck.
Only use a 2 byte offset for the initial symbol on PowerPC.
2018-06-25 16:38:03 +01:00
Nick Clifton
ec37d82581 Use --dwarf-path when looking for build-id based debuginfo files. 2018-06-22 15:35:18 +01:00
Nick Clifton
4a3f774835 Fix premature closing of dwarf handle. 2018-06-22 11:15:40 +01:00
Nick Clifton
25bca4e64e Fix scoping bug computing the name of a separate debug info file. 2018-06-22 10:46:17 +01:00
Nick Clifton
9a6d845b6e Fix file descriptor leak. 2018-06-19 15:42:03 +01:00
Nick Clifton
b8b6c8608e Add command line options to annocheck to disable individual tests. 2018-06-19 14:49:31 +01:00
Nick Clifton
9657bbe901 Remove C99-isms from annocheck sources. 2018-06-08 11:36:47 +01:00
Nick Clifton
4656334c92 Add the annocheck program as a sub-package. 2018-06-06 17:25:49 +01:00
Nick Clifton
a47a7d3349 Do not use the SHF_GNU_BUILD_NOTE section flag. 2018-06-01 15:08:25 +01:00
Nick Clifton
db2c4ce56d Remove .sh extension from shell scripts. 2018-05-31 16:10:11 +01:00
Nick Clifton
78f88fba1a Update to 5.9 annobin sources which includes code to record the -mstackrealign option for i686 binaries. 2018-05-30 12:08:39 +01:00
Nick Clifton
29f42b47f2 Hide the annobin start of file symbol. 2018-05-14 17:28:20 +01:00
Nick Clifton
7a683bbe67 Fix script bug in hardended.sh. (Thanks to: Stefan S?rensen <stefan.sorensen@spectralink.com>) 2018-05-08 13:29:58 +01:00
Nick Clifton
967f47d659 Version number bump so that the plugin can be rebuilt with the latest version of GCC. 2018-05-03 12:56:54 +01:00
Nick Clifton
f45ff6be28 Rebuild the plugin with the newly created plugin enabled.
Resolves: #1573082
2018-04-30 16:33:05 +01:00
Nick Clifton
9d8fe91a43 Skip the isa_flags check in the ABI test because the crt[in].o files are compiled with different flags from the test files. 2018-04-30 10:30:15 +01:00
Nick Clifton
4f0a7c212f Add manual pages for the annobin and the scripts. 2018-04-20 16:52:49 +01:00
Nick Clifton
f2865c5c79 Do not record a stack protection setting of -1.
Resolves: #1563141
2018-04-03 16:16:48 +01:00
Nick Clifton
3323867c5b Do not complain about a dwarf_version value of -1.
Relates: #1557511
2018-03-20 11:33:13 +00:00
Nick Clifton
0af9bb23ba Bias file start symbols by 2 in order to avoid them confused with function symbols. (#1554332)
Version jump is to sync the version number with the annobin plugins internal version number.
2018-03-15 17:10:38 +00:00
Nick Clifton
c42ae85f5e Add --ignore-gaps option to check-abi.sh script.
Use this option in the abi-test check.
Tweak hardening test to skip pic and stack protection checks.
2018-03-12 12:55:40 +00:00
Nick Clifton
a9bdd53186 Handle functions with specific assembler names.
Resolves: #1552018
2018-03-06 11:22:26 +00:00
Nick Clifton
38bf73b048 Move gcc_vr logic closer to use location. 2018-02-23 10:56:10 +00:00
Nick Clifton
fb74d1ed1c Add an early require of gcc. 2018-02-23 10:40:42 +00:00
Nick Clifton
0078c77a9c Add an explicit requirement on the version of gcc used to built the plugin.
Resolves: #1547260
2018-02-23 10:34:14 +00:00
Nick Clifton
8a3889e374 Change type and size of symbols to STT_NOTYPE/0 so that they do not confuse GDB. (#1539664)
Add run-on-binaries-in.sh script to allow the other scripts to be run over a repository.
2018-02-09 09:00:08 +00:00
Fedora Release Engineering
b42c748fba - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 02:18:06 +00:00
Nick Clifton
cfbd038110 Rebase on 3.3 release, which adds support for recording -mcet and -fcf-protection. 2018-01-30 16:33:00 +00:00
Florian Weimer
ccd5e04a5a Rebuild for GCC 8 2018-01-29 14:03:52 +01:00
Nick Clifton
d1be1bdb14 Fix the installation of the annobin.info file. 2018-01-26 16:17:03 +00:00
Nick Clifton
4eecdf82ad Resolved merge 2018-01-26 12:36:02 +00:00
Nick Clifton
6b89f3290c Rebase on 3.2 release, which now contains documentation! 2018-01-26 12:33:58 +00:00
Richard W.M. Jones
267ee07ec4 Added %undefine _annotated_build
Suggested by yaneti on IRC and tested locally.
2018-01-26 11:36:09 +00:00
Richard W.M. Jones
3f1d08fe80 Rebuild against GCC 7.3.1. 2018-01-26 09:45:52 +00:00
Nick Clifton
ceb5d855f6 Add --with-gcc-plugin-dir option to the configure command line. 2018-01-16 17:48:21 +00:00
Nick Clifton
26ba227b0b Rebase on 3.1 annobin sources:
v3 annobin notes - include ranges so that gaps can be detected.
  Add recoding of -fstack-clash-protection and -D_GLIBCXX_ASSERTIONS.
2018-01-04 10:05:29 +00:00
Nick Clifton
ecf7069f1b Do not generate notes when there is no output file.
Resolves: #1523875
2017-12-11 10:36:08 +00:00
Nick Clifton
3dfaaa0ec2 Invent an input filename when reading from a pipe.
Resolves: #1523401
2017-12-08 11:11:14 +00:00
Florian Weimer
a11e44bf67 Use DECL_ASSEMBLER_NAME for symbol references (#1519165) 2017-11-30 18:53:24 +01:00
Igor Gnatenko
611217200d bump release
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-10-03 15:50:54 +02:00
Igor Gnatenko
ccfd4bf9f3 fix versions in changelog
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-10-03 15:50:36 +02:00
Igor Gnatenko
2fe93a3ffc remove Group tag
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-10-03 15:48:18 +02:00
Igor Gnatenko
757c3b03f5 cleanup spec
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-10-03 15:48:09 +02:00
Igor Gnatenko
d6f88f636c fix license tag
* No need to define licenses of install-sh and so, moreover format is wrong
* The license is actually GPLv3+

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-10-03 15:46:25 +02:00
Nick Clifton
c393d68a90 Touch the auto-generated files in order to stop them from being regenerated. 2017-09-26 13:59:20 +01:00
Nick Clifton
31b6780b2a Stop the plugin complaining about compiler datestamp mismatches. 2017-09-26 12:33:04 +01:00
Nick Clifton
4b489fec02 Tweak tests so that they will run on older machines. 2017-09-21 14:31:48 +01:00
Nick Clifton
32a0f859f3 SWitch back to xz compression for the source tarball. 2017-09-21 14:02:09 +01:00
Nick Clifton
3b7589fe2b Update changelog file after merging. 2017-09-21 13:40:57 +01:00
Nick Clifton
e7ed17846e Rebased to annobin-2.3 sources.
Add annobin-tests subpackage containing some preliminary tests.
Remove link-time test for unsuported targets.
2017-09-21 13:39:01 +01:00
Fedora Release Engineering
3b2676bbd9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-02 17:35:45 +00:00
Florian Weimer
f53ae1fc82 Rebuild with binutils fix for ppc64le (#1475636) 2017-07-31 08:34:29 +02:00
Nick Clifton
35fd563cf4 Initial Commit (#1451407) 2017-07-27 14:58:31 +01:00