Bug 717194

Summary: elflint doesn't like .note.SuSE
Product: [Fedora] Fedora Reporter: Márton Németh <nm127>
Component: elfutilsAssignee: Mark Wielaard <mjw>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: fche, mjw, mnewsome, roland
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-02-18 13:00:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
logfile for "make check"
none
elfutils 0.152 portability patched "make check" log none

Description Márton Németh 2011-06-28 10:30:37 UTC
Created attachment 510247 [details]
logfile for "make check"

Description of problem:

I compiled elfutils 0.148 from source code. When I run "make check" I get the following message:

2 of 69 tests failed
Please report to http://bugzilla.redhat.com/bugzilla/


Version-Release number of selected component (if applicable):

https://fedorahosted.org/releases/e/l/elfutils/elfutils-0.148.tar.bz2

$ cat /etc/SuSE-release
SUSE Linux Enterprise Desktop 10 (i586)
VERSION = 10
PATCHLEVEL = 2
$ cat /proc/version
Linux version 2.6.16.60-0.59.1-bigsmp (geeko@buildhost) (gcc version 4.1.2 20070115 (SUSE Linux)) #1 SMP Thu Jan 14 18:30:10 UTC 2010


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 Mark Wielaard 2011-06-28 10:51:17 UTC
Two quick questions:
- Could you try against the latest release (0.152) or git trunk?
- What is the elf note '.note.SuSE'?

Comment 2 Márton Németh 2011-06-29 18:04:38 UTC
Compiling elfutils 0.152 from https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-0.152.tar.bz2 failed with the following warnings (treated as errors):

gcc -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"/home/emrtnme/usr/local/share/locale"'  -DDEBUGPRED=0 -DSRCDIR=\"/home/emrtnme/src/elfutils-0.152/src\" -DOBJDIR=\"/home/emrtnme/src/elfutils-0.152/src\" -I. -I.. -I. -I. -I../lib -I.. -I./../libelf -I./../libebl -I./../libdw -I./../libdwfl -I./../libasm   -std=gnu99 -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2   -g -O2 -MT readelf.o -MD -MP -MF .deps/readelf.Tpo -c -o readelf.o readelf.c
cc1: warnings being treated as errors
readelf.c: In function 'sort_listptr':
readelf.c:4360: warning: implicit declaration of function 'qsort_r'
readelf.c: In function 'print_debug_ranges_section':
readelf.c:4566: warning: comparison between signed and unsigned
readelf.c: In function 'print_debug_loc_section':
readelf.c:6337: warning: comparison between signed and unsigned
make[2]: *** [readelf.o] Error 1
make[2]: Leaving directory `/home/emrtnme/src/elfutils-0.152/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/emrtnme/src/elfutils-0.152'
make: *** [all] Error 2
$

I had no luck with git version on SLED 10.2 also:

$ git clone git://git.fedorahosted.org /git/elfutils.git
Cloning into elfutils...
remote: Counting objects: 17762, done.
remote: Compressing objects: 100% (4271/4271), done.
remote: Total 17762 (delta 14648), reused 16392 (delta 13460)
Receiving objects: 100% (17762/17762), 7.40 MiB | 850 KiB/s, done.
Resolving deltas: 100% (14648/14648), done.
$ cd elfutils
$ git log -1
commit 02a958bc2662c1c9c2d6b663742b9c8e720e25b2
Author: Mark Wielaard <mjw>
Date:   Mon May 30 17:23:57 2011 +0200

    strip.c (relocate): Make offset check overflow-proof.
$ automake
configure.ac:25: error: Autoconf version 2.63 or higher is required
configure.ac:25: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
automake: autoconf failed with exit status: 63
$ automake --version
automake (GNU automake) 1.9.6
Written by Tom Tromey <tromey>.

Copyright 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$

Comment 3 Roland McGrath 2011-06-29 19:57:22 UTC
To compile on such an old system, you need to apply elfutils-portability.patch.

Comment 4 Márton Németh 2011-06-29 20:40:19 UTC
Created attachment 510536 [details]
elfutils 0.152 portability patched "make check" log

Thanks for the hint, the source from https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-0.152.tar.bz2 patched with https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-portability.patch compiles on SLED 10.2. I attached the complete log: only one test case is failing and this is related to ".note.SuSE". I don't really know from where this comes.

Comment 5 Márton Németh 2011-06-29 20:55:16 UTC
It seems that the gcc version installed on SLED 10.2 creates the ".note.SuSE" section. I created a small test:

$ cat hello.c
#include <stdio.h>

int main() {
        printf("Hello World!\n");
        return 0;
}
$ gcc hello.c
$ ./a.out
Hello World!
$ objdump -h ./a.out

./a.out:     file format elf32-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .interp       00000013  08048134  08048134  00000134  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  1 .note.ABI-tag 00000020  08048148  08048148  00000148  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .note.SuSE    00000018  08048168  08048168  00000168  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .hash         0000002c  08048180  08048180  00000180  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .dynsym       00000060  080481ac  080481ac  000001ac  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  5 .dynstr       0000005e  0804820c  0804820c  0000020c  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  6 .gnu.version  0000000c  0804826a  0804826a  0000026a  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  7 .gnu.version_r 00000020  08048278  08048278  00000278  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  8 .rel.dyn      00000008  08048298  08048298  00000298  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  9 .rel.plt      00000018  080482a0  080482a0  000002a0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 10 .init         00000017  080482b8  080482b8  000002b8  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 11 .plt          00000040  080482d0  080482d0  000002d0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 12 .text         0000017c  08048310  08048310  00000310  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 13 .fini         0000001c  0804848c  0804848c  0000048c  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 14 .rodata       00000015  080484a8  080484a8  000004a8  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 15 .eh_frame     00000004  080484c0  080484c0  000004c0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 16 .ctors        00000008  080494c4  080494c4  000004c4  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 17 .dtors        00000008  080494cc  080494cc  000004cc  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 18 .jcr          00000004  080494d4  080494d4  000004d4  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 19 .dynamic      000000c8  080494d8  080494d8  000004d8  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 20 .got          00000004  080495a0  080495a0  000005a0  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 21 .got.plt      00000018  080495a4  080495a4  000005a4  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 22 .data         0000000c  080495bc  080495bc  000005bc  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 23 .bss          00000004  080495c8  080495c8  000005c8  2**2
                  ALLOC
 24 .comment      0000014c  00000000  00000000  000005c8  2**0
                  CONTENTS, READONLY
 25 .debug_aranges 00000058  00000000  00000000  00000718  2**3
                  CONTENTS, READONLY, DEBUGGING
 26 .debug_pubnames 00000025  00000000  00000000  00000770  2**0
                  CONTENTS, READONLY, DEBUGGING
 27 .debug_info   00000191  00000000  00000000  00000795  2**0
                  CONTENTS, READONLY, DEBUGGING
 28 .debug_abbrev 00000062  00000000  00000000  00000926  2**0
                  CONTENTS, READONLY, DEBUGGING
 29 .debug_line   00000137  00000000  00000000  00000988  2**0
                  CONTENTS, READONLY, DEBUGGING
 30 .debug_str    000000bb  00000000  00000000  00000abf  2**0
                  CONTENTS, READONLY, DEBUGGING
$ gcc --version
gcc (GCC) 4.1.2 20070115 (SUSE Linux)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ objdump --version
GNU objdump 2.16.91.0.5 20051219 (SUSE Linux)
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.

Comment 6 Mark Wielaard 2011-06-30 09:04:42 UTC
(In reply to comment #5)
> It seems that the gcc version installed on SLED 10.2 creates the ".note.SuSE"
> section.
> [...]
>   2 .note.SuSE    00000018  08048168  08048168  00000168  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, DATA

Could you figure out why SuSE adds this and what is in it?
Maybe readelf -x .note.SuSE already gives us a hint.
But hopefully it is documented somewhere.

Comment 7 Márton Németh 2011-07-04 06:58:10 UTC
$ readelf -x .note.SuSE a.out

Hex dump of section '.note.SuSE':
  0x08048168 45537553 45537553 00000004 00000005 ........SuSESuSE
  0x08048178                   010a0101 00000000 ........
$ readelf -v
GNU readelf 2.16.91.0.5 20051219 (SUSE Linux)
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
$

Comment 8 Mark Wielaard 2012-04-23 11:00:18 UTC
The .note.SuSE format is as follows from https://build.opensuse.org/package/view_file?file=glibc-suse-note.diff&package=glibc&project=openSUSE%3A11.2%3AUpdate%3ATest

+#define PROD_TYPE_BOX 0
+#define PROD_TYPE_SLES 1
+
+#define NOTE_VERSION 1
+#define PROD_TYPE PROD_TYPE_BOX
+#define PROD_MAJOR 10
+#define PROD_MINOR 2
+
+       .section ".note.SuSE", "a"
+       .p2align 2
+       .long 1f - 0f           /* name length */
+       .long 3f - 2f           /* data length */
+       .long 0x45537553        /* note type ("SuSE" in little endian) */
+0:     .asciz "SuSE"           /* vendor name */
+1:
+       .p2align 2
+2:                             /* Data */
+       .byte NOTE_VERSION      /* Version of following data */
+       .byte PROD_TYPE         /* product type (box, sles, nld, whatever) 
*/
+       .byte PROD_MAJOR        /* product version */
+       .byte PROD_MINOR        /* product minor version */
+3:
+       .p2align 2              /* pad out section */

Comment 9 Fedora End Of Life 2013-04-03 17:23:54 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19

Comment 10 Fedora End Of Life 2015-01-09 16:42:20 UTC
This message is a notice that Fedora 19 is now at end of life. Fedora 
has stopped maintaining and issuing updates for Fedora 19. It is 
Fedora's policy to close all bug reports from releases that are no 
longer maintained. Approximately 4 (four) weeks from now this bug will
be closed as EOL if it remains open with a Fedora 'version' of '19'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 19 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 11 Fedora End Of Life 2015-02-17 13:47:44 UTC
Fedora 19 changed to end-of-life (EOL) status on 2015-01-06. Fedora 19 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 12 Jan Kurik 2015-07-15 15:15:25 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 23 development cycle.
Changing version to '23'.

(As we did not run this process for some time, it could affect also pre-Fedora 23 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 23 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora23

Comment 13 Fedora End Of Life 2016-11-24 10:32:33 UTC
This message is a reminder that Fedora 23 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 23. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '23'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 23 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 14 Mark Wielaard 2019-02-18 13:00:50 UTC
It still doesn't like it, but the ELF note hasn't been used for a couple of years now. Last usage was in SLE11. General Support of SLE11 ends March 2019. So lets just close this now.