release-notes/devel/en_US Devel.xml,1.1,1.2
Karsten Wade (kwade)
fedora-docs-commits at redhat.com
Mon Sep 25 07:00:29 UTC 2006
Author: kwade
Update of /cvs/docs/release-notes/devel/en_US
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10719
Modified Files:
Devel.xml
Log Message:
Good for FC6
Index: Devel.xml
===================================================================
RCS file: /cvs/docs/release-notes/devel/en_US/Devel.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Devel.xml 24 Sep 2006 21:16:38 -0000 1.1
+++ Devel.xml 25 Sep 2006 07:00:27 -0000 1.2
@@ -5,297 +5,296 @@
<section id="sn-Devel">
<title>Development</title>
-<!--RAW HTML: <h2>Development</h2>-->
-
+ <!--RAW HTML: <h2>Development</h2>-->
+
<para>
This section covers various development tools and features.
</para>
+ <section>
+ <title>Runtime</title>
+ <para>
+ These are the new features in <code>glibc</code>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Support for priority inheriting and priority protecting
+ mutexes. These are two features described in the POSIX
+ standards.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Priority inheriting mutexes automatically prevent
+ priority inversion caused by waiting for the
+ availability of mutexes. The kernel automatically boosts
+ the priority of the thread holding the mutex until it
+ unlocks the mutex.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Priority protection allows to specify a priority that
+ all threads that acquire the mutex will run with until
+ the mutex is unlocked. This feature is not available for
+ robust mutexes.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ The destination address sorting performed by the
+ <code>getaddrinfo()</code> interface for hostname lookup can
+ now be customized by rules in the <code>/etc/gai.conf</code>
+ file.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Significant speed-ups in NIS and NIS+ processing.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ RFC 3542 support completed (advanced socket APIs for IPv6).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Significant speed-ups of dynamic symbol lookup.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Tools</title>
+ <para>
+ The linker includes support for the new ELF symbol hash table
+ format. Use the <code>--hash-style</code> option of the linker
+ to select the format(s).
+ </para>
<section>
- <title>Runtime</title>
+ <title>Kernel header files</title>
<para>
- These are the new features in <code>glibc</code>:
+ This release of Fedora has been built using Linux kernel
+ headers exported directly from the kernel, using the new
+ <code>headers_install</code> feature of the 2.6.18 kernel.
+ Thus, the <code>glibc-kernheaders</code> package has been
+ removed and replaced with <code>kernel-headers</code>, a
+ subpackage of <code>kernel</code>.
+ </para>
+ <para>
+ Developers may notice some changes between these new kernel
+ headers and what was present before, including but not limited
+ to the following:
</para>
<itemizedlist>
- <listitem>
- <para>
- Support for priority inheriting and priority protecting
- mutexes. These are two features described in the POSIX
- standards.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Priority inheriting mutexes automatically prevent
- priority inversion caused by waiting for the
- availability of mutexes. The kernel automatically boosts
- the priority of the thread holding the mutex until it
- unlocks the mutex.
- </para>
- </listitem>
- <listitem>
- <para>
- Priority protection allows to specify a priority that
- all threads that acquire the mutex will run with until
- the mutex is unlocked. This feature is not available for
- robust mutexes.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- The destination address sorting performed by the
- <code>getaddrinfo()</code> interface for hostname lookup can
- now be customized by rules in the <code>/etc/gai.conf</code>
- file.
- </para>
- </listitem>
- <listitem>
- <para>
- Significant speed-ups in NIS and NIS+ processing.
- </para>
- </listitem>
- <listitem>
- <para>
- RFC 3542 support completed (advanced socket APIs for IPv6).
- </para>
- </listitem>
- <listitem>
- <para>
- Significant speed-ups of dynamic symbol lookup.
- </para>
- </listitem>
+ <listitem>
+ <para>
+ The <code><linux/compiler.h></code> header file has
+ been removed, since it contains nothing of use to
+ userspace.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>_syscallX()</code> macros are removed. Userspace
+ should use <code>syscall()</code> from the C library
+ instead.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>PAGE_SIZE</code> macro is removed from some
+ architectures, since the page size is variable. Userspace
+ should be using <code>sysconf(_SC_PAGE_SIZE)</code> or
+ <code>getpagesize()</code> instead.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code><asm/atomic.h></code> and
+ <code><asm/bitops.h></code> header files have been
+ removed. These were not designed for use in userspace, and
+ would fail to compile on some architectures while silently
+ giving non-atomic behaviour on others. The C compiler
+ provides its own
+ <ulink url='http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html#Atomic-Builtins'>atomic
+ builtin functions</ulink> that are suitable for use in
+ userspace programs instead.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Content that was previously protected with <code>#ifdef
+ __KERNEL__</code> is now elided completely with the
+ <code>unifdef</code> tool. Defining
+ <code>__KERNEL___</code> in order to see parts that
+ should not be visible to userspace is no longer effective.
+ </para>
+ </listitem>
</itemizedlist>
+ <para>
+ In addition, some other header files that xare not suitable
+ for use in userspace have been removed, and still more headers
+ have been edited to remove unsuitable content.
+ </para>
+ <para>
+ <note>
+ <title>Kernel header changes are not Fedora-specific</title>
+ <para>
+ These changes are inherited from the upstream kernel and
+ are not specific to Fedora. Any distribution using the
+ current officially-exported kernel headers would be the
+ same.
+ </para>
+ </note>
+ </para>
</section>
-
<section>
- <title>Tools</title>
+ <title>GCC Compiler Collection</title>
<para>
- The linker includes support for the new ELF symbol hash table
- format. Use the <code>--hash-style</code> option of the linker
- to select the format(s).
+ This release of Fedora has been built with GCC 4.1, which
+ is included with the distribution.
</para>
<section>
- <title>Kernel header files</title>
- <para>
- This release of Fedora has been built using Linux kernel
- headers exported directly from the kernel, using the new
- <code>headers_install</code> feature of the 2.6.18 kernel.
- Thus, the <code>glibc-kernheaders</code> package has been
- removed and replaced with <code>kernel-headers</code>, a
- subpackage of <code>kernel</code>.
- </para>
- <para>
- Developers may notice some changes between these new kernel
- headers and what was present before, including but not limited
- to the following:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The <code><linux/compiler.h></code> header file has
- been removed, since it contains nothing of use to
- userspace.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code>_syscallX()</code> macros are removed. Userspace
- should use <code>syscall()</code> from the C library
- instead.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code>PAGE_SIZE</code> macro is removed from some
- architectures, since the page size is variable. Userspace
- should be using <code>sysconf(_SC_PAGE_SIZE)</code> or
- <code>getpagesize()</code> instead.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code><asm/atomic.h></code> and
- <code><asm/bitops.h></code> header files have been
- removed. These were not designed for use in userspace, and
- would fail to compile on some architectures while silently
- giving non-atomic behaviour on others. The C compiler
- provides its own
- <ulink url='http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html#Atomic-Builtins'>atomic
- builtin functions</ulink> which are suitable for use in
- userspace programs instead.
- </para>
- </listitem>
- <listitem>
- <para>
- Content which was previously protected with <code>#ifdef
- __KERNEL__</code> is now elided completely with the
- <code>unifdef</code> tool. Defining
- <code>__KERNEL___</code> in order to see parts which
- should not be visible to userspace is no longer effective.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- In addition, some other header files which are not suitable
- for use in userspace have been removed, and still more headers
- have been edited to remove unsuitable content.
- </para>
- <para>
- <note>
- <title>Kernel header changes are not Fedora-specific</title>
- <para>
- These changes are inherited from the upstream kernel and
- are not specific to Fedora. Any distribution using the
- current officially-exported kernel headers would be the
- same.
- </para>
- </note>
- </para>
+ <title>Caveats</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Fedora developers have introduced changes in the ELF
+ <code>.hash</code> section that provides symbols for dynamic
+ linking. This new <code>.gnu.hash</code> section, which is
+ produced with the new default
+ <code>--hash-style=gnu</code> option for
+ <code>gcc</code>, serves the same purpose as
+ previous hash sections. It provides, however, an
+ approximately 50% increase in dynamic linking speed.
+ Binaries and libraries produced with the new hashing
+ function are incompatible with older
+ <code>glibc</code> and dynamic linker releases. To
+ use the old-style hashing routines for compatibility
+ with older <code>glibc</code>-based systems, pass
+ the <code>--hash-style=sysv</code> option instead.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You need GDB 6.1 or newer to debug binaries, unless
+ they are compiled using the
+ <code>-fno-var-tracking</code> compilation option.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>-fwritable-strings</code> option is no
+ longer accepted.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ English-language diagnostic messages now use Unicode
+ quotes. If you cannot read this, set your
+ <code>LC_CTYPE</code> environment variable to
+ <code>C</code> or change your terminal emulator.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>specs</code> file is no longer installed
+ on most systems. Ordinary users will not notice, but
+ developers who need to alter the file can use the
+ <code>-dumpspecs</code> option to generate the file
+ for editing.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Code Generation</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The SSA code optimizer is now included and brings
+ with it better constant propagation, partial
+ redundancy elimination, load and store code motion,
+ strength reduction, dead storage elimination, better
+ detection of unreachable code, and tail recursion by
+ accumulation.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Autovectorization is supported. This technique
+ achieves higher performance for repetitive loop
+ code, in some circumstances.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Language Extensions</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The new sentinel attribute causes the compiler to
+ issue a warning if a function such as
+ <code>execl(char *path, const char *arg,
+ ...)</code>, which requires a NULL list terminator,
+ is missing the NULL.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>cast-as-lvalue</code>,
+ <code>conditional-expression-as-lvalue</code>, and
+ <code>compund-expression-as-lvalue</code> extensions
+ have been removed.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>#pragma pack()</code> semantics are now
+ closer to those used by other compilers.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Taking the address of a variable declared with the register
+ modifier now generates an error instead of a warning.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Arrays of incomplete element types now generate an
+ error. This implies no forward reference to
+ structure definitions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The basic compiler, without any optimization
+ (<code>-O0</code>), has been measured as much as 25%
+ faster in real-world code.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Libraries may now contain function-scope static
+ variables in multi-threaded programs. Embedded
+ developers can use the
+ <code>-fno-threadsafe-statics</code> to turn off
+ this feature, but ordinary users should never do
+ this.
+ </para>
+ </listitem>
+ </itemizedlist>
</section>
- <section>
- <title>GCC Compiler Collection</title>
- <para>
- This release of Fedora has been built with GCC 4.1, which
- is included with the distribution.
- </para>
- <section>
- <title>Caveats</title>
- <itemizedlist>
- <listitem>
- <para>
- Fedora developers have introduced changes in the ELF
- .hash section that provides symbols for dynamic
- linking. This new .gnu.hash section, which is
- produced with the new default
- <code>--hash-style=gnu</code> option for
- <code>gcc</code>, serves the same purpose as
- previous hash sections. It provides, however, an
- approximately 50% increase in dynamic linking speed.
- Binaries and libraries produced with the new hashing
- function are incompatible with older
- <code>glibc</code> and dynamic linker releases. To
- use the old-style hashing routines for compatibility
- with older <code>glibc</code>-based systems, pass
- the <code>--hash-style=sysv</code> option instead.
- </para>
- </listitem>
- <listitem>
- <para>
- You need GDB 6.1 or newer to debug binaries, unless
- they are compiled using the
- <code>-fno-var-tracking</code> compilation option.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code>-fwritable-strings</code> option is no
- longer accepted.
- </para>
- </listitem>
- <listitem>
- <para>
- English-language diagnostic messages now use Unicode
- quotes. If you cannot read this, set your
- <code>LC_CTYPE</code> environment variable to
- <code>C</code> or change your terminal emulator.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code>specs</code> file is no longer installed
- on most systems. Ordinary users will not notice, but
- developers who need to alter the file can use the
- <code>-dumpspecs</code> option to generate the file
- for editing.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Code Generation</title>
- <itemizedlist>
- <listitem>
- <para>
- The SSA code optimizer is now included and brings
- with it better constant propagation, partial
- redundancy elimination, load and store code motion,
- strength reduction, dead storage elimination, better
- detection of unreachable code, and tail recursion by
- accumulation.
- </para>
- </listitem>
- <listitem>
- <para>
- Autovectorization is supported. This technique
- achieves higher performance for repetitive loop
- code, in some circumstances.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Language Extensions</title>
- <itemizedlist>
- <listitem>
- <para>
- The new sentinel attribute causes the compiler to
- issue a warning if a function such as
- <code>execl(char *path, const char *arg,
- ...)</code>, which requires a NULL list terminator,
- is missing the NULL.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code>cast-as-lvalue</code>,
- <code>conditional-expression-as-lvalue</code>, and
- <code>compund-expression-as-lvalue</code> extensions
- have been removed.
- </para>
- </listitem>
- <listitem>
- <para>
- The <code>#pragma pack()</code> semantics are now
- closer to those used by other compilers.
- </para>
- </listitem>
- <listitem>
- <para>
- Taking the address of a variable declared with the
- register modifier now generates an error instead of
- a warning.
- </para>
- </listitem>
- <listitem>
- <para>
- Arrays of incomplete element types now generate an
- error. This implies no forward reference to
- structure definitions.
- </para>
- </listitem>
- <listitem>
- <para>
- The basic compiler, without any optimization
- (<code>-O0</code>), has been measured as much as 25%
- faster in real-world code.
- </para>
- </listitem>
- <listitem>
- <para>
- Libraries may now contain function-scope static
- variables in multi-threaded programs. Embedded
- developers can use the
- <code>-fno-threadsafe-statics</code> to turn off
- this feature, but ordinary users should never do
- this.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- </section>
</section>
+ </section>
<section>
<title>Ruby</title>
@@ -336,7 +335,7 @@
the release of Fedora Core 8. Build Ruby RPM packages in
accordance with
<ulink url='http://fedora-test.fedoraproject.org/fedora-docs/fedora-docs/Packaging/Ruby'>the
- packaging guidelines</ulink>. In particular, Ruby libraries should
+ packaging guidelines</ulink>. In particular, Ruby libraries should
only be installed into <code>sitelibdir</code> and
<code>sitearchdir</code>. You should also follow this rule for
Ruby code that is not packaged as an RPM.
More information about the Fedora-docs-commits
mailing list