OS/2 patches for dlclose() support (from Yitzchak Scott-Thoennes
Gurusamy Sarathy [Fri, 3 Mar 2000 16:21:34 +0000 (16:21 +0000)]
<sthoenna@efn.org>)

p4raw-id: //depot/perl@5488

makedef.pl
os2/diff.configure
os2/dl_os2.c
os2/dlfcn.h
os2/os2.sym

index b88b8e9..ed3f1cc 100644 (file)
@@ -270,6 +270,7 @@ elsif ($PLATFORM eq 'os2') {
                    dlopen
                    dlsym
                    dlerror
+                   dlclose
                    my_tmpfile
                    my_tmpnam
                    my_flock
index c8f3b58..59a8a53 100644 (file)
@@ -1,18 +1,18 @@
---- Configure-pre      Sun Jul 25 19:18:02 1999
-+++ Configure  Wed Jul 28 17:50:14 1999
-@@ -1528,6 +1528,11 @@ if test X"$trnl" = X; then
+--- Configure.orig     Tue Feb 29 19:07:00 2000
++++ Configure  Thu Mar  2 10:10:24 2000
+@@ -1605,6 +1605,11 @@
        esac
  fi
  if test X"$trnl" = X; then
-+      case "`echo foo|tr '\r' x 2>/dev/null`" in
-+      foox) trnl='\r' ;;
++      case "`echo foo|tr '\r\n' xy 2>/dev/null`" in
++      fooxy) trnl='\n\r' ;;
 +      esac
 +fi
 +if test X"$trnl" = X; then
        cat <<EOM >&2
  
  $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
-@@ -1844,7 +1849,7 @@ for file in $loclist; do
+@@ -1921,7 +1926,7 @@
        *)
                echo "I don't know where '$file' is, and my life depends on it." >&4
                echo "Go find a public domain implementation or fix your PATH setting!" >&4
                ;;
        esac
  done
-@@ -3688,7 +3693,7 @@ int main() {
-       exit(0);
- }
- EOM
--if $cc -o gccvers gccvers.c; then
-+if $cc -o gccvers gccvers.c $ldflags; then
-       gccversion=`./gccvers`
-       case "$gccversion" in
-       '') echo "You are not using GNU cc." ;;
-@@ -4892,7 +4897,7 @@ case "$libc" in
+@@ -5719,7 +5724,7 @@
        esac
        ;;
  esac
index 4a9688c..aab48dd 100644 (file)
@@ -87,3 +87,13 @@ dlerror(void)
        return buf;
 }
 
+int
+dlclose(void *handle)
+{
+       ULONG rc;
+
+       if ((rc = DosFreeModule((HMODULE)handle)) == 0) return 0;
+
+       retcode = rc;
+       return 2;
+}
index c96f97f..c2feee6 100644 (file)
@@ -1,3 +1,4 @@
 void *dlopen(char *path, int mode);
 void *dlsym(void *handle, char *symbol);
 char *dlerror(void);
+int dlclose(void *handle);
index 7724e56..6855686 100644 (file)
@@ -5,6 +5,7 @@ OS2_Perl_data
 dlopen
 dlsym
 dlerror
+dlclose
 my_tmpfile
 my_tmpnam
 my_flock