Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[gentoo-user] gcc with graphite flag?

498 views
Skip to first unread message

Walter Dnes

unread,
Apr 28, 2017, 3:10:03 AM4/28/17
to
In the past, there used to be dire warnings about the difficulty of
installing gcc with graphite. Have things become easier with 5.4.0?
Here's a "dry run" output...

============================================================================
[i660][waltdnes][~] USE="graphite" emerge -pv gcc

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

Calculating dependencies... done!
[ebuild N ] dev-libs/isl-0.15:0/15::gentoo USE="-static-libs" 1,375 KiB
[ebuild R ] sys-devel/gcc-5.4.0-r3:5.4.0::gentoo USE="cxx fortran graphite* nptl sanitize vtv (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -gcj -go (-hardened) (-jit) (-libssp) -mpx (-multilib) -nls -nopie -nossp -objc -objc++ -objc-gc -openmp -regression-test -vanilla" 0 KiB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 1,375 KiB
============================================================================

--
Walter Dnes <walt...@waltdnes.org>
I don't run "desktop environments"; I run useful applications

Nikos Chantziaras

unread,
Apr 28, 2017, 7:10:02 AM4/28/17
to
On 04/28/2017 10:08 AM, Walter Dnes wrote:
> In the past, there used to be dire warnings about the difficulty of
> installing gcc with graphite. Have things become easier with 5.4.0?

I don't remember any issues with it, even with 4.9.

Corbin Bird

unread,
Apr 28, 2017, 10:10:02 AM4/28/17
to
On 04/28/2017 02:08 AM, Walter Dnes wrote:
> In the past, there used to be dire warnings about the difficulty of
> installing gcc with graphite. Have things become easier with 5.4.0?
> Here's a "dry run" output...
>
> ============================================================================
> [i660][waltdnes][~] USE="graphite" emerge -pv gcc
>
> These are the packages that would be merged, in order:
>
> Calculating dependencies... done!
> [ebuild N ] dev-libs/isl-0.15:0/15::gentoo USE="-static-libs" 1,375 KiB
> [ebuild R ] sys-devel/gcc-5.4.0-r3:5.4.0::gentoo USE="cxx fortran graphite* nptl sanitize vtv (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -gcj -go (-hardened) (-jit) (-libssp) -mpx (-multilib) -nls -nopie -nossp -objc -objc++ -objc-gc -openmp -regression-test -vanilla" 0 KiB
>
> Total: 2 packages (1 new, 1 reinstall), Size of downloads: 1,375 KiB
> ============================================================================
>


On my Gentoo box ...

[ebuild R ] sys-devel/gcc-5.4.0-r3:5.4.0::gentoo USE="cxx fortran
gcj graphite (multilib) nls nptl objc objc++ objc-gc openmp sanitize vtv
(-altivec) (-awt) -cilk -debug -doc (-fixed-point) -go (-hardened)
(-jit) (-libssp) -mpx -nopie -nossp -regression-test -vanilla" 0 KiB


"cloog" has been removed, going from GCC 4.9.4 -> GCC 5.4.0

No problems with "graphite" in either version of GCC, on my Gentoo box.

Corbin

Walter Dnes

unread,
Apr 29, 2017, 10:30:03 PM4/29/17
to
On Fri, Apr 28, 2017 at 09:04:19AM -0500, Corbin Bird wrote

> On my Gentoo box ...
>
> [ebuild R ] sys-devel/gcc-5.4.0-r3:5.4.0::gentoo USE="cxx fortran
> gcj graphite (multilib) nls nptl objc objc++ objc-gc openmp sanitize vtv
> (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -go (-hardened)
> (-jit) (-libssp) -mpx -nopie -nossp -regression-test -vanilla" 0 KiB
>
>
> "cloog" has been removed, going from GCC 4.9.4 -> GCC 5.4.0

So much for that wiki entry. BTW, I ended up putting...

sys-devel/gcc graphite

...in package.use. The "graphite" USE flag means something entirely
different for harfbuzz, i.e. build against media-libs/harfbuzz against
media-gfx/graphite2

Nikos Chantziaras

unread,
Apr 30, 2017, 8:20:03 AM4/30/17
to
On 04/30/2017 05:25 AM, Walter Dnes wrote:
> So much for that wiki entry. BTW, I ended up putting...
>
> sys-devel/gcc graphite
>
> ...in package.use. The "graphite" USE flag means something entirely
> different for harfbuzz, i.e. build against media-libs/harfbuzz against
> media-gfx/graphite2

Btw, I don't think that USE flag is useful for anything, unless you put
the graphite optimization flags in your CFLAGS (-floop-interchange
-floop-strip-mine -floop-block). If you don't use those, there shouldn't
be a reason to enable the graphite flag.

J. Roeleveld

unread,
Apr 30, 2017, 10:10:03 AM4/30/17
to
Is there any benefit from using graphite and these CFLAGS on a current Gentoo
system?

Using a simple google-search, I can't find anything recent.

--
Joost

Rasmus

unread,
Apr 30, 2017, 10:30:03 AM4/30/17
to
Hi,

Graphite *can* improve the performance of some packages, but might worsen the performance of others. You might want to read through this thread:
Personally, I enable it on a per package basis, python's performance gets a bit better with it.

Regards,
Rasmus


Sent with ProtonMail Secure Email.

Nikos Chantziaras

unread,
Apr 30, 2017, 3:10:03 PM4/30/17
to
What Rasmus said, but the differences aren't going to be noticeable in
general use. For heavy number crunching (like video encoding) or huge
batch jobs or high-traffic servers maybe, but for normal desktop PC use
there's not going to be a difference.

Walter Dnes

unread,
Apr 30, 2017, 3:40:03 PM4/30/17
to
On Sun, Apr 30, 2017 at 10:09:16PM +0300, Nikos Chantziaras wrote
For Pale Moon, the developers want...

-floop-parallelize-all -fpredictive-commoning -ftree-loop-distribution -ftree-vectorize

I follow those specs when doing a contributed build.

Nikos Chantziaras

unread,
Apr 30, 2017, 4:40:03 PM4/30/17
to
Are these using graphite though?

Walter Dnes

unread,
Apr 30, 2017, 5:00:02 PM4/30/17
to
On Sun, Apr 30, 2017 at 11:34:44PM +0300, Nikos Chantziaras wrote
Yes. Non-graphite GCC errors out if I include them in
CFLAGS/CXXFLAGS. Try for yourself. Include those flags, if you don't
have graphite, and try to build something. See also
https://gcc.gnu.org/wiki/Graphite/Parallelization

> First step of autopar in Graphite has been done. You can trigger it
> by 2 flags -floop-parallelize-all -ftree-parallelize-loops=4. Both
> of them is needed, the first flag will trigger Graphite pass to mark
> loops that can be parallel and the second flag will trigger the code
> generation part.
0 new messages