1.0.3.23: fix sb-posix timeval struct
[sbcl.git] / tools-for-build / ldso-stubs.lisp
index 5b2530e..c9ee595 100644 (file)
@@ -57,7 +57,7 @@ ldso_stub__~A: ;                                \\
 #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 ;                     \\
@@ -85,7 +85,7 @@ ldso_stub__ ## fct: ;                           \\
 .L ## fct ## e1: ;                              \\
         .size    ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;"
 
-#!+(and linux ppc) "
+#!+(and (not darwin) ppc) "
 #define LDSO_STUBIFY(fct)                       \\
 .globl ldso_stub__ ## fct ;                     \\
         .type    ldso_stub__ ## fct,@function ; \\
@@ -130,6 +130,15 @@ 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
@@ -285,7 +294,11 @@ ldso_stub__ ## fct: ;                  \\
                  #!+alpha
                  '("ieee_get_fp_control"
                    "ieee_set_fp_control")
-                 #!-win32
+                 ;; FIXME: After 1.0 this should be made
+                 ;; #!-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 freebsd)
                  '("ptsname"
                    "grantpt"
                    "unlockpt")