Re: FreeBSD 10.0-CURRENT: CLANG and port/clang weirdness!

看板FB_current作者時間13年前 (2012/09/08 17:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/7 (看更多)
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig98553C4A03C9C0FA0F70B63A Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 09/07/12 19:07, Brooks Davis wrote: > On Fri, Sep 07, 2012 at 05:46:02PM +0200, O. Hartmann wrote: >> On 09/07/12 17:09, Dimitry Andric wrote: >>> On 2012-09-07 11:41, O. Hartmann wrote: >>>> Building ports not explicitely enabling USE_GCC=3D4.6+ are considere= d >>>> using the system's LLVM/CLANG, which is clang 3.2 in our installatio= n >>>> (FreeBSD 10.0-CURRENT #0 r240164), but since some ports require the >>>> special ports devel/llvm and lang/clang, LLVM 3.1 and clang 3.1 get >>>> installed and 3.1 is used instead the system's 3.2 whenever "clang",= >>>> "clang++" is invoked. >>> >>> Maybe a solution would be to use the same approach as with the gcc >>> ports, namely installing the clang 3.1 executables into /usr/local/bi= n >>> as clang-3.1, clang++-3.1 and clang-cpp-3.1. Then you could simply s= et >>> >>> CC=3Dclang-3.1 >>> CXX=3Dclang++-3.1 >>> CPP=3Dclang-cpp-3.1 >>> >>> for the targets that require it. Brooks? :) >> >> I would appreciate such an approach, since it would be consistent with= >> with GCC, as you stated. >=20 > I'd like to do this, but it doesn't look like it will be easy. There > appears to be no support in the llvm build system for it. :( >=20 >>>> Following the WIKI at http://wiki.freebsd.org/BuildingFreeBSDWithCla= ng >>>> introduces the usage of >>>> >>>> CC=3Dclang instead of CC=3D/usr/bin/clang >>>> CXX=3Dclang++ instead of CXX=3D/usr/bin/clang++ >>>> CPP=3Dclang-ccp instead of CPP=3D/usr/bin/clang-ccp >>>> >>>> Is this intended? >>> >>> Yes. During buildworld, in the cross-tools stage, a new compiler is >>> built, and it is placed under ${WORLDTMP}, usually /usr/obj/usr/src/t= mp. >>> Afterwards, in the rest of the stages, the PATH is changed so >>> executables from ${WORLDTMP} are preferred above those in the system >>> directories. >>> >>> Therefore, if you set CC/CXX/CPP with an explicit path, this logic wi= ll >>> not work, and your buildworld may have all kinds of trouble. I think= >>> there are several patches floating around to fix this, in various >>> different ways. >> >> Understood. >=20 > FWIW, picking up clang etc from /usr/local should be mostly harmless > during the early build stage. You're actual world will be built with > the cross clang. =2E.. means, the resulting WORLD and KERNEL is then build by the LLVM/CLANG that is residing in /usr/obj/...? But what is with PORTS I build later? They definitely pick up the "wrong" clang/clang++. I was suggested to deinstall (or not to install) the port's version of LLVM/CLANG, but this happens automatically for some ports - like LibreOffice. >=20 >> Since I'm using on most boxes 10.0, where can I read more about the ne= w >> toolchain approach? >=20 > Discussions will take place on the toolchain@ list. I'll be posting > some writeups soon. >=20 >> And by the way - is there a way to have also LLVM installed with the >> base system by a knob like "WITH_LLVM"? This would avoid the same >> confusion as mentioned above with CLANG when it comes to LLVM >> dependencies (I play around with some OpenCL libs (pocl), which seems = to >> need LLVM port installed). >=20 > You're probably looking for WITH_CLANG_EXTRAS. I already have that option enabled in my /etc/src.conf. But unfortunately, a tool called "llvm-config" and sibblings weren't installed, they get installed only with /usr/ports/devel/llvm[-devel]. I discovered this playing around with LLVM and there is a software package I play with (pocl, portable OpenCL library) which uses LLVM backe= nd. At this point, my "point of view" might me wrong, but I look at CLANG as it is a part of the LLVM framework and so I inherently expected it to be existent (the LLVM) in FreeBSD. But I guess the policy in FBSD is to have only the clang and the necessary portions of LLVM in the tree. So I thought it would be nice to have the "magic knob" in case one will take the burden of compiling more and time consuming more LLVM/CLANG stuff if he chooses to do. >=20 > -- Brooks >=20 >> >> Thanks for your response, >> >> regards >> >> Oliver >> >> >=20 --------------enig98553C4A03C9C0FA0F70B63A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQEcBAEBAgAGBQJQSwNBAAoJEOgBcD7A/5N8oSUIAMjHHoaXaxlFQaqdjqQ8yDFp BnbpW+fcy0OfRtGtIZQ3r9it9rGtBI0leqtbQLQ/v1nM+wyRDSUwMo37LKR2Jo1A TPqpe4lkXBw8gF1TuEQXjU6FUc1l24x7gAdYcsvuJMFd4i2vvm9iWuib1TuJ2RRD 25v1SDfqTrfnNb5TZMan7P/AdYgBYchg2X0N7kIUAcpn6rrTJ8YhlHpx7pJIczGG VkECwXrna9cCYSCTFn3RpadxjOuCTEJFXF7SDMl1WI1R7R+5+9FiB9lSh1EpNhS1 GqcvsTfYuwFuicBPZVwMAQ12etVLDjmSlEVb1wmZdFbf0OsCQdi6HT0l2neNPLE= =hZsG -----END PGP SIGNATURE----- --------------enig98553C4A03C9C0FA0F70B63A--
文章代碼(AID): #1GImbMZi (FB_current)
討論串 (同標題文章)
文章代碼(AID): #1GImbMZi (FB_current)