Add pthread and objc-load for Darwin

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10376 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2001-07-10 03:23:39 +00:00
parent 6fab8be106
commit 3223ce1b17
9 changed files with 767 additions and 131 deletions

View file

@ -1,3 +1,12 @@
2001-07-09 Adam Fedor <fedor@gnu.org>
* configure.in: Check for pthread.h - for compiling on Darwin.
* Source/GNUmakefile: Compile thr-pthread.m conditionally.
* Source/thr-pthread.m: New file.
* Source/null-load.h (__objc_dynamic_get_symbol_path): New def.
* Source/objc-load.m: Use NeXT load methods on Darwin.
2001-07-07 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSUser.m: NSSearchPathForDirectoriesInDomains() Set up

View file

@ -96,7 +96,12 @@ preface.m \
mframe.m
ifeq ($(OBJC_RUNTIME), NeXT)
GNU_MFILES += thr-mach.m objc-gnu2next.m
GNU_MFILES += objc-gnu2next.m
ifeq ($(HAVE_PTHREAD_H), yes)
GNU_MFILES += thr-pthread.m
else
GNU_MFILES += thr-mach.m
endif
endif
ifeq ($(GNUSTEP_TARGET_OS), mingw32)

View file

@ -70,4 +70,10 @@ __objc_dynamic_list_undefined_symbols(void)
return NULL;
}
static char *
__objc_dynamic_get_symbol_path(dl_handle_t handle, dl_symbol_t symbol)
{
return NULL;
}
#endif /* __null_load_h_INCLUDE */

View file

@ -34,6 +34,7 @@
#include <objc/objc-api.h>
#ifndef NeXT_RUNTIME
#include <objc/objc-list.h>
#include <objc/objc-load.h>
#endif
#include <config.h>
#include <Foundation/objc-load.h>
@ -44,6 +45,7 @@
#include "dynamic-load.h"
/* From the objc runtime -- needed when invalidating the dtable */
#ifndef NeXT_RUNTIME
extern void __objc_install_premature_dtable(Class);
extern void sarray_free(struct sarray*);
#ifndef HAVE_OBJC_GET_UNINSTALLED_DTABLE
@ -57,6 +59,7 @@ objc_get_uninstalled_dtable()
return __objc_uninstalled_dtable;
}
#endif
#endif /* ! NeXT */
/* Declaration from NSBundle.m */
const char *objc_executable_location( void );
@ -98,6 +101,7 @@ objc_check_undefineds(FILE *errorStream)
static void
objc_invalidate_dtable(Class class)
{
#ifndef NeXT_RUNTIME
Class s;
if (class->dtable == objc_get_uninstalled_dtable())
@ -107,6 +111,7 @@ objc_invalidate_dtable(Class class)
__objc_install_premature_dtable(class);
for (s=class->subclass_list; s; s=s->sibling_class)
objc_invalidate_dtable(s);
#endif
}
/* Initialize for dynamic loading */
@ -154,6 +159,11 @@ objc_load_module(
char *debugFilename)
{
#ifdef NeXT_RUNTIME
int errcode;
dynamic_loaded = YES;
return objc_loadModule(filename, loadCallback, &errcode);
#else
typedef void (*void_fn)();
dl_handle_t handle;
#if !defined(__ELF__) && !defined(CON_AUTOLOAD)
@ -177,9 +187,7 @@ objc_load_module(
__objc_dynamic_error(errorStream, "Error (objc-load)");
return 1;
}
#ifndef NeXT_RUNTIME
dynamic_handles = list_cons(handle, dynamic_handles);
#endif
/* If there are any undefined symbols, we can't load the bundle */
if (objc_check_undefineds(errorStream)) {
@ -208,6 +216,7 @@ objc_load_module(
_objc_load_callback = 0;
_objc_load_load_callback = 0;
return 0;
#endif
}
long
@ -251,7 +260,7 @@ objc_unload_modules(
}
NSString *
objc_get_symbol_path(Class theClass, Category *theCategory)
objc_get_symbol_path(Class theClass, struct objc_category *theCategory)
{
const char *ret;
char buf[125], *p = buf;

View file

@ -37,6 +37,12 @@ int __objc_thread_exit_status = 0;
/* Flag which lets us know if we ever became multi threaded */
int __objc_is_multi_threaded = 0;
/* Number of threads alive */
int __objc_runtime_threads_alive = 0;
/* Thread create/exit mutex */
struct objc_mutex* __objc_runtime_mutex = NULL;
/* The hook function called when the runtime becomes multi threaded */
objc_thread_callback _objc_became_multi_threaded = NULL;

539
Source/thr-pthread.m Normal file
View file

@ -0,0 +1,539 @@
/* GNU Objective C Runtime Thread Implementation for PCThreads under Darwin.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Contributed by Scott Christley <scottc@net-community.com>
Condition functions added by: Mircea Oancea <mircea@first.elcom.pub.ro>
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.
GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, if you link this library with files compiled with
GCC to produce an executable, this does not cause the resulting executable
to be covered by the GNU General Public License. This exception does not
however invalidate any other reasons why the executable file might be
covered by the GNU General Public License. */
#include <pthread.h>
#include <base/objc-gnu2next.h>
#include <base/thr-mach.h>
/* Key structure for maintaining thread specific storage */
static pthread_key_t _objc_thread_storage;
/* Global exit status. */
int __objc_thread_exit_status = 0;
/* Number of threads alive */
int __objc_runtime_threads_alive = 0;
/* Thread create/exit mutex */
struct objc_mutex* __objc_runtime_mutex = NULL;
/* Flag which lets us know if we ever became multi threaded */
int __objc_is_multi_threaded = 0;
/* The hook function called when the runtime becomes multi threaded */
objc_thread_callback _objc_became_multi_threaded = NULL;
/*
Use this to set the hook function that will be called when the
runtime initially becomes multi threaded.
The hook function is only called once, meaning only when the
2nd thread is spawned, not for each and every thread.
It returns the previous hook function or NULL if there is none.
A program outside of the runtime could set this to some function so
it can be informed; for example, the GNUstep Base Library sets it
so it can implement the NSBecomingMultiThreaded notification.
*/
objc_thread_callback objc_set_thread_callback(objc_thread_callback func)
{
objc_thread_callback temp = _objc_became_multi_threaded;
_objc_became_multi_threaded = func;
return temp;
}
/*
Private functions
These functions are utilized by the frontend, but they are not
considered part of the public interface.
*/
/*
First function called in a thread, starts everything else.
This function is passed to the backend by objc_thread_detach
as the starting function for a new thread.
*/
struct __objc_thread_start_state
{
SEL selector;
id object;
id argument;
};
static volatile void
__objc_thread_detach_function(struct __objc_thread_start_state *istate)
{
/* Valid state? */
if (istate) {
id (*imp)(id,SEL,id);
SEL selector = istate->selector;
id object = istate->object;
id argument = istate->argument;
/* Don't need anymore so free it */
objc_free(istate);
/* Clear out the thread local storage */
objc_thread_set_data(NULL);
/* Check to see if we just became multi threaded */
if (!__objc_is_multi_threaded)
{
__objc_is_multi_threaded = 1;
/* Call the hook function */
if (_objc_became_multi_threaded != NULL)
(*_objc_became_multi_threaded)();
}
/* Call the method */
if ((imp = (id(*)(id, SEL, id))objc_msg_lookup(object, selector)))
(*imp)(object, selector, argument);
else
objc_error(object, OBJC_ERR_UNIMPLEMENTED,
"objc_thread_detach called with bad selector.\n");
}
else
objc_error(nil, OBJC_ERR_BAD_STATE,
"objc_thread_detach called with NULL state.\n");
/* Exit the thread */
objc_thread_exit();
}
/*
Frontend functions
These functions constitute the public interface to the Objective-C thread
and mutex functionality.
*/
/* Frontend thread functions */
/*
Detach a new thread of execution and return its id. Returns NULL if fails.
Thread is started by sending message with selector to object. Message
takes a single argument.
*/
objc_thread_t
objc_thread_detach(SEL selector, id object, id argument)
{
struct __objc_thread_start_state *istate;
objc_thread_t thread_id = NULL;
/* Allocate the state structure */
if (!(istate = (struct __objc_thread_start_state *)
objc_malloc(sizeof(*istate))))
return NULL;
/* Initialize the state structure */
istate->selector = selector;
istate->object = object;
istate->argument = argument;
/* lock access */
objc_mutex_lock(__objc_runtime_mutex);
/* Call the backend to spawn the thread */
if ((thread_id = __objc_thread_detach((void *)__objc_thread_detach_function,
istate)) == NULL)
{
/* failed! */
objc_mutex_unlock(__objc_runtime_mutex);
objc_free(istate);
return NULL;
}
/* Increment our thread counter */
__objc_runtime_threads_alive++;
objc_mutex_unlock(__objc_runtime_mutex);
return thread_id;
}
/* Backend initialization functions */
/* Initialize the threads subsystem. */
int
__objc_init_thread_system(void)
{
/* Initialize the thread storage key */
return pthread_key_create(&_objc_thread_storage, NULL);
}
/* Close the threads subsystem. */
int
__objc_close_thread_system(void)
{
/* Destroy the thread storage key */
/* Not implemented yet */
/* return pthread_key_delete(&_objc_thread_storage); */
return 0;
}
/* Backend thread functions */
/* Create a new thread of execution. */
objc_thread_t
__objc_thread_detach(void (*func)(void *arg), void *arg)
{
objc_thread_t thread_id;
pthread_t new_thread_handle;
if ( !(pthread_create(&new_thread_handle, NULL, (void *)func, arg)) )
thread_id = *(objc_thread_t *)&new_thread_handle;
else
thread_id = NULL;
return thread_id;
}
/* Set the current thread's priority. */
int
objc_thread_set_priority(int priority)
{
/* Not implemented yet */
return -1;
}
/* Return the current thread's priority. */
int
objc_thread_get_priority(void)
{
/* Not implemented yet */
return OBJC_THREAD_INTERACTIVE_PRIORITY;
}
/* Yield our process time to another thread. */
void
objc_thread_yield(void)
{
pthread_yield(NULL);
}
/* Terminate the current thread. */
int
objc_thread_exit(void)
{
/* Decrement our counter of the number of threads alive */
objc_mutex_lock(__objc_runtime_mutex);
__objc_runtime_threads_alive--;
objc_mutex_unlock(__objc_runtime_mutex);
/* exit the thread */
pthread_exit(&__objc_thread_exit_status);
/* Failed if we reached here */
return -1;
}
/* Returns an integer value which uniquely describes a thread. */
objc_thread_t
objc_thread_id(void)
{
pthread_t self = pthread_self();
return *(objc_thread_t *)&self;
}
/* Sets the thread's local storage pointer. */
int
objc_thread_set_data(void *value)
{
return pthread_setspecific(_objc_thread_storage, value);
}
/* Returns the thread's local storage pointer. */
void *
objc_thread_get_data(void)
{
return pthread_getspecific(_objc_thread_storage);
}
/* Backend mutex functions */
/* Allocate a mutex. */
objc_mutex_t
objc_mutex_allocate(void)
{
objc_mutex_t mutex;
/* Allocate the mutex structure */
if (!(mutex = (objc_mutex_t)objc_malloc(sizeof(struct objc_mutex))))
return NULL;
/* Call backend to create the mutex */
if (pthread_mutex_init((pthread_mutex_t *)(&(mutex->backend)), NULL))
{
/* failed! */
objc_free(mutex);
return NULL;
}
/* Initialize mutex */
mutex->owner = NULL;
mutex->depth = 0;
return mutex;
}
/* Deallocate a mutex. */
int
objc_mutex_deallocate(objc_mutex_t mutex)
{
int depth;
/* Valid mutex? */
if (!mutex)
return -1;
/* Acquire lock on mutex */
depth = objc_mutex_lock(mutex);
if (pthread_mutex_destroy((pthread_mutex_t *)(&(mutex->backend))))
return -1;
/* Free the mutex structure */
objc_free(mutex);
/* Return last depth */
return depth;
}
/* Grab a lock on a mutex. */
int
objc_mutex_lock(objc_mutex_t mutex)
{
objc_thread_t thread_id;
int status;
/* Valid mutex? */
if (!mutex)
return -1;
/* If we already own the lock then increment depth */
thread_id = objc_thread_id();
if (mutex->owner == thread_id)
return ++mutex->depth;
/* Call the backend to lock the mutex */
status = pthread_mutex_lock((pthread_mutex_t *)(&(mutex->backend)));
/* Failed? */
if (status)
return status;
/* Successfully locked the thread */
mutex->owner = thread_id;
return mutex->depth = 1;
}
/* Try to grab a lock on a mutex. */
int
objc_mutex_trylock(objc_mutex_t mutex)
{
objc_thread_t thread_id;
int status;
/* Valid mutex? */
if (!mutex)
return -1;
/* If we already own the lock then increment depth */
thread_id = objc_thread_id();
if (mutex->owner == thread_id)
return ++mutex->depth;
/* Call the backend to try to lock the mutex */
status = pthread_mutex_trylock((pthread_mutex_t *)(&(mutex->backend)));
/* Failed? */
if (status)
return status;
/* Successfully locked the thread */
mutex->owner = thread_id;
return mutex->depth = 1;
}
/* Unlock the mutex */
int
objc_mutex_unlock(objc_mutex_t mutex)
{
objc_thread_t thread_id;
/* Valid mutex? */
if (!mutex)
return -1;
/* If another thread owns the lock then abort */
thread_id = objc_thread_id();
if (mutex->owner != thread_id)
return -1;
/* Decrement depth and return */
if (mutex->depth > 1)
return --mutex->depth;
/* Depth down to zero so we are no longer the owner */
mutex->depth = 0;
mutex->owner = NULL;
/* Have the backend unlock the mutex */
return pthread_mutex_unlock((pthread_mutex_t *)(&(mutex->backend)));
}
/* Backend condition mutex functions */
/* Allocate a condition. */
objc_condition_t
objc_condition_allocate(void)
{
objc_condition_t condition;
/* Allocate the condition mutex structure */
if (!(condition =
(objc_condition_t)objc_malloc(sizeof(struct objc_condition))))
return NULL;
/* Call the backend to create the condition mutex */
if (pthread_cond_init((pthread_cond_t *)(&(condition->backend)), NULL))
{
/* failed! */
objc_free(condition);
return NULL;
}
/* Success! */
return condition;
}
/* Deallocate a condition. */
int
objc_condition_deallocate(objc_condition_t condition)
{
/* Broadcast the condition */
if (objc_condition_broadcast(condition))
return -1;
/* Call the backend to destroy */
if (pthread_cond_destroy((pthread_cond_t *)(&(condition->backend))))
return -1;
/* Free the condition mutex structure */
objc_free(condition);
return 0;
}
/* Wait on the condition */
int
objc_condition_wait(objc_condition_t condition, objc_mutex_t mutex)
{
objc_thread_t thread_id;
/* Valid arguments? */
if (!mutex || !condition)
return -1;
/* Make sure we are owner of mutex */
thread_id = objc_thread_id();
if (mutex->owner != thread_id)
return -1;
/* Cannot be locked more than once */
if (mutex->depth > 1)
return -1;
/* Virtually unlock the mutex */
mutex->depth = 0;
mutex->owner = (objc_thread_t)NULL;
/* Call the backend to wait */
pthread_cond_wait((pthread_cond_t *)(&(condition->backend)),
(pthread_mutex_t *)(&(mutex->backend)));
/* Make ourselves owner of the mutex */
mutex->owner = thread_id;
mutex->depth = 1;
return 0;
}
/* Wake up all threads waiting on this condition. */
int
objc_condition_broadcast(objc_condition_t condition)
{
/* Valid condition mutex? */
if (!condition)
return -1;
return pthread_cond_broadcast((pthread_cond_t *)(&(condition->backend)));
}
/* Wake up one thread waiting on this condition. */
int
objc_condition_signal(objc_condition_t condition)
{
/* Valid condition mutex? */
if (!condition)
return -1;
return pthread_cond_signal((pthread_cond_t *)(&(condition->backend)));
}
/* Make the objc thread system aware that a thread which is managed
(started, stopped) by external code could access objc facilities
from now on. This is used when you are interfacing with some
external non-objc-based environment/system - you must call
objc_thread_add() before an alien thread makes any calls to
Objective-C. Do not cause the _objc_became_multi_threaded hook to
be executed. */
void
objc_thread_add(void)
{
objc_mutex_lock(__objc_runtime_mutex);
__objc_is_multi_threaded = 1;
__objc_runtime_threads_alive++;
objc_mutex_unlock(__objc_runtime_mutex);
}
/* Make the objc thread system aware that a thread managed (started,
stopped) by some external code will no longer access objc and thus
can be forgotten by the objc thread system. Call
objc_thread_remove() when your alien thread is done with making
calls to Objective-C. */
void
objc_thread_remove(void)
{
objc_mutex_lock(__objc_runtime_mutex);
__objc_runtime_threads_alive--;
objc_mutex_unlock(__objc_runtime_mutex);
}
/* End of File */

View file

@ -9,3 +9,5 @@ DYNAMIC_LINKER=@DYNAMIC_LINKER@
HAVE_LIBXML=@HAVE_LIBXML@
WITH_FFI=@WITH_FFI@
HAVE_PTHREAD_H=@HAVE_PTHREAD_H@

305
configure vendored
View file

@ -2994,18 +2994,69 @@ fi
done
#--------------------------------------------------------------------
# Check for pthread.h (only when building on Darwin machines)
#--------------------------------------------------------------------
for ac_hdr in pthread.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3005: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3010 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3015: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
eval "ac_cv_header_$ac_safe=yes"
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
else
echo "$ac_t""no" 1>&6
fi
done
if test $ac_cv_header_pthread_h = yes ; then
HAVE_PTHREAD_H=yes
cat >> confdefs.h <<\EOF
#define HAVE_PTHREAD_H 1
EOF
fi
#--------------------------------------------------------------------
# This function needed by StdioStream.m
#--------------------------------------------------------------------
for ac_func in vsprintf vasprintf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3004: checking for $ac_func" >&5
echo "configure:3055: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3009 "configure"
#line 3060 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3028,7 +3079,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3057,11 +3108,11 @@ if test $ac_cv_func_vsprintf = yes ; then
VSPRINTF_RETURNS_LENGTH=1
else
cat > conftest.$ac_ext <<EOF
#line 3061 "configure"
#line 3112 "configure"
#include "confdefs.h"
#include "$srcdir/config/config.vsprintf.c"
EOF
if { (eval echo configure:3065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:3116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
VSPRINTF_RETURNS_LENGTH=1
else
@ -3083,11 +3134,11 @@ if test $ac_cv_func_vasprintf = yes ; then
VASPRINTF_RETURNS_LENGTH=1
else
cat > conftest.$ac_ext <<EOF
#line 3087 "configure"
#line 3138 "configure"
#include "confdefs.h"
#include "$srcdir/config/config.vasprintf.c"
EOF
if { (eval echo configure:3091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:3142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
VASPRINTF_RETURNS_LENGTH=1
else
@ -3111,12 +3162,12 @@ fi
for ac_func in getcwd
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3115: checking for $ac_func" >&5
echo "configure:3166: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3120 "configure"
#line 3171 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3139,7 +3190,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3168,12 +3219,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
echo "configure:3172: checking for $ac_hdr that defines DIR" >&5
echo "configure:3223: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3177 "configure"
#line 3228 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@ -3181,7 +3232,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
if { (eval echo configure:3185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@ -3206,7 +3257,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
echo "configure:3210: checking for opendir in -ldir" >&5
echo "configure:3261: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -3214,7 +3265,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3218 "configure"
#line 3269 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -3225,7 +3276,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:3229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -3247,7 +3298,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
echo "configure:3251: checking for opendir in -lx" >&5
echo "configure:3302: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -3255,7 +3306,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3259 "configure"
#line 3310 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -3266,7 +3317,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:3270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -3296,17 +3347,17 @@ for ac_hdr in getopt.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3300: checking for $ac_hdr" >&5
echo "configure:3351: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3305 "configure"
#line 3356 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3310: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3361: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3339,12 +3390,12 @@ done
for ac_func in valloc
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3343: checking for $ac_func" >&5
echo "configure:3394: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3348 "configure"
#line 3399 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3367,7 +3418,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3398,12 +3449,12 @@ done
for ac_func in times
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3402: checking for $ac_func" >&5
echo "configure:3453: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3407 "configure"
#line 3458 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3426,7 +3477,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3457,12 +3508,12 @@ done
for ac_func in mkstemp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3461: checking for $ac_func" >&5
echo "configure:3512: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3466 "configure"
#line 3517 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3485,7 +3536,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3512,12 +3563,12 @@ done
for ac_func in shmctl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3516: checking for $ac_func" >&5
echo "configure:3567: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3521 "configure"
#line 3572 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3540,7 +3591,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3567,12 +3618,12 @@ done
for ac_func in mmap
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3571: checking for $ac_func" >&5
echo "configure:3622: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3576 "configure"
#line 3627 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3595,7 +3646,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3626,12 +3677,12 @@ done
for ac_func in inet_aton
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3630: checking for $ac_func" >&5
echo "configure:3681: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3635 "configure"
#line 3686 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3654,7 +3705,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3685,12 +3736,12 @@ done
for ac_func in killpg setpgrp setpgid
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3689: checking for $ac_func" >&5
echo "configure:3740: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3694 "configure"
#line 3745 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3713,7 +3764,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3738,7 +3789,7 @@ fi
done
echo $ac_n "checking whether setpgrp takes no argument""... $ac_c" 1>&6
echo "configure:3742: checking whether setpgrp takes no argument" >&5
echo "configure:3793: checking whether setpgrp takes no argument" >&5
if eval "test \"`echo '$''{'ac_cv_func_setpgrp_void'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3746,7 +3797,7 @@ else
{ echo "configure: error: cannot check setpgrp if cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
#line 3750 "configure"
#line 3801 "configure"
#include "confdefs.h"
#ifdef HAVE_UNISTD_H
@ -3766,7 +3817,7 @@ main()
}
EOF
if { (eval echo configure:3770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:3821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_setpgrp_void=no
else
@ -3806,17 +3857,17 @@ for ac_hdr in libc.h limits.h malloc.h memory.h string.h signal.h sys/file.h sys
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3810: checking for $ac_hdr" >&5
echo "configure:3861: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3815 "configure"
#line 3866 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3820: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3849,12 +3900,12 @@ done
for ac_func in usleep
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3853: checking for $ac_func" >&5
echo "configure:3904: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3858 "configure"
#line 3909 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3877,7 +3928,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3908,12 +3959,12 @@ done
for ac_func in strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3912: checking for $ac_func" >&5
echo "configure:3963: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3917 "configure"
#line 3968 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3936,7 +3987,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3965,16 +4016,16 @@ done
# This type needed by GSFormat
#--------------------------------------------------------------------
echo $ac_n "checking whether stdint.h defines uintmax_t""... $ac_c" 1>&6
echo "configure:3969: checking whether stdint.h defines uintmax_t" >&5
echo "configure:4020: checking whether stdint.h defines uintmax_t" >&5
cat > conftest.$ac_ext <<EOF
#line 3971 "configure"
#line 4022 "configure"
#include "confdefs.h"
#include <stdint.h>
int main() {
int i = sizeof(uintmax_t);
; return 0; }
EOF
if { (eval echo configure:3978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
uintmax_t=1
else
@ -3995,9 +4046,9 @@ else
fi
echo $ac_n "checking whether precompiler handles LONG_LONG_MAX""... $ac_c" 1>&6
echo "configure:3999: checking whether precompiler handles LONG_LONG_MAX" >&5
echo "configure:4050: checking whether precompiler handles LONG_LONG_MAX" >&5
cat > conftest.$ac_ext <<EOF
#line 4001 "configure"
#line 4052 "configure"
#include "confdefs.h"
#include <stdint.h>
#include <limits.h>
@ -4008,7 +4059,7 @@ cat > conftest.$ac_ext <<EOF
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4012: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4063: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4034,17 +4085,17 @@ for ac_hdr in wchar.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4038: checking for $ac_hdr" >&5
echo "configure:4089: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4043 "configure"
#line 4094 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4075,12 +4126,12 @@ done
# This function needed by NSString for handling of %@ printf directive.
#--------------------------------------------------------------------
echo $ac_n "checking for register_printf_function""... $ac_c" 1>&6
echo "configure:4079: checking for register_printf_function" >&5
echo "configure:4130: checking for register_printf_function" >&5
if eval "test \"`echo '$''{'ac_cv_func_register_printf_function'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4084 "configure"
#line 4135 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char register_printf_function(); below. */
@ -4103,7 +4154,7 @@ register_printf_function();
; return 0; }
EOF
if { (eval echo configure:4107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_register_printf_function=yes"
else
@ -4128,11 +4179,11 @@ if test $register_printf = 1; then
working_register_printf=1
else
cat > conftest.$ac_ext <<EOF
#line 4132 "configure"
#line 4183 "configure"
#include "confdefs.h"
#include "$srcdir/config/config.printf.c"
EOF
if { (eval echo configure:4136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
working_register_printf=1
else
@ -4158,12 +4209,12 @@ fi
for ac_func in realpath
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4162: checking for $ac_func" >&5
echo "configure:4213: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4167 "configure"
#line 4218 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -4186,7 +4237,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:4190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -4216,7 +4267,7 @@ done
# Used in critical cases by NSProcessInfo.m
#--------------------------------------------------------------------
echo $ac_n "checking program_invocation_name in C Library""... $ac_c" 1>&6
echo "configure:4220: checking program_invocation_name in C Library" >&5
echo "configure:4271: checking program_invocation_name in C Library" >&5
if eval "test \"`echo '$''{'program_invocation_name_worked'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4224,7 +4275,7 @@ else
program_invocation_name_worked=no
else
cat > conftest.$ac_ext <<EOF
#line 4228 "configure"
#line 4279 "configure"
#include "confdefs.h"
#include <string.h>
@ -4236,7 +4287,7 @@ main (int argc, char *argv[])
}
EOF
if { (eval echo configure:4240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
program_invocation_name_worked=yes
else
@ -4274,7 +4325,7 @@ fi
echo $ac_n "checking kernel support for /proc filesystem""... $ac_c" 1>&6
echo "configure:4278: checking kernel support for /proc filesystem" >&5
echo "configure:4329: checking kernel support for /proc filesystem" >&5
if eval "test \"`echo '$''{'ac_cv_sys_procfs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4309,7 +4360,7 @@ EOF
echo $ac_n "checking link to exe of process in /proc""... $ac_c" 1>&6
echo "configure:4313: checking link to exe of process in /proc" >&5
echo "configure:4364: checking link to exe of process in /proc" >&5
if eval "test \"`echo '$''{'ac_cv_sys_procfs_exe_link'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4340,16 +4391,16 @@ EOF
# Check if /proc/$$/cmdline terminates the last argument with a nul
#--------------------------------------------------------------------
echo $ac_n "checking /proc/$$/cmdline terminated by nul""... $ac_c" 1>&6
echo "configure:4344: checking /proc/$$/cmdline terminated by nul" >&5
echo "configure:4395: checking /proc/$$/cmdline terminated by nul" >&5
if test "$cross_compiling" = yes; then
CMDLINE_TERMINATED=0
else
cat > conftest.$ac_ext <<EOF
#line 4349 "configure"
#line 4400 "configure"
#include "confdefs.h"
#include "$srcdir/config/config.proccmd.c"
EOF
if { (eval echo configure:4353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
CMDLINE_TERMINATED=1
else
@ -4375,16 +4426,16 @@ fi
# Check if short and int values need to be word aligned
#--------------------------------------------------------------------
echo $ac_n "checking short/int needs to be word aligned""... $ac_c" 1>&6
echo "configure:4379: checking short/int needs to be word aligned" >&5
echo "configure:4430: checking short/int needs to be word aligned" >&5
if test "$cross_compiling" = yes; then
NEED_WORD_ALIGNMENT=1
else
cat > conftest.$ac_ext <<EOF
#line 4384 "configure"
#line 4435 "configure"
#include "confdefs.h"
#include "$srcdir/config/config.align.c"
EOF
if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
NEED_WORD_ALIGNMENT=0
else
@ -4412,7 +4463,7 @@ fi
# doesn't work. Allow NSProcessInfo initialization method also.
#--------------------------------------------------------------------
echo $ac_n "checking "use of pass-through arguments"""... $ac_c" 1>&6
echo "configure:4416: checking "use of pass-through arguments"" >&5
echo "configure:4467: checking "use of pass-through arguments"" >&5
# Check whether --enable-pass-arguments or --disable-pass-arguments was given.
if test "${enable_pass_arguments+set}" = set; then
enableval="$enable_pass_arguments"
@ -4434,7 +4485,7 @@ fi
echo "$ac_t""$enable_pass_arguments" 1>&6
echo $ac_n "checking "use of fake-main definition"""... $ac_c" 1>&6
echo "configure:4438: checking "use of fake-main definition"" >&5
echo "configure:4489: checking "use of fake-main definition"" >&5
# Check whether --enable-fake-main or --disable-fake-main was given.
if test "${enable_fake_main+set}" = set; then
enableval="$enable_fake_main"
@ -4494,17 +4545,17 @@ fi
ac_safe=`echo "ffi.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ffi.h""... $ac_c" 1>&6
echo "configure:4498: checking for ffi.h" >&5
echo "configure:4549: checking for ffi.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4503 "configure"
#line 4554 "configure"
#include "confdefs.h"
#include <ffi.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4508: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4559: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4528,9 +4579,9 @@ fi
echo $ac_n "checking "for forwarding callback in runtime"""... $ac_c" 1>&6
echo "configure:4532: checking "for forwarding callback in runtime"" >&5
echo "configure:4583: checking "for forwarding callback in runtime"" >&5
cat > conftest.$ac_ext <<EOF
#line 4534 "configure"
#line 4585 "configure"
#include "confdefs.h"
#include <objc/objc-api.h>
EOF
@ -4548,17 +4599,17 @@ for ac_hdr in callback.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4552: checking for $ac_hdr" >&5
echo "configure:4603: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4557 "configure"
#line 4608 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4587,7 +4638,7 @@ done
echo $ac_n "checking "FFI library usage"""... $ac_c" 1>&6
echo "configure:4591: checking "FFI library usage"" >&5
echo "configure:4642: checking "FFI library usage"" >&5
WITH_FFI=none
if test $enable_libffi = yes; then
cat >> confdefs.h <<\EOF
@ -4652,7 +4703,7 @@ fi
# Extract the first word of "xml2-config", so it can be a program name with args.
set dummy xml2-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4656: checking for $ac_word" >&5
echo "configure:4707: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XML2_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4689,7 +4740,7 @@ fi
# Extract the first word of "xml-config", so it can be a program name with args.
set dummy xml-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4693: checking for $ac_word" >&5
echo "configure:4744: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XML_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4727,7 +4778,7 @@ fi
fi
min_xml_version=2.2.3
echo $ac_n "checking for libxml - version >= $min_xml_version""... $ac_c" 1>&6
echo "configure:4731: checking for libxml - version >= $min_xml_version" >&5
echo "configure:4782: checking for libxml - version >= $min_xml_version" >&5
no_xml=""
if test "$XML_CONFIG" = "no" ; then
no_xml=yes
@ -4750,7 +4801,7 @@ echo "configure:4731: checking for libxml - version >= $min_xml_version" >&5
echo $ac_n "cross compiling; assumed OK... $ac_c"
else
cat > conftest.$ac_ext <<EOF
#line 4754 "configure"
#line 4805 "configure"
#include "confdefs.h"
#include <stdlib.h>
@ -4825,7 +4876,7 @@ main()
}
EOF
if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@ -4930,17 +4981,17 @@ if test $enable_openssl = yes; then
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4934: checking for $ac_hdr" >&5
echo "configure:4985: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4939 "configure"
#line 4990 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4995: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4973,7 +5024,7 @@ done
ssl_ok=no
else
echo $ac_n "checking for CRYPTO_malloc in -lcrypto""... $ac_c" 1>&6
echo "configure:4977: checking for CRYPTO_malloc in -lcrypto" >&5
echo "configure:5028: checking for CRYPTO_malloc in -lcrypto" >&5
ac_lib_var=`echo crypto'_'CRYPTO_malloc | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4981,7 +5032,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypto $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4985 "configure"
#line 5036 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4992,7 +5043,7 @@ int main() {
CRYPTO_malloc()
; return 0; }
EOF
if { (eval echo configure:4996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5017,7 +5068,7 @@ fi
base_libs="$LIBS"
LIBS="$LIBS -lcrypto"
echo $ac_n "checking for ssl2_clear in -lssl""... $ac_c" 1>&6
echo "configure:5021: checking for ssl2_clear in -lssl" >&5
echo "configure:5072: checking for ssl2_clear in -lssl" >&5
ac_lib_var=`echo ssl'_'ssl2_clear | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -5025,7 +5076,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lssl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5029 "configure"
#line 5080 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -5036,7 +5087,7 @@ int main() {
ssl2_clear()
; return 0; }
EOF
if { (eval echo configure:5040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5110,17 +5161,17 @@ for ac_hdr in gmp.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5114: checking for $ac_hdr" >&5
echo "configure:5165: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5119 "configure"
#line 5170 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5175: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -5148,7 +5199,7 @@ done
if test $ac_cv_header_gmp_h = yes; then
echo $ac_n "checking for mpf_abs in -lgmp""... $ac_c" 1>&6
echo "configure:5152: checking for mpf_abs in -lgmp" >&5
echo "configure:5203: checking for mpf_abs in -lgmp" >&5
ac_lib_var=`echo gmp'_'mpf_abs | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -5156,7 +5207,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgmp $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5160 "configure"
#line 5211 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -5167,7 +5218,7 @@ int main() {
mpf_abs()
; return 0; }
EOF
if { (eval echo configure:5171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5190,7 +5241,7 @@ fi
if test "$gmp_ok" = no; then
echo $ac_n "checking for __gmpf_abs in -lgmp""... $ac_c" 1>&6
echo "configure:5194: checking for __gmpf_abs in -lgmp" >&5
echo "configure:5245: checking for __gmpf_abs in -lgmp" >&5
ac_lib_var=`echo gmp'_'__gmpf_abs | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -5198,7 +5249,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgmp $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5202 "configure"
#line 5253 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -5209,7 +5260,7 @@ int main() {
__gmpf_abs()
; return 0; }
EOF
if { (eval echo configure:5213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5252,12 +5303,12 @@ fi
for ac_func in iconv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:5256: checking for $ac_func" >&5
echo "configure:5307: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5261 "configure"
#line 5312 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -5280,7 +5331,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:5284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -5322,7 +5373,7 @@ fi
# BSDs install this lib as libgiconv
echo $ac_n "checking for main in -lgiconv""... $ac_c" 1>&6
echo "configure:5326: checking for main in -lgiconv" >&5
echo "configure:5377: checking for main in -lgiconv" >&5
ac_lib_var=`echo giconv'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -5330,14 +5381,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgiconv $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5334 "configure"
#line 5385 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
if { (eval echo configure:5341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5370,7 +5421,7 @@ fi
SYSTEM_DEFS="-DHAVE_ICONV -DHAVE_GICONV_H $SYSTEM_DEFS"
else
echo $ac_n "checking for main in -liconv""... $ac_c" 1>&6
echo "configure:5374: checking for main in -liconv" >&5
echo "configure:5425: checking for main in -liconv" >&5
ac_lib_var=`echo iconv'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -5378,14 +5429,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5382 "configure"
#line 5433 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
if { (eval echo configure:5389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5435,7 +5486,7 @@ subdirs="Source/mframe"
# Record the version
#--------------------------------------------------------------------
echo $ac_n "checking for the version of gnustep-base we are compiling""... $ac_c" 1>&6
echo "configure:5439: checking for the version of gnustep-base we are compiling" >&5
echo "configure:5490: checking for the version of gnustep-base we are compiling" >&5
if test -f "Version"; then
. ./Version
fi

View file

@ -467,6 +467,15 @@ dnl AC_REPLACE_FUNCS(recvfrom)
AC_CHECK_HEADERS(syslog.h)
AC_CHECK_FUNCS(syslog)
#--------------------------------------------------------------------
# Check for pthread.h (only when building on Darwin machines)
#--------------------------------------------------------------------
AC_CHECK_HEADERS(pthread.h)
if test $ac_cv_header_pthread_h = yes ; then
HAVE_PTHREAD_H=yes
AC_DEFINE(HAVE_PTHREAD_H)
fi
#--------------------------------------------------------------------
# This function needed by StdioStream.m
#--------------------------------------------------------------------