public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Chris Metcalf <cmetcalf@mellanox.com>
To: Joseph Myers <joseph@codesourcery.com>, libc-alpha@sourceware.org
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Subject: [PATCH] Make tile's set_dataplane API compatibility-only
Date: Mon, 14 Nov 2016 16:56:00 -0000	[thread overview]
Message-ID: <1479142545-13207-1-git-send-email-cmetcalf@mellanox.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1611042159080.19848@digraph.polyomino.org.uk>

The set_dataplane() API in <sys/dataplane.h> originally supported the
Tilera version of Linux as shipped to our customers.  Once we started
upstreaming the dataplane support in the kernel, the API changed
to use fcntl() as part of the current task-isolation patch series.

It doesn't seem like continuing to support the old API is useful
for newly-compiled code, and even supporting the old glibc binary
API on an upstream kernel that supports the new task isolation mode
isn't straightforward, since the semantics have changed in ways that
make it hard to map the old semantics precisely to the new ones,
so just return ENOSYS.
---

2016-11-14  Chris Metcalf  <cmetcalf@mellanox.com>

	* sysdeps/unix/sysv/linux/tile/set_dataplane.c
	(__old_set_dataplane): Rename from set_dataplane and make a
	compatibility symbol.
	* sysdeps/unix/sysv/linux/tile/sys/dataplane.h: Remove file.
	* sysdeps/unix/sysv/linux/tile/Makefile (sysdep_headers): Remove
	sys/dataplane.h.

 sysdeps/unix/sysv/linux/tile/Makefile        |  3 +--
 sysdeps/unix/sysv/linux/tile/set_dataplane.c |  8 +++++--
 sysdeps/unix/sysv/linux/tile/sys/dataplane.h | 33 ----------------------------
 3 files changed, 7 insertions(+), 37 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/tile/sys/dataplane.h

diff --git a/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile
index 43acea363350..04605a69acde 100644
--- a/sysdeps/unix/sysv/linux/tile/Makefile
+++ b/sysdeps/unix/sysv/linux/tile/Makefile
@@ -8,8 +8,7 @@ sysdep_headers += sys/reg.h
 sysdep_headers += sys/cachectl.h
 sysdep_routines += cacheflush
 
-# Control dataplane properties of current thread.
-sysdep_headers += sys/dataplane.h
+# Control dataplane properties of current thread (compatibility only).
 sysdep_routines += set_dataplane
 
 endif
diff --git a/sysdeps/unix/sysv/linux/tile/set_dataplane.c b/sysdeps/unix/sysv/linux/tile/set_dataplane.c
index 5a4bffe4f311..e2ea896e88d0 100644
--- a/sysdeps/unix/sysv/linux/tile/set_dataplane.c
+++ b/sysdeps/unix/sysv/linux/tile/set_dataplane.c
@@ -23,9 +23,9 @@
 #include <sys/dataplane.h>
 #endif
 
-/* Request dataplane modes from the kernel. */
+/* Request dataplane modes from the kernel (compatibility only). */
 int
-set_dataplane (int flags)
+__old_set_dataplane (int flags)
 {
 #ifdef __NR_set_dataplane
   return INLINE_SYSCALL (set_dataplane, 1, flags);
@@ -34,3 +34,7 @@ set_dataplane (int flags)
   return -1;
 #endif
 }
+
+#if SHLIB_COMPAT (libc, GLIBC_2_12, GLIBC_2_25)
+compat_symbol (libc, __old_set_dataplane, set_dataplane, GLIBC_2_12);
+#endif
diff --git a/sysdeps/unix/sysv/linux/tile/sys/dataplane.h b/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
deleted file mode 100644
index 82677f1f5f13..000000000000
--- a/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
-   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/>.  */
-
-#ifndef _SYS_DATAPLANE_H
-#define _SYS_DATAPLANE_H 1
-
-#include <features.h>
-
-/* Get the kernel definition for the flag bits.  */
-#include <asm/dataplane.h>
-
-__BEGIN_DECLS
-
-extern int set_dataplane (int flags);
-
-__END_DECLS
-
-#endif /* sys/dataplane.h */
-- 
2.7.2

  parent reply	other threads:[~2016-11-14 16:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-04 22:05 tilepro glibc problems Joseph Myers
2016-11-04 22:25 ` Chris Metcalf
2016-11-14 16:56 ` Chris Metcalf [this message]
2016-11-14 17:00   ` [PATCH] Make tile's set_dataplane API compatibility-only Joseph Myers
2016-11-14 20:05     ` [PATCH v2] " Chris Metcalf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1479142545-13207-1-git-send-email-cmetcalf@mellanox.com \
    --to=cmetcalf@mellanox.com \
    --cc=joseph@codesourcery.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).