Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 446900 - sys-devel/llvm-3.1-r2 fails to compile on PPC64
Summary: sys-devel/llvm-3.1-r2 fails to compile on PPC64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Bernard Cafarelli
URL:
Whiteboard: fixed in 3.3-r1
Keywords:
Depends on:
Blocks: 320221
  Show dependency tree
 
Reported: 2012-12-11 17:42 UTC by Agostino Sarubbo
Modified: 2013-10-13 07:51 UTC (History)
2 users (show)

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


Attachments
build.log (llvm-3.1-r2:20121211-172342.log,975.64 KB, text/plain)
2012-12-11 17:42 UTC, Agostino Sarubbo
Details
Patch to fix the failure (llvm.diff,333 bytes, patch)
2013-06-01 08:58 UTC, Kai Nacke
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2012-12-11 17:42:46 UTC
Created attachment 332058 [details]
build.log

Portage 2.1.11.31 (default/linux/powerpc/ppc64/10.0/64bit-userland, gcc-4.5.4, glibc-2.15-r3, 3.2.34 ppc64)                                                                         
=================================================================                                                                                                                   
System uname: Linux-3.2.34-ppc64-POWER7_-architected-with-gentoo-2.1                                                                                                                
Timestamp of tree: Tue, 11 Dec 2012 17:00:01 +0000                                                                                                                                  
ld GNU ld (GNU Binutils) 2.22                                                                                                                                                       
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/cmake:           2.8.9                                                                                                                                                     
dev-util/pkgconfig:       0.27.1                                                                                                                                                    
sys-apps/baselayout:      2.1-r1                                                                                                                                                    
sys-apps/openrc:          0.11.8                                                                                                                                                    
sys-apps/sandbox:         2.5                                                                                                                                                       
sys-devel/autoconf:       2.13, 2.68                                                                                                                                                
sys-devel/automake:       1.9.6-r3, 1.11.6                                                                                                                                          
sys-devel/binutils:       2.22-r1                                                                                                                                                   
sys-devel/gcc:            4.5.4                                                                                                                                                     
sys-devel/gcc-config:     1.7.3                                                                                                                                                     
sys-devel/libtool:        2.4-r1                                                                                                                                                    
sys-devel/make:           3.82-r4                                                                                                                                                   
sys-kernel/linux-headers: 3.6 (virtual/os-headers)                                                                                                                                  
sys-libs/glibc:           2.15-r3                                                                                                                                                   
Repositories: gentoo x-portage                                                                                                                                                      
ACCEPT_KEYWORDS="ppc64"                                                                                                                                                             
ACCEPT_LICENSE="*"                                                                                                                                                                  
CBUILD="powerpc64-unknown-linux-gnu"                                                                                                                                                
CFLAGS="-O2 -pipe"                                                                                                                                                                  
CHOST="powerpc64-unknown-linux-gnu"                                                                                                                                                 
CONFIG_PROTECT="/etc /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"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles/"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.osuosl.org/"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j24"
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://bobolink.gentoo.osuosl.org/gentoo-portage"
USE="X acl berkdb bzip2 cli consolekit cracklib crypt cups cxx dbus dri fontconfig fortran gdbm gpm gudev hwdb ibm iconv ipv6 jpeg kde minizip modules mudflap ncurses nls nptl ogg opengl openmp pam pcre png policykit ppc64 pppd qt3support qt4 readline semantic-desktop session ssl tcpd unicode vorbis 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="am fil zh af ca cs da de el es et gl hu nb nl pl pt ro ru sk sl sv uk bg cy en eo fo ga he id ku lt lv mk ms nn sw tn zu ja zh_TW en_GB pt_BR ko zh_CN ar en_CA fi kk oc sr tr fa wa nds as be bn bn_BD bn_IN en_US es_AR es_CL es_ES es_MX eu fy fy_NL ga_IE gu gu_IN hi hi_IN is ka kn ml mr nn_NO or pa pa_IN pt_PT rm si sq sv_SE ta ta_LK te th vi ast dz km my om sh ug uz ca@valencia sr@ijekavian sr@ijekavianlatin sr@latin csb hne mai se es_LA fr_CA zh_HK br la no es_CR et_EE sr_CS bo hsb hy mn sr@Latn lb ne bs tg uz@cyrillic xh be_BY brx ca_XV dgo en_ZA gd kok ks ky lo mni nr ns pap ps rw sa_IN sat sd ss st sw_TZ ti ts ve mt ia az me tl ak hy_AM lg nso son ur_PK it fr nb nb_NO hr nan ur tk cs_CZ da_DK de_1901 de_CH en_AU lt_LT pl_PL sa sk_SK th_TH ta_IN tt sco ha mi ven ar_SY el_GR ro_RO ru_RU sl_SI uk_UA vi_VN ar_SY te_IN de_DE es_VE fa_IR fr_FR hu_HU id_ID it_IT ja_JP ka_GE nl_NL sr_BA sr_RS ca_ES fi_FI he_IL jv ru_gold yi eu_ES" PHP_TARGETS="php5-3 php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="radeon"
USE_PYTHON="2.7 3.2"
Comment 1 Bernard Cafarelli gentoo-dev 2012-12-14 13:08:37 UTC
> sibling call optimization to `llvm::TargetData::getTypeAllocSize(llvm::Type*) const' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `llvm::TargetData::getTypeAllocSize(llvm::Type*) const' extern


Hmm... llvm 3.2 release notes mention "PPC64 relocation support and (small code model) TOC handling added" among a big list of "PowerPC Target Improvements". Can you test with 3.2_rc3? (package.masked in tree) If that one works, we can wait for ppc64 keywording until 3.2
Comment 2 Agostino Sarubbo gentoo-dev 2012-12-14 20:19:03 UTC
fails too
Comment 3 Kai Nacke 2013-05-31 17:53:39 UTC
LLVM compiles only if the flag -mminimal-toc is passed to gcc/g++.
Comment 4 Kai Nacke 2013-06-01 08:58:55 UTC
Created attachment 349806 [details, diff]
Patch to fix the failure

The fix is to add use ppc64 && append-flags "-mminimal-toc" in the configure step. I tested this with llvm-9999 but should apply to all user versions, too.
Comment 5 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2013-06-01 09:35:53 UTC
Is this a suitable change for upstream as well? We don't really want to keep hacking this around indefinitely.
Comment 6 Kai Nacke 2013-06-01 09:59:59 UTC
(In reply to Michał Górny from comment #5)
> Is this a suitable change for upstream as well? We don't really want to keep
> hacking this around indefinitely.

Good questions. I will discuss this on the llvm mailing list.
Comment 7 Kai Nacke 2013-06-01 19:23:24 UTC
(In reply to Michał Górny from comment #5)
> Is this a suitable change for upstream as well? We don't really want to keep
> hacking this around indefinitely.

I posted a patch upstream: http://article.gmane.org/gmane.comp.compilers.llvm.cvs/147365

It really depends on the compiler version. The flag is only required for gcc < 4.6.
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2013-10-12 12:25:52 UTC
Could you retry with 3.3-r1, please?