]> sourceware.org Git - annobin.git/commitdiff
Various minor bugfixes found whilst attempting to build an rpm
authorNick Clifton <nickc@redhat.com>
Wed, 6 Jun 2018 16:26:31 +0000 (17:26 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 6 Jun 2018 16:26:31 +0000 (17:26 +0100)
annocheck/annocheck.c
annocheck/hardened.c
configure
configure.ac
doc/annobin.1
doc/annobin.info
doc/annobin.texi
doc/annocheck.1
tests/hardening-test

index 43cf782538ca1cff06b5fb0371c006ea90e38593..cbf816fc90b63573c0c27241d10625dbaf2af04b 100644 (file)
@@ -487,7 +487,7 @@ run_checkers (const char * filename, int fd, Elf * elf)
          seg.phdr = gelf_getphdr (elf, cnt, & mem);
          seg.number = cnt;
 
-         einfo (VERBOSE2, "%s: considering segment %lu", filename, cnt);
+         einfo (VERBOSE2, "%s: considering segment %lu", filename, (unsigned long) cnt);
 
          for (checker = first_seg_checker; checker != NULL; checker = ((checker_internal *)(checker->internal))->next_seg)
            {
@@ -506,7 +506,7 @@ run_checkers (const char * filename, int fd, Elf * elf)
                  ret &= checker->check_seg (& data, & seg);
                }
              else
-               einfo (VERBOSE2, "is not interested in segment %lu", cnt);
+               einfo (VERBOSE2, "is not interested in segment %lu", (unsigned long) cnt);
 
              pop_component ();
            }
@@ -828,7 +828,7 @@ find_symbol_addr_using_dwarf (eu_checksec_data * data, Dwarf * dwarf, Dwarf_Die
       Dwarf_Line * line;
       size_t       indx = 1;
 
-      einfo (VERBOSE2, "Scanning %ld lines in the DWARF line table", nlines);
+      einfo (VERBOSE2, "Scanning %ld lines in the DWARF line table", (unsigned long) nlines);
       while ((line = dwarf_onesrcline (lines, indx)) != NULL)
        {
          Dwarf_Addr addr;
index 277adaa12256dd8e7cf9b7338fef1c2790cff750..37ef23753349b2a428f4a2dbd23db86d877cfe49 100644 (file)
@@ -20,6 +20,8 @@
 /* Set by the constructor.  */
 static bool disabled = false;
 
+static bool ignore_gaps = false;
+
 /* These are initialised on a per-input-file basis by start().  */
 static bool i686_found;
 static bool x86_found;
@@ -259,12 +261,15 @@ walk_notes (eu_checksec_data *     data,
 
              fake_note.start = note_data->prev_end + 1;
              fake_note.end   = start;
-             
-             /* Note - we ignore gaps at the start and end of the file.  These are
-                going to be from the crt code which does not need to be chacked.  */
-             einfo (VERBOSE, "%s: GAP:  (%s) in annobin notes",
-                    data->filename, get_component_name (data, sec, & fake_note, true, prefer_func_name));
-             gap_detected = true;
+
+             if (! ignore_gaps)
+               {
+                 /* Note - we ignore gaps at the start and end of the file.  These are
+                    going to be from the crt code which does not need to be chacked.  */
+                 einfo (VERBOSE, "%s: GAP:  (%s ?) in annobin notes",
+                        data->filename, get_component_name (data, sec, & fake_note, true, prefer_func_name));
+                 gap_detected = true;
+               }
            }
 
          note_data->prev_end = end;
@@ -1015,7 +1020,9 @@ usage (void)
   einfo (INFO, "  Add a machine readable output mode");
   einfo (INFO, "This tool is enabled by default.  This can be changed by:");
   einfo (INFO, "  --disable-hardened  Disables the hardening checker");
-  einfo (INFO, "  --enable-hardened   Reenables the hardening checker");  
+  einfo (INFO, "  --enable-hardened   Reenables the hardening checker");
+  einfo (INFO, "The following option can be used to disable some checks:");
+  einfo (INFO, "  --ignore-gaps       Ignores gaps in the annobin data");
 }
 
 static bool
@@ -1033,6 +1040,12 @@ process_arg (const char * arg, const char ** argv, const uint argc, uint * next)
       return true;
     }
 
+  if (streq (arg, "--ignore-gaps"))
+    {
+      ignore_gaps = true;
+      return true;
+    }
+
   return false;
 }
 
index 0a020871850a3364d76a5028159c937f0719622c..abd0a4d600f2e427d6efb00fa9f24147d32f532d 100755 (executable)
--- a/configure
+++ b/configure
@@ -15987,7 +15987,7 @@ case ${target} in
   powerpc*-*-*)
     target_plugin="powerpc.annobin.lo"
     ;;
-  x86_64-*-*)
+  *86-*-* | x86_64-*-*)
     target_plugin="x86_64.annobin.lo"
     ;;
   *)
index 8e0a320e65ad1c51d04d51757e619b2d7c5dd5c7..5afedb84e37d9680d633181464009fd218ec9c5d 100644 (file)
@@ -33,7 +33,7 @@ case ${target} in
   powerpc*-*-*)
     target_plugin="powerpc.annobin.lo"
     ;;
-  x86_64-*-*)
+  *86-*-* | x86_64-*-*)
     target_plugin="x86_64.annobin.lo"
     ;;
   *)
index a8da3963be75889dec1d00471819aa96a548e744..d9a9b35145c6ad4767099ff8e606d327828b2a49 100644 (file)
@@ -155,7 +155,7 @@ one special function which was compiled with \fB\-O0\fR instead.
 .PP
 The range information is useful because it allows third parties to
 examine the binary and find out if its construction was consistent.
-Ie that there are no gaps in the recorded information, and no special
+\&\s-1IE\s0 that there are no gaps in the recorded information, and no special
 cases where a required feature was not active.
 .PP
 The system works by adding a special section to the application
index bd74b18c4722b4d8d656a20eed3de8c83844e374..88502e05483d7f5d016ac442c630e7b709ec027c 100644 (file)
@@ -38,7 +38,7 @@ the section entitled "GNU Free Documentation License".
 * Introduction::    What is Binary Annotation ?
 * Invocation::      How to add Binary Annotations to your application.
 * Examining::       How to examine the information stored in the binary.
-* Annocheck::       Analyzing your applications's compilation.
+* Annocheck::       Analysing your application's compilation.
 * Legacy Scripts::  Other ways to use the information stored in the binary.
 * GNU FDL::         GNU Free Documentation License
 
@@ -62,7 +62,7 @@ was compiled with the '-O2' option except for one special function which
 was compiled with '-O0' instead.
 
    The range information is useful because it allows third parties to
-examine the binary and find out if its construction was consistent.  Ie
+examine the binary and find out if its construction was consistent.  IE
 that there are no gaps in the recorded information, and no special cases
 where a required feature was not active.
 
@@ -227,7 +227,6 @@ the table below.
 * The PIC Encoding::      Encoding Position Independence
 * The GOW Encoding::      Encoding Optimization and Debugging Levels
 * The CF Encoding::       Encoding Control Flow Protection
-* The CET Encoding::      Encoding Control Flow Enforcement Technology
 * The ENUM Encoding::     Encoding the Size of Enumerations
 
 \1f
@@ -339,7 +338,7 @@ stored as a bit field with the bits having the following meanings:
 they can be used in future extensions to the specification.
 
 \1f
-File: annobin.info,  Node: The CF Encoding,  Next: The CET Encoding,  Prev: The GOW Encoding,  Up: Examining
+File: annobin.info,  Node: The CF Encoding,  Next: The ENUM Encoding,  Prev: The GOW Encoding,  Up: Examining
 
 3.5 Encoding Control Flow Protection
 ====================================
@@ -368,35 +367,9 @@ be confused with a NUL-byte to indicate the end of a string), the value
 stored is biased by 1.
 
 \1f
-File: annobin.info,  Node: The CET Encoding,  Next: The ENUM Encoding,  Prev: The CF Encoding,  Up: Examining
+File: annobin.info,  Node: The ENUM Encoding,  Prev: The CF Encoding,  Up: Examining
 
-3.6 Encoding Control Flow Enforcement Technology
-================================================
-
-Records the setting of the Control Flow Enforcement Technology options.
-(These are specific to the x86_64 port of gcc).  The value is a sequence
-of bytes that indicate various different flags:
-
-'byte 0'
-     The setting of the '-mcet' option.  This is either 1 (not set) or 2
-     (set).
-
-'byte 1'
-     The setting of the '-mcet-switch' option.  This is either 1 (not
-     set) or 2 (set).
-
-'byte 2'
-     The setting of the '-mibt' option.  This is either 1 (not set) or 2
-     (set).
-
-'byte 3'
-     The setting of the '-mshstk' option.  This is either 1 (not set) or
-     2 (set).
-
-\1f
-File: annobin.info,  Node: The ENUM Encoding,  Prev: The CET Encoding,  Up: Examining
-
-3.7 Encoding the Size of Enumerations
+3.6 Encoding the Size of Enumerations
 =====================================
 
 Record the value of the '-fshort-enums' option.  Possible values are:
@@ -410,7 +383,7 @@ Record the value of the '-fshort-enums' option.  Possible values are:
 \1f
 File: annobin.info,  Node: Annocheck,  Next: Legacy Scripts,  Prev: Examining,  Up: Top
 
-4 Analyzing an application's compilation.
+4 Analysing an application's compilation.
 *****************************************
 
      annocheck
@@ -423,7 +396,7 @@ File: annobin.info,  Node: Annocheck,  Next: Legacy Scripts,  Prev: Examining,
        [-prefix=TEXT]
        FILE...
 
-   The 'annocheck' program can analyze programs and report information
+   The 'annocheck' program can analyse programs and report information
 about them.  It is designed to be modular, with a set of self-contained
 tools providing the checking functionality.  Currently the following
 tools are implemented:
@@ -462,7 +435,7 @@ regardless of which tools are enabled.
      information.
 
 '--version'
-     Report the verion of the tool and then exit.
+     Report the version of the tool and then exit.
 
 \1f
 File: annobin.info,  Node: Hardened,  Next: Built-By,  Up: Annocheck
@@ -489,7 +462,7 @@ document.  Currently the tool checks for these features:
      execute permission bits set.
 
 'No text relocations'
-     The should be no relocations agains executable code.
+     The should be no relocations against executable code.
 
 'Correct runpaths'
      The runpath information used to locate shared libraries at runtime
@@ -533,6 +506,9 @@ document.  Currently the tool checks for these features:
 '--disable-hardened'
      Disable the tool.
 
+'--ignore-gaps'
+     Ignore gaps in the annobin data.
+
 \1f
 File: annobin.info,  Node: Built-By,  Prev: Hardened,  Up: Annocheck
 
@@ -554,13 +530,13 @@ behaviour:
      results will be returned.
 
 '--tool=NAME'
-     This option can be used to restict the output to only those files
+     This option can be used to restrict the output to only those files
      which were built by a specific tool.  This can be useful when
      scanning a directory full of files searching for those built by a
      particular compiler.
 
 '--nottool=NAME'
-     This option can be used to restict the output to only those files
+     This option can be used to restrict the output to only those files
      which were not built by a specific tool.  This can be useful when
      scanning a directory full of files searching for those that were
      not built by a particular compiler.
@@ -575,7 +551,7 @@ The 'annobin' package includes some example scripts that demonstrate how
 the binary information can be used.
 
    _NOTE_: These scripts are now redundant, their functionality having
-been sussumed into the 'annocheck' program.  However they are still
+been subsumed into the 'annocheck' program.  However they are still
 useful as examples of how the annobin data can be consumed, so they are
 still included in the annobin sources.
 
@@ -1496,24 +1472,23 @@ their use in free software.
 \1f
 Tag Table:
 Node: Top\7f698
-Node: Introduction\7f1675
-Node: Invocation\7f3758
-Node: Examining\7f7994
-Node: The Version Encoding\7f10467
-Node: The STACK Encoding\7f10858
-Node: The PIC Encoding\7f11456
-Node: The GOW Encoding\7f12084
-Node: The CF Encoding\7f13532
-Node: The CET Encoding\7f14603
-Node: The ENUM Encoding\7f15398
-Node: Annocheck\7f15756
-Node: Hardened\7f17413
-Node: Built-By\7f19554
-Node: Legacy Scripts\7f20804
-Node: Who Built Me\7f21571
-Node: ABI Checking\7f24331
-Node: Hardening Checks\7f26445
-Node: Checking Archives\7f30531
-Node: GNU FDL\7f32953
+Node: Introduction\7f1674
+Node: Invocation\7f3757
+Node: Examining\7f7993
+Node: The Version Encoding\7f10395
+Node: The STACK Encoding\7f10786
+Node: The PIC Encoding\7f11384
+Node: The GOW Encoding\7f12012
+Node: The CF Encoding\7f13460
+Node: The ENUM Encoding\7f14532
+Node: Annocheck\7f14889
+Node: Hardened\7f16547
+Node: Built-By\7f18744
+Node: Legacy Scripts\7f19996
+Node: Who Built Me\7f20763
+Node: ABI Checking\7f23523
+Node: Hardening Checks\7f25637
+Node: Checking Archives\7f29723
+Node: GNU FDL\7f32145
 \1f
 End Tag Table
index 887f605672a2a04803a817fbf01921864049c3da..e4a789e078068ab81e990679508c124465e2f8d4 100644 (file)
@@ -91,7 +91,7 @@ in the section entitled ``GNU Free Documentation License''.
 * Introduction::    What is Binary Annotation ?
 * Invocation::      How to add Binary Annotations to your application.
 * Examining::       How to examine the information stored in the binary.
-* Annocheck::       Analyzing your applications's compilation.
+* Annocheck::       Analysing your application's compilation.
 * Legacy Scripts::  Other ways to use the information stored in the binary.
 * GNU FDL::         GNU Free Documentation License
 @end menu
@@ -118,7 +118,7 @@ one special function which was compiled with @option{-O0} instead.
 
 The range information is useful because it allows third parties to
 examine the binary and find out if its construction was consistent.
-Ie that there are no gaps in the recorded information, and no special
+IE that there are no gaps in the recorded information, and no special
 cases where a required feature was not active.
 
 The system works by adding a special section to the application
@@ -294,7 +294,6 @@ included in the table below.
 * The PIC Encoding::      Encoding Position Independence
 * The GOW Encoding::      Encoding Optimization and Debugging Levels
 * The CF Encoding::       Encoding Control Flow Protection
-* The CET Encoding::      Encoding Control Flow Enforcement Technology
 * The ENUM Encoding::     Encoding the Size of Enumerations
 @end menu
 
@@ -436,31 +435,6 @@ Note - in order to avoid storing a value of 0 in the note (which can
 be confused with a NUL-byte to indicate the end of a string), the
 value stored is biased by 1.
 
-@c -----------------------------------------------------------------
-@node The CET Encoding
-@section Encoding Control Flow Enforcement Technology
-Records the setting of the Control Flow Enforcement Technology
-options.  (These are specific to the x86_64 port of gcc).  The value
-is a sequence of bytes that indicate various different flags:
-
-@table @code
-@item byte 0
-The setting of the @option{-mcet} option.  This is either 1 (not set)
-or 2 (set).
-
-@item byte 1
-The setting of the @option{-mcet-switch} option.  This is either 1
-(not set) or 2 (set).
-
-@item byte 2
-The setting of the @option{-mibt} option.  This is either 1 (not set)
-or 2 (set).
-
-@item byte 3
-The setting of the @option{-mshstk} option.  This is either 1 (not
-set) or 2 (set).
-@end table
-
 @c -----------------------------------------------------------------
 @node The ENUM Encoding
 @section Encoding the Size of Enumerations
@@ -477,9 +451,9 @@ The @option{-fshort-enums} option has not been enabled.
 
 @c -----------------------------------------------------------------
 @node Annocheck
-@chapter Analyzing an application's compilation.
+@chapter Analysing an application's compilation.
 
-@c man title annocheck Analyzing an application's compilation.
+@c man title annocheck Analysing an application's compilation.
 
 @smallexample
 @c man begin SYNOPSIS annocheck
@@ -497,7 +471,7 @@ annocheck
 
 @c man begin DESCRIPTION annocheck
 
-The @command{annocheck} program can analyze programs and report
+The @command{annocheck} program can analyse programs and report
 information about them.  It is designed to be modular, with a set of
 self-contained tools providing the checking functionality.
 Currently the following tools are implemented:
@@ -538,7 +512,7 @@ Produce informational messages whilst working.  Repeat for more
 information.
 
 @item --version
-Report the verion of the tool and then exit.
+Report the version of the tool and then exit.
 
 @end table
 
@@ -570,7 +544,7 @@ No program segment should have all three of the read, write and
 execute permission bits set.
 
 @item No text relocations
-The should be no relocations agains executable code.
+The should be no relocations against executable code.
 
 @item Correct runpaths
 The runpath information used to locate shared libraries at runtime
@@ -618,6 +592,9 @@ Enable the tool if it was previously disabled.
 
 @item --disable-hardened
 Disable the tool.
+
+@item --ignore-gaps
+Ignore gaps in the annobin data.
 @end table
 
 @c man end
@@ -646,13 +623,13 @@ the @option{--all} option is enabled then all successful results will
 be returned.
 
 @item --tool=@var{name}
-This option can be used to restict the output to only those files
+This option can be used to restrict the output to only those files
 which were built by a specific tool.  This can be useful when scanning
 a directory full of files searching for those built by a particular
 compiler.
 
 @item --nottool=@var{NAME}
-This option can be used to restict the output to only those files
+This option can be used to restrict the output to only those files
 which were not built by a specific tool.  This can be useful when
 scanning a directory full of files searching for those that were not
 built by a particular compiler.
@@ -669,7 +646,7 @@ The @command{annobin} package includes some example scripts that
 demonstrate how the binary information can be used.
 
 @emph{NOTE}: These scripts are now redundant, their functionality
-having been sussumed into the @command{annocheck} program.  However
+having been subsumed into the @command{annocheck} program.  However
 they are still useful as examples of how the annobin data can be
 consumed, so they are still included in the annobin sources.
 
index 7ca7d97ef6bd9322cb6b96688ccfbf71258e911d..ee1437f4b415c22b4bdbbd66df8f2c4efeacc0a3 100644 (file)
 .if n .ad l
 .nh
 .SH "NAME"
-annocheck \- Analyzing an application's compilation.
+annocheck \- Analysing an application's compilation.
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
 annocheck
@@ -149,7 +149,7 @@ annocheck
   \fIfile\fR...
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
-The \fBannocheck\fR program can analyze programs and report
+The \fBannocheck\fR program can analyse programs and report
 information about them.  It is designed to be modular, with a set of
 self-contained tools providing the checking functionality.
 Currently the following tools are implemented:
@@ -190,7 +190,7 @@ information.
 .ie n .IP """\-\-version""" 4
 .el .IP "\f(CW\-\-version\fR" 4
 .IX Item "--version"
-Report the verion of the tool and then exit.
+Report the version of the tool and then exit.
 .PP
 This tool checks that the specified files were compiled with the
 required security hardening options, as outlined in the elf-policy
@@ -216,7 +216,7 @@ execute permission bits set.
 .ie n .IP """No text relocations""" 4
 .el .IP "\f(CWNo text relocations\fR" 4
 .IX Item "No text relocations"
-The should be no relocations agains executable code.
+The should be no relocations against executable code.
 .ie n .IP """Correct runpaths""" 4
 .el .IP "\f(CWCorrect runpaths\fR" 4
 .IX Item "Correct runpaths"
@@ -272,6 +272,10 @@ Enable the tool if it was previously disabled.
 .el .IP "\f(CW\-\-disable\-hardened\fR" 4
 .IX Item "--disable-hardened"
 Disable the tool.
+.ie n .IP """\-\-ignore\-gaps""" 4
+.el .IP "\f(CW\-\-ignore\-gaps\fR" 4
+.IX Item "--ignore-gaps"
+Ignore gaps in the annobin data.
 .PP
 The \fIbuilt-by\fR tool is disabled by default, but it can be enabled
 by the command line option \fB\-\-enable\-builtby\fR.  The tool
@@ -291,14 +295,14 @@ be returned.
 .ie n .IP """\-\-tool=\fIname\fP""" 4
 .el .IP "\f(CW\-\-tool=\f(CIname\f(CW\fR" 4
 .IX Item "--tool=name"
-This option can be used to restict the output to only those files
+This option can be used to restrict the output to only those files
 which were built by a specific tool.  This can be useful when scanning
 a directory full of files searching for those built by a particular
 compiler.
 .ie n .IP """\-\-nottool=\fINAME\fP""" 4
 .el .IP "\f(CW\-\-nottool=\f(CINAME\f(CW\fR" 4
 .IX Item "--nottool=NAME"
-This option can be used to restict the output to only those files
+This option can be used to restrict the output to only those files
 which were not built by a specific tool.  This can be useful when
 scanning a directory full of files searching for those that were not
 built by a particular compiler.
index 632daaa6e02a4b88ef102958c2dd7475dd2155f1..dde73f2c150680d8d139cedd4f210f92bf06c920 100755 (executable)
@@ -20,50 +20,54 @@ OBJCOPY=objcopy
 
 PLUGIN=../plugin/.libs/annobin.so
 
-OPTS="-c -O2 -D_FORTIFY_SOURCE=2 -fpie -Wall -fstack-protector-strong -D_GLIBCXX_ASSERTIONS -fstack-clash-protection -fcf-protection"
+OPTS="-c -O2 -D_FORTIFY_SOURCE=2 -fpie -Wall -fstack-protector-strong -D_GLIBCXX_ASSERTIONS -fstack-clash-protection"
+EXTRA_OPTS="-fcf-protection -mstackrealign"
 
-$GCC -fplugin=$PLUGIN -g $OPTS  $srcdir/hello_hard.c 
+$GCC -fplugin=$PLUGIN -g $OPTS $EXTRA_OPTS  $srcdir/hello_hard.c 
 if [ $? != 0 ];
 then
     echo "Compiler might not support -fcf-protection, retrying without it"
-    OPTS="-c -O2 -D_FORTIFY_SOURCE=2 -fpie -Wall -fstack-protector-strong -D_GLIBCXX_ASSERTIONS -fstack-clash-protection"
-    $GCC -fplugin=$PLUGIN -g $OPTS  $srcdir/hello_hard.c 
+    EXTRA_OPTS="-mstackrealign"
+    $GCC -fplugin=$PLUGIN -g $OPTS  $EXTRA_OPTS $srcdir/hello_hard.c 
     if [ $? != 0 ];
     then
-       exit 0
+       echo "Compiler might not support -mstackrealign, retrying without it"
+       EXTRA_OPTS="-fcf-protection"
+       $GCC -fplugin=$PLUGIN -g $OPTS $EXTRA_OPTS $srcdir/hello_hard.c 
+       if [ $? != 0 ];
+       then
+           echo "Compiler might not support either -fcf-protection or -mstackrealign, retrying without both"
+           EXTRA_OPTS=""
+           $GCC -fplugin=$PLUGIN -g $OPTS $EXTRA_OPTS $srcdir/hello_hard.c 
+           if [ $? != 0 ];
+           then
+               echo "Failed :-("
+               exit 1
+           fi
+       fi
     fi
 fi
 
-$GCC -fplugin=$PLUGIN -O3 $OPTS $srcdir/hello2.c 
+$GCC -fplugin=$PLUGIN -O3 $OPTS $EXTRA_OPTS $srcdir/hello2.c 
 
-$GCC -fplugin=$PLUGIN -g3 $OPTS $srcdir/hello3.c
+$GCC -fplugin=$PLUGIN -g3 $OPTS $EXTRA_OPTS $srcdir/hello3.c
 
-$GCC -fplugin=$PLUGIN $OPTS -shared $srcdir/hello_lib.c -o libhello.so
+$GCC -fplugin=$PLUGIN $OPTS $EXTRA_OPTS -shared $srcdir/hello_lib.c -o libhello.so
 
-$GCC -fplugin=$PLUGIN -nostartfiles -e 0 \
+# Link without system files as these may not have been hardened.
+$GCC -fplugin=$PLUGIN \
+     -nostartfiles -nostdlib -Wl,-e,0 \
+     -Wl,--defsym=__stack_chk_fail=0 \
+     -Wl,--defsym=__stack_chk_fail_local=0 \
+     -Wl,--defsym=__stack_chk_guard=0 \
+     -Wl,--defsym=__printf_chk=0 \
      -L . -pie \
      -Wl,-z,now,-z,relro \
  hello_hard.o hello2.o hello3.o -lhello -o hardening-test.exe
 
 # $OBJCOPY --merge-notes hardening-test.exe hardening-test-merged.exe
 
-# The --skip=... options are here to skip the checks that require a version
-# 2.30 (or later) readelf, and which were generated by a plugin attached to
-# a version 8 (or later) gcc.  Since neither of these versions of the tools
-# are in common use (yet) the checks are disabled.
-# The other hardening properties can be deduced by the hardened script
-# without needing the notes produced by annobin, so that is why the test is
-# allowed to proceed.
-# FIXME: Remove the --skip= options once readelf and gcc have been updated.
-#
-# The --skip-pic and --skip-stack options are here because /usr/lib64/libc_nonshared.a(elf-init.oS)
-# is built with -fPIC and -fno-stack-protection.  /usr/lib64/Scrti.o is built
-# with -fpie which makes the pic test impossible.
-
-# $srcdir/../scripts/hardened  --readelf=$READELF \
-#   --skip=fort -k=operator --skip=clash --skip=cf -k=cet \
-#   --skip=pic --skip=stack --skip=realign \
-#   hardening-test.exe
+# The s390 and PPC targets always create some gaps.  Have not found out why...
 
-../annocheck/annocheck hardening-test.exe
+../annocheck/annocheck -v --ignore-gaps hardening-test.exe
 
This page took 0.049534 seconds and 5 git commands to generate.