Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 116968 - [QA] elfutils 'eu-nm' contains executable stacks -> nm.c generates trampolines for nested functions
Summary: [QA] elfutils 'eu-nm' contains executable stacks -> nm.c generates trampoline...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-28 04:57 UTC by Benno Schulenberg
Modified: 2006-01-05 17:04 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
elfutils-0.118-no-nested-functions.patch (elfutils-0.118-no-nested-functions.patch,1.92 KB, patch)
2005-12-28 13:45 UTC, SpanKY
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Benno Schulenberg 2005-12-28 04:57:59 UTC
During installation of dev-libs/elfutils this gets printed:

  QA Notice: the following files contain executable stacks
   [...]
  RWX --- --- usr/bin/eu-nm

This occurs both for version 0.108 and 0.118. (And both with gcc-3.3.6 and gcc-3.4.4, both hardened and vanilla.)

# emerge --info:

Gentoo Base System version 1.12.0_pre12
Portage 2.0.53 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r3, 2.6.14 i686)
=================================================================
System uname: 2.6.14 i686 AMD Athlon(tm) XP 2800+
dev-lang/python:     2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.20
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks notitles sandbox sfperms strict test userpriv usersandbox"
LINGUAS="en eo es nl"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
USE="x86 3dnow X aac aim alsa apm arts audiofile avi bash-completion berkdb bitmap-fonts bzip2 cdparanoia cdr crypt curl dga dio dri dv dvb eds emboss encode esd ethereal exif expat fam fbcon ffmpeg flac gdbm gif glut glx gpm gstreamer gtk gtk2 gtkhtml hardened icq idn imagemagick imap imlib jabber jpeg kde kdeenablefinal lcms libg++ libwww lm_sensors lua mad mbox memlimit mikmod mime mmap mmx mng mp3 mpeg nas ncurses nls nptl ogg openal opengl oscar pam pcre pdflib pic png python qt quicktime readline recode sasl scanner sdl slang sndfile sox speex spell sqlite sse ssl svg svga tcltk test theora threads tidy tiff truetype truetype-fonts type1-fonts unicode vcd vorbis win32codecs wnf xface xine xml xml2 xmms xpm xsl xv xvid yahoo zlib video_cards_via linguas_en linguas_eo linguas_es linguas_nl userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS
Comment 1 SpanKY gentoo-dev 2005-12-28 13:39:16 UTC
this is due to usage of nested functions in src/nm.c

show_symbols has two nested functions, sort_by_name and sort_by_address
Comment 2 SpanKY gentoo-dev 2005-12-28 13:45:37 UTC
Created attachment 75689 [details, diff]
elfutils-0.118-no-nested-functions.patch

here's a hackish patch to work around the issue
Comment 3 Kevin F. Quinn (RETIRED) gentoo-dev 2006-01-05 01:55:11 UTC
Looks good enough to me, since the additional data being used by the comparison function sort_by_name() doesn't change.

An ideal fix would pass the additional state data as a parameter to the comparison functions, but since the prototype for the function passed to qsort() is fixed and doesn't have a state pointer this can't be done short of modifying qsort.
Comment 4 SpanKY gentoo-dev 2006-01-05 17:04:41 UTC
added hack to portage then, thanks