Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 554042 - clang fails to emerge on sparc/sparc64
Summary: clang fails to emerge on sparc/sparc64
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: Sparc64 Linux
: Normal normal (vote)
Assignee: LLVM support project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-05 21:48 UTC by Chase Rayfield
Modified: 2018-12-30 10:25 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chase Rayfield 2015-07-05 21:48:54 UTC
This is happening on my sparc64 non multilib box I haven't tested elsewhere.

Reproducible: Always

Steps to Reproduce:
1. Get access to a sparc box 
2. emerge any clang ebuild

Actual Results:  
Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "~sys-devel/llvm-9999[clang(-),debug=,multitarget?,python?,static-analyzer,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]".
(dependency required by "sys-devel/clang-9999-r100::gentoo" [ebuild])


Expected Results:  
clang should build on sparc it is even supposed to be self hosting on sparc64.
Comment 1 Alex Xu (Hello71) 2015-07-11 21:35:02 UTC
please paste the complete output of emerge -pv clang and emerge --info.
Comment 2 Chase Rayfield 2015-07-12 04:42:43 UTC
emerge --info
Portage 2.2.18 (python 2.7.9-final-0, default/linux/sparc/13.0, gcc-5.1.0, glibc-2.19-r1, 4.0.0-gentoo sparc64)
=================================================================
System uname: Linux-4.0.0-gentoo-sparc64-sun4v-with-gentoo-2.2
KiB Mem:    16495112 total,  15380776 free
KiB Swap:      48184 total,     48184 free
Timestamp of repository gentoo: Sat, 11 Jul 2015 07:30:01 +0000
sh bash 4.2_p53
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p53::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.9-r1::gentoo, 3.2.5-r6::gentoo, 3.3.5-r1::gentoo, 3.4.1::gentoo
dev-util/cmake:           3.1.0::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.17::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1::gentoo
sys-devel/binutils:       2.24-r3::gentoo
sys-devel/gcc:            4.7.3-r1::gentoo, 4.8.2::gentoo, 4.9.2::gentoo, 5.1.0::gentoo
sys-devel/gcc-config:     1.7.3::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 3.18::gentoo (virtual/os-headers)
sys-libs/glibc:           2.19-r1::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

voyageur
    location: /var/lib/layman/voyageur
    masters: gentoo
    priority: 0

stuff
    location: /var/lib/layman/stuff
    masters: gentoo
    priority: 1

pentoo
    location: /var/lib/layman/pentoo
    masters: gentoo
    priority: 2

rust
    location: /var/lib/layman/rust
    masters: gentoo
    priority: 3

dotnet
    location: /var/lib/layman/dotnet
    masters: gentoo
    priority: 4

rebutia
    location: /var/lib/layman/rebutia
    masters: gentoo
    priority: 5

java
    location: /var/lib/layman/java
    masters: gentoo
    priority: 6

science
    location: /var/lib/layman/science
    masters: gentoo
    priority: 7

Chaseix
    location: /usr/local/portage
    masters: gentoo
    priority: 8

ACCEPT_KEYWORDS="sparc"
ACCEPT_LICENSE="* -@EULA"
CBUILD="sparc-unknown-linux-gnu"
CFLAGS="-O2 -mcpu=niagara -pipe -ggdb -munaligned-doubles"
CHOST="sparc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -mcpu=niagara -pipe -ggdb -munaligned-doubles"
DISTDIR="/usr/portage/distfiles"
FCFLAGS=""
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news nostrip parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common"
MAKEOPTS="-j32"
PKGDIR="/var/www/localhost/htdocs/gentoo/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X acl apng berkdb bzip2 cli cracklib crypt cxx dri fortran gcc64 gdbm iconv ipv6 llvm-shared-libs lto modules native ncurses nls nptl openmp pcre readline session sparc ssl tcpd threads unicode zlib" 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 author" 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 ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="sparc sparc64" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 3 Chase Rayfield 2015-07-12 04:44:28 UTC
emerge -pv clang

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "~sys-devel/llvm-9999[clang(-),debug=,multitarget?,python?,static-analyzer,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]".
(dependency required by "sys-devel/clang-9999-r100::gentoo" [ebuild])
(dependency required by "clang" [argument])
Comment 4 Bernard Cafarelli gentoo-dev 2015-08-06 15:33:16 UTC
I suppose you have both =sys-devel/clang-9999-r100 and =sys-devel/llvm-9999 in your package.unmask ?
Also clang USE-flag is masked on sparc, did you also unmask it?

Else I don't really have an idea right now, maybe the portage team will have one

By the way, llvm is keyworded on sparc, but not clang. If it works fine now (on a release), it could be worth a keywording bug
Comment 5 Zac Medico gentoo-dev 2015-08-08 07:20:40 UTC
I recommend to verify that the USE settings are sane, using a command like this:

emerge -pv --nodeps llvm clang
Comment 6 Chase Rayfield 2015-08-08 17:32:08 UTC
(In reply to Zac Medico from comment #5)
> I recommend to verify that the USE settings are sane, using a command like
> this:
> 
> emerge -pv --nodeps llvm clang

LLVM is already installed with USE="debug doc gold libffi multitarget ncurses static-analyzer ". VIDEO_CARDS="radeon" also as I was experimenting with building mesa on here. I should have mentioned that before.

leafblower ~ # emerge -pv --nodeps llvm clang

These are the packages that would be merged, in order:

[ebuild   R   *] sys-devel/llvm-9999:0/9999::gentoo  USE="debug doc gold libffi multitarget ncurses static-analyzer (-clang) (-libedit) -lldb -ocaml -python {-test} -xml" PYTHON_TARGETS="python2_7 (-pypy)" VIDEO_CARDS="radeon" 0 KiB
[ebuild  N    *] sys-devel/clang-9999-r100:0/9999::gentoo  USE="static-analyzer -debug -multitarget -python" 0 KiB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 0 KiB
Comment 7 Zac Medico gentoo-dev 2015-08-08 17:55:56 UTC
(In reply to Chase Rayfield from comment #6)
> [ebuild   R   *] sys-devel/llvm-9999:0/9999::gentoo  USE="debug doc gold
> libffi multitarget ncurses static-analyzer (-clang) (-libedit) -lldb -ocaml
> -python {-test} -xml" PYTHON_TARGETS="python2_7 (-pypy)"
> VIDEO_CARDS="radeon" 0 KiB

This shows that the clang flag is masked, and the message in comment #0 shows that it is needed. You can unmask it like this:

mkdir -p /etc/portage/profile
echo -clang >> /etc/portage/profile/use.mask
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2015-08-08 18:37:55 UTC
Also, you shouldn't use USE=debug. It means a lot of trouble.
Comment 9 Chase Rayfield 2015-08-08 18:52:30 UTC
I removed the debug flag earier... and it currently fails during attempting to build llvm-9999 when applying the clang-0001-Install-clang-runtime-into-usr-lib-without-suffix.patch

So I am attempting with a release version of llvm.
Comment 10 Chase Rayfield 2015-08-13 02:52:05 UTC
For some reason LLVM 3.6.2 crashes during the emerge... so I just did: 
ebuild llvm-3.6.2.ebuild merge

then I emerged clang 3.6.2-r100 

and put this in  /etc/portage/env/clang 
CC="clang -target sparc-unknown-linux-gnu" 
CXX="clang++ -target sparc-unknown-linux-gnu" 
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"

then setup an htop to build with clang in packages.env

and it just works mostly I had to override the CFLAGS because it barfs on -cpu=niagra and also I believe it needs to have the target passed to it. Other than spewing a bunch of warnings about ignoring soft float it builds htop just fine.

When attemting to rebuild llvm with clang I get:

checking whether Clang will select a modern C++ standard library... no
configure: error:
We detected a missing feature in the standard C++ library that was known to be
missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous
C++11 problems with 4.6's library, and we don't support GCCs or libstdc++ older
than 4.7. You will need to update your system and ensure Clang uses the newer
standard library.


Does that mean I need to emerge @system or @world with a newer compiler Than gcc 4.6? I did build clang itself with gcc 5.2. 

ldd `which clang`
	libLLVM-3.6.so => /usr/bin/../lib/libLLVM-3.6.so (0xf5c78000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xf5c34000)
	libstdc++.so.6 => /usr/lib/gcc/sparc-unknown-linux-gnu/5.2.0/libstdc++.so.6 (0xf5aa8000)
	libgcc_s.so.1 => /usr/lib/gcc/sparc-unknown-linux-gnu/5.2.0/libgcc_s.so.1 (0xf5a84000)
	libc.so.6 => /lib/libc.so.6 (0xf5904000)
	libz.so.1 => /lib/libz.so.1 (0xf58dc000)
	libffi.so.6 => /usr/bin/../lib/libffi.so.6 (0xf58c0000)
	libncurses.so.5 => /lib/libncurses.so.5 (0xf5864000)
	libdl.so.2 => /lib/libdl.so.2 (0xf5850000)
	libm.so.6 => /lib/libm.so.6 (0xf576c000)
	/lib/ld-linux.so.2 (0xf7a94000)
Comment 11 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-12-30 10:25:43 UTC
This one's really old.  Please retry with 7.0.1, and open a new bug if it still doesn't work.  However, please note that I don't have any sparc hardware, so you'll probably need to figure it out yourself and provide a patch.