Compare commits

...
Sign in to create a new pull request.

17 commits

Author SHA1 Message Date
Jakub Jelinek
3764359b21 9.79-5 2022-04-22 17:48:22 +02:00
Nick Clifton
4db2c31c2c Annocheck: allow spaces in golang symbols 2021-12-02 16:03:34 +00:00
Nick Clifton
93b2318897 Annocheck: Add test for the presence of unicode characters in identifiers.
Resolves: #2018850
2021-11-10 15:08:37 +00:00
Tom Stellard
e32b491807 Rebuild for 12.0.1 2021-08-10 22:38:08 +00:00
Nick Clifton
2a393ab63a - Annocheck: Fix spelling mistake in -,stack-realign failure message. (#1977349)
- gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set.  (#1958954)
- annocheck: Remove limit on number of input files.
- Annocheck: Better detection of GO compiler version.
- Annocheck: Better support for symbolic links.
- Annocheck: In verbose mode, report the reason for skipping specific tests.  (#1969584)
- Annocheck: Improve detection of shared libraries.  (#1958954)
2021-06-29 16:06:42 +01:00
Tom Stellard
12d48af54a Rebuild for LLVM 12.0.0-final 2021-05-26 21:11:08 +00:00
Nick Clifton
51c0c798f1 annocheck: Accept 0 as a valid number for gcc minor versions and release numbers.
gcc-plugin: Add support for ARM and RISCV targets.
2021-05-13 14:07:01 +01:00
Martin Cermak
80bf058d7c Log package versions in CI tests 2021-05-13 13:47:41 +02:00
Nick Clifton
dcd6b95df8 - timing: do not initialise the clock if the timing tool is disabled.
- gcc-plugin: Replace ICE messsages with verbose messages.
- Fix the testsuite so that it can be run in parallel.
2021-05-07 16:11:01 +01:00
Nick Clifton
ae66570d85 Annocheck: WARN if the annobin plugin was built for a newer version of the compiler than the one on which it was run. (#1950657)
- Annocheck: Improve detection of missing GNU-stack support.
- Fix anomolies reported by covscan.
2021-04-21 13:41:29 +01:00
Nick Clifton
815dc75a45 NVR bump to allow another rebuild 2021-03-30 13:36:09 +01:00
Nick Clifton
da05dd9608 NVR bump to allow rebuild 2021-03-25 11:32:25 +00:00
Nick Clifton
e2d918aee9 gcc-plugin: Use a fixed filename when running in LTO mode. 2021-03-09 13:37:40 +00:00
Nick Clifton
d6dd6f9fca Annocheck: Fix detection of special function names.
Resolves: #1934189
2021-03-03 10:09:17 +00:00
Nick Clifton
ed70b0e090 Annocheck: FAIL the deliberate use of -fno-stack-protector, but add some exceptions for glibc.
Resolves: #1923439
2021-02-26 10:06:54 +00:00
Nick Clifton
9ee2552213 Annocheck: Add colour to some messages. Skip the deliberate use of -fno-stack-protector.
Resolves: #1923439
2021-02-25 11:21:07 +00:00
Nick Clifton
bdf8114d46 Annocheck: Fix some problems with tests for missing notes. 2021-02-22 12:14:09 +00:00
8 changed files with 490 additions and 5 deletions

View file

@ -0,0 +1,13 @@
--- annobin.orig/annocheck/hardened.c 2021-12-02 15:27:27.325863983 +0000
+++ annobin-9.87/annocheck/hardened.c 2021-12-02 15:28:03.915609648 +0000
@@ -3108,6 +3108,10 @@ contains_suspicious_characters (const un
if (isgraph (c))
continue;
+ /* Golang allows spaces in some symbols. */
+ if (c == ' ' && (per_file.lang == LANG_GO || (per_file.seen_tools & TOOL_GO)))
+ continue;
+
/* Control characters are always suspect. So are spaces and DEL */
if (iscntrl (c) || c == ' ' || c == 0x7f)
return true;

View file

@ -1,8 +1,8 @@
Name: annobin
Summary: Annotate and examine compiled binary files
Version: 9.60
Release: 1%{?dist}
Version: 9.79
Release: 5%{?dist}
License: GPLv3+
# ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark
# Maintainer: nickc@redhat.com
@ -57,7 +57,8 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
# For the latest sources use: git clone git://sourceware.org/git/annobin.git
# Insert patches here, if needed. Eg:
# Patch01: annobin-foo.patch
Patch01: annobin.unicode.patch
Patch03: annobin-golang-spaces-in-symbols.patch
#---------------------------------------------------------------------------------
@ -194,6 +195,7 @@ fi
echo "Requires: (gcc >= %{gcc_major} and gcc < %{gcc_next})"
%autosetup -p1
chmod +x tests/unicode-test
# The plugin has to be configured with the same arcane configure
# scripts used by gcc. Hence we must not allow the Fedora build
@ -324,6 +326,65 @@ fi
#---------------------------------------------------------------------------------
%changelog
* Fri Apr 22 Jakub Jelinek <jakub@redhat.com> - 9.79-5
- Another NVR bump for GCC 11 rebuild.
* Thu Dec 02 2021 Nick Clifton <nickc@redhat.com> - 9.79-4
- Annocheck: Allow spaces in golang symbols.
* Wed Nov 10 2021 Nick Clifton <nickc@redhat.com> - 9.79-3
- Annocheck: Add test for the presence of unicode characters in identifiers. (#2018850)
* Tue Aug 10 2021 Tom Stellard <tstellar@redhat.com> - 9.79-2
- Rebuild for 12.0.1
* Tue Jun 29 2021 Nick Clifton <nickc@redhat.com> - 9.79-1
- Annocheck: Fix spelling mistake in -,stack-realign failure message. (#1977349)
- gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set. (#1958954)
- annocheck: Remove limit on number of input files.
- Annocheck: Better detection of GO compiler version.
- Annocheck: Better support for symbolic links.
- Annocheck: In verbose mode, report the reason for skipping specific tests. (#1969584)
- Annocheck: Improve detection of shared libraries. (#1958954)
* Wed May 26 2021 Tom Stellard <tstellar@redhat.com> - 9.72-2
- Rebuild for LLVM 12.0.0-final
* Thu May 13 2021 Nick Clifton <nickc@redhat.com> - 9.72-1
- annocheck: Accept 0 as a valid number for gcc minor versions and release numbers.
- gcc-plugin: Add support for ARM and RISCV targets.
* Fri May 07 2021 Nick Clifton <nickc@redhat.com> - 9.71-1
- timing: do not initialise the clock if the timing tool is disabled.
- gcc-plugin: Replace ICE messsages with verbose messages.
- Fix the testsuite so that it can be run in parallel.
* Wed Apr 21 2021 Nick Clifton <nickc@redhat.com> - 9.68-1
- Annocheck: WARN if the annobin plugin was built for a newer version of the compiler than the one on which it was run. (#1950657)
- Annocheck: Improve detection of missing GNU-stack support.
- Fix anomolies reported by covscan.
* Tue Mar 30 2021 Nick Clifton <nickc@redhat.com> - 9.65-3
- Another NVR bump to allow rebuild in CentOS stream.
* Thu Mar 25 2021 Nick Clifton <nickc@redhat.com> - 9.65-2
- NVR bump to allow rebuild.
* Tue Mar 09 2021 Nick Clifton <nickc@redhat.com> - 9.65-1
- gcc-plugin: Use a fixed filename when running in LTO mode.
* Wed Mar 03 2021 Nick Clifton <nickc@redhat.com> - 9.64-1
- Annocheck: Fix detection of special function names. (#1934189)
* Fri Feb 26 2021 Nick Clifton <nickc@redhat.com> - 9.63-1
- Annocheck: FAIL the deliberate use of -fno-stack-protector, but add some exceptions for glibc. (#1923439)
* Thu Feb 25 2021 Nick Clifton <nickc@redhat.com> - 9.62-1
- Annocheck: Add colour to some messages. Skip the deliberate use of -fno-stack-protector. (#1923439)
* Mon Feb 22 2021 Nick Clifton <nickc@redhat.com> - 9.61-1
- Annocheck: Fix some problems with tests for missing notes.
* Fri Feb 05 2021 Nick Clifton <nickc@redhat.com> - 9.60-1
- Add some GO tests to annocheck.

404
annobin.unicode.patch Normal file
View file

@ -0,0 +1,404 @@
diff -rupN annobin.orig/Makefile.in annobin-9.87/Makefile.in
--- annobin.orig/Makefile.in 2021-11-10 14:34:16.366259510 +0000
+++ annobin-9.87/Makefile.in 2021-11-10 14:35:15.947890504 +0000
@@ -323,6 +323,7 @@ plugindir = @plugindir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -rupN annobin.orig/annocheck/Makefile.in annobin-9.87/annocheck/Makefile.in
--- annobin.orig/annocheck/Makefile.in 2021-11-10 14:34:16.368259498 +0000
+++ annobin-9.87/annocheck/Makefile.in 2021-11-10 14:35:15.948890497 +0000
@@ -314,6 +314,7 @@ plugindir = @plugindir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -rupN annobin.orig/annocheck/hardened.c annobin-9.87/annocheck/hardened.c
--- annobin.orig/annocheck/hardened.c 2021-11-10 14:34:16.368259498 +0000
+++ annobin-9.87/annocheck/hardened.c 2021-11-10 14:35:53.677656812 +0000
@@ -40,6 +40,7 @@
#define SOURCE_STRING_SECTION "string section"
#define SOURCE_COMMENT_SECTION "comment section"
#define SOURCE_RODATA_SECTION ".rodata section"
+#define SOURCE_SYMBOL_SECTION "symbol section"
#define GOLD_COLOUR "\e[33;40m"
#define RED_COLOUR "\x1B[31;47m"
@@ -208,6 +209,7 @@ enum test_index
TEST_STACK_REALIGN,
TEST_TEXTREL,
TEST_THREADS,
+ TEST_UNICODE,
TEST_WARNINGS,
TEST_WRITEABLE_GOT,
@@ -252,6 +254,7 @@ static test tests [TEST_MAX] =
TEST (stack-realign, STACK_REALIGN, "Compiled with -mstackrealign (i686 only)"),
TEST (textrel, TEXTREL, "There are no text relocations in the binary"),
TEST (threads, THREADS, "Compiled with -fexceptions"),
+ TEST (unicode, UNICODE, "No unicode symbol names"),
TEST (warnings, WARNINGS, "Compiled with -Wall"),
TEST (writeable-got, WRITEABLE_GOT, "The .got section is not writeable"),
};
@@ -1067,6 +1070,11 @@ interesting_sec (annocheck_data * da
if (streq (sec->secname, ".gdb_index"))
per_file.debuginfo_file = true;
+ if (tests[TEST_UNICODE].enabled
+ && (sec->shdr.sh_type == SHT_SYMTAB
+ || sec->shdr.sh_type == SHT_DYNSYM))
+ return true;
+
if (streq (sec->secname, ".text"))
{
/* Separate debuginfo files have a .text section with a non-zero
@@ -3086,6 +3094,64 @@ check_code_section (annocheck_data *
}
static bool
+contains_suspicious_characters (const unsigned char * name)
+{
+ uint i;
+ uint len = strlen ((const char *) name);
+
+ /* FIXME: Test that locale is UTF-8. */
+
+ for (i = 0; i < len; i++)
+ {
+ unsigned char c = name[i];
+
+ if (isgraph (c))
+ continue;
+
+ /* Control characters are always suspect. So are spaces and DEL */
+ if (iscntrl (c) || c == ' ' || c == 0x7f)
+ return true;
+
+ if (c < 0x7f) /* This test is probably redundant. */
+ continue;
+
+ return true;
+ }
+
+ return false;
+}
+
+static bool
+check_symbol_section (annocheck_data * data, annocheck_section * sec)
+{
+ if (! tests[TEST_UNICODE].enabled)
+ return true;
+
+ /* Scan the symbols looking for non-ASCII characters in their names
+ that might cause problems. Note - we do not examine the string
+ tables directly as there are perfectly legitimate reasons why these
+ characters might appear in strings. But when they are used for
+ identifier names, their use is ... problematic. */
+ GElf_Sym sym;
+ uint symndx;
+
+ for (symndx = 1; gelf_getsym (sec->data, symndx, & sym) != NULL; symndx++)
+ {
+ const char * symname = elf_strptr (data->elf, sec->shdr.sh_link, sym.st_name);
+
+ if (contains_suspicious_characters ((const unsigned char *) symname))
+ {
+ fail (data, TEST_UNICODE, SOURCE_SYMBOL_SECTION, "suspicious characters were found in a symbol name");
+ einfo (VERBOSE, "%s: info: symname: '%s', (%lu bytes long) in section: %s",
+ get_filename (data), symname, (unsigned long) strlen (symname), sec->secname);
+ if (!BE_VERBOSE)
+ break;
+ }
+ }
+ return true;
+}
+
+static bool
check_sec (annocheck_data * data,
annocheck_section * sec)
{
@@ -3096,6 +3162,8 @@ check_sec (annocheck_data * data,
selected in interesting_sec(). */
switch (sec->shdr.sh_type)
{
+ case SHT_SYMTAB:
+ case SHT_DYNSYM: return check_symbol_section (data, sec);
case SHT_NOTE: return check_note_section (data, sec);
case SHT_STRTAB: return check_string_section (data, sec);
case SHT_DYNAMIC: return check_dynamic_section (data, sec);
@@ -3823,6 +3891,7 @@ finish (annocheck_data * data)
case TEST_RWX_SEG:
case TEST_TEXTREL:
case TEST_THREADS:
+ case TEST_UNICODE:
case TEST_WRITEABLE_GOT:
/* The absence of a result for these tests actually means that they have passed. */
pass (data, i, SOURCE_FINAL_SCAN, NULL);
diff -rupN annobin.orig/configure annobin-9.87/configure
--- annobin.orig/configure 2021-11-10 14:34:16.366259510 +0000
+++ annobin-9.87/configure 2021-11-10 14:35:15.950890485 +0000
@@ -765,6 +765,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -863,6 +864,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1115,6 +1117,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1252,7 +1263,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1405,6 +1416,7 @@ Fine tuning of the installation director
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
diff -rupN annobin.orig/doc/Makefile.in annobin-9.87/doc/Makefile.in
--- annobin.orig/doc/Makefile.in 2021-11-10 14:34:16.366259510 +0000
+++ annobin-9.87/doc/Makefile.in 2021-11-10 14:35:15.951890479 +0000
@@ -329,6 +329,7 @@ plugindir = @plugindir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -rupN annobin.orig/doc/annobin.info annobin-9.87/doc/annobin.info
--- annobin.orig/doc/annobin.info 2021-11-10 14:34:16.366259510 +0000
+++ annobin-9.87/doc/annobin.info 2021-11-10 14:35:15.951890479 +0000
@@ -751,6 +751,7 @@ File: annobin.info, Node: Hardened, Ne
[-skip-stack-realign]
[-skip-textrel]
[-skip-threads]
+ [-skip-unicode]
[-skip-warnings]
[-skip-writeable-got]
[-test-NAME]
@@ -877,6 +878,10 @@ code to support the test.
Check that the program was built by a production-ready compiler.
Disabled by '--skip-production'.
+'Unicode'
+ This test checks for the presence of multibyte characters in symbol
+ names, which are unusual and potentially dangerous.
+
The tool does support a couple of other command line options as well:
'--skip-future'
diff -rupN annobin.orig/doc/annobin.texi annobin-9.87/doc/annobin.texi
--- annobin.orig/doc/annobin.texi 2021-11-10 14:34:16.366259510 +0000
+++ annobin-9.87/doc/annobin.texi 2021-11-10 14:35:15.951890479 +0000
@@ -855,6 +855,7 @@ annocheck
[@b{--skip-stack-realign}]
[@b{--skip-textrel}]
[@b{--skip-threads}]
+ [@b{--skip-unicode}]
[@b{--skip-warnings}]
[@b{--skip-writeable-got}]
[@b{--test-@var{name}}]
@@ -996,6 +997,11 @@ Check that the program makes consistent
@item Production Ready Compiler
Check that the program was built by a production-ready compiler.
Disabled by @option{--skip-production}.
+
+@item Unicode
+This test checks for the presence of multibyte characters in symbol
+names, which are unusual and potentially dangerous.
+
@end table
The tool does support a couple of other command line options as well:
diff -rupN annobin.orig/gcc-plugin/Makefile.in annobin-9.87/gcc-plugin/Makefile.in
--- annobin.orig/gcc-plugin/Makefile.in 2021-11-10 14:34:16.368259498 +0000
+++ annobin-9.87/gcc-plugin/Makefile.in 2021-11-10 14:35:15.951890479 +0000
@@ -333,6 +333,7 @@ plugindir = @plugindir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -rupN annobin.orig/scripts/Makefile.in annobin-9.87/scripts/Makefile.in
--- annobin.orig/scripts/Makefile.in 2021-11-10 14:34:16.366259510 +0000
+++ annobin-9.87/scripts/Makefile.in 2021-11-10 14:35:15.951890479 +0000
@@ -284,6 +284,7 @@ plugindir = @plugindir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff -rupN annobin.orig/tests/Makefile.am annobin-9.87/tests/Makefile.am
--- annobin.orig/tests/Makefile.am 2021-11-10 14:34:16.369259492 +0000
+++ annobin-9.87/tests/Makefile.am 2021-11-10 14:35:15.951890479 +0000
@@ -22,6 +22,7 @@ TESTS=compile-test \
missing-notes-test \
active-checks-test \
property-note-test \
+ unicode-test \
hardening-fail-test
if HAVE_DEBUGINFOD
diff -rupN annobin.orig/tests/Makefile.in annobin-9.87/tests/Makefile.in
--- annobin.orig/tests/Makefile.in 2021-11-10 14:34:16.369259492 +0000
+++ annobin-9.87/tests/Makefile.in 2021-11-10 14:35:15.952890473 +0000
@@ -459,6 +459,7 @@ plugindir = @plugindir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -479,7 +480,7 @@ TESTS = compile-test abi-test active-che
hardening-test instrumentation-test lto-test \
missing-notes-test objcopy-test section-size-test \
missing-notes-test active-checks-test property-note-test \
- hardening-fail-test $(am__append_1)
+ unicode-test hardening-fail-test $(am__append_1)
all: all-am
.SUFFIXES:
@@ -764,6 +765,13 @@ property-note-test.log: property-note-te
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unicode-test.log: unicode-test
+ @p='unicode-test'; \
+ b='unicode-test'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
debuginfod-test.log: debuginfod-test
@p='debuginfod-test'; \
diff -rupN annobin.orig/tests/trick-hello.s annobin-9.87/tests/trick-hello.s
--- annobin.orig/tests/trick-hello.s 1970-01-01 01:00:00.000000000 +0100
+++ annobin-9.87/tests/trick-hello.s 2021-11-10 14:35:15.947890504 +0000
@@ -0,0 +1,33 @@
+ .file "trick-hello.c"
+ .text
+ .section .rodata
+.LC0:
+ .string "hah, gotcha!"
+ .text
+ .globl heoll
+ .type heoll, %function
+heoll:
+.LFB0:
+ nop
+.LFE0:
+ .size heoll, .-heoll
+ .section .rodata
+.LC1:
+ .string "Hello world"
+ .text
+ .globl hello
+ .type hello, %function
+hello:
+.LFB1:
+ nop
+.LFE1:
+ .size hello, .-hello
+ .globl main
+ .type main, %function
+main:
+.LFB2:
+ nop
+.LFE2:
+ .size main, .-main
+ .ident "GCC: (GNU) 11.2.1 20210728 (Red Hat 11.2.1-1)"
+ .section .note.GNU-stack,"",%progbits
diff -rupN annobin.orig/tests/unicode-test annobin-9.87/tests/unicode-test
--- annobin.orig/tests/unicode-test 1970-01-01 01:00:00.000000000 +0100
+++ annobin-9.87/tests/unicode-test 2021-11-10 14:35:15.947890504 +0000
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# Copyright (c) 2021 Red Hat.
+#
+# This is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 3, or (at your
+# option) any later version.
+#
+# It is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+TEST_NAME=unicode
+. $srcdir/common.sh
+
+OPTS="-O2 -g -Wl,-z,now -pie -fpie"
+
+start_test
+
+$GCC $OPTS $srcdir/trick-hello.s -o trick-hello.exe
+if [ $? != 0 ];
+then
+ echo "unicode-test: FAIL: Could not compile test source file"
+ end_test
+ exit 1
+fi
+
+# Run annocheck
+
+OPTS="--ignore-gaps --skip-all --test-unicode"
+
+$ANNOCHECK trick-hello.exe $OPTS > unicode.out
+grep -e "FAIL: unicode" unicode.out
+if [ $? != 0 ];
+then
+ echo "unicode-test: FAIL: annocheck did not detect suspicious symbol names"
+ $ANNOCHECK trick-hello.exe $OPTS --verbose
+ end_test
+ exit 1
+fi
+
+end_test
+

View file

@ -1 +1 @@
SHA512 (annobin-9.60.tar.xz) = 52e9c322938ea75b6b85dbaec573128d090789c0a305a69c24b4e6bdd697c939fcc11006ed5880507970d288a48fe569820a9a92b423e520636ad6dc82e9235c
SHA512 (annobin-9.79.tar.xz) = cbb8406ad804c2fa3f49ca963c4fd85672a00d864f4ebd645019255b05ff3bc8f4fb07db1f28b8cd1667f09cf4eb23822b8b05f143c39c389433cacc09652d9f

View file

@ -32,6 +32,7 @@ PACKAGE="annobin"
rlJournalStart
rlPhaseStartTest
rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort"
rlRun "tool_v=$(annocheck --version | awk '/^annocheck: Version/ {print $3}')"
rlRun "__RPM=$(rpm --queryformat='%{name}\n' -qf $(man -w annobin))"
rlRun "rpm_v=$(rpm -q --queryformat='%{version}\n' $__RPM)"

View file

@ -33,7 +33,10 @@ PACKAGE="annobin"
rlJournalStart
rlPhaseStartTest
b=`mktemp`
rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b `rpm --eval "%build_cflags %build_ldflags"` -flto - "
rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort"
rlRun "cflags=\"$(rpm --eval '%build_cflags')\""
rlRun "ldflags=\"$(rpm --eval '%build_ldflags')\""
rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b $cflags $ldflags -flto - "
rlRun "annocheck -v $b"
rm $b
rlPhaseEnd

View file

@ -42,6 +42,8 @@ rlJournalStart
rlLogInfo "X_SCLS=$X_SCLS"
rlLogInfo "GCC=$GCC"
rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort"
# In case more than one devtoolset- or gcc-toolset -build package is
# installed (they can co-exist from the packaging persp, but their
# coexistence causes unexpected results with rpm macros), then we have

View file

@ -38,6 +38,7 @@ rlJournalStart
rlPhaseEnd
rlPhaseStartTest
rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort"
rlRun "echo 'int main() {return 0;}' | gcc -xc -fplugin=annobin -o /dev/null -"
rlPhaseEnd
rlJournalPrintText