Of all the gin joints in all the towns in all the world, Jordan Justen had to walk into mine at 16:46:07 on Thursday 16 June 2016 and say:
> On 2016-06-16 16:11:34, Bill Paul wrote: > > Of all the gin joints in all the towns in all the world, Jordan Justen > > had to > > > > walk into mine at 15:47:05 on Thursday 16 June 2016 and say: > > > On 2016-06-16 14:11:01, Bill Paul wrote: > > > > Really there are two paths here: > > > > > > > > 1) Support the OS host compiler > > > > 2) Use a cross-build compiler > > > > > > You can also just build and install GCC 4.9 under your home dir, or > > > another location that doesn't take over the system GCC. > > > > So I either bootstrap a new host GCC or bootstrap a cross-build GCC. I > > have to build GCC either way. > > Yeah, so build the one that is better supported and tested for EDK II. I've already made it clear that I'm willing to shoulder the burden of using the cross-build toolchain even if it's not considered officially supported. I know that if it breaks I get to keep both pieces. > Relatedly ... If Steven gets clang working for EDK II, will you > consider using that toolchain instead? That seems like a toolchain for > EDK II that actually might have a future. a) Getting _which_ clang working? If you still mean host-based versions of clang instead of a cross-build target that I can bootstrap anywhere, then I've already explained why I'm against that. b) Why not have both since the only thing needed to make UNIXGCC work again is to FIX THE BITROT. c) I've already got a patch to fix UNIXGCC now. Why should have to wait until later? (I always waited almost a year for someone to fix UNIXGCC.) If you can add a clang cross-compiler option instead of the GNU option that's great, but until then, why not have a temporary stop-gap? > > > > Today all I want to do is FIX THE BITROT, especially given that the > > > > fix is pretty trivial. > > > > > > UNIXGCC is MinGW GCC 4.3, so fixing the bitrot would mean updating the > > > script to allow it to build MinGW GCC 4.3. > > > > [I think you meant "to build something newer than MinGW GCC 4.3."] > > No, I did not. UNIXGCC is an ancient GCC (4.3) MinGW toolchain. Which > nobody uses. But they can use a newer version. (Like I do.) > And nobody tests. And probably doesn't build. But for > some readon we can't deprecate it. I think that's a misinterpretation. It occurred to on the way home from work yesterday that what you were trying to say was that the UNIXGCC toolchain option is tied to GCC 4.3. It's more accurate to say that UNIXGCC is to the MinGW compiler generated by the mingw-build.py script. I don't think there's anything written down anywhere that says that script can't be updated to use a newer version of GCC. You may be inferring that it's stuck at that version forever because nobody has taken the time to fix it, but I don't think anyone else is saying that's the case, and there's no documentation that I can find to support that position. The instructions for using the cross-build option are here: https://github.com/tianocore/tianocore.github.io/wiki/Unix-like-systems (And on a few descendant pages.) It says it uses the MinGW compiler. It doesn't specify exactly which version nor say that it will always be pegged at the same version forever. So please, I implore you: stop trying to make it sound that way. > I assumed that the script no longer managed to build MinGW GCC 4.3, > but maybe it still works... Yes, it still does build a working GCC 4.3. But you can't use GCC 4.3 anymore. Also, it could be arguably considered a bug to have it use that version. The 4.3 MinGW target assumes you have to use underscore decoration for both IA32 and X64 targets. That's actually wrong (and the wrongness was perpetuated in the tools_def file too -- that's something else that I fixed). Newer versions fix that (it only applies to IA32). And as I said, there is nothing written in stone that says the script can't be updated to use a newer version of GCC. And doing that took barely more than just changing the download paths and MD5 sums. It was not rocket science. No animals were harmed. > > > If we want to add support for MinGW GCC 4.9, then I'd rather see it > > > called MINGWGCC49. > > > > And when you that, you're still going to have to apply the patch that I > > just gave you to fix the .dsc files in OVMF because _any_ MinGW build > > will be missing the support for the -z flag. > > Or, you can try to build ELF GCC 4.9 and then try GCC49 to see if it > can also work for you. You're going in circles. I explained already: 1) I don't want to use a host compiler for what is fundamentally a cross-build target. 2) It makes no sense for me to replace my host compiler (which may be tightly integrated with my host environment and work perfectly well for its intended use) 3) I could build a "x86-none-elf" cross-build compiler instead, but I'm basically trying to do that anyway. And if I have to choose between a toolchain that generates ELF binaries which I then have to convert to PE/COFF versus a toolchain that produces PE/COFF binaries in the first place, I'd rather have the latter. And none of that matters anyway because it has nothing to do with my actual goal here which is just to FIX THE BITROT. I still maintain there is no technical reason not to just fix the UNIXGCC build option and let people use it if they happen to find it convenient, especially since the fix is pretty simple _and_ I've already done the work. In spite of your protestations, it will not make your life harder, there will not be any human sacrifices, dogs and cats living together or mass hysteria. There will just be a few more people getting stuff done with this wonderful project. -Bill -- ============================================================================= -Bill Paul (510) 749-2329 | Senior Member of Technical Staff, wp...@windriver.com | Master of Unix-Fu - Wind River Systems ============================================================================= "I put a dollar in a change machine. Nothing changed." - George Carlin ============================================================================= _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel