Fixing BeOS, OS/2 & FreeBSD LDAP bustage.

Thanks to Javier Pedemonte (OS/2), Chris Seawood (BeOS), Peter Jonsson (FreeBSD) & Dan Mosedale for contributing to the patch.
Bug #133824 r=dmose,cls,mcs a=asa


git-svn-id: svn://10.0.0.236/branches/ldapcsdk_50_client_branch@117908 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
seawood%netscape.com
2002-04-02 07:44:50 +00:00
parent b2e1df537e
commit 3632eb529e
15 changed files with 189 additions and 95 deletions

View File

@@ -372,6 +372,12 @@ else # WINNT
#
# UNIX link commands
#
ifeq ($(OS_ARCH),OS2)
LINK_LIB = $(AR) $(AR_FLAGS) $(OBJS) && $(RANLIB) $@
LINK_DLL = $(LD) $(OS_DLLFLAGS) $(DLLFLAGS) $(OBJS)
else
LINK_LIB = $(RM) $@; $(AR) $(AR_FLAGS) $(OBJS); $(RANLIB) $@
LINK_LIB2 = $(RM) $@; $(AR) $@ $(OBJS2); $(RANLIB) $@
ifdef SONAMEFLAG_PREFIX
@@ -381,6 +387,7 @@ else # SONAMEFLAG_PREFIX
LINK_DLL = $(LD) $(DSO_LDOPTS) $(ALDFLAGS) $(DLL_LDFLAGS) $(DLL_EXPORT_FLAGS) \
-o $@ $(OBJS)
endif # SONAMEFLAG_PREFIX
endif #!os2
ifeq ($(OS_ARCH), OSF1)
# The linker on OSF/1 gets confused if it finds an so_locations file
@@ -389,7 +396,7 @@ ifeq ($(OS_ARCH), OSF1)
SO_FILES_TO_REMOVE=so_locations
endif
ifeq ($(OS_ARCH),Darwin)
ifneq (,$(filter BeOS Darwin,$(OS_ARCH)))
LINK_DLL = $(MKSHLIB) $(OBJS)
endif

View File

@@ -23,6 +23,7 @@ OBJDIR_NAME = @OBJDIR_NAME@
OBJDIR = @OBJDIR@
OBJ_SUFFIX = @OBJ_SUFFIX@
LIB_SUFFIX = @LIB_SUFFIX@
LIB_PREFIX = @LIB_PREFIX@
DLL_SUFFIX = @DLL_SUFFIX@
ASM_SUFFIX = @ASM_SUFFIX@
PROG_SUFFIX = @PROG_SUFFIX@

View File

@@ -2783,6 +2783,7 @@ fi
OBJ_SUFFIX=o
LIB_SUFFIX=a
LIB_PREFIX=lib
DLL_SUFFIX=so
ASM_SUFFIX=s
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
@@ -2965,17 +2966,17 @@ EOF
DSO_LDOPTS='-brtl -bM:SRE -bnoentry -bexpall'
ac_safe=`echo "sys/atomic_op.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/atomic_op.h""... $ac_c" 1>&6
echo "configure:2969: checking for sys/atomic_op.h" >&5
echo "configure:2970: checking for sys/atomic_op.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 2974 "configure"
#line 2975 "configure"
#include "confdefs.h"
#include <sys/atomic_op.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2979: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2980: \"$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*
@@ -3133,7 +3134,7 @@ EOF
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
echo $ac_n "checking for gethostbyaddr in -lbind""... $ac_c" 1>&6
echo "configure:3137: checking for gethostbyaddr in -lbind" >&5
echo "configure:3138: checking for gethostbyaddr in -lbind" >&5
ac_lib_var=`echo bind'_'gethostbyaddr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3141,7 +3142,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3145 "configure"
#line 3146 "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
@@ -3152,7 +3153,7 @@ int main() {
gethostbyaddr()
; return 0; }
EOF
if { (eval echo configure:3156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3157: \"$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
@@ -3857,6 +3858,7 @@ EOF
GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
OBJ_SUFFIX=obj
LIB_SUFFIX=lib
LIB_PREFIX=
DLL_SUFFIX=dll
PROG_SUFFIX=.exe
@@ -4271,17 +4273,17 @@ EOF
ac_safe=`echo "machine/builtins.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for machine/builtins.h""... $ac_c" 1>&6
echo "configure:4275: checking for machine/builtins.h" >&5
echo "configure:4277: checking for machine/builtins.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 4280 "configure"
#line 4282 "configure"
#include "confdefs.h"
#include <machine/builtins.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4287: \"$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*
@@ -4684,6 +4686,7 @@ EOF
OBJ_SUFFIX=obj
LIB_SUFFIX=lib
LIB_PREFIX=
DLL_SUFFIX=dll
ASM_SUFFIX=asm
DLLTOOL=''
@@ -4789,12 +4792,12 @@ esac
if test -z "$SKIP_LIBRARY_CHECKS"; then
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
echo "configure:4793: checking for dlopen" >&5
echo "configure:4796: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4798 "configure"
#line 4801 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
@@ -4817,7 +4820,7 @@ dlopen();
; return 0; }
EOF
if { (eval echo configure:4821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dlopen=yes"
else
@@ -4836,7 +4839,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "configure:4840: checking for dlopen in -ldl" >&5
echo "configure:4843: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4844,7 +4847,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4848 "configure"
#line 4851 "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
@@ -4855,7 +4858,7 @@ int main() {
dlopen()
; return 0; }
EOF
if { (eval echo configure:4859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4862: \"$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
@@ -4883,13 +4886,13 @@ fi
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
echo "configure:4887: checking whether ${CC-cc} needs -traditional" >&5
echo "configure:4890: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
#line 4893 "configure"
#line 4896 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -4907,7 +4910,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
#line 4911 "configure"
#line 4914 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -4931,12 +4934,12 @@ fi
for ac_func in lchown strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4935: checking for $ac_func" >&5
echo "configure:4938: 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 4940 "configure"
#line 4943 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4959,7 +4962,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:4963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4966: \"$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
@@ -4997,7 +5000,7 @@ fi
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
echo "configure:5001: checking for pthread_create in -lpthreads" >&5
echo "configure:5004: checking for pthread_create in -lpthreads" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -5019,7 +5022,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
echo "configure:5023: checking for pthread_create in -lpthread" >&5
echo "configure:5026: checking for pthread_create in -lpthread" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -5041,7 +5044,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
echo "configure:5045: checking for pthread_create in -lc_r" >&5
echo "configure:5048: checking for pthread_create in -lc_r" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -5063,7 +5066,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
echo "configure:5067: checking for pthread_create in -lc" >&5
echo "configure:5070: checking for pthread_create in -lc" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -5213,7 +5216,7 @@ if test -n "$USE_PTHREADS"; then
rm -f conftest*
ac_cv_have_dash_pthread=no
echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
echo "configure:5217: checking whether ${CC-cc} accepts -pthread" >&5
echo "configure:5220: checking whether ${CC-cc} accepts -pthread" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
@@ -5229,7 +5232,7 @@ echo "configure:5217: checking whether ${CC-cc} accepts -pthread" >&5
ac_cv_have_dash_pthreads=no
if test "$ac_cv_have_dash_pthread" = "no"; then
echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
echo "configure:5233: checking whether ${CC-cc} accepts -pthreads" >&5
echo "configure:5236: checking whether ${CC-cc} accepts -pthreads" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
@@ -5578,6 +5581,7 @@ RELEASE_OBJDIR_NAME="${OS_CONFIG}${CPU_ARCH_TAG}${COMPILER_TAG}${IMPL_STRATEGY}$
MAKEFILES="
@@ -5805,6 +5809,7 @@ s%@PR_MD_ARCH_DIR@%$PR_MD_ARCH_DIR%g
s%@CPU_ARCH@%$CPU_ARCH%g
s%@OBJ_SUFFIX@%$OBJ_SUFFIX%g
s%@LIB_SUFFIX@%$LIB_SUFFIX%g
s%@LIB_PREFIX@%$LIB_PREFIX%g
s%@DLL_SUFFIX@%$DLL_SUFFIX%g
s%@ASM_SUFFIX@%$ASM_SUFFIX%g
s%@PROG_SUFFIX@%$PROG_SUFFIX%g

View File

@@ -522,6 +522,7 @@ dnl Default platform specific options
dnl ========================================================
OBJ_SUFFIX=o
LIB_SUFFIX=a
LIB_PREFIX=lib
DLL_SUFFIX=so
ASM_SUFFIX=s
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
@@ -1206,6 +1207,7 @@ case "$target" in
GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
OBJ_SUFFIX=obj
LIB_SUFFIX=lib
LIB_PREFIX=
DLL_SUFFIX=dll
PROG_SUFFIX=.exe
@@ -1707,6 +1709,7 @@ mips-sony-newsos*)
AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
OBJ_SUFFIX=obj
LIB_SUFFIX=lib
LIB_PREFIX=
DLL_SUFFIX=dll
ASM_SUFFIX=asm
DLLTOOL=''
@@ -2257,6 +2260,7 @@ AC_SUBST(CPU_ARCH)
AC_SUBST(OBJ_SUFFIX)
AC_SUBST(LIB_SUFFIX)
AC_SUBST(LIB_PREFIX)
AC_SUBST(DLL_SUFFIX)
AC_SUBST(ASM_SUFFIX)
AC_SUBST(PROG_SUFFIX)

View File

@@ -268,7 +268,7 @@ int strncasecmp(const char *, const char *, size_t);
#define STRTOK( s1, s2, l ) strtok( s1, s2 )
#elif defined(XP_BEOS)
#define GETHOSTBYNAME( n, r, b, l, e ) gethostbyname( n )
#define CTIME( c, b, l ) ctime_r( c, b )
#define NSLDAPI_CTIME( c, b, l ) ctime_r( c, b )
#define STRTOK( s1, s2, l ) strtok_r( s1, s2, l )
#define HAVE_STRTOK_R
#else /* UNIX */
@@ -422,7 +422,6 @@ int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
#define strcasecmp strcmpi
#define strncasecmp strnicmp
#define bzero(a, b) memset( a, 0, b )
#include "dirent.h"
#include <string.h> /*for strcmpi()*/
#include <time.h> /*for ctime()*/

View File

@@ -42,12 +42,9 @@ OBJS = $(addprefix $(IUTILOBJDEST)/, $(REALOBJS))
DISTHDIR = $(DIST)/public/ldap
HDIR = $(topsrcdir)/ldap/include
ifeq ($(OS_ARCH), WINNT)
LIBIUTIL = $(addprefix $(IUTILOBJDEST)/, $(IUTIL_LIBNAME).$(LIB_SUFFIX))
else
LIBIUTIL = $(addprefix $(IUTILOBJDEST)/, \
lib$(IUTIL_LIBNAME).$(LIB_SUFFIX))
endif
$(LIB_PREFIX)$(IUTIL_LIBNAME).$(LIB_SUFFIX))
INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
include $(topsrcdir)/config/rules.mk

View File

@@ -36,11 +36,8 @@ REALOBJS = $(SRCS:.c=.$(OBJ_SUFFIX))
OBJS = $(addprefix $(OBJDIR_NAME)/, $(REALOBJS))
HDIR = $(topsrcdir)/ldap/include
ifeq ($(OS_ARCH), WINNT)
LIBLBER = $(addprefix $(OBJDIR_NAME)/, $(LBER_LIBNAME).$(LIB_SUFFIX))
else
LIBLBER = $(addprefix $(OBJDIR_NAME)/, lib$(LBER_LIBNAME).$(LIB_SUFFIX))
endif
LIBLBER = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(LBER_LIBNAME).$(LIB_SUFFIX))
INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
include $(topsrcdir)/config/rules.mk

View File

@@ -91,14 +91,9 @@ OBJS = $(addprefix $(OBJDIR_NAME)/, $(REALOBJS))
DISTHDIR = $(DIST)/public/ldap
HDIR = $(topsrcdir)/ldap/include
ifeq ($(OS_ARCH), WINNT)
LIBLDAP = $(addprefix $(OBJDIR_NAME)/, $(LDAP_LIBNAME).$(LIB_SUFFIX))
DLLLDAP = $(addprefix $(OBJDIR_NAME)/, $(LDAP_LIBNAME).$(DLL_SUFFIX))
else
LIBLDAP = $(addprefix $(OBJDIR_NAME)/, lib$(LDAP_LIBNAME).$(LIB_SUFFIX))
DLLLDAP = $(addprefix $(OBJDIR_NAME)/, lib$(LDAP_LIBNAME).$(DLL_SUFFIX))
LIBLDAP = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(LDAP_LIBNAME).$(LIB_SUFFIX))
DLLLDAP = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(LDAP_LIBNAME).$(DLL_SUFFIX))
endif
INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
include $(topsrcdir)/config/rules.mk
@@ -107,6 +102,10 @@ LOCAL_INCLUDES = -I$(PUBLIC)/nspr
INCLUDES += -I$(DISTHDIR) -I$(HDIR) -I$(INSTALLDIR)/public
DEFINES += $(DEFS) -UMOZILLA_CLIENT
ifdef USE_PTHREADS
DEFINES += -DUSE_PTHREADS
endif
ifeq ($(OS_ARCH),WINNT)
PLATFORMCFLAGS = -DNEEDPROTOS
else
@@ -173,6 +172,12 @@ EXTRA_LIBS += $(dist_libdir)/$(LDIF_LIBNAME).lib
EXTRA_LIBS += $(dist_libdir)/$(LBER_LIBNAME).lib
endif
ifeq ($(OS_ARCH),OS2)
EXTRA_LIBS = $(dist_libdir)/$(LDIF_LIBNAME).lib
EXTRA_LIBS += $(dist_libdir)/$(LBER_LIBNAME).lib
EXTRA_LIBS += $(OS_LIBS)
endif
ifeq ($(OS_ARCH), OSF1)
EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME)
EXTRA_LIBS += -L/usr/lib -lcxx -lpthread -lrt -lmach -lexc
@@ -192,6 +197,10 @@ ifeq ($(OS_ARCH), Darwin)
EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME)
endif
ifeq ($(OS_ARCH), BeOS)
EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe
endif
###########################################################################
ifeq ($(USE_DLL_EXPORTS_FILE), 1)
@@ -225,19 +234,29 @@ $(LIBLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS)
ifdef SO_FILES_TO_REMOVE
-$(RM) $(SO_FILES_TO_REMOVE)
endif
ifneq (,$(filter AIX Linux HP-UX Darwin, $(OS_ARCH)))
ifneq (,$(filter AIX Linux HP-UX Darwin BeOS, $(OS_ARCH)))
$(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a
else
$(LINK_LIB) $(EXTRA_LIBS)
endif
ifeq ($(OS_ARCH),OS2)
DEF_FILE = $(LDAP_LIBNAME).def
$(DEF_FILE):
echo LIBRARY $(LDAP_LIBNAME) INITINSTANCE TERMINSTANCE > $@
echo PROTMODE >> $@
echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@
echo EXPORTS >> $@
$(FILTER) $(LIBLDAP) | grep -v _DLL_InitTerm >> $@
endif
$(DLLLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS)
$(DLLLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS) $(DEF_FILE)
@echo ======= making $(DLLLDAP)
ifdef SO_FILES_TO_REMOVE
-$(RM) $(SO_FILES_TO_REMOVE)
endif
$(LINK_DLL) $(LDAP_EXPORT_FLAGS) $(EXTRA_LIBS)
$(LINK_DLL) $(LDAP_EXPORT_FLAGS) $(EXTRA_LIBS) $(DEF_FILE)
veryclean:: clean

View File

@@ -56,6 +56,10 @@
#include <bstring.h>
#endif /* IRIX */
#ifdef XP_BEOS
#define NSLDAPI_AVOID_OS_SOCKETS
#endif
#define NSLBERI_LBER_INT_FRIEND
#ifdef macintosh
#include "lber-int.h"

View File

@@ -63,8 +63,7 @@ struct ldap nsldapi_ld_defaults;
struct ldap_memalloc_fns nsldapi_memalloc_fns = { 0, 0, 0, 0 };
int nsldapi_initialized = 0;
#ifndef macintosh
#ifndef _WINDOWS
#ifdef USE_PTHREADS
#include <pthread.h>
static pthread_key_t nsldapi_key;
@@ -80,7 +79,7 @@ struct nsldapi_ldap_error {
char *le_matched;
char *le_errmsg;
};
#else /* use static tls */
#elif defined (_WINDOWS) /* use static tls */
__declspec ( thread ) int nsldapi_gldaperrno;
__declspec ( thread ) char *nsldapi_gmatched = NULL;
__declspec ( thread ) char *nsldapi_gldaperror = NULL;
@@ -238,7 +237,9 @@ set_ld_error( int LDErrno, char * LDMatched, char * LDError,
nsldapi_gldaperror = LDError;
}
#endif /* USE_WINDOWS_TLS */
#else /* IF ! _WINDOWS */
#endif /* ! _WINDOWS */
#ifdef USE_PTHREADS
static void *
pthread_mutex_alloc( void )
{
@@ -314,8 +315,9 @@ get_errno( void )
{
return( errno );
}
#endif /* ! _WINDOWS */
#endif /* use_pthreads */
#if defined(USE_PTHREADS) || defined(_WINDOWS)
static struct ldap_thread_fns
nsldapi_default_thread_fns = {
(void *(*)(void))pthread_mutex_alloc,
@@ -337,7 +339,7 @@ static struct ldap_extra_thread_fns
(void *(*)(void))pthread_self
#endif /* _WINDOWS */
};
#endif /* macintosh */
#endif /* use_pthreads || _windows */
void
nsldapi_initialize_defaults( void )
@@ -347,7 +349,7 @@ nsldapi_initialize_defaults( void )
return;
}
#if !defined(_WINDOWS) && !defined(macintosh)
#ifdef USE_PTHREADS
if ( pthread_key_create(&nsldapi_key, free ) != 0) {
perror("pthread_key_create");
}
@@ -375,7 +377,7 @@ nsldapi_initialize_defaults( void )
/* this was picked as it is the standard tcp timeout as well */
nsldapi_ld_defaults.ld_connect_timeout = LDAP_X_IO_TIMEOUT_NO_TIMEOUT;
#if !defined(macintosh)
#if defined(USE_PTHREADS) || defined(_WINDOWS)
/* load up default platform specific locking routines */
if (ldap_set_option( NULL, LDAP_OPT_THREAD_FN_PTRS,
(void *)&nsldapi_default_thread_fns) != LDAP_SUCCESS) {
@@ -389,7 +391,7 @@ nsldapi_initialize_defaults( void )
return;
}
#endif /* _WINDOWS */
#endif /* macintosh */
#endif /* use_pthreads || _windows */
}
@@ -497,7 +499,7 @@ ldap_init( const char *defhost, int defport )
LDAPDebug( LDAP_DEBUG_ANY,
"ldap_init: port %d is invalid (port numbers must range from 1 to %d)\n",
defport, LDAP_PORT_MAX, 0 );
#if !defined( macintosh ) && !defined( DOS )
#if !defined( macintosh ) && !defined( DOS ) && !defined( BEOS )
errno = EINVAL;
#endif
return( NULL );

View File

@@ -262,7 +262,7 @@ nsldapi_os_connect_with_to(LBER_SOCKET sockfd, struct sockaddr *saptr,
#else /* NSLDAPI_AVOID_OS_SOCKETS */
int n, error;
int len;
#ifdef _WINDOWS
#if defined(_WINDOWS) || defined(XP_OS2)
int nonblock = 1;
int block = 0;
#else
@@ -284,6 +284,8 @@ nsldapi_os_connect_with_to(LBER_SOCKET sockfd, struct sockaddr *saptr,
#ifdef _WINDOWS
ioctlsocket(sockfd, FIONBIO, &nonblock);
#elif defined(XP_OS2)
ioctl( sockfd, FIONBIO, &nonblock, sizeof(nonblock) );
#else
flags = fcntl(sockfd, F_GETFL, 0);
fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
@@ -411,6 +413,8 @@ nsldapi_os_connect_with_to(LBER_SOCKET sockfd, struct sockaddr *saptr,
done:
#ifdef _WINDOWS
ioctlsocket(sockfd, FIONBIO, &block);
#elif defined(XP_OS2)
ioctl( sockfd, FIONBIO, &nonblock, sizeof(block) );
#else
fcntl(sockfd, F_SETFL, flags);
#endif /* _WINDOWS */

View File

@@ -34,11 +34,7 @@ OBJS = $(addprefix $(OBJDIR_NAME)/, $(REALOBJS))
HDIR = $(topsrcdir)/ldap/include
ifeq ($(OS_ARCH), WINNT)
LIBLDIF = $(addprefix $(OBJDIR_NAME)/, $(LDIF_LIBNAME).$(LIB_SUFFIX))
else
LIBLDIF = $(addprefix $(OBJDIR_NAME)/, lib$(LDIF_LIBNAME).$(LIB_SUFFIX))
endif
LIBLDIF = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(LDIF_LIBNAME).$(LIB_SUFFIX))
INSTALLDIR = $(DIST)/$(OBJDIR_NAME)

View File

@@ -45,8 +45,9 @@ LIBPRLDAP = $(addprefix $(OBJDIR_NAME)/, \
DLLPRLDAP = $(addprefix $(OBJDIR_NAME)/, \
nsldappr32v$(PRLDAPVERS).$(LIB_SUFFIX))
else
LIBPRLDAP = $(addprefix $(OBJDIR_NAME)/, lib$(PRLDAP_LIBNAME).$(DLL_SUFFIX))
DLLPRLDAP = $(addprefix $(OBJDIR_NAME)/, $(LIB_PREFIX)$(PRLDAP_LIBNAME).$(DLL_SUFFIX))
endif
INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
include $(topsrcdir)/config/rules.mk
@@ -103,6 +104,15 @@ EXTRA_LIBS += $(dist_libdir)/$(PLDS_BASENAME).lib
EXTRA_LIBS += $(dist_libdir)/$(NSPR_BASENAME).lib
endif
ifeq ($(OS_ARCH),OS2)
EXTRA_LIBS = $(dist_libdir)/$(LDAP_LIBNAME).lib
EXTRA_LIBS += $(dist_libdir)/$(LBER_LIBNAME).lib
EXTRA_LIBS += $(dist_libdir)/$(PLCBASE).lib
EXTRA_LIBS += $(dist_libdir)/$(PLDSBASE).lib
EXTRA_LIBS += $(dist_libdir)/$(NSPRBASE).lib
EXTRA_LIBS += $(OS_LIBS)
endif
ifeq ($(OS_ARCH), OSF1)
EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME)
EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR)
@@ -120,6 +130,11 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME)
EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR)
endif
ifeq ($(OS_ARCH), BeOS)
EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME)
EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR)
endif
OBJDEST = $(OBJDIR_NAME)
###########################################################################
@@ -140,7 +155,7 @@ versiont.c: Makefile.client Version.c
-e "s|%VERSION%|$${v}|" \
< Version.c > $@)
all:: $(OBJDEST) $(LIBDIR) $(OBJS) $(LIBPRLDAP)
all:: $(OBJDEST) $(LIBDIR) $(OBJS) $(DLLPRLDAP)
$(LIBDIR):
$(MKDIR) $(LIBDIR)
@@ -149,6 +164,13 @@ $(LIBPRLDAP): $(OBJS) $(LIBDIR) $(PRLDAP_EXPORT_DEFS)
@echo ======= making $(LIBPRLDAP)
ifdef SO_FILES_TO_REMOVE
-$(RM) $(SO_FILES_TO_REMOVE)
endif
$(LINK_LIB) $(EXTRA_LIBS)
$(DLLPRLDAP): $(OBJS) $(LIBDIR) $(PRLDAP_EXPORT_DEFS)
@echo ======= making $(DLLPRLDAP)
ifdef SO_FILES_TO_REMOVE
-$(RM) $(SO_FILES_TO_REMOVE)
endif
$(LINK_DLL) $(PRLDAP_EXPORT_FLAGS) $(EXTRA_LIBS)
@@ -160,12 +182,12 @@ $(OBJDEST):
# the $(dist_bindir) line is for the mozilla client, which for reasons
# unknown wants shared libraries in /bin also
#
install:: $(LIBPRLDAP)
install:: $(DLLPRLDAP)
ifeq ($(OS_ARCH), WINNT)
$(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir)
$(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir)
endif
ifdef MKSHLIB
$(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir)
$(INSTALL) -m 444 $(LIBPRLDAP) $(dist_bindir)
$(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir)
$(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir)
endif

View File

@@ -29,7 +29,6 @@
#include "ldappr-int.h"
void
prldap_set_system_errno( int oserrno )
{
@@ -149,6 +148,44 @@ struct prldap_errormap_entry {
#define ETXTBSY -1
#endif /* macintosh */
#ifdef XP_OS2
#define ENOTSUP -1
#define EOVERFLOW -1
#define EDEADLOCK -1
#define EFAULT SOCEFAULT
#define EPIPE SOCEPIPE
#define EIO (SOCBASEERR+5)
#define EDEADLK (SOCBASEERR+11)
#define ENOTBLK (SOCBASEERR+15)
#define EBUSY (SOCBASEERR+16)
#define ENOTDIR (SOCBASEERR+20)
#define EISDIR (SOCBASEERR+21)
#define ENFILE (SOCBASEERR+23)
#define ETXTBSY (SOCBASEERR+26)
#define EFBIG (SOCBASEERR+27)
#define ESPIPE (SOCBASEERR+29)
#define EROFS (SOCBASEERR+30)
#endif
#ifdef BEOS
#define ENOTSUP -1
#define ENOTBLK -1
#define ETXTBSY -1
#endif
#if defined(BSDI)
#define ENOTSUP -1
#endif
#if defined(OSF1) || defined(BSDI)
#define EOVERFLOW -1
#endif
#if defined(HPUX11) || defined(AIX4_3) || defined(OSF1) || defined(DARWIN) || \
defined(BEOS) || defined(FREEBSD) || defined(BSDI)
#define EDEADLOCK -1
#endif
/* XXX: need to verify that the -1 entries are correct (no mapping) */
static struct prldap_errormap_entry prldap_errormap[] = {
{ PR_OUT_OF_MEMORY_ERROR, ENOMEM },
@@ -159,11 +196,7 @@ static struct prldap_errormap_entry prldap_errormap[] = {
{ PR_ILLEGAL_ACCESS_ERROR, EACCES }, /* XXX: correct mapping ? */
{ PR_UNKNOWN_ERROR, -1 },
{ PR_PENDING_INTERRUPT_ERROR, -1 },
#if defined(BSDI)
{ PR_NOT_IMPLEMENTED_ERROR, -1 },
#else
{ PR_NOT_IMPLEMENTED_ERROR, ENOTSUP },
#endif
{ PR_IO_ERROR, EIO },
{ PR_IO_TIMEOUT_ERROR, ETIMEDOUT }, /* XXX: correct mapping ? */
{ PR_IO_PENDING_ERROR, -1 },
@@ -193,20 +226,11 @@ static struct prldap_errormap_entry prldap_errormap[] = {
{ PR_OPERATION_NOT_SUPPORTED_ERROR, EOPNOTSUPP },
{ PR_PROTOCOL_NOT_SUPPORTED_ERROR, EPROTONOSUPPORT },
{ PR_REMOTE_FILE_ERROR, -1 },
#if defined(OSF1) || defined(BSDI)
{ PR_BUFFER_OVERFLOW_ERROR, -1 },
#else
{ PR_BUFFER_OVERFLOW_ERROR, EOVERFLOW },
#endif /* OSF1 */
{ PR_CONNECT_RESET_ERROR, ECONNRESET },
{ PR_RANGE_ERROR, ERANGE },
{ PR_DEADLOCK_ERROR, EDEADLK },
#if defined(HPUX11) || defined(AIX4_3) || defined(OSF1) || defined(DARWIN) ||\
defined(BSDI)
{ PR_FILE_IS_LOCKED_ERROR, -1 }, /* XXX: correct mapping ? */
#else
{ PR_FILE_IS_LOCKED_ERROR, EDEADLOCK }, /* XXX: correct mapping ? */
#endif /* HPUX11 */
{ PR_FILE_TOO_BIG_ERROR, EFBIG },
{ PR_NO_DEVICE_SPACE_ERROR, ENOSPC },
{ PR_PIPE_ERROR, EPIPE },

View File

@@ -39,13 +39,8 @@ OBJS = $(addprefix $(SSLOBJDEST)/, $(REALOBJS))
DISTHDIR = $(DIST)/public/ldap
HDIR = $(topsrcdir)/ldap/include
ifeq ($(OS_ARCH), WINNT)
LIBSSLDAP = $(addprefix $(SSLOBJDEST)/, $(SSLDAP_LIBNAME).$(DLL_SUFFIX))
DLLSSLDAP = $(addprefix $(SSLOBJDEST)/, $(SSLDAP_LIBNAME).$(LIB_SUFFIX))
else
LIBSSLDAP = $(addprefix $(SSLOBJDEST)/, \
lib$(SSLDAP_LIBNAME).$(DLL_SUFFIX))
endif
LIBSSLDAP = $(addprefix $(SSLOBJDEST)/, $(LIB_PREFIX)$(SSLDAP_LIBNAME).$(LIB_SUFFIX))
DLLSSLDAP = $(addprefix $(SSLOBJDEST)/, $(LIB_PREFIX)$(SSLDAP_LIBNAME).$(DLL_SUFFIX))
INSTALLDIR = $(DIST)/$(OBJDIR_NAME)
@@ -143,6 +138,16 @@ EXTRA_LIBS += $(DYNAMICNSPR)
EXTRA_LIBS += $(OS_LIBS)
endif
ifeq ($(OS_ARCH), BeOS)
EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME)
ifeq ($(NSS_DYNAMIC_SOFTOKN),1)
EXTRA_LIBS += -l$(SOFTOKN_LIBNAME)
endif
EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME)
EXTRA_LIBS += $(DYNAMICNSPR)
EXTRA_LIBS += $(OS_LIBS)
endif
OBJDEST = $(OBJDIR_NAME)
###########################################################################
@@ -165,13 +170,20 @@ versiont.c: Makefile.client Version.c
-e "s|%VERSION%|$${v}|" \
< Version.c > $@)
all:: $(OBJDEST) $(LIBDIR) $(OBJS) $(LIBSSLDAP)
all:: $(OBJDEST) $(LIBDIR) $(OBJS) $(DLLSSLDAP)
$(LIBDIR):
$(MKDIR) $(LIBDIR)
$(LIBSSLDAP): $(OBJS) $(LIBDIR) $(SSLDAP_EXPORT_DEFS)
@echo ======= making $(LIBSSLDAP)
ifdef SO_FILES_TO_REMOVE
-$(RM) $(SO_FILES_TO_REMOVE)
endif
$(LINK_LIB) $(EXTRA_LIBS)
$(DLLSSLDAP): $(OBJS) $(LIBDIR) $(SSLDAP_EXPORT_DEFS)
@echo ======= making $(DLLSSLDAP)
ifdef SO_FILES_TO_REMOVE
-$(RM) $(SO_FILES_TO_REMOVE)
endif
@@ -182,11 +194,12 @@ veryclean:: clean
$(OBJDEST):
$(MKDIR) $(OBJDEST)
install:: $(LIBSSLDAP)
install:: $(DLLSSLDAP)
ifeq ($(OS_ARCH), WINNT)
$(INSTALL) -m 555 $(LIBSSLDAP) $(dist_libdir)
$(INSTALL) -m 555 $(DLLSSLDAP) $(dist_libdir)
endif
ifdef MKSHLIB
$(INSTALL) -m 555 $(LIBSSLDAP) $(dist_libdir)
$(INSTALL) -m 555 $(DLLSSLDAP) $(dist_libdir)
$(INSTALL) -m 444 $(DLLSSLDAP) $(dist_bindir)
endif