[opensuse-factory] getting LLVM into factory
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it. As an extra, you get clang, a C/C++ compiler which is very interesting as it can be used as a library and/or static analyzer. Actually FreeBSD builds now entirely with clang and it seems the BSD world is trying to do a switch from gcc. I have updated the packman package to 2.8 (latest) release (home:dmacvicar/llvm). There is only a bug left with apidocs/doxygen, which are right now disabled by default via a bscond. I would like to submit this package to a "right project". devel:tools:compiler looks like the best right now. Yes, I volunteer to be the maintainer. I admit I am not experienced enough yet with it, but it will improve :-). The original package maintainers are also invited to co-maintain. Once it is on a project, I would like to get it into Factory so that it shows up on 11.4. I guess the packman people could try to get my changes back into packman, except for factory where we should have a common one. Cheers Duncan PD: BTW, I tried to look for the Mono maintainers email by doing rpm -q --changelog mono-core, and the result is empty. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
El 17/11/10 16:51, Duncan Mac-Vicar P. escribió:
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it.
Yes, I volunteer to be the maintainer. I admit I am not experienced enough yet with it, but it will improve :-). The original package maintainers are also invited to co-maintain.
I can help too, the soon this compiler is ready to replace GCC, the better, GCC is slow as hell and its warning messages are a very bad taste joke compared to clang's. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/17/2010 10:57 AM, Cristian Rodríguez wrote:
El 17/11/10 16:51, Duncan Mac-Vicar P. escribió:
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it.
Yes, I volunteer to be the maintainer. I admit I am not experienced enough yet with it, but it will improve :-). The original package maintainers are also invited to co-maintain.
I can help too, the soon this compiler is ready to replace GCC, the better, GCC is slow as hell and its warning messages are a very bad taste joke compared to clang's.
Hmmm? It appears that Clang is a fast compiler, but suffers in binary performance. Personally I would like to see generated code size benchmarks as well. http://macles.blogspot.com/2010/08/intel-atom-icc-gcc-clang.html http://www.phoronix.com/scan.php?page=article&item=gcc_llvm_clang&num=1 -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi; On Wed, Nov 17, 2010 at 11:08 PM, s2_johnm <s2@forceway.com> wrote:
On 11/17/2010 10:57 AM, Cristian Rodríguez wrote:
El 17/11/10 16:51, Duncan Mac-Vicar P. escribió:
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it.
Yes, I volunteer to be the maintainer. I admit I am not experienced enough yet with it, but it will improve :-). The original package maintainers are also invited to co-maintain.
I can help too, the soon this compiler is ready to replace GCC, the better, GCC is slow as hell and its warning messages are a very bad taste joke compared to clang's.
Hmmm? It appears that Clang is a fast compiler, but suffers in binary performance. Personally I would like to see generated code size benchmarks as well.
http://macles.blogspot.com/2010/08/intel-atom-icc-gcc-clang.html
clang has no atom tuning, -march=atom does nothing :-) Author should test one a core2duo instead. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/17/2010 10:08 PM, s2_johnm wrote:
I can help too, the soon this compiler is ready to replace GCC, the better, GCC is slow as hell and its warning messages are a very bad taste joke compared to clang's.
Hmmm? It appears that Clang is a fast compiler, but suffers in binary performance. Personally I would like to see generated code size benchmarks as well.
http://macles.blogspot.com/2010/08/intel-atom-icc-gcc-clang.html http://www.phoronix.com/scan.php?page=article&item=gcc_llvm_clang&num=1
Please keep the clang vs gcc thread separate as it has nothing to do with the fact that we NEED llvm for other packages and there is people INTERESTED in clang to build whatever they want to build. Duncan -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi Duncan; On Wed, Nov 17, 2010 at 9:51 PM, Duncan Mac-Vicar P. <dmacvicar@suse.de> wrote:
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it.
As an extra, you get clang, a C/C++ compiler which is very interesting as it can be used as a library and/or static analyzer. Actually FreeBSD builds now entirely with clang and it seems the BSD world is trying to do a switch from gcc.
I have updated the packman package to 2.8 (latest) release (home:dmacvicar/llvm). There is only a bug left with apidocs/doxygen, which are right now disabled by default via a bscond.
You beat me to it. My plan was to compile whole factory with clang aka BSD. But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling Qt, mplayer, ffmpeg, x264 and anything that uses inline assembly. I am day by day tracking clang against ffmpeg SVN.
I would like to submit this package to a "right project". devel:tools:compiler looks like the best right now.
Yes, I volunteer to be the maintainer. I admit I am not experienced enough yet with it, but it will improve :-). The original package maintainers are also invited to co-maintain.
I can give it a hand when I have a build machine ready.
Once it is on a project, I would like to get it into Factory so that it shows up on 11.4.
Sounds great. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/17/2010 09:13 PM, İsmail Dönmez wrote:
You beat me to it. My plan was to compile whole factory with clang aka BSD. But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling Qt, mplayer, ffmpeg, x264 and anything that uses inline assembly. I am day by day tracking clang against ffmpeg SVN.
Interesting point. Packages BuildRequiring LLVM usually require an specific version. I would love to package 2.9svn, but rubinius, Mono, etc, work with 2.8 only. (actually 2.6, but I have a patch for rubinius and Mono should work with 2.8 too). However I am pretty sure more than one app won't work with 2.8. This bring the question whether it makes sense to version the package so that we can have more than one in parallel (ie: llvm2_8 llvm2_9), however LLVM is already a "big" package, and this would make life more complex. Another solution is to have always latest release + llvm-head (2 packages) in the devel:tools:compiler repo, but the released one on Factory. Duncan -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi; On Wed, Nov 17, 2010 at 10:41 PM, Duncan Mac-Vicar P. <dmacvicar@suse.de> wrote:
On 11/17/2010 09:13 PM, İsmail Dönmez wrote: > You beat me to it. My plan was to compile whole factory with clang aka
BSD. But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling Qt, mplayer, ffmpeg, x264 and anything that uses inline assembly. I am day by day tracking clang against ffmpeg SVN.
Interesting point.
Packages BuildRequiring LLVM usually require an specific version.
I would love to package 2.9svn, but rubinius, Mono, etc, work with 2.8 only. (actually 2.6, but I have a patch for rubinius and Mono should work with 2.8 too).
However I am pretty sure more than one app won't work with 2.8. This bring the question whether it makes sense to version the package so that we can have more than one in parallel (ie: llvm2_8 llvm2_9), however LLVM is already a "big" package, and this would make life more complex.
Another solution is to have always latest release + llvm-head (2 packages) in the devel:tools:compiler repo, but the released one on Factory.
Is there a reason we can't have llvm-head (I would rather choose the name llvm-beta though) in the Factory too? Otherwise sounds like a great idea. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/17/2010 09:43 PM, İsmail Dönmez wrote:
Is there a reason we can't have llvm-head (I would rather choose the name llvm-beta though) in the Factory too? Otherwise sounds like a great idea.
I guess not. If we find the appropriate names for all the subpackages too (clang, etc) I propose the following steps: - I get access in devel:tools:compiler (need to ask around) - I submit llvm 2.8 to devel:tools:compiler - You copy it to llvm-head Actually here, may be we can use the same spec with some additional definition, and have llvm-beta as a symlink plus this variable that changes the version built. We also need a script in the source to easily update the snapshot. Not sure how to do this, but it may be possible. - Once we smash the bugs like doxygen, etc. We submit to Factory. Duncan -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi; On Wed, Nov 17, 2010 at 10:51 PM, Duncan Mac-Vicar P. <dmacvicar@suse.de> wrote:
On 11/17/2010 09:43 PM, İsmail Dönmez wrote:
Is there a reason we can't have llvm-head (I would rather choose the name llvm-beta though) in the Factory too? Otherwise sounds like a great idea.
I guess not. If we find the appropriate names for all the subpackages too (clang, etc)
I propose the following steps:
- I get access in devel:tools:compiler (need to ask around) - I submit llvm 2.8 to devel:tools:compiler - You copy it to llvm-head
Actually here, may be we can use the same spec with some additional definition, and have llvm-beta as a symlink plus this variable that changes the version built. We also need a script in the source to easily update the snapshot. Not sure how to do this, but it may be possible.
- Once we smash the bugs like doxygen, etc. We submit to Factory.
Sounds like a great plan to me. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On Wed, 17 Nov 2010, Duncan Mac-Vicar P. wrote:
On 11/17/2010 09:13 PM, İsmail Dönmez wrote:
You beat me to it. My plan was to compile whole factory with clang aka BSD. But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling Qt, mplayer, ffmpeg, x264 and anything that uses inline assembly. I am day by day tracking clang against ffmpeg SVN.
Interesting point.
Packages BuildRequiring LLVM usually require an specific version.
I would love to package 2.9svn, but rubinius, Mono, etc, work with 2.8 only. (actually 2.6, but I have a patch for rubinius and Mono should work with 2.8 too).
However I am pretty sure more than one app won't work with 2.8. This bring the question whether it makes sense to version the package so that we can have more than one in parallel (ie: llvm2_8 llvm2_9), however LLVM is already a "big" package, and this would make life more complex.
I suppose the build-requiring packages use a library interface to LLVM, not the frontends (clang or llvm-gcc). I suggest packaging the library pieces separately in versioned sub-packages so that multiple versions can be installed in parallel. I don't know if it is useful to have multiple clang/llvm-gcc versions installed in parallel (and btw, I'd advise against packaging llvm-gcc at all - please force people to use clang, which is the only reasonable reason to prefer llvm).
Another solution is to have always latest release + llvm-head (2 packages) in the devel:tools:compiler repo, but the released one on Factory.
I btw agree that devel:tools:compiler is the right place, I'll grant you access there. Richard. -- Richard Guenther <rguenther@suse.de> Novell / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex
Hi; On Thu, Nov 18, 2010 at 11:56 AM, Richard Guenther <rguenther@suse.de> wrote:
I suppose the build-requiring packages use a library interface to LLVM, not the frontends (clang or llvm-gcc). I suggest packaging the library pieces separately in versioned sub-packages so that multiple versions can be installed in parallel. I don't know if it is useful to have multiple clang/llvm-gcc versions installed in parallel (and btw, I'd advise against packaging llvm-gcc at all - please force people to use clang, which is the only reasonable reason to prefer llvm).
I agree, for me llvm-gcc is just an experiment, nothing more. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/18/2010 10:56 AM, Richard Guenther wrote:
I suppose the build-requiring packages use a library interface to LLVM, not the frontends (clang or llvm-gcc). I suggest packaging the library pieces separately in versioned sub-packages so that multiple versions
Right now, most packages BuildRequire the devel package as they link statically against the .a library.
can be installed in parallel. I don't know if it is useful to have multiple clang/llvm-gcc versions installed in parallel (and btw, I'd advise against packaging llvm-gcc at all - please force people to use clang, which is the only reasonable reason to prefer llvm).
Yes. But right now clang is a subpackage of LLVM, as it needs to be built inside LLVM source tree. -- Duncan Mac-Vicar P. - Novell® Making IT Work As One™ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/17/2010 09:13 PM, İsmail Dönmez wrote:
Hi Duncan;
On Wed, Nov 17, 2010 at 9:51 PM, Duncan Mac-Vicar P. <dmacvicar@suse.de> wrote:
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it.
As an extra, you get clang, a C/C++ compiler which is very interesting as it can be used as a library and/or static analyzer. Actually FreeBSD builds now entirely with clang and it seems the BSD world is trying to do a switch from gcc.
I have updated the packman package to 2.8 (latest) release (home:dmacvicar/llvm). There is only a bug left with apidocs/doxygen, which are right now disabled by default via a bscond.
You beat me to it. My plan was to compile whole factory with clang aka BSD.
It's a nonsense to me until you have numbers that support the idea that llvm-compiled stuff is faster. Do we have some already?
But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling
Is llvm-gcc always available for the latest svn? clang is unusable for many of GNU C sources because it still supports only a subset of GNU C. regards, -- js suse labs -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi; On Wed, Nov 17, 2010 at 10:47 PM, Jiri Slaby <jslaby@suse.cz> wrote:
You beat me to it. My plan was to compile whole factory with clang aka BSD.
It's a nonsense to me until you have numbers that support the idea that llvm-compiled stuff is faster. Do we have some already?
I am not interested in the speed, yet. clang is a better programmer compiler, better warnings is love at first sight. I just want to make sure it compiles whole stack of Linux applications.
But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling
Is llvm-gcc always available for the latest svn? clang is unusable for many of GNU C sources because it still supports only a subset of GNU C.
If you refer to a specific program not compiling, I'll make sure its reported so it'll be fixed sooner or later. llvm community managed to fix lots of gcc compatibility bugs. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/17/2010 09:52 PM, İsmail Dönmez wrote:
Hi;
On Wed, Nov 17, 2010 at 10:47 PM, Jiri Slaby <jslaby@suse.cz> wrote:
You beat me to it. My plan was to compile whole factory with clang aka BSD.
It's a nonsense to me until you have numbers that support the idea that llvm-compiled stuff is faster. Do we have some already?
I am not interested in the speed, yet. clang is a better programmer compiler, better warnings is love at first sight. I just want to make sure it compiles whole stack of Linux applications.
Hmm, I would start with the base system. And after I'm sure it is compiled OK (IOW it _works_, i.e. runs most of the time), I would continue with the rest. I bet on it will miscompile any obscure code in base system packages which will be hard to debug otherwise.
But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling
Is llvm-gcc always available for the latest svn? clang is unusable for many of GNU C sources because it still supports only a subset of GNU C.
If you refer to a specific program not compiling, I'll make sure its reported so it'll be fixed sooner or later. llvm community managed to fix lots of gcc compatibility bugs.
I was thinking about kernel, but it's more general. clang doesn't support all of GNU C (local labels for instance). Further llvm-ld is painfully slow for thousands of objects for some time already (bug 6355) -- like incremental linking. regards, -- js suse labs -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi; On Wed, Nov 17, 2010 at 11:02 PM, Jiri Slaby <jslaby@suse.cz> wrote:
On 11/17/2010 09:52 PM, İsmail Dönmez wrote:
Hi;
On Wed, Nov 17, 2010 at 10:47 PM, Jiri Slaby <jslaby@suse.cz> wrote:
You beat me to it. My plan was to compile whole factory with clang aka BSD.
It's a nonsense to me until you have numbers that support the idea that llvm-compiled stuff is faster. Do we have some already?
I am not interested in the speed, yet. clang is a better programmer compiler, better warnings is love at first sight. I just want to make sure it compiles whole stack of Linux applications.
Hmm, I would start with the base system. And after I'm sure it is compiled OK (IOW it _works_, i.e. runs most of the time), I would continue with the rest. I bet on it will miscompile any obscure code in base system packages which will be hard to debug otherwise.
Yes I'd do that. Correctly compiling base is a must.
But... please package 2.9 svn instead of 2.8 because SVN has important fixes for compiling
Is llvm-gcc always available for the latest svn? clang is unusable for many of GNU C sources because it still supports only a subset of GNU C.
If you refer to a specific program not compiling, I'll make sure its reported so it'll be fixed sooner or later. llvm community managed to fix lots of gcc compatibility bugs.
I was thinking about kernel, but it's more general. clang doesn't support all of GNU C (local labels for instance).
Google seems to be working on better ELF/Linux support, I'll check the LLVM bugzilla for this particular problem.
Further llvm-ld is painfully slow for thousands of objects for some time already (bug 6355) -- like incremental linking.
Will check that. Thanks! Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi! On Wed, Nov 17, 2010 at 11:08:28PM +0200, İsmail Dönmez wrote:
On Wed, Nov 17, 2010 at 11:02 PM, Jiri Slaby <jslaby@suse.cz> wrote:
Hmm, I would start with the base system. And after I'm sure it is compiled OK (IOW it _works_, i.e. runs most of the time), I would continue with the rest. I bet on it will miscompile any obscure code in base system packages which will be hard to debug otherwise.
Yes I'd do that. Correctly compiling base is a must.
BTW, I'd be very interested about your results, keep us posted, please. If LLVM can compile glibc, real kudos to it! Petr "Pasky" Baudis -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Hi; On Tue, Nov 23, 2010 at 3:40 PM, Petr Baudis <pasky@suse.cz> wrote:
Hi!
On Wed, Nov 17, 2010 at 11:08:28PM +0200, İsmail Dönmez wrote:
On Wed, Nov 17, 2010 at 11:02 PM, Jiri Slaby <jslaby@suse.cz> wrote:
Hmm, I would start with the base system. And after I'm sure it is compiled OK (IOW it _works_, i.e. runs most of the time), I would continue with the rest. I bet on it will miscompile any obscure code in base system packages which will be hard to debug otherwise.
Yes I'd do that. Correctly compiling base is a must.
BTW, I'd be very interested about your results, keep us posted, please. If LLVM can compile glibc, real kudos to it!
Sure thing, I'll be working on this coming weeks. Regards, ismail -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On Wed, Nov 17, 2010 at 12:51, Duncan Mac-Vicar P. <dmacvicar@suse.de> wrote:
LLVM is getting popular as BuildRequires for other packages. Right now the rubinius, Mono, Freemat matlab clone and even the KDE Unstable repo needs it.
As an extra, you get clang, a C/C++ compiler which is very interesting as it can be used as a library and/or static analyzer. Actually FreeBSD builds now entirely with clang and it seems the BSD world is trying to do a switch from gcc.
I have updated the packman package to 2.8 (latest) release (home:dmacvicar/llvm). There is only a bug left with apidocs/doxygen, which are right now disabled by default via a bscond.
I would like to submit this package to a "right project". devel:tools:compiler looks like the best right now.
Yes, I volunteer to be the maintainer. I admit I am not experienced enough yet with it, but it will improve :-). The original package maintainers are also invited to co-maintain.
Once it is on a project, I would like to get it into Factory so that it shows up on 11.4.
I guess the packman people could try to get my changes back into packman, except for factory where we should have a common one.
Cheers
Duncan
This would be cool. I would like to get the D programming language into factory at some point and the packages I was looking at building require llvm. Cheers, Stephen -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On 11/18/2010 01:06 AM, Stephen Shaw wrote:
This would be cool. I would like to get the D programming language into factory at some point and the packages I was looking at building require llvm.
Cheers, Stephen
A package for ldc would be great! -- Duncan Mac-Vicar P. - Novell® Making IT Work As One™ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
participants (8)
-
Cristian Rodríguez
-
Duncan Mac-Vicar P.
-
İsmail Dönmez
-
Jiri Slaby
-
Petr Baudis
-
Richard Guenther
-
s2_johnm
-
Stephen Shaw