all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Gábor Boskovits" <boskovits@gmail.com>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: gcc-ddc
Date: Tue, 21 Nov 2017 00:16:44 +0100	[thread overview]
Message-ID: <CAE4v=piXEMxuMAMbBMHjU7MW6Jt707BOUaZ-=AZytvTvDw7RCA@mail.gmail.com> (raw)
In-Reply-To: <87lgj0wqbd.fsf@elephly.net>

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

The only problematic one seems to be standard_libexec_prefix, because that
is  used in line 3654 of gcc/gcc.c in a real assignment.
It is also used in line 64 of gcc/gcc-ar.c.

Other uses of all these other symbols could be calculated as compile time
realitve paths, and if we can live with these paths staying in the same
store directory, then it would be ok.

This problematic use pattern is in the from:

x=make_relative_prefix(y,standard_exec_prefix,standard_libexec_prefix);
if(!x) x=standard_libexec_prefix;

Code of make_relative_prefix is in libiberty/make-relative-prefix.c.

Assuming sane values (not nulls, existing program name, valid
GCC_EXEC_PREFIX) we get null in the following cases:
1. GCC_EXEC_PREFIX(or the program name directory
component)==standard_exec_prefix
2. if the path present in standard_exec_prefix and standard_libexec_prefix
has no common directories(starting from the beginning)
3. in case of allocation failure.

We can safely assume that case 2 does not happen, as we at least have
/gnu/store there, I think.
Nothing can be done about case 3, I don't think we get too far in that case
anyway...

So, when this happens we simply have case 1: we are not relocated.

In gcc/gcc.c this pattern is guarded by if(gcc_exec_prefix) basically.(it
is in an else block)
It is not so in gcc/gcc-ar.c.

This is how far I could get with it by now.

2017-11-20 23:14 GMT+01:00 Ricardo Wurmus <rekado@elephly.net>:

>
> Jan Nieuwenhuizen <janneke@gnu.org> writes:
>
> > Gábor Boskovits writes:
> >
> > Hey Gábor!
> >
> > [cc: guix-devel]
> >
> >> I'm definietly making progress on this. Now I have a working debug
> build of gcc.
> >> Identified the critical symbols, they are:
> >
> >> static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
> >> static const char *const standard_libexec_prefix =
> STANDARD_LIBEXEC_PREFIX;
> >> static const char *const standard_bindir_prefix =
> STANDARD_BINDIR_PREFIX;
> >
> > Oh nice!
> >
> >> The problem fundamentally is that they are calculated from prefix
> passed to configure.
> >> I've checked, that that is the store location.
> >
> > Right.
> >
> >> How should we go on with this?
> >>
> >> Is it possible to pass other value as prefix, or should we keep prefix
> as is, and patch the makefile?
> >> It is set from line 2092 in gcc/Makefile.in by the way.
> >
> > Good question.  I think we should try patching the Makefile.in.
>
> I’m just throwing this in, even though I suspect that it is a terrible
> idea: we could replace these symbols with calls to getenv and provide
> the values at runtime with a separate wrapper that would be excluded in
> the comparison.
>
> --
> Ricardo
>
> GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
> https://elephly.net
>
>
>

[-- Attachment #2: Type: text/html, Size: 3710 bytes --]

  reply	other threads:[~2017-11-20 23:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAE4v=phLKD_nOD2CeBB26H2wDcJuwQsg1Y09BprjMg_YQq2ahw@mail.gmail.com>
2017-11-20 18:24 ` gcc-ddc Jan Nieuwenhuizen
2017-11-20 22:14   ` gcc-ddc Ricardo Wurmus
2017-11-20 23:16     ` Gábor Boskovits [this message]
2017-11-21 16:36       ` gcc-ddc Gábor Boskovits
2017-11-21 16:48       ` gcc-ddc Gábor Boskovits
2017-11-21 22:01         ` gcc-ddc Jan Nieuwenhuizen
2017-11-22 14:42         ` gcc-ddc Gábor Boskovits
2017-11-23  4:11           ` gcc-ddc Jan Nieuwenhuizen
2017-11-23  7:14           ` gcc-ddc Ricardo Wurmus
2017-11-23 11:23             ` gcc-ddc Gábor Boskovits
2017-11-29  9:43               ` gcc-ddc Gábor Boskovits
2017-11-29 12:26                 ` gcc-ddc Gábor Boskovits
2017-11-29 15:57                 ` gcc-ddc Jan Nieuwenhuizen
2017-11-30 14:32                   ` gcc-ddc Gábor Boskovits
2017-12-01 15:44                     ` gcc-ddc Gábor Boskovits
2017-12-02 14:48                       ` gcc-ddc Jan Nieuwenhuizen
2017-12-02 14:53                         ` gcc-ddc Gábor Boskovits
2017-12-02 22:44                         ` gcc-ddc Ricardo Wurmus
2018-01-29  8:46                           ` gcc-ddc Gábor Boskovits
2018-01-29 14:14                             ` gcc-ddc Ludovic Courtès
2018-01-29 14:25                               ` gcc-ddc Ricardo Wurmus

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

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

  git send-email \
    --in-reply-to='CAE4v=piXEMxuMAMbBMHjU7MW6Jt707BOUaZ-=AZytvTvDw7RCA@mail.gmail.com' \
    --to=boskovits@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=rekado@elephly.net \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.