[crosstool-ng/crosstool-ng] 08d91d: musl: config is broken for !EXPERIMENTAL

Bryan Hundven bryanhundven@gmail.com
Sat Jun 18 01:03:00 GMT 2016


  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 <stilor@att.net>
  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 <stilor@att.net>


  Commit: a60946eb24430a8b43b8fe6027d32ab17be28111
      https://github.com/crosstool-ng/crosstool-ng/commit/a60946eb24430a8b43b8fe6027d32ab17be28111
  Author: Alexey Neyman <stilor@att.net>
  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 <stilor@att.net>


  Commit: a49e13fb4edeefba406d98754fb0ca04b707ff4c
      https://github.com/crosstool-ng/crosstool-ng/commit/a49e13fb4edeefba406d98754fb0ca04b707ff4c
  Author: Alexey Neyman <stilor@att.net>
  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 <stilor@att.net>


  Commit: 55879ed1d83ebb72f2ab6cbbd892448c731a7163
      https://github.com/crosstool-ng/crosstool-ng/commit/55879ed1d83ebb72f2ab6cbbd892448c731a7163
  Author: Alexey Neyman <stilor@att.net>
  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 <stilor@att.net>


  Commit: a65d8841ec0ceff75a3d5c3795cfb7435a194670
      https://github.com/crosstool-ng/crosstool-ng/commit/a65d8841ec0ceff75a3d5c3795cfb7435a194670
  Author: Alexey Neyman <stilor@att.net>
  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 <stilor@att.net>


  Commit: aa30d0bc4fdf6480a5a24c69e5537f8c41011470
      https://github.com/crosstool-ng/crosstool-ng/commit/aa30d0bc4fdf6480a5a24c69e5537f8c41011470
  Author: Ray Donnelly <mingw.android@gmail.com>
  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 <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>


  Commit: 34ecc718d9d2ea7d391056733d004c68fe7e4bf3
      https://github.com/crosstool-ng/crosstool-ng/commit/34ecc718d9d2ea7d391056733d004c68fe7e4bf3
  Author: Alexey Neyman <stilor@att.net>
  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/<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 <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <ray.donnelly@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>


  Commit: 67b314a05156f9af221b807d543030ef9f0dc842
      https://github.com/crosstool-ng/crosstool-ng/commit/67b314a05156f9af221b807d543030ef9f0dc842
  Author: Alexey Neyman <stilor@att.net>
  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 <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <ray.donnelly@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>


  Commit: c7da54edf4c2e3a3eb97eb5fb967143e5071a670
      https://github.com/crosstool-ng/crosstool-ng/commit/c7da54edf4c2e3a3eb97eb5fb967143e5071a670
  Author: Ray Donnelly <mingw.android@gmail.com>
  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 <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>


  Commit: dc8f2d1c04258069101e913d22c898298b98384c
      https://github.com/crosstool-ng/crosstool-ng/commit/dc8f2d1c04258069101e913d22c898298b98384c
  Author: Alexey Neyman <stilor@att.net>
  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 <stilor@att.net>


  Commit: 6e7c61650a39a67ee02ed58c11d64c94c436bb33
      https://github.com/crosstool-ng/crosstool-ng/commit/6e7c61650a39a67ee02ed58c11d64c94c436bb33
  Author: Bryan Hundven <bryanhundven@gmail.com>
  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
-------------- next part --------------
--
For unsubscribe information see http://sourceware.org/lists.html#faq


More information about the crossgcc mailing list