Closed JohannesKauffmann closed 1 year ago
it is because you are didn't indicate the exceptions type required. by default for a long time, SJLJ exceptions was used as default exceptions type. also, by default, when SJLJ it was meant that the target toolchain will be multilib toolchain.
recently this is not the case. I'll work on the issue to fix the behavior for the current reality.
so, what you want to build? what arch/exception/threads?
I'd like POSIX threads, and x86_64 for architecture. I don't really care about the exceptions format. I was hoping the build script would pick a known-to-be-working default value for exceptions when it wasn't specified.
However, do I understand correctly that it's always required to specify the desired exceptions format?
I was hoping the build script would pick a known-to-be-working default value for exceptions when it wasn't specified.
the script performs everything correctly, but the project stopped maintaining SJLJ exceptions, so the script can't download the host toolchain =)
I'd like POSIX threads, and x86_64 for architecture. I don't really care about the exceptions format.
for x86_64 the only exceptions types supported - SEH.
so, for your case the cmdline should be: ./build --mode=gcc-trunk --arch=x86_64 --threads=posix --exceptions=seh --enable-languages=c,c++ --fetch-only
However, do I understand correctly that it's always required to specify the desired exceptions format?
no, as I described above, by default it was implied that SJLJ is used. I will fix it.
and, if you want the target toolchain will use Microsoft UCRT, then add --with-default-msvcrt=ucrt
option.
why are you using --fetch-only
mode here? for what?
Thank you for the clarification. Adding --exceptions=seh
seems to work.
why are you using --fetch-only mode here? for what?
Because I wanted to make sure that all dependencies could be downloaded before attempting to build everything.
ah, got it. it is used, as usual, when you need to download all the sources and the host toolchain, for example in some place where the Internet is present, and to build the toolchain in another place where there is no Internet.
please close the issue if you don't have other questions.
One more question: does fetch mode also download sources which are not necessarily needed during the build proces for the specified options? In other words, does it download more than strictly speaking needed given the options specified?
AFAIR the rest of the options needed only to download the required host toolchain...
Alright, thanks. Closing.
Thank you very much, I also had the same issue. Changing to use seh exception model worked :).
Using:
results in
Notepad++ then pops up with:
First of all, I'm not sure why the script is downloading an i686 compiler, as I've specified --arch=x86_64. But clearly it tries to download something from the lastest release (https://github.com/niXman/mingw-builds-binaries/releases/tag/12.2.0-rt_v10-rev2 right now) which doesn't exist.
Looking at that release page, for i686 only DWARF seems to be supported. So after retrying with
--exceptions=dwarf
, it tried to fetch for a long time, after which I got hit by this: https://github.com/niXman/mingw-builds/blob/dce75a27e1302a7521636a028bc02ffeac13021a/build#L479. For which I have created PR #636.Please advise on a correct set of options to build GCC trunk.