configure.in (case $THREADS): Add *-*-freebsd* configuration.

* configure.in (case $THREADS): Add *-*-freebsd* configuration.
	(HAVE_GETHOSTBYADDR_R): Create a valid, non-optimal
	configuration when gethostbyaddr_r exists yet no prototype
	exists in netdb.h.
	* configure: Rebuilt.
	* posix-threads.cc (INTR): Reuse path for LINUX_THREADS
	with FREEBSD_THREADS.  However, comment different reason.

From-SVN: r46476
This commit is contained in:
Loren J. Rittle 2001-10-24 21:57:08 +00:00 committed by Loren J. Rittle
parent c163d21d79
commit da97915227
4 changed files with 370 additions and 305 deletions

View File

@ -1,3 +1,13 @@
2001-10-16 Loren J. Rittle <ljrittle@acm.org>
* configure.in (case $THREADS): Add *-*-freebsd* configuration.
(HAVE_GETHOSTBYADDR_R): Create a valid, non-optimal
configuration when gethostbyaddr_r exists yet no prototype
exists in netdb.h.
* configure: Rebuilt.
* posix-threads.cc (INTR): Reuse path for LINUX_THREADS
with FREEBSD_THREADS. However, comment different reason.
2001-10-24 Tom Tromey <tromey@redhat.com>
Warren Levy <warrenl@redhat.com>

633
libjava/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -333,6 +333,27 @@ case "$THREADS" in
*-*-cygwin*)
# Don't set THREADLIBS here. Cygwin doesn't have -lpthread.
;;
changequote(<<,>>)
*-*-freebsd[1234]*)
changequote([,])
# Before FreeBSD 5, it didn't have -lpthread (or any library which
# merely adds pthread_* functions) but it does have a -pthread switch
# which is required at link-time to select -lc_r *instead* of -lc.
THREADLIBS=-pthread
# Don't set THREADSPEC here as might be expected since -pthread is
# not processed when found within a spec file, it must come from
# the command line. For now, the user must provide the -pthread
# switch to link code compiled with gcj. In future, consider adding
# support for weak references to pthread_* functions ala gthr.h API.
THREADSPEC='%{!pthread: %eUnder this configuration, the user must provide -pthread when linking.}'
;;
*-*-freebsd*)
# FreeBSD 5 implements a model much closer to other modern UNIX
# which support threads. However, it still does not support
# -lpthread.
THREADLIBS=-pthread
THREADSPEC=-lc_r
;;
*)
THREADLIBS=-lpthread
THREADSPEC=-lpthread
@ -479,13 +500,19 @@ else
fi
])
# FIXME: libjava source code expects to find a prototype for
# gethostbyaddr_r in netdb.h. The outer check ensures that
# HAVE_GETHOSTBYADDR_R will not be defined if the prototype fails
# to exist where expected. (The root issue: AC_CHECK_FUNCS assumes C
# linkage check is enough, yet C++ code requires proper prototypes.)
AC_EGREP_HEADER(gethostbyaddr_r, netdb.h, [
AC_CHECK_FUNCS(gethostbyaddr_r, [
AC_DEFINE(HAVE_GETHOSTBYADDR_R)
# There are two different kinds of gethostbyaddr_r.
# We look for the one that returns `int'.
# Hopefully this check is robust enough.
AC_EGREP_HEADER(int.*gethostbyaddr_r, netdb.h, [
AC_DEFINE(GETHOSTBYADDR_R_RETURNS_INT)])])
AC_DEFINE(GETHOSTBYADDR_R_RETURNS_INT)])])])
AC_CHECK_FUNCS(gethostname, [
AC_DEFINE(HAVE_GETHOSTNAME)

View File

@ -55,8 +55,9 @@ static pthread_cond_t daemon_cond;
static int non_daemon_count;
// The signal to use when interrupting a thread.
#ifdef LINUX_THREADS
#if defined(LINUX_THREADS) || defined(FREEBSD_THREADS)
// LinuxThreads (prior to glibc 2.1) usurps both SIGUSR1 and SIGUSR2.
// GC on FreeBSD uses both SIGUSR1 and SIGUSR2.
# define INTR SIGHUP
#else /* LINUX_THREADS */
# define INTR SIGUSR2