Commit Graph

3631 Commits

Author SHA1 Message Date
Yogesh Sharma
a1b4ec3b17 glibc: fixed compile error
Fixed compile error with gcc 6.1 and glibc 2.23 involving missing parenthesis
with patch from glibc git repository, commit df1cf48777fe4cd81ad7fb09ecbe5b31432b7c1c.

Signed-off-by: Yogesh Sharma <YogeshASharma@gmail.com>
2016-09-07 10:16:52 -04:00
Yogesh Sharma
2bc7fc0dab sample: s390x-ibm-linux-gnu removed CT_PATCH_NONE=y
Signed-off-by: Yogesh Sharma <ysharm01@harris.com>
2016-09-07 10:16:52 -04:00
Yogesh Sharma
4d9a4f5534 samples: install "broken" file
Currently the broken file is not installed when doing an non-local install.
This causes ct-ng list-samples to not notify the user that a sample is
broken.  This commit triggers the creation of the broken file as needed.

Signed-off-by: Yogesh Sharma <ysharm01@harris.com>
2016-09-07 10:16:52 -04:00
Yogesh Sharma
270f1285bf sample: i686-w64-mingw32,nios2-spico-elf updated ISL
Signed-off-by: Yogesh Sharma <YogeshASharma@gmail.com>
2016-09-07 10:16:52 -04:00
Yogesh Sharma
0ec2166f26 gcc: Migrated patches from 5.3.0 to 6.1.0
Signed-off-by: Yogesh Sharma <ysharm01@harris.com>
2016-09-07 10:15:56 -04:00
Yogesh Sharma
2f7adae8a7 duma: Fixed gcc 6.1.0 compile error
Fixed compile error for DUMA 2.5.15 due to different function prototypes
for new operator in c++03 vs c++11

Signed-off-by: Yogesh Sharma <ysharm01@harris.com>
2016-09-07 10:15:56 -04:00
Yogesh Sharma
a4a6f2305e gcc: Added 6.1.0 to version list
added gcc-6.1.0 to version list in kconfig

Signed-off-by: Yogesh Sharma <YogeshASharma@gmail.com>
2016-09-07 10:15:56 -04:00
Bryan Hundven
1e4040e011 Merge pull request #406 from vaibhav92/powerpc64le-sample
samples: Add powerpc64 little-endian toolchain sample
2016-08-30 17:18:54 -07:00
Bryan Hundven
f881f818a7 Merge pull request #409 from KirillSmirnov/master
samples: Add sparc-leon-linux-uclibc sample
2016-08-30 17:17:56 -07:00
Bryan Hundven
3a7b513f2e Merge pull request #425 from kozyilmaz/gcc-5.4.0
gcc: Update gcc 5 to 5.4.0
2016-08-30 17:16:11 -07:00
Bryan Hundven
62331c9023 Merge pull request #435 from KirillSmirnov/uclibc
uClibc: improve managing shared libs
2016-08-30 17:12:09 -07:00
Bryan Hundven
a833c5596d Merge pull request #429 from pedronavf/patch-1
Update x86.sh
2016-08-30 17:09:50 -07:00
Kirill K. Smirnov
41cd6542a7 uClibc: propagate SHARED_LIBS option.
This patch synchronizes crosstool CT_SHARED_LIBS and uclibc
HAVE_SHARED options.

Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-08-30 01:54:08 +03:00
Kirill K. Smirnov
7120d81f48 uClibc: install native utils
This change adds native ldd and ldconfig utils to sysroot.
For glibc just 'make install' installs everything including utils.
For uclibc there exists a separate goal 'install_utils'. Make it.

Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-08-30 01:54:08 +03:00
kozyilmaz
a73b160d49 Merge branch 'master' into gcc-5.4.0 2016-08-29 21:28:59 +03:00
Bryan Hundven
2b887e417a Merge pull request #431 from bhundven/fix_cross_build_tools
cross: Only make 'build tools' for the 'build'
2016-08-26 10:47:23 -07:00
Bryan Hundven
1696e2bbd5 Merge pull request #432 from bhundven/update_config_guess_sub
Update config.guess and config.sub
2016-08-26 08:54:46 -07:00
Bryan Hundven
effd8be643 Update config.guess and config.sub
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-26 08:54:13 -07:00
Bryan Hundven
a7b8cb3f58 cross: Only make 'build tools' for the 'build'
For a cross-compiler, we only need to make the 'build tools' for the
'build'. We also build the 'build tools' for the 'host' when building a
cross-canadian toolchain.

Closes #430

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-26 08:48:32 -07:00
Pedro Navarro
31c8645b37 Update x86.sh
Added additional x86 architectures, like core2, that also map to i686
2016-08-25 18:00:56 -07:00
kozyilmaz
deaa4b8ded xgcc: Update gcc 5 to 5.4.0
patches synced with buildroot trunk and:
110-xtensa-implement-trap-pattern.patch (copied to 5.4.0 patches)
130-build_gcc-5_with_gcc-6.patch (upstreamed in 5.4.0, dropped)
370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch (copied to 5.4.0 patches)
380-gcc-plugin-POSIX-include-sys-select-h.patch (copied to 5.4.0 patches)
910-nios2-bad-multilib-default.patch (copied to 5.4.0 patches)
2016-08-24 11:33:24 +03:00
Bryan Hundven
11cb2ddd43 Merge pull request #410 from jmlemetayer/fix_populate
populate: Fix undefined awk
2016-08-23 14:26:16 -07:00
Bryan Hundven
b18469054d Merge pull request #422 from datacom-teracom/master
scripts/functions: fix log level in call to CT_DoLog
2016-08-23 14:25:48 -07:00
Bryan Hundven
19fdf86ab6 Merge pull request #402 from lundmar/fix_elf2flt_repo
Update elf2flt git repository location
2016-08-23 14:25:22 -07:00
Bryan Hundven
8a4870c2f8 Merge pull request #383 from stilor/multilib
Multilib support
2016-08-23 14:14:35 -07:00
Alexey Neyman
b7ef2697ca Rename sample to match the 'saveconfig' location.
arm-cortex_a15-linux-gnueabi was actually
arm-cortex_a15-linux-gnueabihf.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
017ff08d61 build-all: Remove successful build trees.
I am running out of space when running build-all for all samples.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
7d8f85e6af arm-multilib-linux-uclibcgnueabi: Add.
No threads (uclibc/libpthread does not compile on ARMv8); no C++ (libitm
depends on pthreads), no GDB/DUMA (depend on threads).

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
667898fc44 mips64el-*-linux-uclibc: Remove.
Now, both -mabi=n32 and -mabi=64 are available as multilibs.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
e30e370800 Create multilib configurations based on certain *-linux-* samples.
Based on the following samples:
- x86_64-unknown-linux-gnu (-m64/-m32/-mx32)
- powerpc64-unknown-linux-gnu (-m64/-m32)
- mipsel-unknown-linux-gnu (-mabi={32,n32,64})
- sh4-unknown-linux-gnu (-m4/-m4a)
- x86_64-unknown-linux-uclibc (-m64/-m32)
- mips64el-unknown-linux-uclibc (-mabi={32,n32,64})

New samples:
- sparc64-multilib-linux-gnu (-m64/-m32)
- sh4-multilib-linux-uclibc (-m4/-m4a/-m3)
- x86_64-multilib-linux-musl (-m64/-m32)

Notably missing is arm-unknown-linux-gnu (aprofile): GLIBC does not
compile in one of the variants in its multilib set (-march=armv4t
-mthumb) due to missing atomic ops implementation.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
509cd85b12 nios2: bad option reported in multilib_defaults
multilib_defaults refers to -EL/-EB, but this target uses -mel/-meb and
does not recognize -EL/-EB.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
d2af095eb2 musl: Add multilib support.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
49d1d8f513 uClibc: move ldso check to post_cc.
It turns out that core GCC on binfmt architectures (m68k, for example)
cannot produce the final executable (looks for ld.real in the wrong
place). Need to wait for the final gcc to become available.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
98e556d386 Support multilib in sh/uClibc.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
258394c19f Treat multiroots differently.
'ld' does not search for dependency libraries in multi_os_directory, so
if there's both multi_os_directory and multi_root, and there is only one
configuration in each multi_root, forgo the multi_os_directory suffix.

Needed for sh4-multilib-linux-uclibc.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
99dd2f6f60 mips: allow o32 ABI as default for multilib
... since n32 and n64 are going to get built as well.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
f2ffdf798d First stab at multilib/uClibc.
Create a separate 'libc_backend_once', install headers into a
subdirectory (different sets of headers are installed for 32- and 64-bit
architectures), and create a symlink for the dynamic linker location
expected by GCC.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
bf3eceb5d9 uClibc: Split configuration tweaker into per-arch functions.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
0fdc1887a7 Change multilib functions to set the variable.
Rather than echo-ing the new value, set the value into the variable with
the name passed as an argument (similar to CT_SanitizeVarDir). This
allows to use CT_DoLog in these functions.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
3ebc5d0c1e libc/*.sh: Deprecate libc_check_config step.
This step was only used in uClibc. However, with upcoming multilib, the
config management will have to be done for each variant differently,
anyway.

uClibc was the only user of libc_check_config step, as well as
CT_CONFIG_DIR directory. Retire these.

Two other clean-ups in uClibc.sh:
- KERNEL_HEADERS check seems to be bogus, this config option is not
  present even in 0.9.30 - which is not supported already.
- SHARED_LIB_LOADER_PREFIX was renamed to MULTILIB_DIR in 0.9.31,
  according to ChangeLog - and MULTILIB_DIR is passed from command line
  instead.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
4ee22d66a8 uclibc: merge startfiles/final into single backend.
In preparation for multilib support, use the same "backend" model that
is already employed by glibc and musl.

Also, the verbosity setting descriptions were swapped. V=2 is actually
less verbose than V=1: V=1 prints full commands, while V=2 prints 'CC
<file> <defines>'.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
28c24f5034 uClibc.sh: typo, local -> locale.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
f204cc8ec4 Spelling fixes.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
d58e740be8 glibc.sh: cleanups
- Dump CT_LIBC_EXTRA_CC_ARGS: instead, treat CT_LIBC_EXTRA_CFLAGS as
  arguments to CC (or they are not applied to .S, for example).
  Combine them with multi_flags and CT_TARGET_CFLAGS in proper order.
- Analyze thus combined flags to determine --with-fp/--without-fp.
  Don't need to check CT_ARCH_FLOAT - it is reflected in
  CT_TARGET_CFLAGS anyway. Check more soft/hard float options defined
  on different architectures.
- Drop checking for endianness flags: they are not reflected in
  configure arguments in any way, and they're already present in CFLAGS
  (either via multi_flags or via CT_TARGET_CFLAGS). Besides,
  CT_ARCH_ENDIAN_OPT was actually called CT_ARCH_ENDIAN_CFLAG, so this
  was a no-op anyway.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
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
Alexey Neyman
82072d0cbc multilib: Determine which options may pass through.
On some arches (e.g. MIPS) the options like -mabi do not work if
specified more than once (see the comment in 100-gcc.sh). Therefore,
we need to determine which of the options produced by <arch>.sh can
be passed to multilib builds and which must be removed (i.e., which
options vary among the multilibs).

This presents a chicken-and-egg problem. GCC developers, in their
infinite wisdom, do not allow arbitrary multilib specification to be
supplied to GCC's configure. Instead, the target (and sometimes some
extra options) determine the set of multilibs - which may include
different CPUs, different ABIs, different endianness, different FPUs,
different floating-point ABIs, ... That is, we don't know which parts
vary until we build GCC and ask it.

So, the solution implemented here is:
- For multilib builds, start with empty CT_ARCH_TARGET_CFLAGS/LDFLAGS.
- For multilib builds, require core pass 1. Pass 1 does not build any
  target binaries, so at that point, our target options have not been
  used yet.
- Provide an API to modify the environment variables for the steps that
  follow the current one.
- As a part of multilib-related housekeeping, determine the variable
  part of multilibs and filter out these options; pass the rest into
  CT_TARGET_CFLAGS/LDFLAGS.

This still does not handle extra dependencies between GCC options (like
-ma implying -mcpu=X -mtune=Y, etc.) but I feel that would complicate
matters too much. Let's leave this until there's a compelling case for
it.

Also, query GCC's sysroot suffix for targets that use it (SuperH,
for example) - the default multilib may not work if the command line
specifies the default option explicitly (%sysroot_suffix_spec is not
aware of multilib defaults).

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Ray Donnelly
cc86d80da2 glibc: Build manuals and locales last
Rather then building the manuals and locales for each multilib target, only
build the manuals on the last multilib target.

If you are not building a multilib toolchain, then the first libc build will
be the last.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-23 11:00:27 -07:00
Ray Donnelly
27fed7e5f0 crosstool-NG.sh.in: Don't make lots of symlinks to lib folder
For 4 different folders:

${CT_PREFIX_DIR}
${CT_SYSROOT_DIR}
${CT_SYSROOT_DIR}/usr
${CT_PREFIX_DIR}/${CT_TARGET}

.. symlinks from 'lib32' and 'lib64' to 'lib' were created.
This was untidy and incorrect for multilib (the bitness of
the libraries in 'lib32' and 'lib64' will not be the same)
We can not know which folders this toolchain configuration
will require at this time so let them be created on-demand
instead.

Changed by Alexey Neyman: original change removed too much; we
still need to create the default directories because the os
directories are based off them (e.g. `lib/../lib64').

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Alexey Neyman
098bd01f81 glibc.sh: Use --print-multi-os-directory
GCC makes the distinction between:
multilib (-print-multi-lib) and
multilib-os (--print-multi-os-directory)
as the GCC library and GCC sysroot library paths, respecitively.

Use this to build libc into the correct locations, the same
applies to the dummy libc.so

Changed by Alexey Neyman: restore missing CT_EndStep.

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Carlos Santos
29df8cccf4 scripts/functions: fix log level in call to CT_DoLog
It must be "DEBUG", not "Debug"

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
2016-08-16 23:56:23 -03:00