<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linux-xtensa.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wbx</id>
	<title>Linux/Xtensa - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linux-xtensa.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wbx"/>
	<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Special:Contributions/Wbx"/>
	<updated>2026-05-05T02:24:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Status_of_the_Xtensa_Port&amp;diff=727</id>
		<title>Status of the Xtensa Port</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Status_of_the_Xtensa_Port&amp;diff=727"/>
		<updated>2014-08-17T16:01:50Z</updated>

		<summary type="html">&lt;p&gt;Wbx: add uclibc-ng and OpenADK, fix glibc git repo link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides additional information for software support for the Xtensa architecture. While most applications are written architecture independent, development tools and operating systems must be ported to a new processor architecture. Support for the Xtensa architecture has already been integrated in most Open Source software projects. Development trees that feed to the respective mainline repository and for new development can be found in local [http://git.linux-xtensa.org GIT] repositories. &lt;br /&gt;
&lt;br /&gt;
=== Toolchain: Compiler (GCC) and various binary utilities (binutils) ===&lt;br /&gt;
&lt;br /&gt;
All GNU toolchain tools are maintained in OpenSource and can be downloaded from the respective locations.&lt;br /&gt;
* Binutils: http://www.gnu.org/software/binutils/&lt;br /&gt;
* GCC: http://gcc.gnu.org/&lt;br /&gt;
&lt;br /&gt;
Additional information to patch these sources for a specific Xtensa processor configuration can be found under [[Toolchain and Embedded Distributions]].&lt;br /&gt;
&lt;br /&gt;
=== C-Libraries: Glibc, uClibc and uClibc-ng ===&lt;br /&gt;
&lt;br /&gt;
Xtensa has long been part of uClibc, however, there are a lot of bug fixes pending for the next release (0.9.33.3). Support for the Native Posix Thread Library (NTPL) is under development and is expected to be part of the following release. The spin-off uClibc-ng project already contains the experimental NPTL support. Development for Glibc with NPTL (older thread libraries are not supported by Glibc anymore) is also current under way. A development tree can be found in this [https://github.com/czankel/xtensa-glibc GIT] repository.&lt;br /&gt;
* uClibc: http://www.uclibc.org/&lt;br /&gt;
* GlibC: http://www.gnu.org/software/libc/&lt;br /&gt;
* uClibc-ng: http://www.uclibc-ng.org/&lt;br /&gt;
&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
&lt;br /&gt;
GDB is maintained in OpenSource and support for Xtensa in other debugging tools was maintained as patches in local buildroot repositories, and are currently updated and pushed to the respective main repositories.&lt;br /&gt;
* GDB: http://www.gnu.org/software/gdb/&lt;br /&gt;
* strace: http://sourceforge.net/projects/strace/&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel ===&lt;br /&gt;
&lt;br /&gt;
Xtensa has been part of the official Linux kernel tree since 2.6.13, however, a lot of patches were maintained in a local stable tree for a long time, and are currently ported to the latest kernel tree. Features, such as large memory support and cache aliasing should be expected to hit the kernel in the 3.10/3.11 time frame. The latest version can be found at https://www.kernel.org/.&lt;br /&gt;
&lt;br /&gt;
=== Toolchain creation tools and embedded distributions (crosstool-NG, buildroot, etc) ===&lt;br /&gt;
&lt;br /&gt;
Xtensa is supported by buildroot, which can be downloaded from http://www.buildroot.net. Support for crosstool-NG has not been pushed into the official tree yet. A version can be downloaded from local [http://git.linux-xtensa.org GIT] repositories. Additional information to configure these tools for a specific Xtensa processor configuration can be found under [[Toolchain and Embedded Distributions]].&lt;br /&gt;
* Buildroot: http://www.buildroot.net&lt;br /&gt;
* Crosstool-NG: http://crosstool-ng.org/&lt;br /&gt;
* OpenADK: http://www.openadk.org/&lt;br /&gt;
&lt;br /&gt;
=== Other Projects ===&lt;br /&gt;
&lt;br /&gt;
The following list are additional projects that are architecture specific, or that have architecture specific components with additional information how to compile them for Xtensa.&lt;br /&gt;
&lt;br /&gt;
* [[LibFFI]] - LibFFI is a library that provides an interface to execute low-level functions. It is mostly used by scripting or higher-level languages, such as Python, Dalvik, etc.&lt;/div&gt;</summary>
		<author><name>Wbx</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Toolchain_Overlay_File&amp;diff=726</id>
		<title>Toolchain Overlay File</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Toolchain_Overlay_File&amp;diff=726"/>
		<updated>2014-08-15T18:56:21Z</updated>

		<summary type="html">&lt;p&gt;Wbx: /* Ready to go overlay archives (can be used with buildroot and OpenADK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Overlay&#039;&#039; is a tar file that includes modified versions of processor configuration dependent files that are required by various toolchain tools, such as binutils, gcc, and gdb. The overlay described here has a specific layout and is intended for toolchain generators, such as buildroot, OpenADK or crosstool-NG. &lt;br /&gt;
&lt;br /&gt;
== Creating the overlay ==&lt;br /&gt;
&lt;br /&gt;
The overlay file shipped by Tensilica uses a flat directory structure, which is not suitable for buildroot or crosstool-NG at the moment. The file is part of the generated processor package, and can be found in the XtDevTools directory:&lt;br /&gt;
&lt;br /&gt;
 XtDevTools/install/build/$VERSION/$XTENSA_CORE/src/xtensa-config-overlay.tar.gz&lt;br /&gt;
&lt;br /&gt;
The following script converts this file and writes the modified version to xtensa-overlay.tar. Simply provide the path and name of the overlay provided by Tensilica when running the script:&lt;br /&gt;
&lt;br /&gt;
 ./script xtensa-config-overlay.tar.gz&lt;br /&gt;
&lt;br /&gt;
The file xtensa-overlay.tar created by the script can now be used to build buildroot or crosstool-NG. For more information how to configure those generators, please see [[Buildroot]] or [[crosstool-NG]].&lt;br /&gt;
&lt;br /&gt;
(Note that there is also a similar overlay file in the generated processor package provided by Tensilica, but it has a different directory layout and is not suitable for the script provided below. It can be found under .../$XTENSA_CORE/xtensa-elf/src/linux/misc/linux-overlay.tar.gz)&lt;br /&gt;
&lt;br /&gt;
== Conversion Script ==&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ $# -ne 1 ]; then&lt;br /&gt;
  echo &amp;quot;Error: No overlay file specified&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 if [ $1 == &amp;quot;xtensa-overlay.tar&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;Error: Input file must be named other than &#039;xtensa-overlay.tar&#039;&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f $1 ]; then&lt;br /&gt;
  echo &amp;quot;Error: Overlay file $1 not found&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 TMPDIR=`mktemp -d`&lt;br /&gt;
 tar xzf $1 -C $TMPDIR&lt;br /&gt;
 mkdir -p $TMPDIR/overlay/binutils/bfd $TMPDIR/overlay/binutils/ld \&lt;br /&gt;
          $TMPDIR/overlay/binutils/include $TMPDIR/overlay/gcc/include \&lt;br /&gt;
          $TMPDIR/overlay/gdb/bfd $TMPDIR/overlay/gdb/gdb/regformats \&lt;br /&gt;
          $TMPDIR/overlay/gdb/gdb/gdbserver $TMPDIR/overlay/gdb/include&lt;br /&gt;
 mv $TMPDIR/binutils/xtensa-config.h $TMPDIR/overlay/binutils/include&lt;br /&gt;
 mv $TMPDIR/binutils/xtensa-modules.c $TMPDIR/overlay/binutils/bfd&lt;br /&gt;
 mv $TMPDIR/gcc/xtensa-config.h $TMPDIR/overlay/gcc/include&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-config.c $TMPDIR/overlay/gdb/gdb&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-config.h $TMPDIR/overlay/gdb/include&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-modules.c $TMPDIR/overlay/gdb/bfd&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-xtregs.c $TMPDIR/overlay/gdb/gdb/gdbserver&lt;br /&gt;
 mv $TMPDIR/gdb/reg-xtensa.dat $TMPDIR/overlay/gdb/gdb/regformats&lt;br /&gt;
 tar cf xtensa-overlay.tar -C $TMPDIR/overlay/ binutils gcc gdb&lt;br /&gt;
 rm -fr $TMPDIR&lt;br /&gt;
&lt;br /&gt;
== Example Files ==&lt;br /&gt;
&lt;br /&gt;
The following files are the original and generated overlay file for the DC_D_233L processor.&lt;br /&gt;
&lt;br /&gt;
* http://www.linux-xtensa.org/pub/xtensa-config-overlay.tar.gz - Original overlay file provided by Tensilica&lt;br /&gt;
* http://www.linux-xtensa.org/pub/xtensa-overlay.tgz - : Generated overlay file, applicable to buildroot and crosstool-NG&lt;br /&gt;
&lt;br /&gt;
== Ready to go overlay archives (can be used with buildroot and OpenADK) ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/jcmvbkbc/xtensa-toolchain-build/tree/master/overlays&lt;/div&gt;</summary>
		<author><name>Wbx</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Toolchain_Overlay_File&amp;diff=725</id>
		<title>Toolchain Overlay File</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Toolchain_Overlay_File&amp;diff=725"/>
		<updated>2014-08-15T18:56:03Z</updated>

		<summary type="html">&lt;p&gt;Wbx: add xtensa overlay repo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Overlay&#039;&#039; is a tar file that includes modified versions of processor configuration dependent files that are required by various toolchain tools, such as binutils, gcc, and gdb. The overlay described here has a specific layout and is intended for toolchain generators, such as buildroot, OpenADK or crosstool-NG. &lt;br /&gt;
&lt;br /&gt;
== Creating the overlay ==&lt;br /&gt;
&lt;br /&gt;
The overlay file shipped by Tensilica uses a flat directory structure, which is not suitable for buildroot or crosstool-NG at the moment. The file is part of the generated processor package, and can be found in the XtDevTools directory:&lt;br /&gt;
&lt;br /&gt;
 XtDevTools/install/build/$VERSION/$XTENSA_CORE/src/xtensa-config-overlay.tar.gz&lt;br /&gt;
&lt;br /&gt;
The following script converts this file and writes the modified version to xtensa-overlay.tar. Simply provide the path and name of the overlay provided by Tensilica when running the script:&lt;br /&gt;
&lt;br /&gt;
 ./script xtensa-config-overlay.tar.gz&lt;br /&gt;
&lt;br /&gt;
The file xtensa-overlay.tar created by the script can now be used to build buildroot or crosstool-NG. For more information how to configure those generators, please see [[Buildroot]] or [[crosstool-NG]].&lt;br /&gt;
&lt;br /&gt;
(Note that there is also a similar overlay file in the generated processor package provided by Tensilica, but it has a different directory layout and is not suitable for the script provided below. It can be found under .../$XTENSA_CORE/xtensa-elf/src/linux/misc/linux-overlay.tar.gz)&lt;br /&gt;
&lt;br /&gt;
== Conversion Script ==&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ $# -ne 1 ]; then&lt;br /&gt;
  echo &amp;quot;Error: No overlay file specified&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 if [ $1 == &amp;quot;xtensa-overlay.tar&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;Error: Input file must be named other than &#039;xtensa-overlay.tar&#039;&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 if [ ! -f $1 ]; then&lt;br /&gt;
  echo &amp;quot;Error: Overlay file $1 not found&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 TMPDIR=`mktemp -d`&lt;br /&gt;
 tar xzf $1 -C $TMPDIR&lt;br /&gt;
 mkdir -p $TMPDIR/overlay/binutils/bfd $TMPDIR/overlay/binutils/ld \&lt;br /&gt;
          $TMPDIR/overlay/binutils/include $TMPDIR/overlay/gcc/include \&lt;br /&gt;
          $TMPDIR/overlay/gdb/bfd $TMPDIR/overlay/gdb/gdb/regformats \&lt;br /&gt;
          $TMPDIR/overlay/gdb/gdb/gdbserver $TMPDIR/overlay/gdb/include&lt;br /&gt;
 mv $TMPDIR/binutils/xtensa-config.h $TMPDIR/overlay/binutils/include&lt;br /&gt;
 mv $TMPDIR/binutils/xtensa-modules.c $TMPDIR/overlay/binutils/bfd&lt;br /&gt;
 mv $TMPDIR/gcc/xtensa-config.h $TMPDIR/overlay/gcc/include&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-config.c $TMPDIR/overlay/gdb/gdb&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-config.h $TMPDIR/overlay/gdb/include&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-modules.c $TMPDIR/overlay/gdb/bfd&lt;br /&gt;
 mv $TMPDIR/gdb/xtensa-xtregs.c $TMPDIR/overlay/gdb/gdb/gdbserver&lt;br /&gt;
 mv $TMPDIR/gdb/reg-xtensa.dat $TMPDIR/overlay/gdb/gdb/regformats&lt;br /&gt;
 tar cf xtensa-overlay.tar -C $TMPDIR/overlay/ binutils gcc gdb&lt;br /&gt;
 rm -fr $TMPDIR&lt;br /&gt;
&lt;br /&gt;
== Example Files ==&lt;br /&gt;
&lt;br /&gt;
The following files are the original and generated overlay file for the DC_D_233L processor.&lt;br /&gt;
&lt;br /&gt;
* http://www.linux-xtensa.org/pub/xtensa-config-overlay.tar.gz - Original overlay file provided by Tensilica&lt;br /&gt;
* http://www.linux-xtensa.org/pub/xtensa-overlay.tgz - : Generated overlay file, applicable to buildroot and crosstool-NG&lt;br /&gt;
&lt;br /&gt;
== Ready to go overlay archives (can be used with buildroot and OpenADK ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/jcmvbkbc/xtensa-toolchain-build/tree/master/overlays&lt;/div&gt;</summary>
		<author><name>Wbx</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Toolchain_and_Embedded_Distributions&amp;diff=724</id>
		<title>Toolchain and Embedded Distributions</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Toolchain_and_Embedded_Distributions&amp;diff=724"/>
		<updated>2014-08-15T18:52:15Z</updated>

		<summary type="html">&lt;p&gt;Wbx: add OpenADK link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[Toolchain Overlay File]] ==&lt;br /&gt;
&lt;br /&gt;
Because Xtensa is a configurable and extensible processor architecture that allows to define additional registers and instructions, the toolchain is the main software component that usually needs to be adapted for a specific Xtensa processor configuration. Tensilica provides a small set of configuration files in form of an &#039;&#039;overlay&#039;&#039; that replace the versions in the toolchain sources. The [[Toolchain Overlay File]] is a version of that &#039;&#039;overlay&#039;&#039; provided by Tensilica with a specific format required for crosstool-NG and buildroot. A script to convert the &#039;&#039;overlay&#039;&#039; provided by Tensilica can be found under [[Toolchain Overlay File]]&lt;br /&gt;
&lt;br /&gt;
== Start from scratch with FSF/OSS sources ==&lt;br /&gt;
&lt;br /&gt;
Creating a toolchain and bootable root file system starting from sources is certainly the most challenging approach. It usually requires additional patches and sometimes matching versions of sources. While support for Xtensa is integrated in most toolchain tools, they must be patches for a specific Xtensa processor configuration. The &#039;&#039;overlay&#039;&#039; metioned above includes a necessary set of configuration files together with information explaining the process to patch the toolchain sources.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; cross compilers running on 64bit hosts are known to produce broken code. For some more details see the [http://lists.linux-xtensa.org/pipermail/linux-xtensa/Week-of-Mon-20130715/001140.html explanation] of Chris Zankel.&lt;br /&gt;
&lt;br /&gt;
== [http://crosstool-ng.org/ crosstool-NG] &amp;lt;small&amp;gt;([[crosstool-NG|build instructions for Xtensa]])&amp;lt;/small&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
crosstool-NG (http://crosstool-ng.org/) provides a system to build a complete toolchain. It supports various C-libraries (Multilib, uClibc, glibc, and eglibc), but can also be used to build a &#039;bare&#039; toolchain. The current version does not yet support Xtensa as a target, but a development version can be retrieved from the [https://github.com/foss-xtensa/crosstool-NG GIT] repository. The process of patching the toolchain and other architecture specific software is fully automated using the [[Toolchain Overlay File]]. More information for building a toolchain for Xtensa using crosstool-NG can be found [[crosstool-NG|here]].&lt;br /&gt;
&lt;br /&gt;
== [http://www.buildroot.org BuildRoot] &amp;lt;small&amp;gt;([[Buildroot|build instructions for Xtensa]])&amp;lt;/small&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Buildroot is a set of Makefiles and patches that makes it easy to generate a cross-compilation toolchain and root file system for your target Linux system. The Xtensa architecture is fully supported in the official tree, including support for specific processor configuration using the [[Toolchain Overlay File]]. For build instructions, see [[Buildroot]].&lt;br /&gt;
&lt;br /&gt;
== [http://www.openadk.org OpenADK] ==&lt;br /&gt;
&lt;br /&gt;
OpenADK is a set of Makefiles and patches that makes it easy to generate a cross-compilation toolchain and root file system for your target Linux system. The Xtensa architecture is fully supported, including support for specific processor configuration using the [[Toolchain Overlay File]]. At the moment only Qemu emulation (dc232b,dc233c) targets are available. New configuration can be simply added.&lt;/div&gt;</summary>
		<author><name>Wbx</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Toolchain_and_Embedded_Distributions&amp;diff=723</id>
		<title>Toolchain and Embedded Distributions</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Toolchain_and_Embedded_Distributions&amp;diff=723"/>
		<updated>2014-08-14T15:47:07Z</updated>

		<summary type="html">&lt;p&gt;Wbx: fix link to git repository&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[Toolchain Overlay File]] ==&lt;br /&gt;
&lt;br /&gt;
Because Xtensa is a configurable and extensible processor architecture that allows to define additional registers and instructions, the toolchain is the main software component that usually needs to be adapted for a specific Xtensa processor configuration. Tensilica provides a small set of configuration files in form of an &#039;&#039;overlay&#039;&#039; that replace the versions in the toolchain sources. The [[Toolchain Overlay File]] is a version of that &#039;&#039;overlay&#039;&#039; provided by Tensilica with a specific format required for crosstool-NG and buildroot. A script to convert the &#039;&#039;overlay&#039;&#039; provided by Tensilica can be found under [[Toolchain Overlay File]]&lt;br /&gt;
&lt;br /&gt;
== Start from scratch with FSF/OSS sources ==&lt;br /&gt;
&lt;br /&gt;
Creating a toolchain and bootable root file system starting from sources is certainly the most challenging approach. It usually requires additional patches and sometimes matching versions of sources. While support for Xtensa is integrated in most toolchain tools, they must be patches for a specific Xtensa processor configuration. The &#039;&#039;overlay&#039;&#039; metioned above includes a necessary set of configuration files together with information explaining the process to patch the toolchain sources.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; cross compilers running on 64bit hosts are known to produce broken code. For some more details see the [http://lists.linux-xtensa.org/pipermail/linux-xtensa/Week-of-Mon-20130715/001140.html explanation] of Chris Zankel.&lt;br /&gt;
&lt;br /&gt;
== [http://crosstool-ng.org/ crosstool-NG] &amp;lt;small&amp;gt;([[crosstool-NG|build instructions for Xtensa]])&amp;lt;/small&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
crosstool-NG (http://crosstool-ng.org/) provides a system to build a complete toolchain. It supports various C-libraries (Multilib, uClibc, glibc, and eglibc), but can also be used to build a &#039;bare&#039; toolchain. The current version does not yet support Xtensa as a target, but a development version can be retrieved from the [https://github.com/foss-xtensa/crosstool-NG GIT] repository. The process of patching the toolchain and other architecture specific software is fully automated using the [[Toolchain Overlay File]]. More information for building a toolchain for Xtensa using crosstool-NG can be found [[crosstool-NG|here]].&lt;br /&gt;
&lt;br /&gt;
== [http://www.buildroot.uclibc.org BuildRoot] &amp;lt;small&amp;gt;([[Buildroot|build instructions for Xtensa]])&amp;lt;/small&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Buildroot is a set of Makefiles and patches that makes it easy to generate a cross-compilation toolchain and root file system for your target Linux system. The Xtensa architecture is fully supported in the official tree, including support for specific processor configuration using the [[Toolchain Overlay File]]. For build instructions, see [[Buildroot]].&lt;/div&gt;</summary>
		<author><name>Wbx</name></author>
	</entry>
</feed>