Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Compiling gcc
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
RIA77
Guru
Guru


Joined: 24 Feb 2016
Posts: 342

PostPosted: Tue Apr 13, 2021 11:06 am    Post subject: Reply with quote

I had no any problems with rust-bin.

And I can use appimage of Chromium :)
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54208
Location: 56N 3W

PostPosted: Tue Apr 13, 2021 11:12 am    Post subject: Reply with quote

RIA77,

Most of the big packages have binaries available for the popular arches.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
RIA77
Guru
Guru


Joined: 24 Feb 2016
Posts: 342

PostPosted: Tue Apr 13, 2021 12:31 pm    Post subject: Reply with quote

No bin for gcc :lol:
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54208
Location: 56N 3W

PostPosted: Tue Apr 13, 2021 2:35 pm    Post subject: Reply with quote

RIA77,

Correct. You can't even use distcc to help with gcc.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9675
Location: almost Mile High in the USA

PostPosted: Tue Apr 13, 2021 11:14 pm    Post subject: Reply with quote

gfortran and stage 1 gcc technically could be built with distcc... which throws a wrench in the mix as to how to best select MAKEOPTS ...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
freke
l33t
l33t


Joined: 23 Jan 2003
Posts: 974
Location: Somewhere in Denmark

PostPosted: Wed Apr 14, 2021 2:10 pm    Post subject: Reply with quote

Code:
binhost ~ # emerge -va1 sys-devel/gcc

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

Calculating dependencies... done!
[ebuild   R   ~] sys-devel/gcc-10.3.0:10::gentoo  USE="(cxx) graphite hardened lto nls nptl openmp pgo (pie) sanitize (ssp) (-ada) -d -debug -doc (-fixed-point) -fortran -go -jit (-libssp) (-multilib) -objc -objc++ -objc-gc (-pch) -systemtap -test -vanilla -vtv -zstd" 0 KiB
Code:
binhost ~ # genlop -i sys-devel/gcc-10.3.0
 * sys-devel/gcc


   Total builds: 2
   Global build time: 1 day, 17 hours, 52 minutes and 58 seconds.
   Average merge time: 20 hours, 56 minutes and 29 seconds.

   Info about currently installed ebuild:

   * sys-devel/gcc-10.3.0
   Install date: Sun Apr 11 13:05:11 2021
   USE=""
   CFLAGS="-pipe -march=btver2 -mtune=btver2 -O2"   CXXFLAGS="-pipe -march=btver2 -mtune=btver2 -O2"   LDFLAGS="-Wl,-O1 -Wl,--as-needed -pipe -march=btver2 -mtune=btver2"
Good thing I have 6 identical of these (PCEngines APU2D4) so I can just distribute the binpkg to the other 5.....
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9675
Location: almost Mile High in the USA

PostPosted: Wed Apr 14, 2021 4:42 pm    Post subject: Reply with quote

Odd, i'd think the apu2d4 shouldn't be that much slower than my atom, probably swap storming? Running 64-bit?

My single core atom 1.6GHz 2GB (32 bit) is clearing sys-devel/gcc (with gfortran but without objective c) in just under 13 hours, even with tmpfs over the 100Mbit network...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
freke
l33t
l33t


Joined: 23 Jan 2003
Posts: 974
Location: Somewhere in Denmark

PostPosted: Wed Apr 14, 2021 7:09 pm    Post subject: Reply with quote

eccerr0r wrote:
Odd, i'd think the apu2d4 shouldn't be that much slower than my atom, probably swap storming? Running 64-bit?

My single core atom 1.6GHz 2GB (32 bit) is clearing sys-devel/gcc (with gfortran but without objective c) in just under 13 hours, even with tmpfs over the 100Mbit network...


64bit yes - haven't tried tmpfs over network (interesting, how?)

I believe times went up around when I started playing with lto or maybe enabling pgo or both (sometime during 9.1)?

Code:
2017-06-17T20:24:29 >>> sys-devel/gcc-7.1.0-r1: 4 hours, 9 minutes, 39 seconds
2017-06-18T01:39:13 >>> sys-devel/gcc-7.1.0-r1: 4 hours, 12 minutes, 28 seconds
2017-09-14T08:06:43 >>> sys-devel/gcc-7.1.0-r1: 4 hours, 3 minutes, 30 seconds
2017-09-14T16:03:53 >>> sys-devel/gcc-7.2.0: 4 hours, 1 minute, 44 seconds
2017-09-14T23:00:23 >>> sys-devel/gcc-7.2.0: 4 hours, 2 minutes, 43 seconds
2018-03-22T16:45:31 >>> sys-devel/gcc-7.3.0-r1: 4 hours, 11 minutes, 51 seconds
2018-03-24T00:09:41 >>> sys-devel/gcc-7.3.0-r1: 3 hours, 41 minutes, 10 seconds
2018-03-24T09:49:29 >>> sys-devel/gcc-7.3.0-r1: 4 hours, 10 minutes, 50 seconds
2018-04-04T21:03:47 >>> sys-devel/gcc-7.3.0-r1: 4 hours, 15 minutes, 5 seconds
2018-04-17T23:27:45 >>> sys-devel/gcc-7.3.0-r2: 4 hours, 15 minutes, 1 second
2018-05-03T18:38:45 >>> sys-devel/gcc-7.3.0-r2: 4 hours, 18 minutes, 48 seconds
2018-05-04T06:50:52 >>> sys-devel/gcc-8.1.0: 5 hours, 40 minutes, 58 seconds
2018-05-04T16:05:26 >>> sys-devel/gcc-8.1.0-r1: 4 hours, 52 minutes, 5 seconds
2018-05-07T18:48:08 >>> sys-devel/gcc-8.1.0-r2: 4 hours, 43 minutes, 8 seconds
2018-05-17T16:59:02 >>> sys-devel/gcc-8.1.0-r3: 4 hours, 42 minutes, 21 seconds
2018-07-01T20:51:22 >>> sys-devel/gcc-8.1.0-r3: 4 hours, 45 minutes, 46 seconds
2018-08-03T21:43:43 >>> sys-devel/gcc-8.2.0: 4 hours, 47 minutes, 12 seconds
2018-08-04T12:04:20 >>> sys-devel/gcc-8.2.0: 4 hours, 47 minutes, 59 seconds
2018-08-16T18:34:08 >>> sys-devel/gcc-8.2.0-r2: 4 hours, 47 minutes, 26 seconds
2018-10-10T17:36:57 >>> sys-devel/gcc-8.2.0-r3: 4 hours, 46 minutes, 6 seconds
2018-10-31T14:34:31 >>> sys-devel/gcc-8.2.0-r3: 4 hours, 35 minutes, 19 seconds
2018-11-06T18:03:47 >>> sys-devel/gcc-8.2.0-r4: 4 hours, 45 minutes, 40 seconds
2018-11-07T09:31:04 >>> sys-devel/gcc-8.2.0-r4: 4 hours, 45 minutes, 39 seconds
2018-12-20T23:26:37 >>> sys-devel/gcc-8.2.0-r5: 4 hours, 52 minutes, 22 seconds
2019-01-05T15:08:46 >>> sys-devel/gcc-8.2.0-r6: 4 hours, 45 minutes, 50 seconds
2019-02-25T15:39:08 >>> sys-devel/gcc-8.3.0: 4 hours, 45 minutes, 33 seconds
2019-03-16T22:07:28 >>> sys-devel/gcc-8.3.0: 4 hours, 50 minutes, 22 seconds
2019-05-07T18:23:05 >>> sys-devel/gcc-8.3.0-r1: 5 hours, 5 minutes, 24 seconds
2019-05-10T23:50:18 >>> sys-devel/gcc-9.1.0: 6 hours, 4 minutes, 57 seconds
2019-05-11T13:12:07 >>> sys-devel/gcc-9.1.0: 5 hours, 59 minutes, 7 seconds
2019-05-15T16:59:19 >>> sys-devel/gcc-9.1.0: 8 hours, 30 minutes, 21 seconds
2019-06-17T18:06:35 >>> sys-devel/gcc-9.1.0-r1: 8 hours, 28 minutes, 55 seconds
2019-06-21T00:53:20 >>> sys-devel/gcc-9.1.0-r1: 16 hours, 33 minutes, 50 seconds
2019-07-07T17:48:23 >>> sys-devel/gcc-9.1.0-r1: 16 hours, 17 minutes, 20 seconds
2019-09-06T23:20:20 >>> sys-devel/gcc-9.2.0: 16 hours, 31 minutes, 27 seconds
2020-02-14T18:56:47 >>> sys-devel/gcc-9.2.0-r3: 16 hours, 51 minutes, 42 seconds
2020-02-17T00:17:08 >>> sys-devel/gcc-9.2.0-r4: 17 hours, 29 minutes, 35 seconds
2020-03-20T14:44:58 >>> sys-devel/gcc-9.3.0: 17 hours, 9 minutes, 30 seconds
2020-03-21T14:20:45 >>> sys-devel/gcc-9.3.0: 17 hours, 7 minutes, 40 seconds
2020-05-10T08:55:21 >>> sys-devel/gcc-10.1.0: 19 hours, 47 minutes, 34 seconds
2020-05-17T21:36:48 >>> sys-devel/gcc-10.1.0: 20 hours, 1 minute, 9 seconds
2020-06-13T01:39:24 >>> sys-devel/gcc-10.1.0-r1: 20 hours, 21 minutes, 45 seconds
2020-07-05T17:24:19 >>> sys-devel/gcc-10.1.0-r2: 20 hours, 29 minutes, 6 seconds
2020-08-04T20:06:09 >>> sys-devel/gcc-10.2.0: 20 hours, 33 minutes, 43 seconds
2020-08-05T17:24:50 >>> sys-devel/gcc-10.2.0: 19 hours, 44 minutes, 51 seconds
2020-08-30T21:00:50 >>> sys-devel/gcc-10.2.0-r1: 20 hours, 32 minutes, 32 seconds
2020-10-04T20:21:29 >>> sys-devel/gcc-10.2.0-r2: 20 hours, 32 minutes, 52 seconds
2020-11-05T22:44:57 >>> sys-devel/gcc-10.2.0-r3: 20 hours, 50 minutes, 38 seconds
2020-12-19T09:33:21 >>> sys-devel/gcc-10.2.0-r4: 20 hours, 54 minutes, 31 seconds
2020-12-21T19:56:48 >>> sys-devel/gcc-10.2.0-r4: 20 hours, 54 minutes, 7 seconds
2020-12-31T09:49:48 >>> sys-devel/gcc-10.2.0-r5: 20 hours, 53 minutes, 35 seconds
2021-02-23T16:12:05 >>> sys-devel/gcc-10.2.0-r5: 20 hours, 42 minutes, 16 seconds
2021-04-09T15:28:36 >>> sys-devel/gcc-10.3.0: 20 hours, 49 minutes, 42 seconds
2021-04-10T16:01:55 >>> sys-devel/gcc-10.3.0: 21 hours, 3 minutes, 16 seconds

Code:
binhost /var/tmp/notmpfs/portage # emerge --info
Portage 3.0.17 (python 3.8.8-final-0, default/linux/amd64/17.1/no-multilib/hardened, gcc-10.3.0, glibc-2.32-r7, 5.10.29 x86_64)
=================================================================
System uname: Linux-5.10.29-x86_64-AMD_GX-412TC_SOC-with-glibc2.2.5
KiB Mem:     4018164 total,   3771256 free
KiB Swap:    6274644 total,   6274644 free
Timestamp of repository gentoo: Tue, 13 Apr 2021 22:00:01 +0000
Head commit of repository gentoo: 9b20115ac13e04b9dc039ea7ad3abd8fd9b23faa
sh bash 5.0_p18
ld GNU ld (Gentoo 2.35.2 p1) 2.35.2
distcc 3.3.3 x86_64-pc-linux-gnu [enabled]
app-shells/bash:          5.0_p18::gentoo
dev-lang/perl:            5.30.3::gentoo
dev-lang/python:          3.8.8_p1::gentoo, 3.9.2_p1::gentoo
dev-util/cmake:           3.18.5::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1-r1::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.69-r5::gentoo
sys-devel/automake:       1.16.2-r1::gentoo
sys-devel/binutils:       2.35.2::gentoo
sys-devel/gcc:            10.3.0::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.32-r7::gentoo
Repositories:

local
    location: /opt/local/portage
    masters: gentoo
    priority: -1

gentoo
    location: /opt/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: 1
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts:

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-fgraphite-identity -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -flto=4 -fuse-linker-plugin -fno-fat-lto-objects -O2 -pipe -fomit-frame-pointer -march=btver2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mbmi -mavx -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mprfchw -mfxsr -mxsave -mxsaveopt --param=l1-cache-size=32 --param=l1-cache-line-size=64 --param=l2-cache-size=2048 -mtune=btver2 -ftree-vectorize"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/spool/munin-async/.ssh"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-fgraphite-identity -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -flto=4 -fuse-linker-plugin -fno-fat-lto-objects -O2 -pipe -fomit-frame-pointer -march=btver2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mbmi -mavx -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mprfchw -mfxsr -mxsave -mxsaveopt --param=l1-cache-size=32 --param=l1-cache-line-size=64 --param=l2-cache-size=2048 -mtune=btver2 -ftree-vectorize -flifetime-dse=1"
DISTDIR="/opt/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-fgraphite-identity -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -flto=4 -fuse-linker-plugin -fno-fat-lto-objects -O2 -pipe -fomit-frame-pointer -march=btver2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mbmi -mavx -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mprfchw -mfxsr -mxsave -mxsaveopt --param=l1-cache-size=32 --param=l1-cache-line-size=64 --param=l2-cache-size=2048 -mtune=btver2 -ftree-vectorize"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-fgraphite-identity -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -flto=4 -fuse-linker-plugin -fno-fat-lto-objects -O2 -pipe -fomit-frame-pointer -march=btver2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mbmi -mavx -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mprfchw -mfxsr -mxsave -mxsaveopt --param=l1-cache-size=32 --param=l1-cache-line-size=64 --param=l2-cache-size=2048 -mtune=btver2 -ftree-vectorize"
GENTOO_MIRRORS="http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.halifax.rwth-aachen.de/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://mirror.netcologne.de/gentoo/"
INSTALL_MASK="/etc/systemd /lib/systemd /usr/lib/systemd"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -fgraphite-identity -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -flto=4 -fuse-linker-plugin -fno-fat-lto-objects -O2 -pipe -fomit-frame-pointer -march=btver2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mbmi -mavx -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mprfchw -mfxsr -mxsave -mxsaveopt --param=l1-cache-size=32 --param=l1-cache-line-size=64 --param=l2-cache-size=2048 -mtune=btver2 -ftree-vectorize -flifetime-dse=1"
LINGUAS="da en"
MAKEOPTS="-j16 -l8"
PKGDIR="/opt/bindir"
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 --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="acl amd64 berkdb bzip2 caps crypt gd geoip2 gnutls graphite hardened iconv idn ipv6 leaps-timezone libglvnd libtirpc lto ncurses nls nptl openmp pam parse-clocks pcre pgo pie pps readline rsync-verify seccomp sockets split-usr ssl ssp syslog udev unicode usb xattr xml xtpax zlib" ABI_X86="64" ADA_TARGET="gnat_2018" 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" CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="nmea0183" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput" KERNEL="linux" L10N="da en-US" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby26" USERLAND="GNU"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9675
Location: almost Mile High in the USA

PostPosted: Wed Apr 14, 2021 7:57 pm    Post subject: Reply with quote

Hmm... I do not USE=pgo so this may also affect things...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54208
Location: 56N 3W

PostPosted: Wed Apr 14, 2021 8:19 pm    Post subject: Reply with quote

eccerr0r,

USE=pgo means build gcc, run some tests, then build it again.
That's somewhat simplistic as the stage1 can be skipped for the second build.

If you already have gcc, its possible to tell gcc not to bootstrap but that knob is not exposed as a USE flag.
Its well tested as bootstrapping is not possible when building a cross compiler.

Finding that control is left as an exercise for the reader.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
freke
l33t
l33t


Joined: 23 Jan 2003
Posts: 974
Location: Somewhere in Denmark

PostPosted: Wed Apr 14, 2021 8:19 pm    Post subject: Reply with quote

eccerr0r wrote:
Hmm... I do not USE=pgo so this may also affect things...

I believe it does - my understanding is that it's compiled and then run, to check what can be optimized, then re-compiled? (https://developer.ibm.com/articles/gcc-profile-guided-optimization-to-accelerate-aix-applications/)

So I could probably cut compile times in half - and haven't done any benchmarking what-so-ever if enabling pgo is worth it ;)
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 436

PostPosted: Thu Apr 15, 2021 12:55 am    Post subject: Reply with quote

Quote:
genlop -t sys-devel/gcc-10.2.0-r5
* sys-devel/gcc

Tue Dec 29 18:55:08 2020 >>> sys-devel/gcc-10.2.0-r5
merge time: 8 hours, 20 minutes and 12 seconds.

Wed Dec 30 06:55:43 2020 >>> sys-devel/gcc-10.2.0-r5
merge time: 8 hours, 37 minutes and 11 seconds.

Wed Dec 30 20:32:01 2020 >>> sys-devel/gcc-10.2.0-r5
merge time: 8 hours, 27 minutes and 52 seconds.

Sat Jan 2 04:55:01 2021 >>> sys-devel/gcc-10.2.0-r5
merge time: 8 hours, 26 minutes and 3 seconds.

Fri Mar 5 20:03:47 2021 >>> sys-devel/gcc-10.2.0-r5
merge time: 8 hours, 24 minutes and 52 seconds.


Pi 4 goodness, using a usb ssd.
Back to top
View user's profile Send private message
Ionen
Developer
Developer


Joined: 06 Dec 2018
Posts: 2713

PostPosted: Thu Apr 15, 2021 5:33 am    Post subject: Reply with quote

freke wrote:
haven't done any benchmarking what-so-ever if enabling pgo is worth it ;)
pgo tend to be one of the more useful optimization, i.e. we're talking bit more human-noticeable changes on complex software. And if going to be using it for a long time (gcc doesn't update that often), pretty sure you'll get back the investment.

I don't bother with USE=pgo for my cross-compilers and alternate for-testing compilers (e.g. gcc11) since I hardly use them.
Back to top
View user's profile Send private message
user
Apprentice
Apprentice


Joined: 08 Feb 2004
Posts: 200

PostPosted: Thu Apr 15, 2021 5:44 pm    Post subject: Reply with quote

Fortunately gcc ebuild is updated at low frequency.

On AMD Zen2 Renoir 8C/16T@65W (AMD Ryzen 7 PRO 4750G) with zram/tmpfs
a not full-featured gcc compile with pgo use flag (make profiledbootstrap), lto use flag (BUILD_CONFIG=bootstrap-lto) and gold linker (-Wl,-fuse-ld=gold)
Code:
[ebuild   R    ] sys-devel/gcc-10.2.0-r5:10::gentoo  USE="(cxx) fortran graphite hardened lto (multilib) nptl openmp pgo (pie) sanitize (ssp) zstd (-ada) -d -debug -doc (-fixed-point) -go -jit (-libssp) -nls -objc -objc++ -objc-gc (-pch) -systemtap -test -vanilla -vtv"

will take ~40 minutes.
Code:
# qlop -Hv d 1day gcc | cut -c25-
sys-devel/gcc-10.2.0-r5: 39 minutes, 45 seconds


Annoying at update frequency and compile time are browsers.
Code:
# qlop -Hvd 1month firefox chromium ungoogled-chromium | cut -c25-
www-client/chromium-89.0.4389.90: 3 hours, 5 minutes, 51 seconds
www-client/ungoogled-chromium-89.0.4389.90-r1: 3 hours, 35 minutes, 46 seconds
www-client/firefox-78.9.0: 47 minutes, 46 seconds
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9675
Location: almost Mile High in the USA

PostPosted: Thu Apr 15, 2021 9:45 pm    Post subject: Reply with quote

hmm... USE=pgo definitely increases build time, but my experiment did not double or even add 50% more build time ...

Unfortunately my build times have been compromised (due to distcc and some cpu juggling as I try to finalize which cpu goes into which board that goes into which task...) but I estimate around 20% increase or so perhaps based on the qlop information from the machine that last completed the build...

(Yeah, swapping a Core2 Quad and a Core2 Duo makes a huge difference in gcc build times...)
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
figueroa
Advocate
Advocate


Joined: 14 Aug 2005
Posts: 2956
Location: Edge of marsh USA

PostPosted: Fri Apr 16, 2021 2:21 am    Post subject: Reply with quote

I'm on stable amd64 desktop profile (openrc) i7-2600 w/16 GB RAM. Would it be sane for me to add "sys-devel/gcc graphite lto pgo zstd" to /etc/portage/package.use? Would this give me payback in a faster system (faster binaries) while being just as stable?

These extra USE flags would give the following flags for gcc.
Code:
$ emerge -pv sys-devel/gcc

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

Calculating dependencies... done!
[ebuild  N     ] dev-libs/isl-0.23-r1:0/23::gentoo  USE="-static-libs" ABI_X86="(64) -32 (-x32)" 1,690 KiB
[ebuild   R    ] sys-devel/gcc-10.2.0-r5:10::gentoo  USE="(cxx) fortran graphite* lto* (multilib) nls nptl openmp pch pgo* (pie) sanitize ssp zstd* (-ada) -d -debug -doc (-fixed-point) -go (-hardened) -jit (-libssp) -objc -objc++ -objc-gc -systemtap -test -vanilla -vtv" 0 KiB

_________________
Andy Figueroa
hp pavilion hpe h8-1260t/2AB5; spinning rust x3
i7-2600 @ 3.40GHz; 16 gb; Radeon HD 7570
amd64/23.0/split-usr/desktop (stable), OpenRC, -systemd -pulseaudio -uefi
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Fri Apr 16, 2021 7:31 am    Post subject: Reply with quote

figueroa wrote:
I'm on stable amd64 desktop profile (openrc) i7-2600 w/16 GB RAM. Would it be sane for me to add "sys-devel/gcc graphite lto pgo zstd" to /etc/portage/package.use?

Definitely. This is independent of ram. (I have only i3 with 8 GB RAM, and use all of them.) I stopped using graphite related cflags/cxxflags, though, since this caused a lot of runtime segfaults and did not seem to speed up much. Maybe situation has improved meanwhile, but I am no longer interested in trying.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21586

PostPosted: Fri Apr 16, 2021 3:21 pm    Post subject: Reply with quote

figueroa wrote:
Would it be sane for me to add "sys-devel/gcc graphite lto pgo zstd" to /etc/portage/package.use? Would this give me payback in a faster system (faster binaries) while being just as stable?
Enabling lto and pgo for gcc should, in theory, make gcc perform faster when compiling programs. It will not change the logic that gcc uses to turn C code into native assembly, so the resulting compiled programs should not improve as a result of those flags. I cannot speak to whether graphite or zstd will cause gcc to generate better programs.
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9675
Location: almost Mile High in the USA

PostPosted: Fri Apr 16, 2021 7:29 pm    Post subject: Reply with quote

wonder how much runtime memory (heap + stack + code) bloat tradeoffs the resultant binary will have with PGO... might be faster assuming there's enough RAM. Assuming.

Also seems that LTO seems to eat a lot of RAM... it basically killed my ram limited server while trying to build *sigh* ... was able to save it from a reboot but had to kill VMs that were running...
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sat Apr 17, 2021 5:19 am    Post subject: Reply with quote

eccerr0r wrote:
wonder how much runtime memory (heap + stack + code) bloat tradeoffs the resultant binary will have with PGO... might be faster assuming there's enough RAM. Assuming.

Presumably nothing. This is more about e.g. sorting checks in the order that the more likely check will be executed first.
Quote:
Also seems that LTO seems to eat a lot of RAM...

That lies in the nature of this option: The optimizer will inspect the whole code instead of just a snigle .o file. There are some further lto-reldated options you can use to control the amount of ram used.
Back to top
View user's profile Send private message
figueroa
Advocate
Advocate


Joined: 14 Aug 2005
Posts: 2956
Location: Edge of marsh USA

PostPosted: Sat Apr 17, 2021 8:32 pm    Post subject: Reply with quote

My usual gcc build time is about an hour. Last build of gcc-10.2.0-r5 as 61 minutes. I tried building gcc with "USE = lto pgo zstd" but pulled the plug after 2 hours 15 minutes. Much of the time load average was over 9 and generating a lot of heat. I may try again without lto, but for now, it doesn't seem worth it.
_________________
Andy Figueroa
hp pavilion hpe h8-1260t/2AB5; spinning rust x3
i7-2600 @ 3.40GHz; 16 gb; Radeon HD 7570
amd64/23.0/split-usr/desktop (stable), OpenRC, -systemd -pulseaudio -uefi
Back to top
View user's profile Send private message
eccerr0r
Watchman
Watchman


Joined: 01 Jul 2004
Posts: 9675
Location: almost Mile High in the USA

PostPosted: Sat Apr 17, 2021 9:01 pm    Post subject: Reply with quote

Well, sometimes wonder if the gcc cost of lto and pgo improves the time of compiling all the other packages? As a Gentoo user, the gcc and g++ binaries are used quite often if clang isn't being run...

I tried lto and it killed my 8G box during build. definitely don't have enough ram for the settings I had and other stuff I had running. big bad swap storm. I eventually got it to finish by slowing down submission rate and killing a VM instance :(
_________________
Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching?
Back to top
View user's profile Send private message
papu
l33t
l33t


Joined: 25 Jan 2008
Posts: 709
Location: Sota algun pi o alzina...

PostPosted: Wed Apr 28, 2021 5:31 pm    Post subject: Reply with quote

hi all , i just have updated to gcc 11 with lto+gpo , gpo takes double time compilation

are mesurable the benefits of using pgo ?
Does it make any sense to recompile again gcc 11 with gcc 11 ?

i takes 2021-04-28T16:09:10 >>> sys-devel/gcc-11.1.0: 2:45:39

https://i.imgur.com/TD8BuzF.jpg
and also a question about the use
- - graphite : Add support for the framework for loop optimizations based on a polyhedral intermediate representation

What benefit would it have to activate it and if it is a dangerous optimization, which breaks packages ... ?

thanks
_________________
"~amd64" --cpu 7700 non-x --DDR5 2x16GB 6000MHz --gpu RX 470
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21586

PostPosted: Wed Apr 28, 2021 7:12 pm    Post subject: Reply with quote

papu wrote:
Does it make any sense to recompile again gcc 11 with gcc 11 ?
No. gcc's bootstrap process should have already done this for you.
Back to top
View user's profile Send private message
freke
l33t
l33t


Joined: 23 Jan 2003
Posts: 974
Location: Somewhere in Denmark

PostPosted: Thu Apr 29, 2021 7:41 pm    Post subject: Reply with quote

papu wrote:
hi all , i just have updated to gcc 11 with lto+gpo , gpo takes double time compilation

are mesurable the benefits of using pgo ?
Does it make any sense to recompile again gcc 11 with gcc 11 ?

i takes 2021-04-28T16:09:10 >>> sys-devel/gcc-11.1.0: 2:45:39

https://i.imgur.com/TD8BuzF.jpg
and also a question about the use
- - graphite : Add support for the framework for loop optimizations based on a polyhedral intermediate representation

What benefit would it have to activate it and if it is a dangerous optimization, which breaks packages ... ?

thanks

I don't think graphite should be dangerous - I've used it since ~9.1.0 and I don't have any packages which I've turned it off for - lto I had to turn of for a few select packages.
(running console-only servers)
I've been running with these graphite/lto-flags
Code:
CFLAGS="-fgraphite-identity -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block"
CFLAGS="${CFLAGS} -flto=4 -fuse-linker-plugin -fno-fat-lto-objects"
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum