From 3ee540cde19fbaef1283b5b29a8101082bb5d498 Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Fri, 8 May 2009 22:47:49 +0000 Subject: [PATCH] Preliminary patch for building apr-1.3.3 on Haiku. There's still an issue to be figured out, it gives an error near the end of configure about rm not finding libtoolT, the work around for now is to create a temp symlink for libtool to /libtool --- dev-libs/apr/apr-1.3.3-haiku.diff | 201 ++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 dev-libs/apr/apr-1.3.3-haiku.diff diff --git a/dev-libs/apr/apr-1.3.3-haiku.diff b/dev-libs/apr/apr-1.3.3-haiku.diff new file mode 100644 index 000000000..9eb5f2c0e --- /dev/null +++ b/dev-libs/apr/apr-1.3.3-haiku.diff @@ -0,0 +1,201 @@ +diff -urN apr-1.3.3/build/apr_hints.m4 apr-1.3.3-haiku/build/apr_hints.m4 +--- apr-1.3.3/build/apr_hints.m4 2009-04-27 05:57:37.000000000 +0000 ++++ apr-1.3.3-haiku/build/apr_hints.m4 2009-04-28 02:01:57.000000000 +0000 +@@ -35,7 +35,7 @@ + dnl Generally, we force the setting of CC, and add flags + dnl to CFLAGS, CPPFLAGS, LIBS and LDFLAGS. + dnl +-AC_DEFUN(APR_PRELOAD, [ ++AC_DEFUN([APR_PRELOAD], [ + if test "x$apr_preload_done" != "xyes" ; then + + apr_preload_done="yes" +@@ -453,6 +453,12 @@ + APR_SETIFNULL(have_proc_invoked, [1]) + APR_SETIFNULL(apr_cv_use_lfs64, [yes]) + ;; ++ *-haiku*) ++ APR_ADDTO(LIBS, [-lnetwork]) ++ APR_SETIFNULL(apr_lock_method, [USE_POSIXSEM_SERIALIZE]) ++ APR_SETIFNULL(apr_posixsem_is_global, [yes]) ++ APR_SETIFNULL(apr_process_lock_is_global, [yes]) ++ ;; + esac + + fi +@@ -463,7 +469,7 @@ + dnl + dnl Allows us to provide a default choice of compiler which + dnl the user can override. +-AC_DEFUN(APR_CC_HINTS, [ ++AC_DEFUN([APR_CC_HINTS], [ + case "$host" in + *-apple-aux3*) + APR_SETIFNULL(CC, [gcc]) +diff -urN apr-1.3.3/build/apr_network.m4 apr-1.3.3-haiku/build/apr_network.m4 +--- apr-1.3.3/build/apr_network.m4 2009-04-27 05:57:37.000000000 +0000 ++++ apr-1.3.3-haiku/build/apr_network.m4 2009-04-27 06:00:26.000000000 +0000 +@@ -21,7 +21,7 @@ + dnl + dnl check for type in_addr + dnl +-AC_DEFUN(APR_TYPE_IN_ADDR,[ ++AC_DEFUN([APR_TYPE_IN_ADDR],[ + AC_CACHE_CHECK(for type in_addr, ac_cv_type_in_addr,[ + AC_TRY_COMPILE([ + #ifdef HAVE_SYS_TYPES_H +diff -urN apr-1.3.3/build/apr_threads.m4 apr-1.3.3-haiku/build/apr_threads.m4 +--- apr-1.3.3/build/apr_threads.m4 2009-04-27 05:57:37.000000000 +0000 ++++ apr-1.3.3-haiku/build/apr_threads.m4 2009-04-27 05:51:44.000000000 +0000 +@@ -26,7 +26,7 @@ + dnl pthreads is not available. + dnl Turn off warnings if we're using gcc. + dnl +-AC_DEFUN(APR_CHECK_PTHREADS_H, [ ++AC_DEFUN([APR_CHECK_PTHREADS_H], [ + if test "$GCC" = "yes"; then + SAVE_FL="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -w" +@@ -41,7 +41,7 @@ + dnl + dnl APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS + dnl +-AC_DEFUN(APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS, [ ++AC_DEFUN([APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS], [ + AC_CACHE_CHECK(whether pthread_getspecific takes two arguments, ac_cv_pthread_getspecific_two_args,[ + AC_TRY_COMPILE([ + #include +@@ -65,7 +65,7 @@ + dnl + dnl APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG + dnl +-AC_DEFUN(APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG, [ ++AC_DEFUN([APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG], [ + AC_CACHE_CHECK(whether pthread_attr_getdetachstate takes one argument, ac_cv_pthread_attr_getdetachstate_one_arg,[ + AC_TRY_COMPILE([ + #include +@@ -91,7 +91,7 @@ + dnl Try running a program which uses pthreads, executing the + dnl actions-if-success commands on success. + dnl +-AC_DEFUN(APR_PTHREADS_TRY_RUN, [ ++AC_DEFUN([APR_PTHREADS_TRY_RUN], [ + AC_TRY_RUN( [ + #include + #include +@@ -182,12 +182,12 @@ + dnl the checks for threading support so that they can restored if the + dnl result is not what the caller wanted. + dnl +-AC_DEFUN(APR_PTHREADS_CHECK_SAVE, [ ++AC_DEFUN([APR_PTHREADS_CHECK_SAVE], [ + apr_pthsv_CFLAGS="$CFLAGS" + apr_pthsv_LIBS="$LIBS" + ])dnl + +-AC_DEFUN(APR_PTHREADS_CHECK_RESTORE, [ ++AC_DEFUN([APR_PTHREADS_CHECK_RESTORE], [ + CFLAGS="$apr_pthsv_CFLAGS" + LIBS="$apr_pthsv_LIBS" + ])dnl +diff -urN apr-1.3.3/configure.in apr-1.3.3-haiku/configure.in +--- apr-1.3.3/configure.in 2009-04-27 05:57:37.000000000 +0000 ++++ apr-1.3.3-haiku/configure.in 2009-04-28 02:02:02.000000000 +0000 +@@ -244,7 +244,7 @@ + dnl otherwise. + + case $host in +- *os390) ++ *os390|*haiku*) + if test "$ac_test_CFLAGS" != set; then + APR_REMOVEFROM(CFLAGS,-g) + fi +@@ -479,6 +479,12 @@ + OSDIR="unix" + eolstr="\\n" + ;; ++ *haiku*) ++ OSDIR="unix" ++ eolstr="\\n" ++ AC_CHECK_LIB(bsd, getpass) ++ AC_CHECK_LIB(network, socket) ++ ;; + *) + OSDIR="unix" + eolstr="\\n" +@@ -833,6 +840,10 @@ + havemmapzero="0" + havemmapanon="0" + APR_BEGIN_DECISION([anonymous shared memory allocation method]) ++APR_IFALLYES(header:kernel/OS.h func:create_area, ++ [havebeosshm="1" ++ APR_DECIDE(USE_SHMEM_BEOS_ANON, ++ [BeOS areas])]) + APR_IFALLYES(header:sys/ipc.h header:sys/shm.h header:sys/file.h dnl + func:shmget func:shmat func:shmdt func:shmctl, + [haveshmgetanon="1" +@@ -904,6 +915,9 @@ + haveos2shm="0" + havewin32shm="0" + APR_BEGIN_DECISION([namebased memory allocation method]) ++APR_IFALLYES(header:kernel/OS.h func:create_area, ++ [havebeosshm="1" ++ APR_DECIDE(USE_SHMEM_BEOS, [BeOS areas])]) + APR_IFALLYES(header:sys/mman.h func:mmap func:munmap, + [havemmaptmp="1" + APR_DECIDE(USE_SHMEM_MMAP_TMP, +@@ -917,9 +931,6 @@ + func:shmget func:shmat func:shmdt func:shmctl, + [haveshmget="1" + APR_DECIDE(USE_SHMEM_SHMGET, [SysV IPC shmget()])]) +-APR_IFALLYES(header:kernel/OS.h func:create_area, +- [havebeosshm="1" +- APR_DECIDE(USE_SHMEM_BEOS, [BeOS areas])]) + APR_IFALLYES(header:os2.h, + [haveos2shm="1" + APR_DECIDE(USE_SHMEM_OS2, [OS/2 DosAllocSharedMem()])]) +diff -urN apr-1.3.3/test/testpoll.c apr-1.3.3-haiku/test/testpoll.c +--- apr-1.3.3/test/testpoll.c 2009-04-27 05:57:37.000000000 +0000 ++++ apr-1.3.3-haiku/test/testpoll.c 2009-04-28 02:02:28.000000000 +0000 +@@ -193,6 +193,8 @@ + recv_msg(s, 2, p, tc); + send_msg(s, sa, 1, tc); + ++ apr_sleep(apr_time_make(0, 10000)); ++ + rv = apr_poll(pollarray, SMALL_NUM_SOCKETS, &srv, 2 * APR_USEC_PER_SEC); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + check_sockets(pollarray, s, 0, 0, tc); +@@ -207,6 +209,8 @@ + + send_msg(s, sa, 2, tc); + ++ apr_sleep(apr_time_make(0, 10000)); ++ + rv = apr_poll(pollarray, SMALL_NUM_SOCKETS, &srv, 2 * APR_USEC_PER_SEC); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + check_sockets(pollarray, s, 0, 0, tc); +@@ -381,6 +385,7 @@ + int num; + + send_msg(s, sa, 0, tc); ++ apr_sleep(apr_time_make(0, 10000)); + rv = apr_pollset_poll(pollset, 0, &num, &descs); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + ABTS_INT_EQUAL(tc, 1, num); +@@ -411,6 +416,7 @@ + + send_msg(s, sa, 2, tc); + send_msg(s, sa, 5, tc); ++ apr_sleep(apr_time_make(0, 10000)); + rv = apr_pollset_poll(pollset, 0, &num, &descs); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + ABTS_INT_EQUAL(tc, 2, num); +@@ -443,6 +449,7 @@ + int num; + + send_msg(s, sa, LARGE_NUM_SOCKETS - 1, tc); ++ apr_sleep(apr_time_make(0, 10000)); + rv = apr_pollset_poll(pollset, 0, &num, &descs); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + ABTS_INT_EQUAL(tc, 1, num);