#define PERLIO_NOT_STDIO 0
/*
- * On AIX 4.3 and above the emulation layer is not needed any more, and
- * indeed if perl uses its emulation and perl is linked into apache
- * which is supposed to use the native dlopen conflicts arise.
- * Jens-Uwe Mager jum@helios.de
- */
-#ifdef USE_NATIVE_DLOPEN
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include <dlfcn.h>
-
-#else
-
-/*
* @(#)dlfcn.c 1.5 revision of 93/02/14 20:14:17
* This is an unpublished work copyright (c) 1992 Helios Software GmbH
* 3000 Hannover 1, Germany
# define FREAD(p,s,n,ldptr) fread(p,s,n,IOPTR(ldptr))
#endif
-#ifndef RTLD_LAZY
-# define RTLD_LAZY 0
-#endif
-#ifndef RTLD_GLOBAL
-# define RTLD_GLOBAL 0
-#endif
-
/*
* We simulate dlopen() et al. through a call to load. Because AIX has
* no call to find an exported symbol we read the loader section of the
safefree(buf);
return ret;
}
-#endif /* USE_NATIVE_DLOPEN */
/* dl_dlopen.xs
*
DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
if (flags & 0x01)
Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
- RETVAL = dlopen(filename, RTLD_GLOBAL|RTLD_LAZY) ;
+ RETVAL = dlopen(filename, 1) ;
DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%x\n", RETVAL));
ST(0) = sv_newmortal() ;
if (RETVAL == NULL)
case "$osvers" in
3.*|4.1.*|4.2.*)
usenm='undef'
- usenativedlopen='false'
;;
*)
usenm='true'
- usenativedlopen='true'
;;
esac
esac
EOCBU
-if test $usenativedlopen = 'true'
-then
- ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
-else
- # If the C++ libraries, libC and libC_r, are available we will prefer them
- # over the vanilla libc, because the libC contain loadAndInit() and
- # terminateAndUnload() which work correctly with C++ statics while libc
- # load() and unload() do not. See ext/DynaLoader/dl_aix.xs.
- # The C-to-C_r switch is done by usethreads.cbu, if needed.
- if test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
- # Cify libswanted.
- set `echo X "$libswanted "| sed -e 's/ c / C c /'`
- shift
- libswanted="$*"
- # Cify lddlflags.
- set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'`
- shift
- lddlflags="$*"
- fi
+# If the C++ libraries, libC and libC_r, are available we will prefer them
+# over the vanilla libc, because the libC contain loadAndInit() and
+# terminateAndUnload() which work correctly with C++ statics while libc
+# load() and unload() do not. See ext/DynaLoader/dl_aix.xs.
+# The C-to-C_r switch is done by usethreads.cbu, if needed.
+if test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
+ # Cify libswanted.
+ set `echo X "$libswanted "| sed -e 's/ c / C c /'`
+ shift
+ libswanted="$*"
+ # Cify lddlflags.
+ set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'`
+ shift
+ lddlflags="$*"
fi
# EOF