unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: Rust 1.19 fails to build on i686 on ‘staging’
Date: Mon, 18 Feb 2019 15:38:24 +0100	[thread overview]
Message-ID: <20190218153824.58bc253f@scratchpost.org> (raw)
In-Reply-To: <87a7iwm2c5.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3129 bytes --]

Hi Chris,

On Sat, 16 Feb 2019 02:53:30 -0800
Chris Marusich <cmmarusich@gmail.com> wrote:

> > (i.e. the things you did before, just inside a i686-linux guix
> > environment.  That only provides minimal--almost no--isolation from
> > the host, so it should allow us to test whether the personality is the
> > only possible culprit)  
> 
> Did you mean to say that by using a pure guix environment, we can
> achieve a high degree of isolation?

* "guix environment" provides very low isolation (almost none)
* "guix environment --pure" provides better isolation by at least removing
things from $PATH which aren't supposed to be there.
* "guix environment -C" provides very good isolation by creating a new
initially-empty container.

What I meant is that "guix environment -s i686-linux" is very different
from guix-daemon (especially it does not set the personality) and might
allow us to proceed without error, or with a different error.

But apparently the actual problem is that now it always succeeds.

Today I think we should reproduce the guix-daemon environment as closely as
possible in order to make it fail again--and then use the setup right before
it started failing again.

In this case if we wanted to have a similar environment to the guix-daemon,
I think "guix environment -C" would be the most similar - and should fail.
I'm not sure whether guix environment -C sets the personality.  If not,
then your program should be good for setting the personality.

Your program could be simpler if it just used execv(argv[1], argv + 1)
(or execv(argv[1], &argv[1]))
instead of copying the argument vector; if one wants to skip elements at
the front of an array, using the fact that arrays elements are sequential
in C, without gaps, ordered by increasing index, can be very useful.

> I tried what you suggested.  The mrustc invocation still succeeded.

So it always succeeds outside guix-daemon container (does that include
"guix environment -C" ?), but doesn't succeed inside a guix-daemon
container, is that correct?

> Just for fun, I also made a simple wrapper program that lets me run
> another program using the LINUX32 personality (see attached).  I think I
> programmed it correctly, but C is not (yet!) my forte, so if I made an
> error, please let me know.

From within the same pure environment, I
> used this wrapper program to invoke mrustc in the same way, and it
> _still_ succeeded.  That surprised me, since I expected it to fail.

That's strange.  Then maybe the personality is not the reason.

> Can you think of any other way I can try to reproduce the issue?

I'd try 

guix environment -s i686-linux -C rust@1.19.0
And then try to build it in there (or only run the same steps you
ran before--should be enough).

Thanks for looking into it.  Apparently it seems to be possible to get
working--it's just a matter of tuning the environment (maybe even
only by removing things).

(If it is the personality, I suspect that it changes the system call
interface and maybe mrustc assumes the x86_64 syscall interface at
all times)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2019-02-18 14:38 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-28 14:39 Rust 1.19 fails to build on i686 on ‘staging’ Ludovic Courtès
2019-01-28 15:22 ` Danny Milosavljevic
2019-01-28 15:27 ` Danny Milosavljevic
2019-01-28 15:35   ` Danny Milosavljevic
2019-01-29  8:36   ` Ludovic Courtès
2019-01-30 17:59     ` Danny Milosavljevic
2019-02-05 11:28       ` Danny Milosavljevic
2019-02-05 11:35         ` Danny Milosavljevic
2019-02-11 21:34           ` Danny Milosavljevic
2019-02-12 11:47             ` Chris Marusich
2019-02-12 12:06               ` Danny Milosavljevic
2019-02-13  2:59                 ` Chris Marusich
2019-02-13  5:49                   ` Chris Marusich
2019-02-14  4:35                     ` Chris Marusich
2019-02-14 17:14                       ` Danny Milosavljevic
2019-02-15  9:11                         ` Chris Marusich
2019-02-15 10:51                           ` Danny Milosavljevic
2019-02-16 10:53                             ` Chris Marusich
2019-02-18 14:38                               ` Danny Milosavljevic [this message]
2019-05-24 13:55                                 ` Danny Milosavljevic
2019-07-19  5:53                                   ` Chris Marusich
2019-07-21 17:53                                     ` Ricardo Wurmus
2019-01-28 15:50 ` Danny Milosavljevic
2019-01-28 18:41   ` Ricardo Wurmus
2019-01-28 20:25     ` Danny Milosavljevic
2019-01-31  5:51 ` Mark H Weaver

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190218153824.58bc253f@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).