about summary refs log tree commit diff
path: root/sysdeps/nacl/nacl-interfaces.c
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-05-11 20:28:07 -0400
committerZack Weinberg <zackw@panix.com>2017-05-20 08:09:10 -0400
commit42a844c6a213f9219a4baa013c7305679d5dcaaa (patch)
tree95270b369244dec03eeb01a75e9018e97f5c6694 /sysdeps/nacl/nacl-interfaces.c
parenta429d2ff07fcb6620269fc0ee46ea5066451fdff (diff)
downloadglibc-42a844c6a213f9219a4baa013c7305679d5dcaaa.tar.gz
glibc-42a844c6a213f9219a4baa013c7305679d5dcaaa.tar.xz
glibc-42a844c6a213f9219a4baa013c7305679d5dcaaa.zip
Remove the bulk of the NaCl port.
The NaCl port has not been actively maintained since before the 2.25
release.  The complementary GCC back-end was never contributed to GCC,
and we are given to understand that the current NaCl SDK has switched
to Clang and therefore cannot be used to build glibc anymore, so we
doubt that the port remains useful.

This commit simply removes the sysdeps/arm/nacl and sysdeps/nacl
directories and the abi-tags entry.

	Remove the NaCl port.
	* abi-tags: Remove .*-.*-nacl.* entry.
	* sysdeps/arm/nacl: Remove directory and contents.
	* sysdeps/nacl: Likewise.
Diffstat (limited to 'sysdeps/nacl/nacl-interfaces.c')
-rw-r--r--sysdeps/nacl/nacl-interfaces.c165
1 files changed, 0 insertions, 165 deletions
diff --git a/sysdeps/nacl/nacl-interfaces.c b/sysdeps/nacl/nacl-interfaces.c
deleted file mode 100644
index e7771d9f7d..0000000000
--- a/sysdeps/nacl/nacl-interfaces.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Using NaCl interface tables.
-   Copyright (C) 2015-2017 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 <errno.h>
-#include <nacl-interfaces.h>
-#include <ldsodefs.h>
-
-
-/* These magic symbols are provided implicitly by the linker to
-   give us the bounds of the specially-named sections.  */
-
-extern const struct nacl_interface __start_nacl_mandatory_interface_names[]
-  attribute_hidden;
-extern const struct nacl_interface __stop_nacl_mandatory_interface_names[]
-  attribute_hidden;
-
-extern uintptr_t __start_nacl_mandatory_interface_tables[]
-  attribute_hidden;
-extern uintptr_t __stop_nacl_mandatory_interface_tables[]
-  attribute_hidden;
-
-/* We use weak references for the optional ones, since they
-   might not be included at all in any given statically-linked program.  */
-
-extern const struct nacl_interface __start_nacl_optional_interface_names[]
-  attribute_hidden __attribute__ ((weak));
-extern const struct nacl_interface __stop_nacl_optional_interface_names[]
-  attribute_hidden __attribute__ ((weak));
-
-extern uintptr_t __start_nacl_optional_interface_tables[]
-  attribute_hidden __attribute__ ((weak));
-extern uintptr_t __stop_nacl_optional_interface_tables[]
-  attribute_hidden __attribute__ ((weak));
-
-static uintptr_t *
-next_nacl_table (uintptr_t *t, const struct nacl_interface *i)
-{
-  return (void *) t + i->table_size;
-}
-
-static void __attribute__ ((noreturn))
-missing_mandatory_interface (const struct nacl_interface *i)
-{
-  static const char before[] =
-    "FATAL: NaCl IRT interface query failed for essential interface \"";
-  static const char after[] =
-    "\"\n";
-
-  if (__nacl_irt_fdio.write != NULL)
-    {
-      size_t wrote;
-      (*__nacl_irt_fdio.write) (2, before, sizeof before - 1, &wrote);
-      (*__nacl_irt_fdio.write) (2, i->name, i->namelen - 1, &wrote);
-      (*__nacl_irt_fdio.write) (2, after, sizeof after - 1, &wrote);
-    }
-
-  if (__nacl_irt_basic.exit != NULL)
-    (*__nacl_irt_basic.exit) (-1);
-
-  __builtin_trap ();
-}
-
-static void
-initialize_mandatory_interfaces (void)
-{
-  const struct nacl_interface *i = __start_nacl_mandatory_interface_names;
-  uintptr_t *t = __start_nacl_mandatory_interface_tables;
-  while (i < __stop_nacl_mandatory_interface_names)
-    {
-      if (__nacl_irt_query (i->name, t, i->table_size) != i->table_size)
-	missing_mandatory_interface (i);
-
-      t = next_nacl_table (t, i);
-      i = next_nacl_interface (i);
-    }
-}
-
-
-static int
-nacl_missing_optional_interface (void)
-{
-  return ENOSYS;
-}
-
-static void
-initialize_optional_interfaces (void)
-{
-  const struct nacl_interface *i = __start_nacl_optional_interface_names;
-  uintptr_t *t = __start_nacl_optional_interface_tables;
-  while (i < __stop_nacl_optional_interface_names)
-    {
-      size_t filled = __nacl_irt_query (i->name, t, i->table_size);
-      if (filled != i->table_size)
-	for (size_t slot = 0; slot < i->table_size / sizeof *t; ++slot)
-	  t[slot] = (uintptr_t) &nacl_missing_optional_interface;
-
-      t = next_nacl_table (t, i);
-      i = next_nacl_interface (i);
-    }
-}
-
-
-void attribute_hidden
-__nacl_initialize_interfaces (void)
-{
-  initialize_mandatory_interfaces ();
-  initialize_optional_interfaces ();
-}
-
-
-static bool
-try_supply (const struct nacl_interface *const start,
-	    const struct nacl_interface *const stop,
-	    uintptr_t *all_tables,
-	    const char *ident, size_t ident_len,
-	    const void *table, size_t tablesize)
-{
-  const struct nacl_interface *i = start;
-  uintptr_t *t = all_tables;
-  while (i < stop)
-    {
-      if (i->table_size == tablesize
-	  && i->namelen == ident_len
-	  && !memcmp (i->name, ident, ident_len))
-	{
-	  memcpy (t, table, tablesize);
-	  return true;
-	}
-
-      t = next_nacl_table (t, i);
-      i = next_nacl_interface (i);
-    }
-
-  return false;
-}
-
-internal_function
-bool
-PASTE_NAME (__nacl_supply_interface_, MODULE_NAME)
-  (const char *ident, size_t ident_len, const void *table, size_t tablesize)
-{
-  return (try_supply (__start_nacl_mandatory_interface_names,
-		      __stop_nacl_mandatory_interface_names,
-		      __start_nacl_mandatory_interface_tables,
-		      ident, ident_len, table, tablesize)
-	  || try_supply (__start_nacl_optional_interface_names,
-			 __stop_nacl_optional_interface_names,
-			 __start_nacl_optional_interface_tables,
-			 ident, ident_len, table, tablesize));
-}