Compare commits

...

164 Commits

Author SHA1 Message Date
Peter Korsgaard
fcd720dfcf Update for 2014.08
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 13:20:56 +02:00
Jörg Krause
4f6e8e5992 package/libnl: add patch to fix build with the musl C library
Add a patch to the package libnl which removes an error when building
libnl against the musl C library.

Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 13:20:20 +02:00
Peter Korsgaard
c86439678b mtdev2tuio: fix static linking
Liblo uses log(3), so we need to link with -lm when linking statically.

Fixes http://autobuild.buildroot.net/results/bec/becda4756c577ec158536408aba59797fbed938a/

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 10:54:18 +02:00
Peter Korsgaard
f8993ebb34 cppcms: needs wchar support even without icu
Fixes http://autobuild.buildroot.net/results/6f8/6f8e8b68235f6cf0dfef13e3ed11f97a3ab50a06/

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 10:37:39 +02:00
Samuel Martin
be8b062f80 package/taglib: fix static link
- disable shared object build when BR2_PREFER_STATIC_LIB is set
- patch the CMake code for handling static/shared object build using
  standard CMake flags, instead of the custom ones.

Fixes:
  http://autobuild.buildroot.net/results/a9c/a9cfe66c57bffc5a4560b2e4dcb41994da59e294/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 00:09:57 +02:00
Samuel Martin
ec3417676e package/polarssl: fix static link
- disable shared object build when BR2_PREFER_STATIC_LIB is set
- patch the CMake code for handling static/shared object build using
  standard CMake flags, instead of the ucstom ones.

Fixes:
  http://autobuild.buildroot.net/results/754/754947d2a77a4dbe91057d8ce64fc4996e716ece/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 23:44:58 +02:00
Samuel Martin
d77b0a7d88 package/musepack: fix static link
- disable shared object build when BR2_PREFER_STATIC_LIB is set
- patch the CMake code for handling static/shared object build using
  standard CMake flags, instead of the custom ones.

Fixes:
  http://autobuild.buildroot.org/results/e5e/e5eef14d5ed76db824c47a7e679e68397a023526/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 23:27:33 +02:00
Samuel Martin
cd769f6104 package/musepack: add sequence number in patch names
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 23:27:29 +02:00
Samuel Martin
8d7993654d package/libplist: fix static link
- libplist depends on libm and optionally on zlib and libiconv (via
  libxml2), so add a patch fixing the build-system that way
- disable shared object build when BR2_PREFER_STATIC_LIB is set

Fixes:
  http://autobuild.buildroot.net/results/9a3/9a364e3d91634a2da2bc481da1dee0ad0e870941/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 22:49:31 +02:00
Samuel Martin
022a48280a package/yajl: fix static link
- disable shared object build when BR2_PREFER_STATIC_LIB is set

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 22:26:31 +02:00
Samuel Martin
4a0dfea9c2 package/yajl: add sequence number in patch names
Also remove the package version from the patch names.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 22:26:18 +02:00
Samuel Martin
3d475ee0ba package/cmake: add host-pkgconf as dependency
Since some CMake modules (even upstream ones) use pgk_check_modules
primitives to find {C,LD}FLAGS, add it to the dependency list.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 22:25:37 +02:00
Thomas De Schampheleire
44a5c46213 manual/user guide/customization: rework section on rootfs customization
This patch reworks the section on root filesystem customization as follows:
- use labeled list instead of bulleted list to clarify the different methods
- move rootfs overlay and post-build scripts to the top and label them as
  recommended.
- split post-image to a separate section, as it is not related to the target
  filesystem customization
- line up post-build and post-image explanations, for example regarding
  working directory of the script
- general expansion of some of the explanation
- general rewording

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 22:22:43 +02:00
Peter Korsgaard
24534eb40a systemd: fix endian detection for powerpc
Fixes http://autobuild.buildroot.net/results/d53/d5305af6e47da7a577e391c96328ca952c149cd1/

Apply two patches from upstream git to fix powerpc endian detection. These patches
are already part of systemd v216, so they should be dropped when the package
is bumped.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 21:36:52 +02:00
Peter Korsgaard
f24945a212 php-*: get tarball from sources.buildroot.net
pecl.php.net seems to have a database issue and returns a html page instead
of the tarball.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 21:13:47 +02:00
Peter Korsgaard
6708db52c7 php-gnupg: get tarball from sources.buildroot.net
pecl.php.net seems to have a database issue and returns a html page instead
of the tarball.

Fixes http://autobuild.buildroot.net/results/3b6/3b6c53ecbd8d25307ed77b29bffa62f5395f1981/

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 21:06:22 +02:00
Peter Korsgaard
752b94c7dc php-geoip: get tarball from sources.buildroot.net
pecl.php.net seems to have a database issue and returns a html page instead
of the tarball.

Fixes http://autobuild.buildroot.net/results/c56/c56b3bf6c141b2b9b9062816bec559b2529534a1/

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 21:02:35 +02:00
Romain Naour
5292762206 package/xscreensaver: fix linking with intl
xscreensaver doesn't build with (e)glibc toolchain when gettext package is
selected.

With (e)glibc libintl is provided by the libc whereas with uClibc it's provided
by gettext.

If "LIBS=-lintl" is removed from XSCREENSAVER_CONF_ENV, then the -lintl is
missing during xscreensaver build if the toolchain needs gettext.

xscreensaver.o: In function `main':
undefined reference to `libintl_bindtextdomain'
undefined reference to `libintl_textdomain'

Backport a patch applied in 5.28 that fix linking issue with intl and remove
"LIBS=-lintl" from XSCREENSAVER_CONF_ENV.

Note:
gettext package is always selected with xscreensaver when BR2_NEEDS_GETTEXT is
set due to dependencies on libgtk2 and libglib2.

Fixes:
http://autobuild.buildroot.net/results/39b/39b6ad07ad59d87afeca6e427c69f580bed35700/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 00:07:32 +02:00
Yann E. MORIN
172e62be98 package/mesa3d: fix comment about i965 DRI driver
The help entry for the i965 DRI driver states that it supports alll
Intel GPUs. That's not true, as at least the i915 series is not handled
by this driver, but by a separate one.

Fix the help text accordingly; remove the useless second part of the
help text (which does not mean much for Buildroot.)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-31 00:03:16 +02:00
Vicente Olivert Riera
0a9a32d692 libgpgme: Take into account that gnupg and gnupg2 are mutual exclusive
Avoid that libgpgme can select the gnupg package although gnupg2 has
been already selected. Both packages are mutual exclusive and shouldn't
be selected at the same time.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 23:57:08 +02:00
Samuel Martin
1ddffb0e1a package/libwebsockets: fix static link
- disable shared object build when BR2_PREFER_STATIC_LIB is set

Fixes:
  http://autobuild.buildroot.net/results/0a9/0a9f0c3c101550e73f7100f2b88a88c1f2bbad95/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 23:34:50 +02:00
Samuel Martin
9418a8387c package/libiqrf: fix static link
- libiqrf depends on pthread, so add a patch fixing the build-system that way
- disable shared object build when BR2_PREFER_STATIC_LIB is set

Fixes:
  http://autobuild.buildroot.net/results/210/2108f37e4a41af0b527c78e646e82f1cafa0353d/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 23:34:41 +02:00
Jörg Krause
14193ee874 package/libdaemon: add patch to fix build with the musl C library
Adds a patch to the package libdaemon which removes an error when building
libdaemon against the musl C library.

Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 23:30:49 +02:00
Thomas Petazzoni
a2d7725e4d btrfs-progs: bump to version 3.16, fix static linking
The original aim of this patch was to fix static linking of
btrfs-progs. In order to implement this in the form of patches that
can potentially be upstreamed, this patch first bumps the btrfs-progs
package to the latest upstream stable version. It then:

 - Reworks the existing documentation disabling patch in a form that
   can potentially be upstreamed.

 - Adds a patch to support static building of the btrfs-progs
   binaries.

Both patches have been submitted upstream, see
http://article.gmane.org/gmane.comp.file-systems.btrfs/38145.

Fixes:

  http://autobuild.buildroot.org/results/ddc/ddcc70143ce2c2882894184e4ce195a11407e027/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 23:20:09 +02:00
Thomas De Schampheleire
4d36f10426 manual/user guide/customization: rework section on BR2_EXTERNAL
This patch reworks the section on BR2_EXTERNAL as follows:
- move note about upstreaming to the chapter introduction
- streamline the section with the previously added section 'Recommended
  directory structure', avoiding duplication.
- use $(BR2_EXTERNAL) rather than BR2_EXTERNAL when referring to file paths.
- some general rewording

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 09:18:56 +02:00
Thomas De Schampheleire
9c09fc6017 manual/user guide/customization: add section with recommended dir structure
Although the user is free to choose where to put project-specific files, the
presentation 'Using Buildroot for real projects' [1] first described a
certain recommendation.
This patch briefly describes this recommendation in the form of a directory
structure overview, the details will be added in subsequent patches.

Since the section on BR2_EXTERNAL is logically connected to the directory
structure, this section is moved right after it.

[1] http://elinux.org/images/2/2a/Using-buildroot-real-project.pdf

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 09:18:45 +02:00
Thomas De Schampheleire
a194faa44d manual/user guide/customization: expand introduction text
This patch expands the introduction text of chapter 'Project-specific
customization' by listing the type of customizations that can be performed
by a project.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 09:18:27 +02:00
Jörg Krause
f4905d7a3e package/upmpdcli: disable for Blackfin GNU Toolchain
Those toolchains use gcc <= 4.3, which do not support required C++11 features.

Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-30 09:16:47 +02:00
Thomas Petazzoni
c9ad5ddfb1 lftp: add missing host-pkgconf dependency
lftp configure.ac uses PKG_CHECK_MODULES, so it must have host-pkgconf
in its dependency, otherwise the autoreconf step fails due to the lack
of pkg.m4.

Fixes:

  http://autobuild.buildroot.org/results/b16/b16d964f275d4d8703665236b969cc19f7ef20be/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-29 10:00:43 +02:00
Thomas Petazzoni
c1ef53ed7e exim: requires thread support
Fixes:

  http://autobuild.buildroot.net/results/98a1acb58665e6cd2df354fc63afef1d4606c6e0/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-29 09:59:32 +02:00
Thomas Petazzoni
53bf889cdc ruby: should not use dl_iterate_phdr() on Blackfin
The dl_iterate_phdr() C library function on Blackfin returns a
non-conventional structure format compared to other architectures,
which makes Ruby unable to use it. Since it's just an optional feature
of Ruby apparently used to generate more fancy backtraces, this commit
simply disables the usage of dl_iterate_phdr() on this architecture.

Fixes:

  http://autobuild.buildroot.org/results/1b0/1b0e2f5f95889eb26846927da45d128247d0ed89/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-29 09:16:00 +02:00
Thomas Petazzoni
2b77369882 ruby: requires shared library
No matter what you do, the Ruby build system wants to use shared
libraries for the encoding modules. Therefore, this commit disallows
the selection of Ruby in BR2_PREFER_STATIC_LIB situations.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-29 09:15:42 +02:00
Peter Korsgaard
134f51bf0d libroxml: fix pthread linking issue
Fixes http://autobuild.buildroot.net/results/d18/d188bcf5c374273ffe09589f7db5a40e4c5d7bc9/

Thread handling can get disabled with --disable-xml-thread-safe, but that's
a change for next.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-29 08:59:01 +02:00
Bernd Kuhls
779cb8be9e xapp_luit: needs MMU
Fixes
http://autobuild.buildroot.net/results/13a/13a97461e3b6098e59cfcd829e6bcafa51e50bb4/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-27 22:19:59 +02:00
Thomas Petazzoni
11323613a8 uboot-tools: add patch to fix (no)stripping on non-ELF platforms
On Blackfin FLAT, stripping does not exist, but recent U-Boot versions
nonetheless try to strip and fail if they cannot do so. This commit
adds a U-Boot patch (submitted upstream) that solves this issue.

Fixes:

  http://autobuild.buildroot.org/results/153/1530f8247d1652da5779994f298141b1572ce74f/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-27 21:32:39 +02:00
Thomas Petazzoni
f9a11a8fed xapp_xfs: needs MMU
Fixes:

  http://autobuild.buildroot.net/results/7a89f79499e167cc98449a045604d25d4fc88484/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-27 21:31:51 +02:00
Thomas Petazzoni
837ff3b752 webkit: disable on SuperH
Webkit has been failing on SuperH since a long time, with nobody
caring to fix the problem. Since anyway our Webkit version is old and
in the process of being updated, our best option for 2014.08 is to
simply disallow Webkit on SuperH.

Fixes:

  http://autobuild.buildroot.org/results/3a0/3a0c48f65c06f7f19e608d54307c0788a0130589/
  http://autobuild.buildroot.org/?reason=webkit-1.11.5&arch=sh4a

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-27 21:31:47 +02:00
Thomas Petazzoni
0f46e48c9c perl-gd: mark as broken
perl-gd doesn't build on gcc10 due to the host Perl being a bit
old. This shows a defiency in the perl package infrastructure, which
is being worked on. However, since it won't be solved before 2014.08,
our only solution for now is to mark perl-gd as broken, as well as its
reverse dependency perl-gdgraph.

Avoids:

  http://autobuild.buildroot.org/results/228/228b43e67e683cecfa3851a8a030d06e9fdc6dac/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-27 21:31:02 +02:00
Jörg Krause
5e6b7159d7 package/mpd: opus plugin needs libogg as well
Fixes http://autobuild.buildroot.net/results/492/4924194292a428a295ded2f7aa0b9a3f81ed1b4a/

The opus decoder plugin depends on libopus and libogg.

[Peter: reworded commit message]
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-27 16:49:51 +02:00
Gustavo Zacarias
5de840cc6a libev: don't install event.h
It's a 'compatibility layer' with libevent which we:
1) Don't need
2) Possibly outdated with respect to libevent2
3) Causes build failures

Fixes:
http://autobuild.buildroot.net/results/451/4510fe02ef3497803ed27bf339dca07b3b073c10/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-26 23:49:18 +02:00
Peter Korsgaard
fdff715089 Update for 2014.08-rc3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-26 10:26:38 +02:00
Yann E. MORIN
1939011ce6 package/infra: fix downloading versions with a slash
Since cset 54456cc (infra: consistently use double dollar signs...), it
is no longer possible to download versions with a slash in it, because
the _DL_VERSION variable is second-expanded, but the _VERSION variable
is immediately-expanded to have '/' substitued with '_'.

So, _DL_VERSION is only expanded at the time it is evaluated, and by
that time, we've lost the slashes in _VERSION.

Make the _DL_VERSION variables immediately-evaluated.

Fixes:
    https://bugs.busybox.net/show_bug.cgi?id=7328

Reported-by:  Vincent Stehlé <vincent.stehle@freescale.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc:  Vincent Stehlé <vincent.stehle@freescale.com>
Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-25 23:08:17 +02:00
Romain Naour
e05c6a791d package/libinput: fix build with libevdev
libevdev and libinput use the same function name (log_msg).
An easy fix is to rename one of the two functions.

Fixes:
http://autobuild.buildroot.net/results/b1e/b1ea94f09d6f7459e3d7794c4a62bbdbb53d5da6/build-end.log

[Thomas: slightly reword the patch description.]

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-25 20:12:04 +02:00
Romain Naour
16c1af8d9d package/libevas-generic-loaders: needs zlib
Fixes:
http://autobuild.buildroot.net/results/5d4/5d41cec63a15dc5f31460c8cecd6054119ddb1fc/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-25 20:07:50 +02:00
Romain Naour
47128a9b82 package/procps-ng: fix linking with intl
procps-ng doesn't build with (e)glibc toolchain when gettext package is
selected.

With (e)glibc libintl is provided by the libc whereas with uClibc it's provided
by gettext.

Linking with intl is only needed if the toolchain needs gettext and locale is
set.

Fixes:
http://autobuild.buildroot.net/results/3e8/3e8464e0b00ce22fa02a6337159fca250d86425c/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-25 19:55:20 +02:00
Gustavo Zacarias
374adc17a0 php: security bump to version 5.5.16
Fixes:
CVE-2014-3538 - Extensive backtracking in rule regular expression
CVE-2014-3587 - Segfault in cdf.c
CVE-2014-2497 - php-gd 'c_color' NULL pointer dereference
CVE-2014-5120 - Null byte injection possible with imagexxx functions
CVE-2014-3597 - segfault in dns_get_record

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-25 19:50:30 +02:00
Thomas De Schampheleire
f21256b86a manual: file organization: rename files to match new section title
After the renaming of some sections, rename the corresponding files for
clarity.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:39:33 +02:00
Thomas De Schampheleire
a14ce4d57c manual: file organization: avoid unnecessary indirection
Some source files of the manual merely contain inclusion of other files.
Especially at top-level this is unnecessary, and one could just as well add
these includes in manual.txt.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:39:33 +02:00
Thomas De Schampheleire
5a980678f6 manual/user guide: rework 'Configuration of other components' chapter
This patch reworks the chapter 'Configuration of other components' as
follows:
- remove separate customize-xxx-config.txt files in favor of one shared file
  configure-other-componenents.txt
- use labeled list instead of separate sections, as the information in each
  section is limited.
- simplify instructions for busybox/uclibc thanks to the kconfig-package
  infrastructure
- rewrite instructions for Linux
- add instructions for Barebox

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:39:33 +02:00
Thomas De Schampheleire
47c1c50134 manual/user guide: move tip on configuration searches
This patch moves the tip on searching in the configuration editors into the
section 'Buildroot configuration', which is more logical.

The wording of that section is slightly adapted to fit this new part.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:39:32 +02:00
Thomas De Schampheleire
77007ad950 manual/user guide: high-level restructuring
This patch performs some additional restructuring of the manual,
specifically in the User Guide. In detail:

- Rename 'Daily use' to 'General Buildroot usage'
- Move chapters 'make tips', 'Eclipse integration', and 'Advanced usage' as
  sections under the 'General Buildroot usage' chapter.
- Rename 'Details on Buildroot configuration' into 'Buildroot configuration'
- Rework the 'Customization' section as follows:
  - Move the short section on debugging the external toolchain wrapper into
    the rest of the explanation on external toolchains.
  - Remove the now redundant section on toolchains, as this is already
    explained in much more detail in the 'Buildroot configuration' chapter.
  - Move the sections on busybox/uclibc/kernel configuration from chapter
    'Customization' into a separate chapter 'Configuration of other
    components'.
  - Rename the remaining part of the original 'Customization' chapter into
    'Project-specific customization' and fold it together with the next
    chapter 'Storing the configuration'
- Remove the chapter 'Going further in Buildroot innards' thanks to:
  - Moving the chapter 'How Buildroot works' to the Developer guide.
  - Moving the 'Advanced Buildroot usage' section to the 'General Buildroot
    usage' chapter.
- Remove the chapter 'Hacking Buildroot' by:
  - Adding a reference to adding packages to the 'Project-specific
    customizations' chapter
  - Leaving out the explicit reference to creating board support, as this is
    part of the previous chapter already, so an extra reference is
    redundant.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:39:32 +02:00
Thomas De Schampheleire
3afdf89f69 manual/getting started: minor improvements to 'Using Buildroot' section
This patch renames the section 'Using Buildroot' into 'Buildroot quick
start' as real details about Buildroot usage will be in the User Guide
rather than in 'Getting Started'.

Additionally, add a cross-reference to the section about configuring
Buildroot.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:39:32 +02:00
Romain Naour
1d57260757 package/ltris: fix linking with intl
ltris doen't build with (e)glibc toolchain since commit 454a41016f
when gettext package is selected.

With (e)glibc libintl is provided by the libc whereas with uClibc it's provided by gettext.

Linking with intl is only needed if the toolchain needs gettext and locale is set.

Fixes:
http://autobuild.buildroot.net/results/821/82128cb9f5cd6ae2595a8302462f1b5719dad9f7/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:36:01 +02:00
Romain Naour
56ed21e726 package/lbreakout2: fix linking with intl
lbreakout2 doen't build with (e)glibc toolchain when gettext package is selected.

With (e)glibc libintl is provided by the libc whereas with uClibc it's provided by gettext.

Linking with intl is only needed if the toolchain needs gettext and locale is set.

Fixes:
http://autobuild.buildroot.net/results/a77/a77dd3e18cc4a5e8300ab33eb532cc03d0156f7f/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:34:47 +02:00
Jonathan Ben Avraham
e1d7f2dc8f usb_modeswitch: more descriptive help text
Provides a fuller description of the USB_ModeSwitch functionality for
the benefit of the otherwise clueless.

[Thomas: minor formatting and wording fixes.]

Signed-off-by: Jonathan Ben-Avraham <yba@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:29:02 +02:00
Romain Naour
b840bc6345 package/xmlstarlet: fix static linking
The static linking with libxml2 and lib(e)xslt (--enable-static-libs)
need to be enabled when BR2_PREFER_STATIC_LIB is set.

Fixes:
http://autobuild.buildroot.net/results/0fd/0fd4a65ab98a4cf3fe893c29628608a71e96ecbc/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:25:50 +02:00
Danomi Manchego
5400717833 tvheadend: fix undefined variable in error print
The variable "$SCRIPTNAME" is undefined; replace with "$0".

Also, fix "Stopping" spelling.

Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:23:02 +02:00
Danomi Manchego
1b86a60d7a ntp: fix undefined variable in error print
The variable "$SCRIPTNAME" is undefined; replace with "$0".

Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:22:47 +02:00
Alexey Brodkin
520e74f2b5 gstreamer{, 1}: fix unaligned access detection for arc
Fixes the same issue as reported for microblaze here
http://autobuild.buildroot.net/results/f49/f4914bb3999c8a7a0c0a2afdac5de40fb9058372/

Similar to the existing handling for avr32, microblaze and xtensa.
Also add it for gstreamer1 for good measure as it was missing there as well.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:21:46 +02:00
Benoît Thébaudeau
9579e6aac3 imagemagick: Disable OpenMP
By default (i.e. without adding libgomp.so* to
BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS), if an external toolchain with libgomp
support is used, then libgomp is installed to staging/ , but not to target/ .
Consequently, with such a toolchain, imagemagick's configure detected libgomp as
supported and enabled its usage for the build stage, but then it failed to run
on the target because libgomp was missing. This is the bug #7322.

Disable OpenMP for imagemagick as a temporary workaround, until a better long
term solution is agreed on and implemented.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-21 15:19:47 +02:00
Romain Naour
f67e7ba06f package/gutenprint: replaces -static with -static-libtool-libs
gutenprint rely on the original behaviour of -static, but since commit
in buildroot "support/libtool: make -static behave like -all-static" [1],
the build of genppd is broken.

genppd need to be build statically otherwise the following warning appears:
***WARNING: Use of --disable-static-genppd or --disable-static
            when building CUPS is very dangerous.  The build may
            fail when building the PPD files, or may *SILENTLY*
            build incorrect PPD files or cause other problems.
            Please review the README and release notes carefully!

[1] http://git.buildroot.net/buildroot/commit/?id=97703978ac870ce2b14ad144f8e082de82aa2c64

Fixes:
http://autobuild.buildroot.net/results/55f/55f78104d7a5d11baf5650ac12aaa1b23c2b7743/build-end.log
http://autobuild.buildroot.net/results/fc8/fc8cfe3f27ceaca70c7471c44305317c66cb0eea/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:04:58 +02:00
Yann E. MORIN
a690fea1ac arch: remove no-longer default on atomics option
Now that all architectures explicitly select this option when it makes
sense, there is no need to have a default value.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:03:36 +02:00
Yann E. MORIN
6a1f8b712d arch/xtensa: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:03:28 +02:00
Yann E. MORIN
4f07578a86 arch/x86: all x86 but i386 has atomics operations
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:03:16 +02:00
Yann E. MORIN
da86e94f80 arch/sparc: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:03:09 +02:00
Yann E. MORIN
5d22b6e06c arch/sh: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:03:02 +02:00
Yann E. MORIN
84e8a337d5 arch/powerpc: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:02:57 +02:00
Yann E. MORIN
700080c494 arch/nios2: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:02:51 +02:00
Yann E. MORIN
4e99ab9bd7 arch/mips: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:02:41 +02:00
Yann E. MORIN
85da209efb arch/microblaze: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:02:31 +02:00
Yann E. MORIN
0d79bc13ec arch/m68k: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:01:40 +02:00
Yann E. MORIN
5b98309f59 arch/bfin: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:01:31 +02:00
Yann E. MORIN
116f63f4d7 arch/avr32: always has atomic ops
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:01:22 +02:00
Yann E. MORIN
b8a8263858 arch/arm: always has atomic ops
armv6 and above all have one sort of atomic ops or another. For armv5
and below, they are emulated, either as a kernel trap, a kernel VDSO,
or compiler intrinsics.

Aarch64 is just armv8, so make it a single commit. ;-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:00:51 +02:00
Anton Kolesov
b63ede67ea msgpack: add dependency on atomic operations
This fixes:
http://autobuild.buildroot.net/results/44849a386cefb8899f4560296bfbbd8ea19ee910/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
[yann.morin.1998@free.fr: use the new symbol; remove comment strings]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:00:34 +02:00
Anton Kolesov
669ce8c75e libftdi: add dependency on atomic operations
This fixes:
http://autobuild.buildroot.net/results/6cb25ed954840109c9d0e582e922b0ba9d07e174/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
[yann.morin.1998@free.fr: use the new symbol; remove comment strings]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:00:17 +02:00
Anton Kolesov
8277bb18db pulseaudio: add dependency on atomic operations
This fixes:
http://autobuild.buildroot.net/results/d463f3bf730a600a07ed6cd33695bf45e9fd3540/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
[yann.morin.1998@free.fr: use the new symbol; remove comment strings]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 11:00:07 +02:00
Anton Kolesov
da2f182237 cairo: add dependency on atomic operations
This fixes:
http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
[yann.morin.1998@free.fr: use the new symbol; remove comment strings;
 fix weston's comment]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:58:21 +02:00
Anton Kolesov
a30b868de6 manual: document dependencies on atomic operations
Add atomic operations to the list of generic dependencies.

Since this is an architecture option, there is no comment string to be
added.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
[yann.morin.1998@free.fr: use the new arch-option; remove comment string]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:58:15 +02:00
Yann E. MORIN
6172ceb3cf toolchain: drop the now-unused old BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
It's now been replaced with BR2_ARCH_HAS_ATOMICS, annd all packages have
been changed to use that instead.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:57:55 +02:00
Yann E. MORIN
08a024b3ed package/thrift: use the new ARCH_HAS_ATOMICS as dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:57:27 +02:00
Yann E. MORIN
f346af2868 package/jack2: use the new ARCH_HAS_ATOMICS as dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:57:20 +02:00
Yann E. MORIN
a251d1b78a package/libtorrent: use the new ARCH_HAS_ATOMICS as dependency
And propagate to the reverse dependencies of libtorrent

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:56:59 +02:00
Yann E. MORIN
19237110da package/icu: use the new ARCH_HAS_ATOMICS as dependency
And propagate to the reverse dependencies of icu.
Also, fix beecrypt's comment: only the C++ support needs atomics.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:56:42 +02:00
Yann E. MORIN
1b5f0fc8df arch: add an option to specify if the arch has atomic ops
The fact that atomic operations are available is not really a
specificity of the toolchain, but rather of the architecture.

So, add a new option that architectures that have atomic operations
can select. This in turn selects the current toolchain atomic option,
until all packages have been converted, at which point the old
toolchain option can be removed.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:56:35 +02:00
Thomas Petazzoni
2289c34a19 docs/manual: update documentation about gettext handling
This commit updates the Buildroot manual regarding how gettext related
issues are handled, now that we have cases where the gettext package
should be selected even with glibc toolchains.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:36:31 +02:00
Thomas Petazzoni
effe0beb1d ecryptfs-utils: select gettext, needed for command line utilities
The ecryptfs-utils package requires the 'gettext' program, which is
provided by the gettext package, to get translated strings. This is
needed regardless of whether the toolchain uses glibc or uClibc.

This issue was reported by 'ausjke' on IRC.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:36:01 +02:00
Thomas Petazzoni
2bc3bca6d8 gettext: allow building when BR2_NEEDS_GETTEXT is not selected
Until now, we thought that gettext was only needed for the target for
uClibc toolchains, to provide the gettext functions that are normally
provided directly by glibc.

However, the gettext runtime actually does more than providing the
equivalent of those C library functions: it also provides certain
command line tools, like 'gettext' to get translated strings from the
shell. This tool is for example used by certain ecryptfs-utils scripts
to get translated strings. It is therefore necessary to be able to
build the gettext package even for glibc toolchains.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 10:35:56 +02:00
Peter Korsgaard
7dc7c7904b Update for 2014.08-rc2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 01:04:16 +02:00
Peter Korsgaard
ad4823f853 docs/news.html: add 2014.08-rc1 announcement link
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 00:53:30 +02:00
Bernd Kuhls
6605084b49 package/xbmc-pvr-addons: Bump version
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 00:31:47 +02:00
Bernd Kuhls
b543976380 package/xbmc: Bump version to 13.2
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18 00:31:38 +02:00
Joerg Krause
5ec68345fa mpd: Add missing config option for plugin MAD
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:25:54 +02:00
Joerg Krause
cd05b2798a mpd: Set enable/disable config option for all plugins
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:25:32 +02:00
Joerg Krause
263b7d23f6 mpd: Fix config option for plugin FLAC
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:25:03 +02:00
Joerg Krause
67dcfd23a9 mpd: Fix config option for plugin FAAD2
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:23:58 +02:00
Floris Bos
4e116bf369 postgresql: remove devfiles from target
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:16:34 +02:00
Thomas De Schampheleire
607bd1a1bd manual/getting started: rework 'Using Buildroot' section
This patch does some general rewording of the 'Using buildroot' section
of the manual.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
afdd5cebe2 manual/getting started: rework 'Getting Buildroot' section
This patch reworks the 'Getting Buildroot' section of the manual as follows:
- be more specific on the Buildroot release cycle
- refer to the download page of the website for details on snapshots and
  git, instead of duplicating the information.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
3dde85015d website/download: update daily snapshot section
This patch makes some minor changes to the download page of the website:
- don't capitalize Daily Snapshots as there is no reason to.
- remove extra link to daily snapshots, as this link is already available on
  the line below.
- add a link to the latest snapshot
- avoid 'Click here', especially if 'here' is not clickable

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
9c353541ff manual/getting started: rework 'System requirements' section
This patch reworks the requirements section of the manual as follows:
- some general rewording
- move configuration editor dependencies above the download tools, as this
  is the first thing people come in contact with.
- move sentence regarding -dev packages to configuration editor dependencies
  and restrict to 'libraries'.
- clarify the download tools part.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
713134fc92 manual/getting started: rework 'Community resources' section
This patch reworks the section 'Community resources' as follows:
- use a labeled list instead of subsections, as the content of each section
  is so small that it does not deserve a real section.
  Related to this, the anchors for each of these subsections are removed, as
  referencing such anchors that do not correspond to a section boundary are
  not displayed nicely.
- move the part about applying patches from patchwork to the Contributing
  section in the Developer Guide
- reword some parts of the text
- add link texts to some links, instead of showing the URL directly, to make
  the HTML / PDF display nicer.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
5712140af4 manual/getting started: rename and move 'Getting involved' section
The Getting Involved section is actually an overview of the ways to interact
with the Buildroot community, which is useful for developers _and_ users.
Therefore, this patch moves the section from the Developer Guide to the
Getting Started section, and renames it to 'Community Resources'.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
429489c632 manual: remove 'Events' section
The list of buildroot events is outdated, a sign that the manual is not the
best place to refer to timely things like events. The wiki page is better
suited for such information.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Thomas De Schampheleire
569db40574 manual: high-level restructuring
The structure of the buildroot manual is not always clear. There is a large
number of chapters, and some chapters seem to overlap. The distinction
between general usage and developer information is not always clear.

This patch restructures the manual into four large parts:
- getting started
- user guide
- developer guide
- appendix

Except for the names of these parts, the section names are not yet changed.
Content-wise there are no changes yet either. This will be handled in
subsequent patches.

In order to achieve the introduction of a new level 'parts' above
'chapters', the section indicators (=, ==, ===, ...) of several sections
have to be moved one level down. Additionally, the leveloffset indication to
asciidoc has to be removed. Finally, to maintain more or less the same level
of detail in the table of contents, the toc.section.depth attribute is
reduced as well. Note that for some sections, less detail is visible now.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:09:52 +02:00
Bernd Kuhls
7fa43f911b dependencies: Reject gcj in BR2_NEEDS_HOST_JAVA check
Xbmc uses the Groovy java package to generate API code, for details see
http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works

Groovy itself is broken when used with gcj:
http://jira.codehaus.org/browse/GROOVY-3701

Xbmc recommends to use another java package instead, like openjdk:
http://forum.xbmc.org/showthread.php?tid=199742

Until we come up with a host package to provide a java setup and
in order to make autobuilder happy let´s reject gcj when we check
for a java installation on the host.

Currently Xbmc is the only package using BR2_NEEDS_HOST_JAVA
so changing the behaviour of dependencies.sh has no side effects.

Fixes
http://autobuild.buildroot.net/results/213/213d7454a1dc68cfb8f4c8d9508f52ebf8e58e33/
http://autobuild.buildroot.net/results/639/639cda872cf36c122cbd6139dd76f6b51ac1864e/
http://autobuild.buildroot.net/results/c9e/c9eb12c95b2939c64590692a82af8d84bbd90956/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:01:10 +02:00
Yann E. MORIN
dce24bba0d package/nut: fix parallel install
Fixes:
    http://autobuild.buildroot.net/results/256/2567e13cd5bc702bc3a38a1d6fc8e34022cc7db5/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 21:00:19 +02:00
Romain Naour
702a461c4d package/oprofile: fix configure test with gcc 4.9.x
Backport the upstream patch that fix a configure test breaked with gcc 4.9.x.

This patch must be removed with the next version bump.

Fixes:
http://autobuild.buildroot.net/results/f80/f8083f038d0efb7b5becf7810b6fcaf440fb8294/build-end.log

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-17 20:58:05 +02:00
Peter Korsgaard
8c94df28c7 CHANGES: update with recent changes
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:44:53 +02:00
Thomas Petazzoni
6953d5ffeb gcc/4.9: fix C++ exceptions and pthread_exit()
Following the introduction of the support for the musl C library, the
support of C++ exceptions or features like pthread_exit() got broken
even with other libraries such as glibc. This was reported as bug #7028.

The problem was caused by the gcc patch needed to add support for
musl, which modified the libgcc/unwind-dw2-fde-dip.c logic to decide
whether USE_PT_GNU_EH_FRAME should be enabled or not. It completely
removed the existing logic, replacing it by a single logic based on
the definition of TARGET_DL_ITERATE_PHDR. However, this constant gets
defined by the configure script only for Solaris, or Linux Musl
platforms. For glibc/uClibc, the configure script does not define it,
and therefore USE_PT_GNU_EH_FRAME is not defined, causing issues with
exception handling.

This patch fixes that by restoring all the logic of
libgcc/unwind-dw2-fde-dip.c, and just adding the musl logic as one
more case.

It has been successfully runtime tested using the two code examples
provided in bug #7208, with uClibc, musl and glibc.

Cc: Krzysztof Wrzalik <kwrzalik@gmail.com>
Cc: David Bachelart <david.bachelart@bbright.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:20:40 +02:00
Thomas Petazzoni
543bc7c921 gcc/4.8: fix C++ exceptions and pthread_exit()
Following the introduction of the support for the musl C library, the
support of C++ exceptions or features like pthread_exit() got broken
even with other libraries such as glibc. This was reported as bug #7028.

The problem was caused by the gcc patch needed to add support for
musl, which modified the libgcc/unwind-dw2-fde-dip.c logic to decide
whether USE_PT_GNU_EH_FRAME should be enabled or not. It completely
removed the existing logic, replacing it by a single logic based on
the definition of TARGET_DL_ITERATE_PHDR. However, this constant gets
defined by the configure script only for Solaris, or Linux Musl
platforms. For glibc/uClibc, the configure script does not define it,
and therefore USE_PT_GNU_EH_FRAME is not defined, causing issues with
exception handling.

This patch fixes that by restoring all the logic of
libgcc/unwind-dw2-fde-dip.c, and just adding the musl logic as one
more case.

It has been successfully runtime tested using the two code examples
provided in bug #7208, with uClibc, musl and glibc.

Cc: Krzysztof Wrzalik <kwrzalik@gmail.com>
Cc: David Bachelart <david.bachelart@bbright.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:19:52 +02:00
Thomas Petazzoni
fea35ce673 gcc/4.7: fix C++ exceptions and pthread_exit()
Following the introduction of the support for the musl C library, the
support of C++ exceptions or features like pthread_exit() got broken
even with other libraries such as glibc. This was reported as bug #7028.

The problem was caused by the gcc patch needed to add support for
musl, which modified the libgcc/unwind-dw2-fde-dip.c logic to decide
whether USE_PT_GNU_EH_FRAME should be enabled or not. It completely
removed the existing logic, replacing it by a single logic based on
the definition of TARGET_DL_ITERATE_PHDR. However, this constant gets
defined by the configure script only for Solaris, or Linux Musl
platforms. For glibc/uClibc, the configure script does not define it,
and therefore USE_PT_GNU_EH_FRAME is not defined, causing issues with
exception handling.

This patch fixes that by restoring all the logic of
libgcc/unwind-dw2-fde-dip.c, and just adding the musl logic as one
more case.

It has been successfully runtime tested using the two code examples
provided in bug #7208, with uClibc, musl and glibc.

Cc: Krzysztof Wrzalik <kwrzalik@gmail.com>
Cc: David Bachelart <david.bachelart@bbright.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:18:29 +02:00
Thomas Petazzoni
4bb2a05e81 gcc/arc-4.8-R3: add patch to enable more C++ features with uClibc
This commit fixes bug #7250, by allowing more libstdc++ features to be
enabled with uClibc. libstdc++ wants an absolutely complete C99
support in the C library before enabling *any* feature that needs some
C99 functions. However, uClibc doesn't provide C99 complex numbers, so
libstdc++ disables a lot of C++ standard methods, even though they are
not related to C99 complex numbers.

A partial solution already existed in the patch
302-c99-snprintf.patch, but this commit replaces it by the more
complete 850-libstdcxx-uclibc-c99.patch, which is highly inspired by
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, except that it
doesn't rely on configure.ac checks, but simply on testing
defined(__UCLIBC__) like was done in 302-c99-snprintf.patch. This
allows to avoid having to autoreconf gcc, which is quite complicated
to achieve.

Reported-by: Richard <tarka.t.otter@gmail.com>
Cc: Richard <tarka.t.otter@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:17:18 +02:00
Thomas Petazzoni
452404b7c8 gcc/4.9: add patch to enable more C++ features with uClibc
This commit fixes bug #7250, by allowing more libstdc++ features to be
enabled with uClibc. libstdc++ wants an absolutely complete C99
support in the C library before enabling *any* feature that needs some
C99 functions. However, uClibc doesn't provide C99 complex numbers, so
libstdc++ disables a lot of C++ standard methods, even though they are
not related to C99 complex numbers.

A partial solution already existed in the patch
302-c99-snprintf.patch, but this commit replaces it by the more
complete 850-libstdcxx-uclibc-c99.patch, which is highly inspired by
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, except that it
doesn't rely on configure.ac checks, but simply on testing
defined(__UCLIBC__) like was done in 302-c99-snprintf.patch. This
allows to avoid having to autoreconf gcc, which is quite complicated
to achieve.

Reported-by: Richard <tarka.t.otter@gmail.com>
Cc: Richard <tarka.t.otter@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:17:08 +02:00
Thomas Petazzoni
f3d19b047a gcc/4.8: add patch to enable more C++ features with uClibc
This commit fixes bug #7250, by allowing more libstdc++ features to be
enabled with uClibc. libstdc++ wants an absolutely complete C99
support in the C library before enabling *any* feature that needs some
C99 functions. However, uClibc doesn't provide C99 complex numbers, so
libstdc++ disables a lot of C++ standard methods, even though they are
not related to C99 complex numbers.

A partial solution already existed in the patch
302-c99-snprintf.patch, but this commit replaces it by the more
complete 850-libstdcxx-uclibc-c99.patch, which is highly inspired by
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, except that it
doesn't rely on configure.ac checks, but simply on testing
defined(__UCLIBC__) like was done in 302-c99-snprintf.patch. This
allows to avoid having to autoreconf gcc, which is quite complicated
to achieve.

Reported-by: Richard <tarka.t.otter@gmail.com>
Cc: Richard <tarka.t.otter@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:16:27 +02:00
Thomas Petazzoni
48f182ece0 gcc/4.7: add patch to enable more C++ features with uClibc
This commit fixes bug #7250, by allowing more libstdc++ features to be
enabled with uClibc. libstdc++ wants an absolutely complete C99
support in the C library before enabling *any* feature that needs some
C99 functions. However, uClibc doesn't provide C99 complex numbers, so
libstdc++ disables a lot of C++ standard methods, even though they are
not related to C99 complex numbers.

A partial solution already existed in the patch
302-c99-snprintf.patch, but this commit replaces it by the more
complete 850-libstdcxx-uclibc-c99.patch, which is highly inspired by
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, except that it
doesn't rely on configure.ac checks, but simply on testing
defined(__UCLIBC__) like was done in 302-c99-snprintf.patch. This
allows to avoid having to autoreconf gcc, which is quite complicated
to achieve.

Reported-by: Richard <tarka.t.otter@gmail.com>
Cc: Richard <tarka.t.otter@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:15:09 +02:00
Thomas Petazzoni
be7ac54e4b configs/{atngw100, atstk100x}: fix build of AVR32 defconfigs
Since we marked the AVR32 architecture deprecated, it can no longer be
selected in a normal configuration. This has caused the AVR32
defconfigs to fail to build in our daily Jenkins tests. In order to
make them build again, they must use BR2_DEPRECATED=y. Of course, when
we remove AVR32 completely, we'll remove those defconfigs as well.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:13:34 +02:00
Thomas Petazzoni
06a603b8d5 libnftnl: add patch to avoid symbol conflict
When ELF binaries and shared libraries are used, the internal
functions of libnftnl such as xfree() are not visible to the outside
world (their visibility is 'hidden'). Therefore, the fact that other
programs (especially nftables) may have symbols with the same name
does not cause any problem.

However, when doing static linking on a non-ELF platform (such as
Blackfin, which uses the FLAT binary format), there is no way of
encoding this visibility. Therefore, the xfree() symbols of libnftnl
becomes visible to the outside world, causing a conflict with the
xfree() symbol defined by nftables.

To solve this, this patch renames the libnftnl xfree() function to
libnftnl_xfree().

This commit fixes a problem seen after building nftables statically on
Blackfin. This problem was seen after the previous patch fixing the
autobuilder failure:

  http://autobuild.buildroot.org/results/98b/98b707ffdeeb1cda94b7c1019ef29cf5fd7db8bf/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:10:40 +02:00
Thomas Petazzoni
34e3857d98 nftables: fix build in static scenarios
When linking against readline, it forgets to link against ncurses,
which is needed by readline. Fix this by passing LIBS="-lcurses" to
the configure script.

Fixes:

  http://autobuild.buildroot.org/results/98b/98b707ffdeeb1cda94b7c1019ef29cf5fd7db8bf/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-17 09:10:12 +02:00
Bernd Kuhls
d3ab60a1ee package/empty: Respect LDFLAGS, fix link order
Fixes
http://autobuild.buildroot.net/results/50f/50fedb54cf005d1177d85c5a34fd10a1c354ba5b/
http://autobuild.buildroot.net/results/9fc/9fce0825772e99de3c6808b729641147385413aa/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 16:46:04 +02:00
Gustavo Zacarias
1b624c3964 qmx6/wandboard_defconfig: switch to custom kernel headers version
Since 3.0.x was EOL and deprecated this would cause it to use newer
headers than the kernel and cause issues.
So switch to custom kernel headers version string to fix this.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 12:50:37 +02:00
Gustavo Zacarias
91050c8e65 linux-headers: mark EOL versions deprecated
Follow the upstream EOL cycle and mark 3.0, 3.11, 3.13 and 3.15
as deprecated for 2014.08.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 12:50:37 +02:00
Thomas De Schampheleire
bb00e14149 manual-text: hide image representations
Images specified in the asciidoc sources (currently only the logo) are
displayed as the file name in the text version of the manual. This causes an
odd line to appear:
    logo.png

Avoid this by setting the image representation macros to {empty} in
manual-text.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 09:29:59 +02:00
Thomas De Schampheleire
67274a9b6f manual-text: make sure URLs are displayed if a link text was provided
When the asciidoc source contain URLs of the form:
    http://example.com[An example website]
the text representation of the manual would only contain:
    An example website
without displaying the actual URL.

This patch adds an asciidoc configuration file that sets the inline macros
for several URL types so that the display becomes:
    An example website [http://example.com]
For URLs where no link text was provided, the display becomes:
    http://example.com
which is the same as before.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 09:29:59 +02:00
Thomas De Schampheleire
05fa99d03c gendoc infra: add support for asciidoc configuration files
This patch introduces support for asciidoc configuration files, specific for
each output format (html, text, pdf, ...). This is useful to make certain
tweaks in the document generation.

If a file docs/manual/asciidoc-<format>.conf is present, it is passed to
asciidoc as configuration file. If no file for the current format is
present, the options passed to asciidoc are empty.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 09:29:59 +02:00
Thomas De Schampheleire
dd935d6771 gendoc infra: use $(pkgname) instead of explicitly passing 'manual'
In the gendoc infrastructure, using an assignment of the form
    FOO = docs/$(1)/bar
inside GENDOC_INNER does not work as expected: the $(1) value is empty here
and the value of FOO becomes 'docs//bar'.

Parameters $(2), $(3), etc. do not have this problem. The specific thing
about $(1) is that it is a parameter to GENDOC itself (indicating the
document to create) and passed transparently to GENDOC_INNER.

This is different from the package infrastructures, where $(1) is set from
$(pkgname). In fact, the same strategy could be used by the gendoc
infrastructure as well, as $(pkgname) resolves to 'manual' for file
docs/manual/manual.mk. This has the advantage that the described problem
does not occur.

Note that this means that if we want to use the same GENDOC infrastructure
for another document, it will have to reside in a separate directory than
the manual.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 09:29:59 +02:00
Thomas De Schampheleire
3ed0eada71 Makefile: unconditionally include pkg-utils.mk
Currently, pkg-utils.mk (included via package/Makefile.in) is only included
when a configuration file already exists. This means that none of the
utilities it defines are available without .config.

In particular:
- the MESSAGE macro, causing pretty build output. Since some make targets
  can be run even without .config, like 'make manual', not having this
  pretty printing is odd.

- pkgname, pkgdir: in a subsequent patch, these functions will be used for
  the generation of the manual, and since this should work also without
  .config, we need these functions to be available.

This patch moves the include of pkg-utils.mk from package/Makefile.in to
Makefile, outside of the check for .config.

This is a quick fix. The full solution involves to minimize the amount of
Makefile code that is guarded by a check on .config. This approach will be
taken in the 2014.11 release cycle.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 09:29:59 +02:00
Francois Perrad
3cb705aa84 perl-net-ssleay: fix build
the new option OPTIMIZE needs the same replacement.

see http://autobuild.buildroot.net/results/278f9d121273a16cedc009c0b8df0a8659d8fb73/

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-16 09:27:44 +02:00
Bernd Kuhls
2ca9b88b37 package/iftop: fix static build
Use pcap-config to list optional libpcap dependencies that we need to list
when building statically.

Inspired by Baruch Siach
http://git.buildroot.net/buildroot/commit/package/dhcpdump/dhcpdump.mk?id=429f4415cd153c6809394a8b3245d4d15bba3ec3

Fixes
http://autobuild.buildroot.net/results/c7e/c7e3b2897a9cb9ab55dc7b1a2cd1961235d2d1a4/
http://autobuild.buildroot.net/results/60f/60f82bedae255f6b69c9a5ac22686c76c6276301/
http://autobuild.buildroot.net/results/1b7/1b771af04a95a78144141a5d555c97bbb5a7e13f/
http://autobuild.buildroot.net/results/1f4/1f45e2adcc80c4a209aa5895260985460933575c/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 00:50:51 +02:00
Bernd Kuhls
f68d9bcac4 package/ngrep: fix static build
Use pcap-config to list optional libpcap dependencies that we need to list
when building statically.

Inspired by Baruch Siach
http://git.buildroot.net/buildroot/commit/package/dhcpdump/dhcpdump.mk?id=429f4415cd153c6809394a8b3245d4d15bba3ec3

Fixes
http://autobuild.buildroot.net/results/3c5/3c584b850cabebcf93dfd61c59e28988165a41c4/
http://autobuild.buildroot.net/results/938/93842b54767cca51c68ad33ddc93ec58d70602c8/
http://autobuild.buildroot.net/results/0ae/0ae4adec7fe66f819c7b3dabf13648fb29247de6/
http://autobuild.buildroot.net/results/9c2/9c203bc6ca91da68c9e7335611c1fb56224380bc/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 00:32:53 +02:00
Bernd Kuhls
3d13ab8ecc xapp_rstart: Depends on MMU
Fixes
  CCLD   rstartd.real
auth.o: In function `_do_auth':
auth.c:(.text+0x6a): undefined reference to `_fork'
server.o: In function `_detach':
server.c:(.text+0x80a): undefined reference to `_fork'

To reproduce use this defconfig
http://autobuild.buildroot.net/results/8d5/8d5ad404fab7ec2a501972ba9c08b0109e420b80/defconfig

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 00:32:26 +02:00
Bernd Kuhls
7502da865b package/matchbox: Depends on MMU
Fixes matchbox-panel:
http://autobuild.buildroot.net/results/8d5/8d5ad404fab7ec2a501972ba9c08b0109e420b80/

and matchbox-desktop:
mbdesktop_win_plugin.o: In function `mbdesktop_win_plugin_load':
/home/br/br/output/build/matchbox-desktop-0.9.1/src/mbdesktop_win_plugin.c:22: undefined reference to `_fork'

and matchbox-wm:
matchbox-remote.o: In function `mbcommand':
/home/fli4l/br3/output/build/matchbox-wm-1.2/src/matchbox-remote.c:147: undefined reference to `_fork'

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 00:32:04 +02:00
Yann E. MORIN
a110e0c10e package/webkit: select cairo, since we select one of its options
When selecting an option of a package, that package must also be
selected, otherwise the package is not built.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 00:30:52 +02:00
Bernd Kuhls
00bd63a4ef package/infozip: Rename HOST_CC to HOSTCC
Wrong variable name is used which can lead to build errors for the host variant:

[...] -I. -DUNIX" AS=" -c" -f unix/Makefile generic

c _match.s
make[1]: c: command not found

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-16 00:30:10 +02:00
Eric Le Bihan
d9054017cf systemd: disable link time optimization
As reported in https://bugs.busybox.net/show_bug.cgi?id=7286,
systemd fails to build with BR2_OPTIMIZE_2=y. This mode activates the GCC
options -flto and -ffat-lto-objects, which do not mix well with the GCC
tricks used in src/compat-libs/linkwarning.h to build the compatibility
libraries.

As a temporary workaround, this patch disables link time optimization for
systemd.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-15 22:31:25 +02:00
Vicente Olivert Riera
c0da68a90c gnupg2: Needs a suitable iconv implementation
gnupg2 needs a toolchain with locale support or a package which provides
a suitable iconv implementation (libiconv). Otherwise it will fail at
the configure phase with an error like this one:

*** It is now required to build with support for iconv
*** Please install a suitable iconv implementation.

Fixes:
  http://autobuild.buildroot.net/results/8c9/8c93c28533dfebffa8b2e34b1421d3fa3cdeb278/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Markos Chandras <Markos.Chandras@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-15 22:30:36 +02:00
Gustavo Zacarias
f550bea09a subversion: security bump to version 1.7.18
Fixes:

CVE-2014-0032 - mod_dav_svn is vunerable to a remotely triggerable
segfault DoS vulnerability when SVNListParentPath is on.

CVE-2014-3522 - Serf RA layer does not correctly validate certificates
with wildcards in them for HTTPS.

CVE-2014-3528 - Credentials cached with Subversion may be sent to the
wrong server.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-15 22:29:04 +02:00
Gustavo Zacarias
60332f38f5 gd: add patch for CVE-2014-2497
Fixes CVE-2014-2497 - NULL pointer dereference
Patch from upstream:
463c3bd09b

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-15 22:28:51 +02:00
Romain Naour
85448febb3 package/localedef: don't use config.site when cross-compiling
On fedora 20 64bits host, the file /usr/share/config.site contains
a fix for installing libraries into /lib/lib64 on 64bits systems
that redefine libdir in the generated Makefile.

This causes the bug 7262 reported Normen Bolling.

Set CONFIG_SITE to "no" to not use config.site

fixes: https://bugs.busybox.net/show_bug.cgi?id=7262

Reported-by: Normen Bolling <normen.bolling@teufel.de>
Cc: Normen Bolling <normen.bolling@teufel.de>
Cc: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-15 22:27:39 +02:00
Bernd Kuhls
916b21a7fb package/tar: Depends on MMU
Fixes
misc.o: In function `_xfork':
misc.c:(.text+0x614): undefined reference to `_fork'
../lib/libtar.a(rtapelib.o): In function `_rmt_open__':
rtapelib.c:(.text+0x6d2): undefined reference to `_fork'

To reproduce use this defconfig
http://autobuild.buildroot.net/results/8d5/8d5ad404fab7ec2a501972ba9c08b0109e420b80/defconfig

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 19:16:11 +02:00
Peter Korsgaard
921d618566 gst1-plugins-good: v4l2 plugin needs kernel headers 3.0+
Fixes http://autobuild.buildroot.net/results/284/284313e660c3c9fad891fd71aa56ca5751946dc6/

For the multi planar api (mp_pix). It was actually added in 2.6.39 (commit
f8f3914cf9), but we only have symbols for 3.x kernels, so use 3.0 instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 18:50:34 +02:00
Luca Ceresoli
533b17a65f qt: don't install translation files by default
Commit 93917b6980 (2013.11) introduced
the installation of the binary .qm translation files, unconditionally.

However, the installed size is very large for some embedded systems
(about 8 MB), and they are not needed in many cases.

In order to avoid such a waste of storage space, commit
2ff329412f (2014.08) made this
installation an option that could be disabled. For backward
compatibility, the option default was set to yes.

Given the size of these files, and that they had never been installed
by Buildroot versions before 2013.11, change the default to not
installing them.

Interested users can still activate it as needed.

Also update and improve the help text.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Reviewed-by: Danomi Manchego <danomimanchego123@gmail.com>
Cc: Danomi Manchego <danomimanchego123@gmail.com>
Cc: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 12:04:02 +02:00
Thomas Petazzoni
91ff861195 libcuefile: fix static linking
Add a patch to libcuefile to fix BR2_PREFER_STATIC_LIB=y configurations.

Fixes:

  http://autobuild.buildroot.org/results/13e/13ecdab5bb132532674a51e0e0e1136d417dfcd9/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 12:02:05 +02:00
Thomas Petazzoni
9cef35b68f libebml: properly support static only builds
This commit adjusts the libebml package to not build a shared library
when BR2_PREFER_STATIC_LIB=y.

Fixes:

  http://autobuild.buildroot.org/results/262/26279f72b6c5708f363b3cce2102afa0eccc3a72/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 12:01:06 +02:00
Nathaniel Roach
8b3f257cd7 bandwidthd: incorporate fixes for autobuilders
"The build failures of bandwidthd observed in the autobuilders in
	relation to libpng are caused by the usage of -L/usr/lib
	-L/usr/local/lib in the compiler flags, which leads the configure
	script to try to link against a host libpng library."

These issues are fixed by:

* Version bump to -r08
	"[patched] the configure.ac script to remove the hardcoded
	-L/usr/local/lib and -I/usr/local/include. The bandwidthd package
	-was already autoreconfigured, so there is no need to add it."

* "Adding the --without-x option, which ensures that the configure.ac
	script will not add -L/usr/lib to the compiler flags (and we anyway
	haven't added any sort of X.org support to bandwidthd for the
	moment)."
Both fixes by Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 11:05:44 +02:00
Bernd Kuhls
12a3ecfc9a package/ffmpeg: prevent stripping the ffmpeg binary
Packages shouldn't strip executables by themselves, so that Buildroot
controls whether stripping should occur or not. This also fixes the
build on Blackfin FLAT where stripping actually doesn't work because
stripping FLAT binaries is not supported.

Inspired by Thomas:
http://git.buildroot.net/buildroot/commit/package/hdparm/hdparm.mk?id=11dbb615338cd768acc2c3138064ddf557e9b60b

Fixes
http://autobuild.buildroot.net/results/581/581c43b50c9717e53334eb156ece95fe499ccb04/
http://autobuild.buildroot.net/results/57a/57a1bdc22b803114c018fa007884385bf8355151/
http://autobuild.buildroot.net/results/d8a/d8a1aadebd302abc923bc4865e1242ab2479d641/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 11:02:57 +02:00
Francois Perrad
6057878756 pkg-perl: fix build of perl XS packages
Set OPTIMIZE in order to avoid the use of the host $Config{optimize} value
which could cause breakage when cross-compiling for the target.

See discussion in http://lists.busybox.net/pipermail/buildroot/2014-August/104129.html

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 10:19:14 +02:00
Thomas Petazzoni
1e9d40fc23 bluez5_utils: gatttool depends on bluez5_utils client
The gatttool utility uses readline, and is therefore built only if
--enable-client is used, i.e when bluez5_utils client applications are
enabled. Therefore, this commit makes
BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL depend on
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT. It also moves
BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL to be right below the
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT definition.

Fixes:

  http://autobuild.buildroot.org/results/f2b/f2b8b1bf5d50e6223a9a6d6858320975edb2a25a/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 10:18:23 +02:00
Gustavo Zacarias
caa04a8cf7 linux: bump default to version 3.16.1
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 10:17:10 +02:00
Gustavo Zacarias
98f9a73962 linux-headers: bump 3.{4, 10, 14, 15, 16}.x series
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 10:17:05 +02:00
Thomas Petazzoni
dfaa18af00 ltrace: disable on mips/mipsel
ltrace currently doesn't build on mips/mipsel, and it's an upstream
issue that has been reported. Until it get fixed, let's disable ltrace
for mips/mipsel.

Fixes:

  http://autobuild.buildroot.org/results/43a/43a8fc7075f52eab74ebfee4c9f25dd2b886e75e/

Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 10:14:17 +02:00
Gustavo Zacarias
f588eaf8a5 synergy: needs mmu
Fixes:
http://autobuild.buildroot.net/results/8d4/8d435c1605204f154c8a0a94ebc06d9c29a1768a/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-15 10:11:45 +02:00
Gustavo Zacarias
86b830d70a pppd: security bump to version 2.4.7
Fixes CVE-2014-3158 - potential security issue in parsing option files.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-14 10:09:44 +02:00
Yuvaraj Patil
3ed56b83c2 tftpd: depends on MMU
This package needs MMU. Hence added dependency on BR2_USE_MMU

Fixes:
http://autobuild.buildroot.net/results/3e1/3e16d8c9ae3b77393e082c3dd9b7b3de9aa040c0//

Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-14 10:09:05 +02:00
Yuvaraj Patil
96527e6d52 procps-ng: Depends on MMU
This package needs MMU. Hence added dependency on BR2_USE_MMU

Fixes:
http://autobuild.buildroot.net/results/f24/f24aa16857e91fb6b03f9ac7ab0442fedcab8546//

Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-14 10:05:53 +02:00
Bernd Kuhls
39adab957b package/xbmc: Bump version to 13.2rc1
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-14 10:04:13 +02:00
Peter Korsgaard
e3bb4ac791 fbv: fix typo in pkg-config variable
Reported-by: Danomi Manchego <danomimanchego123@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-12 09:08:53 +02:00
Bernd Kuhls
a3ff0ad550 package/fbv: Fix static linking against libpng
Fixes
http://autobuild.buildroot.net/results/9ca/9cacec257f979745a7d4a43224b243ee4e16f9ac/
http://autobuild.buildroot.net/results/996/996e42396546555e9fcf0c7135aac610ccca4eee/
http://autobuild.buildroot.net/results/c91/c918046900045c34c73e16578026cce3e6bcccf8/

[Peter: adjust description, pass --static to pkg-config, only use for static linking]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-11 23:30:25 +02:00
Bernd Kuhls
a21566d317 package/fbv: Typo fix
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-11 23:02:02 +02:00
Francois Perrad
d70f19ee93 perl: fix warnings at runtime
autosplit.ix files are used by AutoLoader.pm

    Can't locate auto/Net/SSLeay/autosplit.ix in @INC (@INC contains: /usr/lib/perl5/site_perl/5.18.2/arm-linux /usr/lib/perl5/site_perl/5.18.2 /usr/lib/perl5/5.18.2/arm-linux /usr/lib/perl5/5.18.2 .) at /usr/lib/perl5/5.18.2/AutoLoader.pm line 181.
     at /usr/lib/perl5/site_perl/5.18.2/arm-linux/Net/SSLeay.pm line 24.

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-11 23:01:38 +02:00
Peter Seiderer
bf3d9840d7 postgresql: disable spinlock support for nios2
Fixes:
	http://autobuild.buildroot.net/results/4d2/4d2f962ae59cfe11fce4d6790dbccfbb527a8f5f/

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-11 22:57:56 +02:00
Arnaud Aujon
b092f74b60 espeak : depends on MMU
Fixes http://autobuild.buildroot.net/results/dae/dae5c59dfa127e1c3f9e3885cdd1b97e54d8fe41/
and http://autobuild.buildroot.net/results/fa0/fa04a0fe7d7a201c5f733bd798c0da50ffb81271/
espeak uses fork(), don't work on non-MMU platforms

[Peter: indent with tab instead of spaces]
Signed-off-by: Arnaud Aujon <arnaud@intelibre.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-11 22:49:22 +02:00
Peter Korsgaard
7e33639ecf network-manager: fix build on toolchains not exporting CLOCK_BOOTTIME (E.G. uClibc)
Fixes
http://autobuild.buildroot.net/results/c13/c1388cf73961ddf06f771afe77a7e1e9fc0d8c20/
http://autobuild.buildroot.net/results/d33/d33ed1c3bf1be7c8f8ea02590a770b0d29c7d9fa/
http://autobuild.buildroot.net/results/093/093656db99067eb7bff725e292f8fc880a1d748e/

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-11 09:57:05 +02:00
Gustavo Zacarias
58d3978e4e openssl: add fix for hash cryptodev offloading
See http://rt.openssl.org/Ticket/Display.html?id=2770&user=guest&pass=guest
This has been sitting for ages in the openssl tracker and it's verified
to cause issues.
The patch only touches cryptodev engine offloading so it's pretty safe.
Tested on CAAM SEC4 hardware.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-09 10:07:15 +02:00
207 changed files with 4525 additions and 998 deletions

59
CHANGES
View File

@@ -1,3 +1,62 @@
2014.08, Released September 1st, 2014
Minor manual fixes/additions.
Updated/fixed packages: btrfs-progs, cmake, cppcms, exim,
lftp, libdaemon, libev, libgpgme, libiqrf, libnl, libplist,
libroxml, libwebsockets, mesa3d, mpd, mtdev2tuio, musepack,
perl-gd, php-geoip, php-gnupg, php-imagick, php-memcached,
php-ssh2, php-yaml, php-zmq, polarssl, ruby, systemd, taglib,
uboot-tools, upmpdcli, webkit, xapp_xfs, xapp_luit,
xscreensaver, yajl
Issues resolved (http://bugs.uclibc.org):
#7346: vim-8ae50e3ef8bf.tar.gz can not be downloaded, 404 not found
2014.08-rc3, Released August 26th, 2014
Minor fixes.
User manual update / restructuring.
Updated/fixed packages: cairo, ecryptfs-utils, gettext,
gstreamer, gstreamer1, gutenprint, icu, imagemagick, jack2,
lbreakout2, libevas-generic-loaders, libftdi, libinput,
libtorrent, ltris, msgpack, ntp, php, procps-ng, pulseaudio,
thrift, tvheadend, usb_modeswitch, xmlstarlet,
Issues resolved (http://bugs.uclibc.org):
#7136: ecryptfs-utils needs gettext to run when glibc/eglibc...
#7322: libgomp dependency issue with imagemagick
#7328: Git dl of versions in x/y broken
2014.08-rc2, Released August 18th, 2014
Fixes all over the tree.
User manual restructured / reworked.
Toolchain: Fix for C++ exceptions / pthread_exit() on
uClibc/glibc, C++-11 features with uClibc.
Updated/fixed packages: bandwidthd, bluez5_utils, empty,
espeak, fbv, ffmpeg, gd, gnupg2, gst1-plugin-good, iftop,
infozip, libcuefile, libeml, libnftl, localedef, ltrace,
matchbox, mpd, network-manager, nftables, ngrep, nut, openssl,
oprofile, perl, perl-net-ssleay, postgresql, pppd, procps-ng,
qt, subversion, synergy, systemd, tar, tftpd, webkit,
xapp_rstart, xbmc, xbmc-pvr-addons
Issues resolved (http://bugs.uclibc.org):
#7124: Use BR toolchain externally results a non-bootable...
#7208: Glibc C++ aplications crash if they use exceptions
#7250: Cannot build with -std=c++11
#7262: Generating locale en_US.UTF-8 fails on 64bit fedora..
#7286: systemd 215 doesn't build
2014.08-rc1, Released August 8th, 2014
Fixes all over the tree and new features.

View File

@@ -25,7 +25,7 @@
#--------------------------------------------------------------
# Set and export the version string
export BR2_VERSION := 2014.08-rc1
export BR2_VERSION := 2014.08
# Check for minimal make version (note: this check will break at make 10.x)
MIN_MAKE_VERSION = 3.81
@@ -271,6 +271,8 @@ unexport DESTDIR
# Causes breakage with packages that needs host-ruby
unexport RUBYOPT
include package/pkg-utils.mk
ifeq ($(BR2_HAVE_DOT_CONFIG),y)
################################################################################

View File

@@ -250,6 +250,10 @@ config BR2_GCC_TARGET_FLOAT_ABI
config BR2_GCC_TARGET_MODE
string
# If the architecture has atomic operations, select this:
config BR2_ARCH_HAS_ATOMICS
bool
# Set up target binary format
choice
prompt "Target Binary Format"

View File

@@ -3,3 +3,6 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE"
config BR2_ARCH_HAS_ATOMICS
default y

View File

@@ -1,7 +1,7 @@
# Choise of atomic instructions presence
config BR2_ARC_ATOMIC_EXT
bool "Atomic extension (LLOCK/SCOND instructions)"
select BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
select BR2_ARCH_HAS_ATOMICS
config BR2_ARCH
default "arc" if BR2_arcle

View File

@@ -340,6 +340,9 @@ config BR2_ENDIAN
default "LITTLE" if BR2_arm
default "BIG" if BR2_armeb
config BR2_ARCH_HAS_ATOMICS
default y
config BR2_GCC_TARGET_CPU
default "arm920" if BR2_arm920
default "arm920t" if BR2_arm920t

View File

@@ -6,3 +6,6 @@ config BR2_ENDIAN
config BR2_GCC_TARGET_ARCH
default "ap"
config BR2_ARCH_HAS_ATOMICS
default y

View File

@@ -68,6 +68,9 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE"
config BR2_ARCH_HAS_ATOMICS
default y
config BR2_GCC_TARGET_CPU
default bf606 if BR2_bf606
default bf607 if BR2_bf607

View File

@@ -4,6 +4,9 @@ config BR2_ARCH
config BR2_ENDIAN
default "BIG"
config BR2_ARCH_HAS_ATOMICS
default y
config BR2_GCC_TARGET_TUNE
default "68000" if BR2_m68k_68000
default "68010" if BR2_m68k_68010

View File

@@ -9,3 +9,6 @@ config BR2_ENDIAN
config BR2_microblaze
bool
default y if BR2_microblazeel || BR2_microblazebe
config BR2_ARCH_HAS_ATOMICS
default y

View File

@@ -73,6 +73,9 @@ config BR2_ENDIAN
default "LITTLE" if BR2_mipsel || BR2_mips64el
default "BIG" if BR2_mips || BR2_mips64
config BR2_ARCH_HAS_ATOMICS
default y
config BR2_GCC_TARGET_ARCH
default "mips1" if BR2_mips_1
default "mips2" if BR2_mips_2

View File

@@ -3,3 +3,6 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE"
config BR2_ARCH_HAS_ATOMICS
default y

View File

@@ -157,6 +157,9 @@ config BR2_ENDIAN
default "BIG" if BR2_powerpc || BR2_powerpc64
default "LITTLE" if BR2_powerpc64le
config BR2_ARCH_HAS_ATOMICS
default y
config BR2_GCC_TARGET_TUNE
default "401" if BR2_powerpc_401
default "403" if BR2_powerpc_403

View File

@@ -28,3 +28,6 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE" if BR2_sh4 || BR2_sh4a || BR2_sh64
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
config BR2_ARCH_HAS_ATOMICS
default y

View File

@@ -23,6 +23,9 @@ config BR2_ARCH
config BR2_ENDIAN
default "BIG"
config BR2_ARCH_HAS_ATOMICS
default y
config BR2_GCC_TARGET_TUNE
default "v8" if BR2_sparc_v8

View File

@@ -202,6 +202,9 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE"
config BR2_ARCH_HAS_ATOMICS
default y if !BR2_x86_i386
config BR2_GCC_TARGET_TUNE
default "i386" if BR2_x86_i386
default "i486" if BR2_x86_i486

View File

@@ -35,3 +35,6 @@ config BR2_XTENSA_OVERLAY_DIR
config BR2_ARCH
default "xtensa" if BR2_xtensa
config BR2_ARCH_HAS_ATOMICS
default y

View File

@@ -1,3 +1,6 @@
# AVR32 is deprecated
BR2_DEPRECATED=y
# Architecture
BR2_avr32=y

View File

@@ -1,3 +1,6 @@
# AVR32 is deprecated
BR2_DEPRECATED=y
# Architecture
BR2_avr32=y

View File

@@ -1,6 +1,8 @@
BR2_arm=y
BR2_cortex_a9=y
BR2_KERNEL_HEADERS_3_0=y
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.0.101"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/congatec/qmx6/post-build.sh"
BR2_LINUX_KERNEL=y

View File

@@ -1,6 +1,8 @@
BR2_arm=y
BR2_cortex_a9=y
BR2_KERNEL_HEADERS_3_0=y
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.0.101"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y

View File

@@ -4,43 +4,44 @@
<p>
The latest stable release is <b>2014.05</b>, which can be downloaded
The latest stable release is <b>2014.08</b>, which can be downloaded
here:<p>
<a href="/downloads/buildroot-2014.05.tar.gz">buildroot-2014.05.tar.gz</a>
(<a href="/downloads/buildroot-2014.05.tar.gz.sign">PGP signature</a>)
<a href="/downloads/buildroot-2014.08.tar.gz">buildroot-2014.08.tar.gz</a>
(<a href="/downloads/buildroot-2014.08.tar.gz.sign">PGP signature</a>)
or
<a href="/downloads/buildroot-2014.05.tar.bz2">buildroot-2014.05.tar.bz2</a>
(<a href="/downloads/buildroot-2014.05.tar.bz2.sign">PGP signature</a>).
<a href="/downloads/buildroot-2014.08.tar.bz2">buildroot-2014.08.tar.bz2</a>
(<a href="/downloads/buildroot-2014.08.tar.bz2.sign">PGP signature</a>).
<p>
The latest release candidate is <b>2014.08-rc1</b>, which can be
<!--
The latest release candidate is <b>2014.08-rc3</b>, which can be
downloaded here:<p>
<a href="/downloads/buildroot-2014.08-rc1.tar.gz">buildroot-2014.08-rc1.tar.gz</a>
(<a href="/downloads/buildroot-2014.08-rc1.tar.gz.sign">PGP signature</a>)
<a href="/downloads/buildroot-2014.08-rc3.tar.gz">buildroot-2014.08-rc3.tar.gz</a>
(<a href="/downloads/buildroot-2014.08-rc3.tar.gz.sign">PGP signature</a>)
or
<a href="/downloads/buildroot-2014.08-rc1.tar.bz2">buildroot-2014.08-rc1.tar.bz2</a>
(<a href="/downloads/buildroot-2014.08-rc1.tar.bz2.sign">PGP signature</a>).
<a href="/downloads/buildroot-2014.08-rc3.tar.bz2">buildroot-2014.08-rc3.tar.bz2</a>
(<a href="/downloads/buildroot-2014.08-rc3.tar.bz2.sign">PGP signature</a>).
<p>
This and earlier releases (and their PGP signatures) can always be downloaded from
<a href="/downloads/">http://buildroot.net/downloads/</a>.
<p>
You can also obtain <a href="/downloads/snapshots/">Daily
Snapshots</a> of the latest Buildroot source tree if you want to to
follow development, but cannot or do not wish to use Git.
-->
You can also obtain daily snapshots of the latest Buildroot source tree if you
want to follow development, but cannot or do not wish to use Git.
<ul>
<li> Click here to <a href="downloads/snapshots/">Daily Snapshots</a>.
<li>You can download the
<a href="downloads/snapshots/buildroot-snapshot.tar.bz2">latest snapshot
</a> or view recent <a href="downloads/snapshots/">daily snapshots</a>.
</li>
<li> Click here to <a href="http://git.buildroot.net/buildroot">browse the source tree</a>.
<li>You can also <a href="http://git.buildroot.net/buildroot">browse the
source tree online</a>.
</li>
</ul>

View File

@@ -219,6 +219,11 @@ use in the comment.
** Dependency symbol: +BR2_USE_MMU+
** Comment string: no comment to be added
* Atomic instructions (whereby the architecture has instructions to
perform some operations atomically, like LOCKCMPXCHG on x86)
** Dependency symbol: +BR2_ARCH_HAS_ATOMICS+
** Comment string: no comment to be added
* Kernel headers
** Dependency symbol: +BR2_TOOLCHAIN_HEADERS_AT_LEAST_X_Y+, (replace
+X_Y+ with the proper version, see +toolchain/toolchain-common.in+)

View File

@@ -8,15 +8,22 @@ library. Dependencies for this library are fairly complicated and
therefore, deserve some explanation.
The 'uClibc' C library doesn't implement gettext functionality;
therefore with this C library, a separate gettext must be compiled. On
the other hand, the 'glibc' C library does integrate its own gettext,
and in this case the separate gettext library should not be compiled,
because it creates various kinds of build failures.
therefore with this C library, a separate gettext must be compiled,
which is provided by the additional +libintl+ library, part of the
+gettext+ package.
On the other hand, the 'glibc' C library does integrate its own
gettext library functions, so it is not necessary to build a separate
+libintl+ library.
However, certain packages need some gettext utilities on the target,
such as the +gettext+ program itself, which allows to retrieve
translated strings, from the command line.
Additionally, some packages (such as +libglib2+) do require gettext
unconditionally, while other packages (those who support
+--disable-nls+ in general) only require gettext when locale support
is enabled.
functions unconditionally, while other packages (in general, those who
support +--disable-nls+) only require gettext functions when locale
support is enabled.
Therefore, Buildroot defines two configuration options:
@@ -44,3 +51,11 @@ should:
* use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
+DEPENDENCIES+ variable in the +.mk+ file.
Packages that need the +gettext+ utilities on the target (should be
rare) should:
* use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file,
indicating in a comment above that it's a runtime dependency only.
* not add any +gettext+ dependency in the +DEPENDENCIES+ variable of
their +.mk+ file.

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Advanced usage
=== Advanced usage
include::using-buildroot-toolchain.txt[]

View File

@@ -1,8 +1,6 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Appendix
include::makedev-syntax.txt[]
include::makeusers-syntax.txt[]

View File

@@ -0,0 +1,23 @@
# Refer to following asciidoc documentation:
# http://www.methods.co.nz/asciidoc/userguide.html
# In particular sections "Macros" and "Attribute References"
#
# For hyperlinks, show 'link text [URL]' (if link text provided) or 'URL'
[http-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[https-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[ftp-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[file-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[irc-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[mailto-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
# Hide image representation from text manual
[image-inlinemacro]
{empty}
[image-blockmacro]
{empty}

View File

@@ -1,11 +1,11 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Beyond Buildroot
== Beyond Buildroot
== Boot the generated images
=== Boot the generated images
=== NFS boot
==== NFS boot
To achieve NFS-boot, enable _tar root filesystem_ in the _Filesystem
images_ menu.
@@ -21,7 +21,7 @@ Remember to add this path to +/etc/exports+.
Then, you can execute a NFS-boot from your target.
== Chroot
=== Chroot
If you want to chroot in a generated image, then there are few thing
you should be aware of:

View File

@@ -2,7 +2,7 @@
// vim: set syntax=asciidoc:
[[ccache]]
=== Using +ccache+ in Buildroot
==== Using +ccache+ in Buildroot
http://ccache.samba.org[ccache] is a compiler cache. It stores the
object files resulting from each compilation process, and is able to

View File

@@ -1,7 +1,9 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Daily use
== General Buildroot usage
include::make-tips.txt[]
include::rebuilding-packages.txt[]
@@ -262,3 +264,7 @@ only other format supported is PNG:
----------------
BR2_GRAPH_OUT=png make graph-build
----------------
include::eclipse-integration.txt[]
include::advanced.txt[]

View File

@@ -0,0 +1,52 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Configuration of other components
Before attempting to modify any of the components below, make sure you
have already configured Buildroot itself, and have enabled the
corresponding package.
BusyBox::
+
If you already have a BusyBox configuration file, you can directly
specify this file in the Buildroot configuration, using
+BR2_PACKAGE_BUSYBOX_CONFIG+. Otherwise, Buildroot will start from a
default BusyBox configuration file.
+
To make subsequent changes to the configuration, use +make
busybox-menuconfig+ to open the BusyBox configuration editor.
+
It is also possible to specify a BusyBox configuration file through an
environment variable, although this is not recommended. Refer to
xref:env-vars[] for more details.
uClibc::
+
Configuration of uClibc is done in the same way as for BusyBox. The
configuration variable to specify an existing configuration file is
+BR2_UCLIBC_CONFIG+. The command to make subsequent changes is +make
uclibc-menuconfig+.
Linux kernel::
+
If you already have a kernel configuration file, you can directly
specify this file in the Buildroot configuration, using
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+.
+
If you do not yet have a kernel configuration file, you can either start
by specifying a defconfig in the Buildroot configuration, using
+BR2_LINUX_KERNEL_USE_DEFCONFIG+, or start by creating an empty file and
specifying it as custom configuration file, using
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+.
+
To make subsequent changes to the configuration, use +make
linux-menuconfig+ to open the Linux configuration editor.
Barebox::
+
Configuration of Barebox is done in the same way as for the Linux
kernel. The corresponding configuration variables are
+BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG+ and
+BR2_TARGET_BAREBOX_USE_DEFCONFIG+. To open the configuration editor,
use +make barebox-menuconfig+.

View File

@@ -2,12 +2,27 @@
// vim: set syntax=asciidoc:
[[configure]]
== Details on Buildroot configuration
== Buildroot configuration
All the configuration options in +make *config+ have a help text
providing details about the option. However, a number of topics
require additional details that cannot easily be covered in the help
text and are there covered in the following sections.
providing details about the option.
The +make *config+ commands also offer a search tool. Read the help
message in the different frontend menus to know how to use it:
* in _menuconfig_, the search tool is called by pressing +/+;
* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
The result of the search shows the help message of the matching items.
In _menuconfig_, numbers in the left column provide a shortcut to the
corresponding entry. Just type this number to directly jump to the
entry, or to the containing menu in case the entry is not selectable due
to a missing dependency.
Although the menu structure and the help text of the entries should be
sufficiently self-explanatory, a number of topics require additional
explanation that cannot easily be covered in the help text and are
therefore covered in the following sections.
=== Cross-compilation toolchain
@@ -215,6 +230,20 @@ Drawbacks of this backend:
fix from the toolchain vendor, unless you build your external
toolchain by yourself using Crosstool-NG.
===== External toolchain wrapper
When using an external toolchain, Buildroot generates a wrapper program,
that transparently passes the appropriate options (according to the
configuration) to the external toolchain programs. In case you need to
debug this wrapper to check exactly what arguments are passed, you can
set the environment variable +BR2_DEBUG_WRAPPER+ to either one of:
* +0+, empty or not set: no debug
* +1+: trace all arguments on a single line
* +2+: trace one argument per line
=== /dev management
On a Linux system, the +/dev+ directory contains special files, called

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Contributing to Buildroot
== Contributing to Buildroot
There are many ways in which you can contribute to Buildroot: analyzing
and fixing bugs, analyzing and fixing package build failures detected by
@@ -14,7 +14,7 @@ If you are interested in contributing to Buildroot, the first thing you
should do is to subscribe to the Buildroot mailing list. This list is
the main way of interacting with other Buildroot developers and to send
contributions to. If you aren't subscribed yet, then refer to
xref:mailing-list-subscribe[].
xref:community-resources[] for the subscription link.
If you are going to touch the code, it is highly recommended to use a
git repository of Buildroot, rather than starting from an extracted
@@ -22,7 +22,7 @@ source code tarball. Git is the easiest way to develop from and directly
send your patches to the mailing list. Refer to xref:getting-buildroot[]
for more information on obtaining a Buildroot git tree.
== Reproducing, analyzing and fixing bugs
=== Reproducing, analyzing and fixing bugs
A first way of contributing is to have a look at the open bug reports in
the https://bugs.busybox.net/buglist.cgi?product=buildroot[Buildroot bug
@@ -31,7 +31,7 @@ help in reproducing, analyzing and fixing reported bugs is more than
welcome. Don't hesitate to add a comment to bug reports reporting your
findings, even if you don't yet see the full picture.
== Analyzing and fixing autobuild failures
=== Analyzing and fixing autobuild failures
The Buildroot autobuilders are a set of build machines that continuously
run Buildroot builds based on random configurations. This is done for
@@ -76,7 +76,7 @@ basically two things that can be done:
Fixes http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069
---------------------
== Reviewing and testing patches
=== Reviewing and testing patches
With the amount of patches sent to the mailing list each day, the
maintainer has a very hard job to judge which patches are ready to apply
@@ -142,7 +142,30 @@ Buildroot's Patchwork website can be used to pull in patches for testing
purposes. Please see xref:apply-patches-patchwork[] for more
information on using Buildroot's Patchwork website to apply patches.
== Work on items from the TODO list
[[apply-patches-patchwork]]
==== Applying Patches from Patchwork
The main use of Buildroot's Patchwork website for a developer is for
pulling in patches into their local git repository for testing
purposes.
When browsing patches in the patchwork management interface, an +mbox+
link is provided at the top of the page. Copy this link address and
run the following commands:
---------------------
$ git checkout -b <test-branch-name>
$ wget -O - <mbox-url> | git am
---------------------
Another option for applying patches is to create a bundle. A bundle is
a set of patches that you can group together using the patchwork
interface. Once the bundle is created and the bundle is made public,
you can copy the +mbox+ link for the bundle and apply the bundle
using the above commands.
=== Work on items from the TODO list
If you want to contribute to Buildroot but don't know where to start,
and you don't like any of the above topics, you can always work on items
@@ -152,7 +175,7 @@ Do edit the wiki to indicate when you start working on an item, so we
avoid duplicate efforts.
[[submitting-patches]]
== Submitting patches
=== Submitting patches
[NOTE]
_Please, do not attach patches to bugs, send them to the mailing list
@@ -196,7 +219,7 @@ If you do not use +git send-email+, make sure posted *patches are not
line-wrapped*, otherwise they cannot easily be applied. In such a case,
fix your e-mail client, or better yet, learn to use +git send-email+.
=== Cover letter
==== Cover letter
If you want to present the whole patch set in a separate mail, add
+--cover-letter+ to the +git format-patch+ command (see +man
@@ -215,7 +238,7 @@ in the following cases:
* whenever you feel it will help presenting your work, your choices,
the review process, etc.
=== Patch revision changelog
==== Patch revision changelog
When improvements are requested, the new revision of each commit
should include a changelog of the modifications between each
@@ -276,15 +299,15 @@ $ git format-patch --subject-prefix "PATCH v4" \
---------------------
[[reporting-bugs]]
== Reporting issues/bugs or getting help
=== Reporting issues/bugs or getting help
Before reporting any issue, please check
xref:mailing-list-subscribe[the mailing list archive] in case someone has
already reported and fixed a similar problem.
Before reporting any issue, please check in
xref:community-resources[the mailing list archive] whether someone has
already reported and/or fixed a similar problem.
However you choose to report bugs or get help, either by
xref:bugtracker[opening a bug] or by
xref:mailing-list-subscribe[sending a mail to the mailing list], there are
opening a bug in the xref:community-resources[bug tracker] or by
xref:community-resources[sending a mail to the mailing list], there are
a number of details to provide in order to help people reproduce and
find a solution to the issue.

View File

@@ -1,26 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[busybox-custom]]
=== Customizing the BusyBox configuration
http://www.busybox.net/[BusyBox] is very configurable, and you may
want to customize it. You can follow these simple steps to do so. This
method isn't optimal, but it's simple, and it works:
* Do an initial compilation of Buildroot, with busybox, without
trying to customize it.
* Invoke +make busybox-menuconfig+.
The nice configuration tool appears, and you can
customize everything.
* Run the compilation of Buildroot again.
Otherwise, you can simply change the
+package/busybox/busybox-<version>.config+ file, if you know the
options you want to change, without using the configuration tool.
If you want to use an existing config file for busybox, then see
xref:env-vars[].

View File

@@ -0,0 +1,59 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[customize-dir-structure]]
=== Recommended directory structure
When customizing Buildroot for your project, you will be creating one or
more project-specific files that need to be stored somewhere. While most
of these files could be placed in _any_ location as their path is to be
specified in the Buildroot configuration, the Buildroot developers
recommend a specific directory structure which is described in this
section.
Orthogonal to this directory structure, you can choose _where_ you place
this structure itself: either inside the Buildroot tree, or outside of
it using +BR2_EXTERNAL+. Both options are valid, the choice is up to you.
-----
+-- board/
| +-- <company>/
| +-- <boardname>/
| +-- linux.config
| +-- busybox.config
| +-- <other configuration files>
| +-- post_build.sh
| +-- post_image.sh
| +-- rootfs_overlay/
| | +-- etc/
| | +-- <some file>
| +-- patches/
| +-- foo/
| | +-- <some patch>
| +-- libbar/
| +-- <some other patches>
|
+-- configs/
| +-- <boardname>_defconfig
|
+-- package/
| +-- <company>/
| +-- Config.in (if not using BR2_EXTERNAL)
| +-- <company>.mk (if not using BR2_EXTERNAL)
| +-- <boardname>/
| +-- package1/
| | +-- Config.in
| | +-- package1.mk
| +-- package2/
| +-- Config.in
| +-- package2.mk
|
+-- Config.in (if using BR2_EXTERNAL)
+-- external.mk (if using BR2_EXTERNAL)
------
Details on the files shown above are given further in this chapter.
Note: if you choose to place this structure outside of the Buildroot
tree using +BR2_EXTERNAL+, the <company> and possibly <boardname>
components may be superfluous and can be left out.

View File

@@ -1,15 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[kernel-custom]]
=== Customizing the Linux kernel configuration
The Linux kernel configuration can be customized just like
xref:busybox-custom[BusyBox] and xref:uclibc-custom[uClibc] using
+make linux-menuconfig+. Make sure you have enabled the kernel build
in +make menuconfig+ first. Once done, run +make+ to (re)build
everything.
If you want to use an existing config file for Linux, then see
xref:env-vars[].

View File

@@ -1,30 +1,25 @@
// -*- mode:doc -*- ;
[[outside-br-custom]]
=== Keeping customizations outside Buildroot
=== Keeping customizations outside of Buildroot
The Buildroot community recommends and encourages upstreaming to the
official Buildroot version the packages and board support that are
written by developers. However, it is sometimes not possible or
desirable because some of these packages or board support are highly
specific or proprietary.
As already briefly mentioned in xref:customize-dir-structure[], you can
place project-specific customizations in two locations:
In this case, Buildroot users are offered two choices:
* directly within the Buildroot tree, typically maintaining them using
branches in a version control system so that upgrading to a newer
Buildroot release is easy.
* They can add their packages, board support and configuration files
directly within the Buildroot tree, and maintain them by using
branches in a version control system.
* They can use the +BR2_EXTERNAL+ mechanism, which allows to keep
package recipes, board support and configuration files outside of
the Buildroot tree, while still having them nicely integrated in
the build logic. The following paragraphs give details on how to
use +BR2_EXTERNAL+.
* outside of the Buildroot tree, using the +BR2_EXTERNAL+ mechanism.
This mechanism allows to keep package recipes, board support and
configuration files outside of the Buildroot tree, while still
having them nicely integrated in the build logic. This section
explains how to use +BR2_EXTERNAL+.
+BR2_EXTERNAL+ is an environment variable that can be used to point to
a directory that contains Buildroot customizations. It can be passed
to any Buildroot +make+ invocation. It is automatically saved in the
hidden +.br-external+ file in the output directory. By doing this,
hidden +.br-external+ file in the output directory. Thanks to this,
there is no need to pass +BR2_EXTERNAL+ at every +make+ invocation. It
can however be changed at any time by passing a new value, and can be
removed by passing an empty value.
@@ -32,7 +27,7 @@ removed by passing an empty value.
*Note:* the +BR2_EXTERNAL+ path can be either an absolute or a relative path,
but if it's passed as a relative path, it is important to note that it
is interpreted relative to the main Buildroot source directory, *not*
the Buildroot output directory.
to the Buildroot output directory.
Some examples:
@@ -40,7 +35,7 @@ Some examples:
buildroot/ $ make BR2_EXTERNAL=/path/to/foobar menuconfig
-----
Starting from now on, external definitions from the +/path/to/foobar+
From now on, external definitions from the +/path/to/foobar+
directory will be used:
-----
@@ -60,7 +55,7 @@ Or disable the usage of external definitions:
buildroot/ $ make BR2_EXTERNAL= xconfig
-----
+BR2_EXTERNAL+ then allows three different things:
+BR2_EXTERNAL+ allows three different things:
* One can store all the board-specific configuration files there,
such as the kernel configuration, the root filesystem overlay, or
@@ -72,63 +67,36 @@ Or disable the usage of external definitions:
filesystem overlay), or the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
Buildroot option to
+$(BR2_EXTERNAL)/board/<boardname>/kernel.config+ (to specify the
location of the kernel configuration file). To achieve this, it is
recommended but not mandatory, to store those details in
directories called +board/<boardname>/+ under +BR2_EXTERNAL+. This
matches the directory structure used within Buildroot.
location of the kernel configuration file).
* One can store package recipes (i.e. +Config.in+ and
+<packagename>.mk+), or even custom configuration options and make
logic. Buildroot automatically includes +BR2_EXTERNAL/Config.in+ to
logic. Buildroot automatically includes +$(BR2_EXTERNAL)/Config.in+ to
make it appear in the top-level configuration menu, and includes
+BR2_EXTERNAL/external.mk+ with the rest of the makefile logic.
+$(BR2_EXTERNAL)/external.mk+ with the rest of the makefile logic.
Providing those two files is mandatory, but they can be empty.
+
The main usage of this is to store package recipes. The recommended
way to do this is to write a +BR2_EXTERNAL/Config.in+ that looks
like:
way to do this is to write a +$(BR2_EXTERNAL)/Config.in+ file that
looks like:
+
------
source "$BR2_EXTERNAL/package/package1/Config.in"
source "$BR2_EXTERNAL/package/package2/Config.in"
source "$BR2_EXTERNAL/package/<boardname>/package1/Config.in"
source "$BR2_EXTERNAL/package/<boardname>/package2/Config.in"
------
+
Then, have a +BR2_EXTERNAL/external.mk+ file that looks like:
Then, have a +$(BR2_EXTERNAL)/external.mk+ file that looks like:
+
------
include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*/*.mk))
------
+
And then in +BR2_EXTERNAL/package/package1+ and
+BR2_EXTERNAL/package/package2+ create normal Buildroot package
recipes, as explained in xref:adding-packages[].
And then in +$(BR2_EXTERNAL)/package/<boardname>/package1+ and
+$(BR2_EXTERNAL)/package/<boardname>/package2+ create normal Buildroot
package recipes, as explained in xref:adding-packages[].
* One can store Buildroot defconfigs in the +configs+ subdirectory of
+BR2_EXTERNAL+. Buildroot will automatically show them in the
+$(BR2_EXTERNAL)+. Buildroot will automatically show them in the
output of +make help+ and allow them to be loaded with the normal
+make <name>_defconfig+ command. They will be visible under the
+User-provided configs:+' label in the 'make help' output.
In the end, a typical +BR2_EXTERNAL+ directory organization would
generally be:
-----
$(BR2_EXTERNAL)/
+-- Config.in
+-- external.mk
+-- board/
| +-- <boardname>/
| +-- linux.config
| +-- overlay/
| +-- etc/
| +-- <some file>
+-- configs/
| +-- <boardname>_defconfig
+-- package/
+-- package1/
| +-- Config.in
| +-- package1.mk
+-- package2/
+-- Config.in
+-- package2.mk
------
+User-provided configs+' label in the 'make help' output.

View File

@@ -0,0 +1,37 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
=== Customization _after_ the images have been created
While post-build scripts (xref:rootfs-custom[]) are run _before_
building the filesystem image, kernel and bootloader, *post-image
scripts* can be used to perform some specific actions _after_ all images
have been created.
Post-image scripts can for example be used to automatically extract your
root filesystem tarball in a location exported by your NFS server, or
to create a special firmware image that bundles your root filesystem and
kernel image, or any other custom action required for your project.
To enable this feature, specify a space-separated list of post-image
scripts in config option +BR2_ROOTFS_POST_IMAGE_SCRIPT+ (in the +System
configuration+ menu). If you specify a relative path, it will be
relative to the root of the Buildroot tree.
Just like post-build scripts, post-image scripts are run with the main
Buildroot tree as current working directory. The path to the +images+
output directory is passed as the first argument to each script. If the
config option +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these
arguments will be passed to the script too. All the scripts will be
passed the exact same set of arguments, it is not possible to pass
different sets of arguments to each script.
Again just like for the post-build scripts, the scripts have access to
the environment variables +BR2_CONFIG+, +HOST_DIR+, +STAGING_DIR+,
+TARGET_DIR+, +BUILD_DIR+, +BINARIES_DIR+ and +BASE_DIR+.
The post-image scripts will be executed as the user that executes
Buildroot, which should normally _not_ be the root user. Therefore, any
action requiring root permissions in one of these scripts will require
special handling (usage of fakeroot or sudo), which is left to the
script developer.

View File

@@ -4,85 +4,96 @@
[[rootfs-custom]]
=== Customizing the generated target filesystem
Besides changing one or another configuration through +make *config+,
there are a few ways to customize the resulting target filesystem.
Besides changing the configuration through +make *config+,
there are a few other ways to customize the resulting target filesystem.
* Customize the target filesystem directly and rebuild the image. The
target filesystem is available under +output/target/+. You can
simply make your changes here and run make afterwards - this will
rebuild the target filesystem image. This method allows you to do
anything to the target filesystem, but if you decide to completely
rebuild your toolchain and tools, these changes will be lost. This
solution is therefore only useful for quick tests only: _changes do
not survive the +make clean+ command_. Once you have validated your
changes, you should make sure that they will persist after a +make
clean+ by using one of the following methods.
The two recommended methods, which can co-exist, are root filesystem
overlay(s) and post build script(s).
* Create a filesystem overlay: a tree of files that are copied directly
over the target filesystem after it has been built. Set
+BR2_ROOTFS_OVERLAY+ to the top of the tree. +.git+, +.svn+, +.hg+
directories, +.empty+ files and files ending with +~+ are excluded.
_Among these first 3 methods, this one should be preferred_.
Root filesystem overlays (+BR2_ROOTFS_OVERLAY+)::
+
A filesystem overlay is a tree of files that is copied directly
over the target filesystem after it has been built. To enable this
feature, set config option +BR2_ROOTFS_OVERLAY+ (in the +System
configuration+ menu) to the root of the overlay. You can even specify
multiple overlays, space-separated. If you specify a relative path,
it will be relative to the root of the Buildroot tree. Hidden
directories of version control systems, like +.git+, +.svn+, +.hg+,
etc., files called +.empty+ and files ending in +~+ are excluded from
the copy.
* In the Buildroot configuration, you can specify the paths to one or
more *post-build scripts*. These scripts are called in the given order,
'after' Buildroot builds all the selected software, but 'before' the
rootfs images are assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ allows
you to specify the location of your post-build scripts. This option can be
found in the +System configuration+ menu. The destination root
filesystem folder is given as the first argument to these scripts,
and these scripts can then be used to remove or modify any file in your
Post-build scripts (+BR2_ROOTFS_POST_BUILD_SCRIPT+)::
+
Post-build scripts are shell scripts called 'after' Buildroot builds
all the selected software, but 'before' the rootfs images are
assembled. To enable this feature, specify a space-separated list of
post-build scripts in config option +BR2_ROOTFS_POST_BUILD_SCRIPT+ (in
the +System configuration+ menu). If you specify a relative path, it
will be relative to the root of the Buildroot tree.
+
Using post-build scripts, you can remove or modify any file in your
target filesystem. You should, however, use this feature with care.
Whenever you find that a certain package generates wrong or unneeded
files, you should fix that package rather than work around it with some
post-build cleanup scripts.
You may also use these variables in your post-build script:
- +BR2_CONFIG+: the path to the Buildroot .config file
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
xref:generic-package-reference[]
- +BUILD_DIR+: the directory where packages are extracted and built
- +BINARIES_DIR+: the place where all binary files (aka images) are
stored
- +BASE_DIR+: the base output directory
+
The post-build scripts are run with the main Buildroot tree as current
working directory. The path to the target filesystem is passed as the
first argument to each script. If the config option
+BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these arguments will be
passed to the script too. All the scripts will be passed the exact
same set of arguments, it is not possible to pass different sets of
arguments to each script.
+
In addition, you may also use these environment variables:
* Create your own 'target skeleton'. You can start with the default
skeleton available under +system/skeleton+ and then customize it to
suit your needs. The +BR2_ROOTFS_SKELETON_CUSTOM+ and
+BR2_ROOTFS_SKELETON_CUSTOM_PATH+ will allow you to specify the
location of your custom skeleton. These options can be found in the
+System configuration+ menu. At build time, the contents of the
skeleton are copied to output/target before any package
installation. Note that this method is *not recommended*, as it
duplicates the entire skeleton, which prevents from taking advantage
of the fixes or improvements brought to the default Buildroot
skeleton. The recommended method is to use the _post-build scripts_
mechanism described in the previous item.
- +BR2_CONFIG+: the path to the Buildroot .config file
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
xref:generic-package-reference[]
- +BUILD_DIR+: the directory where packages are extracted and built
- +BINARIES_DIR+: the place where all binary files (aka images) are
stored
- +BASE_DIR+: the base output directory
Note also that you can use the *post-image scripts*
if you want to perform some specific actions 'after' all
filesystem images have been created (for example to automatically
extract your root filesystem tarball in a location exported by your
NFS server, or to create a special firmware image that bundles your
root filesystem and kernel image, or any other custom action), you can
specify a space-separated list of scripts in the
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ configuration option. This option can be
found in the +System configuration+ menu as well.
Below two more methods of customizing the target filesystem are
described, but they are not recommended.
Each of those scripts will be called with the path to the +images+
output directory as first argument, and will be executed with the main
Buildroot source directory as the current directory. Those scripts will
be executed as the user that executes Buildroot, which should normally
not be the root user. Therefore, any action requiring root permissions
in one of these _post-image scripts_ will require special handling
(usage of fakeroot or sudo), which is left to the script developer.
Direct modification of the target filesystem::
+
For temporary modifications, you can modify the target filesystem
directly and rebuild the image. The target filesystem is available
under +output/target/+. After making your changes, run +make+ to
rebuild the target filesystem image.
+
This method allows you to do anything to the target filesystem, but if
you need to clean your Buildroot tree using +make clean+, these
changes will be lost. Such cleaning is necessary in several cases,
refer to xref:full-rebuild[] for details. This solution is therefore
only useful for quick tests: _changes do not survive the +make clean+
command_. Once you have validated your changes, you should make sure
that they will persist after a +make clean+, using a root filesystem
overlay or a post-build script.
Just like for the _post-build scripts_ mentioned above, you also have
access to the following environment variables from your _post-image
scripts_: +BR2_CONFIG+, +BUILD_DIR+, +HOST_DIR+, +STAGING_DIR+,
+TARGET_DIR+, +BINARIES_DIR+ and +BASE_DIR+.
Additionally, each of the +BR2_ROOTFS_POST_BUILD_SCRIPT+ and
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ scripts will be passed the arguments
specified in +BR2_ROOTFS_POST_SCRIPT_ARGS+ (if that is not empty).
All the scripts will be passed the exact same set of arguments, it
is not possible to pass different sets of arguments to each script.
Custom target skeleton (+BR2_ROOTFS_SKELETON_CUSTOM+)::
+
The root filesystem image is created from a target skeleton, on top of
which all packages install their files. The skeleton is copied to the
target directory +output/target+ before any package is built and
installed. The default target skeleton provides the standard Unix
filesystem layout and some basic init scripts and configuration files.
+
If the default skeleton (available under +system/skeleton+) does not
match your needs, you would typically use a root filesystem overlay or
post-build script to adapt it. However, if the default skeleton is
entirely different than what you need, using a custom skeleton may be
more suitable.
+
To enable this feature, enable config option
+BR2_ROOTFS_SKELETON_CUSTOM+ and set +BR2_ROOTFS_SKELETON_CUSTOM_PATH+
to the path of your custom skeleton. Both options are available in the
+System configuration+ menu. If you specify a relative path, it will
be relative to the root of the Buildroot tree.
+
This method is not recommended because it duplicates the entire
skeleton, which prevents taking advantage of the fixes or improvements
brought to the default skeleton in later Buildroot releases.

View File

@@ -1,8 +1,8 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[customize-store]]
== Storing the configuration
[[customize-store-basics]]
=== Basics for storing the configuration
When you have a buildroot configuration that you are satisfied with and
you want to share it with others, put it under revision control or move
@@ -12,11 +12,6 @@ consists of the buildroot configuration, the configuration files for
packages that you use (kernel, busybox, uClibc, ...), and your rootfs
modifications.
[[customize-store-basics]]
=== Basics for storing the configuration
[[customize-store-buildroot-config]]
==== Buildroot configuration

View File

@@ -1,49 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[toolchain-custom]]
=== Customizing the toolchain
There are three distinct types of toolchain backend supported in Buildroot,
available under the menu +Toolchain+, invoking +make menuconfig+.
==== Using the external toolchain backend
There is no way of tuning an external toolchain since Buildroot does not
generate it.
It also requires to set the Buildroot settings according to the toolchain ones
(see xref:external-toolchain-backend[]).
When using an external toolchain, Buildroot generates a wrapper program,
that transparently passes the appropriate options (according to the
configuration) to the external toolchain programs. In case you need to
debug this wrapper to check exactly what arguments are passed, you can
set the environment variable +BR2_DEBUG_WRAPPER+ to either one of:
* +0+, empty or not set: no debug
* +1+: trace all arguments on a single line
* +2+: trace one argument per line
==== Using the internal Buildroot toolchain backend
The internal Buildroot toolchain backend allows to generate toolchains
based on http://www.uclibc.org/[uClibc],
https://www.gnu.org/software/libc/[glibc] and
http://www.eglibc.org/[eglibc].
Generation of (e)glibc-based toolchains is still experimental in
Buildroot.
It allows to tune major settings, such as:
* Linux headers version;
* C library configuration (only available for
http://www.uclibc.org/[uClibc], see xref:uclibc-custom[uClibc]);
* Binutils, GCC, Gdb and toolchain options.
These settings are available after selecting the +Buildroot toolchain+ type in
the menu +Toolchain+.

View File

@@ -1,33 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[uclibc-custom]]
=== Customizing the uClibc configuration
Just like xref:busybox-custom[BusyBox], http://www.uclibc.org/[uClibc]
offers a lot of configuration options. They allow you to select
various functionalities depending on your needs and limitations.
The easiest way to modify the configuration of uClibc is to
follow these steps:
* Do an initial compilation of Buildroot without trying to customize
uClibc.
* Invoke +make uclibc-menuconfig+. The nice configuration assistant,
similar to the one used in the Linux kernel or Buildroot,
appears. Make your configuration changes as appropriate.
* Copy the +$(O)/build/uClibc-VERSION/.config+ file to a different
place (e.g. +board/MANUFACTURER/BOARDNAME/uClibc.config+) and adjust
the uClibc configuration file option +BR2_UCLIBC_CONFIG+ to refer to this
configuration instead of the default one.
* Run the compilation of Buildroot again.
Otherwise, you can simply change +package/uclibc/uClibc-VERSION.config+,
without running the configuration assistant.
If you want to use an existing config file for uClibc, then see
xref:env-vars[].

View File

@@ -1,20 +1,47 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Customization
== Project-specific customization
Typical actions you may need to perform for a given project are:
- configuring Buildroot (including build options and toolchain,
bootloader, kernel, package and filesystem image type selection)
- configuring other components, like the Linux kernel and BusyBox
- adding project-specific patches to some packages (using
+BR2_GLOBAL_PATCH_DIR+)
- adding or overwriting files on the target filesystem (using
+BR2_ROOTFS_OVERLAY+)
- modifying or deleting files on the target filesystem (using
+BR2_ROOTFS_POST_BUILD_SCRIPT+)
- running arbitrary commands prior to generating the filesystem image
(using +BR2_ROOTFS_POST_BUILD_SCRIPT+)
- running arbitrary commands after generating the filesystem image
(using +BR2_ROOTFS_POST_IMAGE_SCRIPT+)
- adding project-specific packages
An important note regarding such 'project-specific' customizations:
please carefully consider which changes are indeed project-specific and
which changes are also useful to developers outside your project. The
Buildroot community highly recommends and encourages the upstreaming of
improvements, packages and board support to the official Buildroot
project. Of course, it is sometimes not possible or desirable to
upstream because the changes are highly specific or proprietary.
This chapter describes how to make such project-specific customizations
in Buildroot and how to store them in a way that you can build the same
image in a reproducible way, even after running 'make clean'. By
following the recommended strategy, you can even use the same Buildroot
tree to build multiple distinct projects!
include::customize-directory-structure.txt[]
include::customize-outside-br.txt[]
include::customize-rootfs.txt[]
include::customize-busybox-config.txt[]
include::customize-uclibc-config.txt[]
include::customize-kernel-config.txt[]
include::customize-toolchain.txt[]
include::customize-post-image.txt[]
include::customize-store.txt[]
include::customize-packages.txt[]
include::customize-outside-br.txt[]

View File

@@ -1,14 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Developer Guidelines
include::writing-rules.txt[]
include::adding-packages.txt[]
include::patch-policy.txt[]
include::download-infra.txt[]
include::debugging-buildroot.txt[]

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
=== Location of downloaded packages
==== Location of downloaded packages
The various tarballs that are downloaded by Buildroot are all stored
in +BR2_DL_DIR+, which by default is the +dl+ directory. If you want

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Integration with Eclipse
=== Integration with Eclipse
While a part of the embedded Linux developers like classical text
editors like Vim or Emacs, and command-line based interfaces, a number

View File

@@ -1,10 +1,10 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Frequently Asked Questions & Troubleshooting
== Frequently Asked Questions & Troubleshooting
[[faq-boot-hang-after-starting]]
== The boot hangs after 'Starting network...'
=== The boot hangs after 'Starting network...'
If the boot process seems to hang after the following messages
(messages not necessarily exactly similar, depending on the list of
@@ -26,7 +26,7 @@ submenu. This will automatically tune the +/etc/inittab+ file of the
generated system so that a shell starts on the correct serial port.
[[faq-no-compiler-on-target]]
== Why is there no compiler on the target?
=== Why is there no compiler on the target?
It has been decided that support for the _native compiler on the
target_ would be stopped from the Buildroot-2012.11 release because:
@@ -50,7 +50,7 @@ distribution_ and you should opt for something like:
* ...
[[faq-no-dev-files-on-target]]
== Why are there no development files on the target?
=== Why are there no development files on the target?
Since there is no compiler available on the target (see
xref:faq-no-compiler-on-target[]), it does not make sense to waste
@@ -60,7 +60,7 @@ Therefore, those files are always removed from the target since the
Buildroot-2012.11 release.
[[faq-no-doc-on-target]]
== Why is there no documentation on the target?
=== Why is there no documentation on the target?
Because Buildroot mostly targets _small_ or _very small_ target
hardware with limited resource onboard (CPU, ram, mass-storage), it
@@ -71,7 +71,7 @@ is not suitable for your purpose, and you should look for a _real
distribution_ (see: xref:faq-no-compiler-on-target[]).
[[faq-why-not-visible-package]]
== Why are some packages not visible in the Buildroot config menu?
=== Why are some packages not visible in the Buildroot config menu?
If a package exists in the Buildroot tree and does not appear in the
config menu, this most likely means that some of the package's
@@ -89,7 +89,7 @@ then you should certainly run a full rebuild (see xref:make-tips[] for
more explanations).
[[faq-why-not-use-target-as-chroot]]
== Why not use the target directory as a chroot directory?
=== Why not use the target directory as a chroot directory?
There are plenty of reasons to *not* use the target directory a chroot
one, among these:
@@ -106,7 +106,7 @@ root, then use the tarball image generated in +images/+ and extract it
as root.
[[faq-no-binary-packages]]
== Why doesn't Buildroot generate binary packages (.deb, .ipkg...)?
=== Why doesn't Buildroot generate binary packages (.deb, .ipkg...)?
One feature that is often discussed on the Buildroot list is the
general topic of "package management". To summarize, the idea

View File

@@ -1,121 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Getting involved
Like any open source project, Buildroot has different ways to share
information in its community and outside.
One piece of it is the document you are currently reading ;-).
Each of those ways may interest you if you are looking for some help,
want to understand Buildroot or contribute to the project.
== Mailing List
Buildroot has a mailing list
http://lists.busybox.net/pipermail/buildroot[] for discussion and
development.
[[mailing-list-subscribe]]
=== Subscribing to the mailing list
You can subscribe by visiting
http://lists.busybox.net/mailman/listinfo/buildroot[].
Only subscribers to the Buildroot mailing list are allowed to post to
this list.
The list is also available through _Gmane_ http://gmane.org[], at
+gmane.comp.lib.uclibc.buildroot+
http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot[].
=== Searching the List Archives
Please search the mailing list archives before asking questions on the
mailing list, since there is a good chance someone else has asked the
same question before. Checking the archives is a great way to avoid
annoying everyone on the list with frequently asked questions...
== IRC
The Buildroot IRC is irc://freenode.net/#buildroot[].
The channel +#buildroot+ is hosted on Freenode
http://webchat.freenode.net[].
When asking for help on IRC, share relevant logs or pieces of code
using a code sharing website.
[[patchwork]]
== Patchwork
Patchwork is a web-based patch tracking system designed to facilitate
the contribution and management of contributions to an open-source
project. Patches that have been sent to a mailing list are \'caught' by
the system, and appear on a web page. Any comments posted that
reference the patch are appended to the patch page too. For more
information on Patchwork see
http://jk.ozlabs.org/projects/patchwork[].
Buildroot's Patchwork website is mainly for use by Buildroot's
maintainer to ensure patches aren't missed. The website however,
exposes patches and their corresponding review comments in a clean
and concise web interface.
The Buildroot patch management interface is available at
http://patchwork.buildroot.org[].
[[apply-patches-patchwork]]
=== Applying Patches from Patchwork
The main use of Buildroot's Patchwork website for a developer is for
pulling in patches into their local git repository for testing
purposes.
When browsing patches in the patchwork management interface, an +mbox+
link is provided at the top of the page. Copy this link address and
run the following commands:
---------------------
$ git checkout -b <test-branch-name>
$ wget -O - <mbox-url> | git am
---------------------
Another option for applying patches is to create a bundle. A bundle is
a set of patches that you can group together using the patchwork
interface. Once the bundle is created and the bundle is made public,
you can copy the +mbox+ link for the bundle and apply the bundle
using the above commands.
[[bugtracker]]
== Bugtracker
The Buildroot bugtracker is at https://bugs.busybox.net[].
To open a bug, see xref:reporting-bugs[].
== Buildroot wikipage
After the Buildroot developer day on February 3, 2012,
a page dedicated to Buildroot has been created on
http://elinux.org[elinux.org].
This page is reachable at http://elinux.org/Buildroot[].
Currently, this page is mainly used as a _todo-list_.
[[events]]
== Events
=== Buildroot Developer Days aside ELC-E 2012 (November 3-4, 2012 - Barcelona)
* Event page: http://elinux.org/Buildroot:DeveloperDaysELCE2012[]
=== Buildroot presentation at LSM 2012 (July 12-14, 2012 - Geneva)
* Announcement: http://lists.busybox.net/pipermail/buildroot/2012-May/053845.html[]
=== Buildroot Developer Days aside FOSDEM 2012 (February 3, 2012 - Brussels)
* Announcement & agenda thread: http://lists.busybox.net/pipermail/buildroot/2012-January/049340.html[]
* Report: http://lists.busybox.net/pipermail/buildroot/2012-February/050371.html[]

View File

@@ -4,23 +4,13 @@
[[getting-buildroot]]
== Getting Buildroot
Buildroot releases are made approximately every 3 months. Direct Git
access and daily snapshots are also available, if you want more
bleeding edge.
Buildroot releases are made every 3 months, in February, May, August and
November. Release numbers are in the format YYYY.MM, so for example
2013.02, 2014.08.
Releases are available at http://buildroot.net/downloads/[].
The latest snapshot is always available at
http://buildroot.net/downloads/snapshots/buildroot-snapshot.tar.bz2[],
and previous snapshots are also available at
http://buildroot.net/downloads/snapshots/[].
To download Buildroot using Git, you can simply follow the rules
described on the "Accessing Git" page
(http://buildroot.net/git.html[]) of the Buildroot website
(http://buildroot.net[]). For the impatient, here's a quick recipe:
---------------------
$ git clone git://git.buildroot.net/buildroot
---------------------
Release tarballs are available at http://buildroot.org/downloads/[].
If you want to follow development, you can use the daily snapshots or
make a clone of the Git repository. Refer to the
http://buildroot.org/download[Download page] of the Buildroot website
for more details.

View File

@@ -1,8 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Going further in Buildroot's innards
include::how-buildroot-works.txt[]
include::advanced.txt[]

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= About Buildroot
== About Buildroot
Buildroot is a tool that simplifies and automates the process of
building a complete Linux system for an embedded system, using

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Known issues
== Known issues
* It is not possible to pass extra linker options via +BR2_TARGET_LDFLAGS+
if such options contain a +$+ sign. For example, the following is known

View File

@@ -3,9 +3,9 @@
[[legal-info]]
= Legal notice and licensing
== Legal notice and licensing
== Complying with open source licenses
=== Complying with open source licenses
All of the end products of Buildroot (toolchain, root filesystem, kernel,
bootloaders) contain open source software, released under various licenses.
@@ -69,7 +69,7 @@ When you run +make legal-info+, Buildroot produces warnings in the +README+
file to inform you of relevant material that could not be saved.
[[legal-info-list-licenses]]
== License abbreviations
=== License abbreviations
Here is a list of the licenses that are most widely used by packages in
Buildroot, with the name used in the manifest files:
@@ -123,7 +123,7 @@ Buildroot, with the name used in the manifest files:
http://apache.org/licenses/LICENSE-2.0.html[
Apache License, version 2.0];
== Complying with the Buildroot license
=== Complying with the Buildroot license
Buildroot itself is an open source software, released under the
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General Public

View File

@@ -2,20 +2,10 @@
// vim: set syntax=asciidoc:
[[make-tips]]
== 'make' tips
=== 'make' tips
This is a collection of tips that help you make the most of Buildroot.
.Configuration searches:
The +make *config+ commands offer a search tool. Read the help message in
the different frontend menus to know how to use it:
* in _menuconfig_, the search tool is called by pressing +/+;
* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
The result of the search shows the help message of the matching items.
.Display all commands executed by make:
--------------------

View File

@@ -56,6 +56,11 @@ $(1)-$(3): $$(O)/docs/$(1)/$(1).$(4)
manual-check-dependencies-$(3):
MANUAL_$(2)_ASCIIDOC_CONF = docs/$(1)/asciidoc-$(2).conf
ifneq ($$(wildcard $$(MANUAL_$(2)_ASCIIDOC_CONF)),)
MANUAL_$(2)_ASCIIDOC_OPTS += -f $$(MANUAL_$(2)_ASCIIDOC_CONF)
endif
$$(O)/docs/$(1)/$(1).$(4): docs/$(1)/$(1).txt \
$$($$(call UPPERCASE,$(1))_SOURCES) \
manual-check-dependencies \
@@ -65,7 +70,8 @@ $$(O)/docs/$(1)/$(1).$(4): docs/$(1)/$(1).txt \
$$(Q)mkdir -p $$(@D)/.build
$$(Q)rsync -au docs/$(1)/*.txt $$(@D)/.build
$$(Q)a2x $(6) -f $(2) -d book -L -r $$(TOPDIR)/docs/images \
-D $$(@D) $$(@D)/.build/$(1).txt
-D $$(@D) $$(@D)/.build/$(1).txt \
--asciidoc-opts="$$(MANUAL_$(2)_ASCIIDOC_OPTS)"
-$$(Q)rm -rf $$(@D)/.build
endef
@@ -78,16 +84,16 @@ endef
# The variable <DOCUMENT_NAME>_SOURCES defines the dependencies.
################################################################################
define GENDOC
$(call GENDOC_INNER,$(1),xhtml,html,html,HTML,--xsltproc-opts "--stringparam toc.section.depth 2")
$(call GENDOC_INNER,$(1),chunked,split-html,chunked,split HTML,--xsltproc-opts "--stringparam toc.section.depth 2")
$(call GENDOC_INNER,$(1),pdf,pdf,pdf,PDF,--dblatex-opts "-P latex.output.revhistory=0")
$(call GENDOC_INNER,$(1),text,text,text,text)
$(call GENDOC_INNER,$(1),epub,epub,epub,ePUB)
clean: $(1)-clean
$(1)-clean:
$$(Q)$$(RM) -rf $$(O)/docs/$(1)
.PHONY: $(1) $(1)-clean manual-update-lists
$(call GENDOC_INNER,$(pkgname),xhtml,html,html,HTML,--xsltproc-opts "--stringparam toc.section.depth 1")
$(call GENDOC_INNER,$(pkgname),chunked,split-html,chunked,split HTML,--xsltproc-opts "--stringparam toc.section.depth 1")
$(call GENDOC_INNER,$(pkgname),pdf,pdf,pdf,PDF,--dblatex-opts "-P latex.output.revhistory=0")
$(call GENDOC_INNER,$(pkgname),text,text,text,text)
$(call GENDOC_INNER,$(pkgname),epub,epub,epub,ePUB)
clean: $(pkgname)-clean
$(pkgname)-clean:
$$(Q)$$(RM) -rf $$(O)/docs/$(pkgname)
.PHONY: $(pkgname) $(pkgname)-clean manual-update-lists
endef
MANUAL_SOURCES = $(sort $(wildcard docs/manual/*.txt) $(wildcard docs/images/*))
$(eval $(call GENDOC,manual))
$(eval $(call GENDOC))

View File

@@ -16,28 +16,52 @@ Copyright (C) 2004-2014 The Buildroot developers
image::logo.png[]
:leveloffset: 1
= Getting started
include::introduction.txt[]
include::starting-up.txt[]
include::prerequisite.txt[]
include::working-with.txt[]
include::getting.txt[]
include::quickstart.txt[]
include::resources.txt[]
= User guide
include::configure.txt[]
include::configure-other-components.txt[]
include::common-usage.txt[]
include::customize.txt[]
include::faq-troubleshooting.txt[]
include::known-issues.txt[]
include::going-further.txt[]
include::developer-guide.txt[]
include::legal-notice.txt[]
include::beyond-buildroot.txt[]
include::get-involved.txt[]
= Developer guide
include::how-buildroot-works.txt[]
include::writing-rules.txt[]
include::adding-packages.txt[]
include::patch-policy.txt[]
include::download-infra.txt[]
include::debugging-buildroot.txt[]
include::contribute.txt[]
= Appendix
include::appendix.txt[]

View File

@@ -3,7 +3,7 @@
[[pkg-build-steps]]
=== Package-specific _make_ targets
==== Package-specific _make_ targets
Running +make <package>+ builds and installs that particular package
and its dependencies.

View File

@@ -6,13 +6,11 @@
Buildroot is designed to run on Linux systems.
Buildroot needs some software to be already installed on the host
system; here are the lists of the mandatory and optional packages
(package names may vary between distributions).
Take care to _install both runtime and development data_, especially
for the libraries that may be packaged in 2 distinct packages.
While Buildroot itself will build most host packages it needs for the
compilation, certain standard Linux utilities are expected to be
already installed on the host system. Below you will find an overview of
the mandatory and optional packages (note that package names may vary
between distributions).
[[requirement-mandatory]]
@@ -45,14 +43,25 @@ for the libraries that may be packaged in 2 distinct packages.
=== Optional packages
* Configuration interface dependencies:
+
For these libraries, you need to install both runtime and development
data, which in many distributions are packaged separately. The
development packages typically have a _-dev_ or _-devel_ suffix.
+
** +ncurses5+ to use the 'menuconfig' interface
** +qt4+ to use the 'xconfig' interface
** +glib2+, +gtk2+ and +glade2+ to use the 'gconfig' interface
* Source fetching tools:
+
In the official tree, most of the package sources are retrieved
using +wget+; a few are only available through their +git+, +mercurial+,
+svn+ or +cvs+ repository.
+
All other source fetching methods are implemented and may be used in a
development context (further details: refer to xref:download-infra[]).
In the official tree, most of the package sources are retrieved using
+wget+ from _ftp_, _http_ or _https_ locations. A few packages are only
available through a version control system. Moreover, Buildroot is
capable of downloading sources via other tools, like +rsync+ or +scp+
(refer to xref:download-infra[] for more details). If you enable
packages using any of these methods, you will need to install the
corresponding tool on the host system:
+
** +bazaar+
** +cvs+
@@ -62,11 +71,6 @@ development context (further details: refer to xref:download-infra[]).
** +scp+
** +subversion+
* Configuration interface dependencies (requires development libraries):
** +ncurses5+ to use the 'menuconfig' interface
** +qt4+ to use the 'xconfig' interface
** +glib2+, +gtk2+ and +glade2+ to use the 'gconfig' interface
* Java-related packages, if the Java Classpath needs to be built for
the target system:
** The +javac+ compiler

View File

@@ -1,69 +1,76 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Using Buildroot
== Buildroot quick start
*Important*: you can and should *build everything as a normal user*. There
is no need to be root to configure and use Buildroot. By running all
commands as a regular user, you protect your system against packages
behaving badly during compilation and installation.
The first step when using Buildroot is to create a configuration.
Buildroot has a nice configuration tool similar to the one you can
find in the http://www.kernel.org/[Linux kernel] or in
http://www.busybox.net/[BusyBox]. Note that you can *and should build
everything as a normal user*. There is no need to be root to configure
and use Buildroot. The first step is to run the configuration
assistant:
http://www.busybox.net/[BusyBox].
From the buildroot directory, run
--------------------
$ make menuconfig
--------------------
or
for the original curses-based configurator, or
--------------------
$ make nconfig
--------------------
to run the old or new curses-based configurator, or
for the new curses-based configurator, or
--------------------
$ make xconfig
--------------------
or
for the Qt-based configurator, or
--------------------
$ make gconfig
--------------------
to run the Qt or GTK-based configurators.
for the GTK-based configurator.
All of these "make" commands will need to build a configuration
utility (including the interface), so you may need to install
"development" packages for relevant libraries used by the
configuration utilities. Check xref:requirement[] to know what
Buildroot needs, and specifically the xref:requirement-optional[optional requirements]
configuration utilities. Refer to xref:requirement[] for more details,
specifically the xref:requirement-optional[optional requirements]
to get the dependencies of your favorite interface.
For each menu entry in the configuration tool, you can find associated
help that describes the purpose of the entry.
help that describes the purpose of the entry. Refer to xref:configure[]
for details on some specific configuration aspects.
Once everything is configured, the configuration tool generates a
+.config+ file that contains the description of your
configuration. It will be used by the Makefiles to do what's needed.
+.config+ file that contains the entire configuration. This file will be
read by the top-level Makefile.
Let's go:
To start the build process, simply run:
--------------------
$ make
--------------------
You *should never* use +make -jN+ with Buildroot: it does not support
'top-level parallel make'. Instead, use the +BR2_JLEVEL+ option to
tell Buildroot to run each package compilation with +make -jN+.
You *should never* use +make -jN+ with Buildroot: top-level parallel
make is currently not supported. Instead, use the +BR2_JLEVEL+ option
to tell Buildroot to run the compilation of each individual package
with +make -jN+.
The `make` command will generally perform the following steps:
* download source files (as required);
* configure, build and install the cross-compiling toolchain using the
appropriate toolchain backend, or simply import an external toolchain;
* build/install selected target packages;
* configure, build and install the cross-compilation toolchain, or
simply import an external toolchain;
* configure, build and install selected target packages;
* build a kernel image, if selected;
* build a bootloader image, if selected;
* create a root filesystem in selected formats.
@@ -72,15 +79,16 @@ Buildroot output is stored in a single directory, +output/+.
This directory contains several subdirectories:
* +images/+ where all the images (kernel image, bootloader and root
filesystem images) are stored.
filesystem images) are stored. These are the files you need to put
on your target system.
* +build/+ where all the components are built
(this includes tools needed to run Buildroot on
the host and packages compiled for the target). The +build/+
directory contains one subdirectory for each of these components.
* +build/+ where all the components are built (this includes tools
needed by Buildroot on the host and packages compiled for the
target). This directory contains one subdirectory for each of these
components.
* +staging/+ which contains a hierarchy similar to a root filesystem
hierarchy. This directory contains the installation of the
hierarchy. This directory contains the headers and libraries of the
cross-compilation toolchain and all the userspace packages selected
for the target. However, this directory is 'not' intended to be
the root filesystem for the target: it contains a lot of development
@@ -109,7 +117,7 @@ This directory contains several subdirectories:
These commands, +make menuconfig|nconfig|gconfig|xconfig+ and +make+, are the
basic ones that allow to easily and quickly generate images fitting
your needs, with all the supports and applications you enabled.
your needs, with all the features and applications you enabled.
More details about the "make" command usage are given in
xref:make-tips[].

73
docs/manual/resources.txt Normal file
View File

@@ -0,0 +1,73 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[community-resources]]
== Community resources
Like any open source project, Buildroot has different ways to share
information in its community and outside.
Each of those ways may interest you if you are looking for some help,
want to understand Buildroot or contribute to the project.
Mailing List::
+
Buildroot has a mailing list for discussion and development. It is the
main method of interaction for Buildroot users and developers.
+
Only subscribers to the Buildroot mailing list are allowed to post to
this list. You can subscribe via the
http://lists.busybox.net/mailman/listinfo/buildroot[mailing list info
page].
+
Mails that are sent to the mailing list are also available in the
http://lists.busybox.net/pipermail/buildroot[mailing list archives] and
via http://gmane.org[Gmane], at
http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot[+gmane.comp.lib.uclibc.buildroot+].
Please search the mailing list archives before asking questions, since
there is a good chance someone else has asked the same question before.
IRC::
+
The Buildroot IRC channel irc://freenode.net/#buildroot[#buildroot] is
hosted on http://webchat.freenode.net[Freenode]. It is a useful place to
ask quick questions or discuss on certain topics.
+
When asking for help on IRC, share relevant logs or pieces of code
using a code sharing website, such as http://code.bulix.org.
+
Note that for certain questions, posting to the mailing list may be
better as it will reach more people, both developers and users.
Bug tracker::
+
Bugs in Buildroot can be reported via the mailing list or alternatively
via the https://bugs.busybox.net/buglist.cgi?product=buildroot[Buildroot
bugtracker]. Please refer to xref:reporting-bugs[] before creating a bug
report.
Wiki::
+
http://elinux.org/Buildroot[The Buildroot wiki page] is hosted on
the http://elinux.org[eLinux] wiki. It contains some useful links, an
overview of past and upcoming events, and a TODO list.
Patchwork::
+
Patchwork is a web-based patch tracking system designed to facilitate
the contribution and management of contributions to an open-source
project. Patches that have been sent to a mailing list are \'caught' by
the system, and appear on a web page. Any comments posted that
reference the patch are appended to the patch page too. For more
information on Patchwork see
http://jk.ozlabs.org/projects/patchwork[].
+
Buildroot's Patchwork website is mainly for use by Buildroot's
maintainer to ensure patches aren't missed. It is also used by Buildroot
patch reviewers (see also xref:apply-patches-patchwork[]).
However, since the website exposes patches and their corresponding
review comments in a clean and concise web interface, it can be useful
for all Buildroot developers.
+
The Buildroot patch management interface is available at
http://patchwork.buildroot.org[].

View File

@@ -1,11 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Starting up
include::prerequisite.txt[]
include::getting.txt[]
include::using.txt[]

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
=== Using +gdb+ in Buildroot
==== Using +gdb+ in Buildroot
Buildroot allows to do cross-debugging, where the debugger runs on the
build machine and communicates with +gdbserver+ on the target to

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
=== Using Buildroot during development
==== Using Buildroot during development
The normal operation of Buildroot is to download a tarball, extract
it, configure, compile and install the software component found inside

View File

@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
=== Using the generated toolchain outside Buildroot
==== Using the generated toolchain outside Buildroot
You may want to compile, for your target, your own programs or other
software that are not packaged in Buildroot. In order to do this you

View File

@@ -1,27 +0,0 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Working with Buildroot
This section explains how you can customize Buildroot to fit your
needs.
include::configure.txt[]
include::make-tips.txt[]
include::customize.txt[]
include::common-usage.txt[]
include::eclipse-integration.txt[]
== Hacking Buildroot
If Buildroot does not yet fit all your requirements, you may be
interested in hacking it to add:
* new packages: refer to the xref:adding-packages[Developer guide]
* new board support: refer to the
xref:customize-store-board-support[Developer guide].

View File

@@ -6,12 +6,47 @@
<ul>
<li><b>1 September 2014 -- 2014.08 released</b>
<p>The stable 2014.08 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08">CHANGES</a>
file for more details,
and go to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2014.08.tar.bz2">2014.08 release</a>.</p>
<li><b>26 August 2014 -- 2014.08-rc3 released</b>
<p>Release candidate 3 is out with more cleanups and build fixes. See the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc3">CHANGES</a>
file for details.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2014.08-rc3.tar.bz2">2014.08-rc3
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>18 August 2014 -- 2014.08-rc2 released</b>
<p>Another week, another release candidate with more cleanups and
build fixes. See the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc2">CHANGES</a>
file for details.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2014.08-rc2.tar.bz2">2014.08-rc2
release candidate</a>, and report any problems found to the <a
href="support.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>8 August 2014 -- 2014.08-rc1 released</b>
<p>We have a new release candidate! Lots of changes all over the
tree, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc1">CHANGES</a>
file for details.</p>
file for details, and read the
<a href="http://lists.busybox.net/pipermail/buildroot/2014-August/103972.html">announcement</a>.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2014.08-rc1.tar.bz2">2014.08-rc1

View File

@@ -21,7 +21,7 @@ choice
prompt "Kernel version"
config BR2_LINUX_KERNEL_LATEST_VERSION
bool "3.16"
bool "3.16.1"
config BR2_LINUX_KERNEL_SAME_AS_HEADERS
bool "Same as toolchain kernel headers"
@@ -104,7 +104,7 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
config BR2_LINUX_KERNEL_VERSION
string
default "3.16" if BR2_LINUX_KERNEL_LATEST_VERSION
default "3.16.1" if BR2_LINUX_KERNEL_LATEST_VERSION
default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
if BR2_LINUX_KERNEL_CUSTOM_VERSION

View File

@@ -385,7 +385,6 @@ else
SHARED_STATIC_LIBS_OPTS = --enable-static --enable-shared
endif
include package/pkg-utils.mk
include package/pkg-download.mk
include package/pkg-autotools.mk
include package/pkg-cmake.mk

View File

@@ -4,7 +4,7 @@
#
################################################################################
BANDWIDTHD_VERSION = v2.0.1-auto-r07
BANDWIDTHD_VERSION = v2.0.1-auto-r08
BANDWIDTHD_SITE = $(call github,nroach44,bandwidthd,$(BANDWIDTHD_VERSION))
# Specified as "any version of the GPL that is current as of your
@@ -15,6 +15,8 @@ BANDWIDTHD_DEPENDENCIES = gd libpng libpcap
BANDWIDTHD_AUTORECONF = YES
BANDWIDTHD_CONF_OPT += --without-x
ifeq ($(BR2_PACKAGE_BANDWIDTHD_POSTGRESQL),y)
BANDWIDTHD_DEPENDENCIES += postgresql
BANDWIDTHD_CONF_OPT += --with-postgresql-logging=true

View File

@@ -1,5 +1,5 @@
comment "beecrypt needs a toolchain w/ threads, atomic intrinsics"
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
comment "beecrypt needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_BEECRYPT
bool "beecrypt"
@@ -15,15 +15,15 @@ config BR2_PACKAGE_BEECRYPT_CPP
bool "C++ support"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR # icu
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
depends on !BR2_BINFMT_FLAT # icu
depends on BR2_ARCH_HAS_ATOMICS # icu
select BR2_PACKAGE_ICU
help
Enable C++ support. This pulls in the (large) icu package.
comment "C++ support needs a toolchain w/ wchar, atomic intrinsics"
comment "C++ support needs a toolchain w/ wchar"
depends on !BR2_BINFMT_FLAT
depends on BR2_INSTALL_LIBSTDCPP && (!BR2_USE_WCHAR || \
!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS)
depends on BR2_ARCH_HAS_ATOMICS
depends on BR2_INSTALL_LIBSTDCPP && !BR2_USE_WCHAR
endif # BR2_PACKAGE_BEECRYPT

View File

@@ -39,6 +39,17 @@ config BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
help
Enable the Bluez 5.x command line client.
config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL
bool "install GATT tool"
depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
help
Generic Attribute Profile (GATT) support. This provides
profile discovery and description services for Bluetooth Low
Energy. This will install the gatttool utility.
It is always built with BlueZ 5.x, but upstream choose not
to install it by default.
config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL
bool "build experimental plugins"
help
@@ -49,16 +60,6 @@ config BR2_PACKAGE_BLUEZ5_UTILS_TEST
help
Build BlueZ 5.x tests
config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL
bool "install GATT tool"
help
Generic Attribute Profile (GATT) support. This provides
profile discovery and description services for Bluetooth Low
Energy. This will install the gatttool utility.
It is always built with BlueZ 5.x, but upstream choose not
to install it by default.
endif
comment "bluez5-utils needs a toolchain w/ wchar, threads, IPv6, headers >= 3.4"

View File

@@ -0,0 +1,41 @@
From 5e101a32087bbba18ebbcdf75faee3fff27f7168 Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Sat, 30 Aug 2014 14:42:00 +0200
Subject: [PATCH 1/2] Add support for DISABLE_DOCUMENTATION
This commit adds the support for a make variable named
"DISABLE_DOCUMENTATION", which allows to disable the build of the
documentation. This is useful in contexts where the tools needed to
build the documentation are not necessarily available.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Makefile | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index e721e99..926885f 100644
--- a/Makefile
+++ b/Makefile
@@ -57,10 +57,15 @@ btrfs_image_libs = -lpthread
btrfs_fragments_libs = -lgd -lpng -ljpeg -lfreetype
SUBDIRS =
-BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS)) build-Documentation
-INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS)) install-Documentation
+BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS))
+INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS))
CLEANDIRS = $(patsubst %,clean-%,$(SUBDIRS))
+ifneq ($(DISABLE_DOCUMENTATION),1)
+BUILDDIRS += build-Documentation
+INSTALLDIRS += install-Documentation
+endif
+
.PHONY: $(SUBDIRS)
.PHONY: $(BUILDDIRS)
.PHONY: $(INSTALLDIRS)
--
2.0.0

View File

@@ -1,19 +0,0 @@
Disable documentation build/install, it needs asciidoc
and we don't use it anyway.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
diff -Nura btrfs-progs-v3.14.2.orig/Makefile btrfs-progs-v3.14.2/Makefile
--- btrfs-progs-v3.14.2.orig/Makefile 2014-05-29 21:56:59.000000000 -0300
+++ btrfs-progs-v3.14.2/Makefile 2014-06-17 16:53:29.404520306 -0300
@@ -57,8 +57,8 @@
btrfs_fragment_libs = -lgd -lpng -ljpeg -lfreetype
SUBDIRS =
-BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS)) build-Documentation
-INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS)) install-Documentation
+BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS))
+INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS))
CLEANDIRS = $(patsubst %,clean-%,$(SUBDIRS))
.PHONY: $(SUBDIRS)

View File

@@ -0,0 +1,101 @@
From 6cef3077e0e7073e3449286b3e544ec60e3c5270 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sat, 30 Aug 2014 14:43:04 +0200
Subject: [PATCH 2/2] Improve static building and installation
This commit improves the static-only building of btrfs-progs, and adds
support for installing the static only tools:
- It now ensures that all programs are built statically, not only a
small subset of them, by defining 'progs_static' from the existing
'progs' variable.
- It changes the order of libraries in the btrfs-%.static rule so
that -lpthread (part of STATIC_LIBS) appears *after* the '$($(subst
-,_,$(subst .static,,$@)-libs))' logic, which brings in
-lcom_err. This is needed because libcom_err.a uses the semaphore
functions, which are available in the pthread library.
- Adds the necessary rules to generate the btrfsck.static link and
btrfstune.static binary.
- Adds an 'install-static' target to install the static
binaries. Note that they are renamed to not carry a '.static'
suffix.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Makefile | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 926885f..93e264b 100644
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,8 @@ progs = mkfs.btrfs btrfs-debug-tree btrfsck \
btrfs btrfs-map-logical btrfs-image btrfs-zero-log btrfs-convert \
btrfs-find-root btrfstune btrfs-show-super
+progs_static = $(foreach p,$(progs),$(p).static)
+
# external libs required by various binaries; for btrfs-foo,
# specify btrfs_foo_libs = <list of libs>; see $($(subst...)) rules below
btrfs_convert_libs = -lext2fs -lcom_err
@@ -141,7 +143,7 @@ test:
# NOTE: For static compiles, you need to have all the required libs
# static equivalent available
#
-static: btrfs.static mkfs.btrfs.static btrfs-find-root.static
+static: $(progs_static)
version.h:
@echo " [SH] $@"
@@ -174,8 +176,8 @@ $(lib_links):
btrfs-%.static: $(static_objects) btrfs-%.static.o $(static_libbtrfs_objects)
@echo " [LD] $@"
$(Q)$(CC) $(STATIC_CFLAGS) -o $@ $@.o $(static_objects) \
- $(static_libbtrfs_objects) $(STATIC_LDFLAGS) $(STATIC_LIBS) \
- $($(subst -,_,$(subst .static,,$@)-libs))
+ $(static_libbtrfs_objects) $(STATIC_LDFLAGS) \
+ $($(subst -,_,$(subst .static,,$@)-libs)) $(STATIC_LIBS)
btrfs-%: $(objects) $(libs) btrfs-%.o
@echo " [LD] $@"
@@ -196,6 +198,10 @@ btrfsck: btrfs
@echo " [LN] $@"
$(Q)$(LN) -f btrfs btrfsck
+btrfsck.static: btrfs.static
+ @echo " [LN] $@"
+ $(Q)$(LN) -f $^ $@
+
mkfs.btrfs: $(objects) $(libs) mkfs.o
@echo " [LD] $@"
$(Q)$(CC) $(CFLAGS) -o mkfs.btrfs $(objects) mkfs.o $(LDFLAGS) $(LIBS)
@@ -209,6 +215,11 @@ btrfstune: $(objects) $(libs) btrfstune.o
@echo " [LD] $@"
$(Q)$(CC) $(CFLAGS) -o btrfstune $(objects) btrfstune.o $(LDFLAGS) $(LIBS)
+btrfstune.static: $(static_objects) btrfstune.static.o $(static_libbtrfs_objects)
+ @echo " [LD] $@"
+ $(Q)$(CC) $(STATIC_CFLAGS) -o $@ btrfstune.static.o $(static_objects) \
+ $(static_libbtrfs_objects) $(STATIC_LDFLAGS) $(STATIC_LIBS)
+
dir-test: $(objects) $(libs) dir-test.o
@echo " [LD] $@"
$(Q)$(CC) $(CFLAGS) -o dir-test $(objects) dir-test.o $(LDFLAGS) $(LIBS)
@@ -258,6 +269,11 @@ install: $(libs) $(progs) $(INSTALLDIRS)
$(INSTALL) -m755 -d $(DESTDIR)$(incdir)
$(INSTALL) -m644 $(headers) $(DESTDIR)$(incdir)
+install-static: $(progs_static) $(INSTALLDIRS)
+ for p in $(progs_static) ; do \
+ $(INSTALL) -D -m755 $$p $(DESTDIR)$(bindir)/`basename $$p .static` ; \
+ done
+
$(INSTALLDIRS):
@echo "Making install in $(patsubst install-%,%,$@)"
$(Q)$(MAKE) $(MAKEOPTS) -C $(patsubst install-%,%,$@) install
--
2.0.0

View File

@@ -4,19 +4,31 @@
#
################################################################################
BTRFS_PROGS_VERSION = 3.14.2
BTRFS_PROGS_VERSION = 3.16
BTRFS_PROGS_SITE = https://www.kernel.org/pub/linux/kernel/people/mason/btrfs-progs
BTRFS_PROGS_SOURCE = btrfs-progs-v$(BTRFS_PROGS_VERSION).tar.xz
BTRFS_PROGS_DEPENDENCIES = acl attr e2fsprogs lzo util-linux zlib
BTRFS_PROGS_LICENSE = GPLv2
BTRFS_PROGS_LICENSE_FILES = COPYING
BTRFS_PROGS_MAKE_FLAGS = DISABLE_DOCUMENTATION=1
ifeq ($(BR2_PREFER_STATIC_LIB),y)
BTRFS_PROGS_MAKE_TARGET = static
BTRFS_PROGS_MAKE_INSTALL_TARGET = install-static
else
BTRFS_PROGS_MAKE_TARGET = all
BTRFS_PROGS_MAKE_INSTALL_TARGET = install
endif
define BTRFS_PROGS_BUILD_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \
$(BTRFS_PROGS_MAKE_FLAGS) $(BTRFS_PROGS_MAKE_TARGET)
endef
define BTRFS_PROGS_INSTALL_TARGET_CMDS
$(MAKE) -C $(@D) prefix=/usr DESTDIR=$(TARGET_DIR) install
$(MAKE) -C $(@D) prefix=/usr DESTDIR=$(TARGET_DIR) \
$(BTRFS_PROGS_MAKE_FLAGS) $(BTRFS_PROGS_MAKE_INSTALL_TARGET)
endef
$(eval $(generic-package))

View File

@@ -1,5 +1,6 @@
config BR2_PACKAGE_CAIRO
bool "cairo"
depends on BR2_ARCH_HAS_ATOMICS
select BR2_PACKAGE_PIXMAN
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7

View File

@@ -10,6 +10,8 @@ CMAKE_SITE = http://www.cmake.org/files/v$(CMAKE_VERSION_MAJOR)
CMAKE_LICENSE = BSD-3c
CMAKE_LICENSE_FILES = Copyright.txt
HOST_CMAKE_DEPENDENCIES = host-pkgconf
define HOST_CMAKE_CONFIGURE_CMDS
(cd $(@D); \
LDFLAGS="$(HOST_LDFLAGS)" \

View File

@@ -26,18 +26,14 @@ config BR2_PACKAGE_CPPCMS_ICU
bool "enable icu support"
depends on !BR2_BINFMT_FLAT # icu
depends on BR2_USE_WCHAR # icu
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
depends on BR2_ARCH_HAS_ATOMICS # icu
select BR2_PACKAGE_ICU
help
Using ICU allows advanced localization features into CppCMS,
in another hand ICU is heavier than iconv.
comment "icu support needs a toolchain w/ wchar, atomic intrinsics"
depends on !BR2_BINFMT_FLAT || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
depends on !BR2_USE_WCHAR
endif
comment "cppcms needs a toolchain w/ C++, NPTL, dynamic library"
comment "cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
BR2_PREFER_STATIC_LIB
!BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB

View File

@@ -2,6 +2,10 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
bool "ecryptfs-utils"
select BR2_PACKAGE_KEYUTILS
select BR2_PACKAGE_LIBNSS
# runtime dependency only, some scripts are using the
# 'gettext' program to get translations
select BR2_PACKAGE_GETTEXT
depends on BR2_USE_WCHAR # gettext
depends on BR2_USE_MMU # keyutils
depends on !BR2_avr32 && !BR2_microblaze # keyutils
depends on BR2_LARGEFILE # libnss
@@ -23,8 +27,8 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
http://ecryptfs.org
comment "ecryptfs-utils needs a toolchain w/ largefile, threads"
comment "ecryptfs-utils needs a toolchain w/ largefile, threads, wchar"
depends on !BR2_avr32 && !BR2_microblaze
depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT
depends on BR2_USE_MMU
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR

View File

@@ -1,6 +1,7 @@
config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS
bool "libevas generic loaders"
select BR2_PACKAGE_LIBEINA
select BR2_PACKAGE_ZLIB
help
These are additional "generic" loaders for Evas that are
stand-alone executables that evas may run from its generic
@@ -17,10 +18,12 @@ config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG
depends on BR2_USE_WCHAR # librsvg -> glib2
depends on BR2_TOOLCHAIN_HAS_THREADS # librsvg -> glib2
depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
depends on BR2_ARCH_HAS_ATOMICS # cairo
help
This option enables the Evas generic SVG loader
comment "SVG loader needs a toolchain w/ wchar, threads, C++"
depends on BR2_ARCH_HAS_ATOMICS
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
endif

View File

@@ -12,7 +12,7 @@ LIBEVAS_GENERIC_LOADERS_LICENSE_FILES = COPYING
LIBEVAS_GENERIC_LOADERS_INSTALL_STAGING = YES
LIBEVAS_GENERIC_LOADERS_DEPENDENCIES = libeina
LIBEVAS_GENERIC_LOADERS_DEPENDENCIES = libeina zlib
# For now, we only support the SVG loader
LIBEVAS_GENERIC_LOADERS_CONF_OPT += \

View File

@@ -0,0 +1,22 @@
downloaded from
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/empty/files/empty-respect-LDFLAGS.patch?view=markup
Reported on the Gentoo bug tracker
https://bugs.gentoo.org/show_bug.cgi?id=429664
and reported upstream
https://sourceforge.net/tracker/?func=detail&aid=3554236&group_id=136798&atid=736886
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
--- empty-0.6.18b/Makefile
+++ empty-0.6.18b/Makefile
@@ -16,7 +16,7 @@
PREFIX = /usr/local
all:
- ${CC} ${CFLAGS} -Wall ${LIBS} -o empty empty.c
+ ${CC} ${CFLAGS} ${LDFLAGS} empty.c ${LIBS} -o empty
FreeBSD: all
NetBSD: all

View File

@@ -1,11 +1,13 @@
comment "espeak needs a toolchain w/ C++, wchar, threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR
depends on BR2_USE_MMU
config BR2_PACKAGE_ESPEAK
bool "espeak"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU # fork()
help
espeak is a speech synthesizer software for English and
other languages.
@@ -26,14 +28,14 @@ config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
select BR2_PACKAGE_PORTAUDIO
select BR2_PACKAGE_PORTAUDIO_CXX
comment "pulseaudio backend needs a toolchain with largefile"
depends on !BR2_LARGEFILE
config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
bool "pulseaudio"
select BR2_PACKAGE_PULSEAUDIO
depends on BR2_LARGEFILE # pulseaudio
comment "pulseaudio backend needs a toolchain with largefile"
depends on !BR2_LARGEFILE
endchoice
endif # BR2_PACKAGE_ESPEAK

View File

@@ -1,6 +1,10 @@
comment "exim needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_EXIM
bool "exim"
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_PCRE
select BR2_PACKAGE_BERKELEYDB
help

View File

@@ -15,6 +15,12 @@ FBV_DEPENDENCIES = # empty
FBV_CONFIGURE_OPTS = # empty
ifeq ($(BR2_PACKAGE_FBV_PNG),y)
FBV_DEPENDENCIES += libpng
# libpng in turn depends on other libraries
ifeq ($(BR2_PREFER_STATIC_LIB),y)
FBV_CONFIGURE_OPTS += "--libs=$(shell $(PKG_CONFIG_HOST_BINARY) --libs libpng --static)"
endif
else
FBV_CONFIGURE_OPTS += --without-libpng
endif
@@ -29,7 +35,7 @@ else
FBV_CONFIGURE_OPTS += --without-libungif
endif
#fbv donesn't support cross-compilation
#fbv doesn't support cross-compilation
define FBV_CONFIGURE_CMDS
(cd $(FBV_DIR); rm -f config.cache; \
$(TARGET_CONFIGURE_OPTS) \

View File

@@ -329,6 +329,7 @@ define FFMPEG_CONFIGURE_CMDS
--host-cc="$(HOSTCC)" \
--arch=$(BR2_ARCH) \
--target-os="linux" \
--disable-stripping \
$(if $(BR2_GCC_TARGET_TUNE),--cpu=$(BR2_GCC_TARGET_TUNE)) \
$(SHARED_STATIC_LIBS_OPTS) \
$(FFMPEG_CONF_OPT) \

View File

@@ -1,13 +0,0 @@
Index: gcc-4.3.0/libstdc++-v3/include/c_global/cstdio
===================================================================
--- gcc-4.3.0/libstdc++-v3/include/c_global/cstdio (revision 129202)
+++ gcc-4.3.0/libstdc++-v3/include/c_global/cstdio (working copy)
@@ -144,7 +144,7 @@
_GLIBCXX_END_NAMESPACE
-#if _GLIBCXX_USE_C99
+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
#undef snprintf
#undef vfscanf

View File

@@ -0,0 +1,273 @@
Allow C99-depending features of libstdc++ with uClibc
The libstdc++ code is fairly restrictive on how it checks for C99
compatibility: it requires *complete* C99 support to enable certain
features. For example, uClibc provides a good number of C99 features,
but not C99 complex number support. For this reason, libstdc++
completely disables many the standard C++ methods that can in fact
work because uClibc provides the necessary functions.
This patch is similar and highly inspired from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
a way that doesn't involve changing the configure.ac script, as
autoreconfiguring gcc is complicated. It simply relies on the fact
that uClibc defines the __UCLIBC__ definition.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/generic/c_locale.h
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
@@ -71,7 +71,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
@@ -89,7 +89,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/include/bits/basic_string.h
===================================================================
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -2806,7 +2806,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && defined(_GLIBCXX_USE_C99) \
+#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -989,7 +989,7 @@
char __fbuf[16];
__num_base::_S_format_float(__io, __fbuf, __mod);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough (most probably sufficient
// for non-ios_base::fixed outputs)
int __cs_size = __max_digits * 3;
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -572,7 +572,7 @@
{
const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough.
int __cs_size = 64;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
Index: b/libstdc++-v3/include/c_compatibility/math.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/math.h
+++ b/libstdc++-v3/include/c_compatibility/math.h
@@ -57,7 +57,7 @@
using std::floor;
using std::fmod;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::fpclassify;
using std::isfinite;
using std::isinf;
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/wchar.h
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
@@ -103,7 +103,7 @@
using std::wmemset;
using std::wcsftime;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_global/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -146,7 +146,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_global/cwchar
===================================================================
--- a/libstdc++-v3/include/c_global/cwchar
+++ b/libstdc++-v3/include/c_global/cwchar
@@ -234,7 +234,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
@@ -291,7 +291,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_std/cstdio
===================================================================
--- a/libstdc++-v3/include/c_std/cstdio
+++ b/libstdc++-v3/include/c_std/cstdio
@@ -140,7 +140,7 @@
using ::vsprintf;
} // namespace std
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf
Index: b/libstdc++-v3/include/c_std/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_std/cstdlib
+++ b/libstdc++-v3/include/c_std/cstdlib
@@ -143,7 +143,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_std/cwchar
===================================================================
--- a/libstdc++-v3/include/c_std/cwchar
+++ b/libstdc++-v3/include/c_std/cwchar
@@ -230,7 +230,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
Index: b/libstdc++-v3/include/ext/vstring.h
===================================================================
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -2537,7 +2537,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && defined(_GLIBCXX_USE_C99))
+#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/tr1/cstdio
===================================================================
--- a/libstdc++-v3/include/tr1/cstdio
+++ b/libstdc++-v3/include/tr1/cstdio
@@ -33,7 +33,7 @@
#include <cstdio>
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cstdlib
===================================================================
--- a/libstdc++-v3/include/tr1/cstdlib
+++ b/libstdc++-v3/include/tr1/cstdlib
@@ -35,7 +35,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cwchar
===================================================================
--- a/libstdc++-v3/include/tr1/cwchar
+++ b/libstdc++-v3/include/tr1/cwchar
@@ -52,7 +52,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/tr1/stdlib.h
===================================================================
--- a/libstdc++-v3/include/tr1/stdlib.h
+++ b/libstdc++-v3/include/tr1/stdlib.h
@@ -33,7 +33,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::tr1::atoll;
using std::tr1::strtoll;
Index: b/libstdc++-v3/src/c++11/debug.cc
===================================================================
--- a/libstdc++-v3/src/c++11/debug.cc
+++ b/libstdc++-v3/src/c++11/debug.cc
@@ -783,7 +783,7 @@
int __n __attribute__ ((__unused__)),
const char* __fmt, _Tp __s) const throw ()
{
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
std::snprintf(__buf, __n, __fmt, __s);
#else
std::sprintf(__buf, __fmt, __s);
Index: b/libstdc++-v3/include/c_global/cstdio
===================================================================
--- a/libstdc++-v3/include/c_global/cstdio
+++ b/libstdc++-v3/include/c_global/cstdio
@@ -140,7 +140,7 @@
using ::vsprintf;
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf

View File

@@ -13,6 +13,12 @@ https://bitbucket.org/GregorR/musl-cross/src. Compared to the upstream version:
causing build failure. Bug reported upstream at
https://bitbucket.org/GregorR/musl-gcc-patches/issue/4/musl-gcc-patches-break-the-build-on.
* change the USE_PT_GNU_EH_FRAME logic to keep the existing gcc logic
and only add the musl one as an addition, not as a replacement. Not
doing this breaks C++ exception handling with glibc, because
USE_PT_GNU_EH_FRAME doesn't get defined due to the configure script
not testing dl_iterate_phdr() on any system except Solaris.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
@@ -71,7 +77,7 @@ Index: b/gcc/config.gcc
*)
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
;;
@@ -2092,6 +2095,10 @@
@@ -2091,6 +2094,10 @@
powerpc*-*-linux*paired*)
tm_file="${tm_file} rs6000/750cl.h" ;;
esac
@@ -299,46 +305,25 @@ Index: b/libgcc/unwind-dw2-fde-dip.c
===================================================================
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -47,28 +47,13 @@
#include "unwind-compat.h"
#include "gthr.h"
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__FreeBSD__) && __FreeBSD__ >= 7
-# define ElfW __ElfN
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__OpenBSD__)
-# define ElfW(type) Elf_##type
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(TARGET_DL_ITERATE_PHDR) \
- && defined(__sun__) && defined(__svr4__)
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
@@ -71,6 +71,13 @@
# define USE_PT_GNU_EH_FRAME
+# ifdef __OpenBSD__
+# define ElfW(type) Elf_##typ
+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7
+# define ElfW __ElfN
+# endif
#endif
+/* For musl libc, TARGET_DL_ITERATE_PHDR gets defined by the configure
+ script. */
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
+ && defined(TARGET_DL_ITERATE_PHDR)
+# define USE_PT_GNU_EH_FRAME
+#endif
+
#if defined(USE_PT_GNU_EH_FRAME)
#include <link.h>
Index: b/gcc/configure
===================================================================
--- a/gcc/configure
+++ b/gcc/configure
@@ -26787,6 +26787,9 @@
@@ -26791,6 +26791,9 @@
else
gcc_cv_libc_provides_ssp=no
case "$target" in
@@ -348,7 +333,7 @@ Index: b/gcc/configure
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
# glibc 2.4 and later provides __stack_chk_fail and
# either __stack_chk_guard, or TLS access to stack guard canary.
@@ -26820,6 +26823,7 @@
@@ -26824,6 +26827,7 @@
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
# simply assert that glibc does provide this, which is true for all
# realistically usable GNU/Hurd configurations.
@@ -356,7 +341,7 @@ Index: b/gcc/configure
gcc_cv_libc_provides_ssp=yes;;
*-*-darwin* | *-*-freebsd*)
ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail"
@@ -26902,6 +26906,9 @@
@@ -26906,6 +26910,9 @@
gcc_cv_target_dl_iterate_phdr=no
fi
;;
@@ -370,7 +355,7 @@ Index: b/gcc/configure.ac
===================================================================
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -4664,6 +4664,9 @@
@@ -4669,6 +4669,9 @@
gcc_cv_libc_provides_ssp,
[gcc_cv_libc_provides_ssp=no
case "$target" in
@@ -380,7 +365,7 @@ Index: b/gcc/configure.ac
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
[# glibc 2.4 and later provides __stack_chk_fail and
# either __stack_chk_guard, or TLS access to stack guard canary.
@@ -4697,6 +4700,7 @@
@@ -4702,6 +4705,7 @@
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
# simply assert that glibc does provide this, which is true for all
# realistically usable GNU/Hurd configurations.
@@ -388,7 +373,7 @@ Index: b/gcc/configure.ac
gcc_cv_libc_provides_ssp=yes;;
*-*-darwin* | *-*-freebsd*)
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
@@ -4762,6 +4766,9 @@
@@ -4767,6 +4771,9 @@
gcc_cv_target_dl_iterate_phdr=no
fi
;;

View File

@@ -1,13 +0,0 @@
Index: gcc-4.8.0/libstdc++-v3/include/c_global/cstdio
===================================================================
--- gcc-4.8.0.orig/libstdc++-v3/include/c_global/cstdio 2013-02-03 18:54:05.000000000 +0100
+++ gcc-4.8.0/libstdc++-v3/include/c_global/cstdio 2013-03-23 17:39:32.000000000 +0100
@@ -138,7 +138,7 @@
using ::vsprintf;
} // namespace
-#if _GLIBCXX_USE_C99
+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
#undef snprintf
#undef vfscanf

View File

@@ -0,0 +1,273 @@
Allow C99-depending features of libstdc++ with uClibc
The libstdc++ code is fairly restrictive on how it checks for C99
compatibility: it requires *complete* C99 support to enable certain
features. For example, uClibc provides a good number of C99 features,
but not C99 complex number support. For this reason, libstdc++
completely disables many the standard C++ methods that can in fact
work because uClibc provides the necessary functions.
This patch is similar and highly inspired from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
a way that doesn't involve changing the configure.ac script, as
autoreconfiguring gcc is complicated. It simply relies on the fact
that uClibc defines the __UCLIBC__ definition.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/generic/c_locale.h
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
@@ -70,7 +70,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
@@ -88,7 +88,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/include/bits/basic_string.h
===================================================================
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -2809,7 +2809,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -987,7 +987,7 @@
char __fbuf[16];
__num_base::_S_format_float(__io, __fbuf, __mod);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough (most probably sufficient
// for non-ios_base::fixed outputs)
int __cs_size = __max_digits * 3;
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -572,7 +572,7 @@
{
const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough.
int __cs_size = 64;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
Index: b/libstdc++-v3/include/c_compatibility/math.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/math.h
+++ b/libstdc++-v3/include/c_compatibility/math.h
@@ -56,7 +56,7 @@
using std::floor;
using std::fmod;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::fpclassify;
using std::isfinite;
using std::isinf;
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/wchar.h
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
@@ -103,7 +103,7 @@
using std::wmemset;
using std::wcsftime;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_global/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -182,7 +182,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_global/cwchar
===================================================================
--- a/libstdc++-v3/include/c_global/cwchar
+++ b/libstdc++-v3/include/c_global/cwchar
@@ -232,7 +232,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
@@ -289,7 +289,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_std/cstdio
===================================================================
--- a/libstdc++-v3/include/c_std/cstdio
+++ b/libstdc++-v3/include/c_std/cstdio
@@ -139,7 +139,7 @@
using ::vsprintf;
} // namespace std
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf
Index: b/libstdc++-v3/include/c_std/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_std/cstdlib
+++ b/libstdc++-v3/include/c_std/cstdlib
@@ -180,7 +180,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_std/cwchar
===================================================================
--- a/libstdc++-v3/include/c_std/cwchar
+++ b/libstdc++-v3/include/c_std/cwchar
@@ -228,7 +228,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
Index: b/libstdc++-v3/include/ext/vstring.h
===================================================================
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -2571,7 +2571,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/tr1/cstdio
===================================================================
--- a/libstdc++-v3/include/tr1/cstdio
+++ b/libstdc++-v3/include/tr1/cstdio
@@ -33,7 +33,7 @@
#include <cstdio>
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cstdlib
===================================================================
--- a/libstdc++-v3/include/tr1/cstdlib
+++ b/libstdc++-v3/include/tr1/cstdlib
@@ -35,7 +35,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cwchar
===================================================================
--- a/libstdc++-v3/include/tr1/cwchar
+++ b/libstdc++-v3/include/tr1/cwchar
@@ -52,7 +52,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/tr1/stdlib.h
===================================================================
--- a/libstdc++-v3/include/tr1/stdlib.h
+++ b/libstdc++-v3/include/tr1/stdlib.h
@@ -33,7 +33,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::tr1::atoll;
using std::tr1::strtoll;
Index: b/libstdc++-v3/src/c++11/debug.cc
===================================================================
--- a/libstdc++-v3/src/c++11/debug.cc
+++ b/libstdc++-v3/src/c++11/debug.cc
@@ -787,7 +787,7 @@
int __n __attribute__ ((__unused__)),
const char* __fmt, _Tp __s) const throw ()
{
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
std::snprintf(__buf, __n, __fmt, __s);
#else
std::sprintf(__buf, __fmt, __s);
Index: b/libstdc++-v3/include/c_global/cstdio
===================================================================
--- a/libstdc++-v3/include/c_global/cstdio
+++ b/libstdc++-v3/include/c_global/cstdio
@@ -139,7 +139,7 @@
using ::vsprintf;
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf

View File

@@ -13,12 +13,19 @@ https://bitbucket.org/GregorR/musl-cross/src. Compared to the upstream version:
causing build failure. Bug reported upstream at
https://bitbucket.org/GregorR/musl-gcc-patches/issue/4/musl-gcc-patches-break-the-build-on.
* change the USE_PT_GNU_EH_FRAME logic to keep the existing gcc logic
and only add the musl one as an addition, not as a replacement. Not
doing this breaks C++ exception handling with glibc, because
USE_PT_GNU_EH_FRAME doesn't get defined due to the configure script
not testing dl_iterate_phdr() on any system except Solaris.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Gustavo: Update for gcc 4.8.3]
diff -Nura gcc-4.8.3/fixincludes/mkfixinc.sh gcc-4.8.3-musl/fixincludes/mkfixinc.sh
--- gcc-4.8.3/fixincludes/mkfixinc.sh 2012-10-28 18:42:48.000000000 -0300
+++ gcc-4.8.3-musl/fixincludes/mkfixinc.sh 2014-05-22 15:07:17.966799753 -0300
Index: b/fixincludes/mkfixinc.sh
===================================================================
--- a/fixincludes/mkfixinc.sh
+++ b/fixincludes/mkfixinc.sh
@@ -19,7 +19,8 @@
powerpc-*-eabi* | \
powerpc-*-rtems* | \
@@ -29,9 +36,10 @@ diff -Nura gcc-4.8.3/fixincludes/mkfixinc.sh gcc-4.8.3-musl/fixincludes/mkfixinc
# IF there is no include fixing,
# THEN create a no-op fixer and exit
(echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
diff -Nura gcc-4.8.3/gcc/config/aarch64/aarch64-linux.h gcc-4.8.3-musl/gcc/config/aarch64/aarch64-linux.h
--- gcc-4.8.3/gcc/config/aarch64/aarch64-linux.h 2013-08-13 10:22:18.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/aarch64/aarch64-linux.h 2014-05-22 15:07:17.967799807 -0300
Index: b/gcc/config/aarch64/aarch64-linux.h
===================================================================
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -21,7 +21,12 @@
#ifndef GCC_AARCH64_LINUX_H
#define GCC_AARCH64_LINUX_H
@@ -45,9 +53,10 @@ diff -Nura gcc-4.8.3/gcc/config/aarch64/aarch64-linux.h gcc-4.8.3-musl/gcc/confi
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
diff -Nura gcc-4.8.3/gcc/config/arm/linux-eabi.h gcc-4.8.3-musl/gcc/config/arm/linux-eabi.h
--- gcc-4.8.3/gcc/config/arm/linux-eabi.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/arm/linux-eabi.h 2014-05-22 15:07:17.968799848 -0300
Index: b/gcc/config/arm/linux-eabi.h
===================================================================
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -77,6 +77,23 @@
%{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
%{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
@@ -72,9 +81,10 @@ diff -Nura gcc-4.8.3/gcc/config/arm/linux-eabi.h gcc-4.8.3-musl/gcc/config/arm/l
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
use the GNU/Linux version, not the generic BPABI version. */
#undef LINK_SPEC
diff -Nura gcc-4.8.3/gcc/config/i386/linux64.h gcc-4.8.3-musl/gcc/config/i386/linux64.h
--- gcc-4.8.3/gcc/config/i386/linux64.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/i386/linux64.h 2014-05-22 15:07:17.968799848 -0300
Index: b/gcc/config/i386/linux64.h
===================================================================
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
@@ -30,3 +30,10 @@
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
@@ -86,18 +96,20 @@ diff -Nura gcc-4.8.3/gcc/config/i386/linux64.h gcc-4.8.3-musl/gcc/config/i386/li
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
+#undef MUSL_DYNAMIC_LINKERX32
+#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
diff -Nura gcc-4.8.3/gcc/config/i386/linux.h gcc-4.8.3-musl/gcc/config/i386/linux.h
--- gcc-4.8.3/gcc/config/i386/linux.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/i386/linux.h 2014-05-22 15:07:17.968799848 -0300
Index: b/gcc/config/i386/linux.h
===================================================================
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -21,3 +21,5 @@
#define GNU_USER_LINK_EMULATION "elf_i386"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#undef MUSL_DYNAMIC_LINKER
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
diff -Nura gcc-4.8.3/gcc/config/linux.h gcc-4.8.3-musl/gcc/config/linux.h
--- gcc-4.8.3/gcc/config/linux.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/linux.h 2014-05-22 15:07:17.968799848 -0300
Index: b/gcc/config/linux.h
===================================================================
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -32,10 +32,12 @@
#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
@@ -254,9 +266,10 @@ diff -Nura gcc-4.8.3/gcc/config/linux.h gcc-4.8.3-musl/gcc/config/linux.h
+ { 0, 0, 0, 0, 0, 0 } \
+ }
+#endif
diff -Nura gcc-4.8.3/gcc/config/linux.opt gcc-4.8.3-musl/gcc/config/linux.opt
--- gcc-4.8.3/gcc/config/linux.opt 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/linux.opt 2014-05-22 15:07:17.969799879 -0300
Index: b/gcc/config/linux.opt
===================================================================
--- a/gcc/config/linux.opt
+++ b/gcc/config/linux.opt
@@ -30,3 +30,7 @@
muclibc
Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
@@ -265,9 +278,10 @@ diff -Nura gcc-4.8.3/gcc/config/linux.opt gcc-4.8.3-musl/gcc/config/linux.opt
+mmusl
+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
+Use musl C library
diff -Nura gcc-4.8.3/gcc/config/microblaze/linux.h gcc-4.8.3-musl/gcc/config/microblaze/linux.h
--- gcc-4.8.3/gcc/config/microblaze/linux.h 2013-03-14 12:43:23.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/microblaze/linux.h 2014-05-22 15:07:17.969799879 -0300
Index: b/gcc/config/microblaze/linux.h
===================================================================
--- a/gcc/config/microblaze/linux.h
+++ b/gcc/config/microblaze/linux.h
@@ -25,7 +25,23 @@
#undef TLS_NEEDS_GOT
#define TLS_NEEDS_GOT 1
@@ -293,18 +307,20 @@ diff -Nura gcc-4.8.3/gcc/config/microblaze/linux.h gcc-4.8.3-musl/gcc/config/mic
#undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \
{ "dynamic_linker", DYNAMIC_LINKER }
diff -Nura gcc-4.8.3/gcc/config/mips/linux64.h gcc-4.8.3-musl/gcc/config/mips/linux64.h
--- gcc-4.8.3/gcc/config/mips/linux64.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/mips/linux64.h 2014-05-22 15:07:52.473979031 -0300
Index: b/gcc/config/mips/linux64.h
===================================================================
--- a/gcc/config/mips/linux64.h
+++ b/gcc/config/mips/linux64.h
@@ -29,4 +29,4 @@
#define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
#define GNU_USER_DYNAMIC_LINKERN32 \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
- BIONIC_DYNAMIC_LINKERN32)
+ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKER)
diff -Nura gcc-4.8.3/gcc/config/mips/linux.h gcc-4.8.3-musl/gcc/config/mips/linux.h
--- gcc-4.8.3/gcc/config/mips/linux.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/mips/linux.h 2014-05-22 15:07:52.455978418 -0300
Index: b/gcc/config/mips/linux.h
===================================================================
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -18,3 +18,11 @@
<http://www.gnu.org/licenses/>. */
@@ -317,9 +333,10 @@ diff -Nura gcc-4.8.3/gcc/config/mips/linux.h gcc-4.8.3-musl/gcc/config/mips/linu
+#endif
+#undef MUSL_DYNAMIC_LINKER
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1"
diff -Nura gcc-4.8.3/gcc/config/rs6000/linux64.h gcc-4.8.3-musl/gcc/config/rs6000/linux64.h
--- gcc-4.8.3/gcc/config/rs6000/linux64.h 2014-04-04 12:10:24.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/rs6000/linux64.h 2014-05-22 15:07:52.455978418 -0300
Index: b/gcc/config/rs6000/linux64.h
===================================================================
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -374,17 +374,23 @@
#endif
#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
@@ -348,17 +365,19 @@ diff -Nura gcc-4.8.3/gcc/config/rs6000/linux64.h gcc-4.8.3-musl/gcc/config/rs600
#undef DEFAULT_ASM_ENDIAN
#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
diff -Nura gcc-4.8.3/gcc/config/rs6000/secureplt.h gcc-4.8.3-musl/gcc/config/rs6000/secureplt.h
--- gcc-4.8.3/gcc/config/rs6000/secureplt.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/rs6000/secureplt.h 2014-05-22 15:07:52.455978418 -0300
Index: b/gcc/config/rs6000/secureplt.h
===================================================================
--- a/gcc/config/rs6000/secureplt.h
+++ b/gcc/config/rs6000/secureplt.h
@@ -18,3 +18,4 @@
<http://www.gnu.org/licenses/>. */
#define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
diff -Nura gcc-4.8.3/gcc/config/rs6000/sysv4.h gcc-4.8.3-musl/gcc/config/rs6000/sysv4.h
--- gcc-4.8.3/gcc/config/rs6000/sysv4.h 2014-04-04 11:50:31.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/rs6000/sysv4.h 2014-05-22 15:07:52.456978446 -0300
Index: b/gcc/config/rs6000/sysv4.h
===================================================================
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -537,6 +537,9 @@
#ifndef CC1_SECURE_PLT_DEFAULT_SPEC
#define CC1_SECURE_PLT_DEFAULT_SPEC ""
@@ -409,9 +428,10 @@ diff -Nura gcc-4.8.3/gcc/config/rs6000/sysv4.h gcc-4.8.3-musl/gcc/config/rs6000/
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
diff -Nura gcc-4.8.3/gcc/config/sh/linux.h gcc-4.8.3-musl/gcc/config/sh/linux.h
--- gcc-4.8.3/gcc/config/sh/linux.h 2013-03-14 00:01:53.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config/sh/linux.h 2014-05-22 15:07:52.456978446 -0300
Index: b/gcc/config/sh/linux.h
===================================================================
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -43,7 +43,15 @@
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
@@ -428,9 +448,10 @@ diff -Nura gcc-4.8.3/gcc/config/sh/linux.h gcc-4.8.3-musl/gcc/config/sh/linux.h
#undef SUBTARGET_LINK_EMUL_SUFFIX
#define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
diff -Nura gcc-4.8.3/gcc/config.gcc gcc-4.8.3-musl/gcc/config.gcc
--- gcc-4.8.3/gcc/config.gcc 2014-05-06 12:29:04.000000000 -0300
+++ gcc-4.8.3-musl/gcc/config.gcc 2014-05-22 15:07:17.967799807 -0300
Index: b/gcc/config.gcc
===================================================================
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -550,7 +550,7 @@
esac
@@ -461,9 +482,10 @@ diff -Nura gcc-4.8.3/gcc/config.gcc gcc-4.8.3-musl/gcc/config.gcc
if test x${enable_secureplt} = xyes; then
tm_file="rs6000/secureplt.h ${tm_file}"
fi
diff -Nura gcc-4.8.3/gcc/configure gcc-4.8.3-musl/gcc/configure
--- gcc-4.8.3/gcc/configure 2014-04-28 07:05:29.000000000 -0300
+++ gcc-4.8.3-musl/gcc/configure 2014-05-22 15:07:52.469978896 -0300
Index: b/gcc/configure
===================================================================
--- a/gcc/configure
+++ b/gcc/configure
@@ -26821,6 +26821,9 @@
else
gcc_cv_libc_provides_ssp=no
@@ -492,9 +514,10 @@ diff -Nura gcc-4.8.3/gcc/configure gcc-4.8.3-musl/gcc/configure
esac
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
diff -Nura gcc-4.8.3/gcc/configure.ac gcc-4.8.3-musl/gcc/configure.ac
--- gcc-4.8.3/gcc/configure.ac 2014-04-28 07:05:29.000000000 -0300
+++ gcc-4.8.3-musl/gcc/configure.ac 2014-05-22 15:07:52.471978964 -0300
Index: b/gcc/configure.ac
===================================================================
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -4750,6 +4750,9 @@
gcc_cv_libc_provides_ssp,
[gcc_cv_libc_provides_ssp=no
@@ -523,9 +546,10 @@ diff -Nura gcc-4.8.3/gcc/configure.ac gcc-4.8.3-musl/gcc/configure.ac
esac
GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR])
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
diff -Nura gcc-4.8.3/gcc/ginclude/stddef.h gcc-4.8.3-musl/gcc/ginclude/stddef.h
--- gcc-4.8.3/gcc/ginclude/stddef.h 2013-01-10 17:38:27.000000000 -0300
+++ gcc-4.8.3-musl/gcc/ginclude/stddef.h 2014-05-22 15:07:52.472978998 -0300
Index: b/gcc/ginclude/stddef.h
===================================================================
--- a/gcc/ginclude/stddef.h
+++ b/gcc/ginclude/stddef.h
@@ -181,6 +181,7 @@
#ifndef _GCC_SIZE_T
#ifndef _SIZET_
@@ -550,52 +574,28 @@ diff -Nura gcc-4.8.3/gcc/ginclude/stddef.h gcc-4.8.3-musl/gcc/ginclude/stddef.h
#endif /* __size_t */
#endif /* _SIZET_ */
#endif /* _GCC_SIZE_T */
diff -Nura gcc-4.8.3/libgcc/unwind-dw2-fde-dip.c gcc-4.8.3-musl/libgcc/unwind-dw2-fde-dip.c
--- gcc-4.8.3/libgcc/unwind-dw2-fde-dip.c 2013-02-04 16:06:20.000000000 -0300
+++ gcc-4.8.3-musl/libgcc/unwind-dw2-fde-dip.c 2014-05-22 15:07:52.472978998 -0300
@@ -46,33 +46,13 @@
#include "unwind-compat.h"
#include "gthr.h"
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__BIONIC__)
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__FreeBSD__) && __FreeBSD__ >= 7
-# define ElfW __ElfN
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__OpenBSD__)
-# define ElfW(type) Elf_##type
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(TARGET_DL_ITERATE_PHDR) \
- && defined(__sun__) && defined(__svr4__)
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
Index: b/libgcc/unwind-dw2-fde-dip.c
===================================================================
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -75,6 +75,13 @@
# define USE_PT_GNU_EH_FRAME
+# ifdef __OpenBSD__
+# define ElfW(type) Elf_##type
+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7
+# define ElfW __ElfN
+# endif
#endif
+/* For musl libc, TARGET_DL_ITERATE_PHDR gets defined by the configure
+ script. */
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
+ && defined(TARGET_DL_ITERATE_PHDR)
+# define USE_PT_GNU_EH_FRAME
+#endif
+
#if defined(USE_PT_GNU_EH_FRAME)
diff -Nura gcc-4.8.3/libgomp/config/posix/time.c gcc-4.8.3-musl/libgomp/config/posix/time.c
--- gcc-4.8.3/libgomp/config/posix/time.c 2013-01-14 15:18:49.000000000 -0300
+++ gcc-4.8.3-musl/libgomp/config/posix/time.c 2014-05-22 15:07:52.472978998 -0300
#include <link.h>
Index: b/libgomp/config/posix/time.c
===================================================================
--- a/libgomp/config/posix/time.c
+++ b/libgomp/config/posix/time.c
@@ -28,6 +28,8 @@
The following implementation uses the most simple POSIX routines.
If present, POSIX 4 clocks should be used instead. */
@@ -605,9 +605,10 @@ diff -Nura gcc-4.8.3/libgomp/config/posix/time.c gcc-4.8.3-musl/libgomp/config/p
#include "libgomp.h"
#include <unistd.h>
#if TIME_WITH_SYS_TIME
diff -Nura gcc-4.8.3/libitm/config/arm/hwcap.cc gcc-4.8.3-musl/libitm/config/arm/hwcap.cc
--- gcc-4.8.3/libitm/config/arm/hwcap.cc 2013-02-03 14:46:11.000000000 -0300
+++ gcc-4.8.3-musl/libitm/config/arm/hwcap.cc 2014-05-22 15:07:52.473979031 -0300
Index: b/libitm/config/arm/hwcap.cc
===================================================================
--- a/libitm/config/arm/hwcap.cc
+++ b/libitm/config/arm/hwcap.cc
@@ -40,7 +40,11 @@
#ifdef __linux__
@@ -620,9 +621,10 @@ diff -Nura gcc-4.8.3/libitm/config/arm/hwcap.cc gcc-4.8.3-musl/libitm/config/arm
#include <elf.h>
static void __attribute__((constructor))
diff -Nura gcc-4.8.3/libitm/config/linux/x86/tls.h gcc-4.8.3-musl/libitm/config/linux/x86/tls.h
--- gcc-4.8.3/libitm/config/linux/x86/tls.h 2013-02-03 14:46:11.000000000 -0300
+++ gcc-4.8.3-musl/libitm/config/linux/x86/tls.h 2014-05-22 15:07:52.473979031 -0300
Index: b/libitm/config/linux/x86/tls.h
===================================================================
--- a/libitm/config/linux/x86/tls.h
+++ b/libitm/config/linux/x86/tls.h
@@ -25,16 +25,19 @@
#ifndef LIBITM_X86_TLS_H
#define LIBITM_X86_TLS_H 1
@@ -652,9 +654,10 @@ diff -Nura gcc-4.8.3/libitm/config/linux/x86/tls.h gcc-4.8.3-musl/libitm/config/
+#endif
#endif // LIBITM_X86_TLS_H
diff -Nura gcc-4.8.3/libstdc++-v3/configure.host gcc-4.8.3-musl/libstdc++-v3/configure.host
--- gcc-4.8.3/libstdc++-v3/configure.host 2013-06-18 22:18:38.000000000 -0300
+++ gcc-4.8.3-musl/libstdc++-v3/configure.host 2014-05-22 15:07:52.473979031 -0300
Index: b/libstdc++-v3/configure.host
===================================================================
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -264,6 +264,13 @@
os_include_dir="os/bsd/freebsd"
;;

View File

@@ -1,13 +0,0 @@
Index: gcc-4.8.0/libstdc++-v3/include/c_global/cstdio
===================================================================
--- gcc-4.8.0.orig/libstdc++-v3/include/c_global/cstdio 2013-02-03 18:54:05.000000000 +0100
+++ gcc-4.8.0/libstdc++-v3/include/c_global/cstdio 2013-03-23 17:39:32.000000000 +0100
@@ -138,7 +138,7 @@
using ::vsprintf;
} // namespace
-#if _GLIBCXX_USE_C99
+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
#undef snprintf
#undef vfscanf

View File

@@ -0,0 +1,273 @@
Allow C99-depending features of libstdc++ with uClibc
The libstdc++ code is fairly restrictive on how it checks for C99
compatibility: it requires *complete* C99 support to enable certain
features. For example, uClibc provides a good number of C99 features,
but not C99 complex number support. For this reason, libstdc++
completely disables many the standard C++ methods that can in fact
work because uClibc provides the necessary functions.
This patch is similar and highly inspired from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
a way that doesn't involve changing the configure.ac script, as
autoreconfiguring gcc is complicated. It simply relies on the fact
that uClibc defines the __UCLIBC__ definition.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/generic/c_locale.h
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
@@ -70,7 +70,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
@@ -88,7 +88,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/include/bits/basic_string.h
===================================================================
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -2828,7 +2828,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -987,7 +987,7 @@
char __fbuf[16];
__num_base::_S_format_float(__io, __fbuf, __mod);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough (most probably sufficient
// for non-ios_base::fixed outputs)
int __cs_size = __max_digits * 3;
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -572,7 +572,7 @@
{
const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough.
int __cs_size = 64;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
Index: b/libstdc++-v3/include/c_compatibility/math.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/math.h
+++ b/libstdc++-v3/include/c_compatibility/math.h
@@ -56,7 +56,7 @@
using std::floor;
using std::fmod;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::fpclassify;
using std::isfinite;
using std::isinf;
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/wchar.h
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
@@ -103,7 +103,7 @@
using std::wmemset;
using std::wcsftime;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_global/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -182,7 +182,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_global/cwchar
===================================================================
--- a/libstdc++-v3/include/c_global/cwchar
+++ b/libstdc++-v3/include/c_global/cwchar
@@ -232,7 +232,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
@@ -289,7 +289,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_std/cstdio
===================================================================
--- a/libstdc++-v3/include/c_std/cstdio
+++ b/libstdc++-v3/include/c_std/cstdio
@@ -144,7 +144,7 @@
using ::vsprintf;
} // namespace std
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf
Index: b/libstdc++-v3/include/c_std/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_std/cstdlib
+++ b/libstdc++-v3/include/c_std/cstdlib
@@ -180,7 +180,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_std/cwchar
===================================================================
--- a/libstdc++-v3/include/c_std/cwchar
+++ b/libstdc++-v3/include/c_std/cwchar
@@ -228,7 +228,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
Index: b/libstdc++-v3/include/ext/vstring.h
===================================================================
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -2680,7 +2680,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/tr1/cstdio
===================================================================
--- a/libstdc++-v3/include/tr1/cstdio
+++ b/libstdc++-v3/include/tr1/cstdio
@@ -33,7 +33,7 @@
#include <cstdio>
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cstdlib
===================================================================
--- a/libstdc++-v3/include/tr1/cstdlib
+++ b/libstdc++-v3/include/tr1/cstdlib
@@ -35,7 +35,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cwchar
===================================================================
--- a/libstdc++-v3/include/tr1/cwchar
+++ b/libstdc++-v3/include/tr1/cwchar
@@ -52,7 +52,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/tr1/stdlib.h
===================================================================
--- a/libstdc++-v3/include/tr1/stdlib.h
+++ b/libstdc++-v3/include/tr1/stdlib.h
@@ -33,7 +33,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::tr1::atoll;
using std::tr1::strtoll;
Index: b/libstdc++-v3/src/c++11/debug.cc
===================================================================
--- a/libstdc++-v3/src/c++11/debug.cc
+++ b/libstdc++-v3/src/c++11/debug.cc
@@ -788,7 +788,7 @@
int __n __attribute__ ((__unused__)),
const char* __fmt, _Tp __s) const throw ()
{
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
std::snprintf(__buf, __n, __fmt, __s);
#else
std::sprintf(__buf, __fmt, __s);
Index: b/libstdc++-v3/include/c_global/cstdio
===================================================================
--- a/libstdc++-v3/include/c_global/cstdio
+++ b/libstdc++-v3/include/c_global/cstdio
@@ -146,7 +146,7 @@
using ::vsprintf;
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf

View File

@@ -13,6 +13,12 @@ https://bitbucket.org/GregorR/musl-cross/src. Compared to the upstream version:
causing build failure. Bug reported upstream at
https://bitbucket.org/GregorR/musl-gcc-patches/issue/4/musl-gcc-patches-break-the-build-on.
* change the USE_PT_GNU_EH_FRAME logic to keep the existing gcc logic
and only add the musl one as an addition, not as a replacement. Not
doing this breaks C++ exception handling with glibc, because
USE_PT_GNU_EH_FRAME doesn't get defined due to the configure script
not testing dl_iterate_phdr() on any system except Solaris.
[Gustavo: remove upstream applied gcc/config/sh/sh.c chunk for 4.9.1]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
@@ -54,7 +60,7 @@ Index: b/gcc/config.gcc
*)
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
;;
@@ -2323,6 +2326,10 @@
@@ -2322,6 +2325,10 @@
powerpc*-*-linux*paired*)
tm_file="${tm_file} rs6000/750cl.h" ;;
esac
@@ -446,7 +452,7 @@ Index: b/gcc/configure
===================================================================
--- a/gcc/configure
+++ b/gcc/configure
@@ -27300,6 +27300,9 @@
@@ -27328,6 +27328,9 @@
else
gcc_cv_libc_provides_ssp=no
case "$target" in
@@ -456,7 +462,7 @@ Index: b/gcc/configure
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
# glibc 2.4 and later provides __stack_chk_fail and
# either __stack_chk_guard, or TLS access to stack guard canary.
@@ -27332,6 +27335,7 @@
@@ -27360,6 +27363,7 @@
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
# simply assert that glibc does provide this, which is true for all
# realistically usable GNU/Hurd configurations.
@@ -464,7 +470,7 @@ Index: b/gcc/configure
gcc_cv_libc_provides_ssp=yes;;
*-*-darwin* | *-*-freebsd*)
ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail"
@@ -27421,6 +27425,9 @@
@@ -27449,6 +27453,9 @@
gcc_cv_target_dl_iterate_phdr=no
fi
;;
@@ -478,7 +484,7 @@ Index: b/gcc/configure.ac
===================================================================
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5001,6 +5001,9 @@
@@ -5016,6 +5016,9 @@
gcc_cv_libc_provides_ssp,
[gcc_cv_libc_provides_ssp=no
case "$target" in
@@ -488,7 +494,7 @@ Index: b/gcc/configure.ac
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
# glibc 2.4 and later provides __stack_chk_fail and
# either __stack_chk_guard, or TLS access to stack guard canary.
@@ -5027,6 +5030,7 @@
@@ -5042,6 +5045,7 @@
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
# simply assert that glibc does provide this, which is true for all
# realistically usable GNU/Hurd configurations.
@@ -496,7 +502,7 @@ Index: b/gcc/configure.ac
gcc_cv_libc_provides_ssp=yes;;
*-*-darwin* | *-*-freebsd*)
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
@@ -5093,6 +5097,9 @@
@@ -5108,6 +5112,9 @@
gcc_cv_target_dl_iterate_phdr=no
fi
;;
@@ -538,43 +544,17 @@ Index: b/libgcc/unwind-dw2-fde-dip.c
===================================================================
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -46,33 +46,13 @@
#include "unwind-compat.h"
#include "gthr.h"
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__BIONIC__)
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__FreeBSD__) && __FreeBSD__ >= 7
-# define ElfW __ElfN
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(__OpenBSD__)
-# define ElfW(type) Elf_##type
-# define USE_PT_GNU_EH_FRAME
-#endif
-
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && defined(TARGET_DL_ITERATE_PHDR) \
- && defined(__sun__) && defined(__svr4__)
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
@@ -73,6 +73,13 @@
&& defined(TARGET_DL_ITERATE_PHDR) \
&& defined(__sun__) && defined(__svr4__)
# define USE_PT_GNU_EH_FRAME
+# ifdef __OpenBSD__
+# define ElfW(type) Elf_##type
+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7
+# define ElfW __ElfN
+# endif
+ #endif
+
+/* For musl libc, TARGET_DL_ITERATE_PHDR gets defined by the configure
+ script. */
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
+ && defined(TARGET_DL_ITERATE_PHDR)
+# define USE_PT_GNU_EH_FRAME
#endif
#if defined(USE_PT_GNU_EH_FRAME)

View File

@@ -0,0 +1,273 @@
Allow C99-depending features of libstdc++ with uClibc
The libstdc++ code is fairly restrictive on how it checks for C99
compatibility: it requires *complete* C99 support to enable certain
features. For example, uClibc provides a good number of C99 features,
but not C99 complex number support. For this reason, libstdc++
completely disables many the standard C++ methods that can in fact
work because uClibc provides the necessary functions.
This patch is similar and highly inspired from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
a way that doesn't involve changing the configure.ac script, as
autoreconfiguring gcc is complicated. It simply relies on the fact
that uClibc defines the __UCLIBC__ definition.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/generic/c_locale.h
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
@@ -70,7 +70,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
===================================================================
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
@@ -88,7 +88,7 @@
__builtin_va_list __args;
__builtin_va_start(__args, __fmt);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
#else
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
Index: b/libstdc++-v3/include/bits/basic_string.h
===================================================================
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -2811,7 +2811,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -987,7 +987,7 @@
char __fbuf[16];
__num_base::_S_format_float(__io, __fbuf, __mod);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough (most probably sufficient
// for non-ios_base::fixed outputs)
int __cs_size = __max_digits * 3;
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
===================================================================
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -572,7 +572,7 @@
{
const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
// First try a buffer perhaps big enough.
int __cs_size = 64;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
Index: b/libstdc++-v3/include/c_compatibility/math.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/math.h
+++ b/libstdc++-v3/include/c_compatibility/math.h
@@ -56,7 +56,7 @@
using std::floor;
using std::fmod;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::fpclassify;
using std::isfinite;
using std::isinf;
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
===================================================================
--- a/libstdc++-v3/include/c_compatibility/wchar.h
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
@@ -103,7 +103,7 @@
using std::wmemset;
using std::wcsftime;
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_global/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -182,7 +182,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_global/cwchar
===================================================================
--- a/libstdc++-v3/include/c_global/cwchar
+++ b/libstdc++-v3/include/c_global/cwchar
@@ -232,7 +232,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
@@ -289,7 +289,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/c_std/cstdio
===================================================================
--- a/libstdc++-v3/include/c_std/cstdio
+++ b/libstdc++-v3/include/c_std/cstdio
@@ -139,7 +139,7 @@
using ::vsprintf;
} // namespace std
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf
Index: b/libstdc++-v3/include/c_std/cstdlib
===================================================================
--- a/libstdc++-v3/include/c_std/cstdlib
+++ b/libstdc++-v3/include/c_std/cstdlib
@@ -180,7 +180,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef _Exit
#undef llabs
Index: b/libstdc++-v3/include/c_std/cwchar
===================================================================
--- a/libstdc++-v3/include/c_std/cwchar
+++ b/libstdc++-v3/include/c_std/cwchar
@@ -228,7 +228,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef wcstold
#undef wcstoll
Index: b/libstdc++-v3/include/ext/vstring.h
===================================================================
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -2571,7 +2571,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
#include <ext/string_conversions.h>
Index: b/libstdc++-v3/include/tr1/cstdio
===================================================================
--- a/libstdc++-v3/include/tr1/cstdio
+++ b/libstdc++-v3/include/tr1/cstdio
@@ -33,7 +33,7 @@
#include <cstdio>
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cstdlib
===================================================================
--- a/libstdc++-v3/include/tr1/cstdlib
+++ b/libstdc++-v3/include/tr1/cstdlib
@@ -35,7 +35,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
namespace std _GLIBCXX_VISIBILITY(default)
{
Index: b/libstdc++-v3/include/tr1/cwchar
===================================================================
--- a/libstdc++-v3/include/tr1/cwchar
+++ b/libstdc++-v3/include/tr1/cwchar
@@ -52,7 +52,7 @@
using std::vwscanf;
#endif
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::wcstold;
using std::wcstoll;
using std::wcstoull;
Index: b/libstdc++-v3/include/tr1/stdlib.h
===================================================================
--- a/libstdc++-v3/include/tr1/stdlib.h
+++ b/libstdc++-v3/include/tr1/stdlib.h
@@ -33,7 +33,7 @@
#if _GLIBCXX_HOSTED
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
using std::tr1::atoll;
using std::tr1::strtoll;
Index: b/libstdc++-v3/src/c++11/debug.cc
===================================================================
--- a/libstdc++-v3/src/c++11/debug.cc
+++ b/libstdc++-v3/src/c++11/debug.cc
@@ -787,7 +787,7 @@
int __n __attribute__ ((__unused__)),
const char* __fmt, _Tp __s) const throw ()
{
-#ifdef _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
std::snprintf(__buf, __n, __fmt, __s);
#else
std::sprintf(__buf, __fmt, __s);
Index: b/libstdc++-v3/include/c_global/cstdio
===================================================================
--- a/libstdc++-v3/include/c_global/cstdio
+++ b/libstdc++-v3/include/c_global/cstdio
@@ -138,7 +138,7 @@
using ::vsprintf;
} // namespace
-#if _GLIBCXX_USE_C99
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf

View File

@@ -0,0 +1,33 @@
From 463c3bd09bfe8e924e19acad7a2a6af16953a704 Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Mon, 4 Aug 2014 10:31:25 +0200
Subject: [PATCH] CVE-2014-2497, NULL pointer dereference, fix #126
---
src/gdxpm.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/gdxpm.c b/src/gdxpm.c
index ae6e336..15603a6 100644
--- a/src/gdxpm.c
+++ b/src/gdxpm.c
@@ -83,6 +83,16 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromXpm(char *filename)
if(overflow2(sizeof(int), number)) {
goto done;
}
+ for(i = 0; i < number; i++) {
+ /*
+ avoid NULL pointer dereference
+ TODO better fix need to manage monochrome/monovisual
+ see m_color or g4_color or g_color
+ */
+ if (!image.colorTable[i].c_color) {
+ goto done;
+ }
+ }
colors = (int *)gdMalloc(sizeof(int) * number);
if(colors == NULL) {
--
1.8.5.2

View File

@@ -1,6 +1,5 @@
config BR2_PACKAGE_GETTEXT
bool "gettext"
depends on BR2_NEEDS_GETTEXT
depends on BR2_USE_WCHAR
help
The GNU `gettext' utilities are a set of tools that provide a

View File

@@ -7,6 +7,7 @@ config BR2_PACKAGE_GNUPG2
select BR2_PACKAGE_LIBKSBA
select BR2_PACKAGE_LIBPTHSEM
select BR2_PACKAGE_LIBPTHSEM_COMPAT
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
depends on BR2_USE_MMU # libassuan
help
GnuPG is the GNU project's complete and free implementation

View File

@@ -9,7 +9,8 @@ GNUPG2_SOURCE = gnupg-$(GNUPG2_VERSION).tar.bz2
GNUPG2_SITE = ftp://ftp.gnupg.org/gcrypt/gnupg
GNUPG2_LICENSE = GPLv3+
GNUPG2_LICENSE_FILES = COPYING
GNUPG2_DEPENDENCIES = zlib libgpg-error libgcrypt libassuan libksba libpthsem
GNUPG2_DEPENDENCIES = zlib libgpg-error libgcrypt libassuan libksba libpthsem \
$(if $(BR2_PACKAGE_LIBICONV),libiconv)
GNUPG2_CONF_OPT = \
--disable-rpath --disable-regex --disable-doc \
--with-libgpg-error-prefix=$(STAGING_DIR)/usr \

Some files were not shown because too many files have changed in this diff Show More