Branch: refs/heads/master Home: https://github.com/crosstool-ng/crosstool-ng Commit: 098bd01f81b6eea922cb1c4edcd8aff398616641 https://github.com/crosstool-ng/crosstool-ng/commit/098bd01f81b6eea922cb1c4edcd8aff398616641 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/libc/glibc.sh Log Message: ----------- 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 Signed-off-by: Alexey Neyman Commit: 27fed7e5f01495ce25dd605bb031954ed186f614 https://github.com/crosstool-ng/crosstool-ng/commit/27fed7e5f01495ce25dd605bb031954ed186f614 Author: Ray Donnelly Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/cc/100-gcc.sh M scripts/build/internals.sh M scripts/crosstool-NG.sh.in Log Message: ----------- 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 Signed-off-by: Alexey Neyman Commit: cc86d80da26aa27c382dee5ef44d21f450b3ae60 https://github.com/crosstool-ng/crosstool-ng/commit/cc86d80da26aa27c382dee5ef44d21f450b3ae60 Author: Ray Donnelly Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/libc/glibc.sh Log Message: ----------- 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 Commit: 82072d0cbc238000fd1547551deb198aa8c8d466 https://github.com/crosstool-ng/crosstool-ng/commit/82072d0cbc238000fd1547551deb198aa8c8d466 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M config/target.in M scripts/build/cc/100-gcc.sh M scripts/build/libc/glibc.sh M scripts/crosstool-NG.sh.in M scripts/functions Log Message: ----------- 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 .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 Commit: 43c303c946c61469181d633cd5620cb92e44c329 https://github.com/crosstool-ng/crosstool-ng/commit/43c303c946c61469181d633cd5620cb92e44c329 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/cc/100-gcc.sh M scripts/build/libc/glibc.sh M scripts/build/libc/musl.sh M scripts/build/libc/uClibc.sh M scripts/crosstool-NG.sh.in M scripts/functions Log Message: ----------- 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 Commit: d58e740be8ea07e5f4f24378f903773eae247828 https://github.com/crosstool-ng/crosstool-ng/commit/d58e740be8ea07e5f4f24378f903773eae247828 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M config/libc/glibc.in.2 M scripts/build/libc/glibc.sh Log Message: ----------- 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 Commit: f204cc8ec4b70eee4de79ac5e7df831cfe0cb751 https://github.com/crosstool-ng/crosstool-ng/commit/f204cc8ec4b70eee4de79ac5e7df831cfe0cb751 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M config/cc/gcc.in M config/debug/gdb.in.cross M config/libc/none.in Log Message: ----------- Spelling fixes. Signed-off-by: Alexey Neyman Commit: 28c24f5034768c7f01ef2987d3e72dfdf7c438db https://github.com/crosstool-ng/crosstool-ng/commit/28c24f5034768c7f01ef2987d3e72dfdf7c438db Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/libc/uClibc.sh Log Message: ----------- uClibc.sh: typo, local -> locale. Signed-off-by: Alexey Neyman Commit: 4ee22d66a849123c06812736dd1472840aad5823 https://github.com/crosstool-ng/crosstool-ng/commit/4ee22d66a849123c06812736dd1472840aad5823 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M config/libc/uClibc.in M scripts/build/libc/uClibc.sh Log Message: ----------- 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 '. Signed-off-by: Alexey Neyman Commit: 3ebc5d0c1e72e95f05a02818a3e2c642663d4b74 https://github.com/crosstool-ng/crosstool-ng/commit/3ebc5d0c1e72e95f05a02818a3e2c642663d4b74 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: A scripts/build/arch.sh M scripts/build/arch/alpha.sh M scripts/build/arch/arm.sh M scripts/build/arch/m68k.sh M scripts/build/arch/microblaze.sh M scripts/build/arch/mips.sh M scripts/build/arch/nios2.sh M scripts/build/arch/powerpc.sh M scripts/build/arch/sh.sh M scripts/build/arch/sparc.sh M scripts/build/arch/x86.sh M scripts/build/libc/avr-libc.sh M scripts/build/libc/glibc.sh M scripts/build/libc/mingw.sh M scripts/build/libc/musl.sh M scripts/build/libc/newlib.sh M scripts/build/libc/none.sh M scripts/build/libc/uClibc.sh M scripts/crosstool-NG.sh.in M scripts/functions M steps.mk Log Message: ----------- 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 Commit: 0fdc1887a7426bf7974f0ca6bb24815dff4a2997 https://github.com/crosstool-ng/crosstool-ng/commit/0fdc1887a7426bf7974f0ca6bb24815dff4a2997 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/arch.sh M scripts/build/arch/powerpc.sh M scripts/build/arch/s390.sh M scripts/build/arch/sparc.sh M scripts/build/arch/x86.sh M scripts/build/libc/glibc.sh M scripts/functions Log Message: ----------- 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 Commit: bf3eceb5d9b27fc65c819abe0b7f3cec704917e7 https://github.com/crosstool-ng/crosstool-ng/commit/bf3eceb5d9b27fc65c819abe0b7f3cec704917e7 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/arch.sh M scripts/build/arch/arm.sh M scripts/build/arch/m68k.sh M scripts/build/arch/microblaze.sh M scripts/build/arch/mips.sh M scripts/build/arch/powerpc.sh M scripts/build/arch/sh.sh M scripts/build/arch/sparc.sh M scripts/build/arch/x86.sh M scripts/build/arch/xtensa.sh M scripts/build/libc/uClibc.sh Log Message: ----------- uClibc: Split configuration tweaker into per-arch functions. Signed-off-by: Alexey Neyman Commit: f2ffdf798ddcd5b471a5055c18215ca2988ddf29 https://github.com/crosstool-ng/crosstool-ng/commit/f2ffdf798ddcd5b471a5055c18215ca2988ddf29 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/arch.sh M scripts/build/arch/arm.sh M scripts/build/arch/mips.sh M scripts/build/arch/x86.sh M scripts/build/libc/uClibc.sh Log Message: ----------- 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 Commit: 99dd2f6f60ff244f509d917dc00d080667a90f69 https://github.com/crosstool-ng/crosstool-ng/commit/99dd2f6f60ff244f509d917dc00d080667a90f69 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M config/arch/mips.in.2 Log Message: ----------- mips: allow o32 ABI as default for multilib ... since n32 and n64 are going to get built as well. Signed-off-by: Alexey Neyman Commit: 258394c19f7b3fd3700814d7b4de9336bb16e554 https://github.com/crosstool-ng/crosstool-ng/commit/258394c19f7b3fd3700814d7b4de9336bb16e554 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/libc/glibc.sh M scripts/build/libc/uClibc.sh Log Message: ----------- 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 Commit: 98e556d3868b638a658f497af0b64ce04fc5287d https://github.com/crosstool-ng/crosstool-ng/commit/98e556d3868b638a658f497af0b64ce04fc5287d Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/arch/sh.sh M scripts/build/libc/glibc.sh M scripts/build/libc/uClibc.sh M scripts/functions Log Message: ----------- Support multilib in sh/uClibc. Signed-off-by: Alexey Neyman Commit: 49d1d8f5136d20db62c4a3a6b0ef401d596d8db2 https://github.com/crosstool-ng/crosstool-ng/commit/49d1d8f5136d20db62c4a3a6b0ef401d596d8db2 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/libc/uClibc.sh Log Message: ----------- 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 Commit: d2af095eb26c7c90312ed07238c5a8254af3c2f8 https://github.com/crosstool-ng/crosstool-ng/commit/d2af095eb26c7c90312ed07238c5a8254af3c2f8 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M scripts/build/arch.sh M scripts/build/arch/x86.sh M scripts/build/libc/musl.sh M scripts/build/libc/uClibc.sh Log Message: ----------- musl: Add multilib support. Signed-off-by: Alexey Neyman Commit: 509cd85b122f64323d3e776fcf35a9abaf9cf727 https://github.com/crosstool-ng/crosstool-ng/commit/509cd85b122f64323d3e776fcf35a9abaf9cf727 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: A patches/gcc/5.3.0/910-nios2-bad-multilib-default.patch Log Message: ----------- 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 Commit: e30e3708001f5f5bd4504f3b0121b08c5af84a46 https://github.com/crosstool-ng/crosstool-ng/commit/e30e3708001f5f5bd4504f3b0121b08c5af84a46 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: A samples/mips64el-multilib-linux-uclibc/crosstool.config A samples/mips64el-multilib-linux-uclibc/reported.by A samples/mipsel-multilib-linux-gnu/crosstool.config A samples/mipsel-multilib-linux-gnu/reported.by A samples/powerpc64-multilib-linux-gnu/crosstool.config A samples/powerpc64-multilib-linux-gnu/reported.by A samples/sh4-multilib-linux-gnu/crosstool.config A samples/sh4-multilib-linux-gnu/reported.by A samples/sh4-multilib-linux-uclibc/crosstool.config A samples/sh4-multilib-linux-uclibc/reported.by A samples/sparc64-multilib-linux-gnu/crosstool.config A samples/sparc64-multilib-linux-gnu/reported.by A samples/x86_64-multilib-linux-gnu/crosstool.config A samples/x86_64-multilib-linux-gnu/reported.by A samples/x86_64-multilib-linux-musl/crosstool.config A samples/x86_64-multilib-linux-musl/reported.by A samples/x86_64-multilib-linux-uclibc/crosstool.config A samples/x86_64-multilib-linux-uclibc/reported.by Log Message: ----------- 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 Commit: 667898fc44873427734472c043c48ea3f5c492c0 https://github.com/crosstool-ng/crosstool-ng/commit/667898fc44873427734472c043c48ea3f5c492c0 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M .travis.yml R samples/mips64el-n32-linux-uclibc/crosstool.config R samples/mips64el-n32-linux-uclibc/reported.by R samples/mips64el-n64-linux-uclibc/crosstool.config R samples/mips64el-n64-linux-uclibc/reported.by Log Message: ----------- mips64el-*-linux-uclibc: Remove. Now, both -mabi=n32 and -mabi=64 are available as multilibs. Signed-off-by: Alexey Neyman Commit: 7d8f85e6af9c3567c93d1decf1d54b14abea8eb6 https://github.com/crosstool-ng/crosstool-ng/commit/7d8f85e6af9c3567c93d1decf1d54b14abea8eb6 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: A samples/arm-multilib-linux-uclibcgnueabi/crosstool.config A samples/arm-multilib-linux-uclibcgnueabi/reported.by Log Message: ----------- 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 Commit: 017ff08d6107e3b8a3c0f777d6610bc11d8b1278 https://github.com/crosstool-ng/crosstool-ng/commit/017ff08d6107e3b8a3c0f777d6610bc11d8b1278 Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M samples/samples.mk Log Message: ----------- build-all: Remove successful build trees. I am running out of space when running build-all for all samples. Signed-off-by: Alexey Neyman Commit: b7ef2697ca4ec3f5409420cb0ded852b77b84c5e https://github.com/crosstool-ng/crosstool-ng/commit/b7ef2697ca4ec3f5409420cb0ded852b77b84c5e Author: Alexey Neyman Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: R samples/arm-cortex_a15-linux-gnueabi/crosstool.config R samples/arm-cortex_a15-linux-gnueabi/reported.by A samples/arm-cortex_a15-linux-gnueabihf/crosstool.config A samples/arm-cortex_a15-linux-gnueabihf/reported.by Log Message: ----------- Rename sample to match the 'saveconfig' location. arm-cortex_a15-linux-gnueabi was actually arm-cortex_a15-linux-gnueabihf. Signed-off-by: Alexey Neyman Commit: 8a4870c2f8788c097d71194cb6d334cef1ae31ab https://github.com/crosstool-ng/crosstool-ng/commit/8a4870c2f8788c097d71194cb6d334cef1ae31ab Author: Bryan Hundven Date: 2016-08-23 (Tue, 23 Aug 2016) Changed paths: M .travis.yml M config/arch/mips.in.2 M config/cc/gcc.in M config/debug/gdb.in.cross M config/libc/glibc.in.2 M config/libc/none.in M config/libc/uClibc.in M config/target.in A patches/gcc/5.3.0/910-nios2-bad-multilib-default.patch R samples/arm-cortex_a15-linux-gnueabi/crosstool.config R samples/arm-cortex_a15-linux-gnueabi/reported.by A samples/arm-cortex_a15-linux-gnueabihf/crosstool.config A samples/arm-cortex_a15-linux-gnueabihf/reported.by A samples/arm-multilib-linux-uclibcgnueabi/crosstool.config A samples/arm-multilib-linux-uclibcgnueabi/reported.by A samples/mips64el-multilib-linux-uclibc/crosstool.config A samples/mips64el-multilib-linux-uclibc/reported.by R samples/mips64el-n32-linux-uclibc/crosstool.config R samples/mips64el-n32-linux-uclibc/reported.by R samples/mips64el-n64-linux-uclibc/crosstool.config R samples/mips64el-n64-linux-uclibc/reported.by A samples/mipsel-multilib-linux-gnu/crosstool.config A samples/mipsel-multilib-linux-gnu/reported.by A samples/powerpc64-multilib-linux-gnu/crosstool.config A samples/powerpc64-multilib-linux-gnu/reported.by M samples/samples.mk A samples/sh4-multilib-linux-gnu/crosstool.config A samples/sh4-multilib-linux-gnu/reported.by A samples/sh4-multilib-linux-uclibc/crosstool.config A samples/sh4-multilib-linux-uclibc/reported.by A samples/sparc64-multilib-linux-gnu/crosstool.config A samples/sparc64-multilib-linux-gnu/reported.by A samples/x86_64-multilib-linux-gnu/crosstool.config A samples/x86_64-multilib-linux-gnu/reported.by A samples/x86_64-multilib-linux-musl/crosstool.config A samples/x86_64-multilib-linux-musl/reported.by A samples/x86_64-multilib-linux-uclibc/crosstool.config A samples/x86_64-multilib-linux-uclibc/reported.by A scripts/build/arch.sh M scripts/build/arch/alpha.sh M scripts/build/arch/arm.sh M scripts/build/arch/m68k.sh M scripts/build/arch/microblaze.sh M scripts/build/arch/mips.sh M scripts/build/arch/nios2.sh M scripts/build/arch/powerpc.sh M scripts/build/arch/s390.sh M scripts/build/arch/sh.sh M scripts/build/arch/sparc.sh M scripts/build/arch/x86.sh M scripts/build/arch/xtensa.sh M scripts/build/cc/100-gcc.sh M scripts/build/internals.sh M scripts/build/libc/avr-libc.sh M scripts/build/libc/glibc.sh M scripts/build/libc/mingw.sh M scripts/build/libc/musl.sh M scripts/build/libc/newlib.sh M scripts/build/libc/none.sh M scripts/build/libc/uClibc.sh M scripts/crosstool-NG.sh.in M scripts/functions M steps.mk Log Message: ----------- Merge pull request #383 from stilor/multilib Multilib support Compare: https://github.com/crosstool-ng/crosstool-ng/compare/87eb166c5bd5...8a4870c2f878