summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/h8300/vfork.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/h8300/vfork.S')
-rw-r--r--libc/sysdeps/linux/h8300/vfork.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/h8300/vfork.S b/libc/sysdeps/linux/h8300/vfork.S
index e84a78d6a..e101bf5ed 100644
--- a/libc/sysdeps/linux/h8300/vfork.S
+++ b/libc/sysdeps/linux/h8300/vfork.S
@@ -28,7 +28,12 @@ _vfork:
jmp @er1 /* don't return, just jmp directly */
fix_errno:
neg.l er0
+#if !defined(__PIC__)
mov.l er0,@_errno
+#else
+ mov.l @(_errno@GOTOFF,er5),er2
+ mov.l er0,@er2
+#endif
sub.l er0,er0
dec.l #1,er0
jmp @er1 /* don't return, just jmp directly */