Re: [cygwin] libjava/java/lang/natClass.cc:904: error: thread-local storage not supported for this target

2006-10-12 Thread Andrew Haley
Christian Joensson writes:
  Currently, and it's been there for a while, I get the following error
  on gcc trunk:
  
  ../../../gcc/libjava/java/lang/natClass.cc:904: error: thread-local
  storage not supported for this target
  make[3]: *** [java/lang/natClass.lo] Error 1
  make[3]: Leaving directory 
  `/usr/local/src/trunk/objdir/i686-pc-cygwin/libjava'
  make[2]: *** [all-recursive] Error 1
  make[2]: Leaving directory 
  `/usr/local/src/trunk/objdir/i686-pc-cygwin/libjava'
  make[1]: *** [all-target-libjava] Error 2
  make[1]: Leaving directory `/usr/local/src/trunk/objdir'
  make: *** [all] Error 2
  
  My system is this:
  
  Windows XP Pro/SP2 cygwin Pentium M processor 2.13GHz system with packages:
  
  binutils 20060817-1 2.17.50 20060817
  bison2.3-1  2.3
  cygwin   1.5.21-2
  dejagnu  20021217-2 1.4.2.x
  expect   20030128-1  5.26
  gcc  3.4.4-1
  gcc-ada  3.4.4-1
  gcc-g++  3.4.4-1
  gmp  4.1.4-2
  make 3.81-1
  tcltk20060202-1 8.4
  w32api   3.7-1
  
  
  and the configure was done like this:
  
   ../gcc/configure   --enable-nls --without-included-gettext
  --enable-version-specific-runtime-libs --without-x --enable-libgcj
  --with-system-zlib --enable-threads=posix
  --enable-languages=c,ada,c++,fortran,java,objc,obj-c++,treelang
  
  Now, am I doing something terribly wrong here or is this a well know bug?

That __thread variable is surrounded by HAVE_TLS.  There is a
configure test which simply compiles this line:

__thread int foo;

and that configure test must succeed for HAVE_TLS to be set.  So, to
fix this we need to find out if that program did compile, and if so,
how.

--disable-tls in the configure line might solve your problem.

Andrew.



Re: [cygwin] libjava/java/lang/natClass.cc:904: error: thread-local storage not supported for this target

2006-10-12 Thread Brian Dessent
Andrew Haley wrote:

 That __thread variable is surrounded by HAVE_TLS.  There is a
 configure test which simply compiles this line:
 
 __thread int foo;
 
 and that configure test must succeed for HAVE_TLS to be set.  So, to
 fix this we need to find out if that program did compile, and if so,
 how.

Might this have to do with
http://gcc.gnu.org/ml/gcc-patches/2006-10/msg00208.html which was
committed for a brief while and then subsequently reverted on
http://gcc.gnu.org/ml/gcc-patches/2006-10/msg00461.html?  The
configure machinery in libjava might not be equipped to deal with this
kind of dependency and could require a make clean.

 --disable-tls in the configure line might solve your problem.

That too.

Brian