patch for JamVM on systems which lack TLS

View: New views
1 Messages — Rating Filter:   Alert me  

patch for JamVM on systems which lack TLS

by Robert Dodier :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I am building JamVM 1.5.2 for a ARM cpu (gumstix buildroot)
and I get an error about __tls_get_addr being undefined.
Messages found on the Interwebs suggest the problem is
that the version of Ulibc which I'm using doesn't support TLS
(thead local storage). Instead of trying to update Ulibc,
I' m just disabling the need for TLS by cutting out the test
for TLS in the configure script. (configure emits #define HAVE_TLS 1
into src/config.h. Changing that to #undef HAVE_TLS or omitting
it disables the code which generates the __tls_get_addr reference.
I don't know why the TLS test succeeds when maybe it should fail.)

So here's a patch for configure.ac which disables the TLS test.
I don't claim this is a good idea but I offer this in case someone
else runs into the same problem.

best

Robert Dodier

--- build_arm_nofpu/jamvm-1.5.2/configure.ac-original   2009-02-03
18:52:35.000000000 -0700
+++ build_arm_nofpu/jamvm-1.5.2/configure.ac    2009-04-02
10:31:35.000000000 -0600
@@ -279,17 +279,6 @@
 AC_CHECK_FUNCS(gettimeofday strtol setlocale)
 AM_LC_MESSAGES

-dnl TLS is currently disabled on Solaris.  The test program links, but
-dnl JamVM doesn't run correctly (tested on OpenSolaris 2008.11).
-
-if test "$host_os" != solaris; then
-    AC_MSG_CHECKING([for __thread])
-    AC_LINK_IFELSE([AC_LANG_PROGRAM(,[static __thread int foo = 0])],
-        [AC_DEFINE([HAVE_TLS],1,[__thread supported by compiler])
-         AC_MSG_RESULT([yes])],
-        [AC_MSG_RESULT([no])])
-fi
-
 AM_MAINTAINER_MODE

 AC_CONFIG_LINKS(src/arch.h:src/arch/$arch.h)

------------------------------------------------------------------------------
_______________________________________________
Jamvm-general mailing list
Jamvm-general@...
https://lists.sourceforge.net/lists/listinfo/jamvm-general