- (setf (gethash (car routine) *assembler-routines*) (cdr routine)))
- (dolist (symbol *!initial-foreign-symbols*)
- (setf (gethash (car symbol) *static-foreign-symbols*) (cdr symbol))))
-
-(declaim (ftype (function (string) sb!vm:word)
- foreign-symbol-address-as-integer))
-(defun foreign-symbol-address-as-integer (foreign-symbol)
- (or (gethash foreign-symbol *static-foreign-symbols*)
- (gethash (concatenate 'simple-string
- #!+linux "ldso_stub__"
- #!+openbsd "_"
- #!+freebsd "ldso_stub__"
- foreign-symbol)
- *static-foreign-symbols*)
- (sb!sys:get-dynamic-foreign-symbol-address foreign-symbol)
- (error "unknown foreign symbol: ~S" foreign-symbol)))
-
-(defun foreign-symbol-address (symbol)
- (int-sap (foreign-symbol-address-as-integer
- (sb!vm:extern-alien-name symbol))))