summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/sysdeps/linux/sparc/sysdep.h12
-rw-r--r--libc/sysdeps/linux/sparc/vfork.S4
2 files changed, 14 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/sparc/sysdep.h b/libc/sysdeps/linux/sparc/sysdep.h
index 015dd6e1b..1553ff06d 100644
--- a/libc/sysdeps/linux/sparc/sysdep.h
+++ b/libc/sysdeps/linux/sparc/sysdep.h
@@ -132,3 +132,15 @@ Cambridge, MA 02139, USA. */
#define END(name)
.size name,.-name;
+
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY(name); \
+ ta 0x10; \
+ bcc,a 9000f; \
+ nop; \
+9000:;
+
+#define PSEUDO_END(name) \
+ .size name,.-name;
+
diff --git a/libc/sysdeps/linux/sparc/vfork.S b/libc/sysdeps/linux/sparc/vfork.S
index 985ea4ed1..2aef09ab1 100644
--- a/libc/sysdeps/linux/sparc/vfork.S
+++ b/libc/sysdeps/linux/sparc/vfork.S
@@ -26,5 +26,5 @@ PSEUDO (__vfork, vfork, 0)
retl
and %o0, %o1, %o0
-PSEUDO_END (__vfork)
-weak_alias (__vfork, vfork)
+.size __vfork,.-__vfork
+.weak vfork; vfork = __vfork;