This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This is for PR 20286, which is an IA-64 abort with a testcase that redefines an external __thread variable as static __thread. This testcase hits the abort in ia64_encode_section_info which aborts if a thread variable changes state. This is intended to catch accidental transitions between thread data and small data. In this case, it is accidentally catching an internal TLS transition from INITIAL_EXEC to LOCAL_EXEC, which is an allowable transition. This patch fixes the problem by only calling the abort if either state involves small data. This patch applies only to gcc-3.3. This was fixed in gcc-3.4 by using default_encode_section_info, which is not present in gcc-3.3. Since pulling all of this into gcc-3.3 is a rather large patch, including non-IA-64 changes, I believe it is better to just add a gcc-3.3 specific fix to the ia64.c file. This was tested with a bootstrap and make check with and without the patch on ia64-linux using the top of the gcc-3.3 branch. There were no regressions. -- Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
Attachment:
patch.ia64.tls
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |