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]

Re: [gcc-3.3] patch for IA-64 TLS abort


James E Wilson <wilson@specifixinc.com> writes:

| 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.

It is OK.  Thanks for have looked into this.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]