<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot/package/libunwind, branch 2017.08</title>
<subtitle>OpenPOWER buildroot sources</subtitle>
<id>https://git.raptorcs.com/git/buildroot/atom?h=2017.08</id>
<link rel='self' href='https://git.raptorcs.com/git/buildroot/atom?h=2017.08'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/'/>
<updated>2017-08-21T21:30:04+00:00</updated>
<entry>
<title>libunwind: needs dynamic library support</title>
<updated>2017-08-21T21:30:04+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2017-08-20T21:01:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=f4083db2eee229b689b5a8203ce2696d2b5e7212'/>
<id>urn:sha1:f4083db2eee229b689b5a8203ce2696d2b5e7212</id>
<content type='text'>
libunwind configure script explicitly links libunwind against
libgcc_s. libgcc_s is only guaranteed to be available for toolchains
that supports dynamic linking: pure static linking toolchains only
have libgcc.a, not libgcc_s.so.

Therefore, let's make libunwind unavailable on toolchains that lack
dynamic linking support. We could potentially support linking with
libgcc, but switching to libgcc_s was done upstream because libgcc was
lacking some symbols on ARM
(https://lists.nongnu.org/archive/html/libunwind-devel/2014-06/msg00024.html). Even
though recent gcc versions seem to provide such symbols in libgcc.a,
having libunwind available on static linking configurations is not a
useful enough use-case to do the necessary research to find when this
issue was fixed in gcc.

Since libunwind is not used as a mandatory dependency in any package,
adding this !BR2_STATIC_LIBS dependency is trivial and nicely avoids
the problematic situation.

This fixes two different autobuilder failures:

 - Gstreamer 1.x programs failing to link, because libunwind links
   against libgcc_s that isn't available (static linking
   configuration):

   http://autobuild.buildroot.net/results/9d4fbf7167e9afce0eef5c9e0cfd42c966ecba36/

 - Gmrender-resurrect, which fails to link, because GStreamer 1.x uses
   some libunwind functionality, but does not take into account the
   libunwind dependency in its .pc files (static linking
   configuration):

   http://autobuild.buildroot.net/results/0a3a2485c187a000482c178f1e9c64dd716a858f/

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>package/libunwind: fix build failure due to asm()</title>
<updated>2017-07-03T22:59:26+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@smile.fr</email>
</author>
<published>2017-07-03T12:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=0fe71511175a58a3dbee9385fec1c0e4372d8f98'/>
<id>urn:sha1:0fe71511175a58a3dbee9385fec1c0e4372d8f98</id>
<content type='text'>
The gcc documentation [1] suggest to use __asm__ instead of asm.

Fixes:
http://autobuild.buildroot.net/results/3ef/3efe156b6494e4392b6c31de447ee2c72acc1a53

[1] https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html#Alternate-Keywords

Signed-off-by: Romain Naour &lt;romain.naour@smile.fr&gt;
Cc: Bernd Kuhls &lt;bernd.kuhls@t-online.de&gt;
Tested-by: Bernd Kuhls &lt;bernd.kuhls@t-online.de&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>package/libunwind: bump version to 1.2.1</title>
<updated>2017-06-18T14:39:58+00:00</updated>
<author>
<name>Bernd Kuhls</name>
<email>bernd.kuhls@t-online.de</email>
</author>
<published>2017-06-17T14:38:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=dee0cf4181447d53938ee99bee0c143c7093149d'/>
<id>urn:sha1:dee0cf4181447d53938ee99bee0c143c7093149d</id>
<content type='text'>
Backported patch from master branch which implements --disable-tests
configure option, removed original patch 0001, added _CONF_OPTS.

Removed patch 0003, applied upstream:
https://github.com/libunwind/libunwind/commit/f1684379dfaf8018d5d4c1945e292a56d0fab245

Added upstream patch to fix musl build.

Tested using this defconfig

BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_LTRACE=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_WESTON=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_LIBJPEG=y
BR2_PACKAGE_LIBUNWIND=y

with test-pkg

                armv5-ctng-linux-gnueabi [ 1/49]: OK
              armv7-ctng-linux-gnueabihf [ 2/49]: OK
                        br-aarch64-glibc [ 3/49]: SKIPPED
                           br-arcle-hs38 [ 4/49]: SKIPPED
                            br-arm-basic [ 5/49]: SKIPPED
                  br-arm-cortex-a9-glibc [ 6/49]: OK
                   br-arm-cortex-a9-musl [ 7/49]: SKIPPED
                   br-arm-cortex-m4-full [ 8/49]: SKIPPED
                             br-arm-full [ 9/49]: OK
                    br-arm-full-nothread [10/49]: SKIPPED
                      br-arm-full-static [11/49]: SKIPPED
                            br-bfin-full [12/49]: SKIPPED
                   br-i386-pentium4-full [13/49]: SKIPPED
                br-i386-pentium-mmx-musl [14/49]: SKIPPED
                       br-m68k-5208-full [15/49]: SKIPPED
                      br-m68k-68040-full [16/49]: SKIPPED
                    br-microblazeel-full [17/49]: SKIPPED
                 br-mips32r6-el-hf-glibc [18/49]: OK
                      br-mips64-n64-full [19/49]: SKIPPED
                 br-mips64r6-el-hf-glibc [20/49]: SKIPPED
                      br-mipsel-o32-full [21/49]: OK
                          br-nios2-glibc [22/49]: SKIPPED
                      br-openrisc-uclibc [23/49]: SKIPPED
               br-powerpc-603e-basic-cpp [24/49]: SKIPPED
             br-powerpc64le-power8-glibc [25/49]: SKIPPED
               br-powerpc64-power7-glibc [26/49]: SKIPPED
                  br-powerpc-e500mc-full [27/49]: SKIPPED
                             br-sh4-full [28/49]: SKIPPED
                        br-sparc64-glibc [29/49]: SKIPPED
                         br-sparc-uclibc [30/49]: SKIPPED
                    br-x86-64-core2-full [31/49]: OK
                          br-x86-64-musl [32/49]: SKIPPED
                          br-xtensa-full [33/49]: SKIPPED
                     i686-ctng-linux-gnu [34/49]: OK
                          linaro-aarch64 [35/49]: SKIPPED
                              linaro-arm [36/49]: OK
             mips64el-ctng_n32-linux-gnu [37/49]: SKIPPED
             mips64el-ctng_n64-linux-gnu [38/49]: SKIPPED
        powerpc-ctng_e500v2-linux-gnuspe [39/49]: OK
                     sourcery-arm-armv4t [40/49]: OK
                            sourcery-arm [41/49]: OK
                     sourcery-arm-thumb2 [42/49]: OK
                         sourcery-mips64 [43/49]: SKIPPED
                           sourcery-mips [44/49]: OK
                          sourcery-nios2 [45/49]: SKIPPED
                             sourcery-sh [46/49]: SKIPPED
                         sourcery-x86-64 [47/49]: OK
                            sourcery-x86 [48/49]: OK
           x86_64-ctng_locales-linux-gnu [49/49]: OK

Signed-off-by: Bernd Kuhls &lt;bernd.kuhls@t-online.de&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>package/libunwind: disable for x86 with musl</title>
<updated>2017-05-04T21:23:17+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@gmail.com</email>
</author>
<published>2017-04-17T17:37:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=60aee0cc5afb85976ca3b346f82b2caadc3a1c21'/>
<id>urn:sha1:60aee0cc5afb85976ca3b346f82b2caadc3a1c21</id>
<content type='text'>
libunwind use sigreturn() and setcontext() while building for x86 [1]
but this function is not available with musl [2].

This throw a warning during libunwind build:
In file included from x86/Los-linux.c:4:0:
x86/Gos-linux.c: In function ‘_ULx86_local_resume’:
x86/Gos-linux.c:298:7: warning: implicit declaration of function ‘sigreturn’ [-Wimplicit-function-declaration]
      sigreturn (sc);
      ^
But any program trying to link against libunwind-generic.so or
libunwind.so fail to build:
[...]/usr/lib/libunwind-generic.so: undefined reference to `sigreturn'
[...]/usr/lib/libunwind-generic.so: undefined reference to `setcontext'
collect2: error: ld returned 1 exit status

Disable libunwind for x86 target when musl is used.

Reported upstream by Waldemar [3]

[1] http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob;f=src/x86/Gos-linux.c;h=17aebc2974af50eb0bf8292689b2ed22a4c97866;hb=HEAD#l299
[2] http://openwall.com/lists/musl/2016/02/04/3
[3] http://lists.nongnu.org/archive/html/libunwind-devel/2017-04/msg00030.html

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Cc: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Waldemar Brodkorb &lt;wbx@openadk.org&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>package/libunwind: simplify architecture dependencies</title>
<updated>2017-05-04T21:21:04+00:00</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@free.fr</email>
</author>
<published>2017-04-17T16:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=a84acbb4a7d7cf5feb43147839f04485e714b1a6'/>
<id>urn:sha1:a84acbb4a7d7cf5feb43147839f04485e714b1a6</id>
<content type='text'>
BR2_ARM_CPU_HAS_ARM already embeddeds the fact that this is an ARM chip,
so (BR2_arm || BR2_armeb) is forcibly true when BR2_ARM_CPU_HAS_ARM is.

In other words, BR2_ARM_CPU_HAS_ARM can't be true unless either BR2_arm
or BR2_armeb itslef is true.

Simplify the logic accordingly.

Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Romain Naour &lt;romain.naour@openwide.fr&gt;
Acked-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>package/libunwind: disable for x86 with uClibc toolchain</title>
<updated>2017-04-17T13:08:22+00:00</updated>
<author>
<name>Romain Naour</name>
<email>romain.naour@gmail.com</email>
</author>
<published>2017-04-16T19:49:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=c5b56b0a20b2be24878d8bae66fbe665e8fea698'/>
<id>urn:sha1:c5b56b0a20b2be24878d8bae66fbe665e8fea698</id>
<content type='text'>
libunwind use sigreturn() while building for x86 [1] but this function
is not available with uClibc-ng.

This throw a warning during libunwind build:
In file included from x86/Los-linux.c:4:0:
x86/Gos-linux.c: In function ‘_ULx86_local_resume’:
x86/Gos-linux.c:298:7: warning: implicit declaration of function ‘sigreturn’ [-Wimplicit-function-declaration]
       sigreturn (sc);
       ^

But any program trying to link against libunwind-generic.so fail to build:
[...]usr/lib/libunwind-generic.so: undefined reference to `sigreturn'
collect2: error: ld returned 1 exit status

Disable libunwind for x86 target when uClibc-ng is used.

Fixes:
http://autobuild.buildroot.net/results/54a/54afac8148cff5f3c17e83f80917fd9006948fe0//build-end.log

[1] http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob;f=src/x86/Gos-linux.c;h=17aebc2974af50eb0bf8292689b2ed22a4c97866;hb=HEAD#l299

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
Tested-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Acked-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>arch: remove support for sh64</title>
<updated>2016-09-08T20:15:15+00:00</updated>
<author>
<name>Gustavo Zacarias</name>
<email>gustavo@zacarias.com.ar</email>
</author>
<published>2016-09-08T18:38:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=4338a319b72570e433fd7484f8a95e1e0e978941'/>
<id>urn:sha1:4338a319b72570e433fd7484f8a95e1e0e978941</id>
<content type='text'>
It's been deprecated for quite some time now.

Signed-off-by: Gustavo Zacarias &lt;gustavo@zacarias.com.ar&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>libunwind: fix architecture dependencies</title>
<updated>2016-08-07T20:58:32+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-08-07T08:46:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=68d399fbddc5da909863971814856d7e00e7649a'/>
<id>urn:sha1:68d399fbddc5da909863971814856d7e00e7649a</id>
<content type='text'>
Due to a misplaced parenthesis, the libunwind dependency were
incorrect. Indeed, they were of the form:

 default y if LIBC_TYPE &amp;&amp; (arm dependency) || (list of other architectures)

Which meant that that the LIBC_TYPE dependency was not taken into
account for the "other architectures". This commit changes that to:

 default y if LIBC_TYPE &amp;&amp; ((arm dependency) || list of other architectures)

Without this fix, libunwind can be selected for example on
PowerPC/uClibc configurations, while only PowerPC/glibc should be
allowed. This fixes:

  http://autobuild.buildroot.net/results/96c53ff240dcd68fcc9e3d32c4026c9886edcbe7/

Similarly, it also fixes cases where SuperH/uClibc was allowed, while
only SuperH/glibc should be allowed. This fixes:

  http://autobuild.buildroot.net/results/95a6cca21aea9914ba8bb3f571760fc054c53ecd/

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>libunwind: needs ARM instruction support</title>
<updated>2016-07-23T20:58:44+00:00</updated>
<author>
<name>Gustavo Zacarias</name>
<email>gustavo@zacarias.com.ar</email>
</author>
<published>2016-07-23T15:24:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=3a10967c7f0d29d600befc2c14a5859726ea6aa0'/>
<id>urn:sha1:3a10967c7f0d29d600befc2c14a5859726ea6aa0</id>
<content type='text'>
Fixes:
http://autobuild.buildroot.net/results/4cf/4cf517cd81d3aa5da26848edaba5df0bfbab2c77/

Signed-off-by: Gustavo Zacarias &lt;gustavo@zacarias.com.ar&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>libunwind: fix C library dependency</title>
<updated>2016-02-01T18:32:42+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-01-27T21:25:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=1da65232ecd211cd3e55adfdc8b2fbf0cf27af90'/>
<id>urn:sha1:1da65232ecd211cd3e55adfdc8b2fbf0cf27af90</id>
<content type='text'>
The libunwind package currently dependency on glibc *or* uclibc
snapshot. However, we are going to remove the support for uclibc
snapshot, and uClibc-ng has equivalent functionality as uclibc
snapshot. Moreover, musl is also capable of building libunwind for
certain architectures.

Therefore, this commit reworks the architecture dependencies of
libunwind, to make it available on all architectures for which it is
supported, depending on the capabilities of the different C libraries,
and the implementation of libunwind on each architecture.

On some architectures, libunwind uses the C library *context()
functions, which are not provided by musl at all, and not provided by
uClibc on all architectures. But on some other architectures,
libunwind does not use the C library *context() functions, which
explains why it can be built with musl on such architectures.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
</feed>
