Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 439678 - sys-apps/dtc built without -fPIC and it needs to be
Summary: sys-apps/dtc built without -fPIC and it needs to be
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Luca Barbato
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-25 20:53 UTC by Nick Bowler
Modified: 2012-11-04 11:50 UTC (History)
2 users (show)

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


Attachments
Complete build log. (app-emulation:qemu-1.1.1-r1:20121025-204326.log,31.41 KB, text/plain)
2012-10-25 20:53 UTC, Nick Bowler
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Bowler 2012-10-25 20:53:34 UTC
Created attachment 327424 [details]
Complete build log.

With USE=fdt, app-emulation/qemu-1.1.1-r1 fails to build:

  LINK  arm-softmmu/qemu-system-arm
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.4/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.4/../../../../lib64/libfdt.a(fdt.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.4/../../../../lib64/libfdt.a: could not read symbols: Bad value

This is apparently because sys-apps/dtc-1.2.0 (the current stable version, and
the minimum version required by the qemu ebuild) does not install a shared
libfdt.  Updating to dtc-1.3.0 would solve the problem, as it installs the
shared library, but stable versions of qemu should work with stable dtc.

  [ebuild   R    ] app-emulation/qemu-1.1.1-r1  USE="aio alsa caps curl doc fdt* ncurses opengl python sdl vhost-net -bluetooth -brltty -debug -pulseaudio -rbd -sasl -smartcard -spice -static -tci -tls -usbredir -vde -virtfs -xattr -xen -xfs" QEMU_SOFTMMU_TARGETS="arm i386 x86_64 -alpha -cris -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -xtensa -xtensaeb" QEMU_USER_TARGETS="arm mips mipsel ppc ppc64 -alpha -armeb -cris -i386 -m68k -microblaze -microblazeel -ppc64abi32 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32 -x86_64" 0 kB

Portage 2.1.11.9 (default/linux/amd64/10.0, gcc-4.5.4, glibc-2.15-r3, 3.6.0 x86_64)
=================================================================
System uname: Linux-3.6.0-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q8300_@_2.50GHz-with-gentoo-2.1
Timestamp of tree: Thu, 25 Oct 2012 00:45:01 +0000
distcc 3.1 x86_64-pc-linux-gnu [disabled]
ccache version 3.1.7 [enabled]
app-shells/bash:          4.2_p37
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/ccache:          3.1.7
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.27.1
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.9.8.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.10.3, 1.11.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            3.4.6-r2, 4.1.2, 4.2.4-r1, 4.5.4
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.1 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo gentoo-draconx
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE @OTHER-FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
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/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/ssl/certs/ca-certificates.crt /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=core2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch webrsync-gpg"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirror.datapipe.net/gentoo"
LANG="en_CA.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_CA en ja"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl alsa amd64 berkdb bzip2 cairo cjk cli cracklib crypt cups curl cvs cxx doc dri enca exif fbcon fdt ffmpeg flac fontconfig fontforge fortran gdbm gnutls gpm graphviz gtk iconv icu idn imagemagick ipv6 jadetex jpeg kpathsea latex lcms libass lto mad mmx modules mp3 mp4 mudflap multilib ncurses nls nptl ogg opengl openmp otr pam pcre perl png postgres pppd python qt3support readline sdl session smp sse sse2 sse3 ssl ssse3 svg tcpd tex4ht theora threads tiff truetype unicode vim-syntax vorbis xcb xft xinerama xulrunner xv zlib" 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="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" 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="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en_CA en ja" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm mips mipsel ppc ppc64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel fbdev" 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, USE_PYTHON
Comment 1 Doug Goldstein (RETIRED) gentoo-dev 2012-10-26 22:10:05 UTC
The bug here is with sys-apps/dtc. Its not built with -fPIC and needs to be. Unfortunately I'm not near a Gentoo box atm so reassigning to bug-wranglers to assign this correctly.
Comment 2 Samuli Suominen (RETIRED) gentoo-dev 2012-10-27 18:07:08 UTC
so lets just stabilize newer dtc? any objections from ppc maintainers?
Comment 3 Andreas Thalhammer 2012-11-01 08:23:34 UTC
I've just hit this bug. It took me a while to find that the actual fault is with dtc (libfdt) rather than with qemu.

NOTE that the QEMU_SOFTMMU_TARGETS x86, x86_64 and m68k worked fine without errors.

I recently added the QEMU_SOFTMMU_TARGETS arm, ppc, ppc64 and ppcemb, and all of them where affected by sys-apps/dtc-1.2.0 not being compiled with -fPIC.

SOLUTION was to add -fPIC to C[XX]FLAFS globally for the emerge of dtc. qemu compiled without errors thereafter.

This really should be fixed in sys-apps/dtc. Other users may be affected as well and they may also have a hard time finding the actual cause...
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2012-11-01 08:25:47 UTC
(In reply to comment #3)
> I've just hit this bug. It took me a while to find that the actual fault is
> with dtc (libfdt) rather than with qemu.
> 
> NOTE that the QEMU_SOFTMMU_TARGETS x86, x86_64 and m68k worked fine without
> errors.
> 
> I recently added the QEMU_SOFTMMU_TARGETS arm, ppc, ppc64 and ppcemb, and
> all of them where affected by sys-apps/dtc-1.2.0 not being compiled with
> -fPIC.
> 
> SOLUTION was to add -fPIC to C[XX]FLAFS globally for the emerge of dtc. qemu
> compiled without errors thereafter.
> 
> This really should be fixed in sys-apps/dtc. Other users may be affected as
> well and they may also have a hard time finding the actual cause...

this is not helpful. try the latest ~arch marked dtc from tree and report back if that works. if you read the bug, we are aiming for stabilizing new version to solve this after verification(s).
Comment 5 Andreas Thalhammer 2012-11-03 17:29:58 UTC
(In reply to comment #4)
> this is not helpful. try the latest ~arch marked dtc from tree and report
> back if that works. if you read the bug, we are aiming for stabilizing new
> version to solve this after verification(s).

sys-apps/dtc-1.3.0 conflicts with media-libs/freetype-2.4.9-r1, which is pulled by ~46 packages; some of them, like xorg-server and kdelibs, I consider too important to play with.

The conflict is a file collision, namely /usr/bin/ftdump.

Can I safely upgrade to media-libs/freetype-2.4.10-r1 and keep the system in a working state? Will this solve the file collision?
Comment 6 Samuli Suominen (RETIRED) gentoo-dev 2012-11-03 19:24:36 UTC
should be fixed in tree now in 1.3.0 and 9999
Comment 7 Andreas Thalhammer 2012-11-04 11:50:24 UTC
I can now confirm that this is fixed for me on amd64 with stable sys-apps/dtc-1.3.0 and app-emulation/qemu-1.1.2-r2,

USE="aio alsa bluetooth caps curl doc fdt jpeg mixemu ncurses opengl png pulseaudio python sdl threads usbredir uuid vde vhost-net virtfs vnc xattr -brltty -debug -rbd -sasl -smartcard -spice -static -systemtap -tci -tls -xen -xfs"

QEMU_SOFTMMU_TARGETS="arm i386 m68k ppc ppc64 ppcemb x86_64 -alpha -cris -lm32 -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -s390x -sh4 -sh4eb -sparc -sparc64 -xtensa -xtensaeb"

QEMU_USER_TARGETS="i386 -alpha -arm -armeb -cris -m68k -microblaze -microblazeel -mips -mipsel -ppc -ppc64 -ppc64abi32 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32 -x86_64"

Thanks.