X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fforeign.lisp;h=d3837548d56befaef6cda086ab668f455fe42b6e;hb=5cc68148d1a5f9bacf4eb12e396b680d992fc2c2;hp=d80955b1f02d5b33d34de4aa4737e8c83f1fb471;hpb=4919f9971429d18fab618b9b49e164c6b57bea6f;p=sbcl.git diff --git a/src/code/foreign.lisp b/src/code/foreign.lisp index d80955b..d383754 100644 --- a/src/code/foreign.lisp +++ b/src/code/foreign.lisp @@ -30,7 +30,7 @@ (progn #-sb-xc-host (values #!-linkage-table - (get-dynamic-foreign-symbol-address name) + (get-dynamic-foreign-symbol-address name datap) #!+linkage-table (ensure-foreign-symbol-linkage name datap) t)))) @@ -52,8 +52,7 @@ ;; If the address is from linkage-table and refers to data ;; we need to do a bit of juggling. (if (and sharedp datap) - ;; FIXME: 64bit badness here - (int-sap (sap-ref-32 (int-sap addr) 0)) + (int-sap (sap-ref-word (int-sap addr) 0)) (int-sap addr))))) #-sb-xc-host @@ -71,12 +70,14 @@ ;; get dynamic symbols thru the runtime as well, so cheking the ;; list of *shared-objects* is not enough. Eugh & blech. #!+(and os-provides-dlopen (not linkage-table)) - (warn "~@") + (when (dynamic-foreign-symbols) + (warn "~@" (dynamic-foreign-symbols))) #!+os-provides-dlopen (close-shared-objects))