0.7.1.1:
[sbcl.git] / src / runtime / ldso-stubs.S
index fbfc0de..5e3351d 100644 (file)
@@ -2,8 +2,11 @@
  * stubs for C-linkage library functions which we need to refer to 
  * from Lisp 
  *
- * These exist for the benefit of Lisp code that needs to refer to
- * foreign symbols when dlsym() is not available (i.e. when dumping
+ * (But note this is only the Linux version, as per the FIXME
+ * note in the BSD version in undefineds.h.)
+ *
+ * These stubs exist for the benefit of Lisp code that needs to refer 
+ * to foreign symbols when dlsym() is not available (i.e. when dumping
  * cold-sbcl.core, when we may be running in a host that's not SBCL,
  * or on platforms that don't have it at all). If the runtime is
  * dynamically linked, library functions won't be linked into it, so
@@ -39,10 +42,6 @@ ldso_stub__ ## fct: ;                           \
        .size    ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;
 
 #elif defined alpha
-       
-       /* I _hope_ this is correct - I haven't checked in the manual
-        * yet.  It works to the point of building and passing tests,
-        * at any rate     - dan 2001.05.10 */
 #define LDSO_STUBIFY(fct)                       \
 .globl ldso_stub__ ## fct ;                     \
        .type    ldso_stub__ ## fct,@function ; \
@@ -50,6 +49,29 @@ ldso_stub__ ## fct: ;                           \
        jmp fct ;                               \
 .L ## fct ## e1: ;                              \
        .size    ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;
+
+#elif defined ppc
+#define LDSO_STUBIFY(fct)                       \
+.globl ldso_stub__ ## fct ;                     \
+       .type    ldso_stub__ ## fct,@function ; \
+ldso_stub__ ## fct: ;                           \
+        b fct ;                                 \
+.L ## fct ## e1: ;                              \
+        .size    ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;
+       
+#elif defined sparc
+       
+       /* This is an attempt to follow DB's hint of sbcl-devel
+        * 2001-09-18. -- CSR */
+#define LDSO_STUBIFY(fct)                       \
+.globl ldso_stub__ ## fct ;                     \
+       .type    ldso_stub__ ## fct,@function ; \
+ldso_stub__ ## fct: ;                           \
+       sethi %hi(fct),%g1      ;               \
+       jmpl %g1+%lo(fct),%g0   ;               \
+       nop /* delay slot*/     ;               \
+.L ## fct ## e1: ;                              \
+       .size    ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;
        
 #else
 #error unsupported CPU architecture
@@ -95,7 +117,6 @@ ldso_stub__ ## fct: ;                           \
  LDSO_STUBIFY(getegid)
  LDSO_STUBIFY(getenv)
  LDSO_STUBIFY(getgid)
- LDSO_STUBIFY(gethostid)
  LDSO_STUBIFY(gethostbyaddr)
  LDSO_STUBIFY(gethostbyname)
  LDSO_STUBIFY(gethostname)
@@ -136,13 +157,14 @@ ldso_stub__ ## fct: ;                           \
  LDSO_STUBIFY(send)
  LDSO_STUBIFY(setitimer)
  LDSO_STUBIFY(setpgrp)
- LDSO_STUBIFY(sigblock)
- LDSO_STUBIFY(sigpause)
+#if !defined(SVR4)
  LDSO_STUBIFY(sigsetmask)
+#endif
  LDSO_STUBIFY(sinh)
  LDSO_STUBIFY(socket)
  LDSO_STUBIFY(stat)
  LDSO_STUBIFY(strerror)
+ LDSO_STUBIFY(strlen)
  LDSO_STUBIFY(symlink)
  LDSO_STUBIFY(sync)
  LDSO_STUBIFY(tanh)
@@ -178,4 +200,8 @@ ldso_stub__ ## fct: ;                           \
  LDSO_STUBIFY(log) 
  LDSO_STUBIFY(log10) 
  LDSO_STUBIFY(sqrt) 
-#endif
\ No newline at end of file
+#endif
+#if defined alpha
+ LDSO_STUBIFY(ieee_get_fp_control)
+ LDSO_STUBIFY(ieee_set_fp_control)
+#endif