<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot.git/toolchain/external-toolchain, branch 2011.08_rc2</title>
<subtitle>Buildroot: Making Embedded Linux easy
</subtitle>
<id>https://git.hiegel.fr/cgit/buildroot.git/atom?h=2011.08_rc2</id>
<link rel='self' href='https://git.hiegel.fr/cgit/buildroot.git/atom?h=2011.08_rc2'/>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/'/>
<updated>2010-07-28T14:20:03Z</updated>
<entry>
<title>toolchain: rename external toolchain dir</title>
<updated>2010-07-28T14:20:03Z</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@anciens.enib.fr</email>
</author>
<published>2010-07-27T22:08:14Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=f78ea9fcf02f427695cdd3310bfd76e5c3919569'/>
<id>urn:sha1:f78ea9fcf02f427695cdd3310bfd76e5c3919569</id>
<content type='text'>
Rename the external toolchain directory.
When new backends are here, it will be easier to sort them out
if they are all prefixed the same way.

Signed-off-by: Yann E. MORIN &lt;yann.morin.1998@anciens.enib.fr&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>toolchain: move helper functions from external toolchain</title>
<updated>2010-07-28T14:19:56Z</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@anciens.enib.fr</email>
</author>
<published>2010-07-27T22:08:13Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=ed181aeedb4d478f789f81525bd8c93025ba7a29'/>
<id>urn:sha1:ed181aeedb4d478f789f81525bd8c93025ba7a29</id>
<content type='text'>
The helper functions used for external toolchains may also be useful
to alternate toolchain backends (currently, the external toolchain is
the sole user).

Signed-off-by: Yann E. MORIN &lt;yann.morin.1998@anciens.enib.fr&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>Create &lt;tuple&gt;/lib -&gt; &lt;sysroot&gt;/lib symlink before installing cross gcc</title>
<updated>2010-07-27T20:49:36Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-27T14:25:15Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=3c77bab2eeace3ee675bd745ca335fa3dd1630bb'/>
<id>urn:sha1:3c77bab2eeace3ee675bd745ca335fa3dd1630bb</id>
<content type='text'>
This commit solves bug #1051. The problem in this bug in that WebKit
compiles a sample C program, which uses WebKit. As WebKit is written
in C++, even though the program it built with CROSS-gcc, it must be
linked with libstdc++. However, CROSS-gcc can't find the libstdc++ has
it's hidden inside &lt;sysroot&gt;/&lt;tuple&gt;/lib.

Therefore, this commit creates a symbolic link &lt;sysroot&gt;/&lt;tuple&gt;/lib
-&gt; &lt;sysroot&gt;/lib before running the CROSS-gcc installation. While this
may look like a hack, this is the solution used by both Crosstool-NG
and OpenWRT.

Moreover, with this symbolic link in place, I think bug #1741 may also
be solved. The problem in this bug is that the linker tries to link
against /lib/libc.so.0. This is due to the fact that the linker finds
a libc.so script file in the original toolchain location and not
inside the copy of the toolchain sysroot in $(STAGING_DIR). As the
script file is found outside of the current toolchain sysroot, ld
considers the script has non-sysrooted, and therefore doesn't prefix
all paths found in the script file (such as /lib/libc.so.0) with the
sysroot path, leading to the failure.

So, in details, this commit :

 * Adds a BR2_ARCH_IS_64 invisible config knob that is used to know if
   the arch is a 64 bits architecture or not.

 * Creates the &lt;sysroot&gt;/&lt;tuple&gt;/lib -&gt; &lt;sysroot&gt;/lib symbolic link,
   and the &lt;sysroot&gt;/&lt;tuple&gt;/lib64 -&gt; &lt;sysroot&gt;/lib64 symbolic link if
   needed.

 * Fixes the external toolchain sysroot detection code so that the
   'sed' replacement is done *after* the readlink -f evaluation.

I have tested this by building ARM, x86 and x86_64 toolchains with
Buildroot, and then use these toolchains as external toolchains to
build a full X.org/Gtk/WebKit/Midori stack. I have also done a
complete ARM Buildroot internal toolchain build with the same full
X.org/Gtk/WebKit/Midori stack.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ext-toolchains: fix libnss_*.so installation with external glibc</title>
<updated>2010-07-08T21:06:53Z</updated>
<author>
<name>Luca Ceresoli</name>
<email>luca@lucaceresoli.net</email>
</author>
<published>2010-07-08T20:08:46Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=e766f13d1707ff77a2f6d0d22664a35bc275128a'/>
<id>urn:sha1:e766f13d1707ff77a2f6d0d22664a35bc275128a</id>
<content type='text'>
Commit 7192668 introduced a wrong spelling of BR2_TOOLCHAIN_EXTERNAL_GLIBC
that prevented libnss_files.so and libnss_dns.so from being installed.

Signed-off-by: Luca Ceresoli &lt;luca@lucaceresoli.net&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>external-toolchain: adjust tests on TARGET_CC and TARGET_CXX</title>
<updated>2010-07-07T06:18:42Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-05T22:03:35Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=08235f7144d08bc111b07d3523ac6439f6fd0b94'/>
<id>urn:sha1:08235f7144d08bc111b07d3523ac6439f6fd0b94</id>
<content type='text'>
Following the changes to TARGET_CC/TARGET_CXX to include the --sysroot
option, these variables not only contain the path to the compiler, but
also the --sysroot option. For that reason, we cannot anymore just use
"test -x" to test for the compiler presence. Instead, we see if
$(TARGET_CC) -v and $(TARGET_CXX) -v return a zero status.

Moreover, --sysroot now needs to be filtered out of $(TARGET_CC) and
not $(TARGET_CFLAGS) when asking the toolchain for its original
sysroot and arch sysroot.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>external-toolchain: hardcode the destination directory for a library</title>
<updated>2010-07-06T06:01:00Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-05T16:59:03Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=ecb7642cce36bc68d93f0eee677adc7da538228d'/>
<id>urn:sha1:ecb7642cce36bc68d93f0eee677adc7da538228d</id>
<content type='text'>
Until now, the function copy_toolchain_lib_root was copying a given
library to the target filesystem by assuming that it should be at the
same place it was in the toolchain sysroot.

However, with Buildroot hiding libstdc++ in
/usr/&lt;target-name&gt;/lib(64), this isn't correct, and it is probably
safer not to rely on the toolchain organization anyway.

Therefore :

 * Instead of having a single EXTERNAL_LIBS variable, we now have
   LIB_EXTERNAL_LIBS and USR_LIB_EXTERNAL_LIBS, which respectively
   list the libraries that should be copied to /lib and /usr/lib. As
   of today, only libstdc++ is part of the second list.

 * The copy_toolchain_lib_root takes another argument, which is the
   destination directory of the library, relative to $(TARGET_DIR)

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>external-toolchain: handle libstdc++/libgcc_s for BR toolchains</title>
<updated>2010-07-06T06:00:22Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-05T16:59:02Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=2bf32a3307b8d184396a02056b454ec98beeda4c'/>
<id>urn:sha1:2bf32a3307b8d184396a02056b454ec98beeda4c</id>
<content type='text'>
Most toolchains have their libraries either in /lib or /usr/lib
relative to their ARCH_SYSROOT_DIR. Buildroot toolchains, however,
have basic libraries in /lib, and libstdc++/libgcc_s in
/usr/&lt;target-name&gt;/lib(64).

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>external-toolchain: recognize uClibc 64 bits toolchains</title>
<updated>2010-07-06T05:59:39Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-05T16:59:00Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=4b17cef16b9b82e120ea9a03481e3978a2229ac1'/>
<id>urn:sha1:4b17cef16b9b82e120ea9a03481e3978a2229ac1</id>
<content type='text'>
With uClibc 64 bits toolchain, the dynamic loader is named
ld64-uClibc.so.0 and not ld-uClibc.so.0. So, this commit adjust the
uClibc detection code for external toolchains.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Reviewed-by: Yann E. MORIN &lt;yann.morin.1998@anciens.enib.fr&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>external-toolchain: mention MIPS and PowerPC CodeSourcery toolchains</title>
<updated>2010-07-06T05:59:19Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-05T16:58:59Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=dd5ca4beb5bc62962bcc7f665749122c6ec44cbd'/>
<id>urn:sha1:dd5ca4beb5bc62962bcc7f665749122c6ec44cbd</id>
<content type='text'>
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
<entry>
<title>external-toolchain: create lib64 symlinks if needed</title>
<updated>2010-07-06T05:58:46Z</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2010-07-05T16:58:58Z</published>
<link rel='alternate' type='text/html' href='https://git.hiegel.fr/cgit/buildroot.git/commit/?id=e774eb0c9d75d4d86c25cd45e5728e80e92b8ff0'/>
<id>urn:sha1:e774eb0c9d75d4d86c25cd45e5728e80e92b8ff0</id>
<content type='text'>
Create lib64 -&gt; lib and usr/lib64 -&gt; usr/lib symbolic links in the
target and staging directories. This is needed for some 64 bits
toolchains such as the Crosstool-NG toolchains, for which the path to
the dynamic loader and other libraries is /lib64, but the libraries
are stored in /lib.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Reviewed-by: Yann E. MORIN &lt;yann.morin.1998@anciens.enib.fr&gt;
Signed-off-by: Peter Korsgaard &lt;jacmet@sunsite.dk&gt;
</content>
</entry>
</feed>
