aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/socket.S13
2 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 1596d6567e..9727fdd236 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+1998-04-06 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Revert 03-01 change,
+ as the buffer is not properly aligned.
+ Reported by Juan Cespedes <cespedes@debian.org>.
+
1998-04-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/examples/mkfsock.c (make_named_socket): Use AF_LOCAL
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S b/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
index db8eb4e8bb..8d6fd77c10 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
@@ -48,11 +48,18 @@ ENTRY (__socket)
/* Drop up to 6 arguments (recvfrom) into the memory allocated by
the caller for varargs, since that's really what we have. */
- std %o0, [%sp + 68 + 0]
+ st %o0, [%sp + 68 + 0]
+ st %o1, [%sp + 68 + 4]
#if NARGS > 2
- std %o2, [%sp + 68 + 8]
+ st %o2, [%sp + 68 + 8]
+#if NARGS > 3
+ st %o3, [%sp + 68 + 12]
#if NARGS > 4
- std %o4, [%sp + 68 + 16]
+ st %o4, [%sp + 68 + 16]
+#if NARGS > 5
+ st %o5, [%sp + 68 + 20]
+#endif
+#endif
#endif
#endif