Commit Graph

63 Commits

Author SHA1 Message Date
Alexey Neyman
43c303c946 libc/*.sh: handle combinations of multilib root/dir.
Install startfiles for libc variants into the most specific combination
(suffixed sysroot, if applicable + suffixed multi-os dir, if
applicable). Install headers once in every suffixed sysroot (although it
seems that GCC picks up headers from top-level sysroot, GCC manual
claims that sysroot suffix affects headers search path).

In uClibc, this requires a better sanitization of the directory: it
creates symlinks from {sysroot}/usr/lib/{multi_os_dir} to
{sysroot}/lib/{multi_os_dir} and to do so, it counts the number of path
components in the libdir. This breaks if one of such components is `..'
- symlinks contain an extra `../..' then. Since such sanitization had to
be implemented anyway, use it in other places to print more sensible
directory names.

Also, fix the description of configure --host/--target per musl's
configure help message (and its actual code).

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Bryan Hundven
4e2227e8a5 scripts: Update usage of CT_GetCustom
This commit updates the build scripts to match the new usage of
CT_GetCustom from the previous change.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-12-08 10:55:13 -08:00
Bryan Hundven
8478376a86 uClibc: Add kconfig option to enable IPv6 support
This commit adds a kconfig option to enable IPv6 support.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-22 22:18:08 -08:00
Bryan Hundven
d5eb7360d5 uClibc: remove references to sh64*
As per the change notes of GCC-6:

https://gcc.gnu.org/gcc-6/changes.html

and conversations I've had with the buildroot folks, there is no need
to support sh5/sh64.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-21 01:26:42 -08:00
Bryan Hundven
6f8e89cb5c consistency: Use exported variables of required tools
We check for apps:

* make
* sed
* grep
* awk
* libtool/libtoolize
* install
* patch
* and more

...during configure. Our scripts should be consistent about using the
variables that define where the found tool was found.

Of course, we do hard-link these tools in buildtools, but that should be
a backup for the components we are building. Our scripts should always
use the tools we find.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-17 02:48:09 -08:00
Bryan Hundven
a173dfa939 uClibc: Fall back to default configs if not provided
I've added the .config files to contrib/uClibc-defconfigs from buildroot
to use as default configs if they are not provided in the sample.

If a particular architecture really needs an option set, it should be
either updated in the manange_uClibc_config function in
scripts/build/libc/uClibc.sh or a custom ${uclibc_name}.config should be
added to the sample (usually via `ct-ng saveconfig`).

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:41 -08:00
Bryan Hundven
21a448516e uClibc: Add support for uClibc-ng
This commit adds uClibc-ng 1.0.8.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:41 -08:00
Bryan Hundven
1c924f06fa uClibc: rewrite mungeuClibcConfig to manage_uClibc_config
This commit updates uClibc to use the new CT_Kconfig options from the
previous commit. The older sed method of sanity checking the uClibc
.config was error prone and clumsy.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:41 -08:00
Bryan Hundven
930fa77076 uClibc: Reduce supported versions
This commit reduces the number of supported versions to:

* 0.9.33.2
* custom location

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-11 08:27:33 -08:00
Bryan Hundven
e9e29e7a46 blackfin: Remove blackfin support
This commit removes blackfin support.

I'm open to re-adding blackfin after crosstool-1.23.0 is released, but
it is currently too difficult to port forward to newer versions of gcc
and uclibc.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-09 22:30:45 -08:00
Bryan Hundven
3b854d4939 uClibc: Don't use CROSS, use CROSS_COMPILE instead
As per:
http://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/Makefile.help?id=044843f002f666db3bc06c513ed6291a00ad1225

CROSS= is for compatibility, but we plan on dropping older uClibc
versions, and adding uClibc-ng and uClibc-snapshot support.

Use CROSS_COMPILE instead.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-02 17:01:20 -08:00
Erico Nunes
b8e64a0c08 avr-libc: add support for avr-libc C library
This commit adds support for the avr-libc C library.
According to the project page at http://www.nongnu.org/avr-libc , the
avr-libc package provides a subset of the standard C library for Atmel
AVR 8-bit RISC microcontrollers. In addition, the library provides the
basic startup code needed by most applications.

Support for this library in crosstool-ng is only enabled for the AVR
8-bit target.

The avr-libc manual and most distributions build the AVR 8-bit gcc
toolchain with the "avr" (non-canonical) target.
Some experimentation also led to the conclusion that other (canonical)
targets are not very well supported, so we force the "avr" target for
crosstool-ng as well.

The manual also recommends building avr-libc after the final gcc build.
To accomplish this with crosstool-ng, a new do_libc_post_cc step is
added, in which currently only avr-libc performs its build, and is a
no-op for the other libc options.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2015-06-21 20:53:06 -03:00
Yann E. MORIN"
ec93451443 libc/uClibc: add option to enable fenv
Support for fenv.h is a little bit more tricky that enabling it only
for x86-32 is not right.

Add an option for the user to choose whther to install fenv.h or not.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04 16:19:18 +01:00
Yann E. MORIN"
c1ed43e527 libc-uclibc: enable fenv for x86 32-bit
Without it, gcc-4.8 fails to build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04 01:10:13 +01:00
Yann E. MORIN"
ffe80db73c libc: get rid of libc_finish
At long last, we no longer have any libc that requries a libc_finish.
Yeah!

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-10 21:01:59 +01:00
Yann E. MORIN"
baba086806 libc/uClibc: remove use of snapshots and specific date
We now have the ability to use a custom location, so supporting
snapshots or custom date is no longer needed. Let the user do the
required preparation in this case.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-31 23:31:32 +01:00
David Holsgrove
5ed8715c9d libc/uClibc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom
CUSTOM_LOCATION config options only presented in menuconfig if component
CUSTOM version selected.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
[yann.morin.1998@free.fr: fix indentation, don't patch custom dir location]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <712995e3e719fbbe24af.1349931201@localhost.localdomain>
PatchWork-Id: 190794
2012-10-11 14:39:44 +10:00
Johannes Stezenbach
2aee11ccf2 libc/uClibc: add additional debug level between "minimal" and "all"
During application development it is desirable to enable malloc
debugging and LD_DEBUG support, but the extensive debug spew from
SUPPORT_LD_DEBUG_EARLY is only useful when working on
uClibc's ld.so.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
2012-02-24 16:08:32 +01:00
Yann E. MORIN"
1185c9bf05 libc/uClibc: use endian string in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-20 21:08:27 +01:00
Yann E. MORIN"
bc94e564de libc/uClibc: use the floating-point string option in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-14 18:54:37 +01:00
Yann E. MORIN"
b021021fec libc/uClibc: force use of ctor/dtor
Although ctor/dtor do not seem strictly required, missing them proves
rather inconvenient, as ld can't link binaries.

Reported-by: John Spencer <maillist-uclibc@barfooze.de> (sh4rm4 on IRC)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-13 00:05:51 +02:00
Yann E. MORIN"
03b1bc0302 libc/uclibc: fix src dir location
Now that we akways extract the tarballs in a sane location (see changeset
#6e1412ba8da9: scripts/functions: force extract folder to archive basename),
the uClibc snapshot dir now has the date (as version) in it, eg.:
  uClibc-20100710

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-31 22:07:08 +02:00
Yann E. MORIN"
3e05fb91f5 libc/uClibc: use MMU settings
Enforce the MMU settings from the crosstool-NG configuration.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-24 18:57:01 +02:00
Yann E. MORIN"
15a1cc2491 libc: remove now unneeded do_libc_headers
do_libc_headers is now a noop, and is no longer used, so remove that step.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:36:20 +01:00
Yann E. MORIN"
49ab32ffe2 scripts: PARALLELMFLAGS is evil, rename
The reunification of the glibc/eglibc code paths exposed a nasty
bug in the glibc build: use of PARALLELMFLAGS breaks the build.

See the explanations in that bug report against FC6:
    https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=212111

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:35:43 +01:00
Yann E. MORIN"
7b003fde97 libc/uClibc: move content of do_libc_headers into do_libc_start_files
It is unnecessary to split C library preparation into two steps, as only
one really makes sense. So, do_libc_headers is bound to be withdrawn
short-term, in favor of do_libc_start_files.

uClibc already had all its start files installation in do_libc_headers, and
do_libc_start_files was empty, just migrate the content of the former into
the latter.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:32:25 +01:00
Bryan Hundven
6bd24a2c73 libc/uClibc: normalize uclibc hidden version names
Hidden version names for uClibc conflicted:

LIBC_UCLIBC_V_0_9_30_2
LIBC_V_0_9_30_1

name them constantly as:
LIBC_UCLIBC_V_<version>

Also update the build script where we use snapshots by version or snapshots by date.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2011-01-03 01:15:30 +01:00
Anthony Foiani
92898249bd scripts: add "FILE" and "CFG" debug levels.
I ran into some minor difficulties looking through the build log for a
particular file: I wasn't interested in seeing it unpacked, but only
when it is built or installed.  Adding these two levels allows me to
differentiate between those cases.

[Yann E. MORIN: Those are blind log levels, and are used only to search
 in the build-log afterward.]

Signed-off-by: Anthony Foiani <anthony.foiani@gmail.com>
2010-10-22 22:02:57 +02:00
Yann E. MORIN"
6f5d910d1f libc/uClibc: use the MIPS ABI selection
Use the MIPS ABI selection to properly munge the uClibc config file.

This has the side effect to force the ISA:
- n32 ABI -> MIPS-III ISA
- n64 ABI -> MIPS64 ISA

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-12 22:15:12 +02:00
Yann E. MORIN"
3fcdd28e04 libc/uClibc: change munging code based on target arch
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-10 13:23:58 +02:00
Yann E. MORIN"
2e7698ed02 libc/uClibc: fix downloading pregen locales
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-11 20:05:05 +02:00
Yann E. MORIN"
b2d9366b56 libc/uClibc: fix space damage 2010-07-28 01:39:52 +02:00
Yann E. MORIN"
bb6a9e3e64 libc/uClibc: fix using pre-generated locale data
Some time, someone updated the locale Makefile to use
newer pre-generated locales data, but did not upload
those.

So we just force using the existing, ageing archive,
dating back 20030818. Sigh...
2010-07-28 01:38:15 +02:00
Yann E. MORIN"
d0ed3f0fe0 libc/uClibc: do not systematically use pre-generated locale data
It seems that using pre-generated locale data can be more problematic
than usefull in some circumstances.

Offer a config knob to enable/disable use of the pregen locale data.
Also, do not extract pregen locales data ourselves, it's broken.
2010-07-28 01:03:07 +02:00
Yann E. MORIN"
d7287c9b5f libc/uClibc: do not install cross-ldd
I was unable to make the cross-ldd from uClibc to work, and
it is not possible to build it on non-POSIX system.

Besides, we have a generic script that is in the starting-blocks
to replace it, that will work for any C library, and also will
work on non-POSIX systems. Bonus!
2010-07-22 20:06:27 +02:00
Yann E. MORIN"
42a7dc1946 libc/uClibc: enable NPTL for snapshots
Recently, NPTL has matured a lot in uClibc, and more and more
people are interested to at least give it a try. So enable it.
2010-07-03 01:15:28 +02:00
Yann E. MORIN"
974f60e98a libc/uClibc: fix snapshots
Snapshots are in a subdir named uClibc, not uClibc-snapshot
(or uClibc-YYYYMMDD either).
2010-07-03 00:17:54 +02:00
Yann E. MORIN"
3fafacd093 libc/uClibc: fix munging .config for LT old/new 2010-07-02 22:11:45 +02:00
Yann E. MORIN"
13b5487575 libc/uClibc: apply the threading model to the configuration
The threading model shall be be set in the .config file.
Also, offer the choice between 'old/stable' and 'new' linuxthreads.
2010-06-09 00:41:25 +02:00
Thomas Petazzoni
24e4d092a5 Add basic support for the Blackfin architecture
For uClibc, the name of the Blackfin architecture is 'bfin'. Actually,
the naming of the architecture is quite messy: for toolchain tuples
and uClibc, it's bfin, but for the kernel, it's blackfin. We've
arbitraly choosen to name it "blackfin" in Crosstool-NG.

Add Blackfin-related uClibc patch to fix a build failure related to
fork() being used in unistd/daemon.c.

Yann E. MORIN:
Apply the patch to the kernel/linux build script to use 'linux'
in the noMMU tuples. See:
  http://sourceware.org/ml/crossgcc/2010-04/msg00010.html
2010-04-07 09:18:20 +02:00
Yann E. MORIN"
bf86627982 scripts/functions: make CT_Patch dumber
It is the responsibility of the caller to split the package name from
its version. It already knows that.
2010-04-11 23:18:10 +02:00
Yann E. MORIN"
e3a4063ac6 scripts/functions: change handling of nochdir
- 'nochdir' must be the first option
- have systematic pushd/popd, even if nochdir
2010-01-12 19:24:03 +01:00
Yann E. MORIN"
542419d6a0 libc/uClibc: fix the breakage for x86 and Super-H, after the 32/64 merge 2010-01-23 22:06:11 +01:00
Yann E. MORIN"
849713aa43 libc/uclibc: use CT_ARCH, in place of CT_KERNEL_ARCH
Since we merged the 32/64-bit archs, and we explicitly used
the Linux kernel arch name, we can get rid of CT_KERNEL_ARCH.
2010-01-23 18:41:59 +01:00
Yann E. MORIN"
8908eb3037 misc: do not use "tar cf - |tar xf -"
Using this: tar cf - -C "/some/place" |tar xf - -C "/some/other/place"
to copy a directory to another place does not properly fail (when it does).

Using this instead: cp -av "/some/place" "/some/other/place"
makes it easy to see why and how it failed.

Impacted:
    libc/uClibc
    debug/ltrace
    tools/sstrip
    scripts/populate
2010-01-02 18:00:54 +01:00
Yann E. MORIN"
5ae9b7faf9 libc/uClibc: do not mangle ARM {E,O}ABI when ARCH != ARM 2010-01-01 16:52:55 +01:00
Yann E. MORIN"
d744220447 libc/uClibc: beautify the munge function 2010-01-01 18:47:20 +01:00
Simon Pasch
a4980248f3 libc/uClibc: add wchar support 2009-11-06 20:17:30 +01:00
Yann E. MORIN"
45ccabcbfb Fix building uClibc:
- fix headers installation

 -------- diffstat follows --------
 /trunk/scripts/build/libc/uClibc.sh |    2     1     1     0 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2009-05-11 20:19:50 +00:00
Yann E. MORIN"
7032dea8ba Fix installing uClibc headers for versions prior to 0.9.30.
Fix a comment about installing uClibc.
Automatically enable // build for uClibc versions that can be built in //.

 -------- diffstat follows --------
 /trunk/scripts/build/libc/uClibc.sh |   32    23     9     0 +++++++++++++++++++++++---------
 /trunk/config/libc/uClibc.in        |   12     7     5     0 +++++++-----
 2 files changed, 30 insertions(+), 14 deletions(-)
2009-05-07 18:56:31 +00:00