1.0.43.40: Allow use of unmangled win32 function names
authorJuho Snellman <jsnell@iki.fi>
Sun, 10 Oct 2010 00:34:11 +0000 (00:34 +0000)
committerJuho Snellman <jsnell@iki.fi>
Sun, 10 Oct 2010 00:34:11 +0000 (00:34 +0000)
     * Patch lp#657117 from Kalyanov Dmitry

src/compiler/generic/genesis.lisp
version.lisp-expr

index 8f99ba4..fac1eb4 100644 (file)
@@ -1612,7 +1612,19 @@ core and return a descriptor to it."
                       (warn "redefining ~S from #X~X to #X~X"
                             name old-value value)))
                   (/show "adding to *cold-foreign-symbol-table*:" name value)
-                  (setf (gethash name *cold-foreign-symbol-table*) value))))))
+                  (setf (gethash name *cold-foreign-symbol-table*) value)
+                  #!+win32
+                  (let ((at-position (position #\@ name)))
+                    (when at-position
+                      (let ((name (subseq name 0 at-position)))
+                        (multiple-value-bind (old-value found)
+                            (gethash name *cold-foreign-symbol-table*)
+                          (when (and found
+                                     (not (= old-value value)))
+                            (warn "redefining ~S from #X~X to #X~X"
+                                  name old-value value)))
+                        (setf (gethash name *cold-foreign-symbol-table*)
+                              value)))))))))
   (values))     ;; PROGN
 
 (defun cold-foreign-symbol-address (name)
index 6fbe420..bb57b58 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.43.39"
+"1.0.43.40"