You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2011/11/23 16:34:02 UTC
svn commit: r1205445 - in /tomcat/native/trunk/native: BUILDING
build/tcnative.m4 configure.in src/pool.c
Author: mturk
Date: Wed Nov 23 15:34:01 2011
New Revision: 1205445
URL: http://svn.apache.org/viewvc?rev=1205445&view=rev
Log:
Axe guessing JDK and add unmanaged pool api
Modified:
tomcat/native/trunk/native/BUILDING
tomcat/native/trunk/native/build/tcnative.m4
tomcat/native/trunk/native/configure.in
tomcat/native/trunk/native/src/pool.c
Modified: tomcat/native/trunk/native/BUILDING
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/BUILDING?rev=1205445&r1=1205444&r2=1205445&view=diff
==============================================================================
--- tomcat/native/trunk/native/BUILDING (original)
+++ tomcat/native/trunk/native/BUILDING Wed Nov 23 15:34:01 2011
@@ -19,11 +19,13 @@
configure --with-apr=apr_install_location --with-ssl=openssl_install_location
make
- Building from the cvs tree:
+ Building from the svn tree:
sh buildconf --with-apr=apr_source_location.
configure --with-apr=apr_install_location --with-ssl=openssl_install_location
make
+ Note that version 1.2.x requires at least apr-1.4.x
+
Testing the build:
The make should produce a .so file named libtcnative-1.so.
Build the jar containing the examples by
Modified: tomcat/native/trunk/native/build/tcnative.m4
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/build/tcnative.m4?rev=1205445&r1=1205444&r2=1205445&view=diff
==============================================================================
--- tomcat/native/trunk/native/build/tcnative.m4 (original)
+++ tomcat/native/trunk/native/build/tcnative.m4 Wed Nov 23 15:34:01 2011
@@ -21,7 +21,7 @@ dnl
AC_DEFUN(TCN_FIND_APR,[
dnl use the find_apr.m4 script to locate APR. sets apr_found and apr_config
- APR_FIND_APR(,,,[1])
+ APR_FIND_APR(,,1,[1])
if test "$apr_found" = "no"; then
AC_MSG_ERROR(APR could not be located. Please use the --with-apr option.)
fi
@@ -61,205 +61,77 @@ dnl Detection of JDK location and Java P
dnl result goes in JAVA_HOME / JAVA_PLATFORM (2 -> 1.2 and higher)
dnl
dnl --------------------------------------------------------------------------
-AC_DEFUN(
- [TCN_FIND_JDK],
- [
- tempval=""
- AC_MSG_CHECKING([for JDK location (please wait)])
- if test -n "${JAVA_HOME}" ; then
- JAVA_HOME_ENV="${JAVA_HOME}"
+AC_DEFUN([TCN_FIND_JAVA],[
+ AC_ARG_WITH(java,[ --with-java-home=DIR Specify the location of your JDK installation],[
+ AC_MSG_CHECKING([JAVA_HOME])
+ if test -d "$withval"
+ then
+ JAVA_HOME="$withval"
+ AC_MSG_RESULT([$JAVA_HOME])
else
- JAVA_HOME_ENV=""
+ AC_MSG_RESULT([failed])
+ AC_MSG_ERROR([$withval is not a directory])
fi
-
- JAVA_HOME=""
- JAVA_PLATFORM=""
-
- AC_ARG_WITH(
- [java-home],
- [ --with-java-home=DIR Location of JDK directory.],
- [
-
- # This stuff works if the command line parameter --with-java-home was
- # specified, so it takes priority rightfully.
-
- tempval=${withval}
-
- if test ! -d "${tempval}" ; then
- AC_MSG_ERROR(Not a directory: ${tempval})
- fi
-
- JAVA_HOME=${tempval}
- AC_MSG_RESULT(${JAVA_HOME})
- ],
- [
- # This works if the parameter was NOT specified, so it's a good time
- # to see what the enviroment says.
- # Since Sun uses JAVA_HOME a lot, we check it first and ignore the
- # JAVA_HOME, otherwise just use whatever JAVA_HOME was specified.
-
- if test -n "${JAVA_HOME_ENV}" ; then
- JAVA_HOME=${JAVA_HOME_ENV}
- AC_MSG_RESULT(${JAVA_HOME_ENV} from environment)
- fi
- ])
-
- if test -z "${JAVA_HOME}" ; then
-
- # Oh well, nobody set neither JAVA_HOME nor JAVA_HOME, have to guess
- # The following code is based on the code submitted by Henner Zeller
- # for ${srcdir}/src/scripts/package/rpm/ApacheJServ.spec
- # Two variables will be set as a result:
- #
- # JAVA_HOME
- # JAVA_PLATFORM
- AC_MSG_CHECKING([Try to guess JDK location])
-
- for JAVA_PREFIX in /usr/local /usr/local/lib /usr /usr/lib /opt /usr/java /System/Library/Frameworks/JavaVM.framework/Versions/ ; do
-
- for JAVA_PLATFORM in 6 5 4 3 2 ; do
-
- for subversion in .9 .8 .7 .6 .5 .4 .3 .2 .1 .0 "" ; do
-
- for VARIANT in IBMJava2- java java- jdk jdk- ""; do
- GUESS="${JAVA_PREFIX}/${VARIANT}1.${JAVA_PLATFORM}${subversion}"
-dnl AC_MSG_CHECKING([${GUESS}])
- if test -d "${GUESS}/bin" & test -d "${GUESS}/include" ; then
- JAVA_HOME="${GUESS}"
- AC_MSG_RESULT([${GUESS}])
- break
- fi
- if test -d "${GUESS}/Commands" & test -d "${GUESS}/Headers" ; then
- JAVA_HOME="${GUESS}"
- AC_MSG_RESULT([${GUESS}])
- break
- fi
- done
-
- if test -n "${JAVA_HOME}" ; then
- break;
- fi
-
- done
-
- if test -n "${JAVA_HOME}" ; then
- break;
- fi
-
- done
-
- if test -n "${JAVA_HOME}" ; then
- break;
- fi
-
- done
-
- if test ! -n "${JAVA_HOME}" ; then
- AC_MSG_ERROR(can't locate a valid JDK location)
+ AC_SUBST(JAVA_HOME)
+ ])
+ if test "x$JAVA_HOME" = x
+ then
+ AC_MSG_CHECKING([for JDK location])
+ # Oh well, nobody set JAVA_HOME, have to guess
+ # Check if we have java in the PATH.
+ java_prog="`which java 2>/dev/null || true`"
+ if test "x$java_prog" != x
+ then
+ java_bin="`dirname $java_prog`"
+ java_top="`dirname $java_bin`"
+ if test -f "$java_top/include/jni.h"
+ then
+ JAVA_HOME="$java_top"
+ AC_MSG_RESULT([${java_top}])
fi
-
fi
+ fi
+ if test x"$JAVA_HOME" = x
+ then
+ AC_MSG_ERROR([Java Home not defined. Rerun with --with-java-home=[...] parameter])
+ fi
+])
- if test -n "${JAVA_PLATFORM}"; then
- AC_MSG_RESULT(Java Platform detected - 1.${JAVA_PLATFORM})
- else
- AC_MSG_CHECKING(Java platform)
- fi
-
- AC_ARG_WITH(java-platform,
- [ --with-java-platform[=2] Force the Java platform
- (value is 1 for 1.1.x or 2 for 1.2.x or greater)],
- [
- case "${withval}" in
- "1"|"2")
- JAVA_PLATFORM=${withval}
- ;;
- *)
- AC_MSG_ERROR(invalid java platform provided)
- ;;
- esac
- ],
- [
- if test -n "${JAVA_PLATFORM}"; then
- AC_MSG_RESULT(Java Platform detected - 1.${JAVA_PLATFORM})
- else
- AC_MSG_CHECKING(Java platform)
- fi
- ])
-
- AC_MSG_RESULT(${JAVA_PLATFORM})
-
- unset tempval
- ])
-
-
-AC_DEFUN(
- [TCN_FIND_JDK_OS],
- [
- tempval=""
- JAVA_OS=""
- AC_ARG_WITH(os-type,
- [ --with-os-type[=SUBDIR] Location of JDK os-type subdirectory.],
- [
- tempval=${withval}
-
- if test ! -d "${JAVA_HOME}/${tempval}" ; then
- AC_MSG_ERROR(Not a directory: ${JAVA_HOME}/${tempval})
- fi
-
- JAVA_OS = ${tempval}
- ],
- [
- AC_MSG_CHECKING(os_type directory)
- JAVA_OS=NONE
- if test -f ${JAVA_HOME}/${JAVA_INC}/jni_md.h; then
- JAVA_OS=""
- else
- for f in ${JAVA_HOME}/${JAVA_INC}/*/jni_md.h; do
- if test -f $f; then
- JAVA_OS=`dirname ${f}`
- JAVA_OS=`basename ${JAVA_OS}`
- echo " ${JAVA_OS}"
- fi
- done
- if test "${JAVA_OS}" = "NONE"; then
- AC_MSG_RESULT(Cannot find jni_md.h in ${JAVA_HOME}/${OS})
- AC_MSG_ERROR(You should retry --with-os-type=SUBDIR)
- fi
- fi
- ])
- ])
-
-dnl check for sableVM
-dnl (copied from daemon/src/native/unix/support/apjava.m4)
-AC_DEFUN(
- [TCN_SABLEVM],
+AC_DEFUN([TCN_FIND_JDK_OS],[
+ tempval=""
+ JAVA_OS=""
+ AC_ARG_WITH(os-type,[ --with-os-type[=SUBDIR] Location of JDK os-type subdirectory.],
[
- if test x"$JAVA_HOME" != x
- then
- AC_PATH_PROG(SABLEVM,sablevm,NONE,$JAVA_HOME/bin)
- if test "$SABLEVM" != "NONE"
+ tempval=$withval
+ if test ! -d "$JAVA_HOME/$tempval"
then
- AC_MSG_RESULT([Using sableVM: $SABLEVM])
- CFLAGS="$CFLAGS -DHAVE_SABLEVM"
- NEED_JNI_MD=no
+ AC_MSG_ERROR(Not a directory: ${JAVA_HOME}/${tempval})
fi
- fi
- ])
-dnl check for IBM J9VM
-AC_DEFUN(
- [TCN_J9VM],
+ JAVA_OS=$tempval
+ ],
[
- if test x"$JAVA_HOME" != x
- then
- J9VM=`$JAVA_HOME/bin/java -version 2>&1 | grep J9VM`
- if test x"$J9VM" != x
+ AC_MSG_CHECKING(for JDK os include directory)
+ JAVA_OS=NONE
+ if test -f $JAVA_HOME/$JAVA_INC/jni_md.h
then
- AC_MSG_RESULT([Using J9VM: $J9VM])
- NEED_JNI_MD=no
+ JAVA_OS=""
+ else
+ for f in $JAVA_HOME/$JAVA_INC/*/jni_md.h
+ do
+ if test -f $f; then
+ JAVA_OS=`dirname $f`
+ JAVA_OS=`basename $JAVA_OS`
+ echo " $JAVA_OS"
+ break
+ fi
+ done
+ if test "x$JAVA_OS" = "xNONE"; then
+ AC_MSG_RESULT(Cannot find jni_md.h in ${JAVA_HOME}/${OS})
+ AC_MSG_ERROR(You should retry --with-os-type=SUBDIR)
+ fi
fi
- fi
])
+])
dnl TCN_HELP_STRING(LHS, RHS)
dnl Autoconf 2.50 can not handle substr correctly. It does have
Modified: tomcat/native/trunk/native/configure.in
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/configure.in?rev=1205445&r1=1205444&r2=1205445&view=diff
==============================================================================
--- tomcat/native/trunk/native/configure.in (original)
+++ tomcat/native/trunk/native/configure.in Wed Nov 23 15:34:01 2011
@@ -214,6 +214,7 @@ case $host in
esac
TCN_FIND_APR_FEATURE([apr_pool_pre_cleanup_register],[POOL_PRE_CLEANUP])
+TCN_FIND_APR_FEATURE([apr_pool_create_unmanaged_ex],[POOL_UNMANAGED])
TCN_FIND_APR_FEATURE([apr_pollset_wakeup],[POLLSET_WAKEUP])
AC_SUBST(TCNATIVE_EXPORT_LIBS)
Modified: tomcat/native/trunk/native/src/pool.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/pool.c?rev=1205445&r1=1205444&r2=1205445&view=diff
==============================================================================
--- tomcat/native/trunk/native/src/pool.c (original)
+++ tomcat/native/trunk/native/src/pool.c Wed Nov 23 15:34:01 2011
@@ -56,6 +56,24 @@ cleanup:
return P2J(n);
}
+#if defined(HAVE_POOL_UNMANAGED)
+TCN_IMPLEMENT_CALL(jlong, Pool, unmanaged)(TCN_STDARGS)
+{
+ apr_pool_t *n;
+
+ UNREFERENCED(o);
+ TCN_THROW_IF_ERR(apr_pool_create_unmanaged(&n), n);
+cleanup:
+ return P2J(n);
+}
+#else
+TCN_IMPLEMENT_CALL(jlong, Pool, unmanaged)(TCN_STDARGS)
+{
+ UNREFERENCED_STDARGS;
+ return 0;
+}
+#endif
+
TCN_IMPLEMENT_CALL(void, Pool, clear)(TCN_STDARGS, jlong pool)
{
apr_pool_t *p = J2P(pool, apr_pool_t *);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org