Ilya Zakharevich on Wed, 03 Feb 2010 15:38:32 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: PARI stable release 2.3.5 (for real now)


On Fri, Jan 29, 2010 at 11:09:50PM +0100, Bill Allombert wrote:
> Please test!

a) ./configure is broken under OS/2.  The attached fix changes
	        if test  -s $exe -a -x $exe ; then
   to
		if test -s $exe ; then
		  if test -x $exe -o "$osname" = os2 ; then
   plus correction of whitespace (and `fi').

b) os2.c was producing warnings about string signedness (fixed).

Yours,
Ilya

--- ./config/look.pre	Mon Mar 31 04:43:58 2008
+++ ./config/look	Wed Feb  3 04:20:48 2010
@@ -2,13 +2,15 @@
 # defining has_$fun
 for fun in $list; do
   if ($CC $CFLAGS has_$fun.c -o $exe $extra_flags > /dev/null 2>&1); then
-    if test  -s $exe -a -x $exe ; then
-      eval "has_$fun=yes"; echo ..."Found $fun."
-      case "$_has_list" in
-        *has_$fun*);;
-        *) _has_list="$_has_list has_$fun";;
-      esac
-      break
+    if test -s $exe ; then
+      if test -x $exe -o "$osname" = os2 ; then
+        eval "has_$fun=yes"; echo ..."Found $fun."
+        case "$_has_list" in
+          *has_$fun*);;
+          *) _has_list="$_has_list has_$fun";;
+        esac
+        break
+      fi
     fi
   fi;
   eval "has_$fun=no"; echo ..."I did not find $fun."
--- ./src/systems/os2/os2.c-pre	Mon Mar 31 04:43:58 2008
+++ ./src/systems/os2/os2.c	Wed Feb  3 05:33:14 2010
@@ -4,6 +4,8 @@
 #include <os2.h>
 #include <float.h>
 #include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
 
 static ULONG retcode;
 static char fail[300];
@@ -83,7 +85,7 @@ dlopen(char *path, int mode)
 		    retcode = rc;
 		    return 0;
 		}
-		rc = DosLoadModule(fail, sizeof fail, dllname, &handle);
+		rc = DosLoadModule((PSZ)fail, sizeof fail, (PSZ)dllname, &handle);
 		if (rc) {
 	            strcpy(fail, "can't load my own DLL");
 		    retcode = rc;
@@ -96,7 +98,7 @@ dlopen(char *path, int mode)
             strcpy(fail, "can't load from myself: compiled without -DDLOPEN_INITTERM");
 	    return 0;
 	}
-	if ((rc = DosLoadModule(fail, sizeof fail, path, &handle)) == 0)
+	if ((rc = DosLoadModule((PSZ)fail, sizeof fail, (PSZ)path, &handle)) == 0)
 		goto ret;
 
 	retcode = rc;
@@ -112,7 +114,7 @@ dlopen(char *path, int mode)
 		int n = beg+8-path;
 		memmove(tmp, path, n);
 		memmove(tmp+n, dot, strlen(dot)+1);
-		rc = DosLoadModule(fail, sizeof fail, tmp, &handle);
+		rc = DosLoadModule((PSZ)fail, sizeof fail, (PSZ)tmp, &handle);
 		if (rc == 0)
 			goto ret;
 		retcode = rc;
@@ -133,9 +135,9 @@ dlsym(void *handle, char *symbol)
 	PFN addr;
 
 	fail[0] = 0;
-	rc = DosQueryProcAddr((HMODULE)handle, 0, symbol, &addr);
+	rc = DosQueryProcAddr((HMODULE)handle, 0, (PSZ)symbol, &addr);
 	if (rc == 0) {
-		rc = DosQueryProcType((HMODULE)handle, 0, symbol, &type);
+		rc = DosQueryProcType((HMODULE)handle, 0, (PSZ)symbol, &type);
 		if (rc == 0 && type == PT_32BIT)
 			return (void *)addr;
 		rc = ERROR_WRONG_PROCTYPE;
@@ -158,7 +160,7 @@ dlerror(void)
 	}
 	if ((retcode != ERROR_WRONG_PROCTYPE)
 	    && DosGetMessage(NULL, 0, buf, sizeof buf - 1, retcode,
-			     "OSO001.MSG", &len)) {
+			     (PSZ)"OSO001.MSG", &len)) {
 		if (fail[0])
 		  sprintf(buf, 
 "OS/2 system error code %d, possible problematic module: '%s'",