Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 426424 - sys-apps/keyutils fails tests on hardened: Can't Determine Endianness
Summary: sys-apps/keyutils fails tests on hardened: Can't Determine Endianness
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords: TESTFAILURE
Depends on:
Blocks:
 
Reported: 2012-07-13 11:25 UTC by Tomáš "tpruzina" Pružina (amd64 [ex]AT)
Modified: 2017-01-19 16:52 UTC (History)
7 users (show)

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


Attachments
build.log + portage --info (build.log,15.60 KB, text/plain)
2012-07-13 11:26 UTC, Tomáš "tpruzina" Pružina (amd64 [ex]AT)
Details
keyutils-1.5.8 build.log (keyutils-1.5.8_build.log,5.86 KB, text/plain)
2014-02-13 05:54 UTC, Nikoli
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tomáš "tpruzina" Pružina (amd64 [ex]AT) 2012-07-13 11:25:32 UTC
make -j2 --load-average=3 --quiet test 
grep: /etc/rpm/macros.dist: No such file or directory
Running with session keyring RHTS/keyctl/30837
Joined session keyring: 1049311647
=== /var/tmp/portage/sys-apps/keyutils-1.5.5/work/keyutils-1.5.5/tests/keyctl/link/recursion/test.out ===
+++ Can't Determine Endianness
make[1]: *** [run] Error 1
make: *** [test] Error 2
emake failed
 * ERROR: sys-apps/keyutils-1.5.5 failed (test phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  85:  Called src_test
 *   environment, line 2023:  Called die
 * The specific snippet of code:
 *       LD_LIBRARY_PATH=${S} PATH="${S}:${PATH}" emake test || die
 * 
 * If you need support, post the output of `emerge --info '=sys-apps/keyutils-1.5.5'`,
 * the complete build log and the output of `emerge -pqv '=sys-apps/keyutils-1.5.5'`.
 * The complete build log is located at '/var/tmp/portage/sys-apps/keyutils-1.5.5/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-apps/keyutils-1.5.5/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-apps/keyutils-1.5.5/work/keyutils-1.5.5'
 * S: '/var/tmp/portage/sys-apps/keyutils-1.5.5/work/keyutils-1.5.5'

Reproducible: Always
Comment 1 Tomáš "tpruzina" Pružina (amd64 [ex]AT) 2012-07-13 11:26:52 UTC
Created attachment 318086 [details]
build.log + portage --info

please note that I'm using unstable toolchain here (@ago)
Comment 2 Xake 2012-12-17 08:58:53 UTC
I see this problem too, and this is because of hardened.

The script trying to determine the Endianess does the following in tests/toolbox.inc.sh:

endian=`file -L /proc/$$/exe`

if expr "$endian" : '.* MSB executable.*' >&/dev/null
then
    endian=BE
elif expr "$endian" : '.* LSB executable.*' >&/dev/null
then
    endian=LE
else
    echo -e "+++ \e[31;1mCan't Determine Endianness\e[0m"
    echo "+++ Can't Determine Endianness" >>$OUTPUTFILE
    exit 2
fi


The problem? The PIE-executables generated by the hardened toolchain is "LSB shared object".
So this testcase is broken if sys-apps/file is compiled with a hardened toolchain.

I would probably fix this by editing the script to look only for LSB of MSB.
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2014-01-04 23:37:49 UTC
Fixed by upstream in 1.5.8 (in tree now).
Comment 4 Nikoli 2014-02-13 05:54:16 UTC
Created attachment 370278 [details]
keyutils-1.5.8 build.log

Portage 2.2.7 (hardened/linux/amd64, gcc-4.7.3, glibc-2.17, 3.12.6-hardened-r4 x86_64)
=================================================================
KiB Mem:    65825872 total,    688616 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Thu, 13 Feb 2014 04:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r3
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo nikoli
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=corei7-avx -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0 /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=corei7-avx -O2 -pipe"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs cgroup collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync network-sandbox news parallel-fetch preserve-libs protect-owned sandbox sfperms strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/var/lib/layman/nikoli"
USE="X a52 aac acl acpi aes-ni alsa amd64 amr audiofile avx bash-completion bzip2 cairo caps cdda cddb cdio cdparanoia cdr celt cli consolekit cracklib crypt css cups cxx dbus djvu dri dts dv dvd dvdr encode exif fat ffmpeg flac fluidsynth fontconfig fortran gd geoip gif gimp gmp gphoto2 gpm graphviz gsm gstreamer gtk handbook hardened iconv icu id3tag idn ilbc imagemagick imap imlib ios ipod ipv6 jbig jpeg jpeg2k justify kde kipi lame laptop lcms libass libnotify libproxy libsamplerate lm_sensors lzma lzo mac mad matroska mikmod mmx mmxext modplug modules mp3 mp4 mpeg mtp multilib musepack musicbrainz ncurses networkmanager nls nptl nptlonly ntfs ogg openal openexr opengl openmp opus pam pango pax_kernel pcre pdf phonon plasma pm-utils png policykit postscript qt3support qt4 quicktime rar raw readline reiserfs replaygain rtmp sasl scanner semantic-desktop session sid smp sndfile socks5 speex spell sqlite sse sse2 sse3 sse4_1 ssl ssse3 startup-notification svg symlink sysfs taglib theora threads thumbnail tiff truetype tta udev udisks unicode upnp upower usb v4l v4l2 vcd vdpau vorbis vpx wavpack webkit webp wma wmf x264 xattr xcb xcomposite xface xinerama xml xmp xpm xscreensaver xtpax xv xvid xz zip zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="*" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-minimizer" LINGUAS="ru ru_RU en" NGINX_MODULES_HTTP="access auth_basic autoindex fastcgi gzip rewrite" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby20" USERLAND="GNU" VIDEO_CARDS="radeon r600 modesetting vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 5 Sean Santos 2014-07-23 03:19:41 UTC
It seems this was never fixed. I found a mention of a different fixed bug involving the number of spaces in the output of "file", but I don't see any version that understands the hardened output.
Comment 6 SpanKY gentoo-dev 2017-01-19 16:52:15 UTC
i've grabbed these fixes from upstream for the problem:
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=547bf7fbf276a24d17cfa2a21248cf7670e939f9