Branch: refs/heads/master Home: https://github.com/crosstool-ng/crosstool-ng Commit: 08d91d41f3c0bceed264a24920b4daa98fa18b9a https://github.com/crosstool-ng/crosstool-ng/commit/08d91d41f3c0bceed264a24920b4daa98fa18b9a Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M config/libc/musl.in Log Message: ----------- musl: config is broken for !EXPERIMENTAL If EXPERIMENTAL is not set, the only choice for version is the set of released versions - currently, 1.1.14. But this only option is disabled because it is also marked EXPERIMENTAL; this leaves no available choices in the configuration. Marking MUSL as experimental: it seems to have header issues which prevent, for example, gdbserver from building. musl copied chunks of ptrace.h code from the kernel into its own headers, which now clash with Linux kernel headers. Manifests at least on SH4 target. Also, musl breaks in powerpc builds: GCC balks at it with "unsupported DEFAULT_LIBC" message. Also, 64-bit powerpc and mips are not supported. So, until someone figures out the dependencies for musl in config/, mark it experimental. Signed-off-by: Alexey Neyman Commit: a60946eb24430a8b43b8fe6027d32ab17be28111 https://github.com/crosstool-ng/crosstool-ng/commit/a60946eb24430a8b43b8fe6027d32ab17be28111 Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M scripts/build/arch/sparc.sh Log Message: ----------- arch/sparc: better default CPU when targetting Linux By default, sparc64-*-linux is configured with -mcpu=v9. However, according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html: "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs." v9 is such a "non-UltraSPARC-I+ ISA CPU", so it makes no sense to default to v9 when targetting Linux. Change the default to ultrasparc, even though it can suboptimally schedule instructions for newer SPARC CPUs. See the pending patch: https://patchwork.ozlabs.org/patch/409424/ Signed-off-by: Alexey Neyman Commit: a49e13fb4edeefba406d98754fb0ca04b707ff4c https://github.com/crosstool-ng/crosstool-ng/commit/a49e13fb4edeefba406d98754fb0ca04b707ff4c Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M config/arch/sh.in Log Message: ----------- sh: require multilib Now that libc backend installs the libraries into the directory reported by gcc as 'multi-os-directory', sh4 libraries are installed into a '!m4' subdirectory. This directory then confuses GNU ld, which assumes the exclamation mark to be a word separator and attempts to link to '/usr/lib' (a directory). However, if multilib is enabled, the default libraries are installed into the [expected] '/usr/lib/./'. This looks like an artifact of SuperH's unique way of specifying the multilibs to be built in GCC (which may list exclusions, starting with '!'). Signed-off-by: Alexey Neyman Commit: 55879ed1d83ebb72f2ab6cbbd892448c731a7163 https://github.com/crosstool-ng/crosstool-ng/commit/55879ed1d83ebb72f2ab6cbbd892448c731a7163 Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M scripts/build/libc/glibc.sh Log Message: ----------- glibc: do not add bogus options If a multilib configuration contains an endianness option, the ${endian_extra} is set to, for example, 'mb' (note, no dash!). It is then added to CFLAGS, resulting in bogus flags like 'mb -mb'. But it is not even needed, as ${extra_flags} already contains the very same option! Found by experimenting with multilibs with different endianness on SH, which still didn't work, but that's another story... Signed-off-by: Alexey Neyman Commit: a65d8841ec0ceff75a3d5c3795cfb7435a194670 https://github.com/crosstool-ng/crosstool-ng/commit/a65d8841ec0ceff75a3d5c3795cfb7435a194670 Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M scripts/build/cc/100-gcc.sh Log Message: ----------- Enable multiarch support in pass-1 GCC. By default, it is 'auto' - which means, it is enabled if there are multilibs directories detected in the installation location for libgcc. Thus, it is not detected for pass-1 GCC: the installation location is empty at this point. Signed-off-by: Alexey Neyman Commit: aa30d0bc4fdf6480a5a24c69e5537f8c41011470 https://github.com/crosstool-ng/crosstool-ng/commit/aa30d0bc4fdf6480a5a24c69e5537f8c41011470 Author: Ray Donnelly Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M config/cc/gcc.in.2 M scripts/build/cc/100-gcc.sh Log Message: ----------- gcc: Add --with-multilib-list option Written by Bryan Hundven. Modified by Alexey Neyman to actually add the option to gcc.in. Signed-off-by: Bryan Hundven Signed-off-by: Ray Donnelly Signed-off-by: Alexey Neyman Commit: 34ecc718d9d2ea7d391056733d004c68fe7e4bf3 https://github.com/crosstool-ng/crosstool-ng/commit/34ecc718d9d2ea7d391056733d004c68fe7e4bf3 Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: 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/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 Log Message: ----------- arch/all: Add common function to return multilib target This code was abstracted out of Cody P Schafer's multilib patch. It doesn't seem right having architecture dependent code in a specific libc implementation script. So this patch breaks it out into scripts/build/arch/.sh in a function: multilib_target_to_build="$(CT_DoArchMultilibTarget 'multi_flags' 'target-in')" Note that this function gets called on each multilib variant with different sets of compiler flags supplied in 'multi_flags'. The caller will first filter the flags so that there is no conflicting flags (e.g., no '-m32 -m64') supplied. Changed by Alexey Neyman: - make option analysis check specific option rather than match global options string as a whole. Moreover, old code did not handle multiple options in the same multilib, e.g. '-m64 -mlittle'. - fixed substitutions in powerpc.sh (*le variants did not match the pattern in the shell parameter expansion) - make s390.sh actually apply the flags it gathered from the options. - straighten the spaghetti in x86.sh by setting two flags, arch & abi. Also, do not depend on "gnu" being the last part - we can have '*-uclibcx32', for example. Signed-off-by: Bryan Hundven Signed-off-by: Ray Donnelly Signed-off-by: Alexey Neyman Commit: 67b314a05156f9af221b807d543030ef9f0dc842 https://github.com/crosstool-ng/crosstool-ng/commit/67b314a05156f9af221b807d543030ef9f0dc842 Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M scripts/build/arch/x86.sh Log Message: ----------- arch/x86: add a sanity check i[34567]86-*-gnux32 is not a valid tuple. Signed-off-by: Bryan Hundven Signed-off-by: Ray Donnelly Signed-off-by: Alexey Neyman Commit: c7da54edf4c2e3a3eb97eb5fb967143e5071a670 https://github.com/crosstool-ng/crosstool-ng/commit/c7da54edf4c2e3a3eb97eb5fb967143e5071a670 Author: Ray Donnelly Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M scripts/build/libc/glibc.sh M scripts/functions Log Message: ----------- glibc: Use common arch call to get multilib targets The previous patch added the function 'CT_DoMultilibTarget()' to scripts/build/arch/*.sh. This patch calls the common function to (currently) get just the target tuple for the current multilib target. This patch was originally by: Cody P Schafer Changed by Alexey Neyman: first, try `gcc -print-multiarch`. If it is supported, use whatever it reports. Otherwise, fall back to our guesswork. Move "i486" quirk into glibc.sh, as it is specific to glibc (e.g. uclibc will need i386, which is what GCC reports). Signed-off-by: Bryan Hundven Signed-off-by: Ray Donnelly Signed-off-by: Alexey Neyman Commit: dc8f2d1c04258069101e913d22c898298b98384c https://github.com/crosstool-ng/crosstool-ng/commit/dc8f2d1c04258069101e913d22c898298b98384c Author: Alexey Neyman Date: 2016-06-09 (Thu, 09 Jun 2016) Changed paths: M scripts/build/libc/glibc.sh Log Message: ----------- glibc.sh: build dummy libc.so with correct extra flags Signed-off-by: Alexey Neyman Commit: 6e7c61650a39a67ee02ed58c11d64c94c436bb33 https://github.com/crosstool-ng/crosstool-ng/commit/6e7c61650a39a67ee02ed58c11d64c94c436bb33 Author: Bryan Hundven Date: 2016-06-17 (Fri, 17 Jun 2016) Changed paths: M config/arch/sh.in M config/cc/gcc.in.2 M config/libc/musl.in 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/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/cc/100-gcc.sh M scripts/build/libc/glibc.sh M scripts/functions Log Message: ----------- Merge pull request #403 from stilor/multilib-1 First chunk of multilib changes for merging Compare: https://github.com/crosstool-ng/crosstool-ng/compare/7300eb17b43a...6e7c61650a39