GCC-3.0.4 (pre) on AIX requires pthreads

David Edelsohn dje@watson.ibm.com
Wed Feb 20 14:19:00 GMT 2002

>>>>> Michael Matz writes:

Michael> And you really _do_ have configured gcc with --enable-threads=aix _and_
Michael> recompiled gcc?  I ask because looking at configure it indeed works as
Michael> Phil said.  It basically should have created a new gthr-default.h
Michael> including gthr-aix.h, and gcc -v should mention "Thread model: aix".  I'm
Michael> talking about 3_0_branch.

	gcc.c emits the thread model using:

      /* We could have defined THREAD_MODEL_SPEC to "%*" by default,
         but there's no point in doing all this processing just to get
         thread_model back.  */
      obstack_init (&obstack);
      do_spec_1 (THREAD_MODEL_SPEC, 0, thread_model);
      obstack_1grow (&obstack, '\0');
      thrmod = obstack_finish (&obstack);
      thrmod = thread_model;

AIX specifically defines THREAD_MODEL_SPEC to satisfy libstdc++, so the
thread model specified to configure is overridden in the gcc -v output.

	This is why I initially raised a concern about going down this
path: libstdc++ is trying to use multilibs for something which is not
orthogonal at the installed header file level.

Michael> AIX shouldn't define THREAD_MODEL_SPEC to
Michael> print "posix" if it doen't want posix, because if it's defined at all,
Michael> it's used for forming the "Thread model: xxx" message (and only for this
Micahel> AFAIC see).

	AIX does want POSIX, but only when the -pthread option is present
on the commandline.  G+ can handle this, but libstdc++ and gthr.h cannot.

Thanks, David

More information about the Libstdc++ mailing list