Compare commits

..
Author SHA1 Message Date
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:
https://bitbucket.org/libgd/gd-libgd/commits/463c3bd09bfe8e924e19acad7a2a6af16953a704

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
89 changed files with 2899 additions and 505 deletions
+25
View File
@@ -1,3 +1,28 @@
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.
+3 -1
View File
@@ -25,7 +25,7 @@
#--------------------------------------------------------------
# Set and export the version string
export BR2_VERSION := 2014.08-rc1
export BR2_VERSION := 2014.08-rc2
# 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)
################################################################################
+3
View File
@@ -1,3 +1,6 @@
# AVR32 is deprecated
BR2_DEPRECATED=y
# Architecture
BR2_avr32=y
+3
View File
@@ -1,3 +1,6 @@
# AVR32 is deprecated
BR2_DEPRECATED=y
# Architecture
BR2_avr32=y
+3 -1
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
+3 -1
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
+12 -11
View File
@@ -15,14 +15,14 @@ or
<p>
The latest release candidate is <b>2014.08-rc1</b>, which can be
The latest release candidate is <b>2014.08-rc2</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-rc2.tar.gz">buildroot-2014.08-rc2.tar.gz</a>
(<a href="/downloads/buildroot-2014.08-rc2.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-rc2.tar.bz2">buildroot-2014.08-rc2.tar.bz2</a>
(<a href="/downloads/buildroot-2014.08-rc2.tar.bz2.sign">PGP signature</a>).
<p>
This and earlier releases (and their PGP signatures) can always be downloaded from
@@ -30,17 +30,18 @@ This and earlier releases (and their PGP signatures) can always be downloaded fr
<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>
+1 -1
View File
@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== Advanced usage
=== Advanced usage
include::using-buildroot-toolchain.txt[]
-2
View File
@@ -1,8 +1,6 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Appendix
include::makedev-syntax.txt[]
include::makeusers-syntax.txt[]
+23
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}
+4 -4
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:
+1 -1
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
+38 -15
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.
-2
View File
@@ -1,8 +1,6 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Developer Guidelines
include::writing-rules.txt[]
include::adding-packages.txt[]
+1 -1
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
+8 -8
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
+48 -96
View File
@@ -1,54 +1,59 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Getting involved
[[community-resources]]
== Community resources
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[].
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.
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[].
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.
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.
[[patchwork]]
== Patchwork
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
@@ -56,66 +61,13 @@ 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.
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[].
[[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[]
+8 -18
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.
+1 -1
View File
@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Going further in Buildroot's innards
== Going further in Buildroot's innards
include::how-buildroot-works.txt[]
+1 -1
View File
@@ -1,7 +1,7 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
== How Buildroot works
=== How Buildroot works
As mentioned above, Buildroot is basically a set of Makefiles that
download, configure, and compile software with the correct options. It
+1 -1
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
+1 -1
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
+4 -4
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
+17 -11
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))
+10 -4
View File
@@ -16,12 +16,16 @@ Copyright (C) 2004-2014 The Buildroot developers
image::logo.png[]
:leveloffset: 1
= Getting started
include::introduction.txt[]
include::starting-up.txt[]
include::get-involved.txt[]
= User guide
include::working-with.txt[]
include::faq-troubleshooting.txt[]
@@ -30,14 +34,16 @@ 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::developer-guide.txt[]
include::contribute.txt[]
= Appendix
include::appendix.txt[]
+1 -1
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.
+22 -18
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
-2
View File
@@ -1,8 +1,6 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Starting up
include::prerequisite.txt[]
include::getting.txt[]
+1 -1
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
+1 -1
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
+1 -1
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
+33 -26
View File
@@ -3,67 +3,73 @@
== Using Buildroot
*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.
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 +78,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 +116,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[].
-2
View File
@@ -1,8 +1,6 @@
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
= Working with Buildroot
This section explains how you can customize Buildroot to fit your
needs.
+15 -1
View File
@@ -6,12 +6,26 @@
<ul>
<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
+2 -2
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
-1
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
+3 -1
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
+11 -10
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"
@@ -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
+5 -3
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
+7 -1
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) \
+1
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) \
-13
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
@@ -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
+23 -38
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
;;
-13
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
@@ -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
+108 -105
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"
;;
-13
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
@@ -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
+23 -43
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)
@@ -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
+33
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
+1
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
+2 -1
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 \
@@ -269,9 +269,13 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
bool "v4l2"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
help
elements for Video 4 Linux
comment "v4l2 needs toolchain w/ headers >= 3.0"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO
bool "cairo"
select BR2_PACKAGE_CAIRO
+6
View File
@@ -10,4 +10,10 @@ IFTOP_DEPENDENCIES = ncurses libpcap
IFTOP_LICENSE = GPLv2+
IFTOP_LICENSE_FILES = COPYING
IFTOP_LIBS = -lpcap
ifeq ($(BR2_PREFER_STATIC_LIB),y)
IFTOP_LIBS += $(shell $(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs)
endif
IFTOP_CONF_ENV += LIBS+="$(IFTOP_LIBS)"
$(eval $(autotools-package))
+1 -1
View File
@@ -29,7 +29,7 @@ endef
define HOST_INFOZIP_BUILD_CMDS
$(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) \
CFLAGS="$(HOST_CFLAGS) -I. -DUNIX" \
AS="$(HOST_CC) -c" \
AS="$(HOSTCC) -c" \
-f unix/Makefile generic
endef
@@ -0,0 +1,25 @@
Fix static only build
Make sure to build the shared library only if BUILD_SHARED_LIBS is
ON. Normally, CMake takes care of this automatically, but libcuefile
wants to build both the shared and static variants, so the normal
logic of CMake doesn't apply.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/src/CMakeLists.txt
===================================================================
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,7 +4,11 @@
add_library(cuefile-static STATIC cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan)
set_target_properties(cuefile-static PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1)
+if (BUILD_SHARED_LIBS)
add_library(cuefile-shared SHARED cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan)
set_target_properties(cuefile-shared PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1 VERSION 0.0.0 SOVERSION 0)
install(TARGETS cuefile-static cuefile-shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
+else (BUILD_SHARED_LIBS)
+install(TARGETS cuefile-static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
+endif (BUILD_SHARED_LIBS)
+14 -3
View File
@@ -11,16 +11,27 @@ LIBEBML_INSTALL_STAGING = YES
LIBEBML_LICENSE = LGPLv2.1+
LIBEBML_LICENSE_FILES = LICENSE.LGPL
ifeq ($(BR2_PREFER_STATIC_LIB),y)
LIBEBML_MAKE_TARGETS = staticlib
LIBEBML_MAKE_INSTALL_TARGETS = install_staticlib install_headers
else
LIBEBML_MAKE_TARGETS = staticlib sharedlib
LIBEBML_MAKE_INSTALL_TARGETS = install_staticlib install_sharedlib install_headers
endif
define LIBEBML_BUILD_CMDS
$(MAKE) -C $(@D)/make/linux CROSS="$(CCACHE) $(TARGET_CROSS)"
$(MAKE) -C $(@D)/make/linux CROSS="$(CCACHE) $(TARGET_CROSS)" \
$(LIBEBML_MAKE_TARGETS)
endef
define LIBEBML_INSTALL_STAGING_CMDS
$(MAKE) -C $(@D)/make/linux prefix=$(STAGING_DIR)/usr install
$(MAKE) -C $(@D)/make/linux prefix=$(STAGING_DIR)/usr \
$(LIBEBML_MAKE_INSTALL_TARGETS)
endef
define LIBEBML_INSTALL_TARGET_CMDS
$(MAKE) -C $(@D)/make/linux prefix=$(TARGET_DIR)/usr install
$(MAKE) -C $(@D)/make/linux prefix=$(TARGET_DIR)/usr \
$(LIBEBML_MAKE_INSTALL_TARGETS)
endef
$(eval $(generic-package))
@@ -0,0 +1,596 @@
Rename xfree() to libnftnl_xfree() to avoid symbol naming 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().
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/src/chain.c
===================================================================
--- a/src/chain.c
+++ b/src/chain.c
@@ -88,11 +88,11 @@
void nft_chain_free(struct nft_chain *c)
{
if (c->table != NULL)
- xfree(c->table);
+ nftnl_xfree(c->table);
if (c->type != NULL)
- xfree(c->type);
+ nftnl_xfree(c->type);
- xfree(c);
+ nftnl_xfree(c);
}
EXPORT_SYMBOL(nft_chain_free);
@@ -110,7 +110,7 @@
switch (attr) {
case NFT_CHAIN_ATTR_TABLE:
if (c->table) {
- xfree(c->table);
+ nftnl_xfree(c->table);
c->table = NULL;
}
break;
@@ -119,7 +119,7 @@
return;
case NFT_CHAIN_ATTR_TYPE:
if (c->type) {
- xfree(c->type);
+ nftnl_xfree(c->type);
c->type = NULL;
}
break;
@@ -164,7 +164,7 @@
break;
case NFT_CHAIN_ATTR_TABLE:
if (c->table)
- xfree(c->table);
+ nftnl_xfree(c->table);
c->table = strdup(data);
break;
@@ -194,7 +194,7 @@
break;
case NFT_CHAIN_ATTR_TYPE:
if (c->type)
- xfree(c->type);
+ nftnl_xfree(c->type);
c->type = strdup(data);
break;
@@ -714,7 +714,7 @@
return -1;
if (c->table)
- xfree(c->table);
+ nftnl_xfree(c->table);
c->table = strdup(table);
c->flags |= (1 << NFT_CHAIN_ATTR_TABLE);
@@ -743,7 +743,7 @@
return -1;
if (c->type)
- xfree(c->type);
+ nftnl_xfree(c->type);
c->type = strdup(type);
c->flags |= (1 << NFT_CHAIN_ATTR_TYPE);
@@ -991,7 +991,7 @@
list_del(&r->head);
nft_chain_free(r);
}
- xfree(list);
+ nftnl_xfree(list);
}
EXPORT_SYMBOL(nft_chain_list_free);
@@ -1070,6 +1070,6 @@
void nft_chain_list_iter_destroy(struct nft_chain_list_iter *iter)
{
- xfree(iter);
+ nftnl_xfree(iter);
}
EXPORT_SYMBOL(nft_chain_list_iter_destroy);
Index: b/src/common.c
===================================================================
--- a/src/common.c
+++ b/src/common.c
@@ -45,7 +45,7 @@
void nft_parse_err_free(struct nft_parse_err *err)
{
- xfree(err);
+ nftnl_xfree(err);
}
EXPORT_SYMBOL(nft_parse_err_free);
Index: b/src/expr.c
===================================================================
--- a/src/expr.c
+++ b/src/expr.c
@@ -52,7 +52,7 @@
if (expr->ops->free)
expr->ops->free(expr);
- xfree(expr);
+ nftnl_xfree(expr);
}
EXPORT_SYMBOL(nft_rule_expr_free);
Index: b/src/expr/data_reg.c
===================================================================
--- a/src/expr/data_reg.c
+++ b/src/expr/data_reg.c
@@ -130,7 +130,7 @@
NFT_XML_OPT, err);
if (chain != NULL) {
if (reg->chain)
- xfree(reg->chain);
+ nftnl_xfree(reg->chain);
reg->chain = strdup(chain);
}
Index: b/src/expr/immediate.c
===================================================================
--- a/src/expr/immediate.c
+++ b/src/expr/immediate.c
@@ -46,7 +46,7 @@
break;
case NFT_EXPR_IMM_CHAIN:
if (imm->data.chain)
- xfree(imm->data.chain);
+ nftnl_xfree(imm->data.chain);
imm->data.chain = strdup(data);
break;
Index: b/src/expr/log.c
===================================================================
--- a/src/expr/log.c
+++ b/src/expr/log.c
@@ -37,7 +37,7 @@
switch(type) {
case NFT_EXPR_LOG_PREFIX:
if (log->prefix)
- xfree(log->prefix);
+ nftnl_xfree(log->prefix);
log->prefix = strdup(data);
break;
@@ -139,7 +139,7 @@
if (tb[NFTA_LOG_PREFIX]) {
if (log->prefix)
- xfree(log->prefix);
+ nftnl_xfree(log->prefix);
log->prefix = strdup(mnl_attr_get_str(tb[NFTA_LOG_PREFIX]));
e->flags |= (1 << NFT_EXPR_LOG_PREFIX);
@@ -320,7 +320,7 @@
{
struct nft_expr_log *log = nft_expr_data(e);
- xfree(log->prefix);
+ nftnl_xfree(log->prefix);
}
struct expr_ops expr_ops_log = {
Index: b/src/expr/match.c
===================================================================
--- a/src/expr/match.c
+++ b/src/expr/match.c
@@ -50,7 +50,7 @@
break;
case NFT_EXPR_MT_INFO:
if (mt->data)
- xfree(mt->data);
+ nftnl_xfree(mt->data);
mt->data = data;
mt->data_len = data_len;
@@ -153,7 +153,7 @@
void *match_data;
if (match->data)
- xfree(match->data);
+ nftnl_xfree(match->data);
match_data = calloc(1, len);
if (match_data == NULL)
@@ -261,7 +261,7 @@
{
struct nft_expr_match *match = nft_expr_data(e);
- xfree(match->data);
+ nftnl_xfree(match->data);
}
struct expr_ops expr_ops_match = {
Index: b/src/expr/target.c
===================================================================
--- a/src/expr/target.c
+++ b/src/expr/target.c
@@ -50,7 +50,7 @@
break;
case NFT_EXPR_TG_INFO:
if (tg->data)
- xfree(tg->data);
+ nftnl_xfree(tg->data);
tg->data = data;
tg->data_len = data_len;
@@ -153,7 +153,7 @@
void *target_data;
if (target->data)
- xfree(target->data);
+ nftnl_xfree(target->data);
target_data = calloc(1, len);
if (target_data == NULL)
@@ -262,7 +262,7 @@
{
struct nft_expr_target *target = nft_expr_data(e);
- xfree(target->data);
+ nftnl_xfree(target->data);
}
struct expr_ops expr_ops_target = {
Index: b/src/internal.h
===================================================================
--- a/src/internal.h
+++ b/src/internal.h
@@ -143,7 +143,7 @@
uint32_t format, uint32_t flags);
int nft_event_footer_fprintf(FILE *fp, uint32_t format, uint32_t flags);
-void xfree(const void *ptr);
+void nftnl_xfree(const void *ptr);
struct expr_ops;
Index: b/src/mxml.c
===================================================================
--- a/src/mxml.c
+++ b/src/mxml.c
@@ -82,7 +82,7 @@
goto err_expr;
tree = mxmlLoadString(NULL, xml_text, MXML_OPAQUE_CALLBACK);
- xfree(xml_text);
+ nftnl_xfree(xml_text);
if (tree == NULL)
goto err_expr;
Index: b/src/rule.c
===================================================================
--- a/src/rule.c
+++ b/src/rule.c
@@ -74,11 +74,11 @@
nft_rule_expr_free(e);
if (r->table != NULL)
- xfree(r->table);
+ nftnl_xfree(r->table);
if (r->chain != NULL)
- xfree(r->chain);
+ nftnl_xfree(r->chain);
- xfree(r);
+ nftnl_xfree(r);
}
EXPORT_SYMBOL(nft_rule_free);
@@ -96,13 +96,13 @@
switch (attr) {
case NFT_RULE_ATTR_TABLE:
if (r->table) {
- xfree(r->table);
+ nftnl_xfree(r->table);
r->table = NULL;
}
break;
case NFT_RULE_ATTR_CHAIN:
if (r->chain) {
- xfree(r->chain);
+ nftnl_xfree(r->chain);
r->chain = NULL;
}
break;
@@ -138,13 +138,13 @@
switch(attr) {
case NFT_RULE_ATTR_TABLE:
if (r->table)
- xfree(r->table);
+ nftnl_xfree(r->table);
r->table = strdup(data);
break;
case NFT_RULE_ATTR_CHAIN:
if (r->chain)
- xfree(r->chain);
+ nftnl_xfree(r->chain);
r->chain = strdup(data);
break;
@@ -408,7 +408,7 @@
if (tb[NFTA_EXPR_DATA]) {
if (expr->ops->parse(expr, tb[NFTA_EXPR_DATA]) < 0) {
- xfree(expr);
+ nftnl_xfree(expr);
return -1;
}
}
@@ -506,7 +506,7 @@
mnl_attr_get_payload(tb[NFTA_RULE_USERDATA]);
if (r->user.data)
- xfree(r->user.data);
+ nftnl_xfree(r->user.data);
r->user.len = mnl_attr_get_payload_len(tb[NFTA_RULE_USERDATA]);
@@ -1074,7 +1074,7 @@
void nft_rule_expr_iter_destroy(struct nft_rule_expr_iter *iter)
{
- xfree(iter);
+ nftnl_xfree(iter);
}
EXPORT_SYMBOL(nft_rule_expr_iter_destroy);
@@ -1104,7 +1104,7 @@
list_del(&r->head);
nft_rule_free(r);
}
- xfree(list);
+ nftnl_xfree(list);
}
EXPORT_SYMBOL(nft_rule_list_free);
@@ -1189,6 +1189,6 @@
void nft_rule_list_iter_destroy(struct nft_rule_list_iter *iter)
{
- xfree(iter);
+ nftnl_xfree(iter);
}
EXPORT_SYMBOL(nft_rule_list_iter_destroy);
Index: b/src/ruleset.c
===================================================================
--- a/src/ruleset.c
+++ b/src/ruleset.c
@@ -48,7 +48,7 @@
nft_set_list_free(r->set_list);
if (r->flags & (1 << NFT_RULESET_ATTR_RULELIST))
nft_rule_list_free(r->rule_list);
- xfree(r);
+ nftnl_xfree(r);
}
EXPORT_SYMBOL(nft_ruleset_free);
Index: b/src/set.c
===================================================================
--- a/src/set.c
+++ b/src/set.c
@@ -46,15 +46,15 @@
struct nft_set_elem *elem, *tmp;
if (s->table != NULL)
- xfree(s->table);
+ nftnl_xfree(s->table);
if (s->name != NULL)
- xfree(s->name);
+ nftnl_xfree(s->name);
list_for_each_entry_safe(elem, tmp, &s->element_list, head) {
list_del(&elem->head);
nft_set_elem_free(elem);
}
- xfree(s);
+ nftnl_xfree(s);
}
EXPORT_SYMBOL(nft_set_free);
@@ -70,14 +70,14 @@
case NFT_SET_ATTR_TABLE:
if (s->flags & (1 << NFT_SET_ATTR_TABLE))
if (s->table) {
- xfree(s->table);
+ nftnl_xfree(s->table);
s->table = NULL;
}
break;
case NFT_SET_ATTR_NAME:
if (s->flags & (1 << NFT_SET_ATTR_NAME))
if (s->name) {
- xfree(s->name);
+ nftnl_xfree(s->name);
s->name = NULL;
}
break;
@@ -117,13 +117,13 @@
switch(attr) {
case NFT_SET_ATTR_TABLE:
if (s->table)
- xfree(s->table);
+ nftnl_xfree(s->table);
s->table = strdup(data);
break;
case NFT_SET_ATTR_NAME:
if (s->name)
- xfree(s->name);
+ nftnl_xfree(s->name);
s->name = strdup(data);
break;
@@ -827,7 +827,7 @@
list_del(&s->head);
nft_set_free(s);
}
- xfree(list);
+ nftnl_xfree(list);
}
EXPORT_SYMBOL(nft_set_list_free);
@@ -911,6 +911,6 @@
void nft_set_list_iter_destroy(struct nft_set_list_iter *iter)
{
- xfree(iter);
+ nftnl_xfree(iter);
}
EXPORT_SYMBOL(nft_set_list_iter_destroy);
Index: b/src/set_elem.c
===================================================================
--- a/src/set_elem.c
+++ b/src/set_elem.c
@@ -44,11 +44,11 @@
{
if (s->flags & (1 << NFT_SET_ELEM_ATTR_CHAIN)) {
if (s->data.chain) {
- xfree(s->data.chain);
+ nftnl_xfree(s->data.chain);
s->data.chain = NULL;
}
}
- xfree(s);
+ nftnl_xfree(s);
}
EXPORT_SYMBOL(nft_set_elem_free);
@@ -64,7 +64,7 @@
case NFT_SET_ELEM_ATTR_CHAIN:
if (s->flags & (1 << NFT_SET_ELEM_ATTR_CHAIN)) {
if (s->data.chain) {
- xfree(s->data.chain);
+ nftnl_xfree(s->data.chain);
s->data.chain = NULL;
}
}
@@ -98,7 +98,7 @@
break;
case NFT_SET_ELEM_ATTR_CHAIN: /* NFTA_SET_ELEM_DATA */
if (s->data.chain)
- xfree(s->data.chain);
+ nftnl_xfree(s->data.chain);
s->data.chain = strdup(data);
break;
@@ -290,7 +290,7 @@
}
}
if (ret < 0) {
- xfree(e);
+ nftnl_xfree(e);
return -1;
}
@@ -708,6 +708,6 @@
void nft_set_elems_iter_destroy(struct nft_set_elems_iter *iter)
{
- xfree(iter);
+ nftnl_xfree(iter);
}
EXPORT_SYMBOL(nft_set_elems_iter_destroy);
Index: b/src/table.c
===================================================================
--- a/src/table.c
+++ b/src/table.c
@@ -44,9 +44,9 @@
void nft_table_free(struct nft_table *t)
{
if (t->flags & (1 << NFT_TABLE_ATTR_NAME))
- xfree(t->name);
+ nftnl_xfree(t->name);
- xfree(t);
+ nftnl_xfree(t);
}
EXPORT_SYMBOL(nft_table_free);
@@ -64,7 +64,7 @@
switch (attr) {
case NFT_TABLE_ATTR_NAME:
if (t->name) {
- xfree(t->name);
+ nftnl_xfree(t->name);
t->name = NULL;
}
break;
@@ -95,7 +95,7 @@
switch (attr) {
case NFT_TABLE_ATTR_NAME:
if (t->name)
- xfree(t->name);
+ nftnl_xfree(t->name);
t->name = strdup(data);
break;
@@ -270,7 +270,7 @@
return -1;
if (t->name)
- xfree(t->name);
+ nftnl_xfree(t->name);
t->name = strdup(name);
t->flags |= (1 << NFT_TABLE_ATTR_NAME);
@@ -507,7 +507,7 @@
list_del(&r->head);
nft_table_free(r);
}
- xfree(list);
+ nftnl_xfree(list);
}
EXPORT_SYMBOL(nft_table_list_free);
@@ -586,6 +586,6 @@
void nft_table_list_iter_destroy(struct nft_table_list_iter *iter)
{
- xfree(iter);
+ nftnl_xfree(iter);
}
EXPORT_SYMBOL(nft_table_list_iter_destroy);
Index: b/src/utils.c
===================================================================
--- a/src/utils.c
+++ b/src/utils.c
@@ -180,7 +180,7 @@
return -1;
}
-void xfree(const void *ptr)
+void nftnl_xfree(const void *ptr)
{
free((void *)ptr);
}
@@ -214,7 +214,7 @@
out:
if (buf != _buf)
- xfree(buf);
+ nftnl_xfree(buf);
return ret;
}
+9 -5
View File
@@ -13,6 +13,7 @@ choice
config BR2_KERNEL_HEADERS_3_0
bool "Linux 3.0.x kernel headers"
depends on BR2_DEPRECATED_SINCE_2014_08
depends on !BR2_arc
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
@@ -37,6 +38,7 @@ choice
config BR2_KERNEL_HEADERS_3_11
bool "Linux 3.11.x kernel headers"
depends on BR2_DEPRECATED_SINCE_2014_08
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
config BR2_KERNEL_HEADERS_3_12
@@ -45,6 +47,7 @@ choice
config BR2_KERNEL_HEADERS_3_13
bool "Linux 3.13.x kernel headers"
depends on BR2_DEPRECATED_SINCE_2014_08
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
config BR2_KERNEL_HEADERS_3_14
@@ -53,6 +56,7 @@ choice
config BR2_KERNEL_HEADERS_3_15
bool "Linux 3.15.x kernel headers"
depends on BR2_DEPRECATED_SINCE_2014_08
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
config BR2_KERNEL_HEADERS_3_16
@@ -157,13 +161,13 @@ config BR2_DEFAULT_KERNEL_HEADERS
string
default "3.0.101" if BR2_KERNEL_HEADERS_3_0
default "3.2.62" if BR2_KERNEL_HEADERS_3_2
default "3.4.102" if BR2_KERNEL_HEADERS_3_4
default "3.4.103" if BR2_KERNEL_HEADERS_3_4
default "3.9.11" if BR2_KERNEL_HEADERS_3_9
default "3.10.52" if BR2_KERNEL_HEADERS_3_10
default "3.10.53" if BR2_KERNEL_HEADERS_3_10
default "3.11.10" if BR2_KERNEL_HEADERS_3_11
default "3.12.26" if BR2_KERNEL_HEADERS_3_12
default "3.13.11" if BR2_KERNEL_HEADERS_3_13
default "3.14.16" if BR2_KERNEL_HEADERS_3_14
default "3.15.9" if BR2_KERNEL_HEADERS_3_15
default "3.16" if BR2_KERNEL_HEADERS_3_16
default "3.14.17" if BR2_KERNEL_HEADERS_3_14
default "3.15.10" if BR2_KERNEL_HEADERS_3_15
default "3.16.1" if BR2_KERNEL_HEADERS_3_16
default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
+4
View File
@@ -8,6 +8,10 @@ LOCALEDEF_VERSION = 2.14.1-r17443-ptx1
LOCALEDEF_SOURCE = localedef-eglibc-$(LOCALEDEF_VERSION).tar.bz2
LOCALEDEF_SITE = http://www.pengutronix.de/software/ptxdist/temporary-src
# Avoid loading /usr/share/config.site that can redefine libdir when
# the host arch is a 64bit system.
HOST_LOCALEDEF_CONF_ENV = CONFIG_SITE="no"
HOST_LOCALEDEF_CONF_OPT += \
--prefix=/usr \
--with-glibc=./eglibc
+5 -1
View File
@@ -1,6 +1,10 @@
config BR2_PACKAGE_LTRACE
bool "ltrace"
depends on (BR2_i386 || BR2_arm || BR2_mips || BR2_mipsel \
# ltrace normally has mips/mipsel support, but it's currently
# broken (error: 'struct ltelf' has no member named
# 'relplt_count'). Issue reported upstream at
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756764.
depends on (BR2_i386 || BR2_arm \
|| BR2_powerpc || BR2_sparc || BR2_x86_64)
select BR2_PACKAGE_LIBELF
select BR2_PACKAGE_ELFUTILS
+1
View File
@@ -1,6 +1,7 @@
config BR2_PACKAGE_MATCHBOX
bool "MatchBox Window Manager"
depends on BR2_PACKAGE_XORG7
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_EXPAT
select BR2_PACKAGE_XLIB_LIBXEXT
+33 -2
View File
@@ -21,6 +21,7 @@ endif
ifeq ($(BR2_PACKAGE_MPD_ALSA),y)
MPD_DEPENDENCIES += alsa-lib
MPD_CONF_OPT += --enable-alsa
else
MPD_CONF_OPT += --disable-alsa
endif
@@ -28,91 +29,118 @@ endif
ifeq ($(BR2_PACKAGE_MPD_AO),y)
MPD_DEPENDENCIES += libao
MPD_CONF_OPT += --enable-ao
else
MPD_CONF_OPT += --disable-ao
endif
ifeq ($(BR2_PACKAGE_MPD_AUDIOFILE),y)
MPD_DEPENDENCIES += audiofile
MPD_CONF_OPT += --enable-audiofile
else
MPD_CONF_OPT += --disable-audiofile
endif
ifeq ($(BR2_PACKAGE_MPD_PULSEAUDIO),y)
MPD_DEPENDENCIES += pulseaudio
MPD_CONF_OPT += --enable-pulse
else
MPD_CONF_OPT += --disable-pulse
endif
ifeq ($(BR2_PACKAGE_MPD_BZIP2),y)
MPD_DEPENDENCIES += bzip2
MPD_CONF_OPT += --enable-bzip2
else
MPD_CONF_OPT += --disable-bzip2
endif
ifeq ($(BR2_PACKAGE_MPD_FAAD2),y)
MPD_DEPENDENCIES += faad2
MPD_CONF_OPT += --enable-aac
else
MPD_CONF_OPT += --disable-faad2
MPD_CONF_OPT += --disable-aac
endif
ifeq ($(BR2_PACKAGE_MPD_FLAC),y)
MPD_DEPENDENCIES += flac
MPD_CONF_OPT += --enable-flac
else
MPD_CONF_OPT += --without-flac --disable-oggflac
MPD_CONF_OPT += --disable-flac
endif
ifeq ($(BR2_PACKAGE_MPD_CURL),y)
MPD_DEPENDENCIES += libcurl
MPD_CONF_OPT += --enable-curl
else
MPD_CONF_OPT += --disable-curl
endif
ifeq ($(BR2_PACKAGE_MPD_LAME),y)
MPD_DEPENDENCIES += lame
MPD_CONF_OPT += --enable-lame-encoder
else
MPD_CONF_OPT += --disable-lame-encoder
endif
ifeq ($(BR2_PACKAGE_MPD_LIBSAMPLERATE),y)
MPD_DEPENDENCIES += libsamplerate
MPD_CONF_OPT += --enable-lsr
else
MPD_CONF_OPT += --disable-lsr
endif
ifeq ($(BR2_PACKAGE_MPD_LIBSNDFILE),y)
MPD_DEPENDENCIES += libsndfile
MPD_CONF_OPT += --enable-sndfile
else
MPD_CONF_OPT += --disable-sndfile
endif
ifeq ($(BR2_PACKAGE_MPD_OPUS),y)
MPD_DEPENDENCIES += opus
MPD_CONF_OPT += --enable-opus
else
MPD_CONF_OPT += --disable-opus
endif
ifeq ($(BR2_PACKAGE_MPD_VORBIS),y)
MPD_DEPENDENCIES += libvorbis
MPD_CONF_OPT += --enable-vorbis --enable-vorbis-encoder
else
MPD_CONF_OPT += --disable-vorbis --disable-vorbis-encoder
endif
ifeq ($(BR2_PACKAGE_MPD_MAD),y)
MPD_DEPENDENCIES += libid3tag libmad
MPD_CONF_OPT += --enable-mad
else
MPD_CONF_OPT += --disable-mad
endif
ifeq ($(BR2_PACKAGE_MPD_MPG123),y)
MPD_DEPENDENCIES += libid3tag mpg123
MPD_CONF_OPT += --enable-mpg123
else
MPD_CONF_OPT += --disable-mpg123
endif
ifeq ($(BR2_PACKAGE_MPD_MUSEPACK),y)
MPD_DEPENDENCIES += musepack
MPD_CONF_OPT += --enable-mpc
else
MPD_CONF_OPT += --disable-mpc
endif
ifeq ($(BR2_PACKAGE_MPD_SOUNDCLOUD),y)
MPD_DEPENDENCIES += yajl
MPD_CONF_OPT += --enable-soundcloud
else
MPD_CONF_OPT += --disable-soundcloud
endif
ifeq ($(BR2_PACKAGE_MPD_SQLITE),y)
MPD_DEPENDENCIES += sqlite
MPD_CONF_OPT += --enable-sqlite
else
MPD_CONF_OPT += --disable-sqlite
endif
@@ -129,10 +157,13 @@ endif
ifeq ($(BR2_PACKAGE_MPD_TWOLAME),y)
MPD_DEPENDENCIES += twolame
MPD_CONF_OPT += --enable-twolame-encoder
else
MPD_CONF_OPT += --disable-twolame-encoder
endif
ifeq ($(BR2_PACKAGE_MPD_WAVPACK),y)
MPD_DEPENDENCIES += wavpack
MPD_CONF_OPT += --enable-wavpack
else
MPD_CONF_OPT += --disable-wavpack
endif
@@ -0,0 +1,38 @@
From b8241447e2a910dde57bf5a44a4464d80c87ebca Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <peter@korsgaard.com>
Date: Mon, 11 Aug 2014 09:37:05 +0200
Subject: [PATCH] NetworkManagerUtils: fix build with toolchains not exporting
CLOCK_BOOTTIME
E.G. uClibc 0.9.33 and earlier.
Submitted upstream: https://bugzilla.gnome.org/show_bug.cgi?id=734599
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
src/NetworkManagerUtils.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index aa689ce..fc85b00 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -45,6 +45,15 @@
#include "nm-posix-signals.h"
/*
+ * Some toolchains (E.G. uClibc 0.9.33 and earlier) don't export
+ * CLOCK_BOOTTIME even though the kernel supports it, so provide a
+ * local definition
+ */
+#ifndef CLOCK_BOOTTIME
+#define CLOCK_BOOTTIME 7
+#endif
+
+/*
* nm_ethernet_address_is_valid
*
* Compares an Ethernet address against known invalid addresses.
--
2.0.0
+3 -1
View File
@@ -12,6 +12,8 @@ NFTABLES_DEPENDENCIES = gmp libmnl libnftnl readline host-bison host-flex \
NFTABLES_LICENSE = GPLv2
NFTABLES_LICENSE_FILES = COPYING
NFTABLES_CONF_ENV = ac_cv_prog_CONFIG_PDF=no
NFTABLES_CONF_ENV = \
ac_cv_prog_CONFIG_PDF=no \
LIBS="-lncurses"
$(eval $(autotools-package))
+7 -1
View File
@@ -10,7 +10,13 @@ NGREP_SITE = http://downloads.sourceforge.net/project/ngrep/ngrep/$(NGREP_VERSIO
NGREP_LICENSE = BSD-4c-like
NGREP_LICENSE_FILES = LICENSE.txt
NGREP_INSTALL_STAGING = YES
NGREP_CONF_ENV = LIBS="-lpcre"
NGREP_LIBS = -lpcap -lpcre
ifeq ($(BR2_PREFER_STATIC_LIB),y)
NGREP_LIBS += $(shell $(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs)
endif
NGREP_CONF_ENV += LIBS+="$(NGREP_LIBS)"
NGREP_CONF_OPT = \
--with-pcap-includes=$(STAGING_DIR)/usr/include \
--enable-pcre \
+24
View File
@@ -0,0 +1,24 @@
conf: fix parallel install
Do not reference the upsmon.conf.sample twice, otherwise install, with
a high number of make jobs, may fail, like so:
http://autobuild.buildroot.net/results/256/2567e13cd5bc702bc3a38a1d6fc8e34022cc7db5/build-end.log
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
Upstream status:
https://github.com/networkupstools/nut/pull/147
diff -durB nut-2.7.2.orig/conf/Makefile.am nut-2.7.2/conf/Makefile.am
--- nut-2.7.2.orig/conf/Makefile.am 2014-02-14 09:56:53.000000000 +0100
+++ nut-2.7.2/conf/Makefile.am 2014-08-17 11:33:46.804439240 +0200
@@ -2,7 +2,7 @@
INSTALL_0600 = $(INSTALL) -m 0600
-SECFILES = upsmon.conf.sample upsd.conf.sample upsd.users.sample
+SECFILES = upsd.conf.sample upsd.users.sample
PUBFILES = nut.conf.sample ups.conf.sample
CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \
upsstats-single.html.sample
@@ -0,0 +1,429 @@
From fa47376f4c3e03b18ccd52df53d8c5041155d4ed Mon Sep 17 00:00:00 2001
From: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Date: Fri, 4 Jul 2014 07:31:25 +0200
Subject: [PATCH] cryptodev: Fix issue with signature generation
That patch also enables support for SHA2 hashes, and
removes support for hashes that were never supported by
cryptodev.
---
crypto/engine/eng_cryptodev.c | 192 ++++++++++++++++++++++++++++++------------
1 file changed, 140 insertions(+), 52 deletions(-)
diff --git a/crypto/engine/eng_cryptodev.c b/crypto/engine/eng_cryptodev.c
index 568e131..a1c39e5 100644
--- a/crypto/engine/eng_cryptodev.c
+++ b/crypto/engine/eng_cryptodev.c
@@ -2,6 +2,7 @@
* Copyright (c) 2002 Bob Beck <beck@openbsd.org>
* Copyright (c) 2002 Theo de Raadt
* Copyright (c) 2002 Markus Friedl
+ * Copyright (c) 2012 Nikos Mavrogiannopoulos
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -74,8 +75,6 @@ struct dev_crypto_state {
int d_fd;
#ifdef USE_CRYPTODEV_DIGESTS
- char dummy_mac_key[HASH_MAX_LEN];
-
unsigned char digest_res[HASH_MAX_LEN];
char *mac_data;
int mac_len;
@@ -162,15 +161,21 @@ static struct {
static struct {
int id;
int nid;
- int keylen;
+ int digestlen;
} digests[] = {
+#if 0
+ /* HMAC is not supported */
{ CRYPTO_MD5_HMAC, NID_hmacWithMD5, 16},
{ CRYPTO_SHA1_HMAC, NID_hmacWithSHA1, 20},
- { CRYPTO_RIPEMD160_HMAC, NID_ripemd160, 16/*?*/},
- { CRYPTO_MD5_KPDK, NID_undef, 0},
- { CRYPTO_SHA1_KPDK, NID_undef, 0},
+ { CRYPTO_SHA2_256_HMAC, NID_hmacWithSHA256, 32},
+ { CRYPTO_SHA2_384_HMAC, NID_hmacWithSHA384, 48},
+ { CRYPTO_SHA2_512_HMAC, NID_hmacWithSHA512, 64},
+#endif
{ CRYPTO_MD5, NID_md5, 16},
{ CRYPTO_SHA1, NID_sha1, 20},
+ { CRYPTO_SHA2_256, NID_sha256, 32},
+ { CRYPTO_SHA2_384, NID_sha384, 48},
+ { CRYPTO_SHA2_512, NID_sha512, 64},
{ 0, NID_undef, 0},
};
#endif
@@ -248,13 +253,14 @@ get_cryptodev_ciphers(const int **cnids)
static int nids[CRYPTO_ALGORITHM_MAX];
struct session_op sess;
int fd, i, count = 0;
+ unsigned char fake_key[CRYPTO_CIPHER_MAX_KEY_LEN];
if ((fd = get_dev_crypto()) < 0) {
*cnids = NULL;
return (0);
}
memset(&sess, 0, sizeof(sess));
- sess.key = (caddr_t)"123456789abcdefghijklmno";
+ sess.key = (void*)fake_key;
for (i = 0; ciphers[i].id && count < CRYPTO_ALGORITHM_MAX; i++) {
if (ciphers[i].nid == NID_undef)
@@ -286,6 +292,7 @@ static int
get_cryptodev_digests(const int **cnids)
{
static int nids[CRYPTO_ALGORITHM_MAX];
+ unsigned char fake_key[CRYPTO_CIPHER_MAX_KEY_LEN];
struct session_op sess;
int fd, i, count = 0;
@@ -294,12 +301,12 @@ get_cryptodev_digests(const int **cnids)
return (0);
}
memset(&sess, 0, sizeof(sess));
- sess.mackey = (caddr_t)"123456789abcdefghijklmno";
+ sess.mackey = fake_key;
for (i = 0; digests[i].id && count < CRYPTO_ALGORITHM_MAX; i++) {
if (digests[i].nid == NID_undef)
continue;
sess.mac = digests[i].id;
- sess.mackeylen = digests[i].keylen;
+ sess.mackeylen = 8;
sess.cipher = 0;
if (ioctl(fd, CIOCGSESSION, &sess) != -1 &&
ioctl(fd, CIOCFSESSION, &sess.ses) != -1)
@@ -387,14 +394,14 @@ cryptodev_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
cryp.ses = sess->ses;
cryp.flags = 0;
cryp.len = inl;
- cryp.src = (caddr_t) in;
- cryp.dst = (caddr_t) out;
+ cryp.src = (void*) in;
+ cryp.dst = (void*) out;
cryp.mac = 0;
cryp.op = ctx->encrypt ? COP_ENCRYPT : COP_DECRYPT;
if (ctx->cipher->iv_len) {
- cryp.iv = (caddr_t) ctx->iv;
+ cryp.iv = (void*) ctx->iv;
if (!ctx->encrypt) {
iiv = in + inl - ctx->cipher->iv_len;
memcpy(save_iv, iiv, ctx->cipher->iv_len);
@@ -445,7 +452,7 @@ cryptodev_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
if ((state->d_fd = get_dev_crypto()) < 0)
return (0);
- sess->key = (caddr_t)key;
+ sess->key = (void*)key;
sess->keylen = ctx->key_len;
sess->cipher = cipher;
@@ -715,18 +722,6 @@ digest_nid_to_cryptodev(int nid)
}
-static int
-digest_key_length(int nid)
-{
- int i;
-
- for (i = 0; digests[i].id; i++)
- if (digests[i].nid == nid)
- return digests[i].keylen;
- return (0);
-}
-
-
static int cryptodev_digest_init(EVP_MD_CTX *ctx)
{
struct dev_crypto_state *state = ctx->md_data;
@@ -737,7 +732,6 @@ static int cryptodev_digest_init(EVP_MD_CTX *ctx)
printf("cryptodev_digest_init: Can't get digest \n");
return (0);
}
-
memset(state, 0, sizeof(struct dev_crypto_state));
if ((state->d_fd = get_dev_crypto()) < 0) {
@@ -745,8 +739,8 @@ static int cryptodev_digest_init(EVP_MD_CTX *ctx)
return (0);
}
- sess->mackey = state->dummy_mac_key;
- sess->mackeylen = digest_key_length(ctx->digest->type);
+ sess->mackey = NULL;
+ sess->mackeylen = 0;
sess->mac = digest;
if (ioctl(state->d_fd, CIOCGSESSION, sess) < 0) {
@@ -762,8 +756,8 @@ static int cryptodev_digest_init(EVP_MD_CTX *ctx)
static int cryptodev_digest_update(EVP_MD_CTX *ctx, const void *data,
size_t count)
{
- struct crypt_op cryp;
struct dev_crypto_state *state = ctx->md_data;
+ struct crypt_op cryp;
struct session_op *sess = &state->d_sess;
if (!data || state->d_fd < 0) {
@@ -772,7 +766,7 @@ static int cryptodev_digest_update(EVP_MD_CTX *ctx, const void *data,
}
if (!count) {
- return (0);
+ return (1);
}
if (!(ctx->flags & EVP_MD_CTX_FLAG_ONESHOT)) {
@@ -795,9 +789,9 @@ static int cryptodev_digest_update(EVP_MD_CTX *ctx, const void *data,
cryp.ses = sess->ses;
cryp.flags = 0;
cryp.len = count;
- cryp.src = (caddr_t) data;
+ cryp.src = (void*) data;
cryp.dst = NULL;
- cryp.mac = (caddr_t) state->digest_res;
+ cryp.mac = (void*) state->digest_res;
if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) {
printf("cryptodev_digest_update: digest failed\n");
return (0);
@@ -812,8 +806,6 @@ static int cryptodev_digest_final(EVP_MD_CTX *ctx, unsigned char *md)
struct dev_crypto_state *state = ctx->md_data;
struct session_op *sess = &state->d_sess;
- int ret = 1;
-
if (!md || state->d_fd < 0) {
printf("cryptodev_digest_final: illegal input\n");
return(0);
@@ -827,7 +819,7 @@ static int cryptodev_digest_final(EVP_MD_CTX *ctx, unsigned char *md)
cryp.len = state->mac_len;
cryp.src = state->mac_data;
cryp.dst = NULL;
- cryp.mac = (caddr_t)md;
+ cryp.mac = (void*)md;
if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) {
printf("cryptodev_digest_final: digest failed\n");
return (0);
@@ -838,7 +830,7 @@ static int cryptodev_digest_final(EVP_MD_CTX *ctx, unsigned char *md)
memcpy(md, state->digest_res, ctx->digest->md_size);
- return (ret);
+ return 1;
}
@@ -890,8 +882,8 @@ static int cryptodev_digest_copy(EVP_MD_CTX *to,const EVP_MD_CTX *from)
digest = digest_nid_to_cryptodev(to->digest->type);
- sess->mackey = dstate->dummy_mac_key;
- sess->mackeylen = digest_key_length(to->digest->type);
+ sess->mackey = NULL;
+ sess->mackeylen = 0;
sess->mac = digest;
dstate->d_fd = get_dev_crypto();
@@ -916,34 +908,117 @@ static int cryptodev_digest_copy(EVP_MD_CTX *to,const EVP_MD_CTX *from)
}
-const EVP_MD cryptodev_sha1 = {
+static const EVP_MD cryptodev_sha1 = {
NID_sha1,
- NID_undef,
+ NID_sha1WithRSAEncryption,
SHA_DIGEST_LENGTH,
+#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT)
+ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|
+ EVP_MD_FLAG_DIGALGID_ABSENT|
+#endif
EVP_MD_FLAG_ONESHOT,
cryptodev_digest_init,
cryptodev_digest_update,
cryptodev_digest_final,
cryptodev_digest_copy,
cryptodev_digest_cleanup,
- EVP_PKEY_NULL_method,
+ EVP_PKEY_RSA_method,
SHA_CBLOCK,
- sizeof(struct dev_crypto_state),
+ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state),
+};
+
+static const EVP_MD cryptodev_sha256 = {
+ NID_sha256,
+ NID_sha256WithRSAEncryption,
+ SHA256_DIGEST_LENGTH,
+#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT)
+ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|
+ EVP_MD_FLAG_DIGALGID_ABSENT|
+#endif
+ EVP_MD_FLAG_ONESHOT,
+ cryptodev_digest_init,
+ cryptodev_digest_update,
+ cryptodev_digest_final,
+ cryptodev_digest_copy,
+ cryptodev_digest_cleanup,
+ EVP_PKEY_RSA_method,
+ SHA256_CBLOCK,
+ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state),
+};
+static const EVP_MD cryptodev_sha224 = {
+ NID_sha224,
+ NID_sha224WithRSAEncryption,
+ SHA224_DIGEST_LENGTH,
+#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT)
+ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|
+ EVP_MD_FLAG_DIGALGID_ABSENT|
+#endif
+ EVP_MD_FLAG_ONESHOT,
+ cryptodev_digest_init,
+ cryptodev_digest_update,
+ cryptodev_digest_final,
+ cryptodev_digest_copy,
+ cryptodev_digest_cleanup,
+ EVP_PKEY_RSA_method,
+ SHA256_CBLOCK,
+ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state),
+};
+
+static const EVP_MD cryptodev_sha384 = {
+ NID_sha384,
+ NID_sha384WithRSAEncryption,
+ SHA384_DIGEST_LENGTH,
+#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT)
+ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|
+ EVP_MD_FLAG_DIGALGID_ABSENT|
+#endif
+ EVP_MD_FLAG_ONESHOT,
+ cryptodev_digest_init,
+ cryptodev_digest_update,
+ cryptodev_digest_final,
+ cryptodev_digest_copy,
+ cryptodev_digest_cleanup,
+ EVP_PKEY_RSA_method,
+ SHA512_CBLOCK,
+ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state),
+};
+
+static const EVP_MD cryptodev_sha512 = {
+ NID_sha512,
+ NID_sha512WithRSAEncryption,
+ SHA512_DIGEST_LENGTH,
+#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT)
+ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|
+ EVP_MD_FLAG_DIGALGID_ABSENT|
+#endif
+ EVP_MD_FLAG_ONESHOT,
+ cryptodev_digest_init,
+ cryptodev_digest_update,
+ cryptodev_digest_final,
+ cryptodev_digest_copy,
+ cryptodev_digest_cleanup,
+ EVP_PKEY_RSA_method,
+ SHA512_CBLOCK,
+ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state),
};
-const EVP_MD cryptodev_md5 = {
+static const EVP_MD cryptodev_md5 = {
NID_md5,
- NID_undef,
+ NID_md5WithRSAEncryption,
16 /* MD5_DIGEST_LENGTH */,
+#if defined(EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) && defined(EVP_MD_FLAG_DIGALGID_ABSENT)
+ EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|
+ EVP_MD_FLAG_DIGALGID_ABSENT|
+#endif
EVP_MD_FLAG_ONESHOT,
cryptodev_digest_init,
cryptodev_digest_update,
cryptodev_digest_final,
cryptodev_digest_copy,
cryptodev_digest_cleanup,
- EVP_PKEY_NULL_method,
+ EVP_PKEY_RSA_method,
64 /* MD5_CBLOCK */,
- sizeof(struct dev_crypto_state),
+ sizeof(EVP_MD *)+sizeof(struct dev_crypto_state),
};
#endif /* USE_CRYPTODEV_DIGESTS */
@@ -964,6 +1039,18 @@ cryptodev_engine_digests(ENGINE *e, const EVP_MD **digest,
case NID_sha1:
*digest = &cryptodev_sha1;
break;
+ case NID_sha224:
+ *digest = &cryptodev_sha224;
+ break;
+ case NID_sha256:
+ *digest = &cryptodev_sha256;
+ break;
+ case NID_sha384:
+ *digest = &cryptodev_sha384;
+ break;
+ case NID_sha512:
+ *digest = &cryptodev_sha512;
+ break;
default:
#endif /* USE_CRYPTODEV_DIGESTS */
*digest = NULL;
@@ -995,7 +1082,7 @@ bn2crparam(const BIGNUM *a, struct crparam *crp)
return (1);
memset(b, 0, bytes);
- crp->crp_p = (caddr_t) b;
+ crp->crp_p = (void*) b;
crp->crp_nbits = bits;
for (i = 0, j = 0; i < a->top; i++) {
@@ -1248,7 +1335,7 @@ cryptodev_dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
kop.crk_op = CRK_DSA_SIGN;
/* inputs: dgst dsa->p dsa->q dsa->g dsa->priv_key */
- kop.crk_param[0].crp_p = (caddr_t)dgst;
+ kop.crk_param[0].crp_p = (void*)dgst;
kop.crk_param[0].crp_nbits = dlen * 8;
if (bn2crparam(dsa->p, &kop.crk_param[1]))
goto err;
@@ -1288,7 +1375,7 @@ cryptodev_dsa_verify(const unsigned char *dgst, int dlen,
kop.crk_op = CRK_DSA_VERIFY;
/* inputs: dgst dsa->p dsa->q dsa->g dsa->pub_key sig->r sig->s */
- kop.crk_param[0].crp_p = (caddr_t)dgst;
+ kop.crk_param[0].crp_p = (void*)dgst;
kop.crk_param[0].crp_nbits = dlen * 8;
if (bn2crparam(dsa->p, &kop.crk_param[1]))
goto err;
@@ -1366,9 +1453,10 @@ cryptodev_dh_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
goto err;
kop.crk_iparams = 3;
- kop.crk_param[3].crp_p = (caddr_t) key;
- kop.crk_param[3].crp_nbits = keylen * 8;
+ kop.crk_param[3].crp_p = (void*) key;
+ kop.crk_param[3].crp_nbits = keylen;
kop.crk_oparams = 1;
+ dhret = keylen/8;
if (ioctl(fd, CIOCKEY, &kop) == -1) {
const DH_METHOD *meth = DH_OpenSSL();
@@ -1440,7 +1528,7 @@ ENGINE_load_cryptodev(void)
put_dev_crypto(fd);
if (!ENGINE_set_id(engine, "cryptodev") ||
- !ENGINE_set_name(engine, "BSD cryptodev engine") ||
+ !ENGINE_set_name(engine, "cryptodev engine") ||
!ENGINE_set_ciphers(engine, cryptodev_engine_ciphers) ||
!ENGINE_set_digests(engine, cryptodev_engine_digests) ||
!ENGINE_set_ctrl_function(engine, cryptodev_ctrl) ||
--
2.0.0
@@ -0,0 +1,45 @@
From cc08b52f8376867121f22e166636779e2a1a6e48 Mon Sep 17 00:00:00 2001
From: Aaro Koskinen <aaro.koskinen@iki.fi>
Date: Mon, 12 May 2014 08:28:46 -0500
Subject: [PATCH 1/1] configure: fix test-for-synth check with GCC 4.9.0
With GCC 4.9.0 oprofile 0.9.9 build fails on non-PPC platfroms because
the "test-for-synth" configure check result is incorrect: There is a NULL
pointer dereference in the test program, so the compiler seems to optimize
the rest of the code away, and the test will always succeed regardless
whether powerpc_elf64_vec/bfd_elf64_powerpc_vec are present or not.
Fix by allocating the referred struct statically.
While at it, also include stdio.h to avoid a compiler warning.
[Romain: backport the patch to 0.9.9]
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Conflicts:
m4/binutils.m4
---
m4/binutils.m4 | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/m4/binutils.m4 b/m4/binutils.m4
index 25fb15a..3486488 100644
--- a/m4/binutils.m4
+++ b/m4/binutils.m4
@@ -27,8 +27,10 @@ if test "$OS" = "Linux"; then
AC_MSG_CHECKING([whether bfd_get_synthetic_symtab() exists in BFD library])
rm -f test-for-synth
AC_LANG_CONFTEST(
- [AC_LANG_PROGRAM([[#include <bfd.h>]],
- [[asymbol * synthsyms; bfd * ibfd = 0;
+ [AC_LANG_PROGRAM([[#include <bfd.h>]
+ [#include <stdio.h>]
+ [static bfd _ibfd;]],
+ [[asymbol * synthsyms; bfd * ibfd = &_ibfd;
long synth_count = bfd_get_synthetic_symtab(ibfd, 0, 0, 0, 0, &synthsyms);
extern const bfd_target bfd_elf64_powerpc_vec;
extern const bfd_target bfd_elf64_powerpcle_vec;
--
1.9.3
+2 -1
View File
@@ -15,10 +15,11 @@ PERL_NET_SSLEAY_LICENSE_FILES = LICENSE
# suffers from: don't search for openssl, they pick the host-system one.
PERL_NET_SSLEAY_CONF_ENV = OPENSSL_PREFIX=$(STAGING_DIR)/usr
# Remove problematic single quotes in LDDLFLAGS & CCFLAGS definition
# Remove problematic single quotes in LDDLFLAGS, CCFLAGS & OPTIMIZE definition
define PERL_NET_SSLEAY_FIX_MAKEFILE
$(SED) "s/^LDDLFLAGS = '\(.*\)'/LDDLFLAGS = \1/" $(@D)/Makefile
$(SED) "s/^CCFLAGS = '\(.*\)'/CCFLAGS = \1/" $(@D)/Makefile
$(SED) "s/^OPTIMIZE = '\(.*\)'/OPTIMIZE = \1/" $(@D)/Makefile
endef
PERL_NET_SSLEAY_POST_CONFIGURE_HOOKS += PERL_NET_SSLEAY_FIX_MAKEFILE
-1
View File
@@ -129,7 +129,6 @@ define PERL_FINALIZE_TARGET
find $(TARGET_DIR)/usr/lib/perl5/ -name 'extralibs.ld' -print0 | xargs -0 rm -f
find $(TARGET_DIR)/usr/lib/perl5/ -name '*.bs' -print0 | xargs -0 rm -f
find $(TARGET_DIR)/usr/lib/perl5/ -name '.packlist' -print0 | xargs -0 rm -f
find $(TARGET_DIR)/usr/lib/perl5/ -name 'autosplit.ix' -print0 | xargs -0 rm -f
endef
TARGET_FINALIZE_HOOKS += PERL_FINALIZE_TARGET
+2
View File
@@ -56,6 +56,7 @@ define $(2)_CONFIGURE_CMDS
--config full_ar="$$(TARGET_AR)" \
--config cc="$$(TARGET_CC)" \
--config ccflags="$$(TARGET_CFLAGS)" \
--config optimize=" " \
--config ld="$$(TARGET_CC)" \
--config lddlflags="-shared $$(TARGET_LDFLAGS)" \
--config ldflags="$$(TARGET_LDFLAGS)" \
@@ -78,6 +79,7 @@ define $(2)_CONFIGURE_CMDS
FULL_AR="$$(TARGET_AR)" \
CC="$$(TARGET_CC)" \
CCFLAGS="$$(TARGET_CFLAGS)" \
OPTIMIZE=" " \
LD="$$(TARGET_CC)" \
LDDLFLAGS="-shared $$(TARGET_LDFLAGS)" \
LDFLAGS="$$(TARGET_LDFLAGS)" \
+2 -1
View File
@@ -16,7 +16,7 @@ ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
POSTGRESQL_CONF_OPT += --disable-thread-safety
endif
ifeq ($(BR2_microblazeel)$(BR2_microblazebe),y)
ifeq ($(BR2_microblazeel)$(BR2_microblazebe)$(BR2_nios2),y)
POSTGRESQL_CONF_OPT += --disable-spinlocks
endif
@@ -51,6 +51,7 @@ endef
define POSTGRESQL_INSTALL_TARGET_FIXUP
$(INSTALL) -dm 0700 $(TARGET_DIR)/var/lib/pgsql
$(RM) -rf $(TARGET_DIR)/usr/lib/postgresql/pgxs
endef
POSTGRESQL_POST_INSTALL_TARGET_HOOKS += POSTGRESQL_INSTALL_TARGET_FIXUP
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
PPPD_VERSION = 2.4.6
PPPD_VERSION = 2.4.7
PPPD_SOURCE = ppp-$(PPPD_VERSION).tar.gz
PPPD_SITE = ftp://ftp.samba.org/pub/ppp
PPPD_LICENSE = LGPLv2+ LGPL BSD-4c BSD-3c GPLv2+
+1
View File
@@ -1,5 +1,6 @@
config BR2_PACKAGE_PROCPS_NG
bool "procps-ng"
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
help
+2 -2
View File
@@ -30,10 +30,10 @@ config BR2_PACKAGE_QT_DEMOS
config BR2_PACKAGE_QT_TRANSLATION_FILES
bool "Install translation files"
default y
help
Install binary .qm translation files.
If unsure, say y.
Say y if you need these files. They will take about 8 MB
on the target root filesystem.
config BR2_PACKAGE_QT_EXAMPLES
bool "Compile and install Qt examples (with code)"
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
SUBVERSION_VERSION = 1.7.14
SUBVERSION_VERSION = 1.7.18
SUBVERSION_SITE = http://archive.apache.org/dist/subversion
SUBVERSION_LICENSE = Apache-2.0
SUBVERSION_LICENSE_FILES = LICENSE
+2
View File
@@ -3,6 +3,7 @@ config BR2_PACKAGE_SYNERGY
depends on BR2_PACKAGE_XORG7
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_XLIB_LIBXTST
help
Synergy lets you easily share a single mouse and
@@ -14,4 +15,5 @@ config BR2_PACKAGE_SYNERGY
comment "synergy needs a toolchain w/ C++, wchar"
depends on BR2_PACKAGE_XORG7
depends on BR2_USE_MMU
depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
+3
View File
@@ -49,8 +49,11 @@ SYSTEMD_CONF_OPT += \
--disable-dbus \
--without-python
SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto
# Override path to kmod, used in kmod-static-nodes.service
SYSTEMD_CONF_ENV = \
CFLAGS="$(SYSTEMD_CFLAGS)" \
ac_cv_path_KMOD=/usr/bin/kmod
ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y)
+1
View File
@@ -1,6 +1,7 @@
config BR2_PACKAGE_TAR
bool "tar"
depends on BR2_USE_WCHAR
depends on BR2_USE_MMU # fork()
help
A program that saves many files together into a single tape or disk
archive, and can restore individual files from the archive.
+1
View File
@@ -1,4 +1,5 @@
config BR2_PACKAGE_TFTPD
bool "tftpd"
depends on BR2_USE_MMU # fork()
help
HPA's Trivial File Transfer Protocol (tftp) server.
+1
View File
@@ -17,6 +17,7 @@ config BR2_PACKAGE_WEBKIT
depends on BR2_PACKAGE_LIBGTK2
depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
depends on !BR2_BINFMT_FLAT # icu
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_ENCHANT
select BR2_PACKAGE_HARFBUZZ
+1
View File
@@ -1,5 +1,6 @@
config BR2_PACKAGE_XAPP_RSTART
bool "rstart"
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_XLIB_LIBX11
help
X.Org rstart application
+1 -1
View File
@@ -6,7 +6,7 @@
# This cset is on the branch 'gotham'
# When XBMC is updated, then this should be updated to the corresponding branch
XBMC_PVR_ADDONS_VERSION = 18c52bb541d5c7f6ccab9edcd3c809f03b31de90
XBMC_PVR_ADDONS_VERSION = be12a8da2072e9c3ddad54892df2f85b759d4e9a
XBMC_PVR_ADDONS_SITE = $(call github,opdenkamp,xbmc-pvr-addons,$(XBMC_PVR_ADDONS_VERSION))
XBMC_PVR_ADDONS_LICENSE = GPLv3+
XBMC_PVR_ADDONS_LICENSE_FILES = COPYING
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
XBMC_VERSION = 13.2b3-Gotham
XBMC_VERSION = 13.2-Gotham
XBMC_SOURCE = $(XBMC_VERSION).tar.gz
XBMC_SITE = https://github.com/xbmc/xbmc/archive
XBMC_LICENSE = GPLv2
+7
View File
@@ -189,6 +189,13 @@ fi
if grep -q ^BR2_NEEDS_HOST_JAVA=y $BR2_CONFIG ; then
check_prog_host "java"
JAVA_GCJ=$(java -version 2>&1 | grep gcj)
if [ ! -z "$JAVA_GCJ" ] ; then
echo
echo "$JAVA_GCJ is not sufficient to compile your package selection."
echo "Please install an OpenJDK/IcedTea/Oracle Java."
exit 1 ;
fi
fi
if grep -q ^BR2_NEEDS_HOST_JAVAC=y $BR2_CONFIG ; then