Date: Sat, 2 Jan 2010 18:09:06 GMT From: Rene Ladan <rene@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 172483 for review Message-ID: <201001021809.o02I96v9010348@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=172483 Change 172483 by rene@rene_self on 2010/01/02 18:08:09 [porters-handbook/clang] - respect 72 columns - add c89 to list of programs not to invoke directly - remove note on -O4, current versions of clang/llvm do the right thing - remove references to my server, moved to the wiki Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#65 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#65 (text+ko) ==== @@ -13666,19 +13666,20 @@ <sect1 id="dads-clang"> <title>Clang: new C/C++ compiler</title> - <para>A future version of &os; will likely have the Clang C/C++ - compiler as its base compiler. Some modifications to the Ports - Collection are necessary. In general, these involve - <quote>generalizing the port</quote> and <quote>making the source - code portable</quote>. More specifically:</para> + <para>A future version of &os; will have the Clang C/C++ + compiler as its base compiler. Some modifications to the + Ports Collection are necessary. In general, these involve + <quote>generalizing the port</quote> and <quote>making the + source code portable</quote>. More specifically:</para> <itemizedlist> <listitem> - <para>Respect the <makevar>CC</makevar> and <makevar>CXX</makevar> - variables. Do not use any of the programs <filename>cc</filename>, - <filename>c99</filename>, <filename>gcc</filename>, - <filename>c++</filename>, or <filename>g++</filename> in a port - directly.</para> + <para>Respect the <makevar>CC</makevar> and + <makevar>CXX</makevar> variables. Do not use any of the + programs <filename>cc</filename>, + <filename>c89</filename>, <filename>c99</filename>, + <filename>gcc</filename>, <filename>c++</filename>, or + <filename>g++</filename> in a port directly.</para> </listitem> <listitem> @@ -13687,28 +13688,31 @@ </listitem> <listitem> - <para>Do not use <filename>cpp</filename> for reformatting manual - pages or shell scripts. Try to use something more suitable - instead, possibly falling back to <makevar>CPP</makevar>.</para> + <para>Do not use <filename>cpp</filename> for reformatting + manual pages or shell scripts. Try to use something more + suitable instead, possibly falling back to + <makevar>CPP</makevar>.</para> <!-- (rene) what about the C++ preprocessor? --> </listitem> <listitem> - <para>Clang uses the gnu99 standard by default, while GCC uses the - gnu89 standard by default. Therefore, if there are any linker - errors caused by the different semantics of - <literal>inline</literal>, compiler errors caused by the use of - reserved C99 keywords (i.e. restrict) or calls to unimplemented - ISO C99 math routines try to add <literal>USE_CSTD=gnu89</literal> - to the port <filename>Makefile</filename>.</para> + <para>Clang uses the gnu99 standard by default, while GCC + uses the gnu89 standard by default. Therefore, if there + are any linker errors caused by the different semantics of + <literal>inline</literal>, compiler errors caused by the + use of reserved C99 keywords (i.e. restrict) or calls to + unimplemented ISO C99 math routines, try to add + <literal>USE_CSTD=gnu89</literal> to the port + <filename>Makefile</filename>.</para> </listitem> <listitem> - <para>The <literal>-traditional</literal> option is not supported, - so existing occurrences have to be removed. No consensus has yet - been reached on ports abusing this option to preserve white space - in text formatting. Note that the Clang preprocessor does not - preserve white space.</para> + <para>The <literal>-traditional</literal> option is not + supported, so existing occurrences have to be removed. + No consensus has yet been reached on ports which abuse + this option to preserve white space in text formatting. + Note that the Clang preprocessor does not preserve white + space.</para> </listitem> <listitem> @@ -13725,21 +13729,14 @@ <programlisting>int main(void)</programlisting> </listitem> - - <listitem> - <para>The maximum usable optimization level is 3. Level 4 is - reserved for link-time optimization for the Clang backend.</para> - </listitem> - - <!--(rene) -I and -L belong to CONFIGURE_ENV, not to CFLAGS (?)--> </itemizedlist> <para>Some temporary hacks that might be used if all else fails:</para> <itemizedlist> <listitem> - <para>Adding <literal>-fheinous-gnu-extensions</literal>. Note - that this option is already deprecated.</para> + <para>Adding <literal>-fheinous-gnu-extensions</literal>. + Note that this option is already deprecated.</para> </listitem> <listitem> @@ -13750,15 +13747,6 @@ <literal>-Werror</literal>.</para> </listitem> </itemizedlist> - - <para>The current patch set can be downloaded from <ulink - url="http://rene-ladan.nl/clang/patches">a server of rene@</ulink>. - A <ulink url="http://rene-ladan.nl/clang/patch-tree">customizable - script</ulink> to automatically update your Tinderbox Ports Tree - and apply the patches to it is also available. You might also want - to fetch <ulink url="http://rene-ladan.nl/clang/rm-these-files">the - list of files to remove</ulink> from there. This list is relative - to the Tinderbox Ports Tree.</para> </sect1> <sect1 id="dads-cc">
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001021809.o02I96v9010348>