This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Add sysdeps/unix/sysv/linux/x86_64/x32/lseek.S


On Mon, May 21, 2012 at 3:33 PM, Roland McGrath <roland@hack.frob.com> wrote:
>> I can add llseek to x32 and make it an alias of lseek64 if needed.
>
> There's certainly no need for yet another alias when we don't have an ABI
> legacy requiring it.
>
>> Still x32 needs an dummy lseek.S.
>
> Or make lseek the object that contains lseek, like I said to begin with.
> Then you can either have a dummy llseek.[cS] or you can just avoid llseek
> being added to sysdep_routines at all.
>

I checked in this patch to rename x32 llseek.S to lseek.S and add
dummy llseek.S.

Thanks.

-- 
H.J.
---
commit c5b3a2c05b407197fe56d229542eeeba1f710908
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 15:41:37 2012 -0700

    Rename x32 llseek.S to lseek.S and add dummy llseek.S

diff --git a/ChangeLog b/ChangeLog
index f6288e1..98e34a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,8 @@
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_SET_ERRNO):
 	New macro.  Use R*LP on int and pointer.
 	(SYSCALL_ERROR_HANDLER): Use SYSCALL_SET_ERRNO.
-	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: New file.
+	* sysdeps/unix/sysv/linux/x86_64/x32/lseek.S: New file.
+	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Likewise.
 	* sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h: Likewise.

 	* sysdeps/gnu/bits/utmp.h (struct lastlog): Check
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
index bec302e..5084d0e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -1,43 +1 @@
-/* The lseek system call with 64-bit offset.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep-cancel.h>
-
-/* Return -1LL in a full 64 bits.  */
-#undef SYSCALL_ERROR_HANDLER
-#define SYSCALL_ERROR_HANDLER	\
-0:				\
-	SYSCALL_SET_ERRNO;	\
-	orq $-1, %rax;		\
-	ret;
-
-/* Always use our own error handler.  */
-#undef SYSCALL_ERROR_LABEL
-#define SYSCALL_ERROR_LABEL 0f
-
-PSEUDO (__libc_lseek64, lseek, 3)
-	ret
-PSEUDO_END (__libc_lseek64)
-
-weak_alias (__libc_lseek64, __lseek64)
-libc_hidden_weak (__lseek64)
-weak_alias (__libc_lseek64, lseek64)
-libc_hidden_weak (lseek64)
-weak_alias (__libc_lseek64, __lseek)
-libc_hidden_weak (__lseek)
-weak_alias (__libc_lseek64, lseek)
+/* No llseek for x32.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
new file mode 100644
index 0000000..bec302e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -0,0 +1,43 @@
+/* The lseek system call with 64-bit offset.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep-cancel.h>
+
+/* Return -1LL in a full 64 bits.  */
+#undef SYSCALL_ERROR_HANDLER
+#define SYSCALL_ERROR_HANDLER	\
+0:				\
+	SYSCALL_SET_ERRNO;	\
+	orq $-1, %rax;		\
+	ret;
+
+/* Always use our own error handler.  */
+#undef SYSCALL_ERROR_LABEL
+#define SYcommit c5b3a2c05b407197fe56d229542eeeba1f710908
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 15:41:37 2012 -0700

    Rename x32 llseek.S to lseek.S and add dummy llseek.S

diff --git a/ChangeLog b/ChangeLog
index f6288e1..98e34a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,8 @@
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_SET_ERRNO):
 	New macro.  Use R*LP on int and pointer.
 	(SYSCALL_ERROR_HANDLER): Use SYSCALL_SET_ERRNO.
-	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: New file.
+	* sysdeps/unix/sysv/linux/x86_64/x32/lseek.S: New file.
+	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Likewise.
 	* sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h: Likewise.

 	* sysdeps/gnu/bits/utmp.h (struct lastlog): Check
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
index bec302e..5084d0e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -1,43 +1 @@
-/* The lseek system call with 64-bit offset.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep-cancel.h>
-
-/* Return -1LL in a full 64 bits.  */
-#undef SYSCALL_ERROR_HANDLER
-#define SYSCALL_ERROR_HANDLER	\
-0:				\
-	SYSCALL_SET_ERRNO;	\
-	orq $-1, %rax;		\
-	ret;
-
-/* Always use our own error handler.  */
-#undef SYSCALL_ERROR_LABEL
-#define SYSCALL_ERROR_LABEL 0f
-
-PSEUDO (__libc_lseek64, lseek, 3)
-	ret
-PSEUDO_END (__libc_lseek64)
-
-weak_alias (__libc_lseek64, __lseek64)
-libc_hidden_weak (__lseek64)
-weak_alias (__libc_lseek64, lseek64)
-libc_hidden_weak (lseek64)
-weak_alias (__libc_lseek64, __lseek)
-libc_hidden_weak (__lseek)
-weak_alias (__libc_lseek64, lseek)
+/* No llseek for x32.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
new file mode 100644
index 0000000..bec302e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -0,0 +1,43 @@
+/* The lseek system call with 64-bit offset.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep-cancel.h>
+
+/* Return -1LL in a full 64 bits.  */
+#undef SYSCALL_ERROR_HANDLER
+#define SYSCALL_ERROR_HANDLER	\
+0:				\
+	SYSCALL_SET_ERRNO;	\
+	orq $-1, %rax;		\
+	ret;
+
+/* Always use our own error handler.  */
+#undef SYSCALL_ERROR_LABEL
+#define SYSCALL_ERROR_LABEL 0f
+
+PSEUDO (__libc_lseek64, lseek, 3)
+	ret
+PSEUDO_END (__libc_lseek64)
+
+weak_alias (__libc_lseek64, __lseek64)
+libc_hidden_weak (__lseek64)
+weak_alias (__libc_lseek64, lseek64)
+libc_hidden_weak (lseek64)
+weak_alias (__libc_lseek64, __lseek)
+libc_hidden_weak (__lseek)
+weak_alias (__libc_lseek64, lseek)
SCALL_ERROR_LABEL 0f
+
+PSEUDO (__libc_lseek64, lseek, 3)
+	ret
+PSEUDO_END (__libc_lseek64)
+
+weak_alias (__libc_lseek64, __lseek64)
+libc_hidden_weak (__lseek64)
+weak_alias (__libc_lseek64, lseek64)
+libc_hidden_weak (lseek64)
+weak_alias (__libc_lseek64, __lseek)
+libc_hidden_weak (__lseek)
+weak_alias (__libc_lseek64, lseek)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]