Page MenuHomePhabricator

edward-jones (Edward Jones)
Compiler Engineer at Embecosm

Projects

User does not belong to any projects.

User Details

User Since
Aug 19 2015, 6:56 AM (352 w, 5 d)

Recent Activity

Thu, May 19

edward-jones updated the diff for D91719: [RISCV] Add support for using -msave-restore with tailcalls.

Rebased!

Thu, May 19, 8:39 AM · Restricted Project, Restricted Project
edward-jones accepted D125963: [Office Hours] add initial guidance for hosts.
Thu, May 19, 8:35 AM · Restricted Project, Restricted Project
edward-jones added inline comments to D125963: [Office Hours] add initial guidance for hosts.
Thu, May 19, 8:35 AM · Restricted Project, Restricted Project

Mon, Apr 25

Herald added a project to D91719: [RISCV] Add support for using -msave-restore with tailcalls: Restricted Project.

The documentation changes to the riscv-toolchain-conventions repository have been merged now, (https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/10). In addition, there's a pending patch to implement this in GCC (https://gcc.gnu.org/pipermail/gcc-patches/2022-March/592467.html). I think this means there's nothing blocking this except a rebase.

Mon, Apr 25, 2:46 AM · Restricted Project, Restricted Project

Mar 7 2022

edward-jones planned changes to D113890: [RISCV] Add new ELF attribute to track reserved registers.
Mar 7 2022, 5:22 AM · Restricted Project, Restricted Project
edward-jones added inline comments to D113890: [RISCV] Add new ELF attribute to track reserved registers.
Mar 7 2022, 5:22 AM · Restricted Project, Restricted Project

Jan 31 2022

edward-jones added a comment to D91719: [RISCV] Add support for using -msave-restore with tailcalls.

To summarize where I think this stands. We don't want to implement something in LLVM which is undocumented or not likely to be implemented for other tools, so I also opened a pull request to document this change (https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/10) in the hope that it could be later implemented for GCC. From the discussion on that pull request there's an understandable reluctance to introduce a feature which would stop libgcc/compiler-rt from being drop in replacements for each other.

Jan 31 2022, 2:34 AM · Restricted Project, Restricted Project
edward-jones updated the diff for D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.

Fix comment

Jan 31 2022, 2:22 AM · Restricted Project

Jan 17 2022

edward-jones added reviewers for D113890: [RISCV] Add new ELF attribute to track reserved registers: asb, luismarques, jrtc27.
Jan 17 2022, 6:36 AM · Restricted Project, Restricted Project
edward-jones updated the diff for D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.

Added CFI directives to the __riscv_restore_tailcall_<N> functions

Jan 17 2022, 5:52 AM · Restricted Project
edward-jones requested review of D117471: [RISCV][compiler-rt] Add CFI directives to save-restore implementation.
Jan 17 2022, 5:50 AM · Restricted Project

Nov 29 2021

edward-jones updated the diff for D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.
Nov 29 2021, 8:48 AM · Restricted Project
edward-jones updated the diff for D91719: [RISCV] Add support for using -msave-restore with tailcalls.

Rebased

Nov 29 2021, 8:48 AM · Restricted Project, Restricted Project

Nov 24 2021

edward-jones updated the diff for D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.
Nov 24 2021, 9:16 AM · Restricted Project
edward-jones updated the diff for D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.
Nov 24 2021, 9:15 AM · Restricted Project

Nov 22 2021

edward-jones added a reviewer for D113890: [RISCV] Add new ELF attribute to track reserved registers: kito-cheng.
Nov 22 2021, 6:17 AM · Restricted Project, Restricted Project

Nov 15 2021

edward-jones requested review of D113890: [RISCV] Add new ELF attribute to track reserved registers.
Nov 15 2021, 6:52 AM · Restricted Project, Restricted Project

Nov 4 2021

edward-jones updated the summary of D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.
Nov 4 2021, 7:35 AM · Restricted Project
edward-jones updated the summary of D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.
Nov 4 2021, 7:35 AM · Restricted Project
edward-jones added a comment to D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.

Some of the previously changes made were undone in order to match the spec as-written (notably I undid the renaming of relocations).

This could do with another review now because I don't expect this patch will change too much now unless the spec also changes.

Aside from the comment I just made about this attitude on the corresponding Clang patch, standard RISC-V relocations can only be specified by the psABI, so the names absolutely can still be changed if the spec authors propose bad names.

Nov 4 2021, 7:34 AM · Restricted Project
edward-jones added a comment to D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.

I reverted some of the previous changes I made so that this patch matches the spec as currently written - this means it's two attributes again, and the diagnostic messages have been updated a bit too. The two Clang attributes match to the same LLVM attribute internally though.

This is at a stage where more review would be nice. Obviously this is gated on patches to other toolchain components, but I hope that these changes won't change too much now unless the spec also changes.

The whole point of putting it up for review is so you get feedback about the entire direction of the spec, which was written by people who are not experts when it comes to toolchains. You’re supposed to take our feedback, relay it to them and get the draft spec revised. Otherwise, if the spec written by people who don’t know what makes sense for toolchains is regarded as holy and immutable then I’m just going to NACK this as poorly designed and something LLVM shouldn’t bow to implementing, and you’ve wasted my time asking for a full review.

Nov 4 2021, 7:31 AM · Restricted Project

Nov 1 2021

edward-jones added a comment to D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.

Some of the previously changes made were undone in order to match the spec as-written (notably I undid the renaming of relocations).

Nov 1 2021, 4:00 AM · Restricted Project
edward-jones added a comment to D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.

I reverted some of the previous changes I made so that this patch matches the spec as currently written - this means it's two attributes again, and the diagnostic messages have been updated a bit too. The two Clang attributes match to the same LLVM attribute internally though.

Nov 1 2021, 3:59 AM · Restricted Project
edward-jones added a comment to D91719: [RISCV] Add support for using -msave-restore with tailcalls.

I'm not entirely sure if there's anything that needs to be agreed on still for this. It feels like this has soft agreement, but I don't know whether I would get push back if I get this committed

Nov 1 2021, 3:53 AM · Restricted Project, Restricted Project

Oct 18 2021

edward-jones updated the diff for D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.
Oct 18 2021, 4:52 AM · Restricted Project
edward-jones updated the diff for D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.
Oct 18 2021, 4:51 AM · Restricted Project
edward-jones updated the diff for D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.
Oct 18 2021, 4:49 AM · Restricted Project

Sep 23 2021

edward-jones updated the diff for D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.

Changes here:

Sep 23 2021, 10:28 AM · Restricted Project
edward-jones updated the diff for D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.

I've tried to take into account most of the suggested changes into this update:

Sep 23 2021, 10:20 AM · Restricted Project

Sep 8 2021

edward-jones added a comment to D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.

Thanks for all of the prompt feedback, I'll incorporate the suggested changes and update the patch

Sep 8 2021, 6:17 AM · Restricted Project
edward-jones added a comment to D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.

The name "overlay" is ambiguous. Even after I ruled out Gentoo Overlay and overlayfs, I am thinking whether this has anything to do with OVERLAY description in a linker script: https://sourceware.org/binutils/docs/ld/Overlay-Description.html#Overlay-Description

which are used to mark functions or global data as only accessible through the overlay engine

Can you give more descriptions for folks who don't follow the RISC-V side proposal but need to review your changes? :)

Basically hardware-assisted code+rodata banking (I guess either by actually banking ROMs or just paging stuff in and out) that's mostly transparent to software. Functions at the boundary of components (don't know what the granularity is) use a weird indirect calling convention where you instead call into some magic runtime with a unique ID for the callee, it ensures everything's loaded and then tail calls it for you.

Sep 8 2021, 5:58 AM · Restricted Project

Sep 7 2021

edward-jones requested review of D109372: [RISCV][RFC] Add Clang support for RISC-V overlay system.
Sep 7 2021, 9:59 AM · Restricted Project
edward-jones requested review of D109371: [RISCV][RFC] Add LLVM support for RISC-V overlay system.
Sep 7 2021, 9:57 AM · Restricted Project
edward-jones abandoned D24613: [AAP] (9) Add the bulk of the AAP backend implementation.
Sep 7 2021, 9:48 AM
edward-jones abandoned D24612: [AAP] (8) Add AAP Disassembler support.
Sep 7 2021, 9:47 AM
edward-jones abandoned D23771: [AAP] (5) Add AAP MC layer support.
Sep 7 2021, 9:47 AM
edward-jones abandoned D23770: [AAP] (4) Add AAP basic tablegen (InstrInfo, RegInfo).
Sep 7 2021, 9:47 AM
edward-jones abandoned D23667: [AAP] (3) Add AAP backend stub.
Sep 7 2021, 9:47 AM
edward-jones abandoned D23773: [AAP] (7) Add AAP InstPrinter support.
Sep 7 2021, 9:47 AM
edward-jones abandoned D23772: [AAP] (6) Add AAP AsmParser.
Sep 7 2021, 9:47 AM

Jul 26 2021

edward-jones abandoned D23665: [AAP] (2) Add AAP ELF definitions.
Jul 26 2021, 3:22 AM
edward-jones abandoned D23664: [AAP] (1) Add AAP target triple.
Jul 26 2021, 3:18 AM

Jun 28 2021

edward-jones updated the diff for D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.
Jun 28 2021, 3:08 AM · Restricted Project
edward-jones updated the diff for D91719: [RISCV] Add support for using -msave-restore with tailcalls.

I've rebased and added an option so that the tailcall version of save/restore is only used if -mllvm -riscv-save-restore-tailcall is provided.

Jun 28 2021, 3:08 AM · Restricted Project, Restricted Project

May 17 2021

edward-jones added a comment to D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.

It was pointed out in the RISC-V LLVM sync-up that these entry points could be in separate sections to allow -gc-sections to remove any unnecessary entry points. This would mitigate the code size penalty for small programs as only the required entry points would be pulled in, however it would require the linker script to behave and not reorder the sections, and would require some changes to ensure that the fallthrough function does not accidentally get collected.

May 17 2021, 3:28 PM · Restricted Project
edward-jones added a comment to D91719: [RISCV] Add support for using -msave-restore with tailcalls.

On the RISC-V sync-up call I said I would try and provide some code size numbers for these changes. First I mentioned that I saw a code size regression when compiled Embench, here's per-benchmark numbers:

May 17 2021, 3:24 PM · Restricted Project, Restricted Project

May 12 2021

edward-jones added a comment to D91719: [RISCV] Add support for using -msave-restore with tailcalls.

Documentation for -msave-restore has been committed to riscv-toolchain-conventions, I have an additional pull request to document this proposed tail-call version here

May 12 2021, 1:47 PM · Restricted Project, Restricted Project

May 4 2021

edward-jones added reviewers for D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points: jrtc27, luismarques, asb.
May 4 2021, 2:13 AM · Restricted Project

Apr 19 2021

edward-jones updated the diff for D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.

Updated the implementation to closely match the __riscv_restore_N entry points.

Apr 19 2021, 9:42 AM · Restricted Project
edward-jones updated the diff for D91719: [RISCV] Add support for using -msave-restore with tailcalls.

I have updated this so that the generation of the address passed to the restore functions is done in a separate method RISCVFrameLowering::buildAddr. This handles both the code models and mirrors RISCVISelLowering::getAddr - it would be nice if these functions could share code, or at least be in a common place.

Apr 19 2021, 9:40 AM · Restricted Project, Restricted Project

Mar 15 2021

edward-jones committed rGb136a74efc54: [RISCV][compiler-rt] Add support for save-restore (authored by edward-jones).
[RISCV][compiler-rt] Add support for save-restore
Mar 15 2021, 8:59 AM
edward-jones closed D91717: [RISCV][compiler-rt] Add support for save-restore.
Mar 15 2021, 8:59 AM · Restricted Project
edward-jones updated the diff for D91717: [RISCV][compiler-rt] Add support for save-restore.
Mar 15 2021, 5:43 AM · Restricted Project

Mar 1 2021

edward-jones added a comment to D91717: [RISCV][compiler-rt] Add support for save-restore.

Now that RV32 and RV64 have separate implementations, is there still a point in keeping the LOAD/STORE/STRIDE macros?

Mar 1 2021, 7:51 AM · Restricted Project
edward-jones updated the diff for D91717: [RISCV][compiler-rt] Add support for save-restore.

I've rebased, switched to a grouping of 2 for rv64 and 4 for rv32, and fixed the formatting/comments.

Mar 1 2021, 7:30 AM · Restricted Project

Nov 23 2020

edward-jones added a comment to D91717: [RISCV][compiler-rt] Add support for save-restore.

It seems a bit excessive to me to coalesce the entry points into bundles of 4. Do you have any particular benchmarking data or reasoning that supports choosing that threshold?
Also, shouldn't this implementation include CFI directives?

I used bundles of 4 just to follow the behaviour I saw in libgcc, and the grouping of 2 for rv64 seemed a bit too fine-grained. I'm not sure what the original justification for the coalescing into groups of 2/4 was in libgcc.

I'll update to account for other suggested changes and see if I can find any benchmarks which show the tradeoff for the grouping threshold

Because the stack alignment is 16 bytes; see my earlier comment.

Nov 23 2020, 6:55 AM · Restricted Project
edward-jones added a comment to D91717: [RISCV][compiler-rt] Add support for save-restore.

It seems a bit excessive to me to coalesce the entry points into bundles of 4. Do you have any particular benchmarking data or reasoning that supports choosing that threshold?
Also, shouldn't this implementation include CFI directives?

Nov 23 2020, 6:15 AM · Restricted Project

Nov 18 2020

edward-jones requested review of D91720: [RISCV][compiler-rt] Add __riscv_restore_tailcall_N entry points.
Nov 18 2020, 8:36 AM · Restricted Project
edward-jones requested review of D91719: [RISCV] Add support for using -msave-restore with tailcalls.
Nov 18 2020, 8:34 AM · Restricted Project, Restricted Project
edward-jones requested review of D91717: [RISCV][compiler-rt] Add support for save-restore.
Nov 18 2020, 8:30 AM · Restricted Project

Jun 16 2020

edward-jones created D81946: [WIP][RISCV] Enable multilib support even without a detected GCC install.
Jun 16 2020, 9:54 AM · Restricted Project

Mar 26 2020

edward-jones accepted D65649: [RISCV] Add MC encodings and tests of the Bit Manipulation extension.

This looks good to me now.

Mar 26 2020, 8:06 AM · Restricted Project

Mar 19 2020

edward-jones added a reviewer for D65649: [RISCV] Add MC encodings and tests of the Bit Manipulation extension: edward-jones.
Mar 19 2020, 8:04 AM · Restricted Project
edward-jones added a comment to D65649: [RISCV] Add MC encodings and tests of the Bit Manipulation extension.

Looks tidy and a really decent set of tests. I've added a few comments, though they are mainly me agreeing with Simon's points.

Mar 19 2020, 7:31 AM · Restricted Project

Feb 25 2020

edward-jones accepted D75061: [RISCV] Fix sysroot tests without GCC on RISC-V hosts with GCC.

Looks good to me. Clang tests all pass on my local build.

Feb 25 2020, 3:31 AM · Restricted Project

Nov 22 2019

edward-jones committed rGe0f22fe04a5c: [RISCV] Use compiler-rt if no GCC installation detected (authored by edward-jones).
[RISCV] Use compiler-rt if no GCC installation detected
Nov 22 2019, 12:34 PM
edward-jones closed D68407: [RISCV] Use compiler-rt if no GCC installation detected.
Nov 22 2019, 12:34 PM · Restricted Project

Nov 14 2019

edward-jones updated the diff for D68407: [RISCV] Use compiler-rt if no GCC installation detected.

Added tests that a user can specify a specific runtime library through --rtlib. Also rebased on master, and added a comment explaining the use of --rtlib=platform in the tests.

Nov 14 2019, 5:20 AM · Restricted Project
edward-jones requested review of D68407: [RISCV] Use compiler-rt if no GCC installation detected.
Nov 14 2019, 4:34 AM · Restricted Project
edward-jones added a comment to D68407: [RISCV] Use compiler-rt if no GCC installation detected.

If I set -DCLANG_DEFAULT_RTLIB=compiler-rt I see the following failure in clang/test/Driver/cross-linux.c:

Nov 14 2019, 4:34 AM · Restricted Project
edward-jones updated the diff for D68407: [RISCV] Use compiler-rt if no GCC installation detected.

It seems that the option --rtlib=platform exists to force the driver to ignore the -DCLANG_DEFAULT_RTLIB for testing purposes, so I've added this option to the tests that were broken.

Nov 14 2019, 4:15 AM · Restricted Project
edward-jones reopened D68407: [RISCV] Use compiler-rt if no GCC installation detected.
Nov 14 2019, 4:06 AM · Restricted Project
edward-jones added a comment to D68407: [RISCV] Use compiler-rt if no GCC installation detected.

Okay. I'll see if I can find a way to test this when CLANG_DEFAULT_RTLIB is set, and then I'll resubmit

Nov 14 2019, 2:40 AM · Restricted Project

Nov 13 2019

edward-jones committed rG3289352e6bb9: [RISCV] Use compiler-rt if no GCC installation detected (authored by edward-jones).
[RISCV] Use compiler-rt if no GCC installation detected
Nov 13 2019, 9:32 AM
edward-jones closed D68407: [RISCV] Use compiler-rt if no GCC installation detected.
Nov 13 2019, 9:32 AM · Restricted Project

Nov 7 2019

edward-jones added a comment to D58896: Suppress -Wchar-subscripts if the index is a literal char.

Okay I've reverted this in rG90ecfa2f5f7f . I'll make improvements and resubmit this for review.

Nov 7 2019, 10:56 AM · Restricted Project
edward-jones committed rG90ecfa2f5f7f: Revert "[Sema] Suppress -Wchar-subscripts if the index is a literal char" (authored by edward-jones).
Revert "[Sema] Suppress -Wchar-subscripts if the index is a literal char"
Nov 7 2019, 10:48 AM
edward-jones added a reverting change for rG7adab7719e55: [Sema] Suppress -Wchar-subscripts if the index is a literal char: rG90ecfa2f5f7f: Revert "[Sema] Suppress -Wchar-subscripts if the index is a literal char".
Nov 7 2019, 10:48 AM
edward-jones updated the diff for D68407: [RISCV] Use compiler-rt if no GCC installation detected.

I've changed this to always return ToolChain::UNW_None from RISCVToolChain::GetUnwindLibType now. As a consequence we get the original behaviour of only -lgcc being added to the link command.

Nov 7 2019, 9:51 AM · Restricted Project
edward-jones added a comment to D58896: Suppress -Wchar-subscripts if the index is a literal char.

But how about literals like '\x80' where the promoted value depends on whether plain char is signed or unsigned?

Nov 7 2019, 9:42 AM · Restricted Project
edward-jones added a comment to D68407: [RISCV] Use compiler-rt if no GCC installation detected.

This patch is looking much better, thanks for updating it.

Please may you clarify what RISC-V gcc does for -lgcc, -lgcc_s, -lgcc_eh? Is it different to what gcc does on other targets? Being closer to matching the linker arguments that gcc provides to ld seems like a good idea, IMO.

Nov 7 2019, 8:55 AM · Restricted Project
edward-jones abandoned D34103: Allow use of fixed width integer types in builtin definitions.
Nov 7 2019, 8:00 AM
edward-jones committed rG7adab7719e55: [Sema] Suppress -Wchar-subscripts if the index is a literal char (authored by edward-jones).
[Sema] Suppress -Wchar-subscripts if the index is a literal char
Nov 7 2019, 7:51 AM
edward-jones closed D58896: Suppress -Wchar-subscripts if the index is a literal char.
Nov 7 2019, 7:51 AM · Restricted Project
edward-jones committed rGdd2588001082: [RISCV] Add riscv{32,64} to ALL_CRT_SUPPORTED_ARCH list (authored by edward-jones).
[RISCV] Add riscv{32,64} to ALL_CRT_SUPPORTED_ARCH list
Nov 7 2019, 7:41 AM
edward-jones closed D68393: [RISCV] Add riscv{32,64} to ALL_CRT_SUPPORTED_ARCH list.
Nov 7 2019, 7:41 AM · Restricted Project, Restricted Project
edward-jones committed rGde61aa3118b9: [RISCV] Improve sysroot computation if no GCC install detected (authored by edward-jones).
[RISCV] Improve sysroot computation if no GCC install detected
Nov 7 2019, 7:23 AM
edward-jones closed D68391: [RISCV] Improve sysroot computation if no GCC install detected.
Nov 7 2019, 7:23 AM · Restricted Project
edward-jones added inline comments to D67348: [RISCV] Add codegen pattern matching for bit manipulation assembly instructions..
Nov 7 2019, 4:10 AM · Restricted Project
edward-jones added a comment to D69899: [RISCV] Improve assembler missing feature warnings.

This looks good to me, the only thing that I'm not sure about is the phrasing of the warnings:

Nov 7 2019, 3:24 AM · Restricted Project

Nov 6 2019

edward-jones requested review of D68391: [RISCV] Improve sysroot computation if no GCC install detected.
Nov 6 2019, 6:45 AM · Restricted Project

Nov 4 2019

edward-jones added a comment to D68407: [RISCV] Use compiler-rt if no GCC installation detected.

Please can you add a test for riscv32 and riscv64 without libgcc?

Nov 4 2019, 9:31 AM · Restricted Project
edward-jones updated the diff for D68407: [RISCV] Use compiler-rt if no GCC installation detected.

I've rebased, and also refactored this to use AddRunTimeLibs and GetDefaultRuntimeLibType. The tests have been updated to reflect the changes. Notable changes compared to the last version of the patch:

Nov 4 2019, 9:31 AM · Restricted Project
edward-jones updated the diff for D68391: [RISCV] Improve sysroot computation if no GCC install detected.

Rebased, added a comment to explain that this is using the user provided triple instead of the canonical one, and split out the tests requiring a shell into separate files (clang/test/Driver/riscv{32,64}-toolchain-extra.c)

Nov 4 2019, 9:12 AM · Restricted Project

Oct 14 2019

edward-jones added a comment to D68393: [RISCV] Add riscv{32,64} to ALL_CRT_SUPPORTED_ARCH list.

@edward-jones: what LLVM cmake options are you using to test this?

Oct 14 2019, 5:56 AM · Restricted Project, Restricted Project

Oct 4 2019

edward-jones added a reviewer for D68407: [RISCV] Use compiler-rt if no GCC installation detected: luismarques.
Oct 4 2019, 6:47 AM · Restricted Project
edward-jones added reviewers for D68391: [RISCV] Improve sysroot computation if no GCC install detected: asb, luismarques.
Oct 4 2019, 6:47 AM · Restricted Project
edward-jones added reviewers for D68393: [RISCV] Add riscv{32,64} to ALL_CRT_SUPPORTED_ARCH list: asb, luismarques.
Oct 4 2019, 6:47 AM · Restricted Project, Restricted Project
edward-jones updated the diff for D68407: [RISCV] Use compiler-rt if no GCC installation detected.

Rebased, updated tests from D68391 to check for existence of compiler-rt crtbegin/crtend and runtime library.

Oct 4 2019, 6:45 AM · Restricted Project
edward-jones updated the diff for D68391: [RISCV] Improve sysroot computation if no GCC install detected.

Rebased and added tests

Oct 4 2019, 6:42 AM · Restricted Project