https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86022
Bug ID: 86022 Summary: TCB size calculated in ThreadDescriptorSize() is wrong for glibc-2.14 Product: gcc Version: 8.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: b7.10110111 at gmail dot com CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- In ThreadDescriptorSize(), I currently see: else if (minor <= 13) val = FIRST_32_SECOND_64(1168, 2304); else val = FIRST_32_SECOND_64(1216, 2304); This leads to assertion failure on glibc-2.14, with the same message as in bug 60038. Actual values for glibc 2.14 are the same as for 2.13: 1168 for i386 and 2304 for x86_64. I checked this by appending the following to glibc-2.14.1/nptl/descr.h: typedef int TCB_SIZE_2304[sizeof(struct pthread)==2304 ? -1 : 1]; typedef int TCB_SIZE_1168[sizeof(struct pthread)==1168 ? -1 : 1]; and getting corresponding error when compiling glibc on a 32-bit and on a 64-bit x86 Kubuntu machines. I suppose the fix should be to change "minor <= 13" to "minor <= 14".