Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 485310 - sys-apps/kmod-15 with CPP="clang -E" - fails to build due to gcc version check
Summary: sys-apps/kmod-15 with CPP="clang -E" - fails to build due to gcc version check
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: udev maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: systemwide-clang
  Show dependency tree
 
Reported: 2013-09-18 14:31 UTC by eroen
Modified: 2013-09-19 13:58 UTC (History)
1 user (show)

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


Attachments
build.log showing failure (20130918-143359.log,1.21 KB, text/plain)
2013-09-18 14:35 UTC, eroen
Details
build.log with modified ebuild (20130918-150339.log,51.15 KB, text/plain)
2013-09-18 15:11 UTC, eroen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description eroen 2013-09-18 14:31:58 UTC
Building sys-apps/kmod with clang as compiler does not work, because the ebuild dies after a compiler version check. Afaict, there are no problems with the actual source code or build system.

Reproducible: Always

Steps to Reproduce:
1. emerge sys-devel/llvm[clang]
2. CPP="clang -E" CC=clang emerge -1 sys-apps/kmod
Actual Results:  
 * ERROR: sys-apps/kmod-15::gentoo failed (setup phase):
 *   At least sys-devel/gcc >= 4.6 is required to build sys-apps/kmod.
 * 
 * Call stack:
 *     ebuild.sh, line  93:  Called pkg_setup
 *   environment, line 2946:  Called die
 * The specific snippet of code:
 *       version_is_at_least 4.6 $(gcc-version) || die "At least sys-devel/gcc >= 4.6 is required to build ${CATEGORY}/${PN}."

Expected Results:  
kmod should build and install properly.

Recent versions of clang report gcc-compatibility version 4.2.0. A different method for determining compiler capabilities (wrt. bug 481020) might be in order?
Comment 1 eroen 2013-09-18 14:35:23 UTC
Created attachment 358934 [details]
build.log showing failure
Comment 2 eroen 2013-09-18 14:36:32 UTC
emerge --info llvm kmod
Portage 2.2.6 (default/linux/amd64/13.0/desktop, gcc-4.8.1, glibc-2.17, 3.10.4-e4-occam1+ x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.10.4-e4-occam1+-x86_64-Intel-R-_Core-TM-_i5-2520M_CPU_@_2.50GHz-with-gentoo-2.2
KiB Mem:     8011024 total,    789384 free
KiB Swap:   16777212 total,  16295012 free
Timestamp of tree: Wed, 18 Sep 2013 09:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0-r1000::progress
dev-lang/python:          2.7.6_pre20130915::progress, 3.2.5-r2, 3.3.2-r2
dev-util/ccache:          3.1.9-r1
dev-util/cmake:           2.8.11.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.6, 1.13.4, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.6.4, 4.7.3, 4.8.1
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.11 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo gentoo-haskell progress java-overlay glc hasufell roslin eroen
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=corei7-avx -O3 -pipe 	-flto 	-floop-interchange -floop-strip-mine -floop-block -fgraphite-identity"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=corei7-avx -O3 -pipe 	-flto 	-floop-interchange -floop-strip-mine -floop-block -fgraphite-identity"
DISTDIR="/var/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=4 --autounmask --with-bdeps=y --quiet-build --nospinner"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict test test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="/var/distfiles-falcon http://mirrors.eu.kernel.org/gentoo/ http://mirrors.kernel.org/gentoo/ http://distfiles.gentoo.org "
LANG="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/var/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-9"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude ChangeLog* --exclude /metadata/cache/ --stats --delay-updates"
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"
PORTAGE_TMPDIR="/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/haskell /var/lib/layman/progress /var/lib/layman/java-overlay /var/lib/layman/glc /var/lib/layman/hasufell /var/lib/layman/roslin /usr/local/portage"
SYNC="rsync://10.0.0.5/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 apng audio audiofile avresample avx bash-completion bdf berkdb bluray bzip2 cairo caps cb cdda cdparanoia cdr cjk cli corefonts cracklib crypt cups curl cxx ddate declarative detex device-mapper dga dia djvu dmapi dri dts dvd dvdr dvi2tty dvipdfm ebook egl emboss encode exif fam ffmpeg fftw firefox fits flac fontconfig fortran g3dvl gallium gbm gcrypt gdbm gif gimp git glib glibc-omitfp gmp gnuplot gnutls gold gpm graphics graphviz gs gstreamer gtk gtk3 highlight hscolour iconv icu id3tag idn imagemagick imlib inotify iproute2 ipv6 jbig jpeg jpeg2k jpg json kde kde4 kpathsea latex lcms libffi libssh2 libv4l luatex lvm lvm2 lzma lzo mad man metric mikmod mkv mms mmx mng modules mp3 mp4 mpeg mpg123 mudflap multilib multimedia musepack ncurses netlink nptl nut ocr odbc offensive ogg opengl openmp openvg optimization optimized-qmake opus pam pango pch pcre pdf pgf phonon png postscript ppds private-headers pstricks pth publishers pulseaudio python3 qt3support qt4 raw readline samba sbsms scanner science sdl session smp sna sndfile speex spell sqlite sse sse2 sse3 sse4 sse4_1 sse4_2 ssh ssl ssse3 svg t1lib tcpd tesseract theora threads tiff tls truetype udev unicode usb v4l v4l2 vaapi video vorbis vpx webp wmf wxwidgets x264 xanim xattr xcb xcomposite xetex xfs xft xinerama xml xmlpatterns xorg xosd xpm xrandr xv xvid xvmc xz zlib zsh-completion" ABI_X86="32 64" 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="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CURL_SSL="gnutls" DRACUT_MODULES="btrfs caps cifs crypt crypt-gpg dash iscsi lvm nfs ssh-client 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 ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="mouse keyboard evdev synaptics wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en gb us en_US en_GB eng jbo no nb nn no_NO nb_NO nn_NO nor" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3 php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2 python3_3" QEMU_SOFTMMU_TARGETS="x86_64 i386" RUBY_TARGETS="ruby18" SANE_BACKENDS="plustek" USERLAND="GNU" VIDEO_CARDS="intel i965" 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"
USE_PYTHON="2.7 3.2 3.3"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND

=================================================================
                        Package Settings
=================================================================

sys-devel/llvm-3.3-r1 was built with the following:
USE="clang gold libffi static-analyzer test -debug -doc -multitarget -ocaml -python -udis86" ABI_X86="32 64 -x32" PYTHON_TARGETS="python2_7 -pypy2_0 -python2_6" VIDEO_CARDS="-radeon"
CFLAGS="-march=corei7-avx -Ofast -pipe"
CXXFLAGS="-march=corei7-avx -Ofast -pipe"


sys-apps/kmod-15 was built with the following:
USE="lzma openrc tools zlib -debug -doc -static-libs"
Comment 3 eroen 2013-09-18 15:11:58 UTC
Created attachment 358938 [details]
build.log with modified ebuild

With this patch to the ebuild, things seem to behave more agreeably in the cases I was able to test.

diff --git a/sys-apps/kmod/kmod-15.ebuild b/sys-apps/kmod/kmod-15.ebuild
index 2b92e57..efaff5b 100644
--- a/sys-apps/kmod/kmod-15.ebuild
+++ b/sys-apps/kmod/kmod-15.ebuild
@@ -38,7 +38,7 @@ DEPEND="${RDEPEND}
 	zlib? ( virtual/pkgconfig )"
 
 pkg_setup() {
-	version_is_at_least 4.6 $(gcc-version) || \
+	[[ "$(tc-getCPP)" == *cpp ]] && ! version_is_at_least 4.6 $(gcc-version) && \
 		die "At least sys-devel/gcc >= 4.6 is required to build ${CATEGORY}/${PN}." #481020
 }
 
e
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2013-09-19 13:58:07 UTC
(In reply to eroen from comment #3)
> Created attachment 358938 [details]
> build.log with modified ebuild
> 
> With this patch to the ebuild, things seem to behave more agreeably in the
> cases I was able to test.

Looks like similar logic is already used in fftw's ebuild. Fine by me, in tree.