public inbox for libc-ports@sourceware.org
 help / color / mirror / Atom feed
* Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044)
@ 2012-05-01 16:01 Joseph S. Myers
  2012-05-02  3:38 ` Matt Turner
  0 siblings, 1 reply; 5+ messages in thread
From: Joseph S. Myers @ 2012-05-01 16:01 UTC (permalink / raw)
  To: libc-ports

Similar to the ABI comparisons I did for ARM with old binaries, I also did 
such comparisons for MIPS.  This showed that n64's export of 
posix_fadvise64 at version GLIBC_2.3.3 had disappeared as a result of my 
patch <http://sourceware.org/ml/libc-ports/2009-12/msg00001.html>.  The 
ABI was to export posix_fadvise64 at both GLIBC_2.2 and GLIBC_2.3.3 (with 
identical semantics - there was no need for the two symbol versions on 
n64, but given that glibc was released with them they should both stay as 
part of the ABI), so I've applied this patch to restore the GLIBC_2.3.3 
export.

The other ABI changes seen in the comparison I don't think we can do 
anything about now: the __p_type_syms size change I mentioned for ARM, and 
my PTHREAD_STACK_MIN change 
<http://sourceware.org/ml/libc-ports/2007-06/msg00006.html> wrongly caused 
new versions of pthread_attr_setstack and pthread_attr_setstacksize to be 
added to libpthread at version GLIBC_2.3.3 instead of a newer version 
(this last one won't break any binaries, it's just not what the symbol 
version ought to have been at that date).

diff --git a/ChangeLog.mips b/ChangeLog.mips
index f487d39..21d48cf 100644
--- a/ChangeLog.mips
+++ b/ChangeLog.mips
@@ -1,3 +1,11 @@
+2012-05-01  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #14044]
+	* sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c: Copy
+	from libc version and add symbol versions.
+	* sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilis
+	(GLIBC_2.3.3): Add posix_fadvise64.
+
 2012-04-28  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/mips/mips32/nptl/ld.abilist: New file.
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
index 1deec22..12c15d3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
@@ -2045,6 +2045,7 @@ GLIBC_2.3.3
  inet6_option_space F
  nftw F
  nftw64 F
+ posix_fadvise64 F
  remap_file_pages F
  sched_getaffinity F
  sched_setaffinity F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c
index 0287b83..2b7c0e2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c
@@ -1 +1,50 @@
-#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c>
+/* Copyright (C) 2003-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/>.  */
+
+#define posix_fadvise64 __no_posix_fadvise64
+#include <errno.h>
+#include <fcntl.h>
+#include <sysdep.h>
+#undef posix_fadvise64
+
+/* Advice the system about the expected behaviour of the application with
+   respect to the file associated with FD.  */
+
+int
+posix_fadvise (int fd, off_t offset, off_t len, int advise)
+{
+#ifdef __NR_fadvise64
+  INTERNAL_SYSCALL_DECL (err);
+  int ret = INTERNAL_SYSCALL (fadvise64, err, 4, fd, offset, len, advise);
+  if (INTERNAL_SYSCALL_ERROR_P (ret, err))
+    return INTERNAL_SYSCALL_ERRNO (ret, err);
+  return 0;
+#else
+  return ENOSYS;
+#endif
+}
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
+strong_alias (posix_fadvise, __posix_fadvise64_l32);
+compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
+strong_alias (posix_fadvise, __posix_fadvise64_l64);
+versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
+#else
+strong_alias (posix_fadvise, posix_fadvise64);
+#endif

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044)
  2012-05-01 16:01 Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044) Joseph S. Myers
@ 2012-05-02  3:38 ` Matt Turner
  2012-05-02  9:54   ` Joseph S. Myers
  0 siblings, 1 reply; 5+ messages in thread
From: Matt Turner @ 2012-05-02  3:38 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: libc-ports

On Tue, May 1, 2012 at 12:00 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> Similar to the ABI comparisons I did for ARM with old binaries, I also did
> such comparisons for MIPS.  This showed that n64's export of
> posix_fadvise64 at version GLIBC_2.3.3 had disappeared as a result of my
> patch <http://sourceware.org/ml/libc-ports/2009-12/msg00001.html>.  The
> ABI was to export posix_fadvise64 at both GLIBC_2.2 and GLIBC_2.3.3 (with
> identical semantics - there was no need for the two symbol versions on
> n64, but given that glibc was released with them they should both stay as
> part of the ABI), so I've applied this patch to restore the GLIBC_2.3.3
> export.

Can't we just chalk this up to a happy accident and leave it out? If
no one noticed between 2.3.3 and now, the symbol can't be needed.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044)
  2012-05-02  3:38 ` Matt Turner
@ 2012-05-02  9:54   ` Joseph S. Myers
  2012-05-02 14:44     ` Matt Turner
  0 siblings, 1 reply; 5+ messages in thread
From: Joseph S. Myers @ 2012-05-02  9:54 UTC (permalink / raw)
  To: Matt Turner; +Cc: libc-ports

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1143 bytes --]

On Tue, 1 May 2012, Matt Turner wrote:

> On Tue, May 1, 2012 at 12:00 PM, Joseph S. Myers
> <joseph@codesourcery.com> wrote:
> > Similar to the ABI comparisons I did for ARM with old binaries, I also did
> > such comparisons for MIPS.  This showed that n64's export of
> > posix_fadvise64 at version GLIBC_2.3.3 had disappeared as a result of my
> > patch <http://sourceware.org/ml/libc-ports/2009-12/msg00001.html>.  The
> > ABI was to export posix_fadvise64 at both GLIBC_2.2 and GLIBC_2.3.3 (with
> > identical semantics - there was no need for the two symbol versions on
> > n64, but given that glibc was released with them they should both stay as
> > part of the ABI), so I've applied this patch to restore the GLIBC_2.3.3
> > export.
> 
> Can't we just chalk this up to a happy accident and leave it out? If
> no one noticed between 2.3.3 and now, the symbol can't be needed.

It's not "between 2.3.3 and now", it's between December 2009 
(2.10/2.11/2.12) and now, and people often skip a few glibc releases.  We 
shouldn't drop symbols just because they are obscure.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044)
  2012-05-02  9:54   ` Joseph S. Myers
@ 2012-05-02 14:44     ` Matt Turner
  2012-05-07  7:48       ` Maciej W. Rozycki
  0 siblings, 1 reply; 5+ messages in thread
From: Matt Turner @ 2012-05-02 14:44 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: libc-ports

On Wed, May 2, 2012 at 5:53 AM, Joseph S. Myers <joseph@codesourcery.com> wrote:
> It's not "between 2.3.3 and now", it's between December 2009
> (2.10/2.11/2.12) and now, and people often skip a few glibc releases.  We
> shouldn't drop symbols just because they are obscure.

Ah, okay. I thought the symbol was dropped around 2.3.3 (ie, December
2003) and that no one had noticed since then.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044)
  2012-05-02 14:44     ` Matt Turner
@ 2012-05-07  7:48       ` Maciej W. Rozycki
  0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2012-05-07  7:48 UTC (permalink / raw)
  To: Matt Turner; +Cc: Joseph S. Myers, libc-ports

On Wed, 2 May 2012, Matt Turner wrote:

> > It's not "between 2.3.3 and now", it's between December 2009
> > (2.10/2.11/2.12) and now, and people often skip a few glibc releases.  We
> > shouldn't drop symbols just because they are obscure.
> 
> Ah, okay. I thought the symbol was dropped around 2.3.3 (ie, December
> 2003) and that no one had noticed since then.

 The reverse -- it was introduced with 2.3.3 (at least at this version).

  Maciej

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-05-07  7:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-01 16:01 Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044) Joseph S. Myers
2012-05-02  3:38 ` Matt Turner
2012-05-02  9:54   ` Joseph S. Myers
2012-05-02 14:44     ` Matt Turner
2012-05-07  7:48       ` Maciej W. Rozycki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).