Commit Graph

141 Commits

Author SHA1 Message Date
Max Filippov
b5423c2c3f uclibc: enable UCLIBC_HAS_GNU_GETSUBOPT in all configs
This fixes build for applications that use getsubopt unconditionally.
Code addition to getopt is negligible.

Fixes:
  http://autobuild.buildroot.net/results/90c318e3a9ef5e626d0a80e36695d34eda21f97e/
  http://autobuild.buildroot.net/results/cd8e9d9a5f454c321071c21192958aeee9c39e73/

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20 23:44:23 +01:00
Max Filippov
1919d3c287 uclibc: Fix getopt implementations conditional compilation
There's no way to disable getsubopt in uClibc 0.9.33.2: either GNU or
SUSv3 getsubopt is always built.

Properly exclude SUSv3 getsubopt implementation when GNU getopt is
selected.
Exclude GNU getsubopt when SUSv3 getopt is selected. Honor getopt_long
configuration.

This brings UCLIBC_HAS_GNU_GETOPT, UCLIBC_HAS_GNU_GETSUBOPT and
UCLIBC_HAS_GETOPT_LONG handling in sync with uClibc and uClibc-ng tips.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20 23:44:04 +01:00
Gustavo Zacarias
6b0baf14ce uclibc: remove blackfin bits
Now that we don't support the internal blackfin toolchain any more
remove unnecessary bits, conditionals and tweaks.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20 22:12:16 +01:00
Max Filippov
c34f42ace6 package/uclibc: fix linuxthreads symbol typos
BR2_UCLIBC_VERSION_XTENSA_GIT and BR2_UCLIBC_VERSION_SNAPSHOT select
BR2_UCLIBC_SUPPORTS_* instead of new BR2_UCLIBC_VERSION_SUPPORTS_*.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20 16:45:52 +01:00
Thomas Petazzoni
d4f7cfe185 uclibc: double quote values of string options
kconfig string option values should use double quotes when defined, so
this commit fixes package/uclibc/Config.in in that respect.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-14 13:49:20 +01:00
Waldemar Brodkorb
cce8718b5a uclibc: update to latest release 1.0.1
Changes are here http://uclibc-ng.org/pipermail/devel/2015-March/000114.html

Buildroot related are SPARC and XTENSA non-threading builds
and static linking fixes for pthread apps like cdrkit.
Add a hotfix for MIPS compile with older GCC.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-14 13:49:16 +01:00
Thomas Petazzoni
983fcb195c uclibc: remove version from the uclibc-ng config option
For the moment, we probably don't want to have several versions of
uClibc-ng supported at the same time. In preparation to the bump of
uClibc-ng to 1.0.1, this commit gets rid of the version number from
the uclibc-ng config option so that we don't have to rename this
option over and over again each time a new uClibc-ng release is
made. This would be annoying in terms of Config.in.legacy handling.

Since the option BR2_UCLIBC_NG_VERSION_1_0_0 has never been part of
any Buildroot release, we don't have to add anything to
Config.in.legacy.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-14 13:49:13 +01:00
Thomas Petazzoni
c8f590fc7a uclibc: remove bogus comment about thread implementation selection
There is no need to warn the user about selecting an inappropriate
thread implementation, since we make sure only supported combinations
can be selected.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-14 13:49:09 +01:00
Thomas Petazzoni
65473afee4 uclibc: adapt thread implementation selection to uClibc-ng
uClibc-ng does not support linuxthreads or linuxthreads.old on
architectures that have NPTL support. This creates another complicated
dependency: dependeing on the uClibc version being used, not the same
thread implementations are available.

In order to handle this situation, this patch introduces three hidden
booleans:

 - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS
 - BR2_UCLIBC_VERSION_SUPPORTS_LINUXTHREADS_OLD
 - BR2_UCLIBC_VERSION_SUPPORTS_NPTL

They are selected by the different uClibc versions, depending on which
thread implementation they support on the different architectures.

Then, the choice of the thread implementation can rely on those
booleans to know if a given thread implementation is available in the
current architecture / uClibc version selection.

This makes sure that unusable thread implementation do not get
selected, therefore fixing build issues such as:

  http://autobuild.buildroot.org/results/89e/89e423bee040cbce3e82cd89f1191efaac490c0d/

The support table is as follows (only taking into account
architectures that allow the selection of
BR2_TOOLCHAIN_BUILDROOT_UCLIBC, other architectures are not
considered) :

             ----uclibc----   uclibc-xtensa-   --uclibc-arc--  --uclibc-ng---
             LT LT.old NPTL   LT LT.old NPTL   LT LT.old NPTL  LT LT.old NPTL
arc(le|eb)                                      y   y     n    n    n     n (1)
arm(eb)      y    y     y                                      n    y     y (2)
bfin         n    y     n                                      y    y     n
i386         y    y     y                                      n    n     y (3)
m68k         y    y     y                                      y    y     n
mips(64)(el) y    y     y                                      n    n     y
powerpc      y    y     y                                      n    n     y
sh           y    y     y                                      n    n     y
sparc        y    y     y                                      n    n     y
xtensa                        n    y     n                     n    n     y
x86_64       y    y     y                                      n    n     y

  (1) : uclibc-ng only has NPTL support for ARC but it requires a more
        recent compiler version that hasn't been officially released
        by Synopsys.

  (2) : the general idea of uclibc-ng is to only support NPTL on
        architectures where it is available. However, in order to
        support ARM noMMU platforms, LT.old support has been kept on
        ARM.

  (3) : except i386 itself, which doesn't have what's needed for NPTL
        support. i386 is simply not supported by uclibc-ng basically.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-14 13:49:03 +01:00
Luca Ceresoli
b0b9606530 Remove trailing slash from all package site URLs
The recommended form is without the trailing slash. Buildroot will add a slash
between FOO_SITE and FOO_SOURCE as appropriate.

Reported-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-10 20:40:08 +01:00
Gustavo Zacarias
39e08b1dd3 uclibc: add hash for uclibc-ng
[Thomas: put comments near the relevant line.]

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-04 21:30:09 +01:00
Gustavo Zacarias
6b2b721011 uclibc: add patch to unbreak sparc non-threaded builds
SPARC non-threaded builds are broken, add patch for uClibc & uClibc-ng to fix
it.

Status: upstream uClibc (so likely -ng will follow suit shortly).

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-04 21:29:24 +01:00
Thomas Petazzoni
060125b4fe uclibc: enable Xtensa NPTL support with uClibc-ng
Contrary to mainline uClibc, uClibc-ng has support for NPTL on Xtensa,
so let's allow selecting NPTL when a uClibc version other than the
Xtensa special uClibc version is used.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-03-01 12:03:05 +01:00
Thomas Petazzoni
1deb4201b3 uclibc: add ability to use uClibc-ng 1.0.0
This commit adds support for a new uClibc version: uClibc-ng
1.0.0. Since its build system is for now exactly the same as the one
of uClibc, we don't create a new package, but instead simply add it as
a new uClibc version.

The only special trick needed is the creation of a symlink to the
program interpreter, due to a mismatch between the program interpreter
file name generated by uClibc-ng and the one used by gcc.

This patch is heavily based on previous work from Waldemar Brodkorb.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-03-01 12:02:39 +01:00
Thomas Petazzoni
c39ba6af85 uclibc: cleanup handling of ARC uClibc version
This commit makes the ARC uClibc version handling explicit by adding a
BR2_UCLIBC_VERSION_ARC_GIT option, rather than only relying on the
selected architecture. This is needed in preparation to the
introduction of uClibc-ng support, which also supports the ARC
architecture: so we will now have two uClibc versions capable of
handling ARC.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-02-20 09:45:51 +01:00
Yann E. MORIN
161c6aaf95 package/uClibc: RIP, avr32
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-02-14 17:46:27 +01:00
Alexey Brodkin
41e1cb18d1 ARC: bump tools to 2014.12 release
Now when new shiny tools are released by Synopsys we're ready for
version update in Buildroot again.

More details about arc-2014.12 release are available here:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2014.12

Following patches were removed from GCC since they are a part of release
now:
 * 200-size_type_unsigned_int.patch
 * 300-ptrdiff_type_int.patch
 * 400-call-arc_hazard-before-branch-shortening.patch
 * 401-fix-length-attribute-for-casesi_load-pattern.patch
 * 402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
 * 403-update-casesi_compact_jump-instruction-length.patch

But since arc-2014.12 tools are still based on GCC 4.8 following patches
ar still relevant so moving to the new folder to match ARC gcc bump.
 * 100-libstdcxx-uclibc-c99.patch
 * 910-gcc-poison-system-directories.patch

Binutils are still based on 2.23 so following patch still makes sense:
 * 600-poison-system-directories.patch

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

Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-02-02 21:27:55 +01:00
Vicente Olivert Riera
8deb572557 uclibc/0.9.33.2: Rename MIPS' siginfo _timer members
Backport an upstream patch to fix a compilation problem of strace-4.9+
on MIPS platforms with uClibc.

Upstream commit:
  http://git.uclibc.org/uClibc/commit/?id=a1b88fe87a9d2be5696247d266f5c4fd20f000bb

Fixes:
  http://autobuild.buildroot.net/results/e8f/e8f4965b27c9dcc58d6ec77cdc48b83c218c5bec/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-02-01 23:20:24 +01:00
Jerzy Grzegorek
0db263726f package: indentation cleanup
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-01-15 09:41:42 +01:00
Jerzy Grzegorek
dd7346f415 package: indentation cleanup
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-22 09:27:37 +01:00
Thomas Petazzoni
665e13c85e Rename BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS
Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed
from "prefer static libraries when possible" to "use only static
libraries". The former semantic didn't make much sense, since the user
had absolutely no control/idea of which package would use static
libraries, and which packages would not. Therefore, for quite some
time, we have been starting to enforce that BR2_PREFER_STATIC_LIB
should really build everything with static libraries.

As a consequence, this patch renames BR2_PREFER_STATIC_LIB to
BR2_STATIC_LIBS, and adjust the Config.in option accordingly.

This also helps preparing the addition of other options to select
shared, shared+static or just static.

Note that we have verified that this commit can be reproduced by
simply doing a global rename of BR2_PREFER_STATIC_LIB to
BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-12-11 22:48:13 +01:00
Alexey Brodkin
826f315d5f uclibc: enable UCLIBC_HAS_STRING_GENERIC_OPT in all configs
Description in uClibc for this optoin is:
--->---
bool "Use faster (but larger) generic string functions"
	default y
	help
	  Answer Y to use the (tweaked) glibc generic string functions.

	  In general, they are faster (but 3-5K larger) than the base
	  uClibc string functions which are optimized solely for size.

	  Many people will answer Y.
--->---

Additional 3-5K of size is not that important if resulting libuClibc.so is
of size about 300k.

But benefits in terms of performance could be pretty significant.

For example on ARC in LMbench we see more than 3 times bump in some tests
--->---
libc bcopy unaligned
...
8.39 - 6.76  (UCLIBC_HAS_STRING_GENERIC_OPT=no)
8.39 - 23.86 (UCLIBC_HAS_STRING_GENERIC_OPT=yes)
--->---

Also since the option in question is default in uClibc I don't expect if
enabled back (it was silently disabled in http://git.buildroot.net/buildroot/commit/?id=cfbf8abc33d86a0cf5c1bb3e0817a22009b7f301 on introduction of NPTL in uClibc
by Khem Raj) it to introduce problems.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <anton.kolesov@synopsys.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-10 00:00:01 +01:00
Gustavo Zacarias
dd45fe0efb arch/mips: remove deprecated mips1/2/3/4 support
Remove the support for generating mips1/2/3/4 code since it has been
deprecated for more than a year now.
Also remove the unnecessary kludges in packages for it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-12-01 20:06:32 +01:00
Thomas Petazzoni
1b49c92c33 uclibc: do not use GENERATE_LOCALE
Since commit 33de740170 ("Makefile:
convert "target-generatelocales" to a hook"), the GENERATE_LOCALE
variable is never defined when using uClibc. This means that setting
any value to the BR2_GENERATE_LOCALE option had no effect for uClibc
toolchains.

In this commit, we make sure the uclibc.mk logic re-creates its own
qstripped version of BR2_GENERATE_LOCALE, in a variable called
UCLIBC_GENERATE_LOCALES.

This fixes locale generation with uClibc in the internal toolchain
backend.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-21 21:50:38 +01:00
Jerzy Grzegorek
e800531761 package: indentation cleanup
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-02 23:27:01 +01:00
Alexey Brodkin
f787b51af5 arc: add support of ARC HS38 core
Synopsys has recently announced its new ARC HS38 core that is capable of
running Linux -
http://www.synopsys.com/dw/ipdir.php?ds=arc-hs38-processor

ARC HS38 is based on ARCv2 ISA and requires special settings of gcc and
libc.

Also in case of HS38 atomic extensions (LLOCK/SCOND instructions) are
built-in by default, so enabling atomic extensions in Buildroot as well.

This commit adds support of the core in buildroot.

[Peter: string type, so must be in quotes as noted by Yann]
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <anton.kolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-02 22:25:27 +01:00
Alexey Brodkin
530e074f97 uclibc: add explicit setup of ARC-specific options
As with other architectures for ARC we need to have an ability to set
specific options in uClibc.

In particular this is required for selection of ARC ISA version.

[Peter: string type, so must be in quotes as noted by Yann]
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Anton Kolesov <akolesov@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-02 22:22:44 +01:00
Max Filippov
56004cf052 package/uclibc: enable long double math for xtensa
It fixes the following build failure for packages that expect long
double support in libm:

  Linking C executable winpr-hash
  ../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `powl'
  ../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `fmodl'
  ../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `ceill'
  ../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `log10l'
  ../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `floorl'

Fixes:
  http://autobuild.buildroot.net/results/323/3236ddfe8eaf89f05f84db60eb42583cca397464/

Mainline status: patch submitted.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-25 18:58:28 +02:00
Vicente Olivert Riera
c34110ec51 uclibc: Do not include __iconv_codesets into iconv utility
Backporting an upstream patch to fix a problem in the install step:

make[1]: Entering directory `/br/output/build/uclibc-0.9.31.1'
make[2]: Nothing to be done for `locale_headers'.
	CC utils/getconf
	STRIP -x -R .note -R .comment ../utils/getconf
	CC utils/iconv
../lib/libc.a(iconv.os):(.rodata+0x18): multiple definition of
`__iconv_codesets'
/tmp/ccVmV8Lq.o:(.rodata+0x18): first defined here
collect2: error: ld returned 1 exit status

Upstream commit:
	http://git.uclibc.org/uClibc/commit/?id=d46dc8bc88e38251bfa3712efe7abf62933f5419

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-25 11:24:20 +02:00
Vicente Olivert Riera
9e30c5c2b1 uclibc: rename patches to follow the new name structure
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-25 11:24:02 +02:00
Gustavo Zacarias
0c53268c5a uclibc: add hash file
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-19 17:34:09 +02:00
Gustavo Zacarias
6f0892c720 uclibc: drop stray patches
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-14 17:27:45 +02:00
Alexey Brodkin
66f4814676 uclibc: explicitly set HAVE_SHARED depending on BR2_PREFER_STATIC_LIB
Now with change of BR2_PREFER_STATIC_LIB meaning to "do not build dynamic libs
and build statically linked applications" it's possible to disable support of
shared libs in uClibc as well as builting of shared libc libs.

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

Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Cc: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-13 00:24:08 +02:00
Vicente Olivert Riera
c0b4c45780 uClibc: ldso/libdl: Also include dl-tls.h for for !SHARED.
Apply an upstream patch:

  http://git.uclibc.org/uClibc/commit/ldso/libdl/libdl.c?id=b57e9640db53166c88cdac66b79a046e46b8d728

On MIPS, several relocations that were original only resolved by the
dynamic linker were reused as static relocations.  Consequently the
macros TLS_DTPREL_VALUE and TLS_TPREL_VALUE defined in
libpthread/nptl/sysdeps/mips/dl-tls.h need to be available even for
!SHARED.

Relevant: http://www.linux-mips.org/wiki/NPTL#History

Fixes:

  http://autobuild.buildroot.net/results/85e/85e66962da9a6b80e1d1b721031b6ef0da45e3d5/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 17:53:35 +02:00
Alexey Brodkin
420ccbabee uclibc: build uclibc unstripped by default
uClibc can be built stripped (implemented as link-time option in uClibc).
This could be useful for those who build root fs manually.

In Buildroot there is a global strip stage wich strips most of shared libs
in "target" folder (wexcept kernel modules known to not work properly being
stripped and libpthread required to be non-stripped for correct debugging with
gdb of multi-threaded apps).

So there're few problems with current implementation:
 1. uClibc is being stripped 2 times (first on its build stage, second on
    global Buildroot strip stage)
 2. uClibc libs in "staging" folder are also always stripped except if
    "no strip" (BR2_STRIP_none) is explicitly is selected in Buildroot config.
    That makes it possible to remote debug uClibc libs on target only if target
    rootfs was not stripped (which might not be possible due to huge libs
    like Qt)

This patch disables embedded strip in uClibc (still users may modify uClibc
config and explicitly set "DOSTRIP=yes" if really needed).

Interesting that DOSTRIP was not only selected in uClibc config but also was
force set with Buildroot on uClibc configuration step with UCLIBC_STRIP_CONFIG.

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

Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Waldemar Brodkorb <wbx@openadk.org>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 16:14:17 +02:00
Vicente Olivert Riera
a47d19d410 uclibc: Make __SIGEV_PAD_SIZE to take __WORDSIZE into account
Applying an upstream patch to make __SIGEV_PAD_SIZE to take __WORDSIZE
into account for alpha, mips and ia64 arches.

Upstream patch URL:
   http://git.uclibc.org/uClibc/commit/libc/sysdeps/linux?id=b97b4b698b023f75b54f987859c856ab4861ea00

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 09:38:06 +02:00
Vicente Olivert Riera
af9d0442cd uclibc: add a missing function member to siginfo.h
Applying an upstream patch to add a missing function member on ia64,
mips and sparc arches.

Upstream patch URL:
   http://git.uclibc.org/uClibc/commit/libc/sysdeps/linux?id=b4e6e61e2f7c6fb4bf59f66efaa74591a2112912

Fixes:
   http://autobuild.buildroot.net/results/fa0/fa03ecc087a4b30df8b0366bb238be3d167a56d9/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 09:37:44 +02:00
Gustavo Zacarias
e0a4d9fa6f uclibc: add ptrace fixes for ppc & sparc
Add ptrace header fixes for ppc and sparc.
Patch status: upstream.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-11 10:38:10 +02:00
Thomas De Schampheleire
146f7dc495 packages: rename FOO_KCONFIG_OPT into FOO_KCONFIG_OPTS
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_KCONFIG_OPT.

Sed command used:
   find * -type f | xargs sed -i 's#_KCONFIG_OPT\>#&S#g'

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04 18:54:54 +02:00
Thomas Petazzoni
841185df93 uclibc: two-stage gcc simplifications
After switching to a two stage gcc solution, there is no longer a need
to do weird things in the uclibc build. We can greatly simplify
UCLIBC_CONFIGURE_CMDS to only do the configuration, and let the
existing UCLIBC_BUILD_CMDS do the build. Note that we have to build
the headers before starting the C library build, otherwise there is a
build failure (probably a uClibc bug).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-14 23:21:37 +02:00
Thomas Petazzoni
6063a8fbcf toolchain: switch to a two stage gcc build
Currently, the internal toolchain backend does a three stage gcc
build, with the following sequence of builds:

 - build gcc-initial
 - configure libc, install headers and start files
 - build gcc-intermediate
 - build libc
 - build gcc-final

However, it turns out that this is not necessary, and only a two stage
gcc build is needed. At some point, it was believed that a three stage
gcc build was needed for NPTL based toolchains with old gcc versions,
but even a gcc 4.4 build with a NPTL toolchain works fine.

So, this commit switches the internal toolchain backend to use a two
stage gcc build: just gcc-initial and gcc-final. It does so by:

 * Removing the custom dependency of all C libraries build step to
   host-gcc-intermediate. Now the C library packages simply have to
   depend on host-gcc-initial as a normal dependency (which they
   already do), and that's it.

 * Build and install both gcc *and* libgcc in
   host-gcc-initial. Previously, only gcc was built and installed in
   host-gcc-initial. libgcc was only done in host-gcc-intermediate,
   but now we need libgcc to build the C library.

 * Pass appropriate environment variables to get SSP (Stack Smashing
   Protection) to work properly:

    - Tell the compiler that the libc will provide the SSP support, by
      passing gcc_cv_libc_provides_ssp=yes. In Buildroot, we have
      chosen to use the SSP support from the C library instead of the
      SSP support from the compiler (this is not changed by this patch
      series, it was already the case).

    - Tell glibc to *not* build its own programs with SSP support. The
      issue is that if glibc detects that the compiler supports
      -fstack-protector, then glibc uses it to build a few things with
      SSP. However, at this point, the support is not complete (we
      only have host-gcc-initial, and the C library is not completely
      built). So, we pass libc_cv_ssp=no to tell the C library to not
      use SSP support itself. Note that this is not a big loss: only a
      few parts of the C library were built with -fstack-protector,
      not the entire library.

 * A special change is needed for ARC, because its libgcc depends on
   the C library, which breaks building libgcc in
   host-gcc-initial. This looks like a bug in the ARC compiler, as it
   does not obey the inhibit_libc variable which tells the compiler
   build process to *not* enable things that depend on the C
   library. So for now, in host-gcc-initial, we simply disable the
   build of libgmon.a for ARC. It's going to be built as part of
   host-gcc-final, so the final compiler will have gmon support.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-14 23:20:23 +02:00
Waldemar Brodkorb
5bce172187 uclibc: fix duplicate vfork problems when static linking
Reported on uClibc mailinglist by Thomas Petazzoni
Should fix:
* SuperH
 http://autobuild.buildroot.org/results/a81/a810c2f27dee1978808461c05cbdcbf51a214e09/build-end.log
* i386
 http://autobuild.buildroot.org/results/f83/f83b65bfc6ea7c7406a02e92afda43e4c5db6e7c/build-end.log
* x86-64
 http://autobuild.buildroot.org/results/64f/64f418f54885e8b5093dc8949c2d1d1ff3c938ea/build-end.log
* powerpc
 http://autobuild.buildroot.org/results/d5b/d5b7ac84dde0e4e26cd7cc46d79e66c39ed5cd53/build-end.log

Tested with i386 static build of alsa-utils.
Patch will be send to uClibc soon, need to finish test-suite run.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-14 22:26:59 +02:00
Alexey Brodkin
a484a6ca2c ARC: bump tools to 2014.08 release
Now when new shiny tools are released by Synopsys we're ready for version
update in Buildroot.

Important change in this release is switching to combined "binutils-gdb" repo
in accordance to upstream move.

Following patch now is a part of the most recent relese:
e6ab8cac62

So dropping it.
package/binutils/arc-4.8-R3/0001-arc-Honor-DESTDIR-in-custom-Makefile.patch

Since arc-2014.08 tools are still based on GCC 4.8 following patch is still
relevant so moving to the new folder to matxh ARC gcc bump.
package/gcc/arc-4.8-R3/100-libstdcxx-uclibc-c99.patch ->
package/gcc/arc-2014.08/100-libstdcxx-uclibc-c99.patch

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

Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 16:14:42 +02:00
Thomas De Schampheleire
fdc5ad1588 infra/pkg-kconfig: incorporate oldconfig call to avoid endless rebuilds
The configure step of the busybox package performs 'make oldconfig', which
causes the .config file to be updated. Thus, the .config file is more recent
than our stamp file .stamp_kconfig_fixup_done. On a subsequent build, our
dependency rules would kick in, and run the config fixup again, thus
kicking in the package's configure, build and install steps yet once
more, that, ad infinitum.

One solution is to modify kconfig-package to introduce an explicit touch of
the .kconfig_fixup_config_done stamp file, as post-configure hook.

Another solution, implemented by this patch, is to move the oldconfig call
from the package's .mk file to the kconfig-package infrastructure and make
sure it is done as part of the fixup commands. This way, the stamp file will
only be touched once, after the full fixup (including oldconfig) and no
endless rebuilds will occur.

Reported-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-06 19:57:22 +02:00
Thomas De Schampheleire
c8d8e8a536 uclibc: convert to kconfig-package infrastructure
This patch converts the uclibc package to the new kconfig-package
infrastructure, thus removing code duplication and ensuring a consistent
behavior of kconfig packages.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-04 09:54:22 +02:00
Thomas De Schampheleire
c7e862d539 uclibc: fixup config before calling menuconfig
The uclibc-menuconfig command is currently run based on the user-specified
config file, while the fixup of the config file is done afterwards.
However, it makes more sense to do an initial fixup _before_ running
menuconfig, so that the options presented to the user are consistent with
the final configuration.

This patch changes the dependency of the menuconfig target from .config to
.stamp_config_fixup_done to achieve this.

Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-04 09:49:10 +02:00
Thomas De Schampheleire
419f276c13 uclibc: use $(MAKE) iso $(MAKE1) for menuconfig target
There is no real reason to run uclibc-menuconfig in non-parallel mode,
even though one can neither expect performance benefits from a parallel
menuconfig.
Nevertheless, $(MAKE) is the default, so this patch removes the unnecessary
non-default $(MAKE1) usage for uclibc-menuconfig.

This is a simplification introduced in preparation of the kconfig-package
infrastructure.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-29 23:46:39 +02:00
Thomas De Schampheleire
8b8a60cd52 uclibc: update-config: preserve freshly configured settings
In the sequence:

make uclibc-menuconfig
make uclibc-update-config

the freshly configured settings from the menuconfig are lost during the
update-config step. This is because update-config depends on the configure
step, which starts by copying the config file to the build directory.

Instead, stop depending on the configure step from update-config, and
introduce a new stamp file .stamp_config_fixup_done, which applies any
fixups on the .config file.
An alternative solution would be to add a call to UCLIBC_FIXUP_DOT_CONFIG to
the relevant targets instead of depending on a new stamp file. The advantage
of the stamp file, though, is that we avoid redoing the fixup unnecessarily.
Moreover, in the light of the plan to extract the kconfig-specific bits into
a separate kconfig-package infrastructure, the stamp file rules are more
easily moved into such an infrastructure, while the alternative solution
requires the package .mk file to explicitly call the FIXUP rules which may
more easily be forgotten.

No longer depending on the configure step has the added bonus that
'uclibc-update-config' no longer needs the toolchain to be available, which
makes:
    make clean uclibc-menuconfig uclibc-update-config
much faster and user-friendly.

Additionally, make sure that 'make clean uclibc-update-config' works
properly, by depending on .stamp_config_fixup_done so that the config file
is present and fixed.

Fixes bug #7154 https://bugs.busybox.net/show_bug.cgi?id=7154

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-29 23:43:37 +02:00
Thomas De Schampheleire
c7b312ff41 uclibc: menuconfig: take into account initial settings from config file
When executing the sequence 'make clean uclibc-menuconfig', the configured
config file is not taken into account and one starts from the default
settings.

This patch adds an explicit target for the config file and lets the
configure and menuconfig steps depend on it, fixing the problem.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-29 23:43:04 +02:00
Thomas De Schampheleire
8f3c642413 uclibc: rename SETUP_DOT_CONFIG to FIXUP_DOT_CONFIG
In a subsequent patch, the behavior of UCLIBC_SETUP_DOT_CONFIG will change
so that it only applies fixups to the (already copied) configuration file.
This patch renames this function to UCLIBC_FIXUP_DOT_CONFIG to better match
the future behavior.

Suggested-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-29 23:42:52 +02:00