mirror of
https://github.com/godotengine/buildroot.git
synced 2026-01-06 18:09:44 +03:00
Compare commits
164 Commits
2014.08-rc
...
2014.08
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fcd720dfcf | ||
|
|
4f6e8e5992 | ||
|
|
c86439678b | ||
|
|
f8993ebb34 | ||
|
|
be8b062f80 | ||
|
|
ec3417676e | ||
|
|
d77b0a7d88 | ||
|
|
cd769f6104 | ||
|
|
8d7993654d | ||
|
|
022a48280a | ||
|
|
4a0dfea9c2 | ||
|
|
3d475ee0ba | ||
|
|
44a5c46213 | ||
|
|
24534eb40a | ||
|
|
f24945a212 | ||
|
|
6708db52c7 | ||
|
|
752b94c7dc | ||
|
|
5292762206 | ||
|
|
172e62be98 | ||
|
|
0a9a32d692 | ||
|
|
1ddffb0e1a | ||
|
|
9418a8387c | ||
|
|
14193ee874 | ||
|
|
a2d7725e4d | ||
|
|
4d36f10426 | ||
|
|
9c09fc6017 | ||
|
|
a194faa44d | ||
|
|
f4905d7a3e | ||
|
|
c9ad5ddfb1 | ||
|
|
c1ef53ed7e | ||
|
|
53bf889cdc | ||
|
|
2b77369882 | ||
|
|
134f51bf0d | ||
|
|
779cb8be9e | ||
|
|
11323613a8 | ||
|
|
f9a11a8fed | ||
|
|
837ff3b752 | ||
|
|
0f46e48c9c | ||
|
|
5e6b7159d7 | ||
|
|
5de840cc6a | ||
|
|
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 |
59
CHANGES
59
CHANGES
@@ -1,3 +1,62 @@
|
||||
2014.08, Released September 1st, 2014
|
||||
|
||||
Minor manual fixes/additions.
|
||||
|
||||
Updated/fixed packages: btrfs-progs, cmake, cppcms, exim,
|
||||
lftp, libdaemon, libev, libgpgme, libiqrf, libnl, libplist,
|
||||
libroxml, libwebsockets, mesa3d, mpd, mtdev2tuio, musepack,
|
||||
perl-gd, php-geoip, php-gnupg, php-imagick, php-memcached,
|
||||
php-ssh2, php-yaml, php-zmq, polarssl, ruby, systemd, taglib,
|
||||
uboot-tools, upmpdcli, webkit, xapp_xfs, xapp_luit,
|
||||
xscreensaver, yajl
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7346: vim-8ae50e3ef8bf.tar.gz can not be downloaded, 404 not found
|
||||
|
||||
2014.08-rc3, Released August 26th, 2014
|
||||
|
||||
Minor fixes.
|
||||
|
||||
User manual update / restructuring.
|
||||
|
||||
Updated/fixed packages: cairo, ecryptfs-utils, gettext,
|
||||
gstreamer, gstreamer1, gutenprint, icu, imagemagick, jack2,
|
||||
lbreakout2, libevas-generic-loaders, libftdi, libinput,
|
||||
libtorrent, ltris, msgpack, ntp, php, procps-ng, pulseaudio,
|
||||
thrift, tvheadend, usb_modeswitch, xmlstarlet,
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7136: ecryptfs-utils needs gettext to run when glibc/eglibc...
|
||||
#7322: libgomp dependency issue with imagemagick
|
||||
#7328: Git dl of versions in x/y broken
|
||||
|
||||
2014.08-rc2, Released August 18th, 2014
|
||||
|
||||
Fixes all over the tree.
|
||||
|
||||
User manual restructured / reworked.
|
||||
|
||||
Toolchain: Fix for C++ exceptions / pthread_exit() on
|
||||
uClibc/glibc, C++-11 features with uClibc.
|
||||
|
||||
Updated/fixed packages: bandwidthd, bluez5_utils, empty,
|
||||
espeak, fbv, ffmpeg, gd, gnupg2, gst1-plugin-good, iftop,
|
||||
infozip, libcuefile, libeml, libnftl, localedef, ltrace,
|
||||
matchbox, mpd, network-manager, nftables, ngrep, nut, openssl,
|
||||
oprofile, perl, perl-net-ssleay, postgresql, pppd, procps-ng,
|
||||
qt, subversion, synergy, systemd, tar, tftpd, webkit,
|
||||
xapp_rstart, xbmc, xbmc-pvr-addons
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7124: Use BR toolchain externally results a non-bootable...
|
||||
#7208: Glibc C++ aplications crash if they use exceptions
|
||||
#7250: Cannot build with -std=c++11
|
||||
#7262: Generating locale en_US.UTF-8 fails on 64bit fedora..
|
||||
#7286: systemd 215 doesn't build
|
||||
|
||||
2014.08-rc1, Released August 8th, 2014
|
||||
|
||||
Fixes all over the tree and new features.
|
||||
|
||||
4
Makefile
4
Makefile
@@ -25,7 +25,7 @@
|
||||
#--------------------------------------------------------------
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2014.08-rc1
|
||||
export BR2_VERSION := 2014.08
|
||||
|
||||
# Check for minimal make version (note: this check will break at make 10.x)
|
||||
MIN_MAKE_VERSION = 3.81
|
||||
@@ -271,6 +271,8 @@ unexport DESTDIR
|
||||
# Causes breakage with packages that needs host-ruby
|
||||
unexport RUBYOPT
|
||||
|
||||
include package/pkg-utils.mk
|
||||
|
||||
ifeq ($(BR2_HAVE_DOT_CONFIG),y)
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -4,43 +4,44 @@
|
||||
|
||||
<p>
|
||||
|
||||
The latest stable release is <b>2014.05</b>, which can be downloaded
|
||||
The latest stable release is <b>2014.08</b>, which can be downloaded
|
||||
here:<p>
|
||||
|
||||
<a href="/downloads/buildroot-2014.05.tar.gz">buildroot-2014.05.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.05.tar.gz.sign">PGP signature</a>)
|
||||
<a href="/downloads/buildroot-2014.08.tar.gz">buildroot-2014.08.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.08.tar.gz.sign">PGP signature</a>)
|
||||
or
|
||||
<a href="/downloads/buildroot-2014.05.tar.bz2">buildroot-2014.05.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.05.tar.bz2.sign">PGP signature</a>).
|
||||
<a href="/downloads/buildroot-2014.08.tar.bz2">buildroot-2014.08.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.08.tar.bz2.sign">PGP signature</a>).
|
||||
|
||||
<p>
|
||||
|
||||
The latest release candidate is <b>2014.08-rc1</b>, which can be
|
||||
<!--
|
||||
The latest release candidate is <b>2014.08-rc3</b>, which can be
|
||||
downloaded here:<p>
|
||||
|
||||
<a href="/downloads/buildroot-2014.08-rc1.tar.gz">buildroot-2014.08-rc1.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc1.tar.gz.sign">PGP signature</a>)
|
||||
<a href="/downloads/buildroot-2014.08-rc3.tar.gz">buildroot-2014.08-rc3.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc3.tar.gz.sign">PGP signature</a>)
|
||||
or
|
||||
<a href="/downloads/buildroot-2014.08-rc1.tar.bz2">buildroot-2014.08-rc1.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc1.tar.bz2.sign">PGP signature</a>).
|
||||
<a href="/downloads/buildroot-2014.08-rc3.tar.bz2">buildroot-2014.08-rc3.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.08-rc3.tar.bz2.sign">PGP signature</a>).
|
||||
<p>
|
||||
|
||||
This and earlier releases (and their PGP signatures) can always be downloaded from
|
||||
<a href="/downloads/">http://buildroot.net/downloads/</a>.
|
||||
|
||||
<p>
|
||||
|
||||
You can also obtain <a href="/downloads/snapshots/">Daily
|
||||
Snapshots</a> of the latest Buildroot source tree if you want to to
|
||||
follow development, but cannot or do not wish to use Git.
|
||||
-->
|
||||
You can also obtain daily snapshots of the latest Buildroot source tree if you
|
||||
want to follow development, but cannot or do not wish to use Git.
|
||||
|
||||
<ul>
|
||||
<li> Click here to <a href="downloads/snapshots/">Daily Snapshots</a>.
|
||||
<li>You can download the
|
||||
<a href="downloads/snapshots/buildroot-snapshot.tar.bz2">latest snapshot
|
||||
</a> or view recent <a href="downloads/snapshots/">daily snapshots</a>.
|
||||
</li>
|
||||
|
||||
<li> Click here to <a href="http://git.buildroot.net/buildroot">browse the source tree</a>.
|
||||
<li>You can also <a href="http://git.buildroot.net/buildroot">browse the
|
||||
source tree online</a>.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -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[]
|
||||
|
||||
|
||||
23
docs/manual/asciidoc-text.conf
Normal file
23
docs/manual/asciidoc-text.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
# Refer to following asciidoc documentation:
|
||||
# http://www.methods.co.nz/asciidoc/userguide.html
|
||||
# In particular sections "Macros" and "Attribute References"
|
||||
#
|
||||
# For hyperlinks, show 'link text [URL]' (if link text provided) or 'URL'
|
||||
[http-inlinemacro]
|
||||
{0=}{0? [}{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[]
|
||||
|
||||
52
docs/manual/configure-other-components.txt
Normal file
52
docs/manual/configure-other-components.txt
Normal file
@@ -0,0 +1,52 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Configuration of other components
|
||||
|
||||
Before attempting to modify any of the components below, make sure you
|
||||
have already configured Buildroot itself, and have enabled the
|
||||
corresponding package.
|
||||
|
||||
BusyBox::
|
||||
+
|
||||
If you already have a BusyBox configuration file, you can directly
|
||||
specify this file in the Buildroot configuration, using
|
||||
+BR2_PACKAGE_BUSYBOX_CONFIG+. Otherwise, Buildroot will start from a
|
||||
default BusyBox configuration file.
|
||||
+
|
||||
To make subsequent changes to the configuration, use +make
|
||||
busybox-menuconfig+ to open the BusyBox configuration editor.
|
||||
+
|
||||
It is also possible to specify a BusyBox configuration file through an
|
||||
environment variable, although this is not recommended. Refer to
|
||||
xref:env-vars[] for more details.
|
||||
|
||||
uClibc::
|
||||
+
|
||||
Configuration of uClibc is done in the same way as for BusyBox. The
|
||||
configuration variable to specify an existing configuration file is
|
||||
+BR2_UCLIBC_CONFIG+. The command to make subsequent changes is +make
|
||||
uclibc-menuconfig+.
|
||||
|
||||
Linux kernel::
|
||||
+
|
||||
If you already have a kernel configuration file, you can directly
|
||||
specify this file in the Buildroot configuration, using
|
||||
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+.
|
||||
+
|
||||
If you do not yet have a kernel configuration file, you can either start
|
||||
by specifying a defconfig in the Buildroot configuration, using
|
||||
+BR2_LINUX_KERNEL_USE_DEFCONFIG+, or start by creating an empty file and
|
||||
specifying it as custom configuration file, using
|
||||
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG+.
|
||||
+
|
||||
To make subsequent changes to the configuration, use +make
|
||||
linux-menuconfig+ to open the Linux configuration editor.
|
||||
|
||||
Barebox::
|
||||
+
|
||||
Configuration of Barebox is done in the same way as for the Linux
|
||||
kernel. The corresponding configuration variables are
|
||||
+BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG+ and
|
||||
+BR2_TARGET_BAREBOX_USE_DEFCONFIG+. To open the configuration editor,
|
||||
use +make barebox-menuconfig+.
|
||||
@@ -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
|
||||
|
||||
@@ -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[].
|
||||
|
||||
59
docs/manual/customize-directory-structure.txt
Normal file
59
docs/manual/customize-directory-structure.txt
Normal file
@@ -0,0 +1,59 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[customize-dir-structure]]
|
||||
=== Recommended directory structure
|
||||
|
||||
When customizing Buildroot for your project, you will be creating one or
|
||||
more project-specific files that need to be stored somewhere. While most
|
||||
of these files could be placed in _any_ location as their path is to be
|
||||
specified in the Buildroot configuration, the Buildroot developers
|
||||
recommend a specific directory structure which is described in this
|
||||
section.
|
||||
|
||||
Orthogonal to this directory structure, you can choose _where_ you place
|
||||
this structure itself: either inside the Buildroot tree, or outside of
|
||||
it using +BR2_EXTERNAL+. Both options are valid, the choice is up to you.
|
||||
|
||||
-----
|
||||
+-- board/
|
||||
| +-- <company>/
|
||||
| +-- <boardname>/
|
||||
| +-- linux.config
|
||||
| +-- busybox.config
|
||||
| +-- <other configuration files>
|
||||
| +-- post_build.sh
|
||||
| +-- post_image.sh
|
||||
| +-- rootfs_overlay/
|
||||
| | +-- etc/
|
||||
| | +-- <some file>
|
||||
| +-- patches/
|
||||
| +-- foo/
|
||||
| | +-- <some patch>
|
||||
| +-- libbar/
|
||||
| +-- <some other patches>
|
||||
|
|
||||
+-- configs/
|
||||
| +-- <boardname>_defconfig
|
||||
|
|
||||
+-- package/
|
||||
| +-- <company>/
|
||||
| +-- Config.in (if not using BR2_EXTERNAL)
|
||||
| +-- <company>.mk (if not using BR2_EXTERNAL)
|
||||
| +-- <boardname>/
|
||||
| +-- package1/
|
||||
| | +-- Config.in
|
||||
| | +-- package1.mk
|
||||
| +-- package2/
|
||||
| +-- Config.in
|
||||
| +-- package2.mk
|
||||
|
|
||||
+-- Config.in (if using BR2_EXTERNAL)
|
||||
+-- external.mk (if using BR2_EXTERNAL)
|
||||
------
|
||||
|
||||
Details on the files shown above are given further in this chapter.
|
||||
|
||||
Note: if you choose to place this structure outside of the Buildroot
|
||||
tree using +BR2_EXTERNAL+, the <company> and possibly <boardname>
|
||||
components may be superfluous and can be left out.
|
||||
@@ -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,30 +1,25 @@
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[outside-br-custom]]
|
||||
=== Keeping customizations outside Buildroot
|
||||
=== Keeping customizations outside of Buildroot
|
||||
|
||||
The Buildroot community recommends and encourages upstreaming to the
|
||||
official Buildroot version the packages and board support that are
|
||||
written by developers. However, it is sometimes not possible or
|
||||
desirable because some of these packages or board support are highly
|
||||
specific or proprietary.
|
||||
As already briefly mentioned in xref:customize-dir-structure[], you can
|
||||
place project-specific customizations in two locations:
|
||||
|
||||
In this case, Buildroot users are offered two choices:
|
||||
* directly within the Buildroot tree, typically maintaining them using
|
||||
branches in a version control system so that upgrading to a newer
|
||||
Buildroot release is easy.
|
||||
|
||||
* They can add their packages, board support and configuration files
|
||||
directly within the Buildroot tree, and maintain them by using
|
||||
branches in a version control system.
|
||||
|
||||
* They can use the +BR2_EXTERNAL+ mechanism, which allows to keep
|
||||
package recipes, board support and configuration files outside of
|
||||
the Buildroot tree, while still having them nicely integrated in
|
||||
the build logic. The following paragraphs give details on how to
|
||||
use +BR2_EXTERNAL+.
|
||||
* outside of the Buildroot tree, using the +BR2_EXTERNAL+ mechanism.
|
||||
This mechanism allows to keep package recipes, board support and
|
||||
configuration files outside of the Buildroot tree, while still
|
||||
having them nicely integrated in the build logic. This section
|
||||
explains how to use +BR2_EXTERNAL+.
|
||||
|
||||
+BR2_EXTERNAL+ is an environment variable that can be used to point to
|
||||
a directory that contains Buildroot customizations. It can be passed
|
||||
to any Buildroot +make+ invocation. It is automatically saved in the
|
||||
hidden +.br-external+ file in the output directory. By doing this,
|
||||
hidden +.br-external+ file in the output directory. Thanks to this,
|
||||
there is no need to pass +BR2_EXTERNAL+ at every +make+ invocation. It
|
||||
can however be changed at any time by passing a new value, and can be
|
||||
removed by passing an empty value.
|
||||
@@ -32,7 +27,7 @@ removed by passing an empty value.
|
||||
*Note:* the +BR2_EXTERNAL+ path can be either an absolute or a relative path,
|
||||
but if it's passed as a relative path, it is important to note that it
|
||||
is interpreted relative to the main Buildroot source directory, *not*
|
||||
the Buildroot output directory.
|
||||
to the Buildroot output directory.
|
||||
|
||||
Some examples:
|
||||
|
||||
@@ -40,7 +35,7 @@ Some examples:
|
||||
buildroot/ $ make BR2_EXTERNAL=/path/to/foobar menuconfig
|
||||
-----
|
||||
|
||||
Starting from now on, external definitions from the +/path/to/foobar+
|
||||
From now on, external definitions from the +/path/to/foobar+
|
||||
directory will be used:
|
||||
|
||||
-----
|
||||
@@ -60,7 +55,7 @@ Or disable the usage of external definitions:
|
||||
buildroot/ $ make BR2_EXTERNAL= xconfig
|
||||
-----
|
||||
|
||||
+BR2_EXTERNAL+ then allows three different things:
|
||||
+BR2_EXTERNAL+ allows three different things:
|
||||
|
||||
* One can store all the board-specific configuration files there,
|
||||
such as the kernel configuration, the root filesystem overlay, or
|
||||
@@ -72,63 +67,36 @@ Or disable the usage of external definitions:
|
||||
filesystem overlay), or the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
|
||||
Buildroot option to
|
||||
+$(BR2_EXTERNAL)/board/<boardname>/kernel.config+ (to specify the
|
||||
location of the kernel configuration file). To achieve this, it is
|
||||
recommended but not mandatory, to store those details in
|
||||
directories called +board/<boardname>/+ under +BR2_EXTERNAL+. This
|
||||
matches the directory structure used within Buildroot.
|
||||
location of the kernel configuration file).
|
||||
|
||||
* One can store package recipes (i.e. +Config.in+ and
|
||||
+<packagename>.mk+), or even custom configuration options and make
|
||||
logic. Buildroot automatically includes +BR2_EXTERNAL/Config.in+ to
|
||||
logic. Buildroot automatically includes +$(BR2_EXTERNAL)/Config.in+ to
|
||||
make it appear in the top-level configuration menu, and includes
|
||||
+BR2_EXTERNAL/external.mk+ with the rest of the makefile logic.
|
||||
+$(BR2_EXTERNAL)/external.mk+ with the rest of the makefile logic.
|
||||
Providing those two files is mandatory, but they can be empty.
|
||||
+
|
||||
The main usage of this is to store package recipes. The recommended
|
||||
way to do this is to write a +BR2_EXTERNAL/Config.in+ that looks
|
||||
like:
|
||||
way to do this is to write a +$(BR2_EXTERNAL)/Config.in+ file that
|
||||
looks like:
|
||||
+
|
||||
------
|
||||
source "$BR2_EXTERNAL/package/package1/Config.in"
|
||||
source "$BR2_EXTERNAL/package/package2/Config.in"
|
||||
source "$BR2_EXTERNAL/package/<boardname>/package1/Config.in"
|
||||
source "$BR2_EXTERNAL/package/<boardname>/package2/Config.in"
|
||||
------
|
||||
+
|
||||
Then, have a +BR2_EXTERNAL/external.mk+ file that looks like:
|
||||
Then, have a +$(BR2_EXTERNAL)/external.mk+ file that looks like:
|
||||
+
|
||||
------
|
||||
include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
|
||||
include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*/*.mk))
|
||||
------
|
||||
+
|
||||
And then in +BR2_EXTERNAL/package/package1+ and
|
||||
+BR2_EXTERNAL/package/package2+ create normal Buildroot package
|
||||
recipes, as explained in xref:adding-packages[].
|
||||
And then in +$(BR2_EXTERNAL)/package/<boardname>/package1+ and
|
||||
+$(BR2_EXTERNAL)/package/<boardname>/package2+ create normal Buildroot
|
||||
package recipes, as explained in xref:adding-packages[].
|
||||
|
||||
* One can store Buildroot defconfigs in the +configs+ subdirectory of
|
||||
+BR2_EXTERNAL+. Buildroot will automatically show them in the
|
||||
+$(BR2_EXTERNAL)+. Buildroot will automatically show them in the
|
||||
output of +make help+ and allow them to be loaded with the normal
|
||||
+make <name>_defconfig+ command. They will be visible under the
|
||||
+User-provided configs:+' label in the 'make help' output.
|
||||
|
||||
In the end, a typical +BR2_EXTERNAL+ directory organization would
|
||||
generally be:
|
||||
|
||||
-----
|
||||
$(BR2_EXTERNAL)/
|
||||
+-- Config.in
|
||||
+-- external.mk
|
||||
+-- board/
|
||||
| +-- <boardname>/
|
||||
| +-- linux.config
|
||||
| +-- overlay/
|
||||
| +-- etc/
|
||||
| +-- <some file>
|
||||
+-- configs/
|
||||
| +-- <boardname>_defconfig
|
||||
+-- package/
|
||||
+-- package1/
|
||||
| +-- Config.in
|
||||
| +-- package1.mk
|
||||
+-- package2/
|
||||
+-- Config.in
|
||||
+-- package2.mk
|
||||
------
|
||||
+User-provided configs+' label in the 'make help' output.
|
||||
|
||||
37
docs/manual/customize-post-image.txt
Normal file
37
docs/manual/customize-post-image.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
=== Customization _after_ the images have been created
|
||||
|
||||
While post-build scripts (xref:rootfs-custom[]) are run _before_
|
||||
building the filesystem image, kernel and bootloader, *post-image
|
||||
scripts* can be used to perform some specific actions _after_ all images
|
||||
have been created.
|
||||
|
||||
Post-image scripts can for example be used to automatically extract your
|
||||
root filesystem tarball in a location exported by your NFS server, or
|
||||
to create a special firmware image that bundles your root filesystem and
|
||||
kernel image, or any other custom action required for your project.
|
||||
|
||||
To enable this feature, specify a space-separated list of post-image
|
||||
scripts in config option +BR2_ROOTFS_POST_IMAGE_SCRIPT+ (in the +System
|
||||
configuration+ menu). If you specify a relative path, it will be
|
||||
relative to the root of the Buildroot tree.
|
||||
|
||||
Just like post-build scripts, post-image scripts are run with the main
|
||||
Buildroot tree as current working directory. The path to the +images+
|
||||
output directory is passed as the first argument to each script. If the
|
||||
config option +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these
|
||||
arguments will be passed to the script too. All the scripts will be
|
||||
passed the exact same set of arguments, it is not possible to pass
|
||||
different sets of arguments to each script.
|
||||
|
||||
Again just like for the post-build scripts, the scripts have access to
|
||||
the environment variables +BR2_CONFIG+, +HOST_DIR+, +STAGING_DIR+,
|
||||
+TARGET_DIR+, +BUILD_DIR+, +BINARIES_DIR+ and +BASE_DIR+.
|
||||
|
||||
The post-image scripts will be executed as the user that executes
|
||||
Buildroot, which should normally _not_ be the root user. Therefore, any
|
||||
action requiring root permissions in one of these scripts will require
|
||||
special handling (usage of fakeroot or sudo), which is left to the
|
||||
script developer.
|
||||
@@ -4,85 +4,96 @@
|
||||
[[rootfs-custom]]
|
||||
=== Customizing the generated target filesystem
|
||||
|
||||
Besides changing one or another configuration through +make *config+,
|
||||
there are a few ways to customize the resulting target filesystem.
|
||||
Besides changing the configuration through +make *config+,
|
||||
there are a few other ways to customize the resulting target filesystem.
|
||||
|
||||
* Customize the target filesystem directly and rebuild the image. The
|
||||
target filesystem is available under +output/target/+. You can
|
||||
simply make your changes here and run make afterwards - this will
|
||||
rebuild the target filesystem image. This method allows you to do
|
||||
anything to the target filesystem, but if you decide to completely
|
||||
rebuild your toolchain and tools, these changes will be lost. This
|
||||
solution is therefore only useful for quick tests only: _changes do
|
||||
not survive the +make clean+ command_. Once you have validated your
|
||||
changes, you should make sure that they will persist after a +make
|
||||
clean+ by using one of the following methods.
|
||||
The two recommended methods, which can co-exist, are root filesystem
|
||||
overlay(s) and post build script(s).
|
||||
|
||||
* Create a filesystem overlay: a tree of files that are copied directly
|
||||
over the target filesystem after it has been built. Set
|
||||
+BR2_ROOTFS_OVERLAY+ to the top of the tree. +.git+, +.svn+, +.hg+
|
||||
directories, +.empty+ files and files ending with +~+ are excluded.
|
||||
_Among these first 3 methods, this one should be preferred_.
|
||||
Root filesystem overlays (+BR2_ROOTFS_OVERLAY+)::
|
||||
+
|
||||
A filesystem overlay is a tree of files that is copied directly
|
||||
over the target filesystem after it has been built. To enable this
|
||||
feature, set config option +BR2_ROOTFS_OVERLAY+ (in the +System
|
||||
configuration+ menu) to the root of the overlay. You can even specify
|
||||
multiple overlays, space-separated. If you specify a relative path,
|
||||
it will be relative to the root of the Buildroot tree. Hidden
|
||||
directories of version control systems, like +.git+, +.svn+, +.hg+,
|
||||
etc., files called +.empty+ and files ending in +~+ are excluded from
|
||||
the copy.
|
||||
|
||||
* In the Buildroot configuration, you can specify the paths to one or
|
||||
more *post-build scripts*. These scripts are called in the given order,
|
||||
'after' Buildroot builds all the selected software, but 'before' the
|
||||
rootfs images are assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ allows
|
||||
you to specify the location of your post-build scripts. This option can be
|
||||
found in the +System configuration+ menu. The destination root
|
||||
filesystem folder is given as the first argument to these scripts,
|
||||
and these scripts can then be used to remove or modify any file in your
|
||||
Post-build scripts (+BR2_ROOTFS_POST_BUILD_SCRIPT+)::
|
||||
+
|
||||
Post-build scripts are shell scripts called 'after' Buildroot builds
|
||||
all the selected software, but 'before' the rootfs images are
|
||||
assembled. To enable this feature, specify a space-separated list of
|
||||
post-build scripts in config option +BR2_ROOTFS_POST_BUILD_SCRIPT+ (in
|
||||
the +System configuration+ menu). If you specify a relative path, it
|
||||
will be relative to the root of the Buildroot tree.
|
||||
+
|
||||
Using post-build scripts, you can remove or modify any file in your
|
||||
target filesystem. You should, however, use this feature with care.
|
||||
Whenever you find that a certain package generates wrong or unneeded
|
||||
files, you should fix that package rather than work around it with some
|
||||
post-build cleanup scripts.
|
||||
You may also use these variables in your post-build script:
|
||||
- +BR2_CONFIG+: the path to the Buildroot .config file
|
||||
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
|
||||
xref:generic-package-reference[]
|
||||
- +BUILD_DIR+: the directory where packages are extracted and built
|
||||
- +BINARIES_DIR+: the place where all binary files (aka images) are
|
||||
stored
|
||||
- +BASE_DIR+: the base output directory
|
||||
+
|
||||
The post-build scripts are run with the main Buildroot tree as current
|
||||
working directory. The path to the target filesystem is passed as the
|
||||
first argument to each script. If the config option
|
||||
+BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these arguments will be
|
||||
passed to the script too. All the scripts will be passed the exact
|
||||
same set of arguments, it is not possible to pass different sets of
|
||||
arguments to each script.
|
||||
+
|
||||
In addition, you may also use these environment variables:
|
||||
|
||||
* Create your own 'target skeleton'. You can start with the default
|
||||
skeleton available under +system/skeleton+ and then customize it to
|
||||
suit your needs. The +BR2_ROOTFS_SKELETON_CUSTOM+ and
|
||||
+BR2_ROOTFS_SKELETON_CUSTOM_PATH+ will allow you to specify the
|
||||
location of your custom skeleton. These options can be found in the
|
||||
+System configuration+ menu. At build time, the contents of the
|
||||
skeleton are copied to output/target before any package
|
||||
installation. Note that this method is *not recommended*, as it
|
||||
duplicates the entire skeleton, which prevents from taking advantage
|
||||
of the fixes or improvements brought to the default Buildroot
|
||||
skeleton. The recommended method is to use the _post-build scripts_
|
||||
mechanism described in the previous item.
|
||||
- +BR2_CONFIG+: the path to the Buildroot .config file
|
||||
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
|
||||
xref:generic-package-reference[]
|
||||
- +BUILD_DIR+: the directory where packages are extracted and built
|
||||
- +BINARIES_DIR+: the place where all binary files (aka images) are
|
||||
stored
|
||||
- +BASE_DIR+: the base output directory
|
||||
|
||||
Note also that you can use the *post-image scripts*
|
||||
if you want to perform some specific actions 'after' all
|
||||
filesystem images have been created (for example to automatically
|
||||
extract your root filesystem tarball in a location exported by your
|
||||
NFS server, or to create a special firmware image that bundles your
|
||||
root filesystem and kernel image, or any other custom action), you can
|
||||
specify a space-separated list of scripts in the
|
||||
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ configuration option. This option can be
|
||||
found in the +System configuration+ menu as well.
|
||||
Below two more methods of customizing the target filesystem are
|
||||
described, but they are not recommended.
|
||||
|
||||
Each of those scripts will be called with the path to the +images+
|
||||
output directory as first argument, and will be executed with the main
|
||||
Buildroot source directory as the current directory. Those scripts will
|
||||
be executed as the user that executes Buildroot, which should normally
|
||||
not be the root user. Therefore, any action requiring root permissions
|
||||
in one of these _post-image scripts_ will require special handling
|
||||
(usage of fakeroot or sudo), which is left to the script developer.
|
||||
Direct modification of the target filesystem::
|
||||
+
|
||||
For temporary modifications, you can modify the target filesystem
|
||||
directly and rebuild the image. The target filesystem is available
|
||||
under +output/target/+. After making your changes, run +make+ to
|
||||
rebuild the target filesystem image.
|
||||
+
|
||||
This method allows you to do anything to the target filesystem, but if
|
||||
you need to clean your Buildroot tree using +make clean+, these
|
||||
changes will be lost. Such cleaning is necessary in several cases,
|
||||
refer to xref:full-rebuild[] for details. This solution is therefore
|
||||
only useful for quick tests: _changes do not survive the +make clean+
|
||||
command_. Once you have validated your changes, you should make sure
|
||||
that they will persist after a +make clean+, using a root filesystem
|
||||
overlay or a post-build script.
|
||||
|
||||
Just like for the _post-build scripts_ mentioned above, you also have
|
||||
access to the following environment variables from your _post-image
|
||||
scripts_: +BR2_CONFIG+, +BUILD_DIR+, +HOST_DIR+, +STAGING_DIR+,
|
||||
+TARGET_DIR+, +BINARIES_DIR+ and +BASE_DIR+.
|
||||
|
||||
Additionally, each of the +BR2_ROOTFS_POST_BUILD_SCRIPT+ and
|
||||
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ scripts will be passed the arguments
|
||||
specified in +BR2_ROOTFS_POST_SCRIPT_ARGS+ (if that is not empty).
|
||||
All the scripts will be passed the exact same set of arguments, it
|
||||
is not possible to pass different sets of arguments to each script.
|
||||
Custom target skeleton (+BR2_ROOTFS_SKELETON_CUSTOM+)::
|
||||
+
|
||||
The root filesystem image is created from a target skeleton, on top of
|
||||
which all packages install their files. The skeleton is copied to the
|
||||
target directory +output/target+ before any package is built and
|
||||
installed. The default target skeleton provides the standard Unix
|
||||
filesystem layout and some basic init scripts and configuration files.
|
||||
+
|
||||
If the default skeleton (available under +system/skeleton+) does not
|
||||
match your needs, you would typically use a root filesystem overlay or
|
||||
post-build script to adapt it. However, if the default skeleton is
|
||||
entirely different than what you need, using a custom skeleton may be
|
||||
more suitable.
|
||||
+
|
||||
To enable this feature, enable config option
|
||||
+BR2_ROOTFS_SKELETON_CUSTOM+ and set +BR2_ROOTFS_SKELETON_CUSTOM_PATH+
|
||||
to the path of your custom skeleton. Both options are available in the
|
||||
+System configuration+ menu. If you specify a relative path, it will
|
||||
be relative to the root of the Buildroot tree.
|
||||
+
|
||||
This method is not recommended because it duplicates the entire
|
||||
skeleton, which prevents taking advantage of the fixes or improvements
|
||||
brought to the default skeleton in later Buildroot releases.
|
||||
|
||||
@@ -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,20 +1,47 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
== Customization
|
||||
== Project-specific customization
|
||||
|
||||
Typical actions you may need to perform for a given project are:
|
||||
|
||||
- configuring Buildroot (including build options and toolchain,
|
||||
bootloader, kernel, package and filesystem image type selection)
|
||||
- configuring other components, like the Linux kernel and BusyBox
|
||||
- adding project-specific patches to some packages (using
|
||||
+BR2_GLOBAL_PATCH_DIR+)
|
||||
- adding or overwriting files on the target filesystem (using
|
||||
+BR2_ROOTFS_OVERLAY+)
|
||||
- modifying or deleting files on the target filesystem (using
|
||||
+BR2_ROOTFS_POST_BUILD_SCRIPT+)
|
||||
- running arbitrary commands prior to generating the filesystem image
|
||||
(using +BR2_ROOTFS_POST_BUILD_SCRIPT+)
|
||||
- running arbitrary commands after generating the filesystem image
|
||||
(using +BR2_ROOTFS_POST_IMAGE_SCRIPT+)
|
||||
- adding project-specific packages
|
||||
|
||||
An important note regarding such 'project-specific' customizations:
|
||||
please carefully consider which changes are indeed project-specific and
|
||||
which changes are also useful to developers outside your project. The
|
||||
Buildroot community highly recommends and encourages the upstreaming of
|
||||
improvements, packages and board support to the official Buildroot
|
||||
project. Of course, it is sometimes not possible or desirable to
|
||||
upstream because the changes are highly specific or proprietary.
|
||||
|
||||
This chapter describes how to make such project-specific customizations
|
||||
in Buildroot and how to store them in a way that you can build the same
|
||||
image in a reproducible way, even after running 'make clean'. By
|
||||
following the recommended strategy, you can even use the same Buildroot
|
||||
tree to build multiple distinct projects!
|
||||
|
||||
include::customize-directory-structure.txt[]
|
||||
|
||||
include::customize-outside-br.txt[]
|
||||
|
||||
include::customize-rootfs.txt[]
|
||||
|
||||
include::customize-busybox-config.txt[]
|
||||
|
||||
include::customize-uclibc-config.txt[]
|
||||
|
||||
include::customize-kernel-config.txt[]
|
||||
|
||||
include::customize-toolchain.txt[]
|
||||
include::customize-post-image.txt[]
|
||||
|
||||
include::customize-store.txt[]
|
||||
|
||||
include::customize-packages.txt[]
|
||||
|
||||
include::customize-outside-br.txt[]
|
||||
|
||||
@@ -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[]
|
||||
@@ -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:
|
||||
|
||||
--------------------
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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[].
|
||||
73
docs/manual/resources.txt
Normal file
73
docs/manual/resources.txt
Normal file
@@ -0,0 +1,73 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[community-resources]]
|
||||
== Community resources
|
||||
|
||||
Like any open source project, Buildroot has different ways to share
|
||||
information in its community and outside.
|
||||
|
||||
Each of those ways may interest you if you are looking for some help,
|
||||
want to understand Buildroot or contribute to the project.
|
||||
|
||||
Mailing List::
|
||||
+
|
||||
Buildroot has a mailing list for discussion and development. It is the
|
||||
main method of interaction for Buildroot users and developers.
|
||||
+
|
||||
Only subscribers to the Buildroot mailing list are allowed to post to
|
||||
this list. You can subscribe via the
|
||||
http://lists.busybox.net/mailman/listinfo/buildroot[mailing list info
|
||||
page].
|
||||
+
|
||||
Mails that are sent to the mailing list are also available in the
|
||||
http://lists.busybox.net/pipermail/buildroot[mailing list archives] and
|
||||
via http://gmane.org[Gmane], at
|
||||
http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot[+gmane.comp.lib.uclibc.buildroot+].
|
||||
Please search the mailing list archives before asking questions, since
|
||||
there is a good chance someone else has asked the same question before.
|
||||
|
||||
IRC::
|
||||
+
|
||||
The Buildroot IRC channel irc://freenode.net/#buildroot[#buildroot] is
|
||||
hosted on http://webchat.freenode.net[Freenode]. It is a useful place to
|
||||
ask quick questions or discuss on certain topics.
|
||||
+
|
||||
When asking for help on IRC, share relevant logs or pieces of code
|
||||
using a code sharing website, such as http://code.bulix.org.
|
||||
+
|
||||
Note that for certain questions, posting to the mailing list may be
|
||||
better as it will reach more people, both developers and users.
|
||||
|
||||
Bug tracker::
|
||||
+
|
||||
Bugs in Buildroot can be reported via the mailing list or alternatively
|
||||
via the https://bugs.busybox.net/buglist.cgi?product=buildroot[Buildroot
|
||||
bugtracker]. Please refer to xref:reporting-bugs[] before creating a bug
|
||||
report.
|
||||
|
||||
Wiki::
|
||||
+
|
||||
http://elinux.org/Buildroot[The Buildroot wiki page] is hosted on
|
||||
the http://elinux.org[eLinux] wiki. It contains some useful links, an
|
||||
overview of past and upcoming events, and a TODO list.
|
||||
|
||||
Patchwork::
|
||||
+
|
||||
Patchwork is a web-based patch tracking system designed to facilitate
|
||||
the contribution and management of contributions to an open-source
|
||||
project. Patches that have been sent to a mailing list are \'caught' by
|
||||
the system, and appear on a web page. Any comments posted that
|
||||
reference the patch are appended to the patch page too. For more
|
||||
information on Patchwork see
|
||||
http://jk.ozlabs.org/projects/patchwork[].
|
||||
+
|
||||
Buildroot's Patchwork website is mainly for use by Buildroot's
|
||||
maintainer to ensure patches aren't missed. It is also used by Buildroot
|
||||
patch reviewers (see also xref:apply-patches-patchwork[]).
|
||||
However, since the website exposes patches and their corresponding
|
||||
review comments in a clean and concise web interface, it can be useful
|
||||
for all Buildroot developers.
|
||||
+
|
||||
The Buildroot patch management interface is available at
|
||||
http://patchwork.buildroot.org[].
|
||||
@@ -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].
|
||||
@@ -6,12 +6,47 @@
|
||||
|
||||
<ul>
|
||||
|
||||
<li><b>1 September 2014 -- 2014.08 released</b>
|
||||
|
||||
<p>The stable 2014.08 release is out - Thanks to everyone
|
||||
contributing and testing the release candidates. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08">CHANGES</a>
|
||||
file for more details,
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08.tar.bz2">2014.08 release</a>.</p>
|
||||
|
||||
<li><b>26 August 2014 -- 2014.08-rc3 released</b>
|
||||
|
||||
<p>Release candidate 3 is out with more cleanups and build fixes. See the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc3">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08-rc3.tar.bz2">2014.08-rc3
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>18 August 2014 -- 2014.08-rc2 released</b>
|
||||
|
||||
<p>Another week, another release candidate with more cleanups and
|
||||
build fixes. See the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc2">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08-rc2.tar.bz2">2014.08-rc2
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="support.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>8 August 2014 -- 2014.08-rc1 released</b>
|
||||
|
||||
<p>We have a new release candidate! Lots of changes all over the
|
||||
tree, see the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc1">CHANGES</a>
|
||||
file for details.</p>
|
||||
file for details, and read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2014-August/103972.html">announcement</a>.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.08-rc1.tar.bz2">2014.08-rc1
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From 5e101a32087bbba18ebbcdf75faee3fff27f7168 Mon Sep 17 00:00:00 2001
|
||||
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
Date: Sat, 30 Aug 2014 14:42:00 +0200
|
||||
Subject: [PATCH 1/2] Add support for DISABLE_DOCUMENTATION
|
||||
|
||||
This commit adds the support for a make variable named
|
||||
"DISABLE_DOCUMENTATION", which allows to disable the build of the
|
||||
documentation. This is useful in contexts where the tools needed to
|
||||
build the documentation are not necessarily available.
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index e721e99..926885f 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -57,10 +57,15 @@ btrfs_image_libs = -lpthread
|
||||
btrfs_fragments_libs = -lgd -lpng -ljpeg -lfreetype
|
||||
|
||||
SUBDIRS =
|
||||
-BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS)) build-Documentation
|
||||
-INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS)) install-Documentation
|
||||
+BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS))
|
||||
+INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS))
|
||||
CLEANDIRS = $(patsubst %,clean-%,$(SUBDIRS))
|
||||
|
||||
+ifneq ($(DISABLE_DOCUMENTATION),1)
|
||||
+BUILDDIRS += build-Documentation
|
||||
+INSTALLDIRS += install-Documentation
|
||||
+endif
|
||||
+
|
||||
.PHONY: $(SUBDIRS)
|
||||
.PHONY: $(BUILDDIRS)
|
||||
.PHONY: $(INSTALLDIRS)
|
||||
--
|
||||
2.0.0
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
Disable documentation build/install, it needs asciidoc
|
||||
and we don't use it anyway.
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
|
||||
diff -Nura btrfs-progs-v3.14.2.orig/Makefile btrfs-progs-v3.14.2/Makefile
|
||||
--- btrfs-progs-v3.14.2.orig/Makefile 2014-05-29 21:56:59.000000000 -0300
|
||||
+++ btrfs-progs-v3.14.2/Makefile 2014-06-17 16:53:29.404520306 -0300
|
||||
@@ -57,8 +57,8 @@
|
||||
btrfs_fragment_libs = -lgd -lpng -ljpeg -lfreetype
|
||||
|
||||
SUBDIRS =
|
||||
-BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS)) build-Documentation
|
||||
-INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS)) install-Documentation
|
||||
+BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS))
|
||||
+INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS))
|
||||
CLEANDIRS = $(patsubst %,clean-%,$(SUBDIRS))
|
||||
|
||||
.PHONY: $(SUBDIRS)
|
||||
@@ -0,0 +1,101 @@
|
||||
From 6cef3077e0e7073e3449286b3e544ec60e3c5270 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sat, 30 Aug 2014 14:43:04 +0200
|
||||
Subject: [PATCH 2/2] Improve static building and installation
|
||||
|
||||
This commit improves the static-only building of btrfs-progs, and adds
|
||||
support for installing the static only tools:
|
||||
|
||||
- It now ensures that all programs are built statically, not only a
|
||||
small subset of them, by defining 'progs_static' from the existing
|
||||
'progs' variable.
|
||||
|
||||
- It changes the order of libraries in the btrfs-%.static rule so
|
||||
that -lpthread (part of STATIC_LIBS) appears *after* the '$($(subst
|
||||
-,_,$(subst .static,,$@)-libs))' logic, which brings in
|
||||
-lcom_err. This is needed because libcom_err.a uses the semaphore
|
||||
functions, which are available in the pthread library.
|
||||
|
||||
- Adds the necessary rules to generate the btrfsck.static link and
|
||||
btrfstune.static binary.
|
||||
|
||||
- Adds an 'install-static' target to install the static
|
||||
binaries. Note that they are renamed to not carry a '.static'
|
||||
suffix.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile | 22 +++++++++++++++++++---
|
||||
1 file changed, 19 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 926885f..93e264b 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -50,6 +50,8 @@ progs = mkfs.btrfs btrfs-debug-tree btrfsck \
|
||||
btrfs btrfs-map-logical btrfs-image btrfs-zero-log btrfs-convert \
|
||||
btrfs-find-root btrfstune btrfs-show-super
|
||||
|
||||
+progs_static = $(foreach p,$(progs),$(p).static)
|
||||
+
|
||||
# external libs required by various binaries; for btrfs-foo,
|
||||
# specify btrfs_foo_libs = <list of libs>; see $($(subst...)) rules below
|
||||
btrfs_convert_libs = -lext2fs -lcom_err
|
||||
@@ -141,7 +143,7 @@ test:
|
||||
# NOTE: For static compiles, you need to have all the required libs
|
||||
# static equivalent available
|
||||
#
|
||||
-static: btrfs.static mkfs.btrfs.static btrfs-find-root.static
|
||||
+static: $(progs_static)
|
||||
|
||||
version.h:
|
||||
@echo " [SH] $@"
|
||||
@@ -174,8 +176,8 @@ $(lib_links):
|
||||
btrfs-%.static: $(static_objects) btrfs-%.static.o $(static_libbtrfs_objects)
|
||||
@echo " [LD] $@"
|
||||
$(Q)$(CC) $(STATIC_CFLAGS) -o $@ $@.o $(static_objects) \
|
||||
- $(static_libbtrfs_objects) $(STATIC_LDFLAGS) $(STATIC_LIBS) \
|
||||
- $($(subst -,_,$(subst .static,,$@)-libs))
|
||||
+ $(static_libbtrfs_objects) $(STATIC_LDFLAGS) \
|
||||
+ $($(subst -,_,$(subst .static,,$@)-libs)) $(STATIC_LIBS)
|
||||
|
||||
btrfs-%: $(objects) $(libs) btrfs-%.o
|
||||
@echo " [LD] $@"
|
||||
@@ -196,6 +198,10 @@ btrfsck: btrfs
|
||||
@echo " [LN] $@"
|
||||
$(Q)$(LN) -f btrfs btrfsck
|
||||
|
||||
+btrfsck.static: btrfs.static
|
||||
+ @echo " [LN] $@"
|
||||
+ $(Q)$(LN) -f $^ $@
|
||||
+
|
||||
mkfs.btrfs: $(objects) $(libs) mkfs.o
|
||||
@echo " [LD] $@"
|
||||
$(Q)$(CC) $(CFLAGS) -o mkfs.btrfs $(objects) mkfs.o $(LDFLAGS) $(LIBS)
|
||||
@@ -209,6 +215,11 @@ btrfstune: $(objects) $(libs) btrfstune.o
|
||||
@echo " [LD] $@"
|
||||
$(Q)$(CC) $(CFLAGS) -o btrfstune $(objects) btrfstune.o $(LDFLAGS) $(LIBS)
|
||||
|
||||
+btrfstune.static: $(static_objects) btrfstune.static.o $(static_libbtrfs_objects)
|
||||
+ @echo " [LD] $@"
|
||||
+ $(Q)$(CC) $(STATIC_CFLAGS) -o $@ btrfstune.static.o $(static_objects) \
|
||||
+ $(static_libbtrfs_objects) $(STATIC_LDFLAGS) $(STATIC_LIBS)
|
||||
+
|
||||
dir-test: $(objects) $(libs) dir-test.o
|
||||
@echo " [LD] $@"
|
||||
$(Q)$(CC) $(CFLAGS) -o dir-test $(objects) dir-test.o $(LDFLAGS) $(LIBS)
|
||||
@@ -258,6 +269,11 @@ install: $(libs) $(progs) $(INSTALLDIRS)
|
||||
$(INSTALL) -m755 -d $(DESTDIR)$(incdir)
|
||||
$(INSTALL) -m644 $(headers) $(DESTDIR)$(incdir)
|
||||
|
||||
+install-static: $(progs_static) $(INSTALLDIRS)
|
||||
+ for p in $(progs_static) ; do \
|
||||
+ $(INSTALL) -D -m755 $$p $(DESTDIR)$(bindir)/`basename $$p .static` ; \
|
||||
+ done
|
||||
+
|
||||
$(INSTALLDIRS):
|
||||
@echo "Making install in $(patsubst install-%,%,$@)"
|
||||
$(Q)$(MAKE) $(MAKEOPTS) -C $(patsubst install-%,%,$@) install
|
||||
--
|
||||
2.0.0
|
||||
|
||||
@@ -4,19 +4,31 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BTRFS_PROGS_VERSION = 3.14.2
|
||||
BTRFS_PROGS_VERSION = 3.16
|
||||
BTRFS_PROGS_SITE = https://www.kernel.org/pub/linux/kernel/people/mason/btrfs-progs
|
||||
BTRFS_PROGS_SOURCE = btrfs-progs-v$(BTRFS_PROGS_VERSION).tar.xz
|
||||
BTRFS_PROGS_DEPENDENCIES = acl attr e2fsprogs lzo util-linux zlib
|
||||
BTRFS_PROGS_LICENSE = GPLv2
|
||||
BTRFS_PROGS_LICENSE_FILES = COPYING
|
||||
|
||||
BTRFS_PROGS_MAKE_FLAGS = DISABLE_DOCUMENTATION=1
|
||||
|
||||
ifeq ($(BR2_PREFER_STATIC_LIB),y)
|
||||
BTRFS_PROGS_MAKE_TARGET = static
|
||||
BTRFS_PROGS_MAKE_INSTALL_TARGET = install-static
|
||||
else
|
||||
BTRFS_PROGS_MAKE_TARGET = all
|
||||
BTRFS_PROGS_MAKE_INSTALL_TARGET = install
|
||||
endif
|
||||
|
||||
define BTRFS_PROGS_BUILD_CMDS
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \
|
||||
$(BTRFS_PROGS_MAKE_FLAGS) $(BTRFS_PROGS_MAKE_TARGET)
|
||||
endef
|
||||
|
||||
define BTRFS_PROGS_INSTALL_TARGET_CMDS
|
||||
$(MAKE) -C $(@D) prefix=/usr DESTDIR=$(TARGET_DIR) install
|
||||
$(MAKE) -C $(@D) prefix=/usr DESTDIR=$(TARGET_DIR) \
|
||||
$(BTRFS_PROGS_MAKE_FLAGS) $(BTRFS_PROGS_MAKE_INSTALL_TARGET)
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -10,6 +10,8 @@ CMAKE_SITE = http://www.cmake.org/files/v$(CMAKE_VERSION_MAJOR)
|
||||
CMAKE_LICENSE = BSD-3c
|
||||
CMAKE_LICENSE_FILES = Copyright.txt
|
||||
|
||||
HOST_CMAKE_DEPENDENCIES = host-pkgconf
|
||||
|
||||
define HOST_CMAKE_CONFIGURE_CMDS
|
||||
(cd $(@D); \
|
||||
LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
|
||||
@@ -26,18 +26,14 @@ config BR2_PACKAGE_CPPCMS_ICU
|
||||
bool "enable icu support"
|
||||
depends on !BR2_BINFMT_FLAT # icu
|
||||
depends on BR2_USE_WCHAR # icu
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
|
||||
depends on BR2_ARCH_HAS_ATOMICS # icu
|
||||
select BR2_PACKAGE_ICU
|
||||
help
|
||||
Using ICU allows advanced localization features into CppCMS,
|
||||
in another hand ICU is heavier than iconv.
|
||||
|
||||
comment "icu support needs a toolchain w/ wchar, atomic intrinsics"
|
||||
depends on !BR2_BINFMT_FLAT || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
|
||||
depends on !BR2_USE_WCHAR
|
||||
|
||||
endif
|
||||
|
||||
comment "cppcms needs a toolchain w/ C++, NPTL, dynamic library"
|
||||
comment "cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
|
||||
BR2_PREFER_STATIC_LIB
|
||||
!BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
|
||||
|
||||
@@ -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 += \
|
||||
|
||||
22
package/empty/empty-0001-respect-LDFLAGS.patch
Normal file
22
package/empty/empty-0001-respect-LDFLAGS.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
downloaded from
|
||||
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/empty/files/empty-respect-LDFLAGS.patch?view=markup
|
||||
|
||||
Reported on the Gentoo bug tracker
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=429664
|
||||
|
||||
and reported upstream
|
||||
https://sourceforge.net/tracker/?func=detail&aid=3554236&group_id=136798&atid=736886
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
|
||||
--- empty-0.6.18b/Makefile
|
||||
+++ empty-0.6.18b/Makefile
|
||||
@@ -16,7 +16,7 @@
|
||||
PREFIX = /usr/local
|
||||
|
||||
all:
|
||||
- ${CC} ${CFLAGS} -Wall ${LIBS} -o empty empty.c
|
||||
+ ${CC} ${CFLAGS} ${LDFLAGS} empty.c ${LIBS} -o empty
|
||||
|
||||
FreeBSD: all
|
||||
NetBSD: all
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
comment "exim needs a toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_EXIM
|
||||
bool "exim"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_PACKAGE_PCRE
|
||||
select BR2_PACKAGE_BERKELEYDB
|
||||
help
|
||||
|
||||
@@ -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
|
||||
273
package/gcc/4.7.4/850-libstdcxx-uclibc-c99.patch
Normal file
273
package/gcc/4.7.4/850-libstdcxx-uclibc-c99.patch
Normal file
@@ -0,0 +1,273 @@
|
||||
Allow C99-depending features of libstdc++ with uClibc
|
||||
|
||||
The libstdc++ code is fairly restrictive on how it checks for C99
|
||||
compatibility: it requires *complete* C99 support to enable certain
|
||||
features. For example, uClibc provides a good number of C99 features,
|
||||
but not C99 complex number support. For this reason, libstdc++
|
||||
completely disables many the standard C++ methods that can in fact
|
||||
work because uClibc provides the necessary functions.
|
||||
|
||||
This patch is similar and highly inspired from
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
|
||||
a way that doesn't involve changing the configure.ac script, as
|
||||
autoreconfiguring gcc is complicated. It simply relies on the fact
|
||||
that uClibc defines the __UCLIBC__ definition.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
@@ -71,7 +71,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
@@ -89,7 +89,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/include/bits/basic_string.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/basic_string.h
|
||||
+++ b/libstdc++-v3/include/bits/basic_string.h
|
||||
@@ -2806,7 +2806,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && defined(_GLIBCXX_USE_C99) \
|
||||
+#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
|
||||
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
@@ -989,7 +989,7 @@
|
||||
char __fbuf[16];
|
||||
__num_base::_S_format_float(__io, __fbuf, __mod);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough (most probably sufficient
|
||||
// for non-ios_base::fixed outputs)
|
||||
int __cs_size = __max_digits * 3;
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
@@ -572,7 +572,7 @@
|
||||
{
|
||||
const locale __loc = __io.getloc();
|
||||
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough.
|
||||
int __cs_size = 64;
|
||||
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
|
||||
Index: b/libstdc++-v3/include/c_compatibility/math.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/math.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/math.h
|
||||
@@ -57,7 +57,7 @@
|
||||
using std::floor;
|
||||
using std::fmod;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::fpclassify;
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
@@ -103,7 +103,7 @@
|
||||
using std::wmemset;
|
||||
using std::wcsftime;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_global/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_global/cstdlib
|
||||
@@ -146,7 +146,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_global/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cwchar
|
||||
+++ b/libstdc++-v3/include/c_global/cwchar
|
||||
@@ -234,7 +234,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
@@ -291,7 +291,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_std/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdio
|
||||
+++ b/libstdc++-v3/include/c_std/cstdio
|
||||
@@ -140,7 +140,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace std
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
Index: b/libstdc++-v3/include/c_std/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_std/cstdlib
|
||||
@@ -143,7 +143,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_std/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cwchar
|
||||
+++ b/libstdc++-v3/include/c_std/cwchar
|
||||
@@ -230,7 +230,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
Index: b/libstdc++-v3/include/ext/vstring.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/ext/vstring.h
|
||||
+++ b/libstdc++-v3/include/ext/vstring.h
|
||||
@@ -2537,7 +2537,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && defined(_GLIBCXX_USE_C99))
|
||||
+#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
|
||||
Index: b/libstdc++-v3/include/tr1/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdio
|
||||
+++ b/libstdc++-v3/include/tr1/cstdio
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdlib
|
||||
+++ b/libstdc++-v3/include/tr1/cstdlib
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cwchar
|
||||
+++ b/libstdc++-v3/include/tr1/cwchar
|
||||
@@ -52,7 +52,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/tr1/stdlib.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/stdlib.h
|
||||
+++ b/libstdc++-v3/include/tr1/stdlib.h
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
using std::tr1::atoll;
|
||||
using std::tr1::strtoll;
|
||||
Index: b/libstdc++-v3/src/c++11/debug.cc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/src/c++11/debug.cc
|
||||
+++ b/libstdc++-v3/src/c++11/debug.cc
|
||||
@@ -783,7 +783,7 @@
|
||||
int __n __attribute__ ((__unused__)),
|
||||
const char* __fmt, _Tp __s) const throw ()
|
||||
{
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
std::snprintf(__buf, __n, __fmt, __s);
|
||||
#else
|
||||
std::sprintf(__buf, __fmt, __s);
|
||||
Index: b/libstdc++-v3/include/c_global/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdio
|
||||
+++ b/libstdc++-v3/include/c_global/cstdio
|
||||
@@ -140,7 +140,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
@@ -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
|
||||
273
package/gcc/4.8.3/850-libstdcxx-uclibc-c99.patch
Normal file
273
package/gcc/4.8.3/850-libstdcxx-uclibc-c99.patch
Normal file
@@ -0,0 +1,273 @@
|
||||
Allow C99-depending features of libstdc++ with uClibc
|
||||
|
||||
The libstdc++ code is fairly restrictive on how it checks for C99
|
||||
compatibility: it requires *complete* C99 support to enable certain
|
||||
features. For example, uClibc provides a good number of C99 features,
|
||||
but not C99 complex number support. For this reason, libstdc++
|
||||
completely disables many the standard C++ methods that can in fact
|
||||
work because uClibc provides the necessary functions.
|
||||
|
||||
This patch is similar and highly inspired from
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
|
||||
a way that doesn't involve changing the configure.ac script, as
|
||||
autoreconfiguring gcc is complicated. It simply relies on the fact
|
||||
that uClibc defines the __UCLIBC__ definition.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
@@ -70,7 +70,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
@@ -88,7 +88,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/include/bits/basic_string.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/basic_string.h
|
||||
+++ b/libstdc++-v3/include/bits/basic_string.h
|
||||
@@ -2809,7 +2809,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
|
||||
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
|
||||
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
@@ -987,7 +987,7 @@
|
||||
char __fbuf[16];
|
||||
__num_base::_S_format_float(__io, __fbuf, __mod);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough (most probably sufficient
|
||||
// for non-ios_base::fixed outputs)
|
||||
int __cs_size = __max_digits * 3;
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
@@ -572,7 +572,7 @@
|
||||
{
|
||||
const locale __loc = __io.getloc();
|
||||
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough.
|
||||
int __cs_size = 64;
|
||||
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
|
||||
Index: b/libstdc++-v3/include/c_compatibility/math.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/math.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/math.h
|
||||
@@ -56,7 +56,7 @@
|
||||
using std::floor;
|
||||
using std::fmod;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::fpclassify;
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
@@ -103,7 +103,7 @@
|
||||
using std::wmemset;
|
||||
using std::wcsftime;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_global/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_global/cstdlib
|
||||
@@ -182,7 +182,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_global/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cwchar
|
||||
+++ b/libstdc++-v3/include/c_global/cwchar
|
||||
@@ -232,7 +232,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
@@ -289,7 +289,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_std/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdio
|
||||
+++ b/libstdc++-v3/include/c_std/cstdio
|
||||
@@ -139,7 +139,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace std
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
Index: b/libstdc++-v3/include/c_std/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_std/cstdlib
|
||||
@@ -180,7 +180,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_std/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cwchar
|
||||
+++ b/libstdc++-v3/include/c_std/cwchar
|
||||
@@ -228,7 +228,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
Index: b/libstdc++-v3/include/ext/vstring.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/ext/vstring.h
|
||||
+++ b/libstdc++-v3/include/ext/vstring.h
|
||||
@@ -2571,7 +2571,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
|
||||
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
|
||||
Index: b/libstdc++-v3/include/tr1/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdio
|
||||
+++ b/libstdc++-v3/include/tr1/cstdio
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdlib
|
||||
+++ b/libstdc++-v3/include/tr1/cstdlib
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cwchar
|
||||
+++ b/libstdc++-v3/include/tr1/cwchar
|
||||
@@ -52,7 +52,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/tr1/stdlib.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/stdlib.h
|
||||
+++ b/libstdc++-v3/include/tr1/stdlib.h
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
using std::tr1::atoll;
|
||||
using std::tr1::strtoll;
|
||||
Index: b/libstdc++-v3/src/c++11/debug.cc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/src/c++11/debug.cc
|
||||
+++ b/libstdc++-v3/src/c++11/debug.cc
|
||||
@@ -787,7 +787,7 @@
|
||||
int __n __attribute__ ((__unused__)),
|
||||
const char* __fmt, _Tp __s) const throw ()
|
||||
{
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
std::snprintf(__buf, __n, __fmt, __s);
|
||||
#else
|
||||
std::sprintf(__buf, __fmt, __s);
|
||||
Index: b/libstdc++-v3/include/c_global/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdio
|
||||
+++ b/libstdc++-v3/include/c_global/cstdio
|
||||
@@ -139,7 +139,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
@@ -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
|
||||
273
package/gcc/4.9.1/850-libstdcxx-uclibc-c99.patch
Normal file
273
package/gcc/4.9.1/850-libstdcxx-uclibc-c99.patch
Normal file
@@ -0,0 +1,273 @@
|
||||
Allow C99-depending features of libstdc++ with uClibc
|
||||
|
||||
The libstdc++ code is fairly restrictive on how it checks for C99
|
||||
compatibility: it requires *complete* C99 support to enable certain
|
||||
features. For example, uClibc provides a good number of C99 features,
|
||||
but not C99 complex number support. For this reason, libstdc++
|
||||
completely disables many the standard C++ methods that can in fact
|
||||
work because uClibc provides the necessary functions.
|
||||
|
||||
This patch is similar and highly inspired from
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
|
||||
a way that doesn't involve changing the configure.ac script, as
|
||||
autoreconfiguring gcc is complicated. It simply relies on the fact
|
||||
that uClibc defines the __UCLIBC__ definition.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
@@ -70,7 +70,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
@@ -88,7 +88,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/include/bits/basic_string.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/basic_string.h
|
||||
+++ b/libstdc++-v3/include/bits/basic_string.h
|
||||
@@ -2828,7 +2828,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
|
||||
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
|
||||
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
@@ -987,7 +987,7 @@
|
||||
char __fbuf[16];
|
||||
__num_base::_S_format_float(__io, __fbuf, __mod);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough (most probably sufficient
|
||||
// for non-ios_base::fixed outputs)
|
||||
int __cs_size = __max_digits * 3;
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
@@ -572,7 +572,7 @@
|
||||
{
|
||||
const locale __loc = __io.getloc();
|
||||
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough.
|
||||
int __cs_size = 64;
|
||||
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
|
||||
Index: b/libstdc++-v3/include/c_compatibility/math.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/math.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/math.h
|
||||
@@ -56,7 +56,7 @@
|
||||
using std::floor;
|
||||
using std::fmod;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::fpclassify;
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
@@ -103,7 +103,7 @@
|
||||
using std::wmemset;
|
||||
using std::wcsftime;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_global/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_global/cstdlib
|
||||
@@ -182,7 +182,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_global/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cwchar
|
||||
+++ b/libstdc++-v3/include/c_global/cwchar
|
||||
@@ -232,7 +232,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
@@ -289,7 +289,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_std/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdio
|
||||
+++ b/libstdc++-v3/include/c_std/cstdio
|
||||
@@ -144,7 +144,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace std
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
Index: b/libstdc++-v3/include/c_std/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_std/cstdlib
|
||||
@@ -180,7 +180,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_std/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cwchar
|
||||
+++ b/libstdc++-v3/include/c_std/cwchar
|
||||
@@ -228,7 +228,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
Index: b/libstdc++-v3/include/ext/vstring.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/ext/vstring.h
|
||||
+++ b/libstdc++-v3/include/ext/vstring.h
|
||||
@@ -2680,7 +2680,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
|
||||
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
|
||||
Index: b/libstdc++-v3/include/tr1/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdio
|
||||
+++ b/libstdc++-v3/include/tr1/cstdio
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdlib
|
||||
+++ b/libstdc++-v3/include/tr1/cstdlib
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cwchar
|
||||
+++ b/libstdc++-v3/include/tr1/cwchar
|
||||
@@ -52,7 +52,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/tr1/stdlib.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/stdlib.h
|
||||
+++ b/libstdc++-v3/include/tr1/stdlib.h
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
using std::tr1::atoll;
|
||||
using std::tr1::strtoll;
|
||||
Index: b/libstdc++-v3/src/c++11/debug.cc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/src/c++11/debug.cc
|
||||
+++ b/libstdc++-v3/src/c++11/debug.cc
|
||||
@@ -788,7 +788,7 @@
|
||||
int __n __attribute__ ((__unused__)),
|
||||
const char* __fmt, _Tp __s) const throw ()
|
||||
{
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
std::snprintf(__buf, __n, __fmt, __s);
|
||||
#else
|
||||
std::sprintf(__buf, __fmt, __s);
|
||||
Index: b/libstdc++-v3/include/c_global/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdio
|
||||
+++ b/libstdc++-v3/include/c_global/cstdio
|
||||
@@ -146,7 +146,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
@@ -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)
|
||||
|
||||
273
package/gcc/arc-4.8-R3/100-libstdcxx-uclibc-c99.patch
Normal file
273
package/gcc/arc-4.8-R3/100-libstdcxx-uclibc-c99.patch
Normal file
@@ -0,0 +1,273 @@
|
||||
Allow C99-depending features of libstdc++ with uClibc
|
||||
|
||||
The libstdc++ code is fairly restrictive on how it checks for C99
|
||||
compatibility: it requires *complete* C99 support to enable certain
|
||||
features. For example, uClibc provides a good number of C99 features,
|
||||
but not C99 complex number support. For this reason, libstdc++
|
||||
completely disables many the standard C++ methods that can in fact
|
||||
work because uClibc provides the necessary functions.
|
||||
|
||||
This patch is similar and highly inspired from
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
|
||||
a way that doesn't involve changing the configure.ac script, as
|
||||
autoreconfiguring gcc is complicated. It simply relies on the fact
|
||||
that uClibc defines the __UCLIBC__ definition.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
|
||||
@@ -70,7 +70,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
|
||||
@@ -88,7 +88,7 @@
|
||||
__builtin_va_list __args;
|
||||
__builtin_va_start(__args, __fmt);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = __builtin_vsprintf(__out, __fmt, __args);
|
||||
Index: b/libstdc++-v3/include/bits/basic_string.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/basic_string.h
|
||||
+++ b/libstdc++-v3/include/bits/basic_string.h
|
||||
@@ -2811,7 +2811,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
|
||||
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
|
||||
&& !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
|
||||
@@ -987,7 +987,7 @@
|
||||
char __fbuf[16];
|
||||
__num_base::_S_format_float(__io, __fbuf, __mod);
|
||||
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough (most probably sufficient
|
||||
// for non-ios_base::fixed outputs)
|
||||
int __cs_size = __max_digits * 3;
|
||||
Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
|
||||
@@ -572,7 +572,7 @@
|
||||
{
|
||||
const locale __loc = __io.getloc();
|
||||
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
// First try a buffer perhaps big enough.
|
||||
int __cs_size = 64;
|
||||
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
|
||||
Index: b/libstdc++-v3/include/c_compatibility/math.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/math.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/math.h
|
||||
@@ -56,7 +56,7 @@
|
||||
using std::floor;
|
||||
using std::fmod;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::fpclassify;
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
Index: b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
+++ b/libstdc++-v3/include/c_compatibility/wchar.h
|
||||
@@ -103,7 +103,7 @@
|
||||
using std::wmemset;
|
||||
using std::wcsftime;
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_global/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_global/cstdlib
|
||||
@@ -182,7 +182,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_global/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cwchar
|
||||
+++ b/libstdc++-v3/include/c_global/cwchar
|
||||
@@ -232,7 +232,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
@@ -289,7 +289,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/c_std/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdio
|
||||
+++ b/libstdc++-v3/include/c_std/cstdio
|
||||
@@ -139,7 +139,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace std
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
Index: b/libstdc++-v3/include/c_std/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cstdlib
|
||||
+++ b/libstdc++-v3/include/c_std/cstdlib
|
||||
@@ -180,7 +180,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
Index: b/libstdc++-v3/include/c_std/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_std/cwchar
|
||||
+++ b/libstdc++-v3/include/c_std/cwchar
|
||||
@@ -228,7 +228,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef wcstold
|
||||
#undef wcstoll
|
||||
Index: b/libstdc++-v3/include/ext/vstring.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/ext/vstring.h
|
||||
+++ b/libstdc++-v3/include/ext/vstring.h
|
||||
@@ -2571,7 +2571,7 @@
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
|
||||
+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
|
||||
|
||||
#include <ext/string_conversions.h>
|
||||
|
||||
Index: b/libstdc++-v3/include/tr1/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdio
|
||||
+++ b/libstdc++-v3/include/tr1/cstdio
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cstdlib
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cstdlib
|
||||
+++ b/libstdc++-v3/include/tr1/cstdlib
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
Index: b/libstdc++-v3/include/tr1/cwchar
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/cwchar
|
||||
+++ b/libstdc++-v3/include/tr1/cwchar
|
||||
@@ -52,7 +52,7 @@
|
||||
using std::vwscanf;
|
||||
#endif
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
using std::wcstold;
|
||||
using std::wcstoll;
|
||||
using std::wcstoull;
|
||||
Index: b/libstdc++-v3/include/tr1/stdlib.h
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/tr1/stdlib.h
|
||||
+++ b/libstdc++-v3/include/tr1/stdlib.h
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
using std::tr1::atoll;
|
||||
using std::tr1::strtoll;
|
||||
Index: b/libstdc++-v3/src/c++11/debug.cc
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/src/c++11/debug.cc
|
||||
+++ b/libstdc++-v3/src/c++11/debug.cc
|
||||
@@ -787,7 +787,7 @@
|
||||
int __n __attribute__ ((__unused__)),
|
||||
const char* __fmt, _Tp __s) const throw ()
|
||||
{
|
||||
-#ifdef _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
std::snprintf(__buf, __n, __fmt, __s);
|
||||
#else
|
||||
std::sprintf(__buf, __fmt, __s);
|
||||
Index: b/libstdc++-v3/include/c_global/cstdio
|
||||
===================================================================
|
||||
--- a/libstdc++-v3/include/c_global/cstdio
|
||||
+++ b/libstdc++-v3/include/c_global/cstdio
|
||||
@@ -138,7 +138,7 @@
|
||||
using ::vsprintf;
|
||||
} // namespace
|
||||
|
||||
-#if _GLIBCXX_USE_C99
|
||||
+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
|
||||
|
||||
#undef snprintf
|
||||
#undef vfscanf
|
||||
33
package/gd/gd-04-CVE-2014-2497.patch
Normal file
33
package/gd/gd-04-CVE-2014-2497.patch
Normal file
@@ -0,0 +1,33 @@
|
||||
From 463c3bd09bfe8e924e19acad7a2a6af16953a704 Mon Sep 17 00:00:00 2001
|
||||
From: Remi Collet <fedora@famillecollet.com>
|
||||
Date: Mon, 4 Aug 2014 10:31:25 +0200
|
||||
Subject: [PATCH] CVE-2014-2497, NULL pointer dereference, fix #126
|
||||
|
||||
---
|
||||
src/gdxpm.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/gdxpm.c b/src/gdxpm.c
|
||||
index ae6e336..15603a6 100644
|
||||
--- a/src/gdxpm.c
|
||||
+++ b/src/gdxpm.c
|
||||
@@ -83,6 +83,16 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromXpm(char *filename)
|
||||
if(overflow2(sizeof(int), number)) {
|
||||
goto done;
|
||||
}
|
||||
+ for(i = 0; i < number; i++) {
|
||||
+ /*
|
||||
+ avoid NULL pointer dereference
|
||||
+ TODO better fix need to manage monochrome/monovisual
|
||||
+ see m_color or g4_color or g_color
|
||||
+ */
|
||||
+ if (!image.colorTable[i].c_color) {
|
||||
+ goto done;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
colors = (int *)gdMalloc(sizeof(int) * number);
|
||||
if(colors == NULL) {
|
||||
--
|
||||
1.8.5.2
|
||||
|
||||
@@ -1,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 \
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user