Emerging kdelibs-4.4.5 fails because of warnings (TEXTRELs) during linking: ------------------- * QA Notice: The following files contain runtime text relocations * Text relocations force the dynamic linker to perform extra * work at startup, waste system resources, and may pose a security * risk. On some architectures, the code may not even function * properly, if at all. * For more information, see http://hardened.gentoo.org/pic-fix-guide.xml * Please include the following list of files in your report: * TEXTREL usr/lib/libkhtml.so.5.4.0 * TEXTREL usr/lib/kde4/libkhtmlpart.so * TEXTREL usr/lib/kde4/libkmultipart.so * TEXTREL usr/lib/kde4/krossmoduleforms.so * TEXTREL usr/lib/kde4/kjavaappletviewer.so * TEXTREL usr/lib/kde4/kded_proxyscout.so * TEXTREL usr/lib/kde4/plugins/script/libkrossqtsplugin.so.4.4.0 * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_psd.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_rgb.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_pcx.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_xcf.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_tga.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_xview.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_eps.so * TEXTREL usr/lib/kde4/plugins/imageformats/kimg_dds.so * TEXTREL usr/lib/kde4/khtmladaptorpart.so * TEXTREL usr/lib/libplasma.so.3.0.0 * TEXTREL usr/lib/libkjsembed.so.4.4.0 ------------------- Reproducible: Always Actual Results: Linker warnings are fatal. Expected Results: Ignore linker warnings. kdelibs should not be used to do QA for the rest of the system. I have to use -Wl,--no-fatal-warnings in LDFLAGS to emerge it. Maybe it would be a good idea to add an useflag like "no-system-qa" which would add the above linker flag to LDFLAGS for kdelibs. Without that emerging kdelibs will fail whenever one of the dozens libs it is using has poor programming practices, which doesn't look like a good idea for me.
Please add the output of emerge --info
Here it is: --------------- beagle ~ # emerge --info Portage 2.1.8.3 (default/linux/arm/10.0/desktop/kde, gcc-4.5.1, glibc-2.11.2-r0, 2.6.35.4-beagle-omap-dss2-00069-gc3887c9 armv7l) ================================================================= System uname: Linux-2.6.35.4-beagle-omap-dss2-00069-gc3887c9-armv7l-ARMv7_Processor_rev_3_-v7l-with-gentoo-1.12.13 Timestamp of tree: Fri, 13 Aug 2010 18:40:01 +0000 app-shells/bash: 4.0_p37 dev-lang/python: 2.6.5-r3 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 1.12.13 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.3.4, 4.5.1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="arm" ACCEPT_LICENSE="* -@EULA" CBUILD="armv7a-unknown-linux-gnueabi" CFLAGS="-Os -pipe -mtune=cortex-a8 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer -fno-tree-vectorize -std=gnu99" CHOST="armv7a-unknown-linux-gnueabi" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-Os -pipe -mtune=cortex-a8 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer -fno-tree-vectorize -std=gnu++0x -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://eiche.ahsoftware/GentooDistfiles ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" LANG="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed" 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/ebuilds" SYNC="rsync://eiche.ahsoftware/gentoo-portage" USE="X a52 aac acl acpi alsa arm berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dts dvdr emboss encode exif fam firefox flac fortran gdbm gif gpm gtk hal iconv ipv6 jpeg kde lcms ldap libnotify mad mikmod mng modules mp3 mp4 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png ppds pppd python qt3support qt4 readline reflection sdl session spell spl ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis xcb xml xorg xulrunner xv xvid zlib" 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm armeb i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint mach64 mga nv r128 radeon savage sis tdfx trident voodoo" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" You're using FEATURES="strict" and that's why Portage dies. You can either drop strict, at least for building kdelibs, or you'll have to wait for us to fix or get upstream to fix those QA tests.
I haven't enabled that strict (explicit). Is there a way to disable that feature on a per package basis?
btw. I haven't got that problem with any other package, so it seems strict only enables --fatal-warnings for kdelibs.
Those QA warnings should *not* be fatal with FEATURES=strict (only with FEATURES=stricter). In fact, FEATURES=strict is enabled by default on all systems, so it shouldn't be causing that kind of issue. The output you have given doesn't appear to have anything to do with why portage is failing. Please attach the full build.log.
The output was from a build using LDFLAGS with -Wl,--no-fatal-warnings, otherwise it wouldn't be that complete because it would fail linking the first stuff. A short grep revealed the following: ------------------------------------------------- /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/kjsembed/qtonly/FindQJSInternal.cmake: set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/kjsembed/qtonly/FindQJSInternal.cmake: set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/kjsembed/qtonly/FindQJSInternal.cmake: set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/kjsembed/qtonly/FindQJSInternal.cmake: set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/cmake/modules/FindKDE4Internal.cmake: set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/cmake/modules/FindKDE4Internal.cmake: set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/cmake/modules/FindKDE4Internal.cmake: set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}") /var/tmp/portage/kde-base/kdelibs-4.4.5/work/kdelibs-4.4.5/cmake/modules/FindKDE4Internal.cmake: set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}") ------------------------------------------------- Looking at FindKDE4Internal.cmake I see the following: ------------------------------------------------- if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU) if (CMAKE_COMPILER_IS_GNUCXX) set ( _KDE4_PLATFORM_DEFINITIONS -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE) set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}") set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}") ------------------------------------------------- So this explains why many KDE packages will fail whenever a lib they depend on forces TEXTRELs. If a build.log is still needed, I can attach one, when the run I've just started finally failed (needs some time on a beagleboard), but I assume the above explains all. So maybe one of the kde-eclasses should append -Wl,--no-fatal-warnings to LDFLAGS in order to overwrite the --fatal-warnings found in the original makefile.
Created attachment 246587 [details] bzipped log from a failed VERBOSE=1 emerge -1kdelibs
I've just stumbled over the fact, why this warning doesn't occure on other systems than Gentoo. Gentoo has enabled --warn-shared-textrel (for ld) by default through one of the patches for binutils. This means with other binutils who don't use that gentoo-specific patch, building KDE would not fail if one of the used libraries has such textrels. So this is a Gentoo only thing.
The patch which cause this problem is 66_all_binutils-2.18.50.0.2-warn-textrel.patch included in binutils-*-patches-*.tar.bz2
*** Bug 351934 has been marked as a duplicate of this bug. ***
This also made impossible to upgrade to kdelibs-4.6.2 on x86. Only setting LDFLAGS="-Wl,--no-fatal-warnings" helped for me.
Should be fixed for arm (fatal warnings disabled only there), if not please reopen.