public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-user] Error emerging ati-drivers-11.11
@ 2011-12-24  9:48 czernitko
  2011-12-24 10:04 ` [gentoo-user] " czernitko
  0 siblings, 1 reply; 2+ messages in thread
From: czernitko @ 2011-12-24  9:48 UTC (permalink / raw
  To: gentoo-user


[-- Attachment #1.1: Type: text/plain, Size: 7048 bytes --]

Hello everyone!
I've got a problem that makes me lose my hair for about two days already.
Emerging ati-drivers results in ebuild error, but ati proprietary installer
works just fine. Last version of ati-drivers that compiles just fine is
11.6. All following versions of the driver (11.7-11.12) fail to compile. I
haven't found any appropriate bug, so I guess there is more probably some
problem with my environment. I am using hardened profile, by the way, but
without PaX or GrSecurity. Does anyone have any clue about a solution? Or
should I fill a bug at bugs.gentoo.org as this seems not to be an upstream
bug?

Thanks for any advice!
Peter

gethexis ~ # emerge -pqv =x11-drivers/ati-drivers-11.11
[ebuild     U] x11-drivers/ati-drivers-11.11 [11.6] USE="modules (multilib)
qt4 -debug (-opencl)"

gethexis ~ # emerge --info =x11-drivers/ati-drivers-11.11
Portage 2.1.10.41 (hardened/linux/amd64, gcc-4.5.3-hardenednopie,
glibc-2.13-r4, 3.0.4-hardened-r1 x86_64)
=================================================================
                        System Settings
=================================================================
System uname:
Linux-3.0.4-hardened-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_Q_720_@
_1.60GHz-with-gentoo-2.0.3
Timestamp of tree: Sat, 24 Dec 2011 09:15:01 +0000
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.6.6-r2, 2.7.2-r3, 3.1.4-r3
dev-util/cmake:           2.8.6-r4
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.4
sys-apps/sandbox:
2.5

sys-devel/autoconf:       2.13,
2.68

sys-devel/automake:       1.9.6-r3, 1.10.3,
1.11.1

sys-devel/binutils:
2.21.1-r1

sys-devel/gcc:
4.5.3-r1

sys-devel/gcc-config:
1.4.1-r1

sys-devel/libtool:
2.4-r1

sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA PUEL Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=core2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt
/usr/share/maven-bin-3.0/conf /usr/share/themes/oxygen-gtk/gtk-2.0
/var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/
/etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release
/etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/
/etc/php/cli-php5.3/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="-O2 -pipe -march=core2"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=n --keep-going"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news
parallel-fetch protect-owned sandbox sfperms splitdebug strict
unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -pipe -march=core2 -funroll-all-loops"
GENTOO_MIRRORS="http://ftp.fi.muni.cz/pub/linux/gentoo/"
LANG="cs_CZ.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="cs en"
MAKEOPTS="-j9"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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/local/portage"
SYNC="rsync://rsync.cz.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X aac acl acpi alsa amd64 amr aol apache2 autoipd avahi
bash-completion berkdb bluetooth branding bugzilla bzip2 cdr clamav cli
consolekit cracklib crypt cups cvs cxx dbus dhcp dirac directfb
disk-partition dri dvd eap-tls embedded encode exif extensions extras
ffmpeg firefox flac fontconfig fortran ftp fuse gcj gcrypt gd gdbm
geolocation gif gimp git gnutls gpg gphoto2 gpm gpu graphviz groupwise
handbook hardened hddtemp iconv icq icu imagemagick imap inifile innodb
inotify ipv6 jabber java javascript jpeg jpeg2k justify kde kerberos kipi
lame laptop latex lcms lensfun libnotify lm_sensors lzma lzo mad matroska
matrox mercurial mhash mime mjpeg mmap mmx mmxext mng modplug modules mono
mozilla mp3 mp4 mpeg mpi mplayer msn mudflap multilib mysql mysqli ncurses
networkmanager nls nntp nocd nodrm nptl nptlonly nsplugin nspluginwrapper
odbc ogg openal opengl openmp osc oscar pam pax_kernel pcntl pcre pdf perl
php pic plasma png policykit posix pppd prediction private-headers
pulseaudio python qq qt3support qt4 quicktime radius raw rdesktop readline
recode redeyes reports rss samba sasl schroedinger scp sdl seamonkey
semantic-desktop session sftp sharedext sharedmem silc skey skype slp smp
snmp soap sockets socks5 source spell sql sqlite sqlite3 sse sse2 ssl ssse3
startup-notification static-libs subversion suid svg symlink synaptics
sysfs syslog sysvipc taglib tcl tcpd threads thumbnail thumbnails tidy tiff
truetype udev unicode upnp urandom usb v4l v4l2 vaapi vhosts video
virtualbox vnc vorbis wavpack webkit wifi wmf x264 xattr xcb xcomposite
xext xine xinerama xinetd xml xmp xorg xosd xpm xrandr xscreensaver xsl
xulrunner xv xvid yahoo zephyr zeroconf zlib zsh-completion"
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"
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 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 stage tables krita karbon braindump" CAMERAS="ptp2"
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 ubx"
INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad
cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="cs
en" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="arm i386 x86_64"
QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU"
VIDEO_CARDS="fglrx radeon" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND,
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

[-- Attachment #1.2: Type: text/html, Size: 9000 bytes --]

[-- Attachment #2: build.log --]
[-- Type: text/plain, Size: 11755 bytes --]

^[[32;01m * ^[[39;49;00mPackage:    x11-drivers/ati-drivers-11.11
^[[32;01m * ^[[39;49;00mRepository: gentoo
^[[32;01m * ^[[39;49;00mMaintainer: lu_zero@gentoo.org enrico.tagliavini@gmail.com,x11@gentoo.org
^[[32;01m * ^[[39;49;00mUSE:        amd64 elibc_glibc kernel_linux modules multilib qt4 userland_GNU
^[[32;01m * ^[[39;49;00mFEATURES:   sandbox splitdebug
 ^[[32;01m*^[[0m Determining the location of the kernel source code
 ^[[32;01m*^[[0m Found kernel source directory:
 ^[[32;01m*^[[0m     /usr/src/linux
 ^[[32;01m*^[[0m Found kernel object directory:
 ^[[32;01m*^[[0m     /lib/modules/3.0.4-hardened-r1/build
 ^[[32;01m*^[[0m Found sources for kernel version:
 ^[[32;01m*^[[0m     3.0.4-hardened-r1
 ^[[32;01m*^[[0m 
 ^[[32;01m*^[[0m Please note that this driver supports only graphic cards based on
 ^[[32;01m*^[[0m r600 chipset and newer.
 ^[[32;01m*^[[0m This represent the ATI Radeon HD series at this moment.
 ^[[32;01m*^[[0m 
 ^[[32;01m*^[[0m If your card is older then use x11-drivers/xf86-video-ati
 ^[[32;01m*^[[0m For migration informations please reffer to:
 ^[[32;01m*^[[0m http://www.gentoo.org/proj/en/desktop/x/x11/ati-migration-guide.xml
 ^[[32;01m*^[[0m 
>>> Unpacking source...
>>> Source unpacked in /var/tmp/portage/x11-drivers/ati-drivers-11.11/work
>>> Preparing source in /var/tmp/portage/x11-drivers/ati-drivers-11.11/work ...
 ^[[32;01m*^[[0m Applying ati-powermode-opt-path-2.patch ...
^[[A^[[72C ^[[34;01m[ ^[[32;01mok^[[34;01m ]^[[0m
 ^[[32;01m*^[[0m Converting 2.6.x/Makefile to use M= instead of SUBDIRS= ...
^[[A^[[72C ^[[34;01m[ ^[[32;01mok^[[34;01m ]^[[0m
>>> Unpacking ./../common/usr/src/ati/fglrx_sample_source.tgz to /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/extra
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/x11-drivers/ati-drivers-11.11/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/x11-drivers/ati-drivers-11.11/work ...
 ^[[32;01m*^[[0m Preparing fglrx module
make -j9 HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- 'LDFLAGS=-m elf_x86_64' GCC_VER_MAJ=4 KVER=3.0.4-hardened-r1 KDIR=/usr/src/linux 'CFLAGS_MODULE+=-DMODULE -DATI -DFGL' CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space kmod_build 
make -C /usr/src/linux M=/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-3.0.4-hardened-r1'
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_agp.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_ioctl.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_io.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_pci.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_iommu.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_str.o
In file included from /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:39:0:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:202:5: warning: "_DEBUG" is not defined
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:45:1: warning: function declaration isn’t a prototype
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:65:14: warning: function declaration isn’t a prototype
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c: In function ‘prvGetCpuId’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:72:18: warning: unused variable ‘Mode’
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c: At top level:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:162:16: warning: ‘module_log_map’ defined but not used
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:175:19: warning: ‘module_type_map’ defined but not used
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl.o
  CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_wait.o
In file included from /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_iommu.c:45:0:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:202:5: warning: "_DEBUG" is not defined
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:162:16: warning: ‘module_log_map’ defined but not used
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:175:19: warning: ‘module_type_map’ defined but not used
In file included from /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_agp.c:47:0:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:202:5: warning: "_DEBUG" is not defined
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:162:16: warning: ‘module_log_map’ defined but not used
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:175:19: warning: ‘module_type_map’ defined but not used
In file included from /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.c:33:0:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:202:5: warning: "_DEBUG" is not defined
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.c: In function ‘KCL_ACPI_EvalObject’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.c:246:55: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.c: At top level:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:162:16: warning: ‘module_log_map’ defined but not used
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:175:19: warning: ‘module_type_map’ defined but not used
make[2]: *** [/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:191:0:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:202:5: warning: "_DEBUG" is not defined
In file included from /var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:458:0:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/drm_proc.h: In function ‘FGLDRM__vm_info’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/drm_proc.h:242:3: warning: comparison of unsigned expression < 0 is always false
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘firegl_init_module’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1033:20: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_SetPageCache_Array’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1329:17: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_MEM_SmallBufferAlloc’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2015:12: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_MEM_SmallBufferAllocAtomic’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2030:12: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_MEM_Alloc’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2040:12: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_MEM_AllocAtomic’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2045:12: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_lock_init’:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:5738:12: error: called object ‘2’ is not a function
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: At top level:
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:162:16: warning: ‘module_log_map’ defined but not used
/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.h:175:19: warning: ‘module_type_map’ defined but not used
make[2]: *** [/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-3.0.4-hardened-r1'
make: *** [kmod_build] Error 2
 ^[[31;01m*^[[0m ERROR: x11-drivers/ati-drivers-11.11 failed (compile phase):
 ^[[31;01m*^[[0m   emake failed
 ^[[31;01m*^[[0m 
 ^[[31;01m*^[[0m If you need support, post the output of 'emerge --info =x11-drivers/ati-drivers-11.11',
 ^[[31;01m*^[[0m the complete build log and the output of 'emerge -pqv =x11-drivers/ati-drivers-11.11'.
 ^[[31;01m*^[[0m The complete build log is located at '/var/tmp/portage/x11-drivers/ati-drivers-11.11/temp/build.log'.
 ^[[31;01m*^[[0m The ebuild environment file is located at '/var/tmp/portage/x11-drivers/ati-drivers-11.11/temp/environment'.
 ^[[31;01m*^[[0m S: '/var/tmp/portage/x11-drivers/ati-drivers-11.11/work'

[-- Attachment #3: environment --]
[-- Type: application/octet-stream, Size: 141513 bytes --]

declare -x ABI="amd64"
declare -x ALSA_CARDS=""
declare -x 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"
declare -x ANT_HOME="/usr/share/ant"
declare -x 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 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"
declare -x ARCH="amd64"
declare -- ARCH_DIR="/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/arch/x86_64"
declare -- ATI_URL="http://www2.ati.com/drivers/linux/"
declare -- BASE_DIR="/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/xpic"
declare -x BOOTSTRAP_USE="cxx unicode multilib hardened pax_kernel pic -jit"
declare -- BUILD_PARAMS="GCC_VER_MAJ=4 KVER=3.0.4-hardened-r1 KDIR=/usr/src/linux CFLAGS_MODULE+=\"-DMODULE -DATI -DFGL\" CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space"
declare -- BUILD_TARGETS="kmod_build"
declare -x CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump"
declare -x CAMERAS="ptp2"
declare -x CBUILD="x86_64-pc-linux-gnu"
declare -x CFLAGS="-O2 -pipe -march=core2"
declare -x CFLAGS_amd64="-m64"
declare -x CFLAGS_default
declare -x CFLAGS_x32="-mx32"
declare -x CFLAGS_x86="-m32"
declare -x CHOST="x86_64-pc-linux-gnu"
declare -x CHOST_amd64="x86_64-pc-linux-gnu"
declare -x CHOST_default="x86_64-pc-linux-gnu"
declare -x CHOST_x32="x86_64-pc-linux-gnu"
declare -x CHOST_x86="i686-pc-linux-gnu"
declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
declare -x COLORFGBG="15;0"
declare -x COLUMNS="192"
declare -x CROSSCOMPILE_OPTS=""
declare -x CTARGET_default="x86_64-pc-linux-gnu"
declare -x CXXFLAGS="-O2 -pipe -march=core2"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-3bN1opjrlB,guid=b2dfa71083a8da3891a0abdb0000008c"
declare -x DEFAULT_ABI="amd64"
declare -x DEFINED_PHASES=" compile install postinst postrm preinst prepare prerm pretend setup test unpack"
declare DEPEND="
	<=x11-base/xorg-server-1.11.49
	>=app-admin/eselect-opengl-1.0.7
	sys-power/acpid
	x11-apps/xauth
	x11-libs/libX11
	x11-libs/libXext
	x11-libs/libXinerama
	x11-libs/libXrandr
	x11-libs/libXrender
	multilib? (
			app-emulation/emul-linux-x86-opengl
			app-emulation/emul-linux-x86-xlibs
	)
	qt4? (
			x11-libs/libICE
			x11-libs/libSM
			x11-libs/libXcursor
			x11-libs/libXfixes
			x11-libs/libXxf86vm
			x11-libs/qt-core
			x11-libs/qt-gui
	)
	opencl? (
		!>=x11-drivers/nvidia-drivers-195
	)

	x11-proto/inputproto
	x11-proto/xf86miscproto
	x11-proto/xf86vidmodeproto
	x11-proto/xineramaproto
	x11-libs/libXtst
	sys-apps/findutils
	app-misc/pax-utils
 kernel_linux? ( sys-apps/module-init-tools )
	sys-apps/sed
	kernel_linux? ( virtual/linux-sources )"
declare DESCRIPTION="Ati precompiled drivers for r600 (HD Series) and newer chipsets"
declare -x DESKTOP_SESSION="default"
declare -x DESTTREE="/usr"
declare -x DIROPTIONS="-m0755"
declare -x DM_CONTROL="/var/run/xdmctl"
declare -x EAPI="4"
declare -x ELIBC="glibc"
declare -- EMULTILIB_PKG="true"
declare -- EPATCH_EXCLUDE=""
declare -- EPATCH_FORCE="no"
declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..."
declare -- EPATCH_OPTS="-g0 -E --no-backup-if-mismatch"
declare -- EPATCH_SINGLE_MSG=""
declare -- EPATCH_SOURCE="/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/patch"
declare -- EPATCH_SUFFIX="patch.bz2"
declare -x EXEOPTIONS="-m0755"
declare -x FCFLAGS=""
declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
declare -x FFLAGS="-O2 -pipe -march=core2 -funroll-all-loops"
declare -- FOLDER_PREFIX="common/"
declare -x GCC_SPECS="/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/hardenednopie.specs"
declare -x GDK_USE_XFT="1"
declare -x 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"
declare -x GRUB_PLATFORMS=""
declare -x GSETTINGS_BACKEND="gconf"
declare -x GS_LIB="/home/peta/.fonts"
declare -x GTK2_RC_FILES="/etc/gtk-2.0/gtkrc:/home/peta/.gtkrc-2.0:/home/peta/.kde4/share/config/gtkrc-2.0"
declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/peta/.gtkrc:/home/peta/.kde4/share/config/gtkrc"
declare -x HG="/usr/bin/hg"
declare HOMEPAGE="http://www.ati.com"
declare -x INHERITED=" multilib toolchain-funcs portability user eutils versionator linux-info linux-mod"
declare -x INPUT_DEVICES="keyboard mouse evdev"
declare -x INSDESTTREE=""
declare -x INSOPTIONS="-m0644"
declare IUSE="debug +modules multilib opencl qt4 kernel_linux"
declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac"
declare -x JAVACC_HOME="/usr/share/javacc/"
declare -x JAVA_HOME="/etc/java-config-2/current-system-vm"
declare -x JDK_HOME="/etc/java-config-2/current-system-vm"
declare -x KDE_FULL_SESSION="true"
declare -x KDE_MULTIHEAD="false"
declare -x KDE_SESSION_UID="1000"
declare -x KDE_SESSION_VERSION="4"
declare -x KERNEL="linux"
declare -x KERNEL_ABI="amd64"
declare -- KERNEL_DIR="/usr/src/linux"
declare -- KERNEL_MAKEFILE="/usr/src/linux/Makefile"
declare -x KEYWORDS="amd64 ~x86"
declare -x KONSOLE_DBUS_SERVICE=":1.102"
declare -x KONSOLE_DBUS_SESSION="/Sessions/1"
declare -- KV_DIR="/usr/src/linux"
declare -- KV_EXTRA="-hardened-r1"
declare -- KV_FULL="3.0.4-hardened-r1"
declare -- KV_LOCAL=""
declare -- KV_MAJOR="3"
declare -- KV_MINOR="0"
declare -- KV_OBJ="ko"
declare -- KV_OUT_DIR="/lib/modules/3.0.4-hardened-r1/build"
declare -- KV_PATCH="4"
declare -x LANG="cs_CZ.UTF-8"
declare -x LANGUAGE=""
declare -x LCD_DEVICES=""
declare -x LC_COLLATE="C"
declare -x LC_CTYPE="cs_CZ.UTF-8"
declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed"
declare -x LDFLAGS_amd64="-m elf_x86_64"
declare -x LDFLAGS_default
declare -x LDFLAGS_x32="-m elf32_x86_64"
declare -x LDFLAGS_x86="-m elf_i386"
declare -x LIBDIR_amd64="lib64"
declare -x LIBDIR_amd64_fbsd="lib64"
declare -x LIBDIR_default="lib"
declare -x LIBDIR_n32="lib32"
declare -x LIBDIR_n64="lib64"
declare -x LIBDIR_o32="lib"
declare -x LIBDIR_ppc="lib32"
declare -x LIBDIR_ppc64="lib64"
declare -x LIBDIR_s390="lib32"
declare -x LIBDIR_s390x="lib64"
declare -x LIBDIR_sparc32="lib32"
declare -x LIBDIR_sparc64="lib64"
declare -x LIBDIR_x32="libx32"
declare -x LIBDIR_x86="lib32"
declare -x LIBDIR_x86_fbsd="lib32"
declare -x LIBGL_DRIVERS_PATH="/usr/lib64/dri:/usr/lib32/dri:/usr/lib32/dri:/usr/lib64/dri"
declare -x LIBOPTIONS="-m0644"
declare -x LICENSE="AMD GPL-2 QPL-1.0 as-is"
declare -x LINGUAS="cs en"
declare -x MAKEOPTS="-j9"
declare -- MODULE_DIR="/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common//lib/modules/fglrx/build_mod"
declare -- MODULE_NAMES="fglrx(video:/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/common//lib/modules/fglrx/build_mod/2.6.x)"
declare -x MULTILIB_ABIS="amd64 x86"
declare -x MULTILIB_STRICT_DENY="64-bit.*shared object"
declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev)"
declare -- MY_BASE_DIR="/var/tmp/portage/x11-drivers/ati-drivers-11.11/work/xpic_64a"
declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
declare -x OPENGL_PROFILE="ati"
declare -- OUTPUT_DIR="/lib/modules/3.0.4-hardened-r1/build"
declare -x PATH="/usr/lib64/portage/bin/ebuild-helpers/4:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/arm-none-linux-gnueabi/gcc-bin/4.5.2:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/usr/lib64/subversion/bin"
declare PDEPEND=""
declare -x PHP_TARGETS=""
declare -x PKG_CONFIG_PATH="/usr/lib64/pkgconfig"
declare -- PKG_LIBDIR="lib64"
declare -a PORTAGE_DOCOMPRESS='([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man")'
declare -a PORTAGE_DOCOMPRESS_SKIP='([0]="/usr/share/doc/ati-drivers-11.11/html")'
declare -x PRELINK_PATH_MASK="/opt:/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so"
declare -x PROFILEHOME=""
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
declare -x PROPERTIES=""
declare -x PROVIDE=""
declare -x PYTHONDONTWRITEBYTECODE="1"
declare -- QA_DT_HASH="
	opt/bin/amdcccle
	opt/bin/aticonfig
	opt/bin/atiodcli
	opt/bin/atiode
	opt/bin/clinfo
	opt/bin/fglrxinfo
	opt/sbin/atieventsd
	opt/sbin/amdnotifyui
	usr/lib\\(32\\|64\\)\\?/libaticalcl.so
	usr/lib\\(32\\|64\\)\\?/libaticalrt.so
	usr/lib\\(32\\|64\\)\\?/libatiuki.so.1.0
	usr/lib\\(32\\|64\\)\\?/libatiadlxx.so
	usr/lib\\(32\\|64\\)\\?/libfglrx_dm.so.1.0
	usr/lib\\(32\\|64\\)\\?/libXvBAW.so.1.0
	usr/lib\\(32\\|64\\)\\?/libAMDXvBA.so.1.0
	usr/lib\\(32\\|64\\)\\?/xorg/modules/amdxmm.so
	usr/lib\\(32\\|64\\)\\?/xorg/modules/glesx.so
	usr/lib\\(32\\|64\\)\\?/xorg/modules/linux/libfglrxdrm.so
	usr/lib\\(32\\|64\\)\\?/xorg/modules/drivers/fglrx_drv.so
	usr/lib\\(32\\|64\\)\\?/libaticaldd.so
	usr/lib\\(32\\|64\\)\\?/dri/fglrx_dri.so
	usr/lib\\(32\\|64\\)\\?/opengl/ati/extensions/libglx.so
	usr/lib\\(32\\|64\\)\\?/opengl/ati/extensions/fglrx-libglx.so
	usr/lib\\(32\\|64\\)\\?/opengl/ati/lib/fglrx-libGL.so.1.2
	usr/lib\\(32\\|64\\)\\?/opengl/ati/lib/libGL.so.1.2
	usr/lib\\(32\\|64\\)\\?/libamdocl\\(32\\|64\\)\\?.so
	usr/lib\\(32\\|64\\)\\?/libOpenCL.so.1
"
declare -- QA_EXECSTACK="
	opt/bin/atiode
	opt/bin/amdcccle
	usr/lib*/opengl/ati/lib/libGL.so.1.2
	usr/lib*/dri/fglrx_dri.so
"
declare -x QA_PRESTRIPPED="
	usr/lib\\(32\\|64\\)\\?/libXvBAW.so.1.0
	usr/lib\\(32\\|64\\)\\?/opengl/ati/lib/libGL.so.1.2
	usr/lib\\(32\\|64\\)\\?/opengl/ati/extensions/libglx.so
	usr/lib\\(32\\|64\\)\\?/xorg/modules/glesx.so
	usr/lib\\(32\\|64\\)\\?/libAMDXvBA.so.1.0
	usr/lib\\(32\\|64\\)\\?/libaticaldd.so
	usr/lib\\(32\\|64\\)\\?/dri/fglrx_dri.so
"
declare -- QA_SONAME="
	usr/lib\\(32\\|64\\)\\?/libatiadlxx.so
	usr/lib\\(32\\|64\\)\\?/libaticalcl.so
	usr/lib\\(32\\|64\\)\\?/libaticaldd.so
	usr/lib\\(32\\|64\\)\\?/libaticalrt.so
	usr/lib\\(32\\|64\\)\\?/libamdocl\\(32\\|64\\)\\?.so
"
declare -- QA_TEXTRELS="
	usr/lib*/opengl/ati/lib/libGL.so.1.2
	usr/lib*/libatiadlxx.so
	usr/lib*/xorg/modules/glesx.so
	usr/lib*/libaticaldd.so
	usr/lib*/dri/fglrx_dri.so
"
declare -- QA_WX_LOAD="
	usr/lib*/opengl/ati/lib/libGL.so.1.2
	usr/lib*/dri/fglrx_dri.so
"
declare -x QEMU_SOFTMMU_TARGETS="arm i386 x86_64"
declare -x QEMU_USER_TARGETS="arm i386 x86_64"
declare -x QT_PLUGIN_PATH="/usr/lib64/kde4/plugins:/home/peta/.kde4/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/"
declare RDEPEND="
	<=x11-base/xorg-server-1.11.49
	>=app-admin/eselect-opengl-1.0.7
	sys-power/acpid
	x11-apps/xauth
	x11-libs/libX11
	x11-libs/libXext
	x11-libs/libXinerama
	x11-libs/libXrandr
	x11-libs/libXrender
	multilib? (
			app-emulation/emul-linux-x86-opengl
			app-emulation/emul-linux-x86-xlibs
	)
	qt4? (
			x11-libs/libICE
			x11-libs/libSM
			x11-libs/libXcursor
			x11-libs/libXfixes
			x11-libs/libXxf86vm
			x11-libs/qt-core
			x11-libs/qt-gui
	)
	opencl? (
		!>=x11-drivers/nvidia-drivers-195
	)
 kernel_linux? ( sys-apps/module-init-tools )"
declare REQUIRED_USE=""
declare -x RESTRICT=""
declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
declare -x RUBY_TARGETS=""
declare -x R_HOME="/usr/lib64/R"
declare -x S="/var/tmp/portage/x11-drivers/ati-drivers-11.11/work"
declare -x SANDBOX_DEBUG="0"
declare -x SANDBOX_DENY=""
declare -x SANDBOX_PID="12839"
declare -x SANDBOX_PREDICT="/var/tmp/portage/x11-drivers/ati-drivers-11.11/homedir:/dev/crypto:/var/cache/fontconfig"
declare -x SANDBOX_READ="/:/var/tmp"
declare -x SANDBOX_VERBOSE="1"
declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp:/var/tmp/:/var/tmp/portage/x11-drivers/ati-drivers-11.11/homedir/.bash_history"
declare -x SESSION_MANAGER="local/gethexis:@/tmp/.ICE-unix/4523,unix/gethexis:/tmp/.ICE-unix/4523"
declare -x SHELL_SESSION_ID="fce51f9b121c4000a6cc7b035173a8c9"
declare -x SLOT="1"
declare SRC_URI="http://www2.ati.com/drivers/linux//ati-driver-installer-11-11-x86.x86_64.run"
declare -x SYMLINK_LIB="yes"
declare -x USE="amd64 elibc_glibc kernel_linux modules multilib qt4 userland_GNU"
declare -x USERLAND="GNU"
declare -x VBOX_APP_HOME="/usr/lib64/virtualbox"
declare -x VIDEO_CARDS=""
declare -x WINDOWID="96469326"
declare -x WINDOWPATH="7"
declare -x XCURSOR_THEME="Oxygen_White"
declare -x XDG_CONFIG_DIRS="/etc/xdg"
declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share"
declare -x XDG_SESSION_COOKIE="20da934af3103ced7ff2687a00000013-1324717216.201972-1411914251"
declare -x XDM_MANAGED="method=classic"
declare -x 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"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""
declare -x _LINUX_CONFIG_EXISTS_DONE="1"
declare -- ___ECLASS_ONCE_EUTILS="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_MULTILIB="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_PORTABILITY="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_TOOLCHAIN_FUNCS="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_USER="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_VERSIONATOR="recur -_+^+_- spank"
declare -- get_version_warning_done=""
declare -- phase_func
_assert_pkg_ebuild_phase () 
{ 
    case ${EBUILD_PHASE} in 
        setup | preinst | postinst)

        ;;
        *)
            eerror "'$1()' called from '${EBUILD_PHASE}' phase which is not OK:";
            eerror "You may only call from pkg_{setup,preinst,postinst} functions.";
            eerror "Package fails at QA and at life.  Please file a bug.";
            die "Bad package!  $1 is only for use in some pkg_* functions!"
        ;;
    esac
}
_cdrom_locate_file_on_cd () 
{ 
    local mline="";
    local showedmsg=0 showjolietmsg=0;
    while [[ -z ${CDROM_ROOT} ]]; do
        local i=0;
        local -a cdset=(${*//:/ });
        if [[ -n ${CDROM_SET} ]]; then
            cdset=(${cdset[${CDROM_SET}]});
        fi;
        while [[ -n ${cdset[${i}]} ]]; do
            local dir=$(dirname ${cdset[${i}]});
            local file=$(basename ${cdset[${i}]});
            local point= node= fs= foo=;
            while read point node fs foo; do
                [[ " cd9660 iso9660 udf " != *" ${fs} "* ]] && ! [[ ${fs} == "subfs" && ",${opts}," == *",fs=cdfss,"* ]] && continue;
                point=${point//\040/ };
                [[ ! -d ${point}/${dir} ]] && continue;
                [[ -z $(find "${point}/${dir}" -maxdepth 1 -iname "${file}") ]] && continue;
                export CDROM_ROOT=${point};
                export CDROM_SET=${i};
                export CDROM_MATCH=${cdset[${i}]};
                return;
            done <<< "$(get_mounts)";
            ((++i));
        done;
        echo;
        if [[ ${showedmsg} -eq 0 ]]; then
            if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then
                if [[ -z ${CDROM_NAME} ]]; then
                    einfo "Please insert+mount the cdrom for ${PN} now !";
                else
                    einfo "Please insert+mount the ${CDROM_NAME} cdrom now !";
                fi;
            else
                if [[ -z ${CDROM_NAME_1} ]]; then
                    einfo "Please insert+mount cd #${CDROM_CURRENT_CD} for ${PN} now !";
                else
                    local var="CDROM_NAME_${CDROM_CURRENT_CD}";
                    einfo "Please insert+mount the ${!var} cdrom now !";
                fi;
            fi;
            showedmsg=1;
        fi;
        einfo "Press return to scan for the cd again";
        einfo "or hit CTRL+C to abort the emerge.";
        echo;
        if [[ ${showjolietmsg} -eq 0 ]]; then
            showjolietmsg=1;
        else
            ewarn "If you are having trouble with the detection";
            ewarn "of your CD, it is possible that you do not have";
            ewarn "Joliet support enabled in your kernel.  Please";
            ewarn "check that CONFIG_JOLIET is enabled in your kernel.";
            ebeep 5;
        fi;
        read || die "something is screwed with your system";
    done
}
_check_kernel_config () 
{ 
    local failed=0;
    local error="";
    if ! kernel_is ge 2 6; then
        eerror "You need a 2.6 linux kernel to compile against!";
        die "No 2.6 Kernel found";
    fi;
    if ! linux_chkconfig_present MTRR; then
        ewarn "You don't have MTRR support enabled in the kernel.";
        ewarn "Direct rendering will not work.";
    fi;
    if linux_chkconfig_builtin DRM; then
        ewarn "You have DRM support built in to the kernel";
        ewarn "Direct rendering will not work.";
    fi;
    if ! linux_chkconfig_present AGP && ! linux_chkconfig_present PCIEPORTBUS; then
        ewarn "You don't have AGP and/or PCIe support enabled in the kernel";
        ewarn "Direct rendering will not work.";
    fi;
    if ! linux_chkconfig_present ACPI; then
        eerror "${P} requires the ACPI support in the kernel";
        eerror "Please enable it:";
        eerror "    CONFIG_ACPI=y";
        eerror "in /usr/src/linux/.config or";
        eerror "    Power management and ACPI options --->";
        eerror "        [*] Power Management support";
        eerror "in the 'menuconfig'";
        error+=" CONFIG_ACPI disabled;";
        failed=1;
    fi;
    if ! linux_chkconfig_present PCI_MSI; then
        eerror "${P} requires MSI in the kernel.";
        eerror "Please enable it:";
        eerror "    CONFIG_PCI_MSI=y";
        eerror "in /usr/src/linux/.config or";
        eerror "    Bus options (PCI etc.)  --->";
        eerror "        [*] Message Signaled Interrupts (MSI and MSI-X)";
        eerror "in the kernel config.";
        error+=" CONFIG_PCI_MSI disabled;";
        failed=1;
    fi;
    if linux_chkconfig_present LOCKDEP; then
        eerror "You've enabled LOCKDEP -- lock tracking -- in the kernel.";
        eerror "Unfortunately, this option exports the symbol lock_acquire as GPL-only.";
        eerror "This prevents ${P} from compiling with an error like this:";
        eerror "FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'lock_acquire'";
        eerror "Please make sure the following options have been unset:";
        eerror "    Kernel hacking  --->";
        eerror "        [ ] Lock debugging: detect incorrect freeing of live locks";
        eerror "        [ ] Lock debugging: prove locking correctness";
        eerror "        [ ] Lock usage statistics";
        eerror "in 'menuconfig'";
        error+=" LOCKDEP enabled;";
        failed=1;
    fi;
    use amd64 && if ! linux_chkconfig_present COMPAT; then
        eerror "${P} requires COMPAT.";
        eerror "Please enable the 32 bit emulation:";
        eerror "Executable file formats / Emulations  --->";
        eerror "    [*] IA32 Emulation";
        eerror "in the kernel config.";
        eerror "if this doesn't enable CONFIG_COMPAT add";
        eerror "    CONFIG_COMPAT=y";
        eerror "in /usr/src/linux/.config";
        error+=" COMPAT disabled;";
        failed=1;
    fi;
    kernel_is ge 2 6 37 && kernel_is le 2 6 38 && if ! linux_chkconfig_present BKL; then
        eerror "${P} requires BKL.";
        eerror "Please enable the Big Kernel Lock:";
        eerror "Kernel hacking  --->";
        eerror "    [*] Big Kernel Lock";
        eerror "in the kernel config.";
        eerror "or add";
        eerror "    CONFIG_BKL=y";
        eerror "in /usr/src/linux/.config";
        error+=" BKL disabled;";
        failed=1;
    fi;
    [[ ${failed} -ne 0 ]] && die "${error}"
}
_dead_portability_user_funcs () 
{ 
    die "if you really need this, please file a bug for base-system@gentoo.org"
}
_epatch_draw_line () 
{ 
    [[ -z $1 ]] && set "$(printf "%65s" '')";
    echo "${1//?/=}"
}
_gcc-install-dir () 
{ 
    echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null |		awk '$1=="install:" {print $2}')"
}
_gcc-specs-directive_raw () 
{ 
    local cc=$(tc-getCC);
    local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
    ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN	{ pspec=""; spec=""; outside=1 }
$1=="*"directive":"  { pspec=spec; spec=""; outside=0; next }
	outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
	spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
	{ spec=spec $0 }
END	{ print spec }';
    return 0
}
_gcc-specs-exists () 
{ 
    [[ -f $(_gcc-install-dir)/$1 ]]
}
_gcc_fullversion () 
{ 
    local ver="$1";
    shift;
    set -- `$(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"`;
    eval echo "$ver"
}
_tc-getPROG () 
{ 
    local tuple=$1;
    local v var vars=$2;
    local prog=$3;
    var=${vars%% *};
    for v in ${vars};
    do
        if [[ -n ${!v} ]]; then
            export ${var}="${!v}";
            echo "${!v}";
            return 0;
        fi;
    done;
    local search=;
    [[ -n $4 ]] && search=$(type -p "$4-${prog}");
    [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p "${!tuple}-${prog}");
    [[ -n ${search} ]] && prog=${search##*/};
    export ${var}=${prog};
    echo "${!var}"
}
built_with_use () 
{ 
    local hidden="no";
    if [[ $1 == "--hidden" ]]; then
        hidden="yes";
        shift;
    fi;
    local missing_action="die";
    if [[ $1 == "--missing" ]]; then
        missing_action=$2;
        shift;
        shift;
        case ${missing_action} in 
            true | false | die)

            ;;
            *)
                die "unknown action '${missing_action}'"
            ;;
        esac;
    fi;
    local opt=$1;
    [[ ${opt:0:1} = "-" ]] && shift || opt="-a";
    local PKG=$(best_version $1);
    [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package";
    shift;
    local USEFILE=${ROOT}/var/db/pkg/${PKG}/USE;
    local IUSEFILE=${ROOT}/var/db/pkg/${PKG}/IUSE;
    if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then
        case ${missing_action} in 
            true)
                return 0
            ;;
            false)
                return 1
            ;;
            die)
                die "Unable to determine what USE flags $PKG was built with"
            ;;
        esac;
    fi;
    if [[ ${hidden} == "no" ]]; then
        local IUSE_BUILT=($(<"${IUSEFILE}"));
        local expand;
        for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]');
        do
            if [[ $1 == ${expand}_* ]]; then
                expand="";
                break;
            fi;
        done;
        if [[ -n ${expand} ]]; then
            if ! has $1 ${IUSE_BUILT[@]#[-+]}; then
                case ${missing_action} in 
                    true)
                        return 0
                    ;;
                    false)
                        return 1
                    ;;
                    die)
                        die "$PKG does not actually support the $1 USE flag!"
                    ;;
                esac;
            fi;
        fi;
    fi;
    local USE_BUILT=$(<${USEFILE});
    while [[ $# -gt 0 ]]; do
        if [[ ${opt} = "-o" ]]; then
            has $1 ${USE_BUILT} && return 0;
        else
            has $1 ${USE_BUILT} || return 1;
        fi;
        shift;
    done;
    [[ ${opt} = "-a" ]]
}
cdrom_get_cds () 
{ 
    local cdcnt=0;
    local f=;
    for f in "$@";
    do
        ((++cdcnt));
        export CDROM_CHECK_${cdcnt}="$f";
    done;
    export CDROM_TOTAL_CDS=${cdcnt};
    export CDROM_CURRENT_CD=1;
    if [[ -n ${CD_ROOT}${CD_ROOT_1} ]]; then
        local var=;
        cdcnt=0;
        while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
            ((++cdcnt));
            var="CD_ROOT_${cdcnt}";
            [[ -z ${!var} ]] && var="CD_ROOT";
            if [[ -z ${!var} ]]; then
                eerror "You must either use just the CD_ROOT";
                eerror "or specify ALL the CD_ROOT_X variables.";
                eerror "In this case, you will need ${CDROM_TOTAL_CDS} CD_ROOT_X variables.";
                die "could not locate CD_ROOT_${cdcnt}";
            fi;
        done;
        export CDROM_ROOT=${CD_ROOT_1:-${CD_ROOT}};
        einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}";
        export CDROM_SET=-1;
        for f in ${CDROM_CHECK_1//:/ };
        do
            ((++CDROM_SET));
            [[ -e ${CDROM_ROOT}/${f} ]] && break;
        done;
        export CDROM_MATCH=${f};
        return;
    fi;
    if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then
        einfo "This ebuild will need the ${CDROM_NAME:-cdrom for ${PN}}";
        echo;
        einfo "If you do not have the CD, but have the data files";
        einfo "mounted somewhere on your filesystem, just export";
        einfo "the variable CD_ROOT so that it points to the";
        einfo "directory containing the files.";
        echo;
        einfo "For example:";
        einfo "export CD_ROOT=/mnt/cdrom";
        echo;
    else
        if [[ -n ${CDROM_NAME_SET} ]]; then
            cdcnt=0;
            while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
                ((++cdcnt));
                export CDROM_NAME_${cdcnt}="${CDROM_NAME_SET[$((${cdcnt}-1))]}";
            done;
        fi;
        einfo "This package will need access to ${CDROM_TOTAL_CDS} cds.";
        cdcnt=0;
        while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
            ((++cdcnt));
            var="CDROM_NAME_${cdcnt}";
            [[ ! -z ${!var} ]] && einfo " CD ${cdcnt}: ${!var}";
        done;
        echo;
        einfo "If you do not have the CDs, but have the data files";
        einfo "mounted somewhere on your filesystem, just export";
        einfo "the following variables so they point to the right place:";
        einfon "";
        cdcnt=0;
        while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
            ((++cdcnt));
            echo -n " CD_ROOT_${cdcnt}";
        done;
        echo;
        einfo "Or, if you have all the files in the same place, or";
        einfo "you only have one cdrom, you can export CD_ROOT";
        einfo "and that place will be used as the same data source";
        einfo "for all the CDs.";
        echo;
        einfo "For example:";
        einfo "export CD_ROOT_1=/mnt/cdrom";
        echo;
    fi;
    export CDROM_SET="";
    export CDROM_CURRENT_CD=0;
    cdrom_load_next_cd
}
cdrom_load_next_cd () 
{ 
    local var;
    ((++CDROM_CURRENT_CD));
    unset CDROM_ROOT;
    var=CD_ROOT_${CDROM_CURRENT_CD};
    [[ -z ${!var} ]] && var="CD_ROOT";
    if [[ -z ${!var} ]]; then
        var="CDROM_CHECK_${CDROM_CURRENT_CD}";
        _cdrom_locate_file_on_cd ${!var};
    else
        export CDROM_ROOT=${!var};
    fi;
    einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"
}
check_extra_config () 
{ 
    local config negate die error reworkmodulenames;
    local soft_errors_count=0 hard_errors_count=0 config_required=0;
    local old_LINUX_CONFIG_EXISTS_DONE="${_LINUX_CONFIG_EXISTS_DONE}";
    linux-info_get_any_version;
    for config in ${CONFIG_CHECK};
    do
        if [[ "${config:0:1}" != "~" ]]; then
            config_required=1;
            break;
        fi;
    done;
    if [[ ${config_required} == 0 ]]; then
        if ! linux_config_exists; then
            ewarn "Unable to check for the following kernel config options due";
            ewarn "to absence of any configured kernel sources or compiled";
            ewarn "config:";
            for config in ${CONFIG_CHECK};
            do
                local_error="ERROR_${config#\~}";
                msg="${!local_error}";
                if [[ "x${msg}" == "x" ]]; then
                    local_error="WARNING_${config#\~}";
                    msg="${!local_error}";
                fi;
                ewarn " - ${config#\~}${msg:+ - }${msg}";
            done;
            ewarn "You're on your own to make sure they are set if needed.";
            export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}";
            return 0;
        fi;
    else
        require_configured_kernel;
    fi;
    einfo "Checking for suitable kernel configuration options...";
    for config in ${CONFIG_CHECK};
    do
        die=1;
        error=0;
        negate=0;
        reworkmodulenames=0;
        if [[ ${config:0:1} == "~" ]]; then
            die=0;
            config=${config:1};
        else
            if [[ ${config:0:1} == "@" ]]; then
                die=0;
                reworkmodulenames=1;
                config=${config:1};
            fi;
        fi;
        if [[ ${config:0:1} == "!" ]]; then
            negate=1;
            config=${config:1};
        fi;
        if [[ ${negate} == 1 ]]; then
            linux_chkconfig_present ${config} && error=2;
        else
            if [[ ${reworkmodulenames} == 1 ]]; then
                local temp_config="${config//*:}" i n;
                config="${config//:*}";
                if linux_chkconfig_present ${config}; then
                    for i in ${MODULE_NAMES};
                    do
                        n="${i//${temp_config}}";
                        [[ -z ${n//\(*} ]] && MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}";
                    done;
                    error=2;
                fi;
            else
                linux_chkconfig_present ${config} || error=1;
            fi;
        fi;
        if [[ ${error} > 0 ]]; then
            local report_func="eerror" local_error;
            local_error="ERROR_${config}";
            local_error="${!local_error}";
            if [[ -z "${local_error}" ]]; then
                local_error="${config}_ERROR";
                local_error="${!local_error}";
            fi;
            if [[ ${die} == 0 && -z "${local_error}" ]]; then
                local_error="WARNING_${config}";
                local_error="${!local_error}";
                if [[ -n "${local_error}" ]]; then
                    report_func="ewarn";
                fi;
            fi;
            if [[ -z "${local_error}" ]]; then
                [[ ${error} == 1 ]] && local_error="is not set when it should be." || local_error="should not be set. But it is.";
                local_error="CONFIG_${config}:\t ${local_error}";
            fi;
            if [[ ${die} == 0 ]]; then
                ${report_func} "  ${local_error}";
                soft_errors_count=$[soft_errors_count + 1];
            else
                ${report_func} "  ${local_error}";
                hard_errors_count=$[hard_errors_count + 1];
            fi;
        fi;
    done;
    if [[ ${hard_errors_count} > 0 ]]; then
        eerror "Please check to make sure these options are set correctly.";
        eerror "Failure to do so may cause unexpected problems.";
        eerror "Once you have satisfied these options, please try merging";
        eerror "this package again.";
        export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}";
        die "Incorrect kernel configuration options";
    else
        if [[ ${soft_errors_count} > 0 ]]; then
            ewarn "Please check to make sure these options are set correctly.";
            ewarn "Failure to do so may cause unexpected problems.";
        else
            eend 0;
        fi;
    fi;
    export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}"
}
check_kernel_built () 
{ 
    require_configured_kernel;
    get_version;
    if [ ! -f "${KV_OUT_DIR}/include/linux/version.h" ]; then
        eerror "These sources have not yet been prepared.";
        eerror "We cannot build against an unprepared tree.";
        eerror "To resolve this, please type the following:";
        eerror;
        eerror "# cd ${KV_DIR}";
        eerror "# make oldconfig";
        eerror "# make modules_prepare";
        eerror;
        eerror "Then please try merging this module again.";
        die "Kernel sources need compiling first";
    fi
}
check_license () 
{ 
    die "you no longer need this as portage supports ACCEPT_LICENSE itself"
}
check_modules_supported () 
{ 
    require_configured_kernel;
    get_version;
    if ! linux_chkconfig_builtin "MODULES"; then
        eerror "These sources do not support loading external modules.";
        eerror "to be able to use this module please enable \"Loadable modules support\"";
        eerror "in your kernel, recompile and then try merging this module again.";
        die "No support for external modules in ${KV_FULL} config";
    fi
}
check_vermagic () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local curr_gcc_ver=$(gcc -dumpversion);
    local tmpfile old_chost old_gcc_ver result=0;
    tmpfile=`find "${KV_DIR}/" -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`;
    tmpfile=${tmpfile//*usr/lib};
    tmpfile=${tmpfile//\/include*};
    old_chost=${tmpfile//*gcc\/};
    old_chost=${old_chost//\/*};
    old_gcc_ver=${tmpfile//*\/};
    if [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then
        ewarn "";
        ewarn "Unable to detect what version of GCC was used to compile";
        ewarn "the kernel. Build will continue, but you may experience problems.";
    else
        if [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then
            ewarn "";
            ewarn "The version of GCC you are using (${curr_gcc_ver}) does";
            ewarn "not match the version of GCC used to compile the";
            ewarn "kernel (${old_gcc_ver}).";
            result=1;
        else
            if [[ ${CHOST} != ${old_chost} ]]; then
                ewarn "";
                ewarn "The current CHOST (${CHOST}) does not match the chost";
                ewarn "used when compiling the kernel (${old_chost}).";
                result=1;
            fi;
        fi;
    fi;
    if [[ ${result} -gt 0 ]]; then
        ewarn "";
        ewarn "Build will not continue, because you will experience problems.";
        ewarn "To fix this either change the version of GCC you wish to use";
        ewarn "to match the kernel, or recompile the kernel first.";
        die "GCC Version Mismatch.";
    fi
}
check_zlibinflate () 
{ 
    require_configured_kernel;
    get_version;
    local INFLATE;
    local DEFLATE;
    einfo "Determining the usability of ZLIB_INFLATE support in your kernel";
    ebegin "checking ZLIB_INFLATE";
    linux_chkconfig_builtin CONFIG_ZLIB_INFLATE;
    eend $?;
    [ "$?" != 0 ] && die;
    ebegin "checking ZLIB_DEFLATE";
    linux_chkconfig_builtin CONFIG_ZLIB_DEFLATE;
    eend $?;
    [ "$?" != 0 ] && die;
    local LINENO_START;
    local LINENO_END;
    local SYMBOLS;
    local x;
    LINENO_END="$(grep -n 'CONFIG_ZLIB_INFLATE y' ${KV_DIR}/lib/Config.in | cut -d : -f 1)";
    LINENO_START="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | grep -n 'if \[' | tail -n 1 | cut -d : -f 1)";
    (( LINENO_AMOUNT = $LINENO_END - $LINENO_START ));
    (( LINENO_END = $LINENO_END - 1 ));
    SYMBOLS="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | tail -n $LINENO_AMOUNT | sed -e 's/^.*\(CONFIG_[^\" ]*\).*/\1/g;')";
    for x in $SYMBOLS;
    do
        if [ "${!x}" = "y" ]; then
            einfo "${x} ensures zlib is linked into your kernel - excellent";
            return 0;
        fi;
    done;
    eerror;
    eerror "This kernel module requires ZLIB library support.";
    eerror "You have enabled zlib support in your kernel, but haven't enabled";
    eerror "enabled any option that will ensure that zlib is linked into your";
    eerror "kernel.";
    eerror;
    eerror "Please ensure that you enable at least one of these options:";
    eerror;
    for x in $SYMBOLS;
    do
        eerror "  * $x";
    done;
    eerror;
    eerror "Please remember to recompile and install your kernel, and reboot";
    eerror "into your new kernel before attempting to load this kernel module.";
    die "Kernel doesn't include zlib support"
}
convert_to_m () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if use_m; then
        [ ! -f "${1}" ] && die "convert_to_m() requires a filename as an argument";
        ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS=";
        sed -i 's:SUBDIRS=:M=:g' "${1}";
        eend $?;
    fi
}
delete_all_version_separators () 
{ 
    replace_all_version_separators "" "${1}"
}
delete_version_separator () 
{ 
    replace_version_separator "${1}" "" "${2}"
}
dlopen_lib () 
{ 
    case "${CHOST}" in 
        *-linux-gnu* | *-linux-uclibc | *-interix*)
            echo "-ldl"
        ;;
    esac
}
doicon () 
{ 
    ( local i j ret;
    insinto /usr/share/pixmaps;
    for i in "$@";
    do
        if [[ -f ${i} ]]; then
            doins "${i}";
            ((ret+=$?));
        else
            if [[ -d ${i} ]]; then
                for j in "${i}"/*.png;
                do
                    doins "${j}";
                    ((ret+=$?));
                done;
            else
                ((++ret));
            fi;
        fi;
    done;
    exit ${ret} )
}
domenu () 
{ 
    ( local i j ret=0;
    insinto /usr/share/applications;
    for i in "$@";
    do
        if [[ -f ${i} ]]; then
            doins "${i}";
            ((ret+=$?));
        else
            if [[ -d ${i} ]]; then
                for j in "${i}"/*.desktop;
                do
                    doins "${j}";
                    ((ret+=$?));
                done;
            else
                ((++ret));
            fi;
        fi;
    done;
    exit ${ret} )
}
ebeep () 
{ 
    ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
econf_build () 
{ 
    tc-env_build econf --build=${CBUILD:-${CHOST}} "$@"
}
ecvs_clean () 
{ 
    [[ -z $* ]] && set -- .;
    find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf;
    find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf
}
edos2unix () 
{ 
    [[ $# -eq 0 ]] && return 0;
    sed -i 's/\r$//' -- "$@" || die
}
egetent () 
{ 
    local db=$1 key=$2;
    [[ $# -ge 3 ]] && die "usage: egetent <database> <key>";
    case ${db} in 
        passwd | group)

        ;;
        *)
            die "sorry, database '${db}' not yet supported; file a bug"
        ;;
    esac;
    case ${CHOST} in 
        *-darwin[678])
            case ${key} in 
                *[!0-9]*)
                    nidump ${db} . | awk -F: "(\$1 ~ /^${key}\$/) {print;exit;}"
                ;;
                *)
                    nidump ${db} . | awk -F: "(\$3 == ${key}) {print;exit;}"
                ;;
            esac
        ;;
        *-darwin*)
            local mykey;
            case ${db} in 
                passwd)
                    db="Users" mykey="UniqueID"
                ;;
                group)
                    db="Groups" mykey="PrimaryGroupID"
                ;;
            esac;
            case ${key} in 
                *[!0-9]*)
                    dscl . -read /${db}/${key} 2> /dev/null | grep RecordName
                ;;
                *)
                    dscl . -search /${db} ${mykey} ${key} 2> /dev/null
                ;;
            esac
        ;;
        *-freebsd* | *-dragonfly*)
            case ${db} in 
                passwd)
                    db="user"
                ;;
                *)

                ;;
            esac;
            local opts;
            if [[ ${key} == [[:digit:]]* ]]; then
                [[ ${db} == "user" ]] && opts="-u" || opts="-g";
            fi;
            pw show ${db} ${opts} "${key}" -q
        ;;
        *-netbsd* | *-openbsd*)
            grep "${key}:\*:" /etc/${db}
        ;;
        *)
            nscd -i "${db}" 2> /dev/null;
            getent "${db}" "${key}"
        ;;
    esac
}
egethome () 
{ 
    local pos;
    [[ $# -eq 1 ]] || die "usage: egethome <user>";
    case ${CHOST} in 
        *-darwin* | *-freebsd* | *-dragonfly*)
            pos=9
        ;;
        *)
            pos=6
        ;;
    esac;
    egetent passwd "$1" | cut -d: -f${pos}
}
egetshell () 
{ 
    local pos;
    [[ $# -eq 1 ]] || die "usage: egetshell <user>";
    case ${CHOST} in 
        *-darwin* | *-freebsd* | *-dragonfly*)
            pos=10
        ;;
        *)
            pos=7
        ;;
    esac;
    egetent passwd "$1" | cut -d: -f${pos}
}
emktemp () 
{ 
    local exe="touch";
    [[ $1 == -d ]] && exe="mkdir" && shift;
    local topdir=$1;
    if [[ -z ${topdir} ]]; then
        [[ -z ${T} ]] && topdir="/tmp" || topdir=${T};
    fi;
    if ! type -P mktemp > /dev/null; then
        local tmp=/;
        while [[ -e ${tmp} ]]; do
            tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM};
        done;
        ${exe} "${tmp}" || ${exe} -p "${tmp}";
        echo "${tmp}";
    else
        if [[ ${exe} == "touch" ]]; then
            TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX;
        else
            TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX;
        fi;
    fi
}
enewgroup () 
{ 
    _assert_pkg_ebuild_phase ${FUNCNAME};
    local egroup=$1;
    shift;
    if [[ -z ${egroup} ]]; then
        eerror "No group specified !";
        die "Cannot call enewgroup without a group";
    fi;
    if [[ -n $(egetent group "${egroup}") ]]; then
        return 0;
    fi;
    einfo "Adding group '${egroup}' to your system ...";
    local egid=$1;
    shift;
    if [[ ! -z ${egid} ]]; then
        if [[ ${egid} -gt 0 ]]; then
            if [[ -n $(egetent group ${egid}) ]]; then
                egid="next available; requested gid taken";
            fi;
        else
            eerror "Groupid given but is not greater than 0 !";
            die "${egid} is not a valid GID";
        fi;
    else
        egid="next available";
    fi;
    einfo " - Groupid: ${egid}";
    if [[ $# -gt 0 ]]; then
        die "extra arguments no longer supported; please file a bug";
    fi;
    function _enewgroup_next_gid () 
    { 
        if [[ ${egid} == *[!0-9]* ]]; then
            for ((egid = 101; egid <= 999; egid++))
            do
                [[ -z $(egetent group ${egid}) ]] && break;
            done;
        fi
    };
    case ${CHOST} in 
        *-darwin*)
            _enewgroup_next_gid;
            dscl . create "/groups/${egroup}" gid ${egid};
            dscl . create "/groups/${egroup}" passwd '*'
        ;;
        *-freebsd* | *-dragonfly*)
            _enewgroup_next_gid;
            pw groupadd "${egroup}" -g ${egid} || die
        ;;
        *-netbsd*)
            _enewgroup_next_gid;
            groupadd -g ${egid} "${egroup}" || die
        ;;
        *)
            local opts;
            if [[ ${egid} == *[!0-9]* ]]; then
                opts="";
            else
                opts="-g ${egid}";
            fi;
            groupadd -r ${opts} "${egroup}" || die
        ;;
    esac
}
enewuser () 
{ 
    _assert_pkg_ebuild_phase ${FUNCNAME};
    local euser=$1;
    shift;
    if [[ -z ${euser} ]]; then
        eerror "No username specified !";
        die "Cannot call enewuser without a username";
    fi;
    if [[ -n $(egetent passwd "${euser}") ]]; then
        return 0;
    fi;
    einfo "Adding user '${euser}' to your system ...";
    local opts=();
    local euid=$1;
    shift;
    if [[ -n ${euid} && ${euid} != -1 ]]; then
        if [[ ${euid} -gt 0 ]]; then
            if [[ -n $(egetent passwd ${euid}) ]]; then
                euid="next";
            fi;
        else
            eerror "Userid given but is not greater than 0 !";
            die "${euid} is not a valid UID";
        fi;
    else
        euid="next";
    fi;
    if [[ ${euid} == "next" ]]; then
        for ((euid = 101; euid <= 999; euid++))
        do
            [[ -z $(egetent passwd ${euid}) ]] && break;
        done;
    fi;
    opts+=(-u ${euid});
    einfo " - Userid: ${euid}";
    local eshell=$1;
    shift;
    if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then
        if [[ ! -e ${ROOT}${eshell} ]]; then
            eerror "A shell was specified but it does not exist !";
            die "${eshell} does not exist in ${ROOT}";
        fi;
        if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then
            eerror "Do not specify ${eshell} yourself, use -1";
            die "Pass '-1' as the shell parameter";
        fi;
    else
        for eshell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null;
        do
            [[ -x ${ROOT}${eshell} ]] && break;
        done;
        if [[ ${eshell} == "/dev/null" ]]; then
            eerror "Unable to identify the shell to use, proceeding with userland default.";
            case ${USERLAND} in 
                GNU)
                    eshell="/bin/false"
                ;;
                BSD)
                    eshell="/sbin/nologin"
                ;;
                Darwin)
                    eshell="/usr/sbin/nologin"
                ;;
                *)
                    die "Unable to identify the default shell for userland ${USERLAND}"
                ;;
            esac;
        fi;
    fi;
    einfo " - Shell: ${eshell}";
    opts+=(-s "${eshell}");
    local ehome=$1;
    shift;
    if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then
        ehome="/dev/null";
    fi;
    einfo " - Home: ${ehome}";
    opts+=(-d "${ehome}");
    local egroups=$1;
    shift;
    local g egroups_arr;
    IFS="," read -r -a egroups_arr <<< "${egroups}";
    shift;
    if [[ ${#egroups_arr[@]} -gt 0 ]]; then
        local defgroup exgroups;
        for g in "${egroups_arr[@]}";
        do
            if [[ -z $(egetent group "${g}") ]]; then
                eerror "You must add group ${g} to the system first";
                die "${g} is not a valid GID";
            fi;
            if [[ -z ${defgroup} ]]; then
                defgroup=${g};
            else
                exgroups+=",${g}";
            fi;
        done;
        opts+=(-g "${defgroup}");
        if [[ ! -z ${exgroups} ]]; then
            opts+=(-G "${exgroups:1}");
        fi;
    fi;
    einfo " - Groups: ${egroups:-(none)}";
    if [[ $# -gt 0 ]]; then
        die "extra arguments no longer supported; please file a bug";
    else
        local comment="added by portage for ${PN}";
        opts+=(-c "${comment}");
        einfo " - GECOS: ${comment}";
    fi;
    case ${CHOST} in 
        *-darwin*)
            dscl . create "/users/${euser}" uid ${euid};
            dscl . create "/users/${euser}" shell "${eshell}";
            dscl . create "/users/${euser}" home "${ehome}";
            dscl . create "/users/${euser}" realname "added by portage for ${PN}";
            for g in "${egroups_arr[@]}";
            do
                dscl . merge "/groups/${g}" users "${euser}";
            done
        ;;
        *-freebsd* | *-dragonfly*)
            pw useradd "${euser}" "${opts[@]}" || die
        ;;
        *-netbsd*)
            useradd "${opts[@]}" "${euser}" || die
        ;;
        *-openbsd*)
            useradd -u ${euid} -s "${eshell}" -d "${ehome}" -g "${egroups}" "${euser}" || die
        ;;
        *)
            useradd -r "${opts[@]}" "${euser}" || die
        ;;
    esac;
    if [[ ! -e ${ROOT}/${ehome} ]]; then
        einfo " - Creating ${ehome} in ${ROOT}";
        mkdir -p "${ROOT}/${ehome}";
        chown "${euser}" "${ROOT}/${ehome}";
        chmod 755 "${ROOT}/${ehome}";
    fi
}
epatch () 
{ 
    function _epatch_draw_line () 
    { 
        [[ -z $1 ]] && set "$(printf "%65s" '')";
        echo "${1//?/=}"
    };
    unset P4CONFIG P4PORT P4USER;
    if [[ $# -gt 1 ]]; then
        local m;
        for m in "$@";
        do
            epatch "${m}";
        done;
        return 0;
    fi;
    local SINGLE_PATCH="no";
    [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}";
    if [[ -f $1 ]]; then
        SINGLE_PATCH="yes";
        set -- "$1";
        local EPATCH_SUFFIX=$1;
    else
        if [[ -d $1 ]]; then
            set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"};
        else
            if [[ -f ${EPATCH_SOURCE}/$1 ]]; then
                epatch "${EPATCH_SOURCE}/$1";
                return $?;
            else
                [[ $# -ne 0 ]] && EPATCH_SOURCE=$1;
                echo;
                eerror "Cannot find \$EPATCH_SOURCE!  Value for \$EPATCH_SOURCE is:";
                eerror;
                eerror "  ${EPATCH_SOURCE}";
                eerror "  ( ${EPATCH_SOURCE##*/} )";
                echo;
                die "Cannot find \$EPATCH_SOURCE!";
            fi;
        fi;
    fi;
    local PIPE_CMD;
    case ${EPATCH_SUFFIX##*\.} in 
        xz)
            PIPE_CMD="xz -dc"
        ;;
        lzma)
            PIPE_CMD="lzma -dc"
        ;;
        bz2)
            PIPE_CMD="bzip2 -dc"
        ;;
        gz | Z | z)
            PIPE_CMD="gzip -dc"
        ;;
        ZIP | zip)
            PIPE_CMD="unzip -p"
        ;;
        *)

        ;;
    esac;
    [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}";
    local x;
    for x in "$@";
    do
        [[ ! -f ${x} ]] && continue;
        local patchname=${x##*/};
        local a=${patchname#*_};
        a=${a%%_*};
        if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then
            continue;
        fi;
        if [[ -n ${EPATCH_EXCLUDE} ]]; then
            eshopts_push -o noglob;
            local ex;
            for ex in ${EPATCH_EXCLUDE};
            do
                if [[ ${patchname} == ${ex} ]]; then
                    eshopts_pop;
                    continue 2;
                fi;
            done;
            eshopts_pop;
        fi;
        if [[ ${SINGLE_PATCH} == "yes" ]]; then
            if [[ -n ${EPATCH_SINGLE_MSG} ]]; then
                einfo "${EPATCH_SINGLE_MSG}";
            else
                einfo "Applying ${patchname} ...";
            fi;
        else
            einfo "  ${patchname} ...";
        fi;
        local STDERR_TARGET="${T}/${patchname}.out";
        if [[ -e ${STDERR_TARGET} ]]; then
            STDERR_TARGET="${T}/${patchname}-$$.out";
        fi;
        printf "***** %s *****\nPWD: %s\n\n" "${patchname}" "${PWD}" > "${STDERR_TARGET}";
        local count=0;
        local PATCH_TARGET;
        if [[ -n ${PIPE_CMD} ]]; then
            PATCH_TARGET="${T}/$$.patch";
            echo "PIPE_COMMAND:  ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}";
            if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then
                echo;
                eerror "Could not extract patch!";
                count=5;
                break;
            fi;
        else
            PATCH_TARGET=${x};
        fi;
        local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }');
        if [[ -n ${abs_paths} ]]; then
            count=1;
            printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}";
        fi;
        local rel_paths=$(egrep -n '^[-+]{3} [^	]*[.][.]/' "${PATCH_TARGET}");
        if [[ -n ${rel_paths} ]]; then
            eqawarn "QA Notice: Your patch uses relative paths '../'.";
            eqawarn " In the future this will cause a failure.";
            eqawarn "${rel_paths}";
        fi;
        while [[ ${count} -lt 5 ]]; do
            ( _epatch_draw_line "***** ${patchname} *****";
            echo;
            echo "PATCH COMMAND:  patch -p${count} ${EPATCH_OPTS} < '${PATCH_TARGET}'";
            echo;
            _epatch_draw_line "***** ${patchname} *****";
            patch -p${count} ${EPATCH_OPTS} --dry-run -f < "${PATCH_TARGET}" 2>&1;
            ret=$?;
            echo;
            echo "patch program exited with status ${ret}";
            exit ${ret} ) >> "${STDERR_TARGET}";
            if [ $? -eq 0 ]; then
                ( _epatch_draw_line "***** ${patchname} *****";
                echo;
                echo "ACTUALLY APPLYING ${patchname} ...";
                echo;
                _epatch_draw_line "***** ${patchname} *****";
                patch -p${count} ${EPATCH_OPTS} < "${PATCH_TARGET}" 2>&1;
                ret=$?;
                echo;
                echo "patch program exited with status ${ret}";
                exit ${ret} ) >> "${STDERR_TARGET}";
                if [ $? -ne 0 ]; then
                    echo;
                    eerror "A dry-run of patch command succeeded, but actually";
                    eerror "applying the patch failed!";
                    count=5;
                fi;
                break;
            fi;
            : $(( count++ ));
        done;
        if [[ -n ${PIPE_CMD} ]]; then
            rm -f "${PATCH_TARGET}";
        fi;
        if [[ ${count} -ge 5 ]]; then
            echo;
            eerror "Failed Patch: ${patchname} !";
            eerror " ( ${PATCH_TARGET} )";
            eerror;
            eerror "Include in your bugreport the contents of:";
            eerror;
            eerror "  ${STDERR_TARGET}";
            echo;
            die "Failed Patch: ${patchname}!";
        fi;
        rm -f "${STDERR_TARGET}";
        eend 0;
    done;
    [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching";
    :
}
epatch_user () 
{ 
    [[ $# -ne 0 ]] && die "epatch_user takes no options";
    local applied="${T}/epatch_user.applied";
    [[ -e ${applied} ]] && return 2;
    local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;
    for check in {${CATEGORY}/${PF},${CATEGORY}/${P},${CATEGORY}/${PN}};
    do
        EPATCH_SOURCE=${base}/${CTARGET}/${check};
        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check};
        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check};
        if [[ -d ${EPATCH_SOURCE} ]]; then
            EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch;
            echo "${EPATCH_SOURCE}" > "${applied}";
            return 0;
        fi;
    done;
    echo "none" > "${applied}";
    return 1
}
epause () 
{ 
    ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
epunt_cxx () 
{ 
    local dir=$1;
    [[ -z ${dir} ]] && dir=${S};
    ebegin "Removing useless C++ checks";
    local f;
    find "${dir}" -name configure | while read f; do
        patch --no-backup-if-mismatch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null;
    done;
    eend 0
}
eshopts_pop () 
{ 
    local s;
    estack_pop eshopts s || die "${FUNCNAME}: unbalanced push";
    if [[ ${s} == "shopt -"* ]]; then
        eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}";
    else
        set +$- || die "${FUNCNAME}: sanity: invalid shell settings: $-";
        set -${s} || die "${FUNCNAME}: sanity: unable to restore saved shell settings: ${s}";
    fi
}
eshopts_push () 
{ 
    if [[ $1 == -[su] ]]; then
        estack_push eshopts "$(shopt -p)";
        [[ $# -eq 0 ]] && return 0;
        shopt "$@" || die "${FUNCNAME}: bad options to shopt: $*";
    else
        estack_push eshopts $-;
        [[ $# -eq 0 ]] && return 0;
        set "$@" || die "${FUNCNAME}: bad options to set: $*";
    fi
}
estack_pop () 
{ 
    [[ $# -eq 0 || $# -gt 2 ]] && die "estack_pop: incorrect # of arguments";
    local __estack_name="__ESTACK_$1__";
    shift;
    local __estack_retvar=$1;
    shift;
    eval local __estack_i=\${#${__estack_name}\[@\]};
    [[ $(( --__estack_i )) -eq -1 ]] && return 1;
    if [[ -n ${__estack_retvar} ]]; then
        eval ${__estack_retvar}=\"\${${__estack_name}\[${__estack_i}\]}\";
    fi;
    eval unset ${__estack_name}\[${__estack_i}\]
}
estack_push () 
{ 
    [[ $# -eq 0 ]] && die "estack_push: incorrect # of arguments";
    local stack_name="__ESTACK_$1__";
    shift;
    eval ${stack_name}+=\( \"\$@\" \)
}
esvn_clean () 
{ 
    [[ -z $* ]] && set -- .;
    find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
}
eumask_pop () 
{ 
    local s;
    estack_pop eumask s || die "${FUNCNAME}: unbalanced push";
    umask ${s} || die "${FUNCNAME}: sanity: could not restore umask: ${s}"
}
eumask_push () 
{ 
    estack_push eumask "$(umask)";
    umask "$@" || die "${FUNCNAME}: bad options to umask: $*"
}
find_module_params () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local matched_offset=0 matched_opts=0 test="${@}" temp_var result;
    local i=0 y=0 z=0;
    for ((i=0; i<=${#test}; i++))
    do
        case ${test:${i}:1} in 
            \()
                matched_offset[0]=${i}
            ;;
            \:)
                matched_opts=$((${matched_opts} + 1));
                matched_offset[${matched_opts}]="${i}"
            ;;
            \))
                matched_opts=$((${matched_opts} + 1));
                matched_offset[${matched_opts}]="${i}"
            ;;
        esac;
    done;
    for ((i=0; i<=${matched_opts}; i++))
    do
        case ${i} in 
            0)
                tempvar=${test:0:${matched_offset[0]}}
            ;;
            *)
                y=$((${matched_offset[$((${i} - 1))]} + 1));
                z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
                z=$((${z} - 1));
                tempvar=${test:${y}:${z}}
            ;;
        esac;
        case ${i} in 
            0)
                result="${result} modulename:${tempvar}"
            ;;
            1)
                result="${result} libdir:${tempvar}"
            ;;
            2)
                result="${result} srcdir:${tempvar}"
            ;;
            3)
                result="${result} objdir:${tempvar}"
            ;;
        esac;
    done;
    echo ${result}
}
find_unpackable_file () 
{ 
    local src=$1;
    if [[ -z ${src} ]]; then
        src=${DISTDIR}/${A};
    else
        if [[ -e ${DISTDIR}/${src} ]]; then
            src=${DISTDIR}/${src};
        else
            if [[ -e ${PWD}/${src} ]]; then
                src=${PWD}/${src};
            else
                if [[ -e ${src} ]]; then
                    src=${src};
                fi;
            fi;
        fi;
    fi;
    [[ ! -e ${src} ]] && return 1;
    echo "${src}"
}
gcc-fullversion () 
{ 
    _gcc_fullversion '$1.$2.$3' "$@"
}
gcc-major-version () 
{ 
    _gcc_fullversion '$1' "$@"
}
gcc-micro-version () 
{ 
    _gcc_fullversion '$3' "$@"
}
gcc-minor-version () 
{ 
    _gcc_fullversion '$2' "$@"
}
gcc-specs-directive () 
{ 
    local directive subdname subdirective;
    directive="$(_gcc-specs-directive_raw $1)";
    while [[ ${directive} == *%\(*\)* ]]; do
        subdname=${directive/*%\(};
        subdname=${subdname/\)*};
        subdirective="$(_gcc-specs-directive_raw ${subdname})";
        directive="${directive//\%(${subdname})/${subdirective}}";
    done;
    echo "${directive}";
    return 0
}
gcc-specs-nostrict () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]])
}
gcc-specs-now () 
{ 
    local directive;
    directive=$(gcc-specs-directive link_command);
    return $([[ "${directive/\{!nonow:}" != "${directive}" ]])
}
gcc-specs-pie () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!nopie:}" != "${directive}" ]])
}
gcc-specs-relro () 
{ 
    local directive;
    directive=$(gcc-specs-directive link_command);
    return $([[ "${directive/\{!norelro:}" != "${directive}" ]])
}
gcc-specs-ssp () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]])
}
gcc-specs-ssp-to-all () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]])
}
gcc-version () 
{ 
    _gcc_fullversion '$1.$2' "$@"
}
gen_usr_ldscript () 
{ 
    local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname);
    [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/;
    tc-is-static-only && return;
    dodir /usr/${libdir};
    if [[ $1 == "-a" ]]; then
        auto=true;
        shift;
        dodir /${libdir};
    fi;
    output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p');
    [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )";
    for lib in "$@";
    do
        local tlib;
        if ${auto}; then
            lib="lib${lib}${suffix}";
        else
            [[ -r ${ED}/${libdir}/${lib} ]] || continue;
        fi;
        case ${CTARGET:-${CHOST}} in 
            *-darwin*)
                if ${auto}; then
                    tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                else
                    tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib});
                fi;
                [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}";
                tlib=${tlib##*/};
                if ${auto}; then
                    mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    fi;
                    rm -f "${ED}"/${libdir}/${lib};
                fi;
                if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then
                    chmod u+w "${ED}${libdir}/${tlib}";
                    local nowrite=yes;
                fi;
                install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed";
                [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}";
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            *-aix* | *-irix* | *64*-hpux* | *-interix* | *-winnt*)
                if ${auto}; then
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    tlib=$(readlink "${ED}"/${libdir}/${lib});
                    tlib=${tlib##*/};
                    if [[ -z ${tlib} ]]; then
                        tlib=${lib};
                    else
                        rm -f "${ED}"/${libdir}/${lib};
                    fi;
                else
                    tlib=${lib};
                fi;
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            hppa*-hpux*)
                if ${auto}; then
                    tlib=$(chatr "${ED}"/usr/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
                    [[ -z ${tlib} ]] && tlib=${lib};
                    tlib=${tlib##*/};
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    [[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=$(chatr "${ED}"/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
                    [[ -z ${tlib} ]] && tlib=${lib};
                    tlib=${tlib##*/};
                fi;
                pushd "${ED}"/usr/${libdir} > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                [[ ${tlib} != ${lib} ]] && ln -snf "../../${libdir}/${tlib}" "${tlib}";
                popd > /dev/null
            ;;
            *)
                if ${auto}; then
                    tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                    [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}";
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=${lib};
                fi;
                cat > "${ED}/usr/${libdir}/${lib}"  <<-END_LDSCRIPT
/* GNU ld script
   Since Gentoo has critical dynamic libraries in /lib, and the static versions
   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
   run into linking problems.  This "fake" dynamic lib is a linker script that
   redirects the linker to the real lib.  And yes, this works in the cross-
   compiling scenario as the sysroot-ed linker will prepend the real path.

   See bug http://bugs.gentoo.org/4411 for more info.
 */
${output_format}
GROUP ( ${EPREFIX}/${libdir}/${tlib} )
END_LDSCRIPT

            ;;
        esac
        fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
    done
}
generate_modulesd () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local currm_path currm currm_t t myIFS myVAR;
    local module_docs module_enabled module_aliases module_additions module_examples module_modinfo module_opts;
    for currm_path in ${@};
    do
        currm=${currm_path//*\/};
        currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]');
        currm_t=${currm};
        while [[ -z ${currm_t//*-*} ]]; do
            currm_t=${currm_t/-/_};
        done;
        module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})";
        module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})";
        module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})";
        module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})";
        module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})";
        [[ ${module_aliases} -eq 0 ]] && unset module_aliases;
        [[ ${module_additions} -eq 0 ]] && unset module_additions;
        [[ ${module_examples} -eq 0 ]] && unset module_examples;
        [[ ${module_enabled} == no ]] && return 0;
        for t in ${!module_*};
        do
            [[ -z ${!t} ]] && unset ${t};
        done;
        [[ -z ${!module_*} ]] && return 0;
        module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})";
        module_config="${T}/modulesd-${currm}";
        ebegin "Preparing file for modules.d";
        echo "# modules.d configuration file for ${currm}" >> "${module_config}";
        [[ -n ${module_docs} ]] && echo "# For more information please read:" >> "${module_config}";
        for t in ${module_docs};
        do
            echo "#    ${t//*\/}" >> "${module_config}";
        done;
        echo >> "${module_config}";
        if [[ ${module_aliases} -gt 0 ]]; then
            echo "# Internal Aliases - Do not edit" >> "${module_config}";
            echo "# ------------------------------" >> "${module_config}";
            for ((t=0; t<${module_aliases}; t++))
            do
                echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" >> "${module_config}";
            done;
            echo '' >> "${module_config}";
        fi;
        if [[ -n ${module_modinfo} ]]; then
            echo >> "${module_config}";
            echo "# Configurable module parameters" >> "${module_config}";
            echo "# ------------------------------" >> "${module_config}";
            myIFS="${IFS}";
            IFS="$(echo -en "\n\b")";
            for t in ${module_modinfo};
            do
                myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")";
                if [[ -n ${myVAR} ]]; then
                    module_opts="${module_opts} ${t%%:*}:${myVAR}";
                fi;
                echo -e "# ${t%%:*}:\t${t#*:}" >> "${module_config}";
            done;
            IFS="${myIFS}";
            echo '' >> "${module_config}";
        fi;
        if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]; then
            if [[ -n ${module_opts} ]]; then
                echo "# For Example..." >> "${module_config}";
                echo "# --------------" >> "${module_config}";
                for t in ${module_opts};
                do
                    echo "# options ${currm} ${t//:*}=${t//*:}" >> "${module_config}";
                done;
                echo '' >> "${module_config}";
            fi;
        else
            if [[ ${module_examples} -gt 0 ]]; then
                echo "# For Example..." >> "${module_config}";
                echo "# --------------" >> "${module_config}";
                for ((t=0; t<${module_examples}; t++))
                do
                    echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" >> "${module_config}";
                done;
                echo '' >> "${module_config}";
            fi;
        fi;
        if [[ ${module_additions} -gt 0 ]]; then
            for ((t=0; t<${module_additions}; t++))
            do
                echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" >> "${module_config}";
            done;
            echo '' >> "${module_config}";
        fi;
        if kernel_is ge 2 6; then
            insinto /etc/modprobe.d;
        else
            insinto /etc/modules.d;
        fi;
        newins "${module_config}" "${currm_path//*\/}.conf";
        [[ -n ${module_docs} ]] && dodoc ${module_docs};
    done;
    eend 0;
    return 0
}
get-KERNEL_CC () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if [[ -n ${KERNEL_CC} ]]; then
        echo "${KERNEL_CC}";
        return;
    fi;
    local kernel_cc;
    if [ -n "${KERNEL_ABI}" ]; then
        kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))";
    else
        kernel_cc=$(tc-getCC);
    fi;
    echo "${kernel_cc}"
}
get_abi_CFLAGS () 
{ 
    get_abi_var CFLAGS "$@"
}
get_abi_CHOST () 
{ 
    get_abi_var CHOST "$@"
}
get_abi_CTARGET () 
{ 
    get_abi_var CTARGET "$@"
}
get_abi_FAKE_TARGETS () 
{ 
    get_abi_var FAKE_TARGETS "$@"
}
get_abi_LDFLAGS () 
{ 
    get_abi_var LDFLAGS "$@"
}
get_abi_LIBDIR () 
{ 
    get_abi_var LIBDIR "$@"
}
get_abi_var () 
{ 
    local flag=$1;
    local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}};
    local var="${flag}_${abi}";
    echo ${!var}
}
get_after_major_version () 
{ 
    echo $(get_version_component_range 2- "${1:-${PV}}")
}
get_all_abis () 
{ 
    local order="";
    if [[ -z ${MULTILIB_ABIS} ]]; then
        echo "default";
        return 0;
    fi;
    for x in ${MULTILIB_ABIS};
    do
        if [[ ${x} != ${DEFAULT_ABI} ]]; then
            order="${order:+${order} }${x}";
        fi;
    done;
    order="${order:+${order} }${DEFAULT_ABI}";
    echo ${order};
    return 0
}
get_all_libdirs () 
{ 
    local libdirs;
    local abi;
    local dir;
    for abi in ${MULTILIB_ABIS};
    do
        libdirs+=" $(get_abi_LIBDIR ${abi})";
    done;
    [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib";
    echo "${libdirs}"
}
get_all_version_components () 
{ 
    eshopts_push -s extglob;
    local ver_str=${1:-${PV}} result;
    result=();
    if [[ ${VERSIONATOR_CACHE_VER_STR} == ${ver_str} ]]; then
        echo ${VERSIONATOR_CACHE_RESULT};
        eshopts_pop;
        return;
    fi;
    export VERSIONATOR_CACHE_VER_STR=${ver_str};
    while [[ -n $ver_str ]]; do
        case "${ver_str::1}" in 
            [[:digit:]])
                result+=("${ver_str%%[^[:digit:]]*}");
                ver_str=${ver_str##+([[:digit:]])}
            ;;
            [-_.])
                result+=("${ver_str::1}");
                ver_str=${ver_str:1}
            ;;
            [[:alpha:]])
                local not_match=${ver_str##+([[:alpha:]])*([[:digit:]])};
                result+=("${ver_str::${#ver_str} - ${#not_match}}");
                ver_str=${not_match}
            ;;
            *)
                result+=("${ver_str::1}");
                ver_str=${ver_str:1}
            ;;
        esac;
    done;
    export VERSIONATOR_CACHE_RESULT=${result[*]};
    echo ${result[@]};
    eshopts_pop
}
get_bmake () 
{ 
    if [[ ${USERLAND} == *BSD ]]; then
        echo make;
    else
        if [[ ${USERLAND} == "Darwin" ]]; then
            echo bsdmake;
        else
            echo pmake;
        fi;
    fi
}
get_install_abis () 
{ 
    local order="";
    if [[ -z ${MULTILIB_ABIS} ]]; then
        echo "default";
        return 0;
    fi;
    if [[ ${EMULTILIB_PKG} == "true" ]]; then
        for x in ${MULTILIB_ABIS};
        do
            if [[ ${x} != "${DEFAULT_ABI}" ]]; then
                has ${x} ${ABI_DENY} || order="${order} ${x}";
            fi;
        done;
        has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}";
        if [[ -n ${ABI_ALLOW} ]]; then
            local ordera="";
            for x in ${order};
            do
                if has ${x} ${ABI_ALLOW}; then
                    ordera="${ordera} ${x}";
                fi;
            done;
            order=${ordera};
        fi;
    else
        order=${DEFAULT_ABI};
    fi;
    if [[ -z ${order} ]]; then
        die "The ABI list is empty.  Are you using a proper multilib profile?  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";
    fi;
    echo ${order};
    return 0
}
get_last_version_component_index () 
{ 
    echo $(($(get_version_component_count "${1:-${PV}}" ) - 1))
}
get_libdir () 
{ 
    local CONF_LIBDIR;
    if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then
        echo ${CONF_LIBDIR_OVERRIDE};
    else
        get_abi_LIBDIR;
    fi
}
get_libname () 
{ 
    local libname;
    local ver=$1;
    case ${CHOST} in 
        *-cygwin | mingw* | *-mingw*)
            libname="dll"
        ;;
        *-darwin*)
            libname="dylib"
        ;;
        *-mint*)
            libname="irrelevant"
        ;;
        hppa*-hpux*)
            libname="sl"
        ;;
        *)
            libname="so"
        ;;
    esac;
    if [[ -z $* ]]; then
        echo ".${libname}";
    else
        for ver in "$@";
        do
            case ${CHOST} in 
                *-darwin*)
                    echo ".${ver}.${libname}"
                ;;
                *-mint*)
                    echo ".${libname}"
                ;;
                *)
                    echo ".${libname}.${ver}"
                ;;
            esac;
        done;
    fi
}
get_localversion () 
{ 
    local lv_list i x;
    for i in $(ls ${1}/localversion* 2>/dev/null);
    do
        [[ -n ${i//*~*} ]] && lv_list="${lv_list} ${i}";
    done;
    for i in ${lv_list};
    do
        x="${x}$(<${i})";
    done;
    x=${x/ /};
    echo ${x}
}
get_major_version () 
{ 
    local c=($(get_all_version_components "${1:-${PV}}"));
    echo ${c[0]}
}
get_makefile_extract_function () 
{ 
    local a='' b='' mkfunc='getfilevar';
    a="$(getfilevar VERSION ${KERNEL_MAKEFILE})";
    b="$(getfilevar_noexec VERSION ${KERNEL_MAKEFILE})";
    [[ "${a}" != "${b}" ]] && mkfunc='getfilevar_noexec';
    echo "${mkfunc}"
}
get_modname () 
{ 
    local modname;
    local ver=$1;
    case ${CHOST} in 
        *-darwin*)
            modname="bundle"
        ;;
        *)
            modname="so"
        ;;
    esac;
    echo ".${modname}"
}
get_mounts () 
{ 
    local point= node= fs= opts= foo=;
    if [[ $(uname -s) == "Linux" ]]; then
        while read node point fs opts foo; do
            echo "${point} ${node} ${fs} ${opts}";
        done < /proc/mounts;
        return;
    fi;
    local IFS='	';
    LC_ALL=C mount -p | while read node point fs foo; do
        opts=${fs#* };
        fs=${fs%% *};
        echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}";
    done
}
get_running_version () 
{ 
    KV_FULL=$(uname -r);
    if [[ -f ${ROOT}/lib/modules/${KV_FULL}/source/Makefile && -f ${ROOT}/lib/modules/${KV_FULL}/build/Makefile ]]; then
        KERNEL_DIR=$(readlink -f ${ROOT}/lib/modules/${KV_FULL}/source);
        KBUILD_OUTPUT=$(readlink -f ${ROOT}/lib/modules/${KV_FULL}/build);
        unset KV_FULL;
        get_version;
        return $?;
    else
        if [[ -f ${ROOT}/lib/modules/${KV_FULL}/source/Makefile ]]; then
            KERNEL_DIR=$(readlink -f ${ROOT}/lib/modules/${KV_FULL}/source);
            unset KV_FULL;
            get_version;
            return $?;
        else
            if [[ -f ${ROOT}/lib/modules/${KV_FULL}/build/Makefile ]]; then
                KERNEL_DIR=$(readlink -f ${ROOT}/lib/modules/${KV_FULL}/build);
                unset KV_FULL;
                get_version;
                return $?;
            else
                KV_MAJOR=$(get_version_component_range 1 ${KV_FULL});
                KV_MINOR=$(get_version_component_range 2 ${KV_FULL});
                KV_PATCH=$(get_version_component_range 3 ${KV_FULL});
                KV_PATCH=${KV_PATCH//-*};
                KV_EXTRA="${KV_FULL#${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}}";
            fi;
        fi;
    fi;
    return 0
}
get_version () 
{ 
    local kbuild_output mkfunc tmplocal;
    [ -n "${KV_FULL}" ] && return 0;
    unset KV_DIR;
    [ -z "${get_version_warning_done}" ] && qeinfo "Determining the location of the kernel source code";
    [ -h "${KERNEL_DIR}" ] && KV_DIR="$(readlink -f ${KERNEL_DIR})";
    [ -d "${KERNEL_DIR}" ] && KV_DIR="${KERNEL_DIR}";
    if [ -z "${KV_DIR}" ]; then
        if [ -z "${get_version_warning_done}" ]; then
            get_version_warning_done=1;
            qeerror "Unable to find kernel sources at ${KERNEL_DIR}";
            if [ "${KERNEL_DIR}" == "/usr/src/linux" ]; then
                qeinfo "Please make sure that ${KERNEL_DIR} points at your running kernel, ";
                qeinfo "(or the kernel you wish to build against).";
                qeinfo "Alternatively, set the KERNEL_DIR environment variable to the kernel sources location";
            else
                qeinfo "Please ensure that the KERNEL_DIR environment variable points at full Linux sources of the kernel you wish to compile against.";
            fi;
        fi;
        return 1;
    fi;
    if [ -z "${get_version_warning_done}" ]; then
        qeinfo "Found kernel source directory:";
        qeinfo "    ${KV_DIR}";
    fi;
    if [ ! -s "${KV_DIR}/Makefile" ]; then
        if [ -z "${get_version_warning_done}" ]; then
            get_version_warning_done=1;
            qeerror "Could not find a Makefile in the kernel source directory.";
            qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources";
        fi;
        return 1;
    fi;
    OUTPUT_DIR="${OUTPUT_DIR:-${KBUILD_OUTPUT}}";
    KERNEL_MAKEFILE="${KV_DIR}/Makefile";
    mkfunc="$(get_makefile_extract_function "${KERNEL_MAKEFILE}")";
    kbuild_output="$(${mkfunc} KBUILD_OUTPUT ${KERNEL_MAKEFILE})";
    OUTPUT_DIR="${OUTPUT_DIR:-${kbuild_output}}";
    KV_MAJOR="$(${mkfunc} VERSION ${KERNEL_MAKEFILE})";
    KV_MINOR="$(${mkfunc} PATCHLEVEL ${KERNEL_MAKEFILE})";
    KV_PATCH="$(${mkfunc} SUBLEVEL ${KERNEL_MAKEFILE})";
    KV_EXTRA="$(${mkfunc} EXTRAVERSION ${KERNEL_MAKEFILE})";
    if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ]; then
        if [ -z "${get_version_warning_done}" ]; then
            get_version_warning_done=1;
            qeerror "Could not detect kernel version.";
            qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources.";
        fi;
        return 1;
    fi;
    OUTPUT_DIR="${OUTPUT_DIR:-/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}/build}";
    [ -h "${OUTPUT_DIR}" ] && KV_OUT_DIR="$(readlink -f ${OUTPUT_DIR})";
    [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}";
    if [ -n "${KV_OUT_DIR}" ]; then
        qeinfo "Found kernel object directory:";
        qeinfo "    ${KV_OUT_DIR}";
    fi;
    KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}";
    if [ -s "${KV_OUT_DIR}"/include/config/kernel.release ]; then
        KV_LOCAL=$(<"${KV_OUT_DIR}"/include/config/kernel.release);
    else
        if [ -s "${KV_OUT_DIR}"/.kernelrelease ]; then
            KV_LOCAL=$(<"${KV_OUT_DIR}"/.kernelrelease);
        else
            KV_LOCAL=;
        fi;
    fi;
    tmplocal=${KV_LOCAL#${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}};
    if [ "$KV_LOCAL" = "$tmplocal" ]; then
        KV_LOCAL=;
    else
        KV_LOCAL=$tmplocal;
    fi;
    KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}";
    qeinfo "Found sources for kernel version:";
    qeinfo "    ${KV_FULL}";
    return 0
}
get_version_component_count () 
{ 
    local a=($(get_version_components "${1:-${PV}}"));
    echo ${#a[@]}
}
get_version_component_range () 
{ 
    eshopts_push -s extglob;
    local c v="${2:-${PV}}" range="${1}" range_start range_end;
    local -i i=-1 j=0;
    c=($(get_all_version_components "${v}"));
    range_start=${range%-*};
    range_start=${range_start:-1};
    range_end=${range#*-};
    range_end=${range_end:-${#c[@]}};
    while ((j < range_start)); do
        i+=1;
        ((i > ${#c[@]})) && eshopts_pop && return;
        [[ -n "${c[i]//[-._]}" ]] && j+=1;
    done;
    while ((j <= range_end)); do
        echo -n ${c[i]};
        ((i > ${#c[@]})) && eshopts_pop && return;
        [[ -n "${c[i]//[-._]}" ]] && j+=1;
        i+=1;
    done;
    eshopts_pop
}
get_version_components () 
{ 
    local c=$(get_all_version_components "${1:-${PV}}");
    echo ${c//[-._]/ }
}
getfilevar () 
{ 
    local ERROR basefname basedname myARCH="${ARCH}";
    ERROR=0;
    [ -z "${1}" ] && ERROR=1;
    [ ! -f "${2}" ] && ERROR=1;
    if [ "${ERROR}" = 1 ]; then
        echo -e "\n";
        eerror "getfilevar requires 2 variables, with the second a valid file.";
        eerror "   getfilevar <VARIABLE> <CONFIGFILE>";
    else
        basefname="$(basename ${2})";
        basedname="$(dirname ${2})";
        unset ARCH;
        echo -e "e:\\n\\t@echo \$(${1})\\ninclude ${basefname}" | make -C "${basedname}" M="${S}" ${BUILD_FIXES} -s -f - 2> /dev/null;
        ARCH=${myARCH};
    fi
}
getfilevar_noexec () 
{ 
    local ERROR basefname basedname mycat myARCH="${ARCH}";
    ERROR=0;
    mycat='cat';
    [ -z "${1}" ] && ERROR=1;
    [ ! -f "${2}" ] && ERROR=1;
    [ "${2%.gz}" != "${2}" ] && mycat='zcat';
    if [ "${ERROR}" = 1 ]; then
        echo -e "\n";
        eerror "getfilevar_noexec requires 2 variables, with the second a valid file.";
        eerror "   getfilevar_noexec <VARIABLE> <CONFIGFILE>";
    else
        ${mycat} "${2}" | sed -n -e "/^[[:space:]]*${1}[[:space:]]*:\\?=[[:space:]]*\(.*\)\$/{
			s,^[^=]*[[:space:]]*=[[:space:]]*,,g ;
			s,[[:space:]]*\$,,g ;
			p
		}";
    fi
}
has_multilib_profile () 
{ 
    [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
in_iuse () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ ${#} -eq 1 ]] || die "Invalid args to ${FUNCNAME}()";
    local flag=${1};
    local liuse=(${IUSE});
    has "${flag}" "${liuse[@]#[+-]}"
}
is-login-disabled () 
{ 
    _dead_portability_user_funcs
}
is_final_abi () 
{ 
    has_multilib_profile || return 0;
    set -- $(get_install_abis);
    local LAST_ABI=$#;
    [[ ${!LAST_ABI} == ${ABI} ]]
}
kernel_is () 
{ 
    linux-info_get_any_version;
    local operator test value;
    case ${1#-} in 
        lt)
            operator="-lt";
            shift
        ;;
        gt)
            operator="-gt";
            shift
        ;;
        le)
            operator="-le";
            shift
        ;;
        ge)
            operator="-ge";
            shift
        ;;
        eq)
            operator="-eq";
            shift
        ;;
        *)
            operator="-eq"
        ;;
    esac;
    [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters";
    : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH ));
    : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} ));
    [ ${test} ${operator} ${value} ]
}
linux-info_get_any_version () 
{ 
    get_version;
    if [[ $? -ne 0 ]]; then
        ewarn "Unable to calculate Linux Kernel version for build, attempting to use running version";
        get_running_version;
    fi
}
linux-info_pkg_setup () 
{ 
    linux-info_get_any_version;
    if kernel_is 2 4; then
        if [ "$( gcc-major-version )" -eq "4" ]; then
            echo;
            ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with";
            ewarn "linux-2.4 (or modules building against a linux-2.4 kernel)!";
            echo;
            ewarn "Either switch to another gcc-version (via gcc-config) or use a";
            ewarn "newer kernel that supports gcc-4.";
            echo;
            ewarn "Also be aware that bugreports about gcc-4 not working";
            ewarn "with linux-2.4 based ebuilds will be closed as INVALID!";
            echo;
            epause 10;
        fi;
    fi;
    [ -n "${CONFIG_CHECK}" ] && check_extra_config
}
linux-mod_pkg_postinst () 
{ 
    debug-print-function ${FUNCNAME} $*;
    ${UPDATE_DEPMOD} && update_depmod;
    ${UPDATE_MODULES} && update_modules;
    ${UPDATE_MODULEDB} && update_moduledb
}
linux-mod_pkg_postrm () 
{ 
    debug-print-function ${FUNCNAME} $*;
    remove_moduledb
}
linux-mod_pkg_preinst () 
{ 
    debug-print-function ${FUNCNAME} $*;
    [ -d "${D}lib/modules" ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false;
    [ -d "${D}etc/modules.d" ] && UPDATE_MODULES=true || UPDATE_MODULES=false;
    [ -d "${D}lib/modules" ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false
}
linux-mod_pkg_setup () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local is_bin="${MERGE_TYPE}";
    if has ${EAPI} 0 1 2 3; then
        is_bin=${EMERGE_FROM};
    fi;
    if [[ ${is_bin} == binary ]]; then
        linux-mod_pkg_setup_binary;
        return;
    fi;
    linux-info_pkg_setup;
    require_configured_kernel;
    check_kernel_built;
    strip_modulenames;
    [[ -n ${MODULE_NAMES} ]] && check_modules_supported;
    set_kvobj
}
linux-mod_pkg_setup_binary () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local new_CONFIG_CHECK;
    for config in $CONFIG_CHECK;
    do
        optional='~';
        [[ ${config:0:1} == "~" ]] && optional='';
        new_CONFIG_CHECK="${new_CONFIG_CHECK} ${optional}${config}";
    done;
    export CONFIG_CHECK="${new_CONFIG_CHECK}";
    linux-info_pkg_setup
}
linux-mod_src_compile () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local modulename libdir srcdir objdir i n myABI="${ABI}";
    set_arch_to_kernel;
    ABI="${KERNEL_ABI}";
    BUILD_TARGETS=${BUILD_TARGETS:-clean module};
    strip_modulenames;
    cd "${S}";
    touch Module.symvers;
    for i in ${MODULE_NAMES};
    do
        unset libdir srcdir objdir;
        for n in $(find_module_params ${i});
        do
            eval ${n/:*}=${n/*:/};
        done;
        libdir=${libdir:-misc};
        srcdir=${srcdir:-${S}};
        objdir=${objdir:-${srcdir}};
        if [ ! -f "${srcdir}/.built" ]; then
            cd "${srcdir}";
            ln -s "${S}"/Module.symvers Module.symvers;
            einfo "Preparing ${modulename} module";
            if [[ -n ${ECONF_PARAMS} ]]; then
                econf ${ECONF_PARAMS} || die "Unable to run econf ${ECONF_PARAMS}";
            fi;
            eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" 						CROSS_COMPILE=${CHOST}- 						LDFLAGS=\"$(get_abi_LDFLAGS)\" 						${BUILD_FIXES} 						${BUILD_PARAMS} 						${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}";
            cd "${OLDPWD}";
            touch "${srcdir}"/.built;
        fi;
    done;
    set_arch_to_portage;
    ABI="${myABI}"
}
linux-mod_src_install () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local modulename libdir srcdir objdir i n;
    strip_modulenames;
    for i in ${MODULE_NAMES};
    do
        unset libdir srcdir objdir;
        for n in $(find_module_params ${i});
        do
            eval ${n/:*}=${n/*:/};
        done;
        libdir=${libdir:-misc};
        srcdir=${srcdir:-${S}};
        objdir=${objdir:-${srcdir}};
        einfo "Installing ${modulename} module";
        cd "${objdir}" || die "${objdir} does not exist";
        insinto /lib/modules/${KV_FULL}/${libdir};
        doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed";
        cd "${OLDPWD}";
        generate_modulesd "${objdir}/${modulename}";
    done
}
linux_chkconfig_builtin () 
{ 
    linux_config_qa_check linux_chkconfig_builtin;
    local RESULT;
    local config;
    config="${KV_OUT_DIR}/.config";
    [ ! -f "${config}" ] && config="/proc/config.gz";
    RESULT="$(getfilevar_noexec CONFIG_${1} "${config}")";
    [ "${RESULT}" = "y" ] && return 0 || return 1
}
linux_chkconfig_module () 
{ 
    linux_config_qa_check linux_chkconfig_module;
    local RESULT;
    local config;
    config="${KV_OUT_DIR}/.config";
    [ ! -f "${config}" ] && config="/proc/config.gz";
    RESULT="$(getfilevar_noexec CONFIG_${1} "${config}")";
    [ "${RESULT}" = "m" ] && return 0 || return 1
}
linux_chkconfig_present () 
{ 
    linux_config_qa_check linux_chkconfig_present;
    local RESULT;
    local config;
    config="${KV_OUT_DIR}/.config";
    [ ! -f "${config}" ] && config="/proc/config.gz";
    RESULT="$(getfilevar_noexec CONFIG_${1} "${config}")";
    [ "${RESULT}" = "m" -o "${RESULT}" = "y" ] && return 0 || return 1
}
linux_chkconfig_string () 
{ 
    linux_config_qa_check linux_chkconfig_string;
    local config;
    config="${KV_OUT_DIR}/.config";
    [ ! -f "${config}" ] && config="/proc/config.gz";
    getfilevar_noexec "CONFIG_${1}" "${config}"
}
linux_config_bin_exists () 
{ 
    export _LINUX_CONFIG_EXISTS_DONE=1;
    [ -s "/proc/config.gz" ]
}
linux_config_exists () 
{ 
    linux_config_src_exists || linux_config_bin_exists
}
linux_config_qa_check () 
{ 
    local f="$1";
    if [ -z "${_LINUX_CONFIG_EXISTS_DONE}" ]; then
        ewarn "QA: You called $f before any linux_config_exists!";
        ewarn "QA: The return value of $f will NOT guaranteed later!";
    fi
}
linux_config_src_exists () 
{ 
    export _LINUX_CONFIG_EXISTS_DONE=1;
    [ -s "${KV_OUT_DIR}/.config" ]
}
make_desktop_entry () 
{ 
    [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable";
    local exec=${1};
    local name=${2:-${PN}};
    local icon=${3:-${PN}};
    local type=${4};
    local fields=${5};
    if [[ -z ${type} ]]; then
        local catmaj=${CATEGORY%%-*};
        local catmin=${CATEGORY##*-};
        case ${catmaj} in 
            app)
                case ${catmin} in 
                    accessibility)
                        type=Accessibility
                    ;;
                    admin)
                        type=System
                    ;;
                    antivirus)
                        type=System
                    ;;
                    arch)
                        type=Archiving
                    ;;
                    backup)
                        type=Archiving
                    ;;
                    cdr)
                        type=DiscBurning
                    ;;
                    dicts)
                        type=Dictionary
                    ;;
                    doc)
                        type=Documentation
                    ;;
                    editors)
                        type=TextEditor
                    ;;
                    emacs)
                        type=TextEditor
                    ;;
                    emulation)
                        type=Emulator
                    ;;
                    laptop)
                        type=HardwareSettings
                    ;;
                    office)
                        type=Office
                    ;;
                    pda)
                        type=PDA
                    ;;
                    vim)
                        type=TextEditor
                    ;;
                    xemacs)
                        type=TextEditor
                    ;;
                esac
            ;;
            dev)
                type="Development"
            ;;
            games)
                case ${catmin} in 
                    action | fps)
                        type=ActionGame
                    ;;
                    arcade)
                        type=ArcadeGame
                    ;;
                    board)
                        type=BoardGame
                    ;;
                    emulation)
                        type=Emulator
                    ;;
                    kids)
                        type=KidsGame
                    ;;
                    puzzle)
                        type=LogicGame
                    ;;
                    roguelike)
                        type=RolePlaying
                    ;;
                    rpg)
                        type=RolePlaying
                    ;;
                    simulation)
                        type=Simulation
                    ;;
                    sports)
                        type=SportsGame
                    ;;
                    strategy)
                        type=StrategyGame
                    ;;
                esac;
                type="Game;${type}"
            ;;
            gnome)
                type="Gnome;GTK"
            ;;
            kde)
                type="KDE;Qt"
            ;;
            mail)
                type="Network;Email"
            ;;
            media)
                case ${catmin} in 
                    gfx)
                        type=Graphics
                    ;;
                    *)
                        case ${catmin} in 
                            radio)
                                type=Tuner
                            ;;
                            sound)
                                type=Audio
                            ;;
                            tv)
                                type=TV
                            ;;
                            video)
                                type=Video
                            ;;
                        esac;
                        type="AudioVideo;${type}"
                    ;;
                esac
            ;;
            net)
                case ${catmin} in 
                    dialup)
                        type=Dialup
                    ;;
                    ftp)
                        type=FileTransfer
                    ;;
                    im)
                        type=InstantMessaging
                    ;;
                    irc)
                        type=IRCClient
                    ;;
                    mail)
                        type=Email
                    ;;
                    news)
                        type=News
                    ;;
                    nntp)
                        type=News
                    ;;
                    p2p)
                        type=FileTransfer
                    ;;
                    voip)
                        type=Telephony
                    ;;
                esac;
                type="Network;${type}"
            ;;
            sci)
                case ${catmin} in 
                    astro*)
                        type=Astronomy
                    ;;
                    bio*)
                        type=Biology
                    ;;
                    calc*)
                        type=Calculator
                    ;;
                    chem*)
                        type=Chemistry
                    ;;
                    elec*)
                        type=Electronics
                    ;;
                    geo*)
                        type=Geology
                    ;;
                    math*)
                        type=Math
                    ;;
                    physics)
                        type=Physics
                    ;;
                    visual*)
                        type=DataVisualization
                    ;;
                esac;
                type="Education;Science;${type}"
            ;;
            sys)
                type="System"
            ;;
            www)
                case ${catmin} in 
                    client)
                        type=WebBrowser
                    ;;
                esac;
                type="Network;${type}"
            ;;
            *)
                type=
            ;;
        esac;
    fi;
    if [ "${SLOT}" == "0" ]; then
        local desktop_name="${PN}";
    else
        local desktop_name="${PN}-${SLOT}";
    fi;
    local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop";
    type=${type%;}${type:+;};
    eshopts_push -s extglob;
    if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then
        ewarn "As described in the Icon Theme Specification, icon file extensions are not";
        ewarn "allowed in .desktop files if the value is not an absolute path.";
        icon=${icon%.@(xpm|png|svg)};
    fi;
    eshopts_pop;
    cat > "${desktop}"  <<-EOF
[Desktop Entry]
Name=${name}
Type=Application
Comment=${DESCRIPTION}
Exec=${exec}
TryExec=${exec%% *}
Icon=${icon}
Categories=${type}
EOF

    if [[ ${fields:-=} != *=* ]]; then
        ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}";
        fields="Path=${fields}";
    fi;
    [[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}";
    ( insinto /usr/share/applications;
    doins "${desktop}" ) || die "installing desktop file failed"
}
make_session_desktop () 
{ 
    [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1;
    [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1;
    local title=$1;
    local command=$2;
    local desktop=${T}/${wm:-${PN}}.desktop;
    shift 2;
    cat > "${desktop}"  <<-EOF
[Desktop Entry]
Name=${title}
Comment=This session logs you into ${title}
Exec=${command} $*
TryExec=${command}
Type=XSession
EOF

    ( insinto /usr/share/xsessions;
    doins "${desktop}" )
}
make_wrapper () 
{ 
    local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
    local tmpwrapper=$(emktemp);
    cat > "${tmpwrapper}"  <<EOF
#!/bin/sh
cd "${chdir:-.}"
if [ -n "${libdir}" ] ; then
	if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then
		export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}"
	else
		export LD_LIBRARY_PATH="${libdir}"
	fi
fi
exec ${bin} "\$@"
EOF

    chmod go+rx "${tmpwrapper}";
    if [[ -n ${path} ]]; then
        ( exeinto "${path}";
        newexe "${tmpwrapper}" "${wrapper}" ) || die;
    else
        newbin "${tmpwrapper}" "${wrapper}" || die;
    fi
}
move_old_moduledb () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local OLDDIR="${ROOT}"/usr/share/module-rebuild/;
    local NEWDIR="${ROOT}"/var/lib/module-rebuild/;
    if [[ -f "${OLDDIR}"/moduledb ]]; then
        [[ ! -d "${NEWDIR}" ]] && mkdir -p "${NEWDIR}";
        [[ ! -f "${NEWDIR}"/moduledb ]] && mv "${OLDDIR}"/moduledb "${NEWDIR}"/moduledb;
        rm -f "${OLDDIR}"/*;
        rmdir "${OLDDIR}";
    fi
}
multilib_env () 
{ 
    local CTARGET=${1:-${CTARGET}};
    case ${CTARGET} in 
        x86_64*)
            export CFLAGS_x86=${CFLAGS_x86--m32};
            export CHOST_x86=${CTARGET/x86_64/i686};
            export CTARGET_x86=${CHOST_x86};
            if [[ ${SYMLINK_LIB} == "yes" ]]; then
                export LIBDIR_x86="lib32";
            else
                export LIBDIR_x86="lib";
            fi;
            export CFLAGS_amd64=${CFLAGS_amd64--m64};
            export CHOST_amd64=${CTARGET};
            export CTARGET_amd64=${CHOST_amd64};
            export LIBDIR_amd64="lib64";
            export CFLAGS_x32=${CFLAGS_x32--mx32};
            export CHOST_x32=${CTARGET};
            export CTARGET_x32=${CHOST_x32};
            export LIBDIR_x32="libx32";
            : ${MULTILIB_ABIS=amd64 x86};
            : ${DEFAULT_ABI=amd64}
        ;;
        mips64*)
            export CFLAGS_o32=${CFLAGS_o32--mabi=32};
            export CHOST_o32=${CTARGET/mips64/mips};
            export CTARGET_o32=${CHOST_o32};
            export LIBDIR_o32="lib";
            export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
            export CHOST_n32=${CTARGET};
            export CTARGET_n32=${CHOST_n32};
            export LIBDIR_n32="lib32";
            export CFLAGS_n64=${CFLAGS_n64--mabi=64};
            export CHOST_n64=${CTARGET};
            export CTARGET_n64=${CHOST_n64};
            export LIBDIR_n64="lib64";
            : ${MULTILIB_ABIS=n64 n32 o32};
            : ${DEFAULT_ABI=n32}
        ;;
        powerpc64*)
            export CFLAGS_ppc=${CFLAGS_ppc--m32};
            export CHOST_ppc=${CTARGET/powerpc64/powerpc};
            export CTARGET_ppc=${CHOST_ppc};
            export LIBDIR_ppc="lib";
            export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
            export CHOST_ppc64=${CTARGET};
            export CTARGET_ppc64=${CHOST_ppc64};
            export LIBDIR_ppc64="lib64";
            : ${MULTILIB_ABIS=ppc64 ppc};
            : ${DEFAULT_ABI=ppc64}
        ;;
        s390x*)
            export CFLAGS_s390=${CFLAGS_s390--m31};
            export CHOST_s390=${CTARGET/s390x/s390};
            export CTARGET_s390=${CHOST_s390};
            export LIBDIR_s390="lib";
            export CFLAGS_s390x=${CFLAGS_s390x--m64};
            export CHOST_s390x=${CTARGET};
            export CTARGET_s390x=${CHOST_s390x};
            export LIBDIR_s390x="lib64";
            : ${MULTILIB_ABIS=s390x s390};
            : ${DEFAULT_ABI=s390x}
        ;;
        sparc*)
            export CFLAGS_sparc32=${CFLAGS_sparc32--m32};
            export CHOST_sparc32=${CTARGET/sparc64/sparc};
            export CTARGET_sparc32=${CHOST_sparc32};
            export LIBDIR_sparc32="lib";
            export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
            export CHOST_sparc64=${CTARGET};
            export CTARGET_sparc64=${CHOST_sparc64};
            export LIBDIR_sparc64="lib64";
            : ${MULTILIB_ABIS=sparc64 sparc32};
            : ${DEFAULT_ABI=sparc64}
        ;;
        *)
            : ${MULTILIB_ABIS=default};
            : ${DEFAULT_ABI=default}
        ;;
    esac;
    export MULTILIB_ABIS DEFAULT_ABI
}
multilib_toolchain_setup () 
{ 
    local v vv;
    export ABI=$1;
    if [[ ${__DEFAULT_ABI_SAVED} == "true" ]]; then
        for v in CHOST CBUILD AS CC CXX LD;
        do
            vv="__abi_saved_${v}";
            export ${v}="${!vv}";
            unset ${vv};
        done;
        unset __DEFAULT_ABI_SAVED;
    fi;
    if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
        for v in CHOST CBUILD AS CC CXX LD;
        do
            export __abi_saved_${v}="${!v}";
        done;
        export __DEFAULT_ABI_SAVED="true";
        export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
        export CC="$(tc-getCC) $(get_abi_CFLAGS)";
        export CXX="$(tc-getCXX) $(get_abi_CFLAGS)";
        export LD="$(tc-getLD) $(get_abi_LDFLAGS)";
        export CHOST=$(get_abi_CHOST $1);
        export CBUILD=$(get_abi_CHOST $1);
    fi
}
newicon () 
{ 
    ( insinto /usr/share/pixmaps;
    newins "$@" )
}
newmenu () 
{ 
    ( insinto /usr/share/applications;
    newins "$@" )
}
number_abis () 
{ 
    set -- `get_install_abis`;
    echo $#
}
path_exists () 
{ 
    local opt=$1;
    [[ ${opt} == -[ao] ]] && shift || opt="-a";
    [[ $# -eq 0 ]] && return 1;
    local p r=0;
    for p in "$@";
    do
        [[ -e ${p} ]];
        : $(( r += $? ));
    done;
    case ${opt} in 
        -a)
            return $(( r != 0 ))
        ;;
        -o)
            return $(( r == $# ))
        ;;
    esac
}
pkg_nofetch () 
{ 
    _eapi0_pkg_nofetch "$@"
}
pkg_postinst () 
{ 
    elog "To switch to ATI OpenGL, run \"eselect opengl set ati\"";
    elog "To change your xorg.conf you can use the bundled \"aticonfig\"";
    elog;
    elog "If you experience unexplained segmentation faults and kernel crashes";
    elog "with this driver and multi-threaded applications such as wine,";
    elog "set UseFastTLS in xorg.conf to either 0 or 1, but not 2.";
    elog;
    elog "Fully rebooting the system after an ${PN} update is recommended";
    elog "Stopping Xorg, reloading fglrx kernel module and restart Xorg";
    elog "might not work";
    elog;
    elog "Some cards need acpid running to handle events";
    elog "Please add it to boot runlevel with rc-update add acpid boot";
    elog;
    ewarn "This release of ati-drivers has a crashing bug when using Xv video.";
    ewarn "To avoid this problem, configure your video playback software for";
    ewarn "OpenGL output. See https://bugs.gentoo.org/show_bug.cgi?id=391193";
    use modules && linux-mod_pkg_postinst;
    "${ROOT}"/usr/bin/eselect opengl set --use-old ati
}
pkg_postrm () 
{ 
    use modules && linux-mod_pkg_postrm;
    "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_preinst () 
{ 
    use modules && linux-mod_pkg_preinst
}
pkg_prerm () 
{ 
    "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_pretend () 
{ 
    if use modules; then
        linux-info_pkg_setup;
        require_configured_kernel;
        _check_kernel_config;
    fi
}
pkg_setup () 
{ 
    if use modules; then
        MODULE_NAMES="fglrx(video:${S}/${FOLDER_PREFIX}/lib/modules/fglrx/build_mod/2.6.x)";
        BUILD_TARGETS="kmod_build";
        linux-mod_pkg_setup;
        BUILD_PARAMS="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_DIR}";
        BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=\"-DMODULE -DATI -DFGL\"";
        if grep -q arch_compat_alloc_user_space ${KV_DIR}/arch/x86/include/asm/compat.h; then
            BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space";
        else
            BUILD_PARAMS="${BUILD_PARAMS} CFLAGS_MODULE+=-DCOMPAT_ALLOC_USER_SPACE=compat_alloc_user_space";
        fi;
    fi;
    MODULE_DIR="${S}/${FOLDER_PREFIX}/lib/modules/fglrx/build_mod";
    BASE_DIR="${S}/xpic";
    if use amd64; then
        MY_BASE_DIR="${BASE_DIR}_64a";
        PKG_LIBDIR=lib64;
        ARCH_DIR="${S}/arch/x86_64";
    else
        MY_BASE_DIR="${BASE_DIR}";
        PKG_LIBDIR=lib;
        ARCH_DIR="${S}/arch/x86";
    fi;
    elog;
    elog "Please note that this driver supports only graphic cards based on";
    elog "r600 chipset and newer.";
    elog "This represent the ATI Radeon HD series at this moment.";
    elog;
    elog "If your card is older then use ${CATEGORY}/xf86-video-ati";
    elog "For migration informations please reffer to:";
    elog "http://www.gentoo.org/proj/en/desktop/x/x11/ati-migration-guide.xml";
    einfo
}
preserve_old_lib () 
{ 
    if [[ ${EBUILD_PHASE} != "preinst" ]]; then
        eerror "preserve_old_lib() must be called from pkg_preinst() only";
        die "Invalid preserve_old_lib() usage";
    fi;
    [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]";
    has preserve-libs ${FEATURES} && return 0;
    local lib dir;
    for lib in "$@";
    do
        [[ -e ${ROOT}/${lib} ]] || continue;
        dir=${lib%/*};
        dodir ${dir} || die "dodir ${dir} failed";
        cp "${ROOT}"/${lib} "${D}"/${lib} || die "cp ${lib} failed";
        touch "${D}"/${lib};
    done
}
preserve_old_lib_notify () 
{ 
    if [[ ${EBUILD_PHASE} != "postinst" ]]; then
        eerror "preserve_old_lib_notify() must be called from pkg_postinst() only";
        die "Invalid preserve_old_lib_notify() usage";
    fi;
    has preserve-libs ${FEATURES} && return 0;
    local lib notice=0;
    for lib in "$@";
    do
        [[ -e ${ROOT}/${lib} ]] || continue;
        if [[ ${notice} -eq 0 ]]; then
            notice=1;
            ewarn "Old versions of installed libraries were detected on your system.";
            ewarn "In order to avoid breaking packages that depend on these old libs,";
            ewarn "the libraries are not being removed.  You need to run revdep-rebuild";
            ewarn "in order to remove these old dependencies.  If you do not have this";
            ewarn "helper program, simply emerge the 'gentoolkit' package.";
            ewarn;
        fi;
        [[ ${PN} == "mpfr" ]] && lib=${lib##*/};
        ewarn "  # revdep-rebuild --library '${lib}'";
    done;
    if [[ ${notice} -eq 1 ]]; then
        ewarn;
        ewarn "Once you've finished running revdep-rebuild, it should be safe to";
        ewarn "delete the old libraries.  Here is a copy & paste for the lazy:";
        for lib in "$@";
        do
            ewarn "  # rm '${lib}'";
        done;
    fi
}
qeerror () 
{ 
    qout eerror "${@}"
}
qeinfo () 
{ 
    qout einfo "${@}"
}
qewarn () 
{ 
    qout ewarn "${@}"
}
qout () 
{ 
    local outputmsg type;
    type=${1};
    shift;
    outputmsg="${@}";
    case "${EBUILD_PHASE}" in 
        depend)
            unset outputmsg
        ;;
        clean)
            unset outputmsg
        ;;
        preinst)
            unset outputmsg
        ;;
    esac;
    [ -n "${outputmsg}" ] && ${type} "${outputmsg}"
}
remove_moduledb () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local MODULEDB_DIR="${ROOT}"/var/lib/module-rebuild/;
    move_old_moduledb;
    if grep -qs ${CATEGORY}/${PN}-${PVR} "${MODULEDB_DIR}"/moduledb; then
        einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb.";
        sed -i -e "/.*${CATEGORY}\/${PN}-${PVR}.*/d" "${MODULEDB_DIR}"/moduledb;
    fi
}
replace_all_version_separators () 
{ 
    local c=($(get_all_version_components "${2:-${PV}}"));
    c=${c[@]//[-._]/$1};
    echo ${c// }
}
replace_version_separator () 
{ 
    eshopts_push -s extglob;
    local w c v="${3:-${PV}}";
    declare -i i found=0;
    w=${1:-1};
    c=($(get_all_version_components ${v}));
    if [[ ${w} != *[[:digit:]]* ]]; then
        for ((i = 0; i < ${#c[@]}; i++))
        do
            if [[ ${c[i]} == ${w} ]]; then
                c[i]=${2};
                break;
            fi;
        done;
    else
        for ((i = 0; i < ${#c[@]}; i++))
        do
            if [[ -n "${c[i]//[^-._]}" ]]; then
                found+=1;
                if ((found == w)); then
                    c[i]=${2};
                    break;
                fi;
            fi;
        done;
    fi;
    c=${c[*]};
    echo ${c// };
    eshopts_pop
}
require_configured_kernel () 
{ 
    if ! linux_config_src_exists; then
        qeerror "Could not find a usable .config in the kernel source directory.";
        qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources.";
        qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that";
        qeerror "it points to the necessary object directory so that it might find .config.";
        die "Kernel not configured; no .config found in ${KV_OUT_DIR}";
    fi
}
seq () 
{ 
    local p=$(type -P seq);
    if [[ -n ${p} ]]; then
        "${p}" "$@";
        return $?;
    fi;
    case $# in 
        1)
            min=1 max=$1 step=1
        ;;
        2)
            min=$1 max=$2 step=1
        ;;
        3)
            min=$1 max=$3 step=$2
        ;;
        *)
            die "seq called with wrong number of arguments"
        ;;
    esac;
    p=$(type -P jot);
    if [[ -n ${p} ]]; then
        local reps;
        if [[ ${step} != 0 ]]; then
            reps=$(( (max - min) / step + 1 ));
        else
            reps=0;
        fi;
        jot $reps $min $max $step;
        return $?;
    fi;
    while :; do
        [[ $max < $min && $step > 0 ]] && break;
        [[ $min < $max && $step < 0 ]] && break;
        echo $min;
        : $(( min += step ));
    done;
    return 0
}
set_arch_to_kernel () 
{ 
    export ARCH=$(tc-arch-kernel)
}
set_arch_to_portage () 
{ 
    export ARCH=$(tc-arch)
}
set_kvobj () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if kernel_is ge 2 6; then
        KV_OBJ="ko";
    else
        KV_OBJ="o";
    fi
}
src_compile () 
{ 
    use modules && linux-mod_src_compile;
    ebegin "Building fgl_glxgears";
    cd "${S}"/extra/fgl_glxgears;
    function src_test () 
    { 
        :
    };
    "$(tc-getCC)" -o fgl_glxgears ${CFLAGS} ${LDFLAGS} -DUSE_GLU -I"${S}"/${FOLDER_PREFIX}usr/include fgl_glxgears.c -lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed";
    eend $?
}
src_configure () 
{ 
    _eapi2_src_configure "$@"
}
src_install () 
{ 
    use modules && linux-mod_src_install;
    echo "COLON_SEPARATED=LIBGL_DRIVERS_PATH" > "${T}/03ati-colon-sep";
    doenvd "${T}/03ati-colon-sep" || die;
    if has_multilib_profile; then
        local OABI=${ABI};
        for ABI in $(get_install_abis);
        do
            src_install-libs;
        done;
        ABI=${OABI};
        unset OABI;
    else
        src_install-libs;
    fi;
    exeinto /usr/$(get_libdir)/xorg/modules/drivers;
    doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so;
    exeinto /usr/$(get_libdir)/xorg/modules/linux;
    doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/linux/libfglrxdrm.so;
    exeinto /usr/$(get_libdir)/xorg/modules;
    doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{glesx.so,amdxmm.so};
    into /opt;
    dosbin "${ARCH_DIR}"/usr/sbin/atieventsd;
    use qt4 && dosbin "${ARCH_DIR}"/usr/sbin/amdnotifyui;
    use opencl && dobin "${ARCH_DIR}"/usr/bin/clinfo;
    dobin "${ARCH_DIR}"/usr/X11R6/bin/*;
    insinto /etc/ati;
    exeinto /etc/ati;
    doins ${FOLDER_PREFIX}etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default};
    doexe ${FOLDER_PREFIX}etc/ati/authatieventsd.sh;
    if use opencl; then
        insinto /etc/OpenCL/vendors/;
        if [[ "${ABI}" == "amd64" ]]; then
            doins "${ARCH_DIR}"/etc/OpenCL/vendors/amdocl64.icd || die "doins failed";
        else
            doins "${ARCH_DIR}"/etc/OpenCL/vendors/amdocl32.icd || die "doins failed";
        fi;
    fi;
    insinto /usr;
    doins -r ${FOLDER_PREFIX}usr/include;
    insinto /usr/include/X11/extensions;
    into /usr;
    dosbin ${FOLDER_PREFIX}usr/sbin/*;
    if use qt4; then
        insinto /usr/share;
        doins -r ${FOLDER_PREFIX}usr/share/ati;
        insinto /usr/share/pixmaps;
        doins ${FOLDER_PREFIX}usr/share/icons/ccc_large.xpm;
        make_desktop_entry amdcccle 'ATI Catalyst Control Center' ccc_large System;
    fi;
    dohtml -r ${FOLDER_PREFIX}usr/share/doc/fglrx;
    doman ${FOLDER_PREFIX}usr/share/man/man8/atieventsd.8;
    pushd ${FOLDER_PREFIX}usr/share/doc/fglrx/examples/etc/acpi > /dev/null;
    exeinto /etc/acpi;
    doexe ati-powermode.sh;
    insinto /etc/acpi/events;
    doins events/*;
    popd > /dev/null;
    dobin extra/fgl_glxgears/fgl_glxgears;
    newdoc extra/fgl_glxgears/README README.fgl_glxgears;
    newinitd "${FILESDIR}"/atieventsd.init atieventsd;
    echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf;
    newconfd "${T}"/atieventsd.conf atieventsd;
    exeinto /usr/$(get_libdir)/fglrx;
    doexe "${FILESDIR}"/switchlibGL || die "doexe switchlibGL failed";
    cp "${FILESDIR}"/switchlibGL "${T}"/switchlibglx;
    doexe "${T}"/switchlibglx || die "doexe switchlibglx failed"
}
src_install-libs () 
{ 
    if [[ "${ABI}" == "amd64" ]]; then
        local EX_BASE_DIR="${BASE_DIR}_64a";
        local pkglibdir=lib64;
        local MY_ARCH_DIR="${S}/arch/x86_64";
    else
        local EX_BASE_DIR="${BASE_DIR}";
        local pkglibdir=lib;
        local MY_ARCH_DIR="${S}/arch/x86";
    fi;
    einfo "ati tree '${pkglibdir}' -> '$(get_libdir)' on system";
    local ATI_ROOT=/usr/$(get_libdir)/opengl/ati;
    local libmajor=1 libminor=2;
    local libver=${libmajor}.${libminor};
    exeinto ${ATI_ROOT}/lib;
    newexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/fglrx/fglrx-libGL.so.${libver} libGL.so.${libver};
    dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so.${libmajor};
    dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so;
    exeinto ${ATI_ROOT}/extensions;
    doexe "${EX_BASE_DIR}"/usr/X11R6/${pkglibdir}/modules/extensions/fglrx/fglrx-libglx.so;
    mv "${D}"/${ATI_ROOT}/extensions/{fglrx-,}libglx.so;
    exeinto /usr/$(get_libdir);
    doexe $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} 		-maxdepth 1 -type f -name '*.so*' -not -name '*libGL.so*');
    insinto /usr/$(get_libdir);
    doins $(find "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir} 		-maxdepth 1 -type f -not -name '*.so*');
    exeinto /usr/$(get_libdir)/dri;
    doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so;
    exeinto /usr/$(get_libdir);
    if use opencl; then
        doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/lib*.so*;
    else
        doexe "${MY_ARCH_DIR}"/usr/${pkglibdir}/libati*.so*;
    fi;
    local envname="${T}"/04ati-dri-path;
    if [[ -n ${ABI} ]]; then
        envname="${envname}-${ABI}";
    fi;
    echo "LIBGL_DRIVERS_PATH=/usr/$(get_libdir)/dri" > "${envname}";
    doenvd "${envname}";
    for so in $(find "${D}"/usr/$(get_libdir) -maxdepth 1 -name *.so.[0-9].[0-9]);
    do
        local soname=${so##*/};
        dosym ${soname} /usr/$(get_libdir)/$(scanelf -qF "#f%S" ${so});
    done
}
src_prepare () 
{ 
    if use modules; then
        if use debug; then
            sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' "${MODULE_DIR}/firegl_public.c" || die "Failed to enable debug output.";
        fi;
    fi;
    rm "${ARCH_DIR}"/usr/X11R6/bin/fgl_glxgears || die "bin rm failed";
    use qt4 || rm "${ARCH_DIR}"/usr/X11R6/bin/amdcccle;
    sed -i -e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" -e "s:/var/lib/gdm/:/var/gdm/:" "${S}/${FOLDER_PREFIX}etc/ati/authatieventsd.sh" || die "sed failed.";
    sed -i -e 's:finger:who:' "${S}/${FOLDER_PREFIX}usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh" || die "Replacing 'finger' with 'who' failed.";
    epatch "${FILESDIR}"/ati-powermode-opt-path-2.patch || die "Failed to epatch powermode-opt-path-2.patch";
    cd "${MODULE_DIR}";
    cp ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 2.6.x;
    convert_to_m 2.6.x/Makefile || die "convert_to_m failed";
    sed -i -e 's/__SMP__/CONFIG_SMP/' *.c *h || die "SMP sed failed";
    sed -i -e 's/ifdef MODVERSIONS/ifdef CONFIG_MODVERSIONS/' *.c *.h || die "MODVERSIONS sed failed";
    cd "${S}";
    mkdir extra || die "mkdir failed";
    cd extra;
    unpack ./../${FOLDER_PREFIX}usr/src/ati/fglrx_sample_source.tgz
}
src_test () 
{ 
    :
}
src_unpack () 
{ 
    if [[ $(get_major_version) -gt 8 ]]; then
        local src="${DISTDIR}/${A}";
        sh "${src}" --extract "${S}" 2 /dev/null &>1;
    else
        unpack ${A};
    fi
}
strip-linguas () 
{ 
    local ls newls nols;
    if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then
        local op=$1;
        shift;
        ls=$(find "$1" -name '*.po' -exec basename {} .po ';');
        shift;
        local d f;
        for d in "$@";
        do
            if [[ ${op} == "-u" ]]; then
                newls=${ls};
            else
                newls="";
            fi;
            for f in $(find "$d" -name '*.po' -exec basename {} .po ';');
            do
                if [[ ${op} == "-i" ]]; then
                    has ${f} ${ls} && newls="${newls} ${f}";
                else
                    has ${f} ${ls} || newls="${newls} ${f}";
                fi;
            done;
            ls=${newls};
        done;
    else
        ls="$@";
    fi;
    nols="";
    newls="";
    for f in ${LINGUAS};
    do
        if has ${f} ${ls}; then
            newls="${newls} ${f}";
        else
            nols="${nols} ${f}";
        fi;
    done;
    [[ -n ${nols} ]] && ewarn "Sorry, but ${PN} does not support the LINGUAS:" ${nols};
    export LINGUAS=${newls:1}
}
strip_modulenames () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local i;
    for i in ${MODULE_IGNORE};
    do
        MODULE_NAMES=${MODULE_NAMES//${i}(*};
    done
}
tc-arch () 
{ 
    tc-ninja_magic_to_arch portage "$@"
}
tc-arch-kernel () 
{ 
    tc-ninja_magic_to_arch kern "$@"
}
tc-endian () 
{ 
    local host=$1;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    host=${host%%-*};
    case ${host} in 
        alpha*)
            echo big
        ;;
        arm*b*)
            echo big
        ;;
        arm*)
            echo little
        ;;
        cris*)
            echo little
        ;;
        hppa*)
            echo big
        ;;
        i?86*)
            echo little
        ;;
        ia64*)
            echo little
        ;;
        m68*)
            echo big
        ;;
        mips*l*)
            echo little
        ;;
        mips*)
            echo big
        ;;
        powerpc*)
            echo big
        ;;
        s390*)
            echo big
        ;;
        sh*b*)
            echo big
        ;;
        sh*)
            echo little
        ;;
        sparc*)
            echo big
        ;;
        x86_64*)
            echo little
        ;;
        *)
            echo wtf
        ;;
    esac
}
tc-env_build () 
{ 
    CFLAGS=${BUILD_CFLAGS:--O1 -pipe} CXXFLAGS=${BUILD_CXXFLAGS:--O1 -pipe} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@"
}
tc-export () 
{ 
    local var;
    for var in "$@";
    do
        [[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'";
        eval tc-get${var} > /dev/null;
    done
}
tc-getAR () 
{ 
    tc-getPROG AR ar "$@"
}
tc-getAS () 
{ 
    tc-getPROG AS as "$@"
}
tc-getBUILD_AR () 
{ 
    tc-getBUILD_PROG AR ar "$@"
}
tc-getBUILD_AS () 
{ 
    tc-getBUILD_PROG AS as "$@"
}
tc-getBUILD_CC () 
{ 
    tc-getBUILD_PROG CC gcc "$@"
}
tc-getBUILD_CPP () 
{ 
    tc-getBUILD_PROG CPP cpp "$@"
}
tc-getBUILD_CXX () 
{ 
    tc-getBUILD_PROG CXX g++ "$@"
}
tc-getBUILD_LD () 
{ 
    tc-getBUILD_PROG LD ld "$@"
}
tc-getBUILD_NM () 
{ 
    tc-getBUILD_PROG NM nm "$@"
}
tc-getBUILD_OBJCOPY () 
{ 
    tc-getBUILD_PROG OBJCOPY objcopy "$@"
}
tc-getBUILD_PKG_CONFIG () 
{ 
    tc-getBUILD_PROG PKG_CONFIG pkg-config "$@"
}
tc-getBUILD_PROG () 
{ 
    _tc-getPROG CBUILD "BUILD_$1 $1_FOR_BUILD HOST$1" "${@:2}"
}
tc-getBUILD_RANLIB () 
{ 
    tc-getBUILD_PROG RANLIB ranlib "$@"
}
tc-getBUILD_STRIP () 
{ 
    tc-getBUILD_PROG STRIP strip "$@"
}
tc-getCC () 
{ 
    tc-getPROG CC gcc "$@"
}
tc-getCPP () 
{ 
    tc-getPROG CPP cpp "$@"
}
tc-getCXX () 
{ 
    tc-getPROG CXX g++ "$@"
}
tc-getDLLWRAP () 
{ 
    tc-getPROG DLLWRAP dllwrap "$@"
}
tc-getF77 () 
{ 
    tc-getPROG F77 gfortran "$@"
}
tc-getFC () 
{ 
    tc-getPROG FC gfortran "$@"
}
tc-getGCJ () 
{ 
    tc-getPROG GCJ gcj "$@"
}
tc-getLD () 
{ 
    tc-getPROG LD ld "$@"
}
tc-getNM () 
{ 
    tc-getPROG NM nm "$@"
}
tc-getOBJCOPY () 
{ 
    tc-getPROG OBJCOPY objcopy "$@"
}
tc-getPKG_CONFIG () 
{ 
    tc-getPROG PKG_CONFIG pkg-config "$@"
}
tc-getPROG () 
{ 
    _tc-getPROG CHOST "$@"
}
tc-getRANLIB () 
{ 
    tc-getPROG RANLIB ranlib "$@"
}
tc-getRC () 
{ 
    tc-getPROG RC windres "$@"
}
tc-getSTRIP () 
{ 
    tc-getPROG STRIP strip "$@"
}
tc-has-openmp () 
{ 
    local base="${T}/test-tc-openmp";
    cat > "${base}.c"  <<-EOF
#include <omp.h>
int main() {
int nthreads, tid, ret = 0;
#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
nthreads = omp_get_num_threads(); ret += tid + nthreads;
}
return ret;
}
EOF

    $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &>/dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-has-tls () 
{ 
    local base="${T}/test-tc-tls";
    cat > "${base}.c"  <<-EOF
int foo(int *i) {
static __thread int j = 0;
return *i ? j : *i;
}
EOF

    local flags;
    case $1 in 
        -s)
            flags="-S"
        ;;
        -c)
            flags="-c"
        ;;
        -l)

        ;;
        -*)
            die "Usage: tc-has-tls [-c|-l] [toolchain prefix]"
        ;;
    esac;
    : ${flags:=-fPIC -shared -Wl,-z,defs};
    [[ $1 == -* ]] && shift;
    $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &>/dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-is-cross-compiler () 
{ 
    return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]])
}
tc-is-hardfloat () 
{ 
    [[ ${CTARGET//_/-} == *-hardfloat-* ]] && echo "yes" || echo "no"
}
tc-is-softfloat () 
{ 
    case ${CTARGET} in 
        bfin* | h8300*)
            echo "only"
        ;;
        *)
            [[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no"
        ;;
    esac
}
tc-is-static-only () 
{ 
    local host=${CTARGET:-${CHOST}};
    return $([[ ${host} == *-mint* ]])
}
tc-ninja_magic_to_arch () 
{ 
    function ninj () 
    { 
        [[ ${type} == "kern" ]] && echo $1 || echo $2
    };
    local type=$1;
    local host=$2;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    case ${host} in 
        alpha*)
            echo alpha
        ;;
        arm*)
            echo arm
        ;;
        avr*)
            ninj avr32 avr
        ;;
        bfin*)
            ninj blackfin bfin
        ;;
        cris*)
            echo cris
        ;;
        hppa*)
            ninj parisc hppa
        ;;
        i?86*)
            if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${host} == *freebsd* ]]; then
                echo i386;
            else
                echo x86;
            fi
        ;;
        ia64*)
            echo ia64
        ;;
        m68*)
            echo m68k
        ;;
        mips*)
            echo mips
        ;;
        nios2*)
            echo nios2
        ;;
        nios*)
            echo nios
        ;;
        powerpc*)
            if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then
                echo powerpc;
            else
                if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]]; then
                    if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then
                        echo powerpc;
                    else
                        echo ppc;
                    fi;
                else
                    if [[ ${host} == powerpc64* ]]; then
                        echo ppc64;
                    else
                        if [[ ${PROFILE_ARCH} == "ppc64" ]]; then
                            ninj ppc64 ppc;
                        else
                            echo ppc;
                        fi;
                    fi;
                fi;
            fi
        ;;
        s390*)
            echo s390
        ;;
        sh64*)
            ninj sh64 sh
        ;;
        sh*)
            echo sh
        ;;
        sparc64*)
            ninj sparc64 sparc
        ;;
        sparc*)
            [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc
        ;;
        vax*)
            echo vax
        ;;
        x86_64*freebsd*)
            echo amd64
        ;;
        x86_64*)
            if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then
                echo x86;
            else
                ninj x86_64 amd64;
            fi
        ;;
        *)
            echo unknown
        ;;
    esac
}
treecopy () 
{ 
    dest=${!#};
    files_count=$#;
    while (( $# > 1 )); do
        dirstruct=$(dirname "$1");
        mkdir -p "${dest}/${dirstruct}";
        cp -pPR "$1" "${dest}/${dirstruct}";
        shift;
    done
}
unpack_makeself () 
{ 
    local src_input=${1:-${A}};
    local src=$(find_unpackable_file "${src_input}");
    local skip=$2;
    local exe=$3;
    [[ -z ${src} ]] && die "Could not locate source for '${src_input}'";
    local shrtsrc=$(basename "${src}");
    echo ">>> Unpacking ${shrtsrc} to ${PWD}";
    if [[ -z ${skip} ]]; then
        local ver=$(grep -m1 -a '#.*Makeself' "${src}" | awk '{print $NF}');
        local skip=0;
        exe=tail;
        case ${ver} in 
            1.5.* | 1.6.0-nv)
                skip=$(grep -a ^skip= "${src}" | cut -d= -f2)
            ;;
            2.0 | 2.0.1)
                skip=$(grep -a ^'	'tail "${src}" | awk '{print $2}' | cut -b2-)
            ;;
            2.1.1)
                skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-);
                (( skip++ ))
            ;;
            2.1.2)
                skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1);
                (( skip++ ))
            ;;
            2.1.3)
                skip=`grep -a ^offset= "${src}" | awk '{print $3}'`;
                (( skip++ ))
            ;;
            2.1.4 | 2.1.5)
                skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1);
                skip=$(head -n ${skip} "${src}" | wc -c);
                exe="dd"
            ;;
            *)
                eerror "I'm sorry, but I was unable to support the Makeself file.";
                eerror "The version I detected was '${ver}'.";
                eerror "Please file a bug about the file ${shrtsrc} at";
                eerror "http://bugs.gentoo.org/ so that support can be added.";
                die "makeself version '${ver}' not supported"
            ;;
        esac;
        debug-print "Detected Makeself version ${ver} ... using ${skip} as offset";
    fi;
    case ${exe} in 
        tail)
            exe="tail -n +${skip} '${src}'"
        ;;
        dd)
            exe="dd ibs=${skip} skip=1 if='${src}'"
        ;;
        *)
            die "makeself cant handle exe '${exe}'"
        ;;
    esac;
    local filetype tmpfile=$(emktemp);
    eval ${exe} 2> /dev/null | head -c 512 > "${tmpfile}";
    filetype=$(file -b "${tmpfile}") || die;
    case ${filetype} in 
        *tar\ archive*)
            eval ${exe} | tar --no-same-owner -xf -
        ;;
        bzip2*)
            eval ${exe} | bzip2 -dc | tar --no-same-owner -xf -
        ;;
        gzip*)
            eval ${exe} | tar --no-same-owner -xzf -
        ;;
        compress*)
            eval ${exe} | gunzip | tar --no-same-owner -xf -
        ;;
        *)
            eerror "Unknown filetype \"${filetype}\" ?";
            false
        ;;
    esac;
    assert "failure unpacking (${filetype}) makeself ${shrtsrc} ('${ver}' +${skip})"
}
unpack_pdv () 
{ 
    local src=$(find_unpackable_file "$1");
    local sizeoff_t=$2;
    [[ -z ${src} ]] && die "Could not locate source for '$1'";
    [[ -z ${sizeoff_t} ]] && die "No idea what off_t size was used for this pdv :(";
    local shrtsrc=$(basename "${src}");
    echo ">>> Unpacking ${shrtsrc} to ${PWD}";
    local metaskip=$(tail -c ${sizeoff_t} "${src}" | hexdump -e \"%i\");
    local tailskip=$(tail -c $((${sizeoff_t}*2)) "${src}" | head -c ${sizeoff_t} | hexdump -e \"%i\");
    local metafile=$(emktemp);
    tail -c +$((${metaskip}+1)) "${src}" > "${metafile}";
    local datafile=$(tail -c +$((${metaskip}+1)) "${src}" | strings | head -n 1);
    datafile=$(basename "${datafile}");
    local tmpfile=$(emktemp);
    tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c 512 > ${tmpfile};
    local iscompressed=$(file -b "${tmpfile}");
    if [[ ${iscompressed:0:8} == "compress" ]]; then
        iscompressed=1;
        mv ${tmpfile}{,.Z};
        gunzip ${tmpfile};
    else
        iscompressed=0;
    fi;
    local istar=$(file -b "${tmpfile}");
    if [[ ${istar:0:9} == "POSIX tar" ]]; then
        istar=1;
    else
        istar=0;
    fi;
    if [ ${iscompressed} -eq 1 ]; then
        if [ ${istar} -eq 1 ]; then
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -;
        else
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc > ${datafile};
        fi;
    else
        if [ ${istar} -eq 1 ]; then
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -;
        else
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) > ${datafile};
        fi;
    fi;
    true
}
update_depmod () 
{ 
    debug-print-function ${FUNCNAME} $*;
    get_version;
    ebegin "Updating module dependencies for ${KV_FULL}";
    if [ -r "${KV_OUT_DIR}"/System.map ]; then
        depmod -ae -F "${KV_OUT_DIR}"/System.map -b "${ROOT}" -r ${KV_FULL};
        eend $?;
    else
        ewarn;
        ewarn "${KV_OUT_DIR}/System.map not found.";
        ewarn "You must manually update the kernel module dependencies using depmod.";
        eend 1;
        ewarn;
    fi
}
update_moduledb () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local MODULEDB_DIR="${ROOT}"/var/lib/module-rebuild/;
    move_old_moduledb;
    if [[ ! -f "${MODULEDB_DIR}"/moduledb ]]; then
        [[ ! -d "${MODULEDB_DIR}" ]] && mkdir -p "${MODULEDB_DIR}";
        touch "${MODULEDB_DIR}"/moduledb;
    fi;
    if ! grep -qs ${CATEGORY}/${PN}-${PVR} "${MODULEDB_DIR}"/moduledb; then
        einfo "Adding module to moduledb.";
        echo "a:1:${CATEGORY}/${PN}-${PVR}" >> "${MODULEDB_DIR}"/moduledb;
    fi
}
update_modules () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if [ -x /sbin/update-modules ] && grep -v -e "^#" -e "^$" "${D}"/etc/modules.d/* > /dev/null 2>&1; then
        ebegin "Updating modules.conf";
        /sbin/update-modules;
        eend $?;
    else
        if [ -x /sbin/update-modules ] && grep -v -e "^#" -e "^$" "${D}"/etc/modules.d/* > /dev/null 2>&1; then
            ebegin "Updating modules.conf";
            /sbin/update-modules;
            eend $?;
        fi;
    fi
}
use_if_iuse () 
{ 
    in_iuse $1 || return 1;
    use $1
}
use_m () 
{ 
    debug-print-function ${FUNCNAME} $*;
    get_version;
    [ ${KV_MAJOR} -eq 3 ] && return 0;
    [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && return 0 || return 1
}
usex () 
{ 
    use "$1" && echo "${2-yes}$4" || echo "${3-no}$5"
}
validate_desktop_entries () 
{ 
    if [[ -x /usr/bin/desktop-file-validate ]]; then
        einfo "Checking desktop entry validity";
        local directories="";
        for d in /usr/share/applications $@;
        do
            [[ -d ${D}${d} ]] && directories="${directories} ${D}${d}";
        done;
        if [[ -n ${directories} ]]; then
            for FILE in $(find ${directories} -name "*\.desktop" 							-not -path '*.hidden*' | sort -u 2>/dev/null);
            do
                local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | 								sed -e "s|error: ||" -e "s|${FILE}:|--|g" );
                [[ -n $temp ]] && elog ${temp/--/${FILE/${D}/}:};
            done;
        fi;
        echo "";
    else
        einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo.";
    fi
}
version_compare () 
{ 
    eshopts_push -s extglob;
    local ver_a=${1} ver_b=${2} parts_a parts_b;
    local cur_tok_a cur_tok_b num_part_a num_part_b;
    local -i cur_idx_a=0 cur_idx_b=0 prev_idx_a prev_idx_b;
    parts_a=($(get_all_version_components "${ver_a}" ));
    parts_b=($(get_all_version_components "${ver_b}" ));
    local -i inf_loop=0;
    while true; do
        inf_loop+=1;
        ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";
        prev_idx_a=cur_idx_a;
        prev_idx_b=cur_idx_b;
        cur_tok_a=${parts_a[cur_idx_a]};
        cur_tok_b=${parts_b[cur_idx_b]};
        if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then
            cur_idx_a+=1;
            [[ ${parts_a[cur_idx_a]} == . ]] && cur_idx_a+=1;
        else
            cur_tok_a=;
        fi;
        if [[ -n ${cur_tok_b} ]] && [[ -z ${cur_tok_b//[[:digit:]]} ]]; then
            cur_idx_b+=1;
            [[ ${parts_b[cur_idx_b]} == . ]] && cur_idx_b+=1;
        else
            cur_tok_b=;
        fi;
        [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]] && break;
        [[ -z ${cur_tok_a} ]] && eshopts_pop && return 1;
        [[ -z ${cur_tok_b} ]] && eshopts_pop && return 3;
        if (( prev_idx_a != 0 && prev_idx_b != 0 )) && [[ ${cur_tok_a} == 0* || ${cur_tok_b} == 0* ]]; then
            cur_tok_a=${cur_tok_a%%+(0)};
            cur_tok_b=${cur_tok_b%%+(0)};
            [[ ${cur_tok_a} < ${cur_tok_b} ]] && eshopts_pop && return 1;
            [[ ${cur_tok_a} > ${cur_tok_b} ]] && eshopts_pop && return 3;
        else
            cur_tok_a=${cur_tok_a##+(0)};
            cur_tok_b=${cur_tok_b##+(0)};
            : ${cur_tok_a:=0};
            : ${cur_tok_b:=0};
            ((cur_tok_a < cur_tok_b)) && eshopts_pop && return 1;
            ((cur_tok_a > cur_tok_b)) && eshopts_pop && return 3;
        fi;
    done;
    local letter_a=;
    letter_a=${parts_a[cur_idx_a]};
    if [[ ${#letter_a} -eq 1 && -z ${letter_a/[a-z]} ]]; then
        cur_idx_a+=1;
    else
        letter_a=@;
    fi;
    local letter_b=;
    letter_b=${parts_b[cur_idx_b]};
    if [[ ${#letter_b} -eq 1 && -z ${letter_b/[a-z]} ]]; then
        cur_idx_b+=1;
    else
        letter_b=@;
    fi;
    [[ ${letter_a} < ${letter_b} ]] && eshopts_pop && return 1;
    [[ ${letter_a} > ${letter_b} ]] && eshopts_pop && return 3;
    inf_loop=0;
    while true; do
        inf_loop+=1;
        ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";
        [[ ${parts_a[cur_idx_a]} == _ ]] && ((cur_idx_a++));
        [[ ${parts_b[cur_idx_b]} == _ ]] && ((cur_idx_b++));
        cur_tok_a=${parts_a[cur_idx_a]};
        cur_tok_b=${parts_b[cur_idx_b]};
        num_part_a=0;
        num_part_b=0;
        if has ${cur_tok_a%%+([0-9])} "alpha" "beta" "pre" "rc" "p"; then
            cur_idx_a+=1;
            num_part_a=${cur_tok_a##+([a-z])};
            num_part_a=${num_part_a##+(0)};
            : ${num_part_a:=0};
            cur_tok_a=${cur_tok_a%%+([0-9])};
        else
            cur_tok_a=;
        fi;
        if has ${cur_tok_b%%+([0-9])} alpha beta pre rc p; then
            cur_idx_b+=1;
            num_part_b=${cur_tok_b##+([a-z])};
            num_part_b=${num_part_b##+(0)};
            : ${num_part_b:=0};
            cur_tok_b=${cur_tok_b%%+([0-9])};
        else
            cur_tok_b=;
        fi;
        if [[ ${cur_tok_a} != ${cur_tok_b} ]]; then
            local suffix;
            for suffix in alpha beta pre rc "" p;
            do
                [[ ${cur_tok_a} == ${suffix} ]] && eshopts_pop && return 1;
                [[ ${cur_tok_b} == ${suffix} ]] && eshopts_pop && return 3;
            done;
        else
            if [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]]; then
                break;
            else
                ((num_part_a < num_part_b)) && eshopts_pop && return 1;
                ((num_part_a > num_part_b)) && eshopts_pop && return 3;
            fi;
        fi;
    done;
    [[ ${parts_a[cur_idx_a]} == - ]] && ((cur_idx_a++));
    [[ ${parts_b[cur_idx_b]} == - ]] && ((cur_idx_b++));
    if [[ -n ${parts_a[cur_idx_a]/r+([0-9])} || -n ${parts_b[cur_idx_b]/r+([0-9])} ]]; then
        die "versionator compare bug [revisions, ${ver_a}, ${ver_b}]";
    fi;
    num_part_a=${parts_a[cur_idx_a]#r};
    num_part_a=${num_part_a##+(0)};
    : ${num_part_a:=0};
    num_part_b=${parts_b[cur_idx_b]#r};
    num_part_b=${num_part_b##+(0)};
    : ${num_part_b:=0};
    ((num_part_a < num_part_b)) && eshopts_pop && return 1;
    ((num_part_a > num_part_b)) && eshopts_pop && return 3;
    eshopts_pop;
    return 2
}
version_format_string () 
{ 
    local fstr=$1;
    shift;
    set -- $(get_version_components "$@");
    eval echo "${fstr}"
}
version_is_at_least () 
{ 
    local want_s="$1" have_s="${2:-${PVR}}" r;
    version_compare "${want_s}" "${have_s}";
    r=$?;
    case $r in 
        1 | 2)
            return 0
        ;;
        3)
            return 1
        ;;
        *)
            die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]"
        ;;
    esac
}
version_sort () 
{ 
    eshopts_push -s extglob;
    local items=;
    local -i left=0;
    items=("$@");
    while ((left < ${#items[@]})); do
        local -i lowest_idx=left;
        local -i idx=lowest_idx+1;
        while ((idx < ${#items[@]})); do
            version_compare "${items[lowest_idx]}" "${items[idx]}";
            [[ $? -eq 3 ]] && lowest_idx=idx;
            idx+=1;
        done;
        local tmp=${items[lowest_idx]};
        items[lowest_idx]=${items[left]};
        items[left]=${tmp};
        left+=1;
    done;
    echo ${items[@]};
    eshopts_pop
}

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [gentoo-user] Re: Error emerging ati-drivers-11.11
  2011-12-24  9:48 [gentoo-user] Error emerging ati-drivers-11.11 czernitko
@ 2011-12-24 10:04 ` czernitko
  0 siblings, 0 replies; 2+ messages in thread
From: czernitko @ 2011-12-24 10:04 UTC (permalink / raw
  To: gentoo-user

[-- Attachment #1: Type: text/plain, Size: 7516 bytes --]

I finally found an unconfirmed bug about this -
https://bugs.gentoo.org/show_bug.cgi?id=392753
Unfortunately without solution.
Any tips?

2011/12/24 czernitko <czernitko@gmail.com>

> Hello everyone!
> I've got a problem that makes me lose my hair for about two days already.
> Emerging ati-drivers results in ebuild error, but ati proprietary installer
> works just fine. Last version of ati-drivers that compiles just fine is
> 11.6. All following versions of the driver (11.7-11.12) fail to compile. I
> haven't found any appropriate bug, so I guess there is more probably some
> problem with my environment. I am using hardened profile, by the way, but
> without PaX or GrSecurity. Does anyone have any clue about a solution? Or
> should I fill a bug at bugs.gentoo.org as this seems not to be an
> upstream bug?
>
> Thanks for any advice!
> Peter
>
> gethexis ~ # emerge -pqv =x11-drivers/ati-drivers-11.11
> [ebuild     U] x11-drivers/ati-drivers-11.11 [11.6] USE="modules
> (multilib) qt4 -debug (-opencl)"
>
> gethexis ~ # emerge --info =x11-drivers/ati-drivers-11.11
> Portage 2.1.10.41 (hardened/linux/amd64, gcc-4.5.3-hardenednopie,
> glibc-2.13-r4, 3.0.4-hardened-r1 x86_64)
> =================================================================
>                         System Settings
> =================================================================
> System uname:
> Linux-3.0.4-hardened-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_Q_720_@
> _1.60GHz-with-gentoo-2.0.3
> Timestamp of tree: Sat, 24 Dec 2011 09:15:01 +0000
> app-shells/bash:          4.1_p9
> dev-java/java-config:     2.1.11-r3
> dev-lang/python:          2.6.6-r2, 2.7.2-r3, 3.1.4-r3
> dev-util/cmake:           2.8.6-r4
> dev-util/pkgconfig:       0.26
> sys-apps/baselayout:      2.0.3
> sys-apps/openrc:          0.9.4
> sys-apps/sandbox:
> 2.5
>
> sys-devel/autoconf:       2.13,
> 2.68
>
> sys-devel/automake:       1.9.6-r3, 1.10.3,
> 1.11.1
>
> sys-devel/binutils:
> 2.21.1-r1
>
> sys-devel/gcc:
> 4.5.3-r1
>
> sys-devel/gcc-config:
> 1.4.1-r1
>
> sys-devel/libtool:
> 2.4-r1
>
> sys-devel/make:           3.82-r1
> sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
> sys-libs/glibc:           2.13-r4
> Repositories: gentoo x-portage
> ACCEPT_KEYWORDS="amd64"
> ACCEPT_LICENSE="* -@EULA PUEL Oracle-BCLA-JavaSE"
> CBUILD="x86_64-pc-linux-gnu"
> CFLAGS="-O2 -pipe -march=core2"
> CHOST="x86_64-pc-linux-gnu"
> CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt
> /usr/share/maven-bin-3.0/conf /usr/share/themes/oxygen-gtk/gtk-2.0
> /var/lib/hsqldb"
> CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/
> /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release
> /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/
> /etc/php/cli-php5.3/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="-O2 -pipe -march=core2"
> DISTDIR="/usr/portage/distfiles"
> EMERGE_DEFAULT_OPTS="--autounmask=n --keep-going"
> FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles
> news parallel-fetch protect-owned sandbox sfperms splitdebug strict
> unknown-features-warn unmerge-logs unmerge-orphans userfetch"
> FFLAGS="-O2 -pipe -march=core2 -funroll-all-loops"
> GENTOO_MIRRORS="http://ftp.fi.muni.cz/pub/linux/gentoo/"
> LANG="cs_CZ.UTF-8"
> LDFLAGS="-Wl,-O1 -Wl,--as-needed"
> LINGUAS="cs en"
> MAKEOPTS="-j9"
> PKGDIR="/usr/portage/packages"
> PORTAGE_CONFIGROOT="/"
> 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/local/portage"
> SYNC="rsync://rsync.cz.gentoo.org/gentoo-portage"
> USE="3dnow 3dnowext X aac acl acpi alsa amd64 amr aol apache2 autoipd
> avahi bash-completion berkdb bluetooth branding bugzilla bzip2 cdr clamav
> cli consolekit cracklib crypt cups cvs cxx dbus dhcp dirac directfb
> disk-partition dri dvd eap-tls embedded encode exif extensions extras
> ffmpeg firefox flac fontconfig fortran ftp fuse gcj gcrypt gd gdbm
> geolocation gif gimp git gnutls gpg gphoto2 gpm gpu graphviz groupwise
> handbook hardened hddtemp iconv icq icu imagemagick imap inifile innodb
> inotify ipv6 jabber java javascript jpeg jpeg2k justify kde kerberos kipi
> lame laptop latex lcms lensfun libnotify lm_sensors lzma lzo mad matroska
> matrox mercurial mhash mime mjpeg mmap mmx mmxext mng modplug modules mono
> mozilla mp3 mp4 mpeg mpi mplayer msn mudflap multilib mysql mysqli ncurses
> networkmanager nls nntp nocd nodrm nptl nptlonly nsplugin nspluginwrapper
> odbc ogg openal opengl openmp osc oscar pam pax_kernel pcntl pcre pdf perl
> php pic plasma png policykit posix pppd prediction private-headers
> pulseaudio python qq qt3support qt4 quicktime radius raw rdesktop readline
> recode redeyes reports rss samba sasl schroedinger scp sdl seamonkey
> semantic-desktop session sftp sharedext sharedmem silc skey skype slp smp
> snmp soap sockets socks5 source spell sql sqlite sqlite3 sse sse2 ssl ssse3
> startup-notification static-libs subversion suid svg symlink synaptics
> sysfs syslog sysvipc taglib tcl tcpd threads thumbnail thumbnails tidy tiff
> truetype udev unicode upnp urandom usb v4l v4l2 vaapi vhosts video
> virtualbox vnc vorbis wavpack webkit wifi wmf x264 xattr xcb xcomposite
> xext xine xinerama xinetd xml xmp xorg xosd xpm xrandr xscreensaver xsl
> xulrunner xv xvid yahoo zephyr zeroconf zlib zsh-completion"
> 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"
> 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 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 stage tables krita karbon braindump" CAMERAS="ptp2"
> 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 ubx"
> INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad
> cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="cs
> en" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="arm i386 x86_64"
> QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU"
> VIDEO_CARDS="fglrx radeon" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND,
> PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
>
>
>

[-- Attachment #2: Type: text/html, Size: 9565 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-12-24 10:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-24  9:48 [gentoo-user] Error emerging ati-drivers-11.11 czernitko
2011-12-24 10:04 ` [gentoo-user] " czernitko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox