Subject: [bug#28433] [WIP] Rust update

From: Danny Milosavljevic <[email-masked]>
Date: Mon, 30 Oct 2017 17:14:15 +0100

Hi Ludo,

> Yes, I think -m32 is a no-op in this case.

Yep.  I just got rustc to build a bootstrap executable (which fails when executing it [*], but hey, progress) by making a union-build with all the i686 libs.

Feels kinda icky, but it seems that propagated-inputs don't remember the #:system it was for, so for example if A propagates B and A specifies system i686, and X specifies system x86_64 and X depends on A, then X's B will be x86_64.  Weird but understandable I guess...

Details:

A:
  propagated-inputs
    B
  arguments system i686

X:
  native-inputs
    A
  arguments system x86_64

Now X's B is x86_64...

The workaround is this:

A:
  arguments system i686
  native-inputs
    B
  union-build out/lib from B (etc)

X:
  native-inputs
    A
  arguments system x86_64

That works.

In our specific case A = "rust-bootstrap", X = "rustc", B = "glibc", "gcc:lib" etc.

[*] Tries to load libgcc_s.so.1 from the glibc store directory.  WTF?