Opened on 09/21/20 at 19:46:08
Closed on 10/01/20 at 15:23:45
#4084 closed defect (fixed)
throwing std::runtime on PC BSP fails
Reported by: | Joel Sherrill | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | 6.1 |
Component: | tool/gcc | Version: | 6 |
Severity: | normal | Keywords: | |
Cc: | Chris Johns, Michael Davidsaver | Blocked By: | |
Blocking: |
Description
Copied from #2830 for new release milestone. The solution is to update gcc/config/i386/t-rtems. Whether for gcc 10 or gcc master is the difference on this CR versus #2830 which had to be to gcc 7 as a patch via the RSB.
Throwing a std::runtime() exception locks up.
The lock up is in the exception clean up handler where the exception object is destructed. The destructor loops distructing the std::string object. The path ends up in libstdc++-v3/include/ext/atomicity.h line 48 or exchange_and_add.
At a guess it would seem like the C++ atomics on i386 is broken or fragile.
UPDATE: This was broken when gcc i386 eliminated -mcpu in favor of -march/-mtune. The multilibs were built with -mtune and not -march.
Attachments (1)
Change History (5)
Changed on 09/21/20 at 20:17:06 by Joel Sherrill
Attachment: | gcc-10-i386march-1.diff added |
---|
comment:1 Changed on 09/21/20 at 21:14:32 by Michael Davidsaver <mdavidsaver@…>
comment:2 Changed on 09/21/20 at 21:17:08 by Joel Sherrill
Post for GCC 10 and master posted https://gcc.gnu.org/pipermail/gcc-patches/2020-September/554430.html
comment:3 Changed on 09/21/20 at 21:17:50 by Joel Sherrill
Cc: | Chris Johns Michael Davidsaver added |
---|
comment:4 Changed on 10/01/20 at 15:23:45 by Joel Sherrill
Resolution: | → fixed |
---|---|
Status: | new → closed |
I applied the GCC patch to the master and 10 release branch.
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=63a32847b0e8d14ae1eafe047ea43441f6e3a11c
Patch for GCC 10 to fix multilib compiler arguments on i386