[PATCH v2] Add `--with-install-sysroot=' configuration option
Maciej W. Rozycki
macro@wdc.com
Thu Nov 28 20:45:00 GMT 2019
On Fri, 22 Nov 2019, Joseph Myers wrote:
> > As I recall the MIPS sysroot setup (please correct me if I got something
> > wrong here) was like:
>
> Yes, that's the sort of layout you get with sysroot suffixes. See
> gcc/config/mips/{st.h,t-st} for an example.
Thanks for the pointer.
> > Then the right-hand side of /path/to/somewhere (except for usr/) is what
> > gets printed by `-print-multi-directory' or the left-hand side of output
> > from `-print-multi-lib', e.g. `sof/el/lib64' for the example above.
>
> Rather, it's a suffix (as in SYSROOT_SUFFIX_SPEC, no command-line option
> to print it),
Do you mean that there's no option to print SYSROOT_SUFFIX_SPEC on its
own or that no option prints it as a path component? If the latter, then
I think it's an awful shortcoming, because there's no reasonable way for
a given GCC compilation to determine the layout expected.
> > Well, I agree we need to have this stuff documented beyond what we
> > currently have, but I think it applies equally to all the sysroot options
> > we have, including both the `--sysroot=' GCC driver's option, and the
> > `--with-sysroot=', `--with-build-sysroot=' and the newly-proposed
>
> All three of those refer to the top-level sysroot path, to which a sysroot
> suffix is appended based on SYSROOT_SUFFIX_SPEC (unless
> --no-sysroot-suffix is used).
>
> > `--with-install-sysroot=' `configure' script's options as well. All we
> > currently have is this paragraph:
>
> But this is a path relative to which SYSROOT_SUFFIX_SPEC isn't used at
> all.
Can you please show me the two directory layouts, one for `--sysroot='
and the other for `--with-install-sysroot=' aka $toolexeclibdir, say for
the `mips64el-st-linux-gnu' target, and where exactly in GCC installation
(if anywhere) the `--sysroot=' layout is used?
Is it that with $toolexeclibdir we have say:
/usr/mips64el-st-linux-gnu/
+-> lib/
| +-> 2e/
| \-> 2f/
+-> lib32/
| +-> 2e/
| \-> 2f/
\-> lib64/
+-> 2e/
\-> 2f/
whereas `--sysroot=/path/to/sysroot' expects:
/path/to/sysroot/
+-> 2e/
| +-> lib/
| +-> lib32/
| \-> lib64/
\-> 2f/
+-> lib/
+-> lib32/
\-> lib64/
(and then GCC applies the former scheme to the directories pointed to by
the `-B' and `-L' options and the latter scheme to the directory pointed
to by the `--sysroot=' option)?
> > And last but not least: do we want to hold my proposed change hostage to
> > a sysroot handling documentation improvement? It does not appear fair to
> > me as the situation with said documentation is not a new problem nor one
> > specific to this newly-added option, and the new option merely played the
>
> The proposed new option is, as far as I know, the first one introducing
> this new kind of sysroot option (one for which the suffix from
> SYSROOT_SUFFIX_SPEC is never added).
Thank you for all your input.
If my understanding as expressed above is correct, then I think the way
to move forward with this change will be to rename the option to
`--with-toolexeclibdir=' or suchlike (and adjust documentation
accordingly) so that it avoids the ambiguity of "sysroot" and is in line
with the usual `--bindir=', `--libdir=', etc. or less usual
`--with-slibdir=' options where people can adjust the various installation
directories according to their requirements or preferences.
Then on top of this an option like `--enable-sysroot-for-toolexeclibdir'
can be discussed in the future, that would switch $toolexeclibdir to the
proper sysroot layout, whether `--with-toolexeclibdir=' has been used or
not. Such an option will necessarily have to rely on the presence of a
GCC option to print SYSROOT_SUFFIX_SPEC/STARTFILE_PREFIX_SPEC for the
multilib selected.
If we agree on this plan, I'll post an update patch.
Maciej
More information about the Libffi-discuss
mailing list