Clang going into FreeBSD's base system

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Clang going into FreeBSD's base system

Ed Schouten
Hello Clang folks,

You folks probably want to be informed about this as well.

Greetings,
--
 Ed Schouten <[hidden email]>
 WWW: http://80386.nl/


----- Forwarded message from Ed Schouten <[hidden email]> -----

> Date: Fri, 14 May 2010 17:24:08 +0200
> From: Ed Schouten <[hidden email]>
> To: FreeBSD Arch <[hidden email]>
> Subject: Request for review: build infrastructure for Clang
>
> Hello all,
>
> At BSDCan there has been a general agreement that in order to make Clang
> a viable replacement for GCC 4.2.1, it should be integrated into FreeBSD
> HEAD and installed by default as soon as possible. This does not mean
> that the system will be bootstrapped using Clang, nor does it mean that
> Ports are built using it. Clang is just installed as /usr/bin/clang and
> /usr/bin/clang++. It can be built and installed on any architecture, but
> it will only be enabled on amd64, i386 and pc98 for now.
>
> As requested by several people, I am hereby sending a patch which adds
> the build infrastructure for Clang. It includes all modifications that
> are present in the projects/clangbsd-import branch, except the
> LLVM/Clang source tree stored at contrib/llvm.
>
> Below are random remarks about the patch:
>
> - Clang depends on many LLVM libraries. The Makefiles for these
>   libraries are stored in usr.bin/clang/lib. All binaries (clang and
>   tblgen) have their Makefiles in usr.bin/clang/bin respectively.
>
> - Clang requires a bootstrapping tool called tblgen, which generates
>   large portions of internal interfaces. Even though this tool is only
>   needed when MK_CLANG is set, it is always built. Because the default
>   value of MK_CLANG depends on the architecture used, we cannot reliably
>   determine whether tblgen should be built during bootstrap when
>   cross-compiling. Because tblgen doesn't blow up the build time
>   significantly, it will always be built.
>
> - LLVM source code includes some generated header files. Not all these
>   generated headers use .h extensions. This isn't a problem, except that
>   it confuses <bsd.*.mk>. This is why all headers generated by tblgen
>   have the .h extension and wrappers are in place in
>   usr.bin/clang/include.
>
> If everything goes according to plan, this patch will be committed to
> HEAD in 2 weeks from now (May 28). Depending on whether interesting bugs
> are fixed upstream, a newer snapshot may be integrated than the one used
> right now.
>
> The entire source tree can be checked out as follows. Be sure to give it
> a try!
>
> svn co svn://svn.freebsd.org/base/projects/clangbsd-import/
>
> In case you find problems, be sure to drop by #freebsd-clang on EFnet.
>
> Greetings from Ottawa,
> --
>  Ed Schouten <[hidden email]>
>  WWW: http://80386.nl/
----- End forwarded message -----

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

attachment0 (203 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Clang going into FreeBSD's base system

Douglas Gregor
This is great news. Thanks, Ed!

        - Doug

On May 14, 2010, at 10:14 AM, Ed Schouten wrote:

> Hello Clang folks,
>
> You folks probably want to be informed about this as well.
>
> Greetings,
> --
> Ed Schouten <[hidden email]>
> WWW: http://80386.nl/
>
>
> ----- Forwarded message from Ed Schouten <[hidden email]> -----
>> Date: Fri, 14 May 2010 17:24:08 +0200
>> From: Ed Schouten <[hidden email]>
>> To: FreeBSD Arch <[hidden email]>
>> Subject: Request for review: build infrastructure for Clang
>>
>> Hello all,
>>
>> At BSDCan there has been a general agreement that in order to make Clang
>> a viable replacement for GCC 4.2.1, it should be integrated into FreeBSD
>> HEAD and installed by default as soon as possible. This does not mean
>> that the system will be bootstrapped using Clang, nor does it mean that
>> Ports are built using it. Clang is just installed as /usr/bin/clang and
>> /usr/bin/clang++. It can be built and installed on any architecture, but
>> it will only be enabled on amd64, i386 and pc98 for now.
>>
>> As requested by several people, I am hereby sending a patch which adds
>> the build infrastructure for Clang. It includes all modifications that
>> are present in the projects/clangbsd-import branch, except the
>> LLVM/Clang source tree stored at contrib/llvm.
>>
>> Below are random remarks about the patch:
>>
>> - Clang depends on many LLVM libraries. The Makefiles for these
>>  libraries are stored in usr.bin/clang/lib. All binaries (clang and
>>  tblgen) have their Makefiles in usr.bin/clang/bin respectively.
>>
>> - Clang requires a bootstrapping tool called tblgen, which generates
>>  large portions of internal interfaces. Even though this tool is only
>>  needed when MK_CLANG is set, it is always built. Because the default
>>  value of MK_CLANG depends on the architecture used, we cannot reliably
>>  determine whether tblgen should be built during bootstrap when
>>  cross-compiling. Because tblgen doesn't blow up the build time
>>  significantly, it will always be built.
>>
>> - LLVM source code includes some generated header files. Not all these
>>  generated headers use .h extensions. This isn't a problem, except that
>>  it confuses <bsd.*.mk>. This is why all headers generated by tblgen
>>  have the .h extension and wrappers are in place in
>>  usr.bin/clang/include.
>>
>> If everything goes according to plan, this patch will be committed to
>> HEAD in 2 weeks from now (May 28). Depending on whether interesting bugs
>> are fixed upstream, a newer snapshot may be integrated than the one used
>> right now.
>>
>> The entire source tree can be checked out as follows. Be sure to give it
>> a try!
>>
>> svn co svn://svn.freebsd.org/base/projects/clangbsd-import/
>>
>> In case you find problems, be sure to drop by #freebsd-clang on EFnet.
>>
>> Greetings from Ottawa,
>> --
>> Ed Schouten <[hidden email]>
>> WWW: http://80386.nl/
> ----- End forwarded message -----
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev