Re: Heads up: F21 LLVM rebase

2014-12-15 Thread Adam Jackson
On Sat, 2014-12-13 at 01:51 +0100, Kevin Kofler wrote:

 There can be only one version of LLVM in the whole distribution at a time.

To be entirely fair this is a failing of upstream LLVM for not using
symbol versioning on Linux.  On OSX, where clearly most of LLVM's
development happens, this isn't an issue because Mach-O's two level
namespacing means every imported symbol knows which library it came
from.  If libLLVM used ELF symbol versions we'd get the same effect, and
then you could have llvm 3.5 and 3.6 in the same address space and
things would Just Work.

I'd submitted a patch for this but it didn't get merged in 3.5, at least
partly because gold doesn't support all the same command line options as
binutils' ld.  I'd make a snarky comment here about how the freedom to
choose to use a different linker is clearly a great thing that improves
users' lives, and about how mere packaging policy by definition cannot
fix implementation bugs, but at this point I feel like I'm screaming at
a wall.

I'll try again for 3.6.

- ajax

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-15 Thread Adam Jackson
On Thu, 2014-12-11 at 12:16 -0500, Adam Jackson wrote:
 I've started staging an LLVM 3.5 rebase in F21.  I hope to have
 everything built by this Friday and the update available in testing by
 Monday.  Test feedback would be particularly appreciated on secondary
 arches and radeonsi 3D hardware.

Well, submitted for testing today anyway:

https://admin.fedoraproject.org/updates/gambas3-3.6.1-2.fc21,julia-0.3.3-2.fc21,llvm-3.5.0-4.fc21,mesa-10.4.0-1.20141214.fc21,pocl-0.10-2.fc21,pure-0.62-2.fc21

Presumably that'll bubble out to mirrors tomorrow.

- ajax

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-13 Thread Michael DePaulo
On Fri, Dec 12, 2014 at 7:51 PM, Kevin Kofler kevin.kof...@chello.at wrote:
 Michael DePaulo wrote:
 I too come from an Ubuntu/Debian background. Like other major pieces
 of software, Ubuntu and Debian both make multiple 2.x or 3.x versions
 of LLVM available for each release of  their OS. They do the
 following:
 1. The major version is specified in the package name. For example,
 llvm-3.4 and llvm-3.5 are the names of separate packages. The
 actual package versions are like 3.4.2-13  3.5-6 respectively

 2. The package llvm is a small package that depends on the
 recommended major version for developers. For example, in Jessie, 3.5
 is the recommended major version, and Jessie llvm contains symlinks
 such as:
 /usr/bin/llvm-extract - /usr/bin/llvm-extract-3.5

 Would Fedora permit someone like myself to contribute an LLVM
 packaging scheme like that?

 That would NOT be a good idea, for a simple reason: The version of LLVM Mesa
 (i.e., libGL) links ends up linked into MANY executables. If you link some
 other library against some other version of LLVM, and then an application
 ends up directly or indirectly linking both that library and libGL, it ends
 up indirectly linking the 2 incompatible versions of LLVM and crashing. We
 have already had this happen, and other distributions too, see e.g.:
 http://www.valdyas.org/fading/index.cgi/2011/10/08#llvm
 and still, months later (when it was already long fixed in Fedora by using a
 common shared LLVM, but apparently not on some other distributions):
 http://mail.kde.org/pipermail/kimageshop/2012-September/011387.html

 (Now, to be fair, it turns out that OpenGTL has since been removed from
 Fedora because Krita no longer uses it, but the exact same problem can
 happen with any of the other consumers of LLVM.)

 There can be only one version of LLVM in the whole distribution at a time.

 This topic has already come up several times on this mailing list (basically
 each time such a rebase was done), please read the archives, e.g., this
 thread:
 https://lists.fedoraproject.org/pipermail/devel/2014-March/197227.html
 and my reply to a proposal essentially identical to yours:
 https://lists.fedoraproject.org/pipermail/devel/2014-March/197278.html

 Kevin Kofler

Understood, sorry for not searching the archives.

-Mike
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-12 Thread Marcin Juszkiewicz
W dniu 11.12.2014 o 18:16, Adam Jackson pisze:
 I've started staging an LLVM 3.5 rebase in F21.  I hope to have 
 everything built by this Friday and the update available in testing 
 by Monday.  Test feedback would be particularly appreciated on 
 secondary arches and radeonsi 3D hardware.

Can someone explain to me (like to total idiot would be best) why after
release of stable version developers start to update components? IMHO
time for it was during F21 development and now work should concentrate
on F22 with just stable fixes for released versions.

But maybe it is just yet another difference between Debian (which world
I was living in for 14 years) and Fedora (year of using) world.
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-12 Thread Michael DePaulo
On Fri, Dec 12, 2014 at 7:01 AM, Marcin Juszkiewicz
mjuszkiew...@redhat.com wrote:
 W dniu 11.12.2014 o 18:16, Adam Jackson pisze:
 I've started staging an LLVM 3.5 rebase in F21.  I hope to have
 everything built by this Friday and the update available in testing
 by Monday.  Test feedback would be particularly appreciated on
 secondary arches and radeonsi 3D hardware.

 Can someone explain to me (like to total idiot would be best) why after
 release of stable version developers start to update components? IMHO
 time for it was during F21 development and now work should concentrate
 on F22 with just stable fixes for released versions.

 But maybe it is just yet another difference between Debian (which world
 I was living in for 14 years) and Fedora (year of using) world.
[...]

Unlike gcc, Isn't LLVM part of ring 2 in Fedora.next?
http://fedoramagazine.org/fedora-present-and-future-a-fedora-next-2014-update-part-ii-whats-happening/

If you want a reason for why higher rings are upgraded after release,
I think the answer is:
http://fedoraproject.org/wiki/Staying_close_to_upstream_projects

I wasn't able to find a definitive answer via DDG or Google, but I
think that no more LLVM 3.4.x maintenance releases will be released.

-Mike
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-12 Thread drago01
On Fri, Dec 12, 2014 at 1:01 PM, Marcin Juszkiewicz
mjuszkiew...@redhat.com wrote:
 W dniu 11.12.2014 o 18:16, Adam Jackson pisze:
 I've started staging an LLVM 3.5 rebase in F21.  I hope to have
 everything built by this Friday and the update available in testing
 by Monday.  Test feedback would be particularly appreciated on
 secondary arches and radeonsi 3D hardware.

 Can someone explain to me (like to total idiot would be best) why after
 release of stable version developers start to update components? IMHO
 time for it was during F21 development and now work should concentrate
 on F22 with just stable fixes for released versions.

 But maybe it is just yet another difference between Debian (which world
 I was living in for 14 years) and Fedora (year of using) world.

Rebasing mesa (with a new llvm) does enable features of hardware that
currently cannot be used or enable use of hardware that does not work
currently. Simply telling the users go buy different hardware or wait
six months is not the way to go. (We have done this in the past
multiple times; its not the first time).
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-12 Thread Adam Jackson
On Fri, 2014-12-12 at 13:01 +0100, Marcin Juszkiewicz wrote:
 W dniu 11.12.2014 o 18:16, Adam Jackson pisze:
  I've started staging an LLVM 3.5 rebase in F21.  I hope to have 
  everything built by this Friday and the update available in testing 
  by Monday.  Test feedback would be particularly appreciated on 
  secondary arches and radeonsi 3D hardware.
 
 Can someone explain to me (like to total idiot would be best) why after
 release of stable version developers start to update components? IMHO
 time for it was during F21 development and now work should concentrate
 on F22 with just stable fixes for released versions.

We need to update Mesa in stable releases for hardware enablement,
otherwise people buy new hardware and can't use 3D and then Fedora
sucks.  Mesa and LLVM are sufficiently closely entwined these days that
eventually I can't build fully-featured Mesa without updating LLVM.
This isn't the first time the llvm soname has changed within a release,
in fact it's happened at least once per release since F18 afaict.

Yes, it's disruptive, it's a gigantic pain in the ass, I don't enjoy
doing it at all.  llvm upstream seem to have no concept of consumable
interface design, so at this point around half of the llvm-using
components in Fedora have to be built from the same srpm as llvm itself;
most of them are only build-tested with clang, so I also get the joy of
trying to port them to gcc.  All this without having much working
knowledge of C++, on account of how I want to be able to look myself in
the mirror in the morning without crying.  I'm not a toolchain hacker.
I want not to work on this crap.

But either someone does it, or Mesa goes stale, so it's gotta get done.

On the flip side, by synchronizing llvm (and Mesa and friends) across
releases, graphics devel has more time to spend on _everyone_'s issues,
because we don't have to waste time tracking which bug was fixed in
which branch.

In this particular case I had _wanted_ to get 3.5 into F21 gold in the
first place [1], since it's sort of mandatory to make ppc64le actually
work.  The timing didn't quite work out, so it happens in updates
instead.  Sorry about that, life doesn't always admit pretty solutions.

[1] - https://lists.fedoraproject.org/pipermail/devel/2014-October/203463.html

- ajax

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-12 Thread Michael DePaulo
On Fri, Dec 12, 2014 at 10:30 AM, Adam Jackson a...@redhat.com wrote:
 On Fri, 2014-12-12 at 13:01 +0100, Marcin Juszkiewicz wrote:
 W dniu 11.12.2014 o 18:16, Adam Jackson pisze:
  I've started staging an LLVM 3.5 rebase in F21.  I hope to have
  everything built by this Friday and the update available in testing
  by Monday.  Test feedback would be particularly appreciated on
  secondary arches and radeonsi 3D hardware.

 Can someone explain to me (like to total idiot would be best) why after
 release of stable version developers start to update components? IMHO
 time for it was during F21 development and now work should concentrate
 on F22 with just stable fixes for released versions.

 We need to update Mesa in stable releases for hardware enablement,
 otherwise people buy new hardware and can't use 3D and then Fedora
 sucks.  Mesa and LLVM are sufficiently closely entwined these days that
 eventually I can't build fully-featured Mesa without updating LLVM.
 This isn't the first time the llvm soname has changed within a release,
 in fact it's happened at least once per release since F18 afaict.

 Yes, it's disruptive, it's a gigantic pain in the ass, I don't enjoy
 doing it at all.  llvm upstream seem to have no concept of consumable
 interface design, so at this point around half of the llvm-using
 components in Fedora have to be built from the same srpm as llvm itself;
 most of them are only build-tested with clang, so I also get the joy of
 trying to port them to gcc.  All this without having much working
 knowledge of C++, on account of how I want to be able to look myself in
 the mirror in the morning without crying.  I'm not a toolchain hacker.
 I want not to work on this crap.

 But either someone does it, or Mesa goes stale, so it's gotta get done.

 On the flip side, by synchronizing llvm (and Mesa and friends) across
 releases, graphics devel has more time to spend on _everyone_'s issues,
 because we don't have to waste time tracking which bug was fixed in
 which branch.

 In this particular case I had _wanted_ to get 3.5 into F21 gold in the
 first place [1], since it's sort of mandatory to make ppc64le actually
 work.  The timing didn't quite work out, so it happens in updates
 instead.  Sorry about that, life doesn't always admit pretty solutions.

 [1] - https://lists.fedoraproject.org/pipermail/devel/2014-October/203463.html

 - ajax
[...]

1st, thank you for the contributions you make.

I too come from an Ubuntu/Debian background. Like other major pieces
of software, Ubuntu and Debian both make multiple 2.x or 3.x versions
of LLVM available for each release of  their OS. They do the
following:
1. The major version is specified in the package name. For example,
llvm-3.4 and llvm-3.5 are the names of separate packages. The
actual package versions are like 3.4.2-13  3.5-6 respectively

2. The package llvm is a small package that depends on the
recommended major version for developers. For example, in Jessie, 3.5
is the recommended major version, and Jessie llvm contains symlinks
such as:
/usr/bin/llvm-extract - /usr/bin/llvm-extract-3.5

Would Fedora permit someone like myself to contribute an LLVM
packaging scheme like that?

-Mike
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Heads up: F21 LLVM rebase

2014-12-12 Thread Kevin Kofler
Michael DePaulo wrote:
 I too come from an Ubuntu/Debian background. Like other major pieces
 of software, Ubuntu and Debian both make multiple 2.x or 3.x versions
 of LLVM available for each release of  their OS. They do the
 following:
 1. The major version is specified in the package name. For example,
 llvm-3.4 and llvm-3.5 are the names of separate packages. The
 actual package versions are like 3.4.2-13  3.5-6 respectively
 
 2. The package llvm is a small package that depends on the
 recommended major version for developers. For example, in Jessie, 3.5
 is the recommended major version, and Jessie llvm contains symlinks
 such as:
 /usr/bin/llvm-extract - /usr/bin/llvm-extract-3.5
 
 Would Fedora permit someone like myself to contribute an LLVM
 packaging scheme like that?

That would NOT be a good idea, for a simple reason: The version of LLVM Mesa 
(i.e., libGL) links ends up linked into MANY executables. If you link some 
other library against some other version of LLVM, and then an application 
ends up directly or indirectly linking both that library and libGL, it ends 
up indirectly linking the 2 incompatible versions of LLVM and crashing. We 
have already had this happen, and other distributions too, see e.g.:
http://www.valdyas.org/fading/index.cgi/2011/10/08#llvm
and still, months later (when it was already long fixed in Fedora by using a 
common shared LLVM, but apparently not on some other distributions):
http://mail.kde.org/pipermail/kimageshop/2012-September/011387.html

(Now, to be fair, it turns out that OpenGTL has since been removed from 
Fedora because Krita no longer uses it, but the exact same problem can 
happen with any of the other consumers of LLVM.)

There can be only one version of LLVM in the whole distribution at a time.

This topic has already come up several times on this mailing list (basically 
each time such a rebase was done), please read the archives, e.g., this 
thread:
https://lists.fedoraproject.org/pipermail/devel/2014-March/197227.html
and my reply to a proposal essentially identical to yours:
https://lists.fedoraproject.org/pipermail/devel/2014-March/197278.html

Kevin Kofler

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Heads up: F21 LLVM rebase

2014-12-11 Thread Adam Jackson
I've started staging an LLVM 3.5 rebase in F21.  I hope to have
everything built by this Friday and the update available in testing by
Monday.  Test feedback would be particularly appreciated on secondary
arches and radeonsi 3D hardware.

- ajax

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct