Go to file
Jörg Krause 9ecb1b858c package/libupnpp: add patch to fix build issue
Bumping libupnpp to version 0.15.0 introduced a build error for some
architectures:

```
./libupnpp/workqueue.h:308:29: error: field 'res' has incomplete type
         std::future<void *> res;
                             ^
./libupnpp/workqueue.h: In member function 'bool
WorkQueue<T>::start(int, void* (*)(void*), void*)':
./libupnpp/workqueue.h:81:25: error: invalid use of incomplete type
'class std::packaged_task<void*(void*)>'
             w.res = task.get_future();
```

The problem is that `std::future` is not available for all
architectures, e.g. it is missing for ARMv5 (soft-float). libstdc++
enables `std::future` only if `ATOMIC_INT_LOCK_FREE > 1`, which
according the the libstdc++ documentation means that operations on
atomic ints are guaranteed to be lock-free.

This check is not true for some target, e.g. the toolchain for the
ARMv5 target defines:

```
$ echo | /usr/bin/arm-linux-g++ -dM -E - | grep ATOMIC_INT_LOCK_FREE
#define __GCC_ATOMIC_INT_LOCK_FREE 1

```

We add a patch from upstream which detects if `std::future` is available
and opts-out the functionality for unsupported targets.

Fixes:
http://autobuild.buildroot.net/results/f8eb38ef79160e1f646dae0be19f27fae82a58bc
http://autobuild.buildroot.net/results/158e0ceeff009146b78a0d2bb278c76479bafc34
http://autobuild.buildroot.net/results/1760cf53c77e16bb2b5bc795bd0ce5eb65f258f2
http://autobuild.buildroot.net/results/5b73e52495aa1bbb2c704492237da784b9d74bc2
http://autobuild.buildroot.net/results/6d922a1bbace024fcf040beb49bbb119036865ef
http://autobuild.buildroot.net/results/bebb8983e7579ee4b4bcf18f037c7797ab86f8db
http://autobuild.buildroot.net/results/0f1a5832ced2a6ec2e18f9f14197446fda6af692
http://autobuild.buildroot.net/results/94a9cc349f23a47246b06619a019bcb917493415
http://autobuild.buildroot.net/results/19fba094098af5c1ce1e1371e5e88393c4a6ac9c
http://autobuild.buildroot.net/results/578935b5c04005d1f096059387d16911f953ec6f
http://autobuild.buildroot.net/results/2ad698f1665b7b886141672181cb76ec3c40a743

and more...

Note, that we enable autoreconf as the patch touches configure.ac.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-09-13 21:27:35 +02:00
arch
board configs/orangepipc: Use Linux 4.7.3 2016-09-13 17:33:02 +02:00
boot boot/uboot: bump to version 2016.09 2016-09-12 22:40:15 +02:00
configs configs/wandboard: Remove BR2_LINUX_KERNEL_CUSTOM_GIT 2016-09-13 17:34:11 +02:00
docs
fs
linux
package package/libupnpp: add patch to fix build issue 2016-09-13 21:27:35 +02:00
support
system
toolchain linux-headers: allow specifying 4.8 as kernel header version 2016-09-12 22:57:53 +02:00
.defconfig
.gitignore
CHANGES
Config.in
Config.in.legacy legacy/kernel-headers: adjust recommended target 2016-09-11 16:01:05 +02:00
COPYING
Makefile
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches