Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 568256 - sys-devel/llvm No need to use ninja
Summary: sys-devel/llvm No need to use ninja
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Michał Górny
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-14 16:53 UTC by Alex Turbov
Modified: 2016-02-10 18:17 UTC (History)
3 users (show)

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


Attachments
Patch to current llvm-3.7.0-r4.ebuild (llvm-use-make.path,282 bytes, patch)
2015-12-14 16:53 UTC, Alex Turbov
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Turbov 2015-12-14 16:53:00 UTC
There is no visible advantage to use `ninja` instead of traditional `make` to build llvm, so no need to bring another (really unusual) dependency... -- `make` is everywhere, and it works pretty fine to build llvm

Reproducible: Always
Comment 1 Alex Turbov 2015-12-14 16:53:44 UTC
Created attachment 419184 [details, diff]
Patch to current llvm-3.7.0-r4.ebuild
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2015-12-14 17:14:28 UTC
There is a visible advantage and you see it when you run the build. And it becomes especially important when you build huge packages like LLVM.

Furthermore, the generator setting respects user override. So if you really are a ninja hater, you can set CMAKE_MAKEFILE_GENERATOR and forget about it.
Comment 3 Alex Turbov 2015-12-28 14:29:16 UTC
(In reply to Michał Górny from comment #2)
> There is a visible advantage and you see it when you run the build. 

I meant it looks mostly the same (as Makefiles generated by CMake) and nothing else I cant see...

> And it
> becomes especially important when you build huge packages like LLVM.

any particular numbers? all that I can find in google, "Ninja designed w/ speed in mind", but no real benchmarks of it!!

... so I've done my own (using Core i7 4710HQ, 16G RAM, SSD):
* for a project which builds 4min 56s by make, Ninja gave me 4min 52s, which is definitely doesn't deserve to stop using GNU make and start to use Ninja...

> 
> Furthermore, the generator setting respects user override. So if you really
> are a ninja hater, you can set CMAKE_MAKEFILE_GENERATOR and forget about it.

It doesn't work as expected! Setting this variable tries to install `ninja` to me anyway!
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2015-12-28 19:38:01 UTC
(In reply to Alex Turbov from comment #3)
> (In reply to Michał Górny from comment #2)
> > There is a visible advantage and you see it when you run the build. 
> 
> I meant it looks mostly the same (as Makefiles generated by CMake) and
> nothing else I cant see...

Then please compare verbose build log for both, and tell me which is more useful. Unless you find it extremely useful to see thousands of 'echo' commands, and percentages that don't mean a thing.

> > Furthermore, the generator setting respects user override. So if you really
> > are a ninja hater, you can set CMAKE_MAKEFILE_GENERATOR and forget about it.
> 
> It doesn't work as expected! Setting this variable tries to install `ninja`
> to me anyway!

If you use unsupported hacks, you're, well... unsupported. You need to deal with deps etc. on your own. Pro-tip: package.provided.

And please do not reopen requests that were explicitly refused. It's inpolite, at the very least.
Comment 5 Alex Turbov 2015-12-28 19:58:56 UTC
(In reply to Michał Górny from comment #4)
> Then please compare verbose build log for both, and tell me which is more
> useful. Unless you find it extremely useful to see thousands of 'echo'
> commands, and percentages that don't mean a thing.

Ok, I got your point... just a matter of your taste...

> > > Furthermore, the generator setting respects user override. So if you really
> > > are a ninja hater, you can set CMAKE_MAKEFILE_GENERATOR and forget about it.
> > 
> > It doesn't work as expected! Setting this variable tries to install `ninja`
> > to me anyway!
> 
> If you use unsupported hacks, you're, well... unsupported. You need to deal
> with deps etc. on your own. Pro-tip: package.provided.

No, AFAIK, I don't... maybe you would be so kind as to give me a clue where do you suppose I can use that "hacks"?
Comment 6 Michael Palimaka (kensington) gentoo-dev 2015-12-29 11:06:53 UTC
(In reply to Alex Turbov from comment #3)
> > Furthermore, the generator setting respects user override. So if you really
> > are a ninja hater, you can set CMAKE_MAKEFILE_GENERATOR and forget about it.
> 
> It doesn't work as expected! Setting this variable tries to install `ninja`
> to me anyway!

If setting CMAKE_MAKEFILE_GENERATOR="emake" causes ninja to still get pulled in, that sounds like a bug in cmake-utils.eclass
Comment 7 Mike Gilbert gentoo-dev 2015-12-29 14:35:18 UTC
(In reply to Michael Palimaka (kensington) from comment #6)
> If setting CMAKE_MAKEFILE_GENERATOR="emake" causes ninja to still get pulled
> in, that sounds like a bug in cmake-utils.eclass

Not really a bug in the eclass.

DEPEND must be invariant according to PMS; overriding CMAKE_MAKEFILE_GENERATOR in the environment causes DEPEND to change, which violates this constraint. The package manager's behavior is undefined. It sounds like portage continues to use DEPEND from the metadata cache in this situation.

It could be argued that eclass behavior should not be affected by the environment. However, it does come in handy for development when you want to quickly override a setting for testing.
Comment 8 Alex Turbov 2016-02-10 18:17:47 UTC
I'll just leave it here FYI, https://public.kitware.com/Bug/view.php?id=15968