Compare commits
124
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fdff715089 | ||
|
|
1939011ce6 | ||
|
|
e05c6a791d | ||
|
|
16c1af8d9d | ||
|
|
47128a9b82 | ||
|
|
374adc17a0 | ||
|
|
f21256b86a | ||
|
|
a14ce4d57c | ||
|
|
5a980678f6 | ||
|
|
47c1c50134 | ||
|
|
77007ad950 | ||
|
|
3afdf89f69 | ||
|
|
1d57260757 | ||
|
|
56ed21e726 | ||
|
|
e1d7f2dc8f | ||
|
|
b840bc6345 | ||
|
|
5400717833 | ||
|
|
1b86a60d7a | ||
|
|
520e74f2b5 | ||
|
|
9579e6aac3 | ||
|
|
f67e7ba06f | ||
|
|
a690fea1ac | ||
|
|
6a1f8b712d | ||
|
|
4f07578a86 | ||
|
|
da86e94f80 | ||
|
|
5d22b6e06c | ||
|
|
84e8a337d5 | ||
|
|
700080c494 | ||
|
|
4e99ab9bd7 | ||
|
|
85da209efb | ||
|
|
0d79bc13ec | ||
|
|
5b98309f59 | ||
|
|
116f63f4d7 | ||
|
|
b8a8263858 | ||
|
|
b63ede67ea | ||
|
|
669ce8c75e | ||
|
|
8277bb18db | ||
|
|
da2f182237 | ||
|
|
a30b868de6 | ||
|
|
6172ceb3cf | ||
|
|
08a024b3ed | ||
|
|
f346af2868 | ||
|
|
a251d1b78a | ||
|
|
19237110da | ||
|
|
1b5f0fc8df | ||
|
|
2289c34a19 | ||
|
|
effe0beb1d | ||
|
|
2bc3bca6d8 | ||
|
|
7dc7c7904b | ||
|
|
ad4823f853 | ||
|
|
6605084b49 | ||
|
|
b543976380 | ||
|
|
5ec68345fa | ||
|
|
cd05b2798a | ||
|
|
263b7d23f6 | ||
|
|
67dcfd23a9 | ||
|
|
4e116bf369 | ||
|
|
607bd1a1bd | ||
|
|
afdd5cebe2 | ||
|
|
3dde85015d | ||
|
|
9c353541ff | ||
|
|
713134fc92 | ||
|
|
5712140af4 | ||
|
|
429489c632 | ||
|
|
569db40574 | ||
|
|
7fa43f911b | ||
|
|
dce24bba0d | ||
|
|
702a461c4d | ||
|
|
8c94df28c7 | ||
|
|
6953d5ffeb | ||
|
|
543bc7c921 | ||
|
|
fea35ce673 | ||
|
|
4bb2a05e81 | ||
|
|
452404b7c8 | ||
|
|
f3d19b047a | ||
|
|
48f182ece0 | ||
|
|
be7ac54e4b | ||
|
|
06a603b8d5 | ||
|
|
34e3857d98 | ||
|
|
d3ab60a1ee | ||
|
|
1b624c3964 | ||
|
|
91050c8e65 | ||
|
|
bb00e14149 | ||
|
|
67274a9b6f | ||
|
|
05fa99d03c | ||
|
|
dd935d6771 | ||
|
|
3ed0eada71 | ||
|
|
3cb705aa84 | ||
|
|
2ca9b88b37 | ||
|
|
f68d9bcac4 | ||
|
|
3d13ab8ecc | ||
|
|
7502da865b | ||
|
|
a110e0c10e | ||
|
|
00bd63a4ef | ||
|
|
d9054017cf | ||
|
|
c0da68a90c | ||
|
|
f550bea09a | ||
|
|
60332f38f5 | ||
|
|
85448febb3 | ||
|
|
916b21a7fb | ||
|
|
921d618566 | ||
|
|
533b17a65f | ||
|
|
91ff861195 | ||
|
|
9cef35b68f | ||
|
|
8b3f257cd7 | ||
|
|
12a3ecfc9a | ||
|
|
6057878756 | ||
|
|
1e9d40fc23 | ||
|
|
caa04a8cf7 | ||
|
|
98f9a73962 | ||
|
|
dfaa18af00 | ||
|
|
f588eaf8a5 | ||
|
|
86b830d70a | ||
|
|
3ed56b83c2 | ||
|
|
96527e6d52 | ||
|
|
39adab957b | ||
|
|
e3bb4ac791 | ||
|
|
a3ff0ad550 | ||
|
|
a21566d317 | ||
|
|
d70f19ee93 | ||
|
|
bf3d9840d7 | ||
|
|
b092f74b60 | ||
|
|
7e33639ecf | ||
|
|
58d3978e4e |
@@ -1,3 +1,46 @@
|
||||
2014.08-rc3, Released August 26th, 2014
|
||||
|
||||
Minor fixes.
|
||||
|
||||
User manual update / restructuring.
|
||||
|
||||
Updated/fixed packages: cairo, ecryptfs-utils, gettext,
|
||||
gstreamer, gstreamer1, gutenprint, icu, imagemagick, jack2,
|
||||
lbreakout2, libevas-generic-loaders, libftdi, libinput,
|
||||
libtorrent, ltris, msgpack, ntp, php, procps-ng, pulseaudio,
|
||||
thrift, tvheadend, usb_modeswitch, xmlstarlet,
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7136: ecryptfs-utils needs gettext to run when glibc/eglibc...
|
||||
#7322: libgomp dependency issue with imagemagick
|
||||
#7328: Git dl of versions in x/y broken
|
||||
|
||||
2014.08-rc2, Released August 18th, 2014
|
||||
|
||||
Fixes all over the tree.
|
||||
|
||||
User manual restructured / reworked.
|
||||
|
||||
Toolchain: Fix for C++ exceptions / pthread_exit() on
|
||||
uClibc/glibc, C++-11 features with uClibc.
|
||||
|
||||
Updated/fixed packages: bandwidthd, bluez5_utils, empty,
|
||||
espeak, fbv, ffmpeg, gd, gnupg2, gst1-plugin-good, iftop,
|
||||
infozip, libcuefile, libeml, libnftl, localedef, ltrace,
|
||||
matchbox, mpd, network-manager, nftables, ngrep, nut, openssl,
|
||||
oprofile, perl, perl-net-ssleay, postgresql, pppd, procps-ng,
|
||||
qt, subversion, synergy, systemd, tar, tftpd, webkit,
|
||||
xapp_rstart, xbmc, xbmc-pvr-addons
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7124: Use BR toolchain externally results a non-bootable...
|
||||
#7208: Glibc C++ aplications crash if they use exceptions
|
||||
#7250: Cannot build with -std=c++11
|
||||
#7262: Generating locale en_US.UTF-8 fails on 64bit fedora..
|
||||
#7286: systemd 215 doesn't build
|
||||
|
||||
2014.08-rc1, Released August 8th, 2014
|
||||
|
||||
Fixes all over the tree and new features.
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#--------------------------------------------------------------
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2014.08-rc1
|
||||
export BR2_VERSION := 2014.08-rc3
|
||||
|
||||
# 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)
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -250,6 +250,10 @@ config BR2_GCC_TARGET_FLOAT_ABI
|
||||
config BR2_GCC_TARGET_MODE
|
||||
string
|
||||
|
||||
# If the architecture has atomic operations, select this:
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
bool
|
||||
|
||||
# Set up target binary format
|
||||
choice
|
||||
prompt "Target Binary Format"
|
||||
|
||||
@@ -3,3 +3,6 @@ config BR2_ARCH
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# Choise of atomic instructions presence
|
||||
config BR2_ARC_ATOMIC_EXT
|
||||
bool "Atomic extension (LLOCK/SCOND instructions)"
|
||||
select BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
select BR2_ARCH_HAS_ATOMICS
|
||||
|
||||
config BR2_ARCH
|
||||
default "arc" if BR2_arcle
|
||||
|
||||
@@ -340,6 +340,9 @@ config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_arm
|
||||
default "BIG" if BR2_armeb
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
config BR2_GCC_TARGET_CPU
|
||||
default "arm920" if BR2_arm920
|
||||
default "arm920t" if BR2_arm920t
|
||||
|
||||
@@ -6,3 +6,6 @@ config BR2_ENDIAN
|
||||
|
||||
config BR2_GCC_TARGET_ARCH
|
||||
default "ap"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
@@ -68,6 +68,9 @@ config BR2_ARCH
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
config BR2_GCC_TARGET_CPU
|
||||
default bf606 if BR2_bf606
|
||||
default bf607 if BR2_bf607
|
||||
|
||||
@@ -4,6 +4,9 @@ config BR2_ARCH
|
||||
config BR2_ENDIAN
|
||||
default "BIG"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
config BR2_GCC_TARGET_TUNE
|
||||
default "68000" if BR2_m68k_68000
|
||||
default "68010" if BR2_m68k_68010
|
||||
|
||||
@@ -9,3 +9,6 @@ config BR2_ENDIAN
|
||||
config BR2_microblaze
|
||||
bool
|
||||
default y if BR2_microblazeel || BR2_microblazebe
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
@@ -73,6 +73,9 @@ config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_mipsel || BR2_mips64el
|
||||
default "BIG" if BR2_mips || BR2_mips64
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
config BR2_GCC_TARGET_ARCH
|
||||
default "mips1" if BR2_mips_1
|
||||
default "mips2" if BR2_mips_2
|
||||
|
||||
@@ -3,3 +3,6 @@ config BR2_ARCH
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
@@ -157,6 +157,9 @@ config BR2_ENDIAN
|
||||
default "BIG" if BR2_powerpc || BR2_powerpc64
|
||||
default "LITTLE" if BR2_powerpc64le
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
config BR2_GCC_TARGET_TUNE
|
||||
default "401" if BR2_powerpc_401
|
||||
default "403" if BR2_powerpc_403
|
||||
|
||||
@@ -28,3 +28,6 @@ config BR2_ARCH
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE" if BR2_sh4 || BR2_sh4a || BR2_sh64
|
||||
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
@@ -23,6 +23,9 @@ config BR2_ARCH
|
||||
config BR2_ENDIAN
|
||||
default "BIG"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
config BR2_GCC_TARGET_TUNE
|
||||
default "v8" if BR2_sparc_v8
|
||||
|
||||
|
||||
@@ -202,6 +202,9 @@ config BR2_ARCH
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y if !BR2_x86_i386
|
||||
|
||||
config BR2_GCC_TARGET_TUNE
|
||||
default "i386" if BR2_x86_i386
|
||||
default "i486" if BR2_x86_i486
|
||||
|
||||
@@ -35,3 +35,6 @@ config BR2_XTENSA_OVERLAY_DIR
|
||||
|
||||
config BR2_ARCH
|
||||
default "xtensa" if BR2_xtensa
|
||||
|
||||
config BR2_ARCH_HAS_ATOMICS
|
||||
default y
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# AVR32 is deprecated
|
||||
BR2_DEPRECATED=y
|
||||
|
||||
# Architecture
|
||||
BR2_avr32=y
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# AVR32 is deprecated
|
||||
BR2_DEPRECATED=y
|
||||
|
||||
# Architecture
|
||||
BR2_avr32=y
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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-rc3</b>, which can be
|
||||
downloaded here:<p>
|
||||
|
||||
<a href="/downloads/buildroot-2014.08-rc1.tar.gz">buildroot-2014.08-rc1.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc1.tar.gz.sign">PGP signature</a>)
|
||||
<a href="/downloads/buildroot-2014.08-rc3.tar.gz">buildroot-2014.08-rc3.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc3.tar.gz.sign">PGP signature</a>)
|
||||
or
|
||||
<a href="/downloads/buildroot-2014.08-rc1.tar.bz2">buildroot-2014.08-rc1.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc1.tar.bz2.sign">PGP signature</a>).
|
||||
<a href="/downloads/buildroot-2014.08-rc3.tar.bz2">buildroot-2014.08-rc3.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc3.tar.bz2.sign">PGP signature</a>).
|
||||
<p>
|
||||
|
||||
This and earlier releases (and their PGP signatures) can always be downloaded from
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
@@ -219,6 +219,11 @@ use in the comment.
|
||||
** Dependency symbol: +BR2_USE_MMU+
|
||||
** Comment string: no comment to be added
|
||||
|
||||
* Atomic instructions (whereby the architecture has instructions to
|
||||
perform some operations atomically, like LOCKCMPXCHG on x86)
|
||||
** Dependency symbol: +BR2_ARCH_HAS_ATOMICS+
|
||||
** Comment string: no comment to be added
|
||||
|
||||
* Kernel headers
|
||||
** Dependency symbol: +BR2_TOOLCHAIN_HEADERS_AT_LEAST_X_Y+, (replace
|
||||
+X_Y+ with the proper version, see +toolchain/toolchain-common.in+)
|
||||
|
||||
@@ -8,15 +8,22 @@ library. Dependencies for this library are fairly complicated and
|
||||
therefore, deserve some explanation.
|
||||
|
||||
The 'uClibc' C library doesn't implement gettext functionality;
|
||||
therefore with this C library, a separate gettext must be compiled. On
|
||||
the other hand, the 'glibc' C library does integrate its own gettext,
|
||||
and in this case the separate gettext library should not be compiled,
|
||||
because it creates various kinds of build failures.
|
||||
therefore with this C library, a separate gettext must be compiled,
|
||||
which is provided by the additional +libintl+ library, part of the
|
||||
+gettext+ package.
|
||||
|
||||
On the other hand, the 'glibc' C library does integrate its own
|
||||
gettext library functions, so it is not necessary to build a separate
|
||||
+libintl+ library.
|
||||
|
||||
However, certain packages need some gettext utilities on the target,
|
||||
such as the +gettext+ program itself, which allows to retrieve
|
||||
translated strings, from the command line.
|
||||
|
||||
Additionally, some packages (such as +libglib2+) do require gettext
|
||||
unconditionally, while other packages (those who support
|
||||
+--disable-nls+ in general) only require gettext when locale support
|
||||
is enabled.
|
||||
functions unconditionally, while other packages (in general, those who
|
||||
support +--disable-nls+) only require gettext functions when locale
|
||||
support is enabled.
|
||||
|
||||
Therefore, Buildroot defines two configuration options:
|
||||
|
||||
@@ -44,3 +51,11 @@ should:
|
||||
* use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
|
||||
+DEPENDENCIES+ variable in the +.mk+ file.
|
||||
|
||||
Packages that need the +gettext+ utilities on the target (should be
|
||||
rare) should:
|
||||
|
||||
* use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file,
|
||||
indicating in a comment above that it's a runtime dependency only.
|
||||
|
||||
* not add any +gettext+ dependency in the +DEPENDENCIES+ variable of
|
||||
their +.mk+ file.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Advanced usage
|
||||
=== Advanced usage
|
||||
|
||||
include::using-buildroot-toolchain.txt[]
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
= Appendix
|
||||
|
||||
include::makedev-syntax.txt[]
|
||||
include::makeusers-syntax.txt[]
|
||||
|
||||
|
||||
@@ -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? [}{name}:{target}{0?]}
|
||||
[https-inlinemacro]
|
||||
{0=}{0? [}{name}:{target}{0?]}
|
||||
[ftp-inlinemacro]
|
||||
{0=}{0? [}{name}:{target}{0?]}
|
||||
[file-inlinemacro]
|
||||
{0=}{0? [}{name}:{target}{0?]}
|
||||
[irc-inlinemacro]
|
||||
{0=}{0? [}{name}:{target}{0?]}
|
||||
[mailto-inlinemacro]
|
||||
{0=}{0? [}{name}:{target}{0?]}
|
||||
|
||||
# Hide image representation from text manual
|
||||
[image-inlinemacro]
|
||||
{empty}
|
||||
[image-blockmacro]
|
||||
{empty}
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Daily use
|
||||
== General Buildroot usage
|
||||
|
||||
include::make-tips.txt[]
|
||||
|
||||
include::rebuilding-packages.txt[]
|
||||
|
||||
@@ -262,3 +264,7 @@ only other format supported is PNG:
|
||||
----------------
|
||||
BR2_GRAPH_OUT=png make graph-build
|
||||
----------------
|
||||
|
||||
include::eclipse-integration.txt[]
|
||||
|
||||
include::advanced.txt[]
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Configuration of other components
|
||||
|
||||
Before attempting to modify any of the components below, make sure you
|
||||
have already configured Buildroot itself, and have enabled the
|
||||
corresponding package.
|
||||
|
||||
BusyBox::
|
||||
+
|
||||
If you already have a BusyBox configuration file, you can directly
|
||||
specify this file in the Buildroot configuration, using
|
||||
+BR2_PACKAGE_BUSYBOX_CONFIG+. Otherwise, Buildroot will start from a
|
||||
default BusyBox configuration file.
|
||||
+
|
||||
To make subsequent changes to the configuration, use +make
|
||||
busybox-menuconfig+ to open the BusyBox configuration editor.
|
||||
+
|
||||
It is also possible to specify a BusyBox configuration file through an
|
||||
environment variable, although this is not recommended. Refer to
|
||||
xref:env-vars[] for more details.
|
||||
|
||||
uClibc::
|
||||
+
|
||||
Configuration of uClibc is done in the same way as for BusyBox. The
|
||||
configuration variable to specify an existing configuration file is
|
||||
+BR2_UCLIBC_CONFIG+. The command to make subsequent changes is +make
|
||||
uclibc-menuconfig+.
|
||||
|
||||
Linux kernel::
|
||||
+
|
||||
If you already have a kernel configuration file, you can directly
|
||||
specify this file in the Buildroot configuration, using
|
||||
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+.
|
||||
+
|
||||
If you do not yet have a kernel configuration file, you can either start
|
||||
by specifying a defconfig in the Buildroot configuration, using
|
||||
+BR2_LINUX_KERNEL_USE_DEFCONFIG+, or start by creating an empty file and
|
||||
specifying it as custom configuration file, using
|
||||
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+.
|
||||
+
|
||||
To make subsequent changes to the configuration, use +make
|
||||
linux-menuconfig+ to open the Linux configuration editor.
|
||||
|
||||
Barebox::
|
||||
+
|
||||
Configuration of Barebox is done in the same way as for the Linux
|
||||
kernel. The corresponding configuration variables are
|
||||
+BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG+ and
|
||||
+BR2_TARGET_BAREBOX_USE_DEFCONFIG+. To open the configuration editor,
|
||||
use +make barebox-menuconfig+.
|
||||
@@ -2,12 +2,27 @@
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[configure]]
|
||||
== Details on Buildroot configuration
|
||||
== Buildroot configuration
|
||||
|
||||
All the configuration options in +make *config+ have a help text
|
||||
providing details about the option. However, a number of topics
|
||||
require additional details that cannot easily be covered in the help
|
||||
text and are there covered in the following sections.
|
||||
providing details about the option.
|
||||
|
||||
The +make *config+ commands also offer a search tool. Read the help
|
||||
message in the different frontend menus to know how to use it:
|
||||
|
||||
* in _menuconfig_, the search tool is called by pressing +/+;
|
||||
* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
|
||||
|
||||
The result of the search shows the help message of the matching items.
|
||||
In _menuconfig_, numbers in the left column provide a shortcut to the
|
||||
corresponding entry. Just type this number to directly jump to the
|
||||
entry, or to the containing menu in case the entry is not selectable due
|
||||
to a missing dependency.
|
||||
|
||||
Although the menu structure and the help text of the entries should be
|
||||
sufficiently self-explanatory, a number of topics require additional
|
||||
explanation that cannot easily be covered in the help text and are
|
||||
therefore covered in the following sections.
|
||||
|
||||
=== Cross-compilation toolchain
|
||||
|
||||
@@ -215,6 +230,20 @@ Drawbacks of this backend:
|
||||
fix from the toolchain vendor, unless you build your external
|
||||
toolchain by yourself using Crosstool-NG.
|
||||
|
||||
===== External toolchain wrapper
|
||||
|
||||
When using an external toolchain, Buildroot generates a wrapper program,
|
||||
that transparently passes the appropriate options (according to the
|
||||
configuration) to the external toolchain programs. In case you need to
|
||||
debug this wrapper to check exactly what arguments are passed, you can
|
||||
set the environment variable +BR2_DEBUG_WRAPPER+ to either one of:
|
||||
|
||||
* +0+, empty or not set: no debug
|
||||
|
||||
* +1+: trace all arguments on a single line
|
||||
|
||||
* +2+: trace one argument per line
|
||||
|
||||
=== /dev management
|
||||
|
||||
On a Linux system, the +/dev+ directory contains special files, called
|
||||
|
||||
+38
-15
@@ -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.
|
||||
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[busybox-custom]]
|
||||
=== Customizing the BusyBox configuration
|
||||
|
||||
http://www.busybox.net/[BusyBox] is very configurable, and you may
|
||||
want to customize it. You can follow these simple steps to do so. This
|
||||
method isn't optimal, but it's simple, and it works:
|
||||
|
||||
* Do an initial compilation of Buildroot, with busybox, without
|
||||
trying to customize it.
|
||||
|
||||
* Invoke +make busybox-menuconfig+.
|
||||
The nice configuration tool appears, and you can
|
||||
customize everything.
|
||||
|
||||
* Run the compilation of Buildroot again.
|
||||
|
||||
Otherwise, you can simply change the
|
||||
+package/busybox/busybox-<version>.config+ file, if you know the
|
||||
options you want to change, without using the configuration tool.
|
||||
|
||||
If you want to use an existing config file for busybox, then see
|
||||
xref:env-vars[].
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[kernel-custom]]
|
||||
=== Customizing the Linux kernel configuration
|
||||
|
||||
The Linux kernel configuration can be customized just like
|
||||
xref:busybox-custom[BusyBox] and xref:uclibc-custom[uClibc] using
|
||||
+make linux-menuconfig+. Make sure you have enabled the kernel build
|
||||
in +make menuconfig+ first. Once done, run +make+ to (re)build
|
||||
everything.
|
||||
|
||||
If you want to use an existing config file for Linux, then see
|
||||
xref:env-vars[].
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[customize-store]]
|
||||
== Storing the configuration
|
||||
[[customize-store-basics]]
|
||||
=== Basics for storing the configuration
|
||||
|
||||
When you have a buildroot configuration that you are satisfied with and
|
||||
you want to share it with others, put it under revision control or move
|
||||
@@ -12,11 +12,6 @@ consists of the buildroot configuration, the configuration files for
|
||||
packages that you use (kernel, busybox, uClibc, ...), and your rootfs
|
||||
modifications.
|
||||
|
||||
|
||||
[[customize-store-basics]]
|
||||
=== Basics for storing the configuration
|
||||
|
||||
|
||||
[[customize-store-buildroot-config]]
|
||||
==== Buildroot configuration
|
||||
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[toolchain-custom]]
|
||||
=== Customizing the toolchain
|
||||
|
||||
There are three distinct types of toolchain backend supported in Buildroot,
|
||||
available under the menu +Toolchain+, invoking +make menuconfig+.
|
||||
|
||||
==== Using the external toolchain backend
|
||||
|
||||
There is no way of tuning an external toolchain since Buildroot does not
|
||||
generate it.
|
||||
|
||||
It also requires to set the Buildroot settings according to the toolchain ones
|
||||
(see xref:external-toolchain-backend[]).
|
||||
|
||||
When using an external toolchain, Buildroot generates a wrapper program,
|
||||
that transparently passes the appropriate options (according to the
|
||||
configuration) to the external toolchain programs. In case you need to
|
||||
debug this wrapper to check exactly what arguments are passed, you can
|
||||
set the environment variable +BR2_DEBUG_WRAPPER+ to either one of:
|
||||
|
||||
* +0+, empty or not set: no debug
|
||||
|
||||
* +1+: trace all arguments on a single line
|
||||
|
||||
* +2+: trace one argument per line
|
||||
|
||||
==== Using the internal Buildroot toolchain backend
|
||||
|
||||
The internal Buildroot toolchain backend allows to generate toolchains
|
||||
based on http://www.uclibc.org/[uClibc],
|
||||
https://www.gnu.org/software/libc/[glibc] and
|
||||
http://www.eglibc.org/[eglibc].
|
||||
Generation of (e)glibc-based toolchains is still experimental in
|
||||
Buildroot.
|
||||
|
||||
It allows to tune major settings, such as:
|
||||
|
||||
* Linux headers version;
|
||||
|
||||
* C library configuration (only available for
|
||||
http://www.uclibc.org/[uClibc], see xref:uclibc-custom[uClibc]);
|
||||
|
||||
* Binutils, GCC, Gdb and toolchain options.
|
||||
|
||||
These settings are available after selecting the +Buildroot toolchain+ type in
|
||||
the menu +Toolchain+.
|
||||
@@ -1,33 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[uclibc-custom]]
|
||||
=== Customizing the uClibc configuration
|
||||
|
||||
Just like xref:busybox-custom[BusyBox], http://www.uclibc.org/[uClibc]
|
||||
offers a lot of configuration options. They allow you to select
|
||||
various functionalities depending on your needs and limitations.
|
||||
|
||||
The easiest way to modify the configuration of uClibc is to
|
||||
follow these steps:
|
||||
|
||||
* Do an initial compilation of Buildroot without trying to customize
|
||||
uClibc.
|
||||
|
||||
* Invoke +make uclibc-menuconfig+. The nice configuration assistant,
|
||||
similar to the one used in the Linux kernel or Buildroot,
|
||||
appears. Make your configuration changes as appropriate.
|
||||
|
||||
* Copy the +$(O)/build/uClibc-VERSION/.config+ file to a different
|
||||
place (e.g. +board/MANUFACTURER/BOARDNAME/uClibc.config+) and adjust
|
||||
the uClibc configuration file option +BR2_UCLIBC_CONFIG+ to refer to this
|
||||
configuration instead of the default one.
|
||||
|
||||
* Run the compilation of Buildroot again.
|
||||
|
||||
Otherwise, you can simply change +package/uclibc/uClibc-VERSION.config+,
|
||||
without running the configuration assistant.
|
||||
|
||||
If you want to use an existing config file for uClibc, then see
|
||||
xref:env-vars[].
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Customization
|
||||
== Project-specific customization
|
||||
|
||||
The following sections describe the various way in which you can
|
||||
customize Buildroot for a given project.
|
||||
|
||||
For instructions on how to add new packages to Buildroot, refer to
|
||||
xref:adding-packages[]
|
||||
|
||||
include::customize-rootfs.txt[]
|
||||
|
||||
include::customize-busybox-config.txt[]
|
||||
|
||||
include::customize-uclibc-config.txt[]
|
||||
|
||||
include::customize-kernel-config.txt[]
|
||||
|
||||
include::customize-toolchain.txt[]
|
||||
|
||||
include::customize-store.txt[]
|
||||
|
||||
include::customize-packages.txt[]
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
= Developer Guidelines
|
||||
|
||||
include::writing-rules.txt[]
|
||||
|
||||
include::adding-packages.txt[]
|
||||
|
||||
include::patch-policy.txt[]
|
||||
|
||||
include::download-infra.txt[]
|
||||
|
||||
include::debugging-buildroot.txt[]
|
||||
@@ -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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Integration with Eclipse
|
||||
=== Integration with Eclipse
|
||||
|
||||
While a part of the embedded Linux developers like classical text
|
||||
editors like Vim or Emacs, and command-line based interfaces, a number
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
= Getting involved
|
||||
|
||||
Like any open source project, Buildroot has different ways to share
|
||||
information in its community and outside.
|
||||
|
||||
One piece of it is the document you are currently reading ;-).
|
||||
|
||||
Each of those ways may interest you if you are looking for some help,
|
||||
want to understand Buildroot or contribute to the project.
|
||||
|
||||
== Mailing List
|
||||
|
||||
Buildroot has a mailing list
|
||||
http://lists.busybox.net/pipermail/buildroot[] for discussion and
|
||||
development.
|
||||
|
||||
[[mailing-list-subscribe]]
|
||||
|
||||
=== Subscribing to the mailing list
|
||||
|
||||
You can subscribe by visiting
|
||||
http://lists.busybox.net/mailman/listinfo/buildroot[].
|
||||
Only subscribers to the Buildroot mailing list are allowed to post to
|
||||
this list.
|
||||
|
||||
The list is also available through _Gmane_ http://gmane.org[], at
|
||||
+gmane.comp.lib.uclibc.buildroot+
|
||||
http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot[].
|
||||
|
||||
=== Searching the List Archives
|
||||
|
||||
Please search the mailing list archives before asking questions on the
|
||||
mailing list, since there is a good chance someone else has asked the
|
||||
same question before. Checking the archives is a great way to avoid
|
||||
annoying everyone on the list with frequently asked questions...
|
||||
|
||||
== IRC
|
||||
|
||||
The Buildroot IRC is irc://freenode.net/#buildroot[].
|
||||
The channel +#buildroot+ is hosted on Freenode
|
||||
http://webchat.freenode.net[].
|
||||
|
||||
When asking for help on IRC, share relevant logs or pieces of code
|
||||
using a code sharing website.
|
||||
|
||||
[[patchwork]]
|
||||
== Patchwork
|
||||
|
||||
Patchwork is a web-based patch tracking system designed to facilitate
|
||||
the contribution and management of contributions to an open-source
|
||||
project. Patches that have been sent to a mailing list are \'caught' by
|
||||
the system, and appear on a web page. Any comments posted that
|
||||
reference the patch are appended to the patch page too. For more
|
||||
information on Patchwork see
|
||||
http://jk.ozlabs.org/projects/patchwork[].
|
||||
|
||||
Buildroot's Patchwork website is mainly for use by Buildroot's
|
||||
maintainer to ensure patches aren't missed. The website however,
|
||||
exposes patches and their corresponding review comments in a clean
|
||||
and concise web interface.
|
||||
|
||||
The Buildroot patch management interface is available at
|
||||
http://patchwork.buildroot.org[].
|
||||
|
||||
[[apply-patches-patchwork]]
|
||||
=== Applying Patches from Patchwork
|
||||
|
||||
The main use of Buildroot's Patchwork website for a developer is for
|
||||
pulling in patches into their local git repository for testing
|
||||
purposes.
|
||||
|
||||
When browsing patches in the patchwork management interface, an +mbox+
|
||||
link is provided at the top of the page. Copy this link address and
|
||||
run the following commands:
|
||||
|
||||
---------------------
|
||||
$ git checkout -b <test-branch-name>
|
||||
$ wget -O - <mbox-url> | git am
|
||||
---------------------
|
||||
|
||||
Another option for applying patches is to create a bundle. A bundle is
|
||||
a set of patches that you can group together using the patchwork
|
||||
interface. Once the bundle is created and the bundle is made public,
|
||||
you can copy the +mbox+ link for the bundle and apply the bundle
|
||||
using the above commands.
|
||||
|
||||
[[bugtracker]]
|
||||
== Bugtracker
|
||||
|
||||
The Buildroot bugtracker is at https://bugs.busybox.net[].
|
||||
|
||||
To open a bug, see xref:reporting-bugs[].
|
||||
|
||||
== Buildroot wikipage
|
||||
|
||||
After the Buildroot developer day on February 3, 2012,
|
||||
a page dedicated to Buildroot has been created on
|
||||
http://elinux.org[elinux.org].
|
||||
|
||||
This page is reachable at http://elinux.org/Buildroot[].
|
||||
|
||||
Currently, this page is mainly used as a _todo-list_.
|
||||
|
||||
[[events]]
|
||||
== Events
|
||||
|
||||
=== Buildroot Developer Days aside ELC-E 2012 (November 3-4, 2012 - Barcelona)
|
||||
|
||||
* Event page: http://elinux.org/Buildroot:DeveloperDaysELCE2012[]
|
||||
|
||||
=== Buildroot presentation at LSM 2012 (July 12-14, 2012 - Geneva)
|
||||
|
||||
* Announcement: http://lists.busybox.net/pipermail/buildroot/2012-May/053845.html[]
|
||||
|
||||
=== Buildroot Developer Days aside FOSDEM 2012 (February 3, 2012 - Brussels)
|
||||
|
||||
* Announcement & agenda thread: http://lists.busybox.net/pipermail/buildroot/2012-January/049340.html[]
|
||||
* Report: http://lists.busybox.net/pipermail/buildroot/2012-February/050371.html[]
|
||||
+8
-18
@@ -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,8 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
= Going further in Buildroot's innards
|
||||
|
||||
include::how-buildroot-works.txt[]
|
||||
|
||||
include::advanced.txt[]
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,20 +2,10 @@
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[make-tips]]
|
||||
== 'make' tips
|
||||
=== 'make' tips
|
||||
|
||||
This is a collection of tips that help you make the most of Buildroot.
|
||||
|
||||
.Configuration searches:
|
||||
|
||||
The +make *config+ commands offer a search tool. Read the help message in
|
||||
the different frontend menus to know how to use it:
|
||||
|
||||
* in _menuconfig_, the search tool is called by pressing +/+;
|
||||
* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
|
||||
|
||||
The result of the search shows the help message of the matching items.
|
||||
|
||||
.Display all commands executed by make:
|
||||
|
||||
--------------------
|
||||
|
||||
+17
-11
@@ -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))
|
||||
|
||||
+32
-8
@@ -16,28 +16,52 @@ Copyright (C) 2004-2014 The Buildroot developers
|
||||
|
||||
image::logo.png[]
|
||||
|
||||
:leveloffset: 1
|
||||
= Getting started
|
||||
|
||||
include::introduction.txt[]
|
||||
|
||||
include::starting-up.txt[]
|
||||
include::prerequisite.txt[]
|
||||
|
||||
include::working-with.txt[]
|
||||
include::getting.txt[]
|
||||
|
||||
include::quickstart.txt[]
|
||||
|
||||
include::resources.txt[]
|
||||
|
||||
= User guide
|
||||
|
||||
include::configure.txt[]
|
||||
|
||||
include::configure-other-components.txt[]
|
||||
|
||||
include::common-usage.txt[]
|
||||
|
||||
include::customize.txt[]
|
||||
|
||||
include::faq-troubleshooting.txt[]
|
||||
|
||||
include::known-issues.txt[]
|
||||
|
||||
include::going-further.txt[]
|
||||
|
||||
include::developer-guide.txt[]
|
||||
|
||||
include::legal-notice.txt[]
|
||||
|
||||
include::beyond-buildroot.txt[]
|
||||
|
||||
include::get-involved.txt[]
|
||||
= Developer guide
|
||||
|
||||
include::how-buildroot-works.txt[]
|
||||
|
||||
include::writing-rules.txt[]
|
||||
|
||||
include::adding-packages.txt[]
|
||||
|
||||
include::patch-policy.txt[]
|
||||
|
||||
include::download-infra.txt[]
|
||||
|
||||
include::debugging-buildroot.txt[]
|
||||
|
||||
include::contribute.txt[]
|
||||
|
||||
= Appendix
|
||||
|
||||
include::appendix.txt[]
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,69 +1,76 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Using Buildroot
|
||||
== Buildroot quick start
|
||||
|
||||
*Important*: you can and should *build everything as a normal user*. There
|
||||
is no need to be root to configure and use Buildroot. By running all
|
||||
commands as a regular user, you protect your system against packages
|
||||
behaving badly during compilation and installation.
|
||||
|
||||
The first step when using Buildroot is to create a configuration.
|
||||
Buildroot has a nice configuration tool similar to the one you can
|
||||
find in the http://www.kernel.org/[Linux kernel] or in
|
||||
http://www.busybox.net/[BusyBox]. Note that you can *and should build
|
||||
everything as a normal user*. There is no need to be root to configure
|
||||
and use Buildroot. The first step is to run the configuration
|
||||
assistant:
|
||||
http://www.busybox.net/[BusyBox].
|
||||
|
||||
From the buildroot directory, run
|
||||
|
||||
--------------------
|
||||
$ make menuconfig
|
||||
--------------------
|
||||
|
||||
or
|
||||
for the original curses-based configurator, or
|
||||
|
||||
--------------------
|
||||
$ make nconfig
|
||||
--------------------
|
||||
|
||||
to run the old or new curses-based configurator, or
|
||||
for the new curses-based configurator, or
|
||||
|
||||
--------------------
|
||||
$ make xconfig
|
||||
--------------------
|
||||
|
||||
or
|
||||
for the Qt-based configurator, or
|
||||
|
||||
--------------------
|
||||
$ make gconfig
|
||||
--------------------
|
||||
|
||||
to run the Qt or GTK-based configurators.
|
||||
for the GTK-based configurator.
|
||||
|
||||
All of these "make" commands will need to build a configuration
|
||||
utility (including the interface), so you may need to install
|
||||
"development" packages for relevant libraries used by the
|
||||
configuration utilities. Check xref:requirement[] to know what
|
||||
Buildroot needs, and specifically the xref:requirement-optional[optional requirements]
|
||||
configuration utilities. Refer to xref:requirement[] for more details,
|
||||
specifically the xref:requirement-optional[optional requirements]
|
||||
to get the dependencies of your favorite interface.
|
||||
|
||||
For each menu entry in the configuration tool, you can find associated
|
||||
help that describes the purpose of the entry.
|
||||
help that describes the purpose of the entry. Refer to xref:configure[]
|
||||
for details on some specific configuration aspects.
|
||||
|
||||
Once everything is configured, the configuration tool generates a
|
||||
+.config+ file that contains the description of your
|
||||
configuration. It will be used by the Makefiles to do what's needed.
|
||||
+.config+ file that contains the entire configuration. This file will be
|
||||
read by the top-level Makefile.
|
||||
|
||||
Let's go:
|
||||
To start the build process, simply run:
|
||||
|
||||
--------------------
|
||||
$ make
|
||||
--------------------
|
||||
|
||||
You *should never* use +make -jN+ with Buildroot: it does not support
|
||||
'top-level parallel make'. Instead, use the +BR2_JLEVEL+ option to
|
||||
tell Buildroot to run each package compilation with +make -jN+.
|
||||
You *should never* use +make -jN+ with Buildroot: top-level parallel
|
||||
make is currently not supported. Instead, use the +BR2_JLEVEL+ option
|
||||
to tell Buildroot to run the compilation of each individual package
|
||||
with +make -jN+.
|
||||
|
||||
The `make` command will generally perform the following steps:
|
||||
|
||||
* download source files (as required);
|
||||
* configure, build and install the cross-compiling toolchain using the
|
||||
appropriate toolchain backend, or simply import an external toolchain;
|
||||
* build/install selected target packages;
|
||||
* configure, build and install the cross-compilation toolchain, or
|
||||
simply import an external toolchain;
|
||||
* configure, build and install selected target packages;
|
||||
* build a kernel image, if selected;
|
||||
* build a bootloader image, if selected;
|
||||
* create a root filesystem in selected formats.
|
||||
@@ -72,15 +79,16 @@ Buildroot output is stored in a single directory, +output/+.
|
||||
This directory contains several subdirectories:
|
||||
|
||||
* +images/+ where all the images (kernel image, bootloader and root
|
||||
filesystem images) are stored.
|
||||
filesystem images) are stored. These are the files you need to put
|
||||
on your target system.
|
||||
|
||||
* +build/+ where all the components are built
|
||||
(this includes tools needed to run Buildroot on
|
||||
the host and packages compiled for the target). The +build/+
|
||||
directory contains one subdirectory for each of these components.
|
||||
* +build/+ where all the components are built (this includes tools
|
||||
needed by Buildroot on the host and packages compiled for the
|
||||
target). This directory contains one subdirectory for each of these
|
||||
components.
|
||||
|
||||
* +staging/+ which contains a hierarchy similar to a root filesystem
|
||||
hierarchy. This directory contains the installation of the
|
||||
hierarchy. This directory contains the headers and libraries of the
|
||||
cross-compilation toolchain and all the userspace packages selected
|
||||
for the target. However, this directory is 'not' intended to be
|
||||
the root filesystem for the target: it contains a lot of development
|
||||
@@ -109,7 +117,7 @@ This directory contains several subdirectories:
|
||||
|
||||
These commands, +make menuconfig|nconfig|gconfig|xconfig+ and +make+, are the
|
||||
basic ones that allow to easily and quickly generate images fitting
|
||||
your needs, with all the supports and applications you enabled.
|
||||
your needs, with all the features and applications you enabled.
|
||||
|
||||
More details about the "make" command usage are given in
|
||||
xref:make-tips[].
|
||||
@@ -0,0 +1,73 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[community-resources]]
|
||||
== Community resources
|
||||
|
||||
Like any open source project, Buildroot has different ways to share
|
||||
information in its community and outside.
|
||||
|
||||
Each of those ways may interest you if you are looking for some help,
|
||||
want to understand Buildroot or contribute to the project.
|
||||
|
||||
Mailing List::
|
||||
+
|
||||
Buildroot has a mailing list for discussion and development. It is the
|
||||
main method of interaction for Buildroot users and developers.
|
||||
+
|
||||
Only subscribers to the Buildroot mailing list are allowed to post to
|
||||
this list. You can subscribe via the
|
||||
http://lists.busybox.net/mailman/listinfo/buildroot[mailing list info
|
||||
page].
|
||||
+
|
||||
Mails that are sent to the mailing list are also available in the
|
||||
http://lists.busybox.net/pipermail/buildroot[mailing list archives] and
|
||||
via http://gmane.org[Gmane], at
|
||||
http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot[+gmane.comp.lib.uclibc.buildroot+].
|
||||
Please search the mailing list archives before asking questions, since
|
||||
there is a good chance someone else has asked the same question before.
|
||||
|
||||
IRC::
|
||||
+
|
||||
The Buildroot IRC channel irc://freenode.net/#buildroot[#buildroot] is
|
||||
hosted on http://webchat.freenode.net[Freenode]. It is a useful place to
|
||||
ask quick questions or discuss on certain topics.
|
||||
+
|
||||
When asking for help on IRC, share relevant logs or pieces of code
|
||||
using a code sharing website, such as http://code.bulix.org.
|
||||
+
|
||||
Note that for certain questions, posting to the mailing list may be
|
||||
better as it will reach more people, both developers and users.
|
||||
|
||||
Bug tracker::
|
||||
+
|
||||
Bugs in Buildroot can be reported via the mailing list or alternatively
|
||||
via the https://bugs.busybox.net/buglist.cgi?product=buildroot[Buildroot
|
||||
bugtracker]. Please refer to xref:reporting-bugs[] before creating a bug
|
||||
report.
|
||||
|
||||
Wiki::
|
||||
+
|
||||
http://elinux.org/Buildroot[The Buildroot wiki page] is hosted on
|
||||
the http://elinux.org[eLinux] wiki. It contains some useful links, an
|
||||
overview of past and upcoming events, and a TODO list.
|
||||
|
||||
Patchwork::
|
||||
+
|
||||
Patchwork is a web-based patch tracking system designed to facilitate
|
||||
the contribution and management of contributions to an open-source
|
||||
project. Patches that have been sent to a mailing list are \'caught' by
|
||||
the system, and appear on a web page. Any comments posted that
|
||||
reference the patch are appended to the patch page too. For more
|
||||
information on Patchwork see
|
||||
http://jk.ozlabs.org/projects/patchwork[].
|
||||
+
|
||||
Buildroot's Patchwork website is mainly for use by Buildroot's
|
||||
maintainer to ensure patches aren't missed. It is also used by Buildroot
|
||||
patch reviewers (see also xref:apply-patches-patchwork[]).
|
||||
However, since the website exposes patches and their corresponding
|
||||
review comments in a clean and concise web interface, it can be useful
|
||||
for all Buildroot developers.
|
||||
+
|
||||
The Buildroot patch management interface is available at
|
||||
http://patchwork.buildroot.org[].
|
||||
@@ -1,11 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
= Starting up
|
||||
|
||||
include::prerequisite.txt[]
|
||||
|
||||
include::getting.txt[]
|
||||
|
||||
include::using.txt[]
|
||||
|
||||
@@ -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,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,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
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
= Working with Buildroot
|
||||
|
||||
This section explains how you can customize Buildroot to fit your
|
||||
needs.
|
||||
|
||||
include::configure.txt[]
|
||||
|
||||
include::make-tips.txt[]
|
||||
|
||||
include::customize.txt[]
|
||||
|
||||
include::common-usage.txt[]
|
||||
|
||||
include::eclipse-integration.txt[]
|
||||
|
||||
== Hacking Buildroot
|
||||
|
||||
If Buildroot does not yet fit all your requirements, you may be
|
||||
interested in hacking it to add:
|
||||
|
||||
* new packages: refer to the xref:adding-packages[Developer guide]
|
||||
|
||||
* new board support: refer to the
|
||||
xref:customize-store-board-support[Developer guide].
|
||||
+27
-1
@@ -6,12 +6,38 @@
|
||||
|
||||
<ul>
|
||||
|
||||
<li><b>26 August 2014 -- 2014.08-rc3 released</b>
|
||||
|
||||
<p>Release candidate 3 is out with more cleanups and build fixes. See the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc3">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08-rc3.tar.bz2">2014.08-rc3
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>18 August 2014 -- 2014.08-rc2 released</b>
|
||||
|
||||
<p>Another week, another release candidate with more cleanups and
|
||||
build fixes. See the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc2">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08-rc2.tar.bz2">2014.08-rc2
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="support.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>8 August 2014 -- 2014.08-rc1 released</b>
|
||||
|
||||
<p>We have a new release candidate! Lots of changes all over the
|
||||
tree, see the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc1">CHANGES</a>
|
||||
file for details.</p>
|
||||
file for details, and read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2014-August/103972.html">announcement</a>.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08-rc1.tar.bz2">2014.08-rc1
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
comment "beecrypt needs a toolchain w/ threads, atomic intrinsics"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
comment "beecrypt needs a toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_BEECRYPT
|
||||
bool "beecrypt"
|
||||
@@ -15,15 +15,15 @@ config BR2_PACKAGE_BEECRYPT_CPP
|
||||
bool "C++ support"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_USE_WCHAR # icu
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
|
||||
depends on !BR2_BINFMT_FLAT # icu
|
||||
depends on BR2_ARCH_HAS_ATOMICS # icu
|
||||
select BR2_PACKAGE_ICU
|
||||
help
|
||||
Enable C++ support. This pulls in the (large) icu package.
|
||||
|
||||
comment "C++ support needs a toolchain w/ wchar, atomic intrinsics"
|
||||
comment "C++ support needs a toolchain w/ wchar"
|
||||
depends on !BR2_BINFMT_FLAT
|
||||
depends on BR2_INSTALL_LIBSTDCPP && (!BR2_USE_WCHAR || \
|
||||
!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS)
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on BR2_INSTALL_LIBSTDCPP && !BR2_USE_WCHAR
|
||||
|
||||
endif # BR2_PACKAGE_BEECRYPT
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_CAIRO
|
||||
bool "cairo"
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
select BR2_PACKAGE_PIXMAN
|
||||
select BR2_PACKAGE_FONTCONFIG
|
||||
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
|
||||
|
||||
@@ -26,14 +26,15 @@ config BR2_PACKAGE_CPPCMS_ICU
|
||||
bool "enable icu support"
|
||||
depends on !BR2_BINFMT_FLAT # icu
|
||||
depends on BR2_USE_WCHAR # icu
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
|
||||
depends on BR2_ARCH_HAS_ATOMICS # icu
|
||||
select BR2_PACKAGE_ICU
|
||||
help
|
||||
Using ICU allows advanced localization features into CppCMS,
|
||||
in another hand ICU is heavier than iconv.
|
||||
|
||||
comment "icu support needs a toolchain w/ wchar, atomic intrinsics"
|
||||
depends on !BR2_BINFMT_FLAT || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
comment "icu support needs a toolchain w/ wchar"
|
||||
depends on !BR2_BINFMT_FLAT
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on !BR2_USE_WCHAR
|
||||
|
||||
endif
|
||||
|
||||
@@ -2,6 +2,10 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
|
||||
bool "ecryptfs-utils"
|
||||
select BR2_PACKAGE_KEYUTILS
|
||||
select BR2_PACKAGE_LIBNSS
|
||||
# runtime dependency only, some scripts are using the
|
||||
# 'gettext' program to get translations
|
||||
select BR2_PACKAGE_GETTEXT
|
||||
depends on BR2_USE_WCHAR # gettext
|
||||
depends on BR2_USE_MMU # keyutils
|
||||
depends on !BR2_avr32 && !BR2_microblaze # keyutils
|
||||
depends on BR2_LARGEFILE # libnss
|
||||
@@ -23,8 +27,8 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
|
||||
|
||||
http://ecryptfs.org
|
||||
|
||||
comment "ecryptfs-utils needs a toolchain w/ largefile, threads"
|
||||
comment "ecryptfs-utils needs a toolchain w/ largefile, threads, wchar"
|
||||
depends on !BR2_avr32 && !BR2_microblaze
|
||||
depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS
|
||||
bool "libevas generic loaders"
|
||||
select BR2_PACKAGE_LIBEINA
|
||||
select BR2_PACKAGE_ZLIB
|
||||
help
|
||||
These are additional "generic" loaders for Evas that are
|
||||
stand-alone executables that evas may run from its generic
|
||||
@@ -17,10 +18,12 @@ config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG
|
||||
depends on BR2_USE_WCHAR # librsvg -> glib2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # librsvg -> glib2
|
||||
depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
|
||||
depends on BR2_ARCH_HAS_ATOMICS # cairo
|
||||
help
|
||||
This option enables the Evas generic SVG loader
|
||||
|
||||
comment "SVG loader needs a toolchain w/ wchar, threads, C++"
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
|
||||
|
||||
endif
|
||||
|
||||
@@ -12,7 +12,7 @@ LIBEVAS_GENERIC_LOADERS_LICENSE_FILES = COPYING
|
||||
|
||||
LIBEVAS_GENERIC_LOADERS_INSTALL_STAGING = YES
|
||||
|
||||
LIBEVAS_GENERIC_LOADERS_DEPENDENCIES = libeina
|
||||
LIBEVAS_GENERIC_LOADERS_DEPENDENCIES = libeina zlib
|
||||
|
||||
# For now, we only support the SVG loader
|
||||
LIBEVAS_GENERIC_LOADERS_CONF_OPT += \
|
||||
|
||||
@@ -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
|
||||
@@ -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
@@ -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) \
|
||||
|
||||
@@ -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) \
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
;;
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
;;
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,6 +1,5 @@
|
||||
config BR2_PACKAGE_GETTEXT
|
||||
bool "gettext"
|
||||
depends on BR2_NEEDS_GETTEXT
|
||||
depends on BR2_USE_WCHAR
|
||||
help
|
||||
The GNU `gettext' utilities are a set of tools that provide a
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -178,6 +178,7 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ANNODEX
|
||||
|
||||
config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_CAIRO
|
||||
bool "cairo"
|
||||
depends on BR2_ARCH_HAS_ATOMICS # cairo
|
||||
select BR2_PACKAGE_CAIRO
|
||||
select BR2_PACKAGE_CAIRO_PNG
|
||||
|
||||
@@ -208,9 +209,15 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_PULSE
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
|
||||
depends on BR2_LARGEFILE # pulseaudio -> libsndfile
|
||||
depends on BR2_USE_MMU # pulseaudio
|
||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||
select BR2_PACKAGE_PULSEAUDIO
|
||||
bool "pulseaudio"
|
||||
|
||||
comment "pulseaudio support needs a toolchain w/ largefile, threads"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
|
||||
bool "souphttpsrc (http client)"
|
||||
depends on BR2_USE_WCHAR # libsoup -> glib2
|
||||
|
||||
@@ -12,7 +12,7 @@ GSTREAMER_INSTALL_STAGING = YES
|
||||
# Checking if unaligned memory access works correctly cannot be done when cross
|
||||
# compiling. For the following architectures there is no information available
|
||||
# in the configure script.
|
||||
ifeq ($(BR2_avr32)$(BR2_xtensa)$(BR2_microblaze),y)
|
||||
ifeq ($(BR2_arc)$(BR2_avr32)$(BR2_xtensa)$(BR2_microblaze),y)
|
||||
GSTREAMER_CONF_ENV = as_cv_unaligned_access=no
|
||||
endif
|
||||
ifeq ($(BR2_aarch64),y)
|
||||
|
||||
@@ -269,11 +269,16 @@ 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"
|
||||
depends on BR2_ARCH_HAS_ATOMICS # cairo
|
||||
select BR2_PACKAGE_CAIRO
|
||||
select BR2_PACKAGE_CAIRO_PNG
|
||||
help
|
||||
@@ -304,11 +309,17 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
|
||||
depends on BR2_LARGEFILE # pulseaudio -> libsndfile
|
||||
depends on BR2_USE_MMU # pulseaudio
|
||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||
select BR2_PACKAGE_PULSEAUDIO
|
||||
bool "pulseaudio"
|
||||
help
|
||||
PulseAudio plugin library
|
||||
|
||||
comment "pulseaudio support needs a toolchain w/ largefile, threads"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
|
||||
bool "souphttpsrc (http client)"
|
||||
depends on BR2_USE_WCHAR # libsoup -> glib2
|
||||
|
||||
@@ -14,7 +14,7 @@ GSTREAMER1_LICENSE = LGPLv2+ LGPLv2.1+
|
||||
# Checking if unaligned memory access works correctly cannot be done when cross
|
||||
# compiling. For the following architectures there is no information available
|
||||
# in the configure script.
|
||||
ifeq ($(BR2_avr32)$(BR2_xtensa)$(BR2_microblaze),y)
|
||||
ifeq ($(BR2_arc)$(BR2_avr32)$(BR2_xtensa)$(BR2_microblaze),y)
|
||||
GSTREAMER1_CONF_ENV = as_cv_unaligned_access=no
|
||||
endif
|
||||
ifeq ($(BR2_aarch64),y)
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
From 08a5d355160eb2ac8346ae1b94591418343217f9 Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@openwide.fr>
|
||||
Date: Sun, 17 Aug 2014 23:43:20 +0200
|
||||
Subject: [PATCH 1/1] cups support: replaces -static with -static-libtool-libs
|
||||
|
||||
gutenprint rely on the original behaviour of -static, but since commit
|
||||
in buildroot "support/libtool: make -static behave like -all-static" [1],
|
||||
the build of genppd is broken.
|
||||
|
||||
genppd need to be build statically otherwise the following warning appears:
|
||||
***WARNING: Use of --disable-static-genppd or --disable-static
|
||||
when building CUPS is very dangerous. The build may
|
||||
fail when building the PPD files, or may *SILENTLY*
|
||||
build incorrect PPD files or cause other problems.
|
||||
Please review the README and release notes carefully!
|
||||
|
||||
[1] http://git.buildroot.net/buildroot/commit/?id=97703978ac870ce2b14ad144f8e082de82aa2c64
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
|
||||
---
|
||||
src/cups/Makefile.am | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
|
||||
index 1e27ae0..d711b70 100644
|
||||
--- a/src/cups/Makefile.am
|
||||
+++ b/src/cups/Makefile.am
|
||||
@@ -84,7 +84,7 @@ noinst_SCRIPTS=test-rastertogutenprint
|
||||
endif
|
||||
|
||||
if BUILD_GENPPD_STATIC
|
||||
-STATIC_LDOPTS=-static -export-dynamic
|
||||
+STATIC_LDOPTS=-static-libtool-libs -export-dynamic
|
||||
endif
|
||||
|
||||
cups_calibrate_SOURCES = cups-calibrate.c
|
||||
--
|
||||
1.9.3
|
||||
|
||||
@@ -7,7 +7,7 @@ config BR2_PACKAGE_ICU
|
||||
# file, and it cannot easily be changed to generate FLAT
|
||||
# format.
|
||||
depends on !BR2_BINFMT_FLAT
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
help
|
||||
International Components for Unicode.
|
||||
|
||||
@@ -25,7 +25,8 @@ config BR2_PACKAGE_ICU_CUSTOM_DATA_PATH
|
||||
|
||||
endif
|
||||
|
||||
comment "icu needs a toolchain w/ C++, wchar, threads, atomic intrinsics"
|
||||
comment "icu needs a toolchain w/ C++, wchar, threads"
|
||||
depends on !BR2_BINFMT_FLAT
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
!BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -29,6 +29,7 @@ IMAGEMAGICK_CONF_ENV = ac_cv_sys_file_offset_bits=32
|
||||
endif
|
||||
|
||||
IMAGEMAGICK_CONF_OPT = --program-transform-name='s,,,' \
|
||||
--disable-openmp \
|
||||
--without-perl \
|
||||
--without-wmf \
|
||||
--without-openexr \
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ config BR2_PACKAGE_JACK2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
select BR2_PACKAGE_LIBSAMPLERATE
|
||||
select BR2_PACKAGE_LIBSNDFILE
|
||||
select BR2_PACKAGE_ALSA_LIB
|
||||
@@ -21,7 +21,8 @@ config BR2_PACKAGE_JACK2
|
||||
|
||||
http://jackaudio.org/
|
||||
|
||||
comment "jack2 needs a toolchain w/ largefile, threads, C++, atomic intrinsics"
|
||||
comment "jack2 needs a toolchain w/ largefile, threads, C++"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_ARCH_HAS_ATOMICS
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
!BR2_INSTALL_LIBSTDCPP
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user