;;;; files for more information.
#!-sparc
-(defun ldso-stubify (fct str)
- (format str "LDSO_STUBIFY(~A)~%" fct))
+(defun ldso-stubify (fct stream)
+ (format stream "LDSO_STUBIFY(~A)~%" fct))
;;; This is an attempt to follow DB's hint of sbcl-devel
;;; 2001-09-18. -- CSR
;;;
;;; And an attempt to work around the Sun toolchain... --ns
#!+sparc
-(defun ldso-stubify (fct str)
- (apply #'format str "
+(defun ldso-stubify (fct stream)
+ (apply #'format stream "
.globl ldso_stub__~A ; \\
FUNCDEF(ldso_stub__~A) ; \\
ldso_stub__~A: ; \\
.size ldso_stub__~A,.L~Ae1-ldso_stub__~A ;~%"
(make-list 9 :initial-element fct)))
+#!+hppa
+(defun ldso-stubify (fct stream)
+ (let ((stub (format nil "ldso_stub__~a" fct)))
+ (apply #'format stream (list
+" .export ~A
+~A:
+ .proc
+ .callinfo
+ b,n ~a
+ .procend
+ .import ~a,code~%" stub stub fct fct))))
+
(defvar *preludes* '("
/* This is an automatically generated file, please do not hand-edit it.
* See the program tools-for-build/ldso-stubs.lisp. */
#endif
.text"
-#!+(or (and x86 (not darwin)) x86-64) "
+#!+(and (or x86 x86-64) (not darwin)) "
#define LDSO_STUBIFY(fct) \\
.align 16 ; \\
.globl ldso_stub__ ## fct ; \\
.L ## fct ## e1: ; \\
.size ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;"
-#!+(and linux ppc) "
+#!+hppa "
+ .level 2.0
+ .text"
+
+#!+(and (not darwin) ppc) "
#define LDSO_STUBIFY(fct) \\
.globl ldso_stub__ ## fct ; \\
.type ldso_stub__ ## fct,@function ; \\
#!+(and darwin ppc) "
#define LDSO_STUBIFY(fct) @\\
.text @\\
-.globl ldso_stub___ ## fct @\\
-ldso_stub___ ## fct: @\\
+.globl ldso_stub__ ## fct @\\
+ldso_stub__ ## fct: @\\
b ldso_stub__ ## fct ## stub @\\
.symbol_stub ldso_stub__ ## fct ## stub: @\\
.indirect_symbol _ ## fct @\\
#define LDSO_STUBIFY(fct) \\
.text ; \\
.align 4 ; \\
-.globl ldso_stub___ ## fct ; \\
-ldso_stub___ ## fct: ; \\
+.globl _ldso_stub__ ## fct ; \\
+_ldso_stub__ ## fct: ; \\
jmp L ## fct ## $stub ; \\
.section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5 ; \\
L ## fct ## $stub: ; \\
hlt ; \\
.subsections_via_symbols ; "
+;;; darwin x86-64
+#!+(and darwin x86-64) "
+#define LDSO_STUBIFY(fct) \\
+ .align 4 ; \\
+.globl _ldso_stub__ ## fct ; \\
+_ldso_stub__ ## fct: ; \\
+ jmp _ ## fct ; \\
+.L ## fct ## e1: ; "
+
;;; KLUDGE: set up the vital fifth argument, passed on the
;;; stack. Do this unconditionally, even if the stub is for a
;;; function with few arguments: it can't hurt. We only do this for
"fork"
"free"
"fstat"
+ #!+inode64 "fstat$INODE64"
"fsync"
"ftruncate"
"getcwd"
"log1p"
"lseek"
"lstat"
+ #!+inode64 "lstat$INODE64"
"malloc"
"memmove"
"mkdir"
"read"
"readdir"
"readlink"
+ "realpath"
"recv"
"rename"
"rmdir"
"sinh"
"socket"
"stat"
+ #!+inode64 "stat$INODE64"
"strerror"
"strlen"
"symlink"
"tcsetattr"
"truncate"
"ttyname"
- "tzname"
+ #!-hpux "tzname"
"unlink"
"utimes"
"wait3"
;; #!-linkage-table, as we only need these stubs if
;; we don't have linkage-table. Done this way now to
;; cut down on the number of ports affected.
- #!-(or win32 darwin)
+ #!-(or win32 darwin freebsd netbsd openbsd)
'("ptsname"
"grantpt"
"unlockpt")
- #!-darwin
+ #!+openbsd
+ '("openpty")
+ #!-dlshim
'("dlclose"
"dlerror"
"dlopen"
"dlsym")
+ #!+bsd
+ '("sysctl")
#!+os-provides-dladdr
'("dladdr")
#!-sunos ;; !defined(SVR4)