Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 255448 - sys-kernel/vserver-sources-2.2.0.7 won't compile with gcc 4.3
Summary: sys-kernel/vserver-sources-2.2.0.7 won't compile with gcc 4.3
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo VPS Team (OBSOLETE)
URL:
Whiteboard:
Keywords:
: 265126 (view as bug list)
Depends on:
Blocks: vserver_amd64_boot
  Show dependency tree
 
Reported: 2009-01-18 23:40 UTC by Zak Kipling
Modified: 2009-06-28 14:13 UTC (History)
1 user (show)

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


Attachments
Kernel .config for failed build (config-2.6.22-vserver-2.2.0.7,60.98 KB, text/plain)
2009-01-18 23:55 UTC, Zak Kipling
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zak Kipling 2009-01-18 23:40:41 UTC
The ebuilds for the upstream "stable" version of linux-vserver appear to have compilation issues with gcc 4.3, producing link errors (at least on x86 in certain configurations).

While the ~arch vserser-sources ebuilds are based on more recent kernels which probably don't have this problem, they are also based on the 2.3 "development" branch of linux-vserver (which I presume will remain ~arch after gcc 4.3 goes stable).


This patch appears to solve the problem for me:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=38332cb98772f5ea757e6486bed7ed0381cb5f98

(found via http://lkml.org/lkml/2008/4/7/82)


Reproducible: Always

Steps to Reproduce:
1. Install sys-kernel/vserver-sources-2.2.0.7
2. Compile it using gcc 4.3
Actual Results:  
Link errors eg "undefined reference to `__umoddi3'"

Expected Results:  
Succcessful compilation of the kernel


Portage 2.1.6.4 (default/linux/x86/2008.0, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.27-gentoo-r7 i686)
=================================================================
System uname: Linux-2.6.27-gentoo-r7-i686-Intel-R-_Celeron-R-_CPU_2.50GHz-with-glibc2.0
Timestamp of tree: Sun, 18 Jan 2009 18:30:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-g -O2 -march=pentium4 -mfpmath=sse -mmmx -mno-tls-direct-seg-refs -msse -msse2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-g -O2 -march=pentium4 -mfpmath=sse -mmmx -mno-tls-direct-seg-refs -msse -msse2 -pipe"
DISTDIR="/var/tmp/portage-distfiles"
FEATURES="collision-protect distlocks fixpackages nostrip parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://mirror.qubenet.net/mirror/gentoo/ http://mirror.bytemark.co.uk/gentoo/ http://mirror.cambrium.nl/pub/os/linux/gentoo/ http://mirror.leaseweb.com/gentoo/"
LC_ALL="en_GB.ISO-8859-15"
LDFLAGS="-Wl,-O1,--hash-style=both"
LINGUAS="en_GB en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X Xaw3d a52 aac aalib accessibility acl acpi aim alsa amr apache2 asf audiofile autoipd avahi avi bash-completion berkdb bluetooth bonobo bookmarks bzip2 bzlib calendar caps cdparanoia cdr chardet cli cracklib crypt cscope ctype cups curl daap dbm dbus debugger dga dio dirac directfb divx dnsdb dri dtaus dv dvb dvd dvdr dvdread dynamic edl emacs encode esd evo exif exiscan-acl fam fbcon ffmpeg fftw flac flash foomaticdb fortran ftp gb gcj gd gdbm ggi gif ginac gmedia gmp gnome gnutls gphoto2 gpm gsm gstreamer gtk gtk2 gtkhtml guile hal hbci howl-compat iconv icq idea ieee1394 imagemagick imap imlib innodb ipod ipv6 irda isdnlog jabber jack java joystick jpeg ladcca ladspa lash lcms leim libcaca libg++ libgda libsamplerate libwww live lmtp logrotate loop-aes lzo mad maildir matroska mbox mbx mcal mdnsresponder-compat mhash midi mikmod mime ming mjpeg mmap mmx mng modplug mono mozbranding mozdevelop mozilla mp3 mpeg msn mudflap mule multitarget musepack mysql mythtv nas ncurses netboot network networking new-login njb nls nntp no-helper nptl nptlonly offensive ofx ogg oggvorbis old-crypt openal opengl openmp oscar oss pam pccts pcf pch pcntl pcre pda pdflib perl pie plotutils png portaudio postgres ppds pppd psf python qt3 qt3support qt4 quicktime quotes readline realmedia reflection regex replytolist rrdtool rtc ruby samba scanner schroedinger screen sdl server session sid sieve slang sndfile snmp sockets socks5 sox spell spf spl sqlite sqlite3 srs sse sse2 ssl svg svga sysfs syslog tagwriting tcl tcltk tcpd tetex tga theora threads tidy tiff tk truetype unicode usb v4l v4l2 vcd vdr vhook vhosts vidix vim-syntax vnc vorbis win32codecs wma wmf wmp wxwindows x264 x86 xanim xface xine xinerama xml xml2 xorg xosd xpm xprint xsl xulrunner xv xvid yahoo zlib zvbi" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en" USERLAND="GNU" VIDEO_CARDS="radeon fbdev vesa vga"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Zak Kipling 2009-01-18 23:55:25 UTC
Created attachment 178938 [details]
Kernel .config for failed build
Comment 2 Mart Raudsepp gentoo-dev 2009-01-19 11:18:35 UTC
FYI, this problem is appearing in pygobject-2.16.0 now and didn't in 2.15.4 because 2.15.4 had a bad use_enable for libffi, and the USE flag actually had no affect. In 2.16.0 I fixed it from $(use_enable libffi) to $(use_enable libffi ffi) so that pygobject actually got it enabled. Didn't test compiling with USE=libffi though as that would have meant a gcc recompile for me :(
Comment 3 Wormo (RETIRED) gentoo-dev 2009-01-20 06:23:27 UTC
Thanks for proposing this fix; assigning report to maintainer.
Comment 4 Thilo Bangert (RETIRED) (RETIRED) gentoo-dev 2009-04-06 18:58:37 UTC
*** Bug 265126 has been marked as a duplicate of this bug. ***
Comment 5 Anton Bolshakov 2009-04-07 01:12:54 UTC
I've successfully recompiled vserver kernel with the patch, it works just as expected.
Sorry for the dup.
Comment 6 Peter Volkov (RETIRED) gentoo-dev 2009-05-05 09:28:26 UTC
sys-kernel/vserver-sources-2.2.0.7 is 2.6.24 based sources and they were never supposed to be buildable with >=gcc-4.3, e.g. because of this change in behavior: http://lwn.net/Articles/272048/

Picking random patches to make kernel buildable just makes problem even worse since we hide from users that this kernel version was never supposed to be workable with newer gcc while such configuration makes kernel broken in non-evident manner. In the past I've applied some patches to allow openvz kernel 2.6.18 be buildable with new compiler and this worked on real hardware but later I got oops on start in vmware. That was just because of compiler and building exact same kernel with gcc-4.1 makes it boot! Who knows how many other similar issues is in the kernel? Personally I'd marked this bug as invalid and added some notion to kernel that we should build it only with gcc-4.1.x or something like that, but I'll leave final decision for vserver-sources maintainers.
Comment 7 Benedikt Böhm (RETIRED) gentoo-dev 2009-05-15 12:29:43 UTC
(In reply to comment #6)
> Personally I'd marked this bug as invalid and
> added some notion to kernel that we should build it only with gcc-4.1.x or
> something like that, but I'll leave final decision for vserver-sources
> maintainers.

yes, i'm in favor of this solution too. it is however unfortunate that vserver patches based on newer kernel versions are still quite experimental, since a lot of stuff has changed with regards to virtualization. nevertheless, gcc is slottable and stable kernels can still be built.