This is the mail archive of the gcc-bugs@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]

[Bug libstdc++/53504] New: configure script of platform TLS support.


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53504

             Bug #: 53504
           Summary: configure script of platform TLS support.
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: lyricconch@gmail.com


file: gcc-4.70/stdc++v3/configure
line: 51506

#include <pthread.h>
        __thread int a;
        static int *volatile a_in_other_thread;
        static void *
        thread_func (void *arg)
        {
          a_in_other_thread = &a;
          return (void *)0;
        }
int
main ()
{
pthread_t thread;
        void *thread_retval;
        int *volatile a_in_main_thread;
        a_in_main_thread = &a;
        if (pthread_create (&thread, (pthread_attr_t *)0,
                    thread_func, (void *)0))
          return 0;
        if (pthread_join (thread, &thread_retval))
          return 0;
        return (a_in_other_thread == a_in_main_thread);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  gcc_cv_have_tls=yes
else
  gcc_cv_have_tls=no
fi

1. if we have TLS support, &a will be difference value in main() and
hread_func(), which means (a_in_other_thread == a_in_main_thread) eval to
false.
so, with TLS support => program exit with 0.

2. if "pthread_create" or "pthread_join" fails, program also exit with 0. "no
threads, no TLS". 
so, without TLS support => program exit with 0.

whatever ac_fn_c_try_run get, this can not be right.


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