@@ -63,6 +63,9 @@ Version 2.26
* The obsolete <sys/ultrasound.h> header file has been removed.
+* The port to Native Client running on ARMv7-A (--host=arm-nacl) has been
+ removed.
+
Security related changes:
* The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
@@ -28,7 +28,5 @@
.*-.*-syllable.* 5 2.0.0 # just an arbitrary value
-.*-.*-nacl.* 6 42.0.0 # earliest compatible Chromium version
-
# There is no catch-all default here because every supported OS that uses
# ELF must have its own unique ABI tag.
deleted file mode 100644
@@ -1,2 +0,0 @@
-arm/nptl
-init_array
deleted file mode 100644
@@ -1,33 +0,0 @@
-# Makefile fragment for ARM/NaCl configurations.
-
-# 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/>.
-
-# sysdeps/nacl/Makefile needs this set to the architecture suffix used in
-# the NaCl SDK.
-nacl-sdk-arch = arm
-
-# We don't really support TLSDESC, even though the compiler thinks it does.
-have-arm-tls-desc = no
-
-ifeq ($(subdir),csu)
-sysdep_routines += aeabi_read_tp
-endif
-
-ifeq ($(subdir),elf)
-sysdep-rtld-routines += aeabi_read_tp
-endif
deleted file mode 100644
@@ -1,47 +0,0 @@
-/* longjmp that validates stack addresses. ARM/NaCl version.
- 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 <sysdep.h>
-
- .section .rodata.str1.1,"aMS",%progbits,1
- .type longjmp_msg,%object
-longjmp_msg:
- .string "longjmp causes uninitialized stack frame"
- .size longjmp_msg, .-longjmp_msg
-
- .text
-
-/* We don't have sigaltstack and so any longjmp must be to an outer frame. */
-.macro check_sp reg
- cmp sp, \reg
- bls .Lok
-#ifdef PIC
- movw r0, #:lower16:longjmp_msg-(.LPIC0+8)
- movt r0, #:upper16:longjmp_msg-(.LPIC0+8)
-.LPIC0: add r0, r0, pc
-#else
- movw r0, #:lower16:longjmp_msg
- movt r0, #:upper16:longjmp_msg
-#endif
- b HIDDEN_JUMPTARGET(__fortify_fail)
-.Lok:
-.endm
-
-#define CHECK_SP(reg) check_sp reg
-#define __longjmp ____longjmp_chk
-#include <__longjmp.S>
deleted file mode 100644
@@ -1,44 +0,0 @@
-/* ARM EABI helper function for reading the thread pointer. NaCl version.
- 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- 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.h>
-
-/* GCC will emit calls to this routine under -mtp=soft. */
-
- .hidden __aeabi_read_tp
-ENTRY (__aeabi_read_tp)
- ldr r0, [r9]
- sfi_bx lr
-END (__aeabi_read_tp)
deleted file mode 100644
@@ -1,43 +0,0 @@
-/* Macros to test for CPU features on ARM. NaCl version.
- 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/>. */
-
-#ifndef _NACL_ARM_FEATURES_H
-#define _NACL_ARM_FEATURES_H 1
-
-#ifdef __SOFTFP__
-# error NaCl should always have VFP enabled
-#endif
-
-/* NaCl does not support iWMMXt at all. */
-#define ARM_ASSUME_NO_IWMMXT 1
-
-/* NaCl does not allow instructions to target the pc register. */
-#define ARM_ALWAYS_BX 1
-
-/* Computed branch targets must be bundle-aligned, which is to 16 bytes. */
-#define ARM_BX_ALIGN_LOG2 4
-
-/* Two-register addressing modes are never allowed. */
-#define ARM_NO_INDEX_REGISTER 1
-
-/* Only ARM mode code is allowed, never Thumb mode. */
-#define NO_THUMB
-
-#include_next <arm-features.h>
-
-#endif /* arm-features.h */
deleted file mode 100644
@@ -1,53 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions. ARM/NaCl version.
- 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/>. */
-
-#ifndef dl_machine_h
-
-/* This is only needed for handling TEXTRELs and NaCl will never
- support TEXTRELs at all. */
-#define CLEAR_CACHE(start, end) __builtin_trap ()
-
-#endif
-
-/* The rest is just machine-specific.
- This #include is outside the #ifndef because the parts of
- dl-machine.h used only by dynamic-link.h are outside the guard. */
-#include <sysdeps/arm/dl-machine.h>
-
-#ifdef dl_machine_h
-
-/* Initial entry point code for the dynamic linker.
- The C function `_dl_start' is the real entry point;
- its return value is the user program's entry point. */
-#undef RTLD_START
-#define RTLD_START asm ("\
-.text\n\
-.globl _start\n\
-.type _start, %function\n\
-.p2align 4\n\
-_start:\n\
- @ r0 has the pointer to the info block (see nacl_startup.h)\n\
- mov r1, sp @ Save stack base for __libc_stack_end.\n\
- push {r0-r3} @ Push those, maintaining alignment to 16.\n\
- mov r0, sp @ Pointer to {info, sp} is argument.\n\
- sfi_bl _dl_start\n\
- pop {r1-r4} @ Restore stack, getting info block into r1.\n\
- mov lr, #0 @ Return address for noreturn call.\n\
- b _dl_start_user");
-
-#endif
deleted file mode 100644
@@ -1,278 +0,0 @@
-/* PLT trampolines. ARM/NaCl version.
- 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 <sysdep.h>
-
- .syntax unified
- .text
-
-@ Change &GOT[n+3] into 8*n. Note relocs are 8 bytes each.
-.macro compute_reloc_arg pltgot, got2
- sub r1, \pltgot, \got2 @ r1 = &GOT[n+3] - &GOT[2] = 4*(n-1)
- sub r1, r1, #4 @ r1 = 4*n
- add r1, r1, r1 @ r1 *= 2 = 8*n
-.endm
-
- CFI_SECTIONS
- .globl _dl_runtime_resolve
- .type _dl_runtime_resolve, %function
- .p2align 4
-_dl_runtime_resolve:
- cfi_startproc
- cfi_adjust_cfa_offset (8)
-
- @ We get called with:
- @ lr contains the return address from this call
- @ stack[1] contains &GOT[n+3] (pointer to function)
- @ stack[0] points to &GOT[2]
-
- ldr ip, [sp] @ ip gets &GOT[2]
-
- @ Save the argument registers and the return address.
- @ r4 doesn't need to be saved, but it makes the total
- @ adjustment to sp (including the two words pushed by
- @ the PLT code) an even eight words, so sp stays aligned.
- push {r0-r4, lr}
- cfi_adjust_cfa_offset (24)
- cfi_rel_offset (r0, 0)
- cfi_rel_offset (r1, 4)
- cfi_rel_offset (r2, 8)
- cfi_rel_offset (r3, 12)
- cfi_rel_offset (r4, 16)
- cfi_rel_offset (lr, 20)
-
- ldr r1, [sp, #28] @ r1 gets &GOT[n+3]
-
- @ Get the 'struct link_map *' for the first argument to _dl_fixup.
- sfi_breg ip, ldr r0, [\B, #-4]
-
- @ Get the reloc offset for the second argument to _dl_fixup.
- compute_reloc_arg r1, ip
-
- @ This does the real work, and returns the real call target.
- sfi_bl _dl_fixup
- mov ip, r0
-
- @ Restore the saved registers.
- pop {r0-r4, lr}
- cfi_adjust_cfa_offset (-24)
- cfi_restore (r0)
- cfi_restore (r1)
- cfi_restore (r2)
- cfi_restore (r3)
- cfi_restore (r4)
- cfi_restore (lr)
-
- @ Now compensate for the two words pushed by the PLT code.
- sfi_sp add sp, #8
- cfi_adjust_cfa_offset (-8)
-
- @ Finally, jump to the newfound call target.
- sfi_bx ip
-
- cfi_endproc
- .size _dl_runtime_resolve, .-_dl_runtime_resolve
-
-#ifndef PROF
- .globl _dl_runtime_profile
- .type _dl_runtime_profile, #function
- .p2align 4
-_dl_runtime_profile:
- cfi_startproc
- cfi_adjust_cfa_offset (8)
-
- @ We get called with:
- @ lr contains the return address from this call
- @ stack[1] contains &GOT[n+3] (pointer to function)
- @ stack[0] points to &GOT[2]
-
- @ Stack layout:
- @ sp + 204 framesize returned from pltenter
- @ sp + 12 La_arm_regs
- @ sp + 4 Saved two arguments to _dl_profile_fixup
- @ sp + 0 outgoing argument to _dl_profile_fixup
- @ For now, we only save the general purpose registers.
-# define PLTEXIT_ARGS 4
-# define LA_ARM_REGS (PLTEXIT_ARGS + 8)
-# define LA_ARM_REGS_SIZE (4 * (4 + 1 + 1 + 42))
-# define PLTENTER_FRAMESIZE (LA_ARM_REGS + LA_ARM_REGS_SIZE)
-# define FRAMESIZE (((PLTENTER_FRAMESIZE + 4) + 15) & -16)
-
- @ The NaCl ABI requires that sp be aligned to 16 bytes at call
- @ sites. Assuming that was met on entry to the PLT, sp is
- @ now exactly 8 bytes misaligned.
- sfi_sp sub sp, #(FRAMESIZE - 8)
- cfi_def_cfa_offset (FRAMESIZE)
-
- @ Store the argument registers in La_arm_regs.
- strd r0, r1, [sp, #LA_ARM_REGS]
- cfi_offset (r0, LA_ARM_REGS + 0)
- cfi_offset (r1, LA_ARM_REGS + 4)
- strd r2, r3, [sp, #(LA_ARM_REGS + 8)]
- cfi_offset (r2, LA_ARM_REGS + 8)
- cfi_offset (r3, LA_ARM_REGS + 12)
-
- ldr ip, [sp, #(FRAMESIZE - 8)] @ ip gets &GOT[2]
- ldr r3, [sp, #(FRAMESIZE - 4)] @ r3 gets &GOT[n+3]
-
- @ Recover the incoming sp and lr and save those in La_arm_regs.
- add r0, sp, #FRAMESIZE
- mov r1, lr
- strd r0, r1, [sp, #(LA_ARM_REGS + 16)]
- cfi_offset (sp, LA_ARM_REGS + 16)
- cfi_offset (lr, LA_ARM_REGS + 20)
-
- @ Get the 'struct link_map *' for the first arg to _dl_profile_fixup.
- sfi_breg ip, ldr r0, [\B, #-4]
-
- @ Get the reloc offset for the second argument to _dl_profile_fixup.
- compute_reloc_arg r3, ip
-
- @ The third argument is the original return address, still in lr.
- mov r2, lr
-
- @ Compute the fourth argument, the La_arm_regs pointer.
- add r3, sp, #PLTEXIT_ARGS
-
- @ Compute the fifth argument, the address of the 'framesize'
- @ out parameter, and store it at the top of the stack.
- add ip, sp, #PLTENTER_FRAMESIZE
- str ip, [sp]
-
- @ Save away the first two arguments, which we will need
- @ again for _dl_call_pltexit, below.
- strd r0, r1, [sp, #PLTEXIT_ARGS]
-
- @ This does the real work, and returns the real call target.
- sfi_bl _dl_profile_fixup
-
- @ The address to call is now in r0.
-
- @ Check whether we're wrapping this function,
- @ i.e. if the framesize out parameter is >= 0.
- ldr ip, [sp, #PLTENTER_FRAMESIZE]
- cmp ip, #0
- bge 1f
- cfi_remember_state
-
- @ Save _dl_profile_fixup's return value: the real call target.
- mov ip, r0
-
- @ Restore the registers from the La_arm_regs (perhaps as modified
- @ by audit modules' pltenter functions).
- add r1, sp, #LA_ARM_REGS
- sfi_sp sfi_breg r1, ldmia \B, {r0-r3, sp, lr}
- cfi_def_cfa_offset (0)
- cfi_restore (r0)
- cfi_restore (r1)
- cfi_restore (r2)
- cfi_restore (r3)
- cfi_restore (sp)
- cfi_restore (lr)
-
- @ Finally, jump to the newfound call target.
- sfi_bx ip
-
-1: cfi_restore_state
- @ The new frame size is in ip.
-
- @ Save the fp in the stack slot previously used for the fifth
- @ argument to _dl_profile_fixup.
- str fp, [sp]
- cfi_offset (fp, 0)
-
- @ Save the result of _dl_profile_fixup, the real call target.
- @ We'll reuse the stack slot just used for the 'framesize'
- @ out parameter to _dl_profile_fixup.
- str r0, [sp, #PLTENTER_FRAMESIZE]
-
- @ Stack layout:
- @ fp + 264 call target
- @ fp + 72 La_arm_regs
- @ fp + 68 Saved two arguments to _dl_profile_fixup
- @ fp + 64 saved fp
- @ fp + 0 La_arm_retval
- @ sp..fp copied incoming stack space (plus alignment)
- @ For now, we only save the general purpose registers.
-# define FP_LA_ARM_RETVAL 0
-# define LA_ARM_RETVAL_SIZE (4 * (4 + 12))
-# define FP_SAVED_FP LA_ARM_RETVAL_SIZE
-# define FP_PLTEXIT_ARGS (FP_SAVED_FP + 4)
-# define FP_LA_ARM_REGS (FP_PLTEXIT_ARGS + 8)
-# define FP_CALL_TARGET (FP_LA_ARM_REGS + LA_ARM_REGS_SIZE)
-# define FP_FRAMESIZE (FP_CALL_TARGET + 4)
-
- sub fp, sp, #(FP_FRAMESIZE - FRAMESIZE)
- cfi_def_cfa (fp, FP_FRAMESIZE)
-
- sub r1, fp, ip
- @ This doesn't need sfi_sp because we just include the
- @ sandboxing mask along with the alignment mask.
- bic sp, r1, #0xc000000f
-
- @ Copy the stack arguments. The audit modules' pltenter
- @ function(s) decided how much needs to be copied.
- @ Load the sp as modified by pltenter functions, rather
- @ than what we think the incoming sp was (fp + FP_FRAMESIZE).
- sfi_breg fp, ldr r1, [\B, #(FP_LA_ARM_REGS + 16)]
- mov r0, sp
- mov r2, ip
- sfi_bl memcpy
-
- @ Load up the arguments from La_arm_regs and call the user's function.
- sfi_breg fp, ldr ip, [\B, #FP_CALL_TARGET]
- sfi_breg fp, ldrd r0, r1, [\B, #FP_LA_ARM_REGS]
- sfi_breg fp, ldrd r2, r3, [\B, #(FP_LA_ARM_REGS + 8)]
- sfi_blx ip
-
- @ Stash the return value registers in La_arm_retval.
- sfi_breg fp, strd r0, r1, [\B, #FP_LA_ARM_RETVAL]
- sfi_breg fp, strd r2, r3, [\B, #(FP_LA_ARM_RETVAL + 8)]
-
- @ Call pltexit. We saved the first two arguments earlier--they
- @ are the same ones passed to _dl_profile_fixup. The latter two
- @ arguments are La_arm_regs and La_arm_retval blocks, respectively.
- sfi_breg fp, ldrd r0, r1, [\B, #FP_PLTEXIT_ARGS]
- add r2, fp, #FP_LA_ARM_REGS
- add r3, fp, #FP_LA_ARM_RETVAL
- sfi_bl _dl_call_pltexit
-
- @ Reload the saved return value registers for the caller.
- sfi_breg fp, ldrd r0, r1, [\B, #FP_LA_ARM_RETVAL]
- sfi_breg fp, ldrd r2, r3, [\B, #(FP_LA_ARM_RETVAL + 8)]
-
- @ Unwind the frame.
- sfi_sp mov sp, fp
- cfi_def_cfa_register (sp)
- ldr fp, [sp, #FP_SAVED_FP]
- cfi_restore (fp)
- @ Reload the lr and sp values from La_arm_regs, where they
- @ might have been modified by pltenter functions, rather than
- @ computing what we think the incoming value was.
- ldr lr, [sp, #(FP_LA_ARM_REGS + 20)]
- cfi_restore (lr)
- sfi_sp ldr sp, [sp, #(FP_LA_ARM_REGS + 16)]
- cfi_def_cfa_offset (0)
-
- @ Finally, return to the caller.
- sfi_bx lr
-
- cfi_endproc
- .size _dl_runtime_profile, .-_dl_runtime_profile
-#endif
- .previous
deleted file mode 100644
@@ -1,41 +0,0 @@
-/* Private jmp_buf-related definitions. NaCl/ARM version.
- 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/>. */
-
-#ifndef _INCLUDE_BITS_SETJMP_H
-#define _INCLUDE_BITS_SETJMP_H 1
-
-#ifndef __ASSEMBLER__
-/* Get the public declarations. */
-# include <sysdeps/arm/bits/setjmp.h>
-#endif
-
-# ifndef _ISOMAC
-
-/* Register list for a ldm/stm instruction to load/store
- the general registers from a __jmp_buf.
-
- The generic ARM definition includes r9 (v6), which is not
- permitted under NaCl. We add r3 even though it's call-clobbered,
- just to keep the size the same as the generic version. */
-#define JMP_BUF_REGLIST {r3, v1-v5, sl, fp}
-
-/* Index of __jmp_buf where the sp register resides. */
-#define __JMP_BUF_SP 0
-
-# endif /* _ISOMAC */
-#endif /* include/bits/setjmp.h */
deleted file mode 100644
@@ -1,1855 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 _Exit F
-GLIBC_2.22 _IO_2_1_stderr_ D 0xa0
-GLIBC_2.22 _IO_2_1_stdin_ D 0xa0
-GLIBC_2.22 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.22 _IO_adjust_column F
-GLIBC_2.22 _IO_adjust_wcolumn F
-GLIBC_2.22 _IO_default_doallocate F
-GLIBC_2.22 _IO_default_finish F
-GLIBC_2.22 _IO_default_pbackfail F
-GLIBC_2.22 _IO_default_uflow F
-GLIBC_2.22 _IO_default_xsgetn F
-GLIBC_2.22 _IO_default_xsputn F
-GLIBC_2.22 _IO_do_write F
-GLIBC_2.22 _IO_doallocbuf F
-GLIBC_2.22 _IO_fclose F
-GLIBC_2.22 _IO_fdopen F
-GLIBC_2.22 _IO_feof F
-GLIBC_2.22 _IO_ferror F
-GLIBC_2.22 _IO_fflush F
-GLIBC_2.22 _IO_fgetpos F
-GLIBC_2.22 _IO_fgetpos64 F
-GLIBC_2.22 _IO_fgets F
-GLIBC_2.22 _IO_file_attach F
-GLIBC_2.22 _IO_file_close F
-GLIBC_2.22 _IO_file_close_it F
-GLIBC_2.22 _IO_file_doallocate F
-GLIBC_2.22 _IO_file_finish F
-GLIBC_2.22 _IO_file_fopen F
-GLIBC_2.22 _IO_file_init F
-GLIBC_2.22 _IO_file_jumps D 0x54
-GLIBC_2.22 _IO_file_open F
-GLIBC_2.22 _IO_file_overflow F
-GLIBC_2.22 _IO_file_read F
-GLIBC_2.22 _IO_file_seek F
-GLIBC_2.22 _IO_file_seekoff F
-GLIBC_2.22 _IO_file_setbuf F
-GLIBC_2.22 _IO_file_stat F
-GLIBC_2.22 _IO_file_sync F
-GLIBC_2.22 _IO_file_underflow F
-GLIBC_2.22 _IO_file_write F
-GLIBC_2.22 _IO_file_xsputn F
-GLIBC_2.22 _IO_flockfile F
-GLIBC_2.22 _IO_flush_all F
-GLIBC_2.22 _IO_flush_all_linebuffered F
-GLIBC_2.22 _IO_fopen F
-GLIBC_2.22 _IO_fprintf F
-GLIBC_2.22 _IO_fputs F
-GLIBC_2.22 _IO_fread F
-GLIBC_2.22 _IO_free_backup_area F
-GLIBC_2.22 _IO_free_wbackup_area F
-GLIBC_2.22 _IO_fsetpos F
-GLIBC_2.22 _IO_fsetpos64 F
-GLIBC_2.22 _IO_ftell F
-GLIBC_2.22 _IO_ftrylockfile F
-GLIBC_2.22 _IO_funlockfile F
-GLIBC_2.22 _IO_fwrite F
-GLIBC_2.22 _IO_getc F
-GLIBC_2.22 _IO_getline F
-GLIBC_2.22 _IO_getline_info F
-GLIBC_2.22 _IO_gets F
-GLIBC_2.22 _IO_init F
-GLIBC_2.22 _IO_init_marker F
-GLIBC_2.22 _IO_init_wmarker F
-GLIBC_2.22 _IO_iter_begin F
-GLIBC_2.22 _IO_iter_end F
-GLIBC_2.22 _IO_iter_file F
-GLIBC_2.22 _IO_iter_next F
-GLIBC_2.22 _IO_least_wmarker F
-GLIBC_2.22 _IO_link_in F
-GLIBC_2.22 _IO_list_all D 0x4
-GLIBC_2.22 _IO_list_lock F
-GLIBC_2.22 _IO_list_resetlock F
-GLIBC_2.22 _IO_list_unlock F
-GLIBC_2.22 _IO_marker_delta F
-GLIBC_2.22 _IO_marker_difference F
-GLIBC_2.22 _IO_padn F
-GLIBC_2.22 _IO_peekc_locked F
-GLIBC_2.22 _IO_popen F
-GLIBC_2.22 _IO_printf F
-GLIBC_2.22 _IO_proc_close F
-GLIBC_2.22 _IO_proc_open F
-GLIBC_2.22 _IO_putc F
-GLIBC_2.22 _IO_puts F
-GLIBC_2.22 _IO_remove_marker F
-GLIBC_2.22 _IO_seekmark F
-GLIBC_2.22 _IO_seekoff F
-GLIBC_2.22 _IO_seekpos F
-GLIBC_2.22 _IO_seekwmark F
-GLIBC_2.22 _IO_setb F
-GLIBC_2.22 _IO_setbuffer F
-GLIBC_2.22 _IO_setvbuf F
-GLIBC_2.22 _IO_sgetn F
-GLIBC_2.22 _IO_sprintf F
-GLIBC_2.22 _IO_sputbackc F
-GLIBC_2.22 _IO_sputbackwc F
-GLIBC_2.22 _IO_sscanf F
-GLIBC_2.22 _IO_str_init_readonly F
-GLIBC_2.22 _IO_str_init_static F
-GLIBC_2.22 _IO_str_overflow F
-GLIBC_2.22 _IO_str_pbackfail F
-GLIBC_2.22 _IO_str_seekoff F
-GLIBC_2.22 _IO_str_underflow F
-GLIBC_2.22 _IO_sungetc F
-GLIBC_2.22 _IO_sungetwc F
-GLIBC_2.22 _IO_switch_to_get_mode F
-GLIBC_2.22 _IO_switch_to_main_wget_area F
-GLIBC_2.22 _IO_switch_to_wbackup_area F
-GLIBC_2.22 _IO_switch_to_wget_mode F
-GLIBC_2.22 _IO_un_link F
-GLIBC_2.22 _IO_ungetc F
-GLIBC_2.22 _IO_unsave_markers F
-GLIBC_2.22 _IO_unsave_wmarkers F
-GLIBC_2.22 _IO_vfprintf F
-GLIBC_2.22 _IO_vfscanf F
-GLIBC_2.22 _IO_vsprintf F
-GLIBC_2.22 _IO_wdefault_doallocate F
-GLIBC_2.22 _IO_wdefault_finish F
-GLIBC_2.22 _IO_wdefault_pbackfail F
-GLIBC_2.22 _IO_wdefault_uflow F
-GLIBC_2.22 _IO_wdefault_xsgetn F
-GLIBC_2.22 _IO_wdefault_xsputn F
-GLIBC_2.22 _IO_wdo_write F
-GLIBC_2.22 _IO_wdoallocbuf F
-GLIBC_2.22 _IO_wfile_jumps D 0x54
-GLIBC_2.22 _IO_wfile_overflow F
-GLIBC_2.22 _IO_wfile_seekoff F
-GLIBC_2.22 _IO_wfile_sync F
-GLIBC_2.22 _IO_wfile_underflow F
-GLIBC_2.22 _IO_wfile_xsputn F
-GLIBC_2.22 _IO_wmarker_delta F
-GLIBC_2.22 _IO_wsetb F
-GLIBC_2.22 __aeabi_MB_CUR_MAX F
-GLIBC_2.22 __aeabi_assert F
-GLIBC_2.22 __aeabi_atexit F
-GLIBC_2.22 __aeabi_errno_addr F
-GLIBC_2.22 __aeabi_localeconv F
-GLIBC_2.22 __aeabi_memclr F
-GLIBC_2.22 __aeabi_memclr4 F
-GLIBC_2.22 __aeabi_memclr8 F
-GLIBC_2.22 __aeabi_memcpy F
-GLIBC_2.22 __aeabi_memcpy4 F
-GLIBC_2.22 __aeabi_memcpy8 F
-GLIBC_2.22 __aeabi_memmove F
-GLIBC_2.22 __aeabi_memmove4 F
-GLIBC_2.22 __aeabi_memmove8 F
-GLIBC_2.22 __aeabi_memset F
-GLIBC_2.22 __aeabi_memset4 F
-GLIBC_2.22 __aeabi_memset8 F
-GLIBC_2.22 __after_morecore_hook D 0x4
-GLIBC_2.22 __argz_count F
-GLIBC_2.22 __argz_next F
-GLIBC_2.22 __argz_stringify F
-GLIBC_2.22 __asprintf F
-GLIBC_2.22 __asprintf_chk F
-GLIBC_2.22 __assert F
-GLIBC_2.22 __assert_fail F
-GLIBC_2.22 __assert_perror_fail F
-GLIBC_2.22 __backtrace F
-GLIBC_2.22 __backtrace_symbols F
-GLIBC_2.22 __backtrace_symbols_fd F
-GLIBC_2.22 __bsd_getpgrp F
-GLIBC_2.22 __bzero F
-GLIBC_2.22 __check_rhosts_file D 0x4
-GLIBC_2.22 __chk_fail F
-GLIBC_2.22 __close F
-GLIBC_2.22 __confstr_chk F
-GLIBC_2.22 __connect F
-GLIBC_2.22 __ctype_b_loc F
-GLIBC_2.22 __ctype_get_mb_cur_max F
-GLIBC_2.22 __ctype_tolower_loc F
-GLIBC_2.22 __ctype_toupper_loc F
-GLIBC_2.22 __curbrk D 0x4
-GLIBC_2.22 __cxa_at_quick_exit F
-GLIBC_2.22 __cxa_atexit F
-GLIBC_2.22 __cxa_finalize F
-GLIBC_2.22 __cxa_thread_atexit_impl F
-GLIBC_2.22 __cyg_profile_func_enter F
-GLIBC_2.22 __cyg_profile_func_exit F
-GLIBC_2.22 __daylight D 0x4
-GLIBC_2.22 __dcgettext F
-GLIBC_2.22 __default_morecore F
-GLIBC_2.22 __dgettext F
-GLIBC_2.22 __dprintf_chk F
-GLIBC_2.22 __dup2 F
-GLIBC_2.22 __duplocale F
-GLIBC_2.22 __environ D 0x4
-GLIBC_2.22 __fbufsize F
-GLIBC_2.22 __fcntl F
-GLIBC_2.22 __fdelt_chk F
-GLIBC_2.22 __fdelt_warn F
-GLIBC_2.22 __ffs F
-GLIBC_2.22 __fgets_chk F
-GLIBC_2.22 __fgets_unlocked_chk F
-GLIBC_2.22 __fgetws_chk F
-GLIBC_2.22 __fgetws_unlocked_chk F
-GLIBC_2.22 __finite F
-GLIBC_2.22 __finitef F
-GLIBC_2.22 __finitel F
-GLIBC_2.22 __flbf F
-GLIBC_2.22 __fork F
-GLIBC_2.22 __fpending F
-GLIBC_2.22 __fprintf_chk F
-GLIBC_2.22 __fpu_control D 0x4
-GLIBC_2.22 __fpurge F
-GLIBC_2.22 __fread_chk F
-GLIBC_2.22 __fread_unlocked_chk F
-GLIBC_2.22 __freadable F
-GLIBC_2.22 __freading F
-GLIBC_2.22 __free_hook D 0x4
-GLIBC_2.22 __freelocale F
-GLIBC_2.22 __fsetlocking F
-GLIBC_2.22 __fwprintf_chk F
-GLIBC_2.22 __fwritable F
-GLIBC_2.22 __fwriting F
-GLIBC_2.22 __fxstat F
-GLIBC_2.22 __fxstat64 F
-GLIBC_2.22 __fxstatat F
-GLIBC_2.22 __fxstatat64 F
-GLIBC_2.22 __getauxval F
-GLIBC_2.22 __getcwd_chk F
-GLIBC_2.22 __getdelim F
-GLIBC_2.22 __getdomainname_chk F
-GLIBC_2.22 __getgroups_chk F
-GLIBC_2.22 __gethostname_chk F
-GLIBC_2.22 __getlogin_r_chk F
-GLIBC_2.22 __getpagesize F
-GLIBC_2.22 __getpgid F
-GLIBC_2.22 __getpid F
-GLIBC_2.22 __gets_chk F
-GLIBC_2.22 __gettimeofday F
-GLIBC_2.22 __getwd_chk F
-GLIBC_2.22 __gmtime_r F
-GLIBC_2.22 __gnu_Unwind_Find_exidx F
-GLIBC_2.22 __gnu_mcount_nc F
-GLIBC_2.22 __h_errno_location F
-GLIBC_2.22 __isalnum_l F
-GLIBC_2.22 __isalpha_l F
-GLIBC_2.22 __isascii_l F
-GLIBC_2.22 __isblank_l F
-GLIBC_2.22 __iscntrl_l F
-GLIBC_2.22 __isctype F
-GLIBC_2.22 __isdigit_l F
-GLIBC_2.22 __isgraph_l F
-GLIBC_2.22 __isinf F
-GLIBC_2.22 __isinff F
-GLIBC_2.22 __isinfl F
-GLIBC_2.22 __islower_l F
-GLIBC_2.22 __isnan F
-GLIBC_2.22 __isnanf F
-GLIBC_2.22 __isnanl F
-GLIBC_2.22 __isoc99_fscanf F
-GLIBC_2.22 __isoc99_fwscanf F
-GLIBC_2.22 __isoc99_scanf F
-GLIBC_2.22 __isoc99_sscanf F
-GLIBC_2.22 __isoc99_swscanf F
-GLIBC_2.22 __isoc99_vfscanf F
-GLIBC_2.22 __isoc99_vfwscanf F
-GLIBC_2.22 __isoc99_vscanf F
-GLIBC_2.22 __isoc99_vsscanf F
-GLIBC_2.22 __isoc99_vswscanf F
-GLIBC_2.22 __isoc99_vwscanf F
-GLIBC_2.22 __isoc99_wscanf F
-GLIBC_2.22 __isprint_l F
-GLIBC_2.22 __ispunct_l F
-GLIBC_2.22 __isspace_l F
-GLIBC_2.22 __isupper_l F
-GLIBC_2.22 __iswalnum_l F
-GLIBC_2.22 __iswalpha_l F
-GLIBC_2.22 __iswblank_l F
-GLIBC_2.22 __iswcntrl_l F
-GLIBC_2.22 __iswctype F
-GLIBC_2.22 __iswctype_l F
-GLIBC_2.22 __iswdigit_l F
-GLIBC_2.22 __iswgraph_l F
-GLIBC_2.22 __iswlower_l F
-GLIBC_2.22 __iswprint_l F
-GLIBC_2.22 __iswpunct_l F
-GLIBC_2.22 __iswspace_l F
-GLIBC_2.22 __iswupper_l F
-GLIBC_2.22 __iswxdigit_l F
-GLIBC_2.22 __isxdigit_l F
-GLIBC_2.22 __ivaliduser F
-GLIBC_2.22 __libc_allocate_rtsig F
-GLIBC_2.22 __libc_calloc F
-GLIBC_2.22 __libc_current_sigrtmax F
-GLIBC_2.22 __libc_current_sigrtmin F
-GLIBC_2.22 __libc_free F
-GLIBC_2.22 __libc_freeres F
-GLIBC_2.22 __libc_init_first F
-GLIBC_2.22 __libc_mallinfo F
-GLIBC_2.22 __libc_malloc F
-GLIBC_2.22 __libc_mallopt F
-GLIBC_2.22 __libc_memalign F
-GLIBC_2.22 __libc_pvalloc F
-GLIBC_2.22 __libc_realloc F
-GLIBC_2.22 __libc_start_main F
-GLIBC_2.22 __libc_valloc F
-GLIBC_2.22 __longjmp_chk F
-GLIBC_2.22 __lseek F
-GLIBC_2.22 __lxstat F
-GLIBC_2.22 __lxstat64 F
-GLIBC_2.22 __malloc_hook D 0x4
-GLIBC_2.22 __malloc_initialize_hook D 0x4
-GLIBC_2.22 __mbrlen F
-GLIBC_2.22 __mbrtowc F
-GLIBC_2.22 __mbsnrtowcs_chk F
-GLIBC_2.22 __mbsrtowcs_chk F
-GLIBC_2.22 __mbstowcs_chk F
-GLIBC_2.22 __memalign_hook D 0x4
-GLIBC_2.22 __memcpy_chk F
-GLIBC_2.22 __memmove_chk F
-GLIBC_2.22 __mempcpy F
-GLIBC_2.22 __mempcpy_chk F
-GLIBC_2.22 __mempcpy_small F
-GLIBC_2.22 __memset_chk F
-GLIBC_2.22 __monstartup F
-GLIBC_2.22 __morecore D 0x4
-GLIBC_2.22 __nanosleep F
-GLIBC_2.22 __newlocale F
-GLIBC_2.22 __nl_langinfo_l F
-GLIBC_2.22 __nss_configure_lookup F
-GLIBC_2.22 __nss_database_lookup F
-GLIBC_2.22 __nss_group_lookup F
-GLIBC_2.22 __nss_hostname_digits_dots F
-GLIBC_2.22 __nss_hosts_lookup F
-GLIBC_2.22 __nss_next F
-GLIBC_2.22 __nss_passwd_lookup F
-GLIBC_2.22 __obstack_printf_chk F
-GLIBC_2.22 __obstack_vprintf_chk F
-GLIBC_2.22 __open F
-GLIBC_2.22 __open64 F
-GLIBC_2.22 __open64_2 F
-GLIBC_2.22 __open_2 F
-GLIBC_2.22 __openat64_2 F
-GLIBC_2.22 __openat_2 F
-GLIBC_2.22 __overflow F
-GLIBC_2.22 __pipe F
-GLIBC_2.22 __poll F
-GLIBC_2.22 __poll_chk F
-GLIBC_2.22 __posix_getopt F
-GLIBC_2.22 __ppoll_chk F
-GLIBC_2.22 __pread64 F
-GLIBC_2.22 __pread64_chk F
-GLIBC_2.22 __pread_chk F
-GLIBC_2.22 __printf_chk F
-GLIBC_2.22 __printf_fp F
-GLIBC_2.22 __profile_frequency F
-GLIBC_2.22 __progname D 0x4
-GLIBC_2.22 __progname_full D 0x4
-GLIBC_2.22 __ptsname_r_chk F
-GLIBC_2.22 __pwrite64 F
-GLIBC_2.22 __rawmemchr F
-GLIBC_2.22 __rcmd_errstr D 0x4
-GLIBC_2.22 __read F
-GLIBC_2.22 __read_chk F
-GLIBC_2.22 __readlink_chk F
-GLIBC_2.22 __readlinkat_chk F
-GLIBC_2.22 __realloc_hook D 0x4
-GLIBC_2.22 __realpath_chk F
-GLIBC_2.22 __recv_chk F
-GLIBC_2.22 __recvfrom_chk F
-GLIBC_2.22 __register_atfork F
-GLIBC_2.22 __res_init F
-GLIBC_2.22 __res_nclose F
-GLIBC_2.22 __res_ninit F
-GLIBC_2.22 __res_randomid F
-GLIBC_2.22 __res_state F
-GLIBC_2.22 __sbrk F
-GLIBC_2.22 __sched_cpualloc F
-GLIBC_2.22 __sched_cpucount F
-GLIBC_2.22 __sched_cpufree F
-GLIBC_2.22 __sched_get_priority_max F
-GLIBC_2.22 __sched_get_priority_min F
-GLIBC_2.22 __sched_getparam F
-GLIBC_2.22 __sched_getscheduler F
-GLIBC_2.22 __sched_setscheduler F
-GLIBC_2.22 __sched_yield F
-GLIBC_2.22 __select F
-GLIBC_2.22 __send F
-GLIBC_2.22 __setpgid F
-GLIBC_2.22 __sigaction F
-GLIBC_2.22 __sigaddset F
-GLIBC_2.22 __sigdelset F
-GLIBC_2.22 __sigismember F
-GLIBC_2.22 __signbit F
-GLIBC_2.22 __signbitf F
-GLIBC_2.22 __sigpause F
-GLIBC_2.22 __sigsetjmp F
-GLIBC_2.22 __sigsuspend F
-GLIBC_2.22 __snprintf_chk F
-GLIBC_2.22 __sprintf_chk F
-GLIBC_2.22 __stack_chk_fail F
-GLIBC_2.22 __stpcpy F
-GLIBC_2.22 __stpcpy_chk F
-GLIBC_2.22 __stpcpy_small F
-GLIBC_2.22 __stpncpy F
-GLIBC_2.22 __stpncpy_chk F
-GLIBC_2.22 __strcasecmp F
-GLIBC_2.22 __strcasecmp_l F
-GLIBC_2.22 __strcasestr F
-GLIBC_2.22 __strcat_chk F
-GLIBC_2.22 __strcoll_l F
-GLIBC_2.22 __strcpy_chk F
-GLIBC_2.22 __strcpy_small F
-GLIBC_2.22 __strcspn_c1 F
-GLIBC_2.22 __strcspn_c2 F
-GLIBC_2.22 __strcspn_c3 F
-GLIBC_2.22 __strdup F
-GLIBC_2.22 __strerror_r F
-GLIBC_2.22 __strfmon_l F
-GLIBC_2.22 __strftime_l F
-GLIBC_2.22 __strncasecmp_l F
-GLIBC_2.22 __strncat_chk F
-GLIBC_2.22 __strncpy_chk F
-GLIBC_2.22 __strndup F
-GLIBC_2.22 __strpbrk_c2 F
-GLIBC_2.22 __strpbrk_c3 F
-GLIBC_2.22 __strsep_1c F
-GLIBC_2.22 __strsep_2c F
-GLIBC_2.22 __strsep_3c F
-GLIBC_2.22 __strsep_g F
-GLIBC_2.22 __strspn_c1 F
-GLIBC_2.22 __strspn_c2 F
-GLIBC_2.22 __strspn_c3 F
-GLIBC_2.22 __strtod_internal F
-GLIBC_2.22 __strtod_l F
-GLIBC_2.22 __strtof_internal F
-GLIBC_2.22 __strtof_l F
-GLIBC_2.22 __strtok_r F
-GLIBC_2.22 __strtok_r_1c F
-GLIBC_2.22 __strtol_internal F
-GLIBC_2.22 __strtol_l F
-GLIBC_2.22 __strtold_internal F
-GLIBC_2.22 __strtold_l F
-GLIBC_2.22 __strtoll_internal F
-GLIBC_2.22 __strtoll_l F
-GLIBC_2.22 __strtoul_internal F
-GLIBC_2.22 __strtoul_l F
-GLIBC_2.22 __strtoull_internal F
-GLIBC_2.22 __strtoull_l F
-GLIBC_2.22 __strverscmp F
-GLIBC_2.22 __strxfrm_l F
-GLIBC_2.22 __swprintf_chk F
-GLIBC_2.22 __sysconf F
-GLIBC_2.22 __syslog_chk F
-GLIBC_2.22 __sysv_signal F
-GLIBC_2.22 __timezone D 0x4
-GLIBC_2.22 __toascii_l F
-GLIBC_2.22 __tolower_l F
-GLIBC_2.22 __toupper_l F
-GLIBC_2.22 __towctrans F
-GLIBC_2.22 __towctrans_l F
-GLIBC_2.22 __towlower_l F
-GLIBC_2.22 __towupper_l F
-GLIBC_2.22 __ttyname_r_chk F
-GLIBC_2.22 __tzname D 0x8
-GLIBC_2.22 __uflow F
-GLIBC_2.22 __underflow F
-GLIBC_2.22 __uselocale F
-GLIBC_2.22 __vasprintf_chk F
-GLIBC_2.22 __vdprintf_chk F
-GLIBC_2.22 __vfork F
-GLIBC_2.22 __vfprintf_chk F
-GLIBC_2.22 __vfscanf F
-GLIBC_2.22 __vfwprintf_chk F
-GLIBC_2.22 __vprintf_chk F
-GLIBC_2.22 __vsnprintf F
-GLIBC_2.22 __vsnprintf_chk F
-GLIBC_2.22 __vsprintf_chk F
-GLIBC_2.22 __vsscanf F
-GLIBC_2.22 __vswprintf_chk F
-GLIBC_2.22 __vsyslog_chk F
-GLIBC_2.22 __vwprintf_chk F
-GLIBC_2.22 __wait F
-GLIBC_2.22 __waitpid F
-GLIBC_2.22 __wcpcpy_chk F
-GLIBC_2.22 __wcpncpy_chk F
-GLIBC_2.22 __wcrtomb_chk F
-GLIBC_2.22 __wcscasecmp_l F
-GLIBC_2.22 __wcscat_chk F
-GLIBC_2.22 __wcscoll_l F
-GLIBC_2.22 __wcscpy_chk F
-GLIBC_2.22 __wcsftime_l F
-GLIBC_2.22 __wcsncasecmp_l F
-GLIBC_2.22 __wcsncat_chk F
-GLIBC_2.22 __wcsncpy_chk F
-GLIBC_2.22 __wcsnrtombs_chk F
-GLIBC_2.22 __wcsrtombs_chk F
-GLIBC_2.22 __wcstod_internal F
-GLIBC_2.22 __wcstod_l F
-GLIBC_2.22 __wcstof_internal F
-GLIBC_2.22 __wcstof_l F
-GLIBC_2.22 __wcstol_internal F
-GLIBC_2.22 __wcstol_l F
-GLIBC_2.22 __wcstold_internal F
-GLIBC_2.22 __wcstold_l F
-GLIBC_2.22 __wcstoll_internal F
-GLIBC_2.22 __wcstoll_l F
-GLIBC_2.22 __wcstombs_chk F
-GLIBC_2.22 __wcstoul_internal F
-GLIBC_2.22 __wcstoul_l F
-GLIBC_2.22 __wcstoull_internal F
-GLIBC_2.22 __wcstoull_l F
-GLIBC_2.22 __wcsxfrm_l F
-GLIBC_2.22 __wctomb_chk F
-GLIBC_2.22 __wctrans_l F
-GLIBC_2.22 __wctype_l F
-GLIBC_2.22 __wmemcpy_chk F
-GLIBC_2.22 __wmemmove_chk F
-GLIBC_2.22 __wmempcpy_chk F
-GLIBC_2.22 __wmemset_chk F
-GLIBC_2.22 __woverflow F
-GLIBC_2.22 __wprintf_chk F
-GLIBC_2.22 __write F
-GLIBC_2.22 __wuflow F
-GLIBC_2.22 __wunderflow F
-GLIBC_2.22 __xmknod F
-GLIBC_2.22 __xmknodat F
-GLIBC_2.22 __xpg_basename F
-GLIBC_2.22 __xpg_sigpause F
-GLIBC_2.22 __xpg_strerror_r F
-GLIBC_2.22 __xstat F
-GLIBC_2.22 __xstat64 F
-GLIBC_2.22 _dl_mcount_wrapper F
-GLIBC_2.22 _dl_mcount_wrapper_check F
-GLIBC_2.22 _environ D 0x4
-GLIBC_2.22 _exit F
-GLIBC_2.22 _flushlbf F
-GLIBC_2.22 _libc_intl_domainname D 0x5
-GLIBC_2.22 _longjmp F
-GLIBC_2.22 _mcleanup F
-GLIBC_2.22 _nl_default_dirname D 0xe
-GLIBC_2.22 _nl_domain_bindings D 0x4
-GLIBC_2.22 _nl_msg_cat_cntr D 0x4
-GLIBC_2.22 _obstack_allocated_p F
-GLIBC_2.22 _obstack_begin F
-GLIBC_2.22 _obstack_begin_1 F
-GLIBC_2.22 _obstack_free F
-GLIBC_2.22 _obstack_memory_used F
-GLIBC_2.22 _obstack_newchunk F
-GLIBC_2.22 _res D 0x200
-GLIBC_2.22 _res_hconf D 0x30
-GLIBC_2.22 _setjmp F
-GLIBC_2.22 _sys_siglist D 0x80
-GLIBC_2.22 _tolower F
-GLIBC_2.22 _toupper F
-GLIBC_2.22 a64l F
-GLIBC_2.22 abort F
-GLIBC_2.22 abs F
-GLIBC_2.22 accept F
-GLIBC_2.22 accept4 F
-GLIBC_2.22 access F
-GLIBC_2.22 acct F
-GLIBC_2.22 addmntent F
-GLIBC_2.22 addseverity F
-GLIBC_2.22 adjtime F
-GLIBC_2.22 advance F
-GLIBC_2.22 alarm F
-GLIBC_2.22 aligned_alloc F
-GLIBC_2.22 alphasort F
-GLIBC_2.22 alphasort64 F
-GLIBC_2.22 argp_err_exit_status D 0x4
-GLIBC_2.22 argp_error F
-GLIBC_2.22 argp_failure F
-GLIBC_2.22 argp_help F
-GLIBC_2.22 argp_parse F
-GLIBC_2.22 argp_program_bug_address D 0x4
-GLIBC_2.22 argp_program_version D 0x4
-GLIBC_2.22 argp_program_version_hook D 0x4
-GLIBC_2.22 argp_state_help F
-GLIBC_2.22 argp_usage F
-GLIBC_2.22 argz_add F
-GLIBC_2.22 argz_add_sep F
-GLIBC_2.22 argz_append F
-GLIBC_2.22 argz_count F
-GLIBC_2.22 argz_create F
-GLIBC_2.22 argz_create_sep F
-GLIBC_2.22 argz_delete F
-GLIBC_2.22 argz_extract F
-GLIBC_2.22 argz_insert F
-GLIBC_2.22 argz_next F
-GLIBC_2.22 argz_replace F
-GLIBC_2.22 argz_stringify F
-GLIBC_2.22 asctime F
-GLIBC_2.22 asctime_r F
-GLIBC_2.22 asprintf F
-GLIBC_2.22 atof F
-GLIBC_2.22 atoi F
-GLIBC_2.22 atol F
-GLIBC_2.22 atoll F
-GLIBC_2.22 backtrace F
-GLIBC_2.22 backtrace_symbols F
-GLIBC_2.22 backtrace_symbols_fd F
-GLIBC_2.22 basename F
-GLIBC_2.22 bcmp F
-GLIBC_2.22 bcopy F
-GLIBC_2.22 bind F
-GLIBC_2.22 bind_textdomain_codeset F
-GLIBC_2.22 bindtextdomain F
-GLIBC_2.22 brk F
-GLIBC_2.22 bsd_signal F
-GLIBC_2.22 bsearch F
-GLIBC_2.22 btowc F
-GLIBC_2.22 bzero F
-GLIBC_2.22 c16rtomb F
-GLIBC_2.22 c32rtomb F
-GLIBC_2.22 calloc F
-GLIBC_2.22 canonicalize_file_name F
-GLIBC_2.22 catclose F
-GLIBC_2.22 catgets F
-GLIBC_2.22 catopen F
-GLIBC_2.22 cfgetispeed F
-GLIBC_2.22 cfgetospeed F
-GLIBC_2.22 cfmakeraw F
-GLIBC_2.22 cfree F
-GLIBC_2.22 cfsetispeed F
-GLIBC_2.22 cfsetospeed F
-GLIBC_2.22 cfsetspeed F
-GLIBC_2.22 chdir F
-GLIBC_2.22 chflags F
-GLIBC_2.22 chmod F
-GLIBC_2.22 chown F
-GLIBC_2.22 chroot F
-GLIBC_2.22 clearenv F
-GLIBC_2.22 clearerr F
-GLIBC_2.22 clearerr_unlocked F
-GLIBC_2.22 clock F
-GLIBC_2.22 clock_getcpuclockid F
-GLIBC_2.22 clock_getres F
-GLIBC_2.22 clock_gettime F
-GLIBC_2.22 clock_nanosleep F
-GLIBC_2.22 clock_settime F
-GLIBC_2.22 close F
-GLIBC_2.22 closedir F
-GLIBC_2.22 closelog F
-GLIBC_2.22 confstr F
-GLIBC_2.22 connect F
-GLIBC_2.22 copysign F
-GLIBC_2.22 copysignf F
-GLIBC_2.22 copysignl F
-GLIBC_2.22 creat F
-GLIBC_2.22 creat64 F
-GLIBC_2.22 ctermid F
-GLIBC_2.22 ctime F
-GLIBC_2.22 ctime_r F
-GLIBC_2.22 cuserid F
-GLIBC_2.22 daemon F
-GLIBC_2.22 daylight D 0x4
-GLIBC_2.22 dcgettext F
-GLIBC_2.22 dcngettext F
-GLIBC_2.22 dgettext F
-GLIBC_2.22 difftime F
-GLIBC_2.22 dirfd F
-GLIBC_2.22 dirname F
-GLIBC_2.22 div F
-GLIBC_2.22 dl_iterate_phdr F
-GLIBC_2.22 dngettext F
-GLIBC_2.22 dprintf F
-GLIBC_2.22 drand48 F
-GLIBC_2.22 drand48_r F
-GLIBC_2.22 dup F
-GLIBC_2.22 dup2 F
-GLIBC_2.22 dup3 F
-GLIBC_2.22 duplocale F
-GLIBC_2.22 dysize F
-GLIBC_2.22 eaccess F
-GLIBC_2.22 ecvt F
-GLIBC_2.22 ecvt_r F
-GLIBC_2.22 endaliasent F
-GLIBC_2.22 endfsent F
-GLIBC_2.22 endgrent F
-GLIBC_2.22 endhostent F
-GLIBC_2.22 endmntent F
-GLIBC_2.22 endnetent F
-GLIBC_2.22 endnetgrent F
-GLIBC_2.22 endprotoent F
-GLIBC_2.22 endpwent F
-GLIBC_2.22 endservent F
-GLIBC_2.22 endsgent F
-GLIBC_2.22 endspent F
-GLIBC_2.22 endttyent F
-GLIBC_2.22 endusershell F
-GLIBC_2.22 endutent F
-GLIBC_2.22 endutxent F
-GLIBC_2.22 environ D 0x4
-GLIBC_2.22 envz_add F
-GLIBC_2.22 envz_entry F
-GLIBC_2.22 envz_get F
-GLIBC_2.22 envz_merge F
-GLIBC_2.22 envz_remove F
-GLIBC_2.22 envz_strip F
-GLIBC_2.22 erand48 F
-GLIBC_2.22 erand48_r F
-GLIBC_2.22 err F
-GLIBC_2.22 error F
-GLIBC_2.22 error_at_line F
-GLIBC_2.22 error_message_count D 0x4
-GLIBC_2.22 error_one_per_line D 0x4
-GLIBC_2.22 error_print_progname D 0x4
-GLIBC_2.22 errx F
-GLIBC_2.22 ether_aton F
-GLIBC_2.22 ether_aton_r F
-GLIBC_2.22 ether_hostton F
-GLIBC_2.22 ether_line F
-GLIBC_2.22 ether_ntoa F
-GLIBC_2.22 ether_ntoa_r F
-GLIBC_2.22 ether_ntohost F
-GLIBC_2.22 euidaccess F
-GLIBC_2.22 execl F
-GLIBC_2.22 execle F
-GLIBC_2.22 execlp F
-GLIBC_2.22 execv F
-GLIBC_2.22 execve F
-GLIBC_2.22 execvp F
-GLIBC_2.22 execvpe F
-GLIBC_2.22 exit F
-GLIBC_2.22 faccessat F
-GLIBC_2.22 fchdir F
-GLIBC_2.22 fchflags F
-GLIBC_2.22 fchmod F
-GLIBC_2.22 fchmodat F
-GLIBC_2.22 fchown F
-GLIBC_2.22 fchownat F
-GLIBC_2.22 fclose F
-GLIBC_2.22 fcloseall F
-GLIBC_2.22 fcntl F
-GLIBC_2.22 fcvt F
-GLIBC_2.22 fcvt_r F
-GLIBC_2.22 fdatasync F
-GLIBC_2.22 fdopen F
-GLIBC_2.22 fdopendir F
-GLIBC_2.22 feof F
-GLIBC_2.22 feof_unlocked F
-GLIBC_2.22 ferror F
-GLIBC_2.22 ferror_unlocked F
-GLIBC_2.22 fexecve F
-GLIBC_2.22 fflush F
-GLIBC_2.22 fflush_unlocked F
-GLIBC_2.22 ffs F
-GLIBC_2.22 ffsl F
-GLIBC_2.22 ffsll F
-GLIBC_2.22 fgetc F
-GLIBC_2.22 fgetc_unlocked F
-GLIBC_2.22 fgetgrent F
-GLIBC_2.22 fgetgrent_r F
-GLIBC_2.22 fgetpos F
-GLIBC_2.22 fgetpos64 F
-GLIBC_2.22 fgetpwent F
-GLIBC_2.22 fgetpwent_r F
-GLIBC_2.22 fgets F
-GLIBC_2.22 fgets_unlocked F
-GLIBC_2.22 fgetsgent F
-GLIBC_2.22 fgetsgent_r F
-GLIBC_2.22 fgetspent F
-GLIBC_2.22 fgetspent_r F
-GLIBC_2.22 fgetwc F
-GLIBC_2.22 fgetwc_unlocked F
-GLIBC_2.22 fgetws F
-GLIBC_2.22 fgetws_unlocked F
-GLIBC_2.22 fgetxattr F
-GLIBC_2.22 fileno F
-GLIBC_2.22 fileno_unlocked F
-GLIBC_2.22 finite F
-GLIBC_2.22 finitef F
-GLIBC_2.22 finitel F
-GLIBC_2.22 flistxattr F
-GLIBC_2.22 flock F
-GLIBC_2.22 flockfile F
-GLIBC_2.22 fmemopen F
-GLIBC_2.22 fmtmsg F
-GLIBC_2.22 fnmatch F
-GLIBC_2.22 fopen F
-GLIBC_2.22 fopen64 F
-GLIBC_2.22 fopencookie F
-GLIBC_2.22 fork F
-GLIBC_2.22 fpathconf F
-GLIBC_2.22 fprintf F
-GLIBC_2.22 fputc F
-GLIBC_2.22 fputc_unlocked F
-GLIBC_2.22 fputs F
-GLIBC_2.22 fputs_unlocked F
-GLIBC_2.22 fputwc F
-GLIBC_2.22 fputwc_unlocked F
-GLIBC_2.22 fputws F
-GLIBC_2.22 fputws_unlocked F
-GLIBC_2.22 fread F
-GLIBC_2.22 fread_unlocked F
-GLIBC_2.22 free F
-GLIBC_2.22 freeaddrinfo F
-GLIBC_2.22 freeifaddrs F
-GLIBC_2.22 freelocale F
-GLIBC_2.22 fremovexattr F
-GLIBC_2.22 freopen F
-GLIBC_2.22 freopen64 F
-GLIBC_2.22 frexp F
-GLIBC_2.22 frexpf F
-GLIBC_2.22 frexpl F
-GLIBC_2.22 fscanf F
-GLIBC_2.22 fseek F
-GLIBC_2.22 fseeko F
-GLIBC_2.22 fseeko64 F
-GLIBC_2.22 fsetpos F
-GLIBC_2.22 fsetpos64 F
-GLIBC_2.22 fsetxattr F
-GLIBC_2.22 fstatfs F
-GLIBC_2.22 fstatfs64 F
-GLIBC_2.22 fstatvfs F
-GLIBC_2.22 fstatvfs64 F
-GLIBC_2.22 fsync F
-GLIBC_2.22 ftell F
-GLIBC_2.22 ftello F
-GLIBC_2.22 ftello64 F
-GLIBC_2.22 ftime F
-GLIBC_2.22 ftok F
-GLIBC_2.22 ftruncate F
-GLIBC_2.22 ftruncate64 F
-GLIBC_2.22 ftrylockfile F
-GLIBC_2.22 fts_children F
-GLIBC_2.22 fts_close F
-GLIBC_2.22 fts_open F
-GLIBC_2.22 fts_read F
-GLIBC_2.22 fts_set F
-GLIBC_2.22 ftw F
-GLIBC_2.22 ftw64 F
-GLIBC_2.22 funlockfile F
-GLIBC_2.22 futimens F
-GLIBC_2.22 futimes F
-GLIBC_2.22 futimesat F
-GLIBC_2.22 fwide F
-GLIBC_2.22 fwprintf F
-GLIBC_2.22 fwrite F
-GLIBC_2.22 fwrite_unlocked F
-GLIBC_2.22 fwscanf F
-GLIBC_2.22 gai_strerror F
-GLIBC_2.22 gcvt F
-GLIBC_2.22 get_avphys_pages F
-GLIBC_2.22 get_current_dir_name F
-GLIBC_2.22 get_nprocs F
-GLIBC_2.22 get_nprocs_conf F
-GLIBC_2.22 get_phys_pages F
-GLIBC_2.22 getaddrinfo F
-GLIBC_2.22 getaliasbyname F
-GLIBC_2.22 getaliasbyname_r F
-GLIBC_2.22 getaliasent F
-GLIBC_2.22 getaliasent_r F
-GLIBC_2.22 getauxval F
-GLIBC_2.22 getc F
-GLIBC_2.22 getc_unlocked F
-GLIBC_2.22 getchar F
-GLIBC_2.22 getchar_unlocked F
-GLIBC_2.22 getcontext F
-GLIBC_2.22 getcwd F
-GLIBC_2.22 getdate F
-GLIBC_2.22 getdate_err D 0x4
-GLIBC_2.22 getdate_r F
-GLIBC_2.22 getdelim F
-GLIBC_2.22 getdomainname F
-GLIBC_2.22 getdtablesize F
-GLIBC_2.22 getegid F
-GLIBC_2.22 getenv F
-GLIBC_2.22 geteuid F
-GLIBC_2.22 getfsent F
-GLIBC_2.22 getfsfile F
-GLIBC_2.22 getfsspec F
-GLIBC_2.22 getgid F
-GLIBC_2.22 getgrent F
-GLIBC_2.22 getgrent_r F
-GLIBC_2.22 getgrgid F
-GLIBC_2.22 getgrgid_r F
-GLIBC_2.22 getgrnam F
-GLIBC_2.22 getgrnam_r F
-GLIBC_2.22 getgrouplist F
-GLIBC_2.22 getgroups F
-GLIBC_2.22 gethostbyaddr F
-GLIBC_2.22 gethostbyaddr_r F
-GLIBC_2.22 gethostbyname F
-GLIBC_2.22 gethostbyname2 F
-GLIBC_2.22 gethostbyname2_r F
-GLIBC_2.22 gethostbyname_r F
-GLIBC_2.22 gethostent F
-GLIBC_2.22 gethostent_r F
-GLIBC_2.22 gethostid F
-GLIBC_2.22 gethostname F
-GLIBC_2.22 getifaddrs F
-GLIBC_2.22 getipv4sourcefilter F
-GLIBC_2.22 getitimer F
-GLIBC_2.22 getline F
-GLIBC_2.22 getloadavg F
-GLIBC_2.22 getlogin F
-GLIBC_2.22 getlogin_r F
-GLIBC_2.22 getmntent F
-GLIBC_2.22 getmntent_r F
-GLIBC_2.22 getnameinfo F
-GLIBC_2.22 getnetbyaddr F
-GLIBC_2.22 getnetbyaddr_r F
-GLIBC_2.22 getnetbyname F
-GLIBC_2.22 getnetbyname_r F
-GLIBC_2.22 getnetent F
-GLIBC_2.22 getnetent_r F
-GLIBC_2.22 getnetgrent F
-GLIBC_2.22 getnetgrent_r F
-GLIBC_2.22 getopt F
-GLIBC_2.22 getopt_long F
-GLIBC_2.22 getopt_long_only F
-GLIBC_2.22 getpagesize F
-GLIBC_2.22 getpass F
-GLIBC_2.22 getpeername F
-GLIBC_2.22 getpgid F
-GLIBC_2.22 getpgrp F
-GLIBC_2.22 getpid F
-GLIBC_2.22 getppid F
-GLIBC_2.22 getpriority F
-GLIBC_2.22 getprotobyname F
-GLIBC_2.22 getprotobyname_r F
-GLIBC_2.22 getprotobynumber F
-GLIBC_2.22 getprotobynumber_r F
-GLIBC_2.22 getprotoent F
-GLIBC_2.22 getprotoent_r F
-GLIBC_2.22 getpt F
-GLIBC_2.22 getpw F
-GLIBC_2.22 getpwent F
-GLIBC_2.22 getpwent_r F
-GLIBC_2.22 getpwnam F
-GLIBC_2.22 getpwnam_r F
-GLIBC_2.22 getpwuid F
-GLIBC_2.22 getpwuid_r F
-GLIBC_2.22 getresgid F
-GLIBC_2.22 getresuid F
-GLIBC_2.22 getrlimit F
-GLIBC_2.22 getrlimit64 F
-GLIBC_2.22 getrusage F
-GLIBC_2.22 gets F
-GLIBC_2.22 getservbyname F
-GLIBC_2.22 getservbyname_r F
-GLIBC_2.22 getservbyport F
-GLIBC_2.22 getservbyport_r F
-GLIBC_2.22 getservent F
-GLIBC_2.22 getservent_r F
-GLIBC_2.22 getsgent F
-GLIBC_2.22 getsgent_r F
-GLIBC_2.22 getsgnam F
-GLIBC_2.22 getsgnam_r F
-GLIBC_2.22 getsid F
-GLIBC_2.22 getsockname F
-GLIBC_2.22 getsockopt F
-GLIBC_2.22 getsourcefilter F
-GLIBC_2.22 getspent F
-GLIBC_2.22 getspent_r F
-GLIBC_2.22 getspnam F
-GLIBC_2.22 getspnam_r F
-GLIBC_2.22 getsubopt F
-GLIBC_2.22 gettext F
-GLIBC_2.22 gettimeofday F
-GLIBC_2.22 getttyent F
-GLIBC_2.22 getttynam F
-GLIBC_2.22 getuid F
-GLIBC_2.22 getusershell F
-GLIBC_2.22 getutent F
-GLIBC_2.22 getutent_r F
-GLIBC_2.22 getutid F
-GLIBC_2.22 getutid_r F
-GLIBC_2.22 getutline F
-GLIBC_2.22 getutline_r F
-GLIBC_2.22 getutmp F
-GLIBC_2.22 getutmpx F
-GLIBC_2.22 getutxent F
-GLIBC_2.22 getutxid F
-GLIBC_2.22 getutxline F
-GLIBC_2.22 getw F
-GLIBC_2.22 getwc F
-GLIBC_2.22 getwc_unlocked F
-GLIBC_2.22 getwchar F
-GLIBC_2.22 getwchar_unlocked F
-GLIBC_2.22 getwd F
-GLIBC_2.22 getxattr F
-GLIBC_2.22 glob F
-GLIBC_2.22 glob64 F
-GLIBC_2.22 glob_pattern_p F
-GLIBC_2.22 globfree F
-GLIBC_2.22 globfree64 F
-GLIBC_2.22 gmtime F
-GLIBC_2.22 gmtime_r F
-GLIBC_2.22 gnu_get_libc_release F
-GLIBC_2.22 gnu_get_libc_version F
-GLIBC_2.22 grantpt F
-GLIBC_2.22 group_member F
-GLIBC_2.22 gsignal F
-GLIBC_2.22 gtty F
-GLIBC_2.22 h_errlist D 0x14
-GLIBC_2.22 h_nerr D 0x4
-GLIBC_2.22 hasmntopt F
-GLIBC_2.22 hcreate F
-GLIBC_2.22 hcreate_r F
-GLIBC_2.22 hdestroy F
-GLIBC_2.22 hdestroy_r F
-GLIBC_2.22 herror F
-GLIBC_2.22 hsearch F
-GLIBC_2.22 hsearch_r F
-GLIBC_2.22 hstrerror F
-GLIBC_2.22 htonl F
-GLIBC_2.22 htons F
-GLIBC_2.22 iconv F
-GLIBC_2.22 iconv_close F
-GLIBC_2.22 iconv_open F
-GLIBC_2.22 if_freenameindex F
-GLIBC_2.22 if_indextoname F
-GLIBC_2.22 if_nameindex F
-GLIBC_2.22 if_nametoindex F
-GLIBC_2.22 imaxabs F
-GLIBC_2.22 imaxdiv F
-GLIBC_2.22 in6addr_any D 0x10
-GLIBC_2.22 in6addr_loopback D 0x10
-GLIBC_2.22 index F
-GLIBC_2.22 inet6_opt_append F
-GLIBC_2.22 inet6_opt_find F
-GLIBC_2.22 inet6_opt_finish F
-GLIBC_2.22 inet6_opt_get_val F
-GLIBC_2.22 inet6_opt_init F
-GLIBC_2.22 inet6_opt_next F
-GLIBC_2.22 inet6_opt_set_val F
-GLIBC_2.22 inet6_option_alloc F
-GLIBC_2.22 inet6_option_append F
-GLIBC_2.22 inet6_option_find F
-GLIBC_2.22 inet6_option_init F
-GLIBC_2.22 inet6_option_next F
-GLIBC_2.22 inet6_option_space F
-GLIBC_2.22 inet6_rth_add F
-GLIBC_2.22 inet6_rth_getaddr F
-GLIBC_2.22 inet6_rth_init F
-GLIBC_2.22 inet6_rth_reverse F
-GLIBC_2.22 inet6_rth_segments F
-GLIBC_2.22 inet6_rth_space F
-GLIBC_2.22 inet_addr F
-GLIBC_2.22 inet_aton F
-GLIBC_2.22 inet_lnaof F
-GLIBC_2.22 inet_makeaddr F
-GLIBC_2.22 inet_netof F
-GLIBC_2.22 inet_network F
-GLIBC_2.22 inet_nsap_addr F
-GLIBC_2.22 inet_nsap_ntoa F
-GLIBC_2.22 inet_ntoa F
-GLIBC_2.22 inet_ntop F
-GLIBC_2.22 inet_pton F
-GLIBC_2.22 initgroups F
-GLIBC_2.22 initstate F
-GLIBC_2.22 initstate_r F
-GLIBC_2.22 innetgr F
-GLIBC_2.22 insque F
-GLIBC_2.22 ioctl F
-GLIBC_2.22 iruserok F
-GLIBC_2.22 iruserok_af F
-GLIBC_2.22 isalnum F
-GLIBC_2.22 isalnum_l F
-GLIBC_2.22 isalpha F
-GLIBC_2.22 isalpha_l F
-GLIBC_2.22 isascii F
-GLIBC_2.22 isatty F
-GLIBC_2.22 isblank F
-GLIBC_2.22 isblank_l F
-GLIBC_2.22 iscntrl F
-GLIBC_2.22 iscntrl_l F
-GLIBC_2.22 isctype F
-GLIBC_2.22 isdigit F
-GLIBC_2.22 isdigit_l F
-GLIBC_2.22 isfdtype F
-GLIBC_2.22 isgraph F
-GLIBC_2.22 isgraph_l F
-GLIBC_2.22 isinf F
-GLIBC_2.22 isinff F
-GLIBC_2.22 isinfl F
-GLIBC_2.22 islower F
-GLIBC_2.22 islower_l F
-GLIBC_2.22 isnan F
-GLIBC_2.22 isnanf F
-GLIBC_2.22 isnanl F
-GLIBC_2.22 isprint F
-GLIBC_2.22 isprint_l F
-GLIBC_2.22 ispunct F
-GLIBC_2.22 ispunct_l F
-GLIBC_2.22 isspace F
-GLIBC_2.22 isspace_l F
-GLIBC_2.22 isupper F
-GLIBC_2.22 isupper_l F
-GLIBC_2.22 iswalnum F
-GLIBC_2.22 iswalnum_l F
-GLIBC_2.22 iswalpha F
-GLIBC_2.22 iswalpha_l F
-GLIBC_2.22 iswblank F
-GLIBC_2.22 iswblank_l F
-GLIBC_2.22 iswcntrl F
-GLIBC_2.22 iswcntrl_l F
-GLIBC_2.22 iswctype F
-GLIBC_2.22 iswctype_l F
-GLIBC_2.22 iswdigit F
-GLIBC_2.22 iswdigit_l F
-GLIBC_2.22 iswgraph F
-GLIBC_2.22 iswgraph_l F
-GLIBC_2.22 iswlower F
-GLIBC_2.22 iswlower_l F
-GLIBC_2.22 iswprint F
-GLIBC_2.22 iswprint_l F
-GLIBC_2.22 iswpunct F
-GLIBC_2.22 iswpunct_l F
-GLIBC_2.22 iswspace F
-GLIBC_2.22 iswspace_l F
-GLIBC_2.22 iswupper F
-GLIBC_2.22 iswupper_l F
-GLIBC_2.22 iswxdigit F
-GLIBC_2.22 iswxdigit_l F
-GLIBC_2.22 isxdigit F
-GLIBC_2.22 isxdigit_l F
-GLIBC_2.22 jrand48 F
-GLIBC_2.22 jrand48_r F
-GLIBC_2.22 kill F
-GLIBC_2.22 killpg F
-GLIBC_2.22 l64a F
-GLIBC_2.22 labs F
-GLIBC_2.22 lchmod F
-GLIBC_2.22 lchown F
-GLIBC_2.22 lckpwdf F
-GLIBC_2.22 lcong48 F
-GLIBC_2.22 lcong48_r F
-GLIBC_2.22 ldexp F
-GLIBC_2.22 ldexpf F
-GLIBC_2.22 ldexpl F
-GLIBC_2.22 ldiv F
-GLIBC_2.22 lfind F
-GLIBC_2.22 lgetxattr F
-GLIBC_2.22 link F
-GLIBC_2.22 linkat F
-GLIBC_2.22 listen F
-GLIBC_2.22 listxattr F
-GLIBC_2.22 llabs F
-GLIBC_2.22 lldiv F
-GLIBC_2.22 llistxattr F
-GLIBC_2.22 loc1 D 0x4
-GLIBC_2.22 loc2 D 0x4
-GLIBC_2.22 localeconv F
-GLIBC_2.22 localtime F
-GLIBC_2.22 localtime_r F
-GLIBC_2.22 lockf F
-GLIBC_2.22 lockf64 F
-GLIBC_2.22 locs D 0x4
-GLIBC_2.22 longjmp F
-GLIBC_2.22 lrand48 F
-GLIBC_2.22 lrand48_r F
-GLIBC_2.22 lremovexattr F
-GLIBC_2.22 lsearch F
-GLIBC_2.22 lseek F
-GLIBC_2.22 lseek64 F
-GLIBC_2.22 lsetxattr F
-GLIBC_2.22 lutimes F
-GLIBC_2.22 madvise F
-GLIBC_2.22 makecontext F
-GLIBC_2.22 mallinfo F
-GLIBC_2.22 malloc F
-GLIBC_2.22 malloc_get_state F
-GLIBC_2.22 malloc_info F
-GLIBC_2.22 malloc_set_state F
-GLIBC_2.22 malloc_stats F
-GLIBC_2.22 malloc_trim F
-GLIBC_2.22 malloc_usable_size F
-GLIBC_2.22 mallopt F
-GLIBC_2.22 mallwatch D 0x4
-GLIBC_2.22 mblen F
-GLIBC_2.22 mbrlen F
-GLIBC_2.22 mbrtoc16 F
-GLIBC_2.22 mbrtoc32 F
-GLIBC_2.22 mbrtowc F
-GLIBC_2.22 mbsinit F
-GLIBC_2.22 mbsnrtowcs F
-GLIBC_2.22 mbsrtowcs F
-GLIBC_2.22 mbstowcs F
-GLIBC_2.22 mbtowc F
-GLIBC_2.22 mcheck F
-GLIBC_2.22 mcheck_check_all F
-GLIBC_2.22 mcheck_pedantic F
-GLIBC_2.22 memalign F
-GLIBC_2.22 memccpy F
-GLIBC_2.22 memchr F
-GLIBC_2.22 memcmp F
-GLIBC_2.22 memcpy F
-GLIBC_2.22 memfrob F
-GLIBC_2.22 memmem F
-GLIBC_2.22 memmove F
-GLIBC_2.22 mempcpy F
-GLIBC_2.22 memrchr F
-GLIBC_2.22 memset F
-GLIBC_2.22 mincore F
-GLIBC_2.22 mkdir F
-GLIBC_2.22 mkdirat F
-GLIBC_2.22 mkdtemp F
-GLIBC_2.22 mkfifo F
-GLIBC_2.22 mkfifoat F
-GLIBC_2.22 mkostemp F
-GLIBC_2.22 mkostemp64 F
-GLIBC_2.22 mkostemps F
-GLIBC_2.22 mkostemps64 F
-GLIBC_2.22 mkstemp F
-GLIBC_2.22 mkstemp64 F
-GLIBC_2.22 mkstemps F
-GLIBC_2.22 mkstemps64 F
-GLIBC_2.22 mktemp F
-GLIBC_2.22 mktime F
-GLIBC_2.22 mlock F
-GLIBC_2.22 mlockall F
-GLIBC_2.22 mmap F
-GLIBC_2.22 mmap64 F
-GLIBC_2.22 modf F
-GLIBC_2.22 modff F
-GLIBC_2.22 modfl F
-GLIBC_2.22 moncontrol F
-GLIBC_2.22 monstartup F
-GLIBC_2.22 mprobe F
-GLIBC_2.22 mprotect F
-GLIBC_2.22 mrand48 F
-GLIBC_2.22 mrand48_r F
-GLIBC_2.22 msgctl F
-GLIBC_2.22 msgget F
-GLIBC_2.22 msgrcv F
-GLIBC_2.22 msgsnd F
-GLIBC_2.22 msync F
-GLIBC_2.22 mtrace F
-GLIBC_2.22 munlock F
-GLIBC_2.22 munlockall F
-GLIBC_2.22 munmap F
-GLIBC_2.22 muntrace F
-GLIBC_2.22 nacl_interface_ext_supply F
-GLIBC_2.22 nacl_interface_query F
-GLIBC_2.22 nanosleep F
-GLIBC_2.22 newlocale F
-GLIBC_2.22 nftw F
-GLIBC_2.22 nftw64 F
-GLIBC_2.22 ngettext F
-GLIBC_2.22 nice F
-GLIBC_2.22 nl_langinfo F
-GLIBC_2.22 nl_langinfo_l F
-GLIBC_2.22 nrand48 F
-GLIBC_2.22 nrand48_r F
-GLIBC_2.22 ntohl F
-GLIBC_2.22 ntohs F
-GLIBC_2.22 obstack_alloc_failed_handler D 0x4
-GLIBC_2.22 obstack_exit_failure D 0x4
-GLIBC_2.22 obstack_free F
-GLIBC_2.22 obstack_printf F
-GLIBC_2.22 obstack_vprintf F
-GLIBC_2.22 on_exit F
-GLIBC_2.22 open F
-GLIBC_2.22 open64 F
-GLIBC_2.22 open_memstream F
-GLIBC_2.22 open_wmemstream F
-GLIBC_2.22 openat F
-GLIBC_2.22 openat64 F
-GLIBC_2.22 opendir F
-GLIBC_2.22 openlog F
-GLIBC_2.22 optarg D 0x4
-GLIBC_2.22 opterr D 0x4
-GLIBC_2.22 optind D 0x4
-GLIBC_2.22 optopt D 0x4
-GLIBC_2.22 parse_printf_format F
-GLIBC_2.22 pathconf F
-GLIBC_2.22 pause F
-GLIBC_2.22 pclose F
-GLIBC_2.22 perror F
-GLIBC_2.22 pipe F
-GLIBC_2.22 pipe2 F
-GLIBC_2.22 poll F
-GLIBC_2.22 popen F
-GLIBC_2.22 posix_fadvise F
-GLIBC_2.22 posix_fadvise64 F
-GLIBC_2.22 posix_fallocate F
-GLIBC_2.22 posix_fallocate64 F
-GLIBC_2.22 posix_madvise F
-GLIBC_2.22 posix_memalign F
-GLIBC_2.22 posix_openpt F
-GLIBC_2.22 posix_spawn F
-GLIBC_2.22 posix_spawn_file_actions_addclose F
-GLIBC_2.22 posix_spawn_file_actions_adddup2 F
-GLIBC_2.22 posix_spawn_file_actions_addopen F
-GLIBC_2.22 posix_spawn_file_actions_destroy F
-GLIBC_2.22 posix_spawn_file_actions_init F
-GLIBC_2.22 posix_spawnattr_destroy F
-GLIBC_2.22 posix_spawnattr_getflags F
-GLIBC_2.22 posix_spawnattr_getpgroup F
-GLIBC_2.22 posix_spawnattr_getschedparam F
-GLIBC_2.22 posix_spawnattr_getschedpolicy F
-GLIBC_2.22 posix_spawnattr_getsigdefault F
-GLIBC_2.22 posix_spawnattr_getsigmask F
-GLIBC_2.22 posix_spawnattr_init F
-GLIBC_2.22 posix_spawnattr_setflags F
-GLIBC_2.22 posix_spawnattr_setpgroup F
-GLIBC_2.22 posix_spawnattr_setschedparam F
-GLIBC_2.22 posix_spawnattr_setschedpolicy F
-GLIBC_2.22 posix_spawnattr_setsigdefault F
-GLIBC_2.22 posix_spawnattr_setsigmask F
-GLIBC_2.22 posix_spawnp F
-GLIBC_2.22 ppoll F
-GLIBC_2.22 pread F
-GLIBC_2.22 pread64 F
-GLIBC_2.22 preadv F
-GLIBC_2.22 preadv64 F
-GLIBC_2.22 printf F
-GLIBC_2.22 printf_size F
-GLIBC_2.22 printf_size_info F
-GLIBC_2.22 profil F
-GLIBC_2.22 program_invocation_name D 0x4
-GLIBC_2.22 program_invocation_short_name D 0x4
-GLIBC_2.22 pselect F
-GLIBC_2.22 psiginfo F
-GLIBC_2.22 psignal F
-GLIBC_2.22 pthread_attr_destroy F
-GLIBC_2.22 pthread_attr_getdetachstate F
-GLIBC_2.22 pthread_attr_getinheritsched F
-GLIBC_2.22 pthread_attr_getschedparam F
-GLIBC_2.22 pthread_attr_getschedpolicy F
-GLIBC_2.22 pthread_attr_getscope F
-GLIBC_2.22 pthread_attr_init F
-GLIBC_2.22 pthread_attr_setdetachstate F
-GLIBC_2.22 pthread_attr_setinheritsched F
-GLIBC_2.22 pthread_attr_setschedparam F
-GLIBC_2.22 pthread_attr_setschedpolicy F
-GLIBC_2.22 pthread_attr_setscope F
-GLIBC_2.22 pthread_cond_broadcast F
-GLIBC_2.22 pthread_cond_destroy F
-GLIBC_2.22 pthread_cond_init F
-GLIBC_2.22 pthread_cond_signal F
-GLIBC_2.22 pthread_cond_timedwait F
-GLIBC_2.22 pthread_cond_wait F
-GLIBC_2.22 pthread_condattr_destroy F
-GLIBC_2.22 pthread_condattr_init F
-GLIBC_2.22 pthread_equal F
-GLIBC_2.22 pthread_exit F
-GLIBC_2.22 pthread_getschedparam F
-GLIBC_2.22 pthread_mutex_destroy F
-GLIBC_2.22 pthread_mutex_init F
-GLIBC_2.22 pthread_mutex_lock F
-GLIBC_2.22 pthread_mutex_unlock F
-GLIBC_2.22 pthread_self F
-GLIBC_2.22 pthread_setcancelstate F
-GLIBC_2.22 pthread_setcanceltype F
-GLIBC_2.22 pthread_setschedparam F
-GLIBC_2.22 ptrace F
-GLIBC_2.22 ptsname F
-GLIBC_2.22 ptsname_r F
-GLIBC_2.22 putc F
-GLIBC_2.22 putc_unlocked F
-GLIBC_2.22 putchar F
-GLIBC_2.22 putchar_unlocked F
-GLIBC_2.22 putenv F
-GLIBC_2.22 putgrent F
-GLIBC_2.22 putpwent F
-GLIBC_2.22 puts F
-GLIBC_2.22 putsgent F
-GLIBC_2.22 putspent F
-GLIBC_2.22 pututline F
-GLIBC_2.22 pututxline F
-GLIBC_2.22 putw F
-GLIBC_2.22 putwc F
-GLIBC_2.22 putwc_unlocked F
-GLIBC_2.22 putwchar F
-GLIBC_2.22 putwchar_unlocked F
-GLIBC_2.22 pvalloc F
-GLIBC_2.22 pwrite F
-GLIBC_2.22 pwrite64 F
-GLIBC_2.22 pwritev F
-GLIBC_2.22 pwritev64 F
-GLIBC_2.22 qecvt F
-GLIBC_2.22 qecvt_r F
-GLIBC_2.22 qfcvt F
-GLIBC_2.22 qfcvt_r F
-GLIBC_2.22 qgcvt F
-GLIBC_2.22 qsort F
-GLIBC_2.22 qsort_r F
-GLIBC_2.22 quick_exit F
-GLIBC_2.22 raise F
-GLIBC_2.22 rand F
-GLIBC_2.22 rand_r F
-GLIBC_2.22 random F
-GLIBC_2.22 random_r F
-GLIBC_2.22 rawmemchr F
-GLIBC_2.22 rcmd F
-GLIBC_2.22 rcmd_af F
-GLIBC_2.22 re_comp F
-GLIBC_2.22 re_compile_fastmap F
-GLIBC_2.22 re_compile_pattern F
-GLIBC_2.22 re_exec F
-GLIBC_2.22 re_match F
-GLIBC_2.22 re_match_2 F
-GLIBC_2.22 re_search F
-GLIBC_2.22 re_search_2 F
-GLIBC_2.22 re_set_registers F
-GLIBC_2.22 re_set_syntax F
-GLIBC_2.22 re_syntax_options D 0x4
-GLIBC_2.22 read F
-GLIBC_2.22 readdir F
-GLIBC_2.22 readdir64 F
-GLIBC_2.22 readdir64_r F
-GLIBC_2.22 readdir_r F
-GLIBC_2.22 readlink F
-GLIBC_2.22 readlinkat F
-GLIBC_2.22 readv F
-GLIBC_2.22 realloc F
-GLIBC_2.22 realpath F
-GLIBC_2.22 reboot F
-GLIBC_2.22 recv F
-GLIBC_2.22 recvfrom F
-GLIBC_2.22 recvmmsg F
-GLIBC_2.22 recvmsg F
-GLIBC_2.22 regcomp F
-GLIBC_2.22 regerror F
-GLIBC_2.22 regexec F
-GLIBC_2.22 regfree F
-GLIBC_2.22 register_printf_function F
-GLIBC_2.22 register_printf_modifier F
-GLIBC_2.22 register_printf_specifier F
-GLIBC_2.22 register_printf_type F
-GLIBC_2.22 remap_file_pages F
-GLIBC_2.22 remove F
-GLIBC_2.22 removexattr F
-GLIBC_2.22 remque F
-GLIBC_2.22 rename F
-GLIBC_2.22 renameat F
-GLIBC_2.22 revoke F
-GLIBC_2.22 rewind F
-GLIBC_2.22 rewinddir F
-GLIBC_2.22 rexec F
-GLIBC_2.22 rexec_af F
-GLIBC_2.22 rexecoptions D 0x4
-GLIBC_2.22 rindex F
-GLIBC_2.22 rmdir F
-GLIBC_2.22 rpmatch F
-GLIBC_2.22 rresvport F
-GLIBC_2.22 rresvport_af F
-GLIBC_2.22 ruserok F
-GLIBC_2.22 ruserok_af F
-GLIBC_2.22 ruserpass F
-GLIBC_2.22 sbrk F
-GLIBC_2.22 scalbn F
-GLIBC_2.22 scalbnf F
-GLIBC_2.22 scalbnl F
-GLIBC_2.22 scandir F
-GLIBC_2.22 scandir64 F
-GLIBC_2.22 scandirat F
-GLIBC_2.22 scandirat64 F
-GLIBC_2.22 scanf F
-GLIBC_2.22 sched_get_priority_max F
-GLIBC_2.22 sched_get_priority_min F
-GLIBC_2.22 sched_getaffinity F
-GLIBC_2.22 sched_getparam F
-GLIBC_2.22 sched_getscheduler F
-GLIBC_2.22 sched_rr_get_interval F
-GLIBC_2.22 sched_setaffinity F
-GLIBC_2.22 sched_setparam F
-GLIBC_2.22 sched_setscheduler F
-GLIBC_2.22 sched_yield F
-GLIBC_2.22 secure_getenv F
-GLIBC_2.22 seed48 F
-GLIBC_2.22 seed48_r F
-GLIBC_2.22 seekdir F
-GLIBC_2.22 select F
-GLIBC_2.22 semctl F
-GLIBC_2.22 semget F
-GLIBC_2.22 semop F
-GLIBC_2.22 semtimedop F
-GLIBC_2.22 send F
-GLIBC_2.22 sendfile F
-GLIBC_2.22 sendfile64 F
-GLIBC_2.22 sendmmsg F
-GLIBC_2.22 sendmsg F
-GLIBC_2.22 sendto F
-GLIBC_2.22 setaliasent F
-GLIBC_2.22 setbuf F
-GLIBC_2.22 setbuffer F
-GLIBC_2.22 setcontext F
-GLIBC_2.22 setdomainname F
-GLIBC_2.22 setegid F
-GLIBC_2.22 setenv F
-GLIBC_2.22 seteuid F
-GLIBC_2.22 setfsent F
-GLIBC_2.22 setgid F
-GLIBC_2.22 setgrent F
-GLIBC_2.22 setgroups F
-GLIBC_2.22 sethostent F
-GLIBC_2.22 sethostid F
-GLIBC_2.22 sethostname F
-GLIBC_2.22 setipv4sourcefilter F
-GLIBC_2.22 setitimer F
-GLIBC_2.22 setjmp F
-GLIBC_2.22 setlinebuf F
-GLIBC_2.22 setlocale F
-GLIBC_2.22 setlogin F
-GLIBC_2.22 setlogmask F
-GLIBC_2.22 setmntent F
-GLIBC_2.22 setnetent F
-GLIBC_2.22 setnetgrent F
-GLIBC_2.22 setpgid F
-GLIBC_2.22 setpgrp F
-GLIBC_2.22 setpriority F
-GLIBC_2.22 setprotoent F
-GLIBC_2.22 setpwent F
-GLIBC_2.22 setregid F
-GLIBC_2.22 setresgid F
-GLIBC_2.22 setresuid F
-GLIBC_2.22 setreuid F
-GLIBC_2.22 setrlimit F
-GLIBC_2.22 setrlimit64 F
-GLIBC_2.22 setservent F
-GLIBC_2.22 setsgent F
-GLIBC_2.22 setsid F
-GLIBC_2.22 setsockopt F
-GLIBC_2.22 setsourcefilter F
-GLIBC_2.22 setspent F
-GLIBC_2.22 setstate F
-GLIBC_2.22 setstate_r F
-GLIBC_2.22 settimeofday F
-GLIBC_2.22 setttyent F
-GLIBC_2.22 setuid F
-GLIBC_2.22 setusershell F
-GLIBC_2.22 setutent F
-GLIBC_2.22 setutxent F
-GLIBC_2.22 setvbuf F
-GLIBC_2.22 setxattr F
-GLIBC_2.22 sgetsgent F
-GLIBC_2.22 sgetsgent_r F
-GLIBC_2.22 sgetspent F
-GLIBC_2.22 sgetspent_r F
-GLIBC_2.22 shmat F
-GLIBC_2.22 shmctl F
-GLIBC_2.22 shmdt F
-GLIBC_2.22 shmget F
-GLIBC_2.22 shutdown F
-GLIBC_2.22 sigaction F
-GLIBC_2.22 sigaddset F
-GLIBC_2.22 sigaltstack F
-GLIBC_2.22 sigandset F
-GLIBC_2.22 sigblock F
-GLIBC_2.22 sigdelset F
-GLIBC_2.22 sigemptyset F
-GLIBC_2.22 sigfillset F
-GLIBC_2.22 siggetmask F
-GLIBC_2.22 sighold F
-GLIBC_2.22 sigignore F
-GLIBC_2.22 siginterrupt F
-GLIBC_2.22 sigisemptyset F
-GLIBC_2.22 sigismember F
-GLIBC_2.22 siglongjmp F
-GLIBC_2.22 signal F
-GLIBC_2.22 sigorset F
-GLIBC_2.22 sigpause F
-GLIBC_2.22 sigpending F
-GLIBC_2.22 sigprocmask F
-GLIBC_2.22 sigqueue F
-GLIBC_2.22 sigrelse F
-GLIBC_2.22 sigreturn F
-GLIBC_2.22 sigset F
-GLIBC_2.22 sigsetmask F
-GLIBC_2.22 sigstack F
-GLIBC_2.22 sigsuspend F
-GLIBC_2.22 sigtimedwait F
-GLIBC_2.22 sigwait F
-GLIBC_2.22 sigwaitinfo F
-GLIBC_2.22 sleep F
-GLIBC_2.22 snprintf F
-GLIBC_2.22 sockatmark F
-GLIBC_2.22 socket F
-GLIBC_2.22 socketpair F
-GLIBC_2.22 sprintf F
-GLIBC_2.22 sprofil F
-GLIBC_2.22 srand F
-GLIBC_2.22 srand48 F
-GLIBC_2.22 srand48_r F
-GLIBC_2.22 srandom F
-GLIBC_2.22 srandom_r F
-GLIBC_2.22 sscanf F
-GLIBC_2.22 ssignal F
-GLIBC_2.22 sstk F
-GLIBC_2.22 statfs F
-GLIBC_2.22 statfs64 F
-GLIBC_2.22 statvfs F
-GLIBC_2.22 statvfs64 F
-GLIBC_2.22 stderr D 0x4
-GLIBC_2.22 stdin D 0x4
-GLIBC_2.22 stdout D 0x4
-GLIBC_2.22 step F
-GLIBC_2.22 stime F
-GLIBC_2.22 stpcpy F
-GLIBC_2.22 stpncpy F
-GLIBC_2.22 strcasecmp F
-GLIBC_2.22 strcasecmp_l F
-GLIBC_2.22 strcasestr F
-GLIBC_2.22 strcat F
-GLIBC_2.22 strchr F
-GLIBC_2.22 strchrnul F
-GLIBC_2.22 strcmp F
-GLIBC_2.22 strcoll F
-GLIBC_2.22 strcoll_l F
-GLIBC_2.22 strcpy F
-GLIBC_2.22 strcspn F
-GLIBC_2.22 strdup F
-GLIBC_2.22 strerror F
-GLIBC_2.22 strerror_l F
-GLIBC_2.22 strerror_r F
-GLIBC_2.22 strfmon F
-GLIBC_2.22 strfmon_l F
-GLIBC_2.22 strfry F
-GLIBC_2.22 strftime F
-GLIBC_2.22 strftime_l F
-GLIBC_2.22 strlen F
-GLIBC_2.22 strncasecmp F
-GLIBC_2.22 strncasecmp_l F
-GLIBC_2.22 strncat F
-GLIBC_2.22 strncmp F
-GLIBC_2.22 strncpy F
-GLIBC_2.22 strndup F
-GLIBC_2.22 strnlen F
-GLIBC_2.22 strpbrk F
-GLIBC_2.22 strptime F
-GLIBC_2.22 strptime_l F
-GLIBC_2.22 strrchr F
-GLIBC_2.22 strsep F
-GLIBC_2.22 strsignal F
-GLIBC_2.22 strspn F
-GLIBC_2.22 strstr F
-GLIBC_2.22 strtod F
-GLIBC_2.22 strtod_l F
-GLIBC_2.22 strtof F
-GLIBC_2.22 strtof_l F
-GLIBC_2.22 strtoimax F
-GLIBC_2.22 strtok F
-GLIBC_2.22 strtok_r F
-GLIBC_2.22 strtol F
-GLIBC_2.22 strtol_l F
-GLIBC_2.22 strtold F
-GLIBC_2.22 strtold_l F
-GLIBC_2.22 strtoll F
-GLIBC_2.22 strtoll_l F
-GLIBC_2.22 strtoq F
-GLIBC_2.22 strtoul F
-GLIBC_2.22 strtoul_l F
-GLIBC_2.22 strtoull F
-GLIBC_2.22 strtoull_l F
-GLIBC_2.22 strtoumax F
-GLIBC_2.22 strtouq F
-GLIBC_2.22 strverscmp F
-GLIBC_2.22 strxfrm F
-GLIBC_2.22 strxfrm_l F
-GLIBC_2.22 stty F
-GLIBC_2.22 swab F
-GLIBC_2.22 swapcontext F
-GLIBC_2.22 swprintf F
-GLIBC_2.22 swscanf F
-GLIBC_2.22 symlink F
-GLIBC_2.22 symlinkat F
-GLIBC_2.22 sync F
-GLIBC_2.22 syncfs F
-GLIBC_2.22 sys_sigabbrev D 0x80
-GLIBC_2.22 sys_siglist D 0x80
-GLIBC_2.22 syscall F
-GLIBC_2.22 sysconf F
-GLIBC_2.22 syslog F
-GLIBC_2.22 system F
-GLIBC_2.22 sysv_signal F
-GLIBC_2.22 tcdrain F
-GLIBC_2.22 tcflow F
-GLIBC_2.22 tcflush F
-GLIBC_2.22 tcgetattr F
-GLIBC_2.22 tcgetpgrp F
-GLIBC_2.22 tcgetsid F
-GLIBC_2.22 tcsendbreak F
-GLIBC_2.22 tcsetattr F
-GLIBC_2.22 tcsetpgrp F
-GLIBC_2.22 tdelete F
-GLIBC_2.22 tdestroy F
-GLIBC_2.22 telldir F
-GLIBC_2.22 tempnam F
-GLIBC_2.22 textdomain F
-GLIBC_2.22 tfind F
-GLIBC_2.22 time F
-GLIBC_2.22 timegm F
-GLIBC_2.22 timelocal F
-GLIBC_2.22 times F
-GLIBC_2.22 timespec_get F
-GLIBC_2.22 timezone D 0x4
-GLIBC_2.22 tmpfile F
-GLIBC_2.22 tmpfile64 F
-GLIBC_2.22 tmpnam F
-GLIBC_2.22 tmpnam_r F
-GLIBC_2.22 toascii F
-GLIBC_2.22 tolower F
-GLIBC_2.22 tolower_l F
-GLIBC_2.22 toupper F
-GLIBC_2.22 toupper_l F
-GLIBC_2.22 towctrans F
-GLIBC_2.22 towctrans_l F
-GLIBC_2.22 towlower F
-GLIBC_2.22 towlower_l F
-GLIBC_2.22 towupper F
-GLIBC_2.22 towupper_l F
-GLIBC_2.22 tr_break F
-GLIBC_2.22 truncate F
-GLIBC_2.22 truncate64 F
-GLIBC_2.22 tsearch F
-GLIBC_2.22 ttyname F
-GLIBC_2.22 ttyname_r F
-GLIBC_2.22 ttyslot F
-GLIBC_2.22 twalk F
-GLIBC_2.22 tzname D 0x8
-GLIBC_2.22 tzset F
-GLIBC_2.22 ualarm F
-GLIBC_2.22 ulckpwdf F
-GLIBC_2.22 ulimit F
-GLIBC_2.22 umask F
-GLIBC_2.22 uname F
-GLIBC_2.22 ungetc F
-GLIBC_2.22 ungetwc F
-GLIBC_2.22 unlink F
-GLIBC_2.22 unlinkat F
-GLIBC_2.22 unlockpt F
-GLIBC_2.22 unsetenv F
-GLIBC_2.22 updwtmp F
-GLIBC_2.22 updwtmpx F
-GLIBC_2.22 uselocale F
-GLIBC_2.22 usleep F
-GLIBC_2.22 ustat F
-GLIBC_2.22 utime F
-GLIBC_2.22 utimensat F
-GLIBC_2.22 utimes F
-GLIBC_2.22 utmpname F
-GLIBC_2.22 utmpxname F
-GLIBC_2.22 valloc F
-GLIBC_2.22 vasprintf F
-GLIBC_2.22 vdprintf F
-GLIBC_2.22 verr F
-GLIBC_2.22 verrx F
-GLIBC_2.22 versionsort F
-GLIBC_2.22 versionsort64 F
-GLIBC_2.22 vfork F
-GLIBC_2.22 vfprintf F
-GLIBC_2.22 vfscanf F
-GLIBC_2.22 vfwprintf F
-GLIBC_2.22 vfwscanf F
-GLIBC_2.22 vhangup F
-GLIBC_2.22 vlimit F
-GLIBC_2.22 vprintf F
-GLIBC_2.22 vscanf F
-GLIBC_2.22 vsnprintf F
-GLIBC_2.22 vsprintf F
-GLIBC_2.22 vsscanf F
-GLIBC_2.22 vswprintf F
-GLIBC_2.22 vswscanf F
-GLIBC_2.22 vsyslog F
-GLIBC_2.22 vtimes F
-GLIBC_2.22 vwarn F
-GLIBC_2.22 vwarnx F
-GLIBC_2.22 vwprintf F
-GLIBC_2.22 vwscanf F
-GLIBC_2.22 wait F
-GLIBC_2.22 wait3 F
-GLIBC_2.22 wait4 F
-GLIBC_2.22 waitid F
-GLIBC_2.22 waitpid F
-GLIBC_2.22 warn F
-GLIBC_2.22 warnx F
-GLIBC_2.22 wcpcpy F
-GLIBC_2.22 wcpncpy F
-GLIBC_2.22 wcrtomb F
-GLIBC_2.22 wcscasecmp F
-GLIBC_2.22 wcscasecmp_l F
-GLIBC_2.22 wcscat F
-GLIBC_2.22 wcschr F
-GLIBC_2.22 wcschrnul F
-GLIBC_2.22 wcscmp F
-GLIBC_2.22 wcscoll F
-GLIBC_2.22 wcscoll_l F
-GLIBC_2.22 wcscpy F
-GLIBC_2.22 wcscspn F
-GLIBC_2.22 wcsdup F
-GLIBC_2.22 wcsftime F
-GLIBC_2.22 wcsftime_l F
-GLIBC_2.22 wcslen F
-GLIBC_2.22 wcsncasecmp F
-GLIBC_2.22 wcsncasecmp_l F
-GLIBC_2.22 wcsncat F
-GLIBC_2.22 wcsncmp F
-GLIBC_2.22 wcsncpy F
-GLIBC_2.22 wcsnlen F
-GLIBC_2.22 wcsnrtombs F
-GLIBC_2.22 wcspbrk F
-GLIBC_2.22 wcsrchr F
-GLIBC_2.22 wcsrtombs F
-GLIBC_2.22 wcsspn F
-GLIBC_2.22 wcsstr F
-GLIBC_2.22 wcstod F
-GLIBC_2.22 wcstod_l F
-GLIBC_2.22 wcstof F
-GLIBC_2.22 wcstof_l F
-GLIBC_2.22 wcstoimax F
-GLIBC_2.22 wcstok F
-GLIBC_2.22 wcstol F
-GLIBC_2.22 wcstol_l F
-GLIBC_2.22 wcstold F
-GLIBC_2.22 wcstold_l F
-GLIBC_2.22 wcstoll F
-GLIBC_2.22 wcstoll_l F
-GLIBC_2.22 wcstombs F
-GLIBC_2.22 wcstoq F
-GLIBC_2.22 wcstoul F
-GLIBC_2.22 wcstoul_l F
-GLIBC_2.22 wcstoull F
-GLIBC_2.22 wcstoull_l F
-GLIBC_2.22 wcstoumax F
-GLIBC_2.22 wcstouq F
-GLIBC_2.22 wcswcs F
-GLIBC_2.22 wcswidth F
-GLIBC_2.22 wcsxfrm F
-GLIBC_2.22 wcsxfrm_l F
-GLIBC_2.22 wctob F
-GLIBC_2.22 wctomb F
-GLIBC_2.22 wctrans F
-GLIBC_2.22 wctrans_l F
-GLIBC_2.22 wctype F
-GLIBC_2.22 wctype_l F
-GLIBC_2.22 wcwidth F
-GLIBC_2.22 wmemchr F
-GLIBC_2.22 wmemcmp F
-GLIBC_2.22 wmemcpy F
-GLIBC_2.22 wmemmove F
-GLIBC_2.22 wmempcpy F
-GLIBC_2.22 wmemset F
-GLIBC_2.22 wordexp F
-GLIBC_2.22 wordfree F
-GLIBC_2.22 wprintf F
-GLIBC_2.22 write F
-GLIBC_2.22 writev F
-GLIBC_2.22 wscanf F
-GLIBC_2.23 GLIBC_2.23 A
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 GLIBC_2.24 A
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 GLIBC_2.25 A
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 gnu_dev_major F
-GLIBC_2.25 gnu_dev_makedev F
-GLIBC_2.25 gnu_dev_minor F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
deleted file mode 100644
@@ -1,4 +0,0 @@
-# Library=version Earliest symbol set (optional)
-# --------------- ------------------------------
-
-ld=ld-nacl-arm.so.1
deleted file mode 100644
@@ -1 +0,0 @@
-#include <sysdeps/nacl/start.c>
deleted file mode 100644
@@ -1,69 +0,0 @@
-/* Assembler macros for ARM/NaCl.
- 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/>. */
-
-#ifndef _ARM_NACL_SYSDEP_H
-#define _ARM_NACL_SYSDEP_H 1
-
-#ifdef __ASSEMBLER__
-
-# ifndef NO_THUMB
-# define NO_THUMB
-# endif
-# define ARM_SFI_MACROS 1
-
-/* The compiler driver primes the assembler with a standard set of
- macros that includes sfi_breg and sfi_sp. The sfi_pld macro is
- redundant with sfi_breg, but libc code uses it so as not to run
- afoul of the assembler's parsing bug in versions prior to 2.23.2.
- NaCl never uses an assembler that has this bug. */
-
-.macro sfi_pld basereg, offset=#0
- sfi_breg \basereg, pld [\basereg, \offset]
-.endm
-
-#endif
-
-#include <sysdeps/arm/sysdep.h>
-
-#ifdef __ASSEMBLER__
-
-# undef eabi_fnstart
-# define eabi_fnstart
-# undef eabi_fnend
-# define eabi_fnend
-# undef eabi_save
-# define eabi_save(...)
-# undef eabi_cantunwind
-# define eabi_cantunwind
-# undef eabi_pad
-# define eabi_pad(n)
-
-/* NaCl has its own special way of getting the thread pointer. */
-# undef GET_TLS
-# define GET_TLS(tmp) ldr r0, [r9]
-
-/* Rather than macroizing the code any more, we can just define a few
- mnemonics as macros here. */
-# define bl sfi_bl
-# define bx sfi_bx
-# define blx sfi_blx
-# define bxeq sfi_bxeq /* Only condition now in use. */
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* sysdep.h */
deleted file mode 100644
@@ -1,2 +0,0 @@
-#include <sysdeps/arm/nptl/tls.h>
-#include <sysdeps/nacl/tls.h>
deleted file mode 100644
@@ -1,20 +0,0 @@
-/* Constant values for the uname function to return. NaCl/ARM version.
- 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/>. */
-
-#define UNAME_MACHINE "arm"
-#include <sysdeps/nacl/uname-values.h>
deleted file mode 100644
@@ -1,3 +0,0 @@
-nptl
-posix
-gnu
deleted file mode 100644
@@ -1,145 +0,0 @@
-# Makefile fragment for NaCl configurations.
-
-# 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/>.
-
-# The libthread_db code does not compile for NaCl because there is no
-# sys/procfs.h supplying the register layout types. But since libthread_db
-# will probably never be useful for NaCl, just elide the directory rather
-# than implementing stuff to make it compile (and never get used).
-subdirs := $(filter-out nptl_db,$(subdirs))
-sorted-subdirs := $(filter-out nptl_db,$(sorted-subdirs))
-
-# The (required) --with-headers option to configure sets sysheaders to the
-# location of the native_client/.. source directory. We'll get necessary
-# headers directly from there.
-naclsrc = $(sysheaders)/native_client/src
-
-# How to find the directory containing this Makefile.
-nacl = $(..)sysdeps/nacl
-
-# Generate our bits/errno.h with the numbers from NaCl's sys/errno.h file.
-nacl-errno = $(naclsrc)/trusted/service_runtime/include/sys/errno.h
-
-bits-errno = $(common-objpfx)bits/errno.h
-$(bits-errno): $(common-objpfx)stamp-errnos ;
-$(common-objpfx)stamp-errnos: $(nacl)/errnos.awk $(..)manual/errno.texi \
- $(nacl-errno)
- $(make-target-directory)
- $(AWK) -f $^ > $(bits-errno)-tmp
-# Make it unwritable so noone will edit it by mistake.
- -chmod a-w $(bits-errno)-tmp
- $(move-if-change) $(bits-errno)-tmp $(bits-errno)
- touch $@
-common-generated += stamp-errnos bits/errno.h
-before-compile += $(bits-errno)
-
-# Massage NaCl's irt.h (and irt_dev.h) into something we can use.
-# See irt.sed for details.
-nacl-irt.h = $(common-objpfx)nacl-irt.h
-$(nacl-irt.h): $(nacl)/irt.sed \
- $(naclsrc)/untrusted/irt/irt.h \
- $(naclsrc)/untrusted/irt/irt_dev.h
- sed -f $^ > $@.new
- mv -f $@.new $@
-common-generated += nacl-irt.h
-before-compile += $(nacl-irt.h)
-
-$(common-objpfx)nacl-interfaces.v.i: $(nacl)/nacl-interfaces.mk.in \
- $(nacl)/nacl-interface-list.h
--include $(common-objpfx)nacl-interfaces.v
-common-generated += nacl-interfaces.v
-before-compile += $(common-objpfx)nacl-interfaces.v
-
-nacl-all-interfaces = $(nacl-mandatory-interfaces) $(nacl-optional-interfaces)
-nacl-interface-routines = $(nacl-all-interfaces:%=nacl-interface-%)
-
-define nacl-interface-table-command
-(echo '#define INTERFACE_CATEGORY $1'; \
- echo '#define INTERFACE_MODULE $(firstword $(subst -, ,$*))'; \
- echo '#define INTERFACE_TYPE $(word 2,$(subst -, ,$*))'; \
- echo '#define INTERFACE_STRING $(nacl-$*-string)'; \
- echo '#include "nacl-interface-table.c"' \
-) > $@T
-mv -f $@T $@
-endef
-
-nacl-interface-pattern = $(objpfx)nacl-interface-%.c
-
-$(nacl-mandatory-interfaces:%=$(nacl-interface-pattern)): \
- $(nacl-interface-pattern): $(nacl)/Makefile $(common-objpfx)nacl-interfaces.v
- $(make-target-directory)
- $(call nacl-interface-table-command,mandatory)
-$(nacl-optional-interfaces:%=$(nacl-interface-pattern)): \
- $(nacl-interface-pattern): $(nacl)/Makefile $(common-objpfx)nacl-interfaces.v
- $(make-target-directory)
- $(call nacl-interface-table-command,optional)
-
-nacl-routines-of = $(filter nacl-interface-$1-%,$(nacl-interface-routines))
-
-
-# Run the NaCl code validator on binaries after we link them, so the
-# build does not succeed with any binary that won't pass validation.
-# Moving the file around makes sure that we don't leave a target
-# appearing complete after it fails validation.
-define after-link
-mv -f $1 $1.prevalidation
-$(nacl)/nacl-after-link.sh '${READELF}' $1.prevalidation
-mv -f $1.prevalidation $1
-endef
-
-# The test wrapper script takes care of running things under NaCl's sel_ldr.
-test-wrapper-env-only = $(nacl)/nacl-test-wrapper.sh --arch=$(nacl-sdk-arch)
-test-wrapper-env = $(test-wrapper-env-only)
-test-wrapper = $(test-wrapper-env) --
-
-ifeq ($(subdir),csu)
-sysdep_routines += nacl_interface_query nacl_interface_ext_supply \
- nacl-interfaces $(call nacl-routines-of,libc)
-endif
-
-ifeq ($(subdir),elf)
-sysdep-dl-routines += $(call nacl-routines-of,rtld)
-sysdep-rtld-routines += nacl-interfaces $(call nacl-routines-of,rtld)
-endif
-
-ifeq ($(subdir),io)
-sysdep_routines += xstatconv
-endif
-
-ifeq ($(subdir),nptl)
-# We do not need any wrappers in libpthread.
-libpthread-routines := \
- $(filter-out $(pthread-compat-wrappers),$(libpthread-routines))
-endif
-
-ifeq ($(subdir),misc)
-# We reuse the Linux file since the bits match. The file lives in the
-# top-level source tree so we can use it without reference to any
-# sysdeps/.../linux/ directories, but it's still a sysdeps decision to
-# install it.
-sysdep_headers += bits/mman-linux.h
-
-# This defeats sysdeps/gnu/Makefile's addition of sys/mtio.h, which
-# we do not want. This is a total kludge, but it seems no worse for
-# now than making the sysdeps/gnu/Makefile code conditional on a
-# variable we set here. If some sysdeps/.../Makefile that is later
-# in the list than sysdeps/gnu needed to add to sysdep_headers, this
-# would break it. But sysdeps/gnu is close to last in the list and
-# this coming up seems unlikely.
-override sysdep_headers := $(sysdep_headers)
-endif
deleted file mode 100644
@@ -1,3 +0,0 @@
-inet
-resolv
-nss
deleted file mode 100644
@@ -1,23 +0,0 @@
-ld {
- GLIBC_PRIVATE {
- __nacl_irt_*;
- __nacl_supply_interface_rtld;
- }
-}
-
-libc {
- GLIBC_2.22 {
- nacl_interface_query;
- nacl_interface_ext_supply;
- }
-
- GLIBC_PRIVATE {
- # These are used by libpthread.
- __libc_write;
- __libc_open;
- __libc_close;
- __libc_fork;
-
- __nacl_irt_*;
- }
-}
deleted file mode 100644
@@ -1,35 +0,0 @@
-/* _exit -- low-level program termination. NaCl version.
- 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 <unistd.h>
-#include <stdlib.h>
-#include <nacl-interfaces.h>
-
-void
-_exit (int status)
-{
- __nacl_irt_basic.exit (status);
-
- /* That never returns unless something is severely and unrecoverably wrong.
- If it ever does, try to make sure we crash. */
- while (1)
- __builtin_trap ();
-}
-libc_hidden_def (_exit)
-rtld_hidden_def (_exit)
-weak_alias (_exit, _Exit)
deleted file mode 100644
@@ -1,35 +0,0 @@
-/* Check file access permission. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Test for access to FILE without setting errno. */
-int
-__access_noerrno (const char *file, int type)
-{
- return NACL_CALL_NOERRNO (__nacl_irt_dev_filename.access (file, type), 0);
-}
-
-/* Test for access to FILE. */
-int
-__access (const char *file, int type)
-{
- return NACL_CALL (__nacl_irt_dev_filename.access (file, type), 0);
-}
-weak_alias (__access, access)
deleted file mode 100644
@@ -1 +0,0 @@
-#include <sysdeps/x86_64/backtrace.c>
deleted file mode 100644
@@ -1,52 +0,0 @@
-/* Directory entry structure `struct dirent'. NaCl version.
- 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/>. */
-
-#ifndef _DIRENT_H
-# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-#endif
-
-/* Note that __ino_t and __ino64_t are the same type.
- Likewise __off_t and __off64_t are the same type. */
-
-struct dirent
- {
- __ino_t d_ino; /* File serial number. */
- __off_t d_off; /* File position of this entry. */
- unsigned short int d_reclen; /* Length of the whole `struct dirent'. */
-
- /* Only this member is in the POSIX standard. */
- char d_name[256]; /* We must not include limits.h! */
- };
-
-#ifdef __USE_LARGEFILE64
-/* This is completely identical to `struct dirent'. */
-struct dirent64
- {
- __ino_t d_ino; /* File serial number. */
- __off_t d_off; /* File position of this entry. */
- unsigned short int d_reclen; /* Length of the whole `struct dirent'. */
-
- /* Only this member is in the POSIX standard. */
- char d_name[256]; /* We must not include limits.h! */
- };
-#endif
-
-#define d_fileno d_ino /* Backwards compatibility. */
-
-#define _DIRENT_HAVE_D_RECLEN 1
-#define _DIRENT_MATCHES_DIRENT64 1
deleted file mode 100644
@@ -1,145 +0,0 @@
-/* O_*, F_*, FD_* bit values. NaCl version.
- 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/>. */
-
-#ifndef _FCNTL_H
-#error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-#endif
-
-
-/* File access modes for `open' and `fcntl'. */
-#define O_RDONLY 0 /* Open read-only. */
-#define O_WRONLY 1 /* Open write-only. */
-#define O_RDWR 2 /* Open read/write. */
-
-
-/* Bits OR'd into the second argument to open. */
-#define O_CREAT 00100 /* Create file if it doesn't exist. */
-#define O_EXCL 00200 /* Fail if file already exists. */
-#define O_TRUNC 01000 /* Truncate file to zero length. */
-#define O_NOCTTY 0 /* Don't assign a controlling terminal. */
-#define O_ASYNC 020000 /* Send SIGIO to owner when data is ready. */
-#define O_FSYNC 010000 /* Synchronous writes. */
-#define O_SYNC O_FSYNC
-#ifdef __USE_XOPEN2K8
-# define O_DIRECTORY 00200000 /* Must be a directory. */
-# define O_NOFOLLOW 00400000 /* Do not follow links. */
-# define O_CLOEXEC 02000000 /* Set close_on_exec. */
-#endif
-#if defined __USE_POSIX199309 || defined __USE_UNIX98
-# define O_DSYNC O_SYNC /* Synchronize data. */
-# define O_RSYNC O_SYNC /* Synchronize read operations. */
-#endif
-
-/* All opens support large file sizes, so there is no flag bit for this. */
-#ifdef __USE_LARGEFILE64
-# define O_LARGEFILE 0
-#endif
-
-/* File status flags for `open' and `fcntl'. */
-#define O_APPEND 02000 /* Writes append to the file. */
-#define O_NONBLOCK 04000 /* Non-blocking I/O. */
-
-#ifdef __USE_MISC
-# define O_NDELAY O_NONBLOCK
-#endif
-
-#ifdef __USE_MISC
-/* Bits in the file status flags returned by F_GETFL.
- These are all the O_* flags, plus FREAD and FWRITE, which are
- independent bits set by which of O_RDONLY, O_WRONLY, and O_RDWR, was
- given to `open'. */
-# define FREAD 1
-# define FWRITE 2
-
-/* Traditional BSD names the O_* bits. */
-# define FASYNC O_ASYNC
-# define FFSYNC O_FSYNC
-# define FSYNC O_SYNC
-# define FAPPEND O_APPEND
-# define FNDELAY O_NDELAY
-#endif
-
-/* Mask for file access modes. This is system-dependent in case
- some system ever wants to define some other flavor of access. */
-#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR)
-
-/* Values for the second argument to `fcntl'. */
-#define F_DUPFD 0 /* Duplicate file descriptor. */
-#define F_GETFD 1 /* Get file descriptor flags. */
-#define F_SETFD 2 /* Set file descriptor flags. */
-#define F_GETFL 3 /* Get file status flags. */
-#define F_SETFL 4 /* Set file status flags. */
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
-#define F_GETOWN 5 /* Get owner (receiver of SIGIO). */
-#define F_SETOWN 6 /* Set owner (receiver of SIGIO). */
-#endif
-#define F_GETLK 7 /* Get record locking info. */
-#define F_SETLK 8 /* Set record locking info (non-blocking). */
-#define F_SETLKW 9 /* Set record locking info (blocking). */
-/* Not necessary, we always have 64-bit offsets. */
-#define F_GETLK64 F_GETLK /* Get record locking info. */
-#define F_SETLK64 F_SETLK /* Set record locking info (non-blocking). */
-#define F_SETLKW64 F_SETLKW/* Set record locking info (blocking). */
-#ifdef __USE_XOPEN2K8
-# define F_DUPFD_CLOEXEC 12 /* Duplicate file descriptor with
- close-on-exec set. */
-#endif
-
-/* File descriptor flags used with F_GETFD and F_SETFD. */
-#define FD_CLOEXEC 1 /* Close on exec. */
-
-
-#include <bits/types.h>
-
-/* The structure describing an advisory lock. This is the type of the third
- argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */
-struct flock
- {
- short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
- short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
- __off_t l_start; /* Offset where the lock begins. */
- __off_t l_len; /* Size of the locked area; zero means until EOF. */
- __pid_t l_pid; /* Process holding the lock. */
- };
-
-#ifdef __USE_LARGEFILE64
-/* Note this matches struct flock exactly. */
-struct flock64
- {
- short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
- short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
- __off_t l_start; /* Offset where the lock begins. */
- __off_t l_len; /* Size of the locked area; zero means until EOF. */
- __pid_t l_pid; /* Process holding the lock. */
- };
-#endif
-
-/* Values for the `l_type' field of a `struct flock'. */
-#define F_RDLCK 1 /* Read lock. */
-#define F_WRLCK 2 /* Write lock. */
-#define F_UNLCK 3 /* Remove lock. */
-
-/* Advice to `posix_fadvise'. */
-#ifdef __USE_XOPEN2K
-# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
-# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
-# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
-# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
-# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
-# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
-#endif
deleted file mode 100644
@@ -1,64 +0,0 @@
-/* Minimum guaranteed maximum values for system limits. NaCl version.
- 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/>. */
-
-#define NAME_MAX 255
-
-#define PATH_MAX 4096
-
-#define NGROUPS_MAX 65536
-
-/* The number of data keys per process. */
-#define _POSIX_THREAD_KEYS_MAX 128
-/* This is the value this implementation supports. */
-#define PTHREAD_KEYS_MAX 1024
-
-/* Controlling the iterations of destructors for thread-specific data. */
-#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-/* Number of iterations this implementation does. */
-#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-
-/* The number of threads per process. */
-#define _POSIX_THREAD_THREADS_MAX 64
-/* We have no predefined limit on the number of threads. */
-#undef PTHREAD_THREADS_MAX
-
-/* Maximum amount by which a process can descrease its asynchronous I/O
- priority level. */
-#define AIO_PRIO_DELTA_MAX 20
-
-/* Minimum size for a thread. We are free to choose a reasonable value. */
-#define PTHREAD_STACK_MIN 131072
-
-/* Maximum number of timer expiration overruns. */
-#define DELAYTIMER_MAX 2147483647
-
-/* Maximum tty name length. */
-#define TTY_NAME_MAX 32
-
-/* Maximum login name length. This is arbitrary. */
-#define LOGIN_NAME_MAX 256
-
-/* Maximum host name length. */
-#define HOST_NAME_MAX 64
-
-/* Maximum message queue priority level. */
-#define MQ_PRIO_MAX 32768
-
-/* Maximum value the semaphore can have. */
-#define SEM_VALUE_MAX (2147483647)
deleted file mode 100644
@@ -1,24 +0,0 @@
-/* Definitions for POSIX memory map interface. NaCl version.
- 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/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* NaCl uses the Linux bits for this. */
-#include <bits/mman-linux.h>
deleted file mode 100644
@@ -1,23 +0,0 @@
-/* Old-style Unix parameters and limits. NaCl version.
- Copyright (C) 2012-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/>. */
-
-#ifndef _SYS_PARAM_H
-# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
-#endif
-
-#define EXEC_PAGESIZE 0x10000
deleted file mode 100644
@@ -1,210 +0,0 @@
-/* Define POSIX options for NaCl.
- 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; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_POSIX_OPT_H
-#define _BITS_POSIX_OPT_H 1
-
-/* Job control is supported. (Not really, but the APIs exist.) */
-#define _POSIX_JOB_CONTROL 1
-
-/* Processes have a saved set-user-ID and a saved set-group-ID. */
-#define _POSIX_SAVED_IDS 1
-
-/* Priority scheduling is supported. ??? */
-#define _POSIX_PRIORITY_SCHEDULING 200809L
-
-/* Synchronizing file data is supported. ??? */
-#define _POSIX_SYNCHRONIZED_IO 200809L
-
-/* The fsync function is present. */
-#define _POSIX_FSYNC 200809L
-
-/* Mapping of files to memory is supported. */
-#define _POSIX_MAPPED_FILES 200809L
-
-/* Locking of all memory is not supported. */
-#define _POSIX_MEMLOCK -1
-
-/* Locking of ranges of memory is not supported. */
-#define _POSIX_MEMLOCK_RANGE -1
-
-/* Setting of memory protections is supported. */
-#define _POSIX_MEMORY_PROTECTION 200809L
-
-/* Some filesystems allow all users to change file ownership. */
-#define _POSIX_CHOWN_RESTRICTED 0
-
-/* `c_cc' member of 'struct termios' structure can be disabled by
- using the value _POSIX_VDISABLE. ??? */
-#define _POSIX_VDISABLE '\0'
-
-/* Filenames are not silently truncated. */
-#define _POSIX_NO_TRUNC 1
-
-/* X/Open realtime support is not fully available. This requires the
- following set of POSIX.1 features, not all of which NaCl supports:
- _POSIX_FSYNC
- _POSIX_MEMLOCK
- _POSIX_MEMLOCK_RANGE
- _POSIX_MESSAGE_PASSING
- _POSIX_PRIORITIZED_IO
- _POSIX_PRIORITY_SCHEDULING
- _POSIX_SHARED_MEMORY_OBJECTS
- _POSIX_SYNCHRONIZED_IO
- */
-#define _XOPEN_REALTIME -1
-
-/* X/Open thread realtime support is not available. This requires the
- following set of POSIX.1 features, none of which NaCl supports:
- _POSIX_THREAD_PRIO_INHERIT
- _POSIX_THREAD_PRIO_PROTECT
- _POSIX_THREAD_PRIORITY_SCHEDULING
- _POSIX_THREAD_ROBUST_PRIO_INHERIT
- _POSIX_THREAD_ROBUST_PRIO_PROTECT
- */
-#define _XOPEN_REALTIME_THREADS -1
-
-/* XPG4.2 shared memory is not supported.
- ??? What is this? shm* interfaces?
-*/
-#define _XOPEN_SHM -1
-
-/* POSIX threads are supported. */
-#define _POSIX_THREADS 200809L
-
-/* We have the reentrant functions described in POSIX. */
-#define _POSIX_REENTRANT_FUNCTIONS 1
-#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
-
-/* We do not provide priority scheduling for threads. */
-#define _POSIX_THREAD_PRIORITY_SCHEDULING -1
-
-/* We support user-defined stack sizes. */
-#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
-
-/* We support user-defined stacks. */
-#define _POSIX_THREAD_ATTR_STACKADDR 200809L
-
-/* We do not support priority inheritence. */
-#define _POSIX_THREAD_PRIO_INHERIT -1
-
-/* We do not support priority protection. */
-#define _POSIX_THREAD_PRIO_PROTECT -1
-
-#ifdef __USE_XOPEN2K8
-/* We do not support priority inheritence for robust mutexes. */
-# define _POSIX_THREAD_ROBUST_PRIO_INHERIT -1
-
-/* We do not support priority protection for robust mutexes. */
-# define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1
-#endif
-
-/* We support POSIX.1b semaphores. */
-#define _POSIX_SEMAPHORES 200809L
-
-/* Real-time signals are supported. ??? */
-#define _POSIX_REALTIME_SIGNALS 200809L
-
-/* We support asynchronous I/O. */
-#define _POSIX_ASYNCHRONOUS_IO 200809L
-#define _POSIX_ASYNC_IO 1
-/* Alternative name for Unix98. */
-#define _LFS_ASYNCHRONOUS_IO 1
-/* Support for prioritization is not available. */
-#define _POSIX_PRIORITIZED_IO -1
-
-/* The LFS support in asynchronous I/O is also available. */
-#define _LFS64_ASYNCHRONOUS_IO 1
-
-/* The rest of the LFS is also available. */
-#define _LFS_LARGEFILE 1
-#define _LFS64_LARGEFILE 1
-#define _LFS64_STDIO 1
-
-/* POSIX shared memory objects are implemented. */
-#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
-
-/* Process CPU-time clocks are not supported. */
-#define _POSIX_CPUTIME -1
-
-/* Thread CPU-time locks are supported. */
-#define _POSIX_THREAD_CPUTIME 200809L
-
-/* GNU libc provides regular expression handling. */
-#define _POSIX_REGEXP 1
-
-/* Reader/Writer locks are available. */
-#define _POSIX_READER_WRITER_LOCKS 200809L
-
-/* We have a POSIX shell. */
-#define _POSIX_SHELL 1
-
-/* We support the Timeouts option. */
-#define _POSIX_TIMEOUTS 200809L
-
-/* We support spinlocks. */
-#define _POSIX_SPIN_LOCKS 200809L
-
-/* The `spawn' function family is supported. */
-#define _POSIX_SPAWN 200809L
-
-/* We have POSIX timers. */
-#define _POSIX_TIMERS 200809L
-
-/* The barrier functions are available. */
-#define _POSIX_BARRIERS 200809L
-
-/* POSIX message queues are not available. */
-#define _POSIX_MESSAGE_PASSING -1
-
-/* Thread process-shared synchronization is not supported. */
-#define _POSIX_THREAD_PROCESS_SHARED -1
-
-/* The monotonic clock is available. */
-#define _POSIX_MONOTONIC_CLOCK 200809L
-
-/* The clock selection interfaces are available. ??? Actually only
- clock_nanosleep works, and pthread_condattr_setclock does not. */
-#define _POSIX_CLOCK_SELECTION 200809L
-
-/* Advisory information interfaces are available. */
-#define _POSIX_ADVISORY_INFO 200809L
-
-/* IPv6 support is available. */
-#define _POSIX_IPV6 200809L
-
-/* Raw socket support is available. */
-#define _POSIX_RAW_SOCKETS 200809L
-
-/* We have at least one terminal. */
-#define _POSIX2_CHAR_TERM 200809L
-
-/* Neither process nor thread sporadic server interfaces is available. */
-#define _POSIX_SPORADIC_SERVER -1
-#define _POSIX_THREAD_SPORADIC_SERVER -1
-
-/* trace.h is not available. */
-#define _POSIX_TRACE -1
-#define _POSIX_TRACE_EVENT_FILTER -1
-#define _POSIX_TRACE_INHERIT -1
-#define _POSIX_TRACE_LOG -1
-
-/* Typed memory objects are not available. */
-#define _POSIX_TYPED_MEMORY_OBJECTS -1
-
-#endif /* bits/posix_opt.h */
deleted file mode 100644
@@ -1,147 +0,0 @@
-/* 'struct stat' and related definitions. NaCl version.
- 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/>. */
-
-#if !defined _SYS_STAT_H && !defined _FCNTL_H
-# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-#endif
-
-#ifndef _BITS_STAT_H
-#define _BITS_STAT_H 1
-
-/* Versions of the `struct stat' data structure. */
-#define _STAT_VER_NACL 0
-#define _STAT_VER_LINUX 1
-
-#define _STAT_VER _STAT_VER_LINUX
-
-struct stat
- {
- __dev_t st_dev; /* Device. */
- __ino_t st_ino; /* File serial number. */
- __nlink_t st_nlink; /* Link count. */
- __mode_t st_mode; /* File mode. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- int __pad0;
- __dev_t st_rdev; /* Device number, if device. */
- __off_t st_size; /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
-#if defined __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# define st_atime st_atim.tv_sec /* Backward compatibility. */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-#else
- __time_t st_atime; /* Time of last access. */
- __uint64_t st_atimensec; /* Nsecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- __uint64_t st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- __uint64_t st_ctimensec; /* Nsecs of last status change. */
-#endif
- __int64_t __unused[3];
- };
-
-#ifdef __USE_LARGEFILE64
-/* Note stat64 has the same shape as stat for NaCl. */
-struct stat64
- {
- __dev_t st_dev; /* Device. */
- __ino_t st_ino; /* File serial number. */
- __nlink_t st_nlink; /* Link count. */
- __mode_t st_mode; /* File mode. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- int __pad0;
- __dev_t st_rdev; /* Device number, if device. */
- __off_t st_size; /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
-# if defined __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# define st_atime st_atim.tv_sec /* Backward compatibility. */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-# else
- __time_t st_atime; /* Time of last access. */
- __uint64_t st_atimensec; /* Nsecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- __uint64_t st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- __uint64_t st_ctimensec; /* Nsecs of last status change. */
-# endif
- __int64_t __unused[3];
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATBUF_ST_BLKSIZE 1
-#define _STATBUF_ST_RDEV 1
-/* Nanosecond resolution time values are supported. */
-#define _STATBUF_ST_NSEC 1
-
-/* Encoding of the file mode. */
-
-#define __S_IFMT 0170000 /* These bits determine file type. */
-
-/* File types. */
-#define __S_IFDIR 0040000 /* Directory. */
-#define __S_IFCHR 0020000 /* Character device. */
-#define __S_IFBLK 0060000 /* Block device. */
-#define __S_IFREG 0100000 /* Regular file. */
-#define __S_IFIFO 0010000 /* FIFO. */
-#define __S_IFLNK 0120000 /* Symbolic link. */
-#define __S_IFSOCK 0140000 /* Socket. */
-
-/* POSIX.1b objects. Note that these macros always evaluate to zero. But
- they do it by enforcing the correct use of the macros. */
-#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
-#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
-#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
-
-/* Protection bits. */
-
-#define __S_ISUID 04000 /* Set user ID on execution. */
-#define __S_ISGID 02000 /* Set group ID on execution. */
-#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
-#define __S_IREAD 0400 /* Read by owner. */
-#define __S_IWRITE 0200 /* Write by owner. */
-#define __S_IEXEC 0100 /* Execute by owner. */
-
-#ifdef __USE_ATFILE
-/* XXX missing: UTIME_NOW, UTIME_OMIT */
-#endif
-
-#endif /* bits/stat.h */
deleted file mode 100644
@@ -1,72 +0,0 @@
-/* bits/typesizes.h -- underlying types for *_t. NaCl version.
- 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/>. */
-
-#ifndef _BITS_TYPES_H
-# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-#endif
-
-#ifndef _BITS_TYPESIZES_H
-#define _BITS_TYPESIZES_H 1
-
-/* See <bits/types.h> for the meaning of these macros. This file exists so
- that <bits/types.h> need not vary across different GNU platforms. */
-
-#define __DEV_T_TYPE __UQUAD_TYPE
-#define __UID_T_TYPE __U32_TYPE
-#define __GID_T_TYPE __U32_TYPE
-#define __INO_T_TYPE __UQUAD_TYPE
-#define __INO64_T_TYPE __INO_T_TYPE
-#define __MODE_T_TYPE __U32_TYPE
-#define __NLINK_T_TYPE __UWORD_TYPE
-#define __OFF_T_TYPE __SQUAD_TYPE
-#define __OFF64_T_TYPE __OFF_T_TYPE
-#define __PID_T_TYPE __S32_TYPE
-#define __RLIM_T_TYPE __UQUAD_TYPE
-#define __RLIM64_T_TYPE __RLIM_T_TYPE
-#define __BLKCNT_T_TYPE __SQUAD_TYPE
-#define __BLKCNT64_T_TYPE __BLKCNT_T_TYPE
-#define __FSBLKCNT_T_TYPE __UQUAD_TYPE
-#define __FSBLKCNT64_T_TYPE __FSBLKCNT_T_TYPE
-#define __FSFILCNT_T_TYPE __UQUAD_TYPE
-#define __FSFILCNT64_T_TYPE __FSFILCNT_T_TYPE
-#define __FSWORD_T_TYPE __SWORD_TYPE
-#define __ID_T_TYPE __U32_TYPE
-#define __CLOCK_T_TYPE __SLONGWORD_TYPE
-#define __TIME_T_TYPE __SQUAD_TYPE
-#define __USECONDS_T_TYPE __U32_TYPE
-#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
-#define __DADDR_T_TYPE __S32_TYPE
-#define __KEY_T_TYPE __S32_TYPE
-#define __CLOCKID_T_TYPE __S32_TYPE
-#define __TIMER_T_TYPE void *
-#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
-#define __FSID_T_TYPE struct { int __val[2]; }
-#define __SSIZE_T_TYPE __SWORD_TYPE
-#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
-#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
-#define __CPU_MASK_TYPE __ULONGWORD_TYPE
-
-/* All our foo64_t types match their foo_t counterparts. */
-#define __OFF_T_MATCHES_OFF64_T 1
-#define __INO_T_MATCHES_INO64_T 1
-
-/* Number of descriptors that can fit in an `fd_set'. */
-#define __FD_SETSIZE 1024
-
-
-#endif /* bits/typesizes.h */
deleted file mode 100644
@@ -1,92 +0,0 @@
-/* brk -- Adjust the "break" at the end of initial data. NaCl version.
- 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 <stdint.h>
-#include <sys/mman.h>
-#include <sys/param.h>
-#include <unistd.h>
-
-/* sbrk.c expects this. */
-void *__curbrk;
-
-static uintptr_t
-page_above (void *addr)
-{
- return ALIGN_UP ((uintptr_t) addr, EXEC_PAGESIZE);
-}
-
-/* Set the end of the process's data space to ADDR.
- Return 0 if successful, -1 if not. */
-int
-__brk (void *addr)
-{
- /* The NaCl sysbrk call is deprecated, so we do not use it here. Other
- libc code expects that __sbrk can be used at least a little bit, so
- rather than a plain stub we have a minimal __brk implementation here.
- It just uses mmap/munmap to grow or shrink the break area, punting as
- soon as mmap fails to use the same contiguous area. */
-
- if (__glibc_unlikely (__curbrk == NULL))
- {
- /* This is the first call. We must initialize the record
- of the current position. It starts out at the end of the
- main program's data segment. */
-
- /* XXX dynamic case??? */
- extern char _end[];
- __curbrk = _end;
- }
-
- if (__glibc_unlikely (addr == NULL))
- /* This is a call just to ensure that __curbrk is set up. */
- return 0;
-
- uintptr_t old_limit = page_above (__curbrk);
- uintptr_t new_limit = page_above (addr);
-
- if (old_limit > new_limit)
- {
- /* We're shrinking the old heap enough to release some pages. */
- if (__munmap ((void *) new_limit, old_limit - new_limit) != 0)
- return -1;
- }
- else if (old_limit < new_limit)
- {
- /* We're growing the old heap enough to need some more pages.
- See if they are available. */
- void *new_space = __mmap ((void *) old_limit, new_limit - old_limit,
- PROT_READ | PROT_WRITE, MAP_ANON, -1, 0);
- if (new_space != (void *) old_limit)
- {
- if (new_space != MAP_FAILED)
- {
- /* mmap chose some different place for the pages
- because the contiguous area was not available.
- Oh well. We can't use that. */
- __munmap (new_space, new_limit - old_limit);
- __set_errno (ENOMEM);
- }
- return -1;
- }
- }
-
- __curbrk = addr;
- return 0;
-}
-weak_alias (__brk, brk)
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Change current working directory. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Change the current directory to PATH. */
-int
-__chdir (const char *path)
-{
- return NACL_CALL (__nacl_irt_dev_filename.chdir (path), 0);
-}
-weak_alias (__chdir, chdir)
deleted file mode 100644
@@ -1,23 +0,0 @@
-/* Check inherited file descriptors for sanity at startup. NaCl version.
- 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/>. */
-
-/* Nothing to do here. */
-void
-__libc_check_standard_fds (void)
-{
-}
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Change a file's permissions. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Change the protections of FILE to MODE. */
-int
-__chmod (const char *file, mode_t mode)
-{
- return NACL_CALL (__nacl_irt_dev_filename.chmod (file, mode), 0);
-}
-weak_alias (__chmod, chmod)
deleted file mode 100644
@@ -1,29 +0,0 @@
-/* Return the time used by the program so far. NaCl version.
- 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 <time.h>
-#include <nacl-interfaces.h>
-
-
-/* Return the time used by the program so far (user time + system time). */
-clock_t
-clock (void)
-{
- nacl_irt_clock_t result;
- return NACL_CALL (__nacl_irt_basic.clock (&result), result);
-}
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Get the resolution of a clock. NaCl version.
- 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 <time.h>
-#include <nacl-interfaces.h>
-
-/* Get resolution of clock. */
-int
-__clock_getres (clockid_t clock_id, struct timespec *res)
-{
- return NACL_CALL (__nacl_irt_clock.clock_getres (clock_id, res), 0);
-}
-weak_alias (__clock_getres, clock_getres)
deleted file mode 100644
@@ -1,29 +0,0 @@
-/* Get the current value of a clock. NaCl version.
- 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 <time.h>
-#include <nacl-interfaces.h>
-
-/* Get current value of CLOCK and store it in TP. */
-int
-__clock_gettime (clockid_t clock_id, struct timespec *tp)
-{
- return NACL_CALL (__nacl_irt_clock.clock_gettime (clock_id, tp), 0);
-}
-libc_hidden_def (__clock_gettime)
-weak_alias (__clock_gettime, clock_gettime)
deleted file mode 100644
@@ -1,31 +0,0 @@
-/* Close a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-
-/* Close the file descriptor FD. */
-int
-__close (int fd)
-{
- return NACL_CALL (__nacl_irt_fdio.close (fd), 0);
-}
-libc_hidden_def (__close)
-strong_alias (__close, __libc_close)
-weak_alias (__close, close)
deleted file mode 100644
@@ -1,18 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/nacl.
-
-nacl_probe_file=native_client/src/trusted/service_runtime/include/sys/errno.h
-
-# sysheaders is set by the --with-headers=... option to configure.
-# For NaCl, we require that the option be given and point to the
-# native_client/.. source tree directory.
-test -n "$sysheaders" || {
- as_fn_error $? "must supply --with-headers=DIR with native_client source tree" "$LINENO" 5
-}
-test -r "$sysheaders/$nacl_probe_file" || {
- as_fn_error $? "$sysheaders does not appear to be a native_client source tree" "$LINENO" 5
-}
-
-# nscd is extremely useless in the NaCl context.
-build_nscd=no
-use_nscd=no
deleted file mode 100644
@@ -1,18 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/nacl.
-
-nacl_probe_file=native_client/src/trusted/service_runtime/include/sys/errno.h
-
-# sysheaders is set by the --with-headers=... option to configure.
-# For NaCl, we require that the option be given and point to the
-# native_client/.. source tree directory.
-test -n "$sysheaders" || {
- AC_MSG_ERROR([must supply --with-headers=DIR with native_client source tree])
-}
-test -r "$sysheaders/$nacl_probe_file" || {
- AC_MSG_ERROR([$sysheaders does not appear to be a native_client source tree])
-}
-
-# nscd is extremely useless in the NaCl context.
-build_nscd=no
-use_nscd=no
deleted file mode 100644
@@ -1,47 +0,0 @@
-/* Low-level thread creation for NPTL. NaCl version.
- 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 <nacl-interfaces.h>
-#include <pthread-pids.h>
-
-/* See the comments in pthread_create.c for the requirements for these
- two macros and the create_thread function. */
-
-#define START_THREAD_DEFN \
- static void __attribute__ ((noreturn)) start_thread (void)
-#define START_THREAD_SELF THREAD_SELF
-
-/* pthread_create.c defines this using START_THREAD_DEFN
- We need a forward declaration here so we can take its address. */
-static void start_thread (void) __attribute__ ((noreturn));
-
-static int
-create_thread (struct pthread *pd, const struct pthread_attr *attr,
- bool *stopped_start, STACK_VARIABLES_PARMS, bool *thread_ran)
-{
- pd->tid = __nacl_get_tid (pd);
-
- pd->stopped_start = *stopped_start;
- if (__glibc_unlikely (*stopped_start))
- /* See CONCURRENCY NOTES in nptl/pthread_create.c. */
- lll_lock (pd->lock, LLL_PRIVATE);
-
- TLS_DEFINE_INIT_TP (tp, pd);
-
- return __nacl_irt_thread.thread_create (&start_thread, stackaddr, tp);
-}
deleted file mode 100644
@@ -1,8 +0,0 @@
-/* Bypass sysdeps/posix/dl-fileid.h, which relies on st_dev/st_ino being
- reliable. Under NaCl, we cannot always expect them to be useful.
- Fortunately, in the ways NaCl is used it's far less likely that two
- different names for the same file would be used in dlopen or the like,
- so failing to notice re-opening the same file is not so likely to be a
- problem in practice. */
-
-#include <sysdeps/generic/dl-fileid.h>
deleted file mode 100644
@@ -1,269 +0,0 @@
-/* Map in a shared object's segments. NaCl version.
- 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/>. */
-
-#ifndef _NACL_DL_MAP_SEGMENTS_H
-#define _NACL_DL_MAP_SEGMENTS_H 1
-
-#include <assert.h>
-#include <dl-load.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <libc-pointer-arith.h>
-
-
-/* This is basically pread, but with iteration after short reads. */
-static bool
-read_in_data (int fd, void *data, size_t len, off_t pos)
-{
- if (__glibc_unlikely (__lseek (fd, pos, SEEK_SET) == (off_t) -1))
- return true;
- while (len > 0)
- {
- ssize_t n = __read (fd, data, len);
- if (__glibc_unlikely (n < 0))
- return true;
- if (__glibc_unlikely (n == 0))
- {
- errno = EFTYPE;
- return true;
- }
- data += n;
- len -= n;
- }
- return false;
-}
-
-static const char *
-_dl_map_segments (struct link_map *l, int fd,
- const ElfW(Ehdr) *header, int type,
- const struct loadcmd loadcmds[], size_t nloadcmds,
- const size_t maplength, bool has_holes,
- struct link_map *loader)
-{
- if (__glibc_likely (type == ET_DYN))
- {
- /* This is a position-independent shared object. Let the system
- choose where to place it.
-
- As a refinement, sometimes we have an address that we would
- prefer to map such objects at; but this is only a preference,
- the OS can do whatever it likes. */
- ElfW(Addr) mappref
- = (ELF_PREFERRED_ADDRESS (loader, maplength,
- loadcmds[0].mapstart & GLRO(dl_use_load_bias))
- - MAP_BASE_ADDR (l));
-
- uintptr_t mapstart;
- if (__glibc_likely (loadcmds[0].prot & PROT_EXEC))
- {
- /* When there is a code segment, we must use the
- allocate_code_data interface to choose a location. */
-
- uintptr_t code_size = loadcmds[0].allocend - loadcmds[0].mapstart;
- uintptr_t data_offset;
- size_t data_size;
-
- if (__glibc_likely (nloadcmds > 1))
- {
- data_offset = loadcmds[1].mapstart - loadcmds[0].mapstart;
- data_size = ALIGN_UP (maplength - data_offset,
- GLRO(dl_pagesize));
- }
- else
- {
- data_offset = 0;
- data_size = 0;
- }
-
- int error = __nacl_irt_code_data_alloc.allocate_code_data
- (mappref, code_size, data_offset, data_size, &mapstart);
- if (__glibc_unlikely (error))
- {
- errno = error;
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- }
- }
- else
- {
- /* With no code pages involved, plain mmap works fine. */
- void *mapped = __mmap ((void *) mappref, maplength,
- PROT_NONE, MAP_ANON, -1, 0);
- if (__glibc_unlikely (mapped == MAP_FAILED))
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- mapstart = (uintptr_t) mapped;
- }
-
- l->l_addr = mapstart - loadcmds[0].mapstart;
- }
-
- /* Remember which part of the address space this object uses. */
- l->l_map_start = loadcmds[0].mapstart + l->l_addr;
- l->l_map_end = l->l_map_start + maplength;
- l->l_contiguous = !has_holes;
-
- /* Now actually map (or read) in each segment. */
- for (const struct loadcmd *c = loadcmds; c < &loadcmds[nloadcmds]; ++c)
- if (__glibc_likely (c->mapend > c->mapstart))
- {
- /* Unlike POSIX mmap, NaCl's mmap does not reliably handle COW
- faults in the remainder of the final partial page. So to get
- the expected behavior for the unaligned boundary between data
- and bss, it's necessary to allocate the final partial page of
- data as anonymous memory rather than mapping it from the file. */
-
- size_t maplen = c->mapend - c->mapstart;
- if (c->mapend > c->dataend && c->allocend > c->dataend)
- maplen = (c->dataend & -GLRO(dl_pagesize)) - c->mapstart;
-
- /* Map the segment contents from the file. */
- if (__glibc_unlikely (__mmap ((void *) (l->l_addr + c->mapstart),
- maplen, c->prot,
- MAP_FIXED|MAP_COPY|MAP_FILE,
- fd, c->mapoff)
- == MAP_FAILED))
- {
- switch (errno)
- {
- case EINVAL:
- case ENOTSUP:
- case ENOSYS:
- break;
- default:
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- }
-
- /* No mmap support for this file. */
- if (c->prot & PROT_EXEC)
- {
- /* Read the data into a temporary buffer. */
- const size_t len = c->mapend - c->mapstart;
- void *data = __mmap (NULL, len, PROT_READ | PROT_WRITE,
- MAP_ANON|MAP_PRIVATE, -1, 0);
- if (__glibc_unlikely (data == MAP_FAILED))
- return DL_MAP_SEGMENTS_ERROR_MAP_ZERO_FILL;
- if (read_in_data (fd, data, len, c->mapoff))
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- /* Now validate and install the code. */
- int error = __nacl_irt_dyncode.dyncode_create
- ((void *) (l->l_addr + c->mapstart), data, len);
- __munmap (data, len);
- if (__glibc_unlikely (error))
- {
- errno = error;
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- }
- if (__glibc_unlikely (type != ET_DYN))
- {
- /* A successful PROT_EXEC mmap would have implicitly
- updated the bookkeeping so that a future
- allocate_code_data call would know that this range
- of the address space is already occupied. That
- doesn't happen implicitly with dyncode_create, so
- it's necessary to do an explicit call to update the
- bookkeeping. */
- uintptr_t allocated_address;
- error = __nacl_irt_code_data_alloc.allocate_code_data
- (l->l_addr + c->mapstart, len, 0, 0, &allocated_address);
- if (__glibc_unlikely (error))
- {
- errno = error;
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- }
- if (__glibc_unlikely
- (allocated_address != l->l_addr + c->mapstart))
- {
- /* This is not a very helpful error for this case,
- but there isn't really anything better to use. */
- errno = ENOMEM;
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- }
- }
- }
- else
- {
- /* Allocate the pages. */
- if (__mmap ((void *) (l->l_addr + c->mapstart),
- c->mapend - c->mapstart, c->prot | PROT_WRITE,
- MAP_FIXED|MAP_ANON|MAP_PRIVATE, -1, 0)
- == MAP_FAILED)
- return DL_MAP_SEGMENTS_ERROR_MAP_ZERO_FILL;
- /* Now read in the data. */
- if (read_in_data (fd, (void *) (l->l_addr + c->mapstart),
- c->dataend - c->mapstart, c->mapoff))
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- /* Now that we've filled the pages, reset the page
- protections to what they should be. */
- if (!(c->prot & PROT_WRITE)
- && __mprotect ((void *) (l->l_addr + c->mapstart),
- c->mapend - c->mapstart, c->prot) < 0)
- return DL_MAP_SEGMENTS_ERROR_MPROTECT;
- }
- }
- else if (c->allocend > c->dataend)
- {
- /* Extra zero pages should appear at the end of this segment,
- after the data mapped from the file. */
-
- uintptr_t allocend = c->mapend;
- if (c->mapend > c->dataend)
- {
- /* The final data page was partial. So we didn't map it in.
- Instead, we must allocate an anonymous page to fill. */
- if (c->prot & PROT_WRITE)
- /* Do the whole allocation right here. */
- allocend = c->allocend;
- if (__mmap ((void *) (l->l_addr + c->mapstart + maplen),
- allocend - (c->mapstart + maplen), c->prot,
- MAP_FIXED|MAP_ANON|MAP_PRIVATE, -1, 0)
- == MAP_FAILED)
- return DL_MAP_SEGMENTS_ERROR_MAP_ZERO_FILL;
- if (read_in_data (fd,
- (void *) (l->l_addr + c->mapstart + maplen),
- c->dataend & (GLRO(dl_pagesize) - 1),
- c->mapoff + maplen))
- return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
- /* Now that we've filled the page, reset its
- protections to what they should be. */
- if (!(c->prot & PROT_WRITE)
- && __mprotect ((void *) (l->l_addr + c->mapstart + maplen),
- c->mapend - (c->mapstart + maplen),
- c->prot) < 0)
- return DL_MAP_SEGMENTS_ERROR_MPROTECT;
- }
-
- /* Now allocate the pure zero-fill pages. */
- if (allocend < c->allocend
- && (__mmap ((void *) (l->l_addr + c->mapstart + allocend),
- c->allocend - (c->mapstart + allocend), c->prot,
- MAP_FIXED|MAP_ANON|MAP_PRIVATE, -1, 0)
- == MAP_FAILED))
- return DL_MAP_SEGMENTS_ERROR_MAP_ZERO_FILL;
- }
-
- _dl_postprocess_loadcmd (l, header, c);
- }
-
- /* Notify ELF_PREFERRED_ADDRESS that we have to load this one
- fixed. */
- ELF_FIXED_ADDRESS (loader, c->mapstart);
-
- return NULL;
-}
-
-#endif /* dl-map-segments.h */
deleted file mode 100644
@@ -1,34 +0,0 @@
-/* DL_SYSDEP_OSCHECK macro for NaCl.
- 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/>. */
-
-#ifndef _DL_OSINFO_H
-#define _DL_OSINFO_H 1
-
-#include <sysdeps/generic/dl-osinfo.h>
-
-#include "nacl-interfaces.h"
-
-#ifndef SHARED
-/* This doesn't really have anything to do with the purpose for
- which this macro is used in Linux configurations. But it is
- called at the right place in __libc_start_main. */
-# define DL_SYSDEP_OSCHECK(fatal) __nacl_initialize_interfaces ()
-#endif
-
-
-#endif /* dl-osinfo.h */
deleted file mode 100644
@@ -1,40 +0,0 @@
-/* System-specific call to open a shared object by name. NaCl version.
- 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/>. */
-
-#ifndef _DL_SYSDEP_OPEN_H
-#define _DL_SYSDEP_OPEN_H 1
-
-#include <stddef.h>
-
-/* NAME is a name without slashes, as it appears in a DT_NEEDED entry
- or a dlopen call's argument or suchlike. NAMELEN is (strlen (NAME) + 1).
-
- Find NAME in an OS-dependent fashion, and return its "real" name.
- Optionally fill in *FD with a file descriptor open on that file (or
- else leave its initial value of -1). The return value is a new
- malloc'd string, which will be free'd by the caller. If NAME is
- resolved to an actual file that can be opened, then the return
- value should name that file (and if *FD was not set, then a normal
- __open call on that string will be made). If *FD was set by some
- other means than a normal open and there is no "real" name to use,
- then __strdup (NAME) is fine (modulo error checking). */
-
-extern char *_dl_sysdep_open_object (const char *name, size_t namelen, int *fd)
- internal_function attribute_hidden;
-
-#endif /* dl-sysdep-open.h */
deleted file mode 100644
@@ -1,112 +0,0 @@
-/* Operating system support for run-time dynamic linker. NaCl version.
- 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/>. */
-
-#ifdef SHARED
-
-# include <assert.h>
-# include <ldsodefs.h>
-# include <stdint.h>
-# include <nacl-interfaces.h>
-
-/* NaCl's elf32.h is incompatible with the real <elf.h>. */
-# define NATIVE_CLIENT_SRC_INCLUDE_ELF32_H_
-# include <native_client/src/untrusted/nacl/nacl_startup.h>
-
-/* The RTLD_START code sets up the pointer that gets to these
- macros as COOKIE to point to two words:
- [0] the argument to the entry point from the system (see nacl_startup.h)
- [1] the stack base
-*/
-
-# define DL_FIND_ARG_COMPONENTS(cookie, argc, argv, envp, auxp) \
- do { \
- uint32_t *_info = ((void **) (cookie))[0]; \
- (argc) = nacl_startup_argc (_info); \
- (argv) = nacl_startup_argv (_info); \
- (envp) = nacl_startup_envp (_info); \
- (auxp) = nacl_startup_auxv (_info); \
- } while (0)
-
-# define DL_STACK_END(cookie) (((void **) (cookie))[1])
-
-/* This is called from the entry point (_start), defined by the RTLD_START
- macro in the machine-specific dl-machine.h file. At this point, dynamic
- linking has been completed and the first argument is the application's
- entry point. */
-attribute_hidden internal_function __attribute__ ((noreturn))
-void
-_dl_start_user (void (*user_entry) (uint32_t info[]), uint32_t info[])
-{
- if (_dl_skip_args > 0)
- {
- /* There are some arguments that the user program should not see.
- Just slide up the INFO pointer so its NACL_STARTUP_ARGV points
- to what should now be argv[0], and copy back the earlier fields. */
- assert (nacl_startup_argc (info) >= _dl_skip_args);
- assert (NACL_STARTUP_ARGV == 3);
- uint32_t envc = info[NACL_STARTUP_ENVC];
- uint32_t argc = info[NACL_STARTUP_ARGC];
- info += _dl_skip_args;
- info[NACL_STARTUP_ENVC] = envc;
- info[NACL_STARTUP_ARGC] = argc - _dl_skip_args;
- }
-
- /* Pass our finalizer function to the user. */
- info[NACL_STARTUP_FINI] = (uintptr_t) &_dl_fini;
-
- /* Run initializers. */
- _dl_init (GL(dl_ns)[0]._ns_loaded,
- nacl_startup_argc (info),
- nacl_startup_argv (info),
- nacl_startup_envp (info));
-
- /* Call the user's entry point. This should never return. */
- (*user_entry) (info);
-
- /* Fail clearly just in case it did return. */
- __builtin_trap ();
-}
-
-# define DL_SYSDEP_INIT __nacl_initialize_interfaces ()
-
-#endif /* SHARED */
-
-#include <elf/dl-sysdep.c>
-
-#include <dl-sysdep-open.h>
-#include <nacl-interfaces.h>
-#include <assert.h>
-#include <string.h>
-#include <unistd.h>
-
-char *
-internal_function
-_dl_sysdep_open_object (const char *name, size_t namelen, int *fd)
-{
- int error = __nacl_irt_resource_open.open_resource (name, fd);
- if (error)
- return NULL;
- assert (*fd != -1);
- char *realname = __strdup (name);
- if (__glibc_unlikely (realname == NULL))
- {
- __close (*fd);
- *fd = -1;
- }
- return realname;
-}
deleted file mode 100644
@@ -1,30 +0,0 @@
-/* System-specific settings for dynamic linker code. NaCl version.
- 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/>. */
-
-/* No multiple inclusion protection needed here because it's just macros.
- We don't want to use _DL_SYSDEP_H in case we are #include_next'd. */
-
-#include_next <dl-sysdep.h>
-
-/* We use AT_SYSINFO for a different purpose than Linux does,
- but we too want to store its value. */
-#define NEED_DL_SYSINFO 1
-#define DL_SYSINFO_DEFAULT 0
-
-/* sysdeps/arm/dl-sysdep.h defines this but it does not apply to NaCl. */
-#undef DL_ARGV_NOT_RELRO
deleted file mode 100644
@@ -1,65 +0,0 @@
-/* Unmap a shared object's segments. NaCl version.
- 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/>. */
-
-#ifndef _DL_UNMAP_SEGMENTS_H
-#define _DL_UNMAP_SEGMENTS_H 1
-
-#include <link.h>
-#include <sys/mman.h>
-
-/* There is always a big gap between the executable segment and the data
- segments. Other code segments and data pages lie in there. So we must
- unmap each segment individually (except for a codeless module). */
-
-static void __always_inline
-_dl_unmap_segments (struct link_map *l)
-{
- if (l->l_contiguous)
- /* Simple case. */
- __munmap ((void *) l->l_map_start, l->l_map_end - l->l_map_start);
- else
- {
- /* Normally l_phdr points into the RODATA segment, which we will
- unmap in one iteration of the loop. So we cannot use it directly
- throughout. */
-
- struct { ElfW(Addr) start, end; } segments[l->l_phnum], *seg = segments;
-
- for (const ElfW(Phdr) *ph = l->l_phdr; ph < &l->l_phdr[l->l_phnum]; ++ph)
- if (ph->p_type == PT_LOAD)
- {
- seg->start = (l->l_addr + ph->p_vaddr) & -GLRO(dl_pagesize);
- seg->end = (l->l_addr + ph->p_vaddr + ph->p_memsz
- + GLRO(dl_pagesize) - 1) & -GLRO(dl_pagesize);
- if (seg > segments && seg[-1].end == seg->start)
- /* Coalesce two adjacent segments into one munmap call. */
- seg[-1].end = seg->end;
- else
- ++seg;
- }
-
- do
- {
- --seg;
- __munmap ((void *) seg->start, seg->end - seg->start);
- }
- while (seg > segments);
- }
-}
-
-#endif /* dl-unmap-segments.h */
deleted file mode 100644
@@ -1,45 +0,0 @@
-/* Message-writing for the dynamic linker. NaCl version.
- 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 <sys/uio.h>
-#include <nacl-interfaces.h>
-
-/* This is used from only one place: dl-misc.c:_dl_debug_vdprintf.
- Hence it's in a header with the expectation it will be inlined.
-
- This is writev, but with a constraint added and others loosened:
-
- 1. Under RTLD_PRIVATE_ERRNO, it must not clobber the private errno
- when another thread holds the dl_load_lock.
- 2. It is not obliged to detect and report errors at all.
- 3. It's not really obliged to deliver a single atomic write
- (though it may be preferable). */
-
-static inline void
-_dl_writev (int fd, const struct iovec *iov, size_t niov)
-{
- for (size_t i = 0; i < niov; ++i)
- {
- size_t wrote;
- if (__nacl_irt_fdio.write (fd, iov[i].iov_base, iov[i].iov_len,
- &wrote) != 0
- || wrote != iov[i].iov_len)
- /* The write failed, so don't bother trying any more. */
- break;
- }
-}
deleted file mode 100644
@@ -1,31 +0,0 @@
-/* Duplicate a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-
-/* Duplicate FD, returning a new file descriptor open on the same file. */
-int
-__dup (int fd)
-{
- int result;
- return NACL_CALL (__nacl_irt_fdio.dup (fd, &result), result);
-}
-libc_hidden_def (__dup)
-weak_alias (__dup, dup)
deleted file mode 100644
@@ -1,31 +0,0 @@
-/* Duplicate a file descriptor to a chosen number. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-
-/* Duplicate FD to FD2, closing the old FD2 and making FD2 be
- open the same file as FD is. Return FD2 or -1. */
-int
-__dup2 (int fd, int fd2)
-{
- return NACL_CALL (__nacl_irt_fdio.dup2 (fd, fd2), fd2);
-}
-libc_hidden_def (__dup2)
-weak_alias (__dup2, dup2)
deleted file mode 100644
@@ -1,6 +0,0 @@
-#ifndef __ASSEMBLY__
-# include <stdint.h>
-extern void _start (uint32_t info[]) attribute_hidden;
-#endif
-
-#define ENTRY_POINT _start
deleted file mode 100644
@@ -1,87 +0,0 @@
-# Script to produce bits/errno.h for NaCl.
-
-# 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/>.
-
-BEGIN { maxerrno = 0 }
-
-$1 == "#define" && $2 ~ /NACL_ABI_E[A-Z0-9_]+/ && $3 ~ /[0-9]+/ {
- ename = $2;
- sub(/NACL_ABI_/, "", ename);
- errno = $3 + 0;
- if (errno > maxerrno) maxerrno = errno;
- errnos[errno] = ename;
- errnos_by_name[ename] = errno;
- if ($4 == "/*" && !(ename in errno_text)) {
- etext = $5;
- for (i = 6; i <= NF && $i != "*/"; ++i)
- etext = etext " " $i;
- errno_text[ename] = etext;
- }
- next;
-}
-
-$1 == "@comment" && $2 == "errno.h" { errnoh=1; next }
-errnoh == 1 && $1 == "@comment" {
- ++errnoh;
- etext = $3;
- for (i = 4; i <= NF; ++i)
- etext = etext " " $i;
- next;
-}
-errnoh == 2 && $1 == "@deftypevr" && $2 == "Macro" && $3 == "int" {
- ename = $4;
- errno_text[ename] = etext;
- next;
-}
-
-function define_errno(errno, ename) {
- etext = errno_text[ename];
- if (length(ename) < 8) ename = ename "\t";
- printf "#define\t%s\t%d\t/* %s */\n", ename, errno, etext;
-}
-
-END {
- print "\
-/* This file generated by errnos.awk. */\n\
-\n\
-#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)\n\
-#undef __need_Emath\n\
-#define __Emath_defined 1";
- emath["EDOM"] = emath["EILSEQ"] = emath["ERANGE"] = 1;
- for (ename in emath) {
- errno = errnos_by_name[ename];
- define_errno(errno, ename);
- delete errnos[errno];
- }
- print "\
-#endif\n\
-\n\
-#ifdef _ERRNO_H\n";
-
- for (i = 1; i <= maxerrno; ++i)
- if (i in errnos) define_errno(i, errnos[i]);
-
- print "\n\
-#define EWOULDBLOCK EAGAIN\n\
-#define ENOTSUP EOPNOTSUPP\n\
-\n\
-extern __thread int errno __attribute__ ((__tls_model__ (\"initial-exec\")));\n\
-#define errno errno\n\
-\n\
-#endif";
-}
deleted file mode 100644
@@ -1,29 +0,0 @@
-/* Check file access permission. NaCl version.
- 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 <unistd.h>
-
-/* Test for access to FILE. */
-int
-__euidaccess (const char *file, int type)
-{
- /* No NaCl process will ever be set-ID, so access and euidaccess are one. */
- return __access (file, type);
-}
-weak_alias (__euidaccess, euidaccess)
-weak_alias (__euidaccess, eaccess)
deleted file mode 100644
@@ -1,80 +0,0 @@
-/* Call to terminate the current thread. NaCl version.
- 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 <assert.h>
-#include <atomic.h>
-#include <futex-internal.h>
-#include <nacl-interfaces.h>
-#include <nptl/pthreadP.h>
-
-/* This causes the current thread to exit, without affecting other
- threads in the process if there are any. If there are no other
- threads left, then this has the effect of _exit (0). */
-
-static inline void __attribute__ ((noreturn, always_inline, unused))
-__exit_thread (void)
-{
- struct pthread *pd = THREAD_SELF;
-
- /* The generic logic for pthread_join and stack/descriptor reuse is
- based on the Linux kernel feature that will clear and futex-wake
- a designated address as a final part of thread teardown. Correct
- synchronization relies on the fact that these happen only after
- there is no possibility of user code touching or examining the
- late thread's stack.
-
- The NaCl system interface implements half of this: it clears a
- word after the thread's user stack is safely dead, but it does
- not futex-wake the location. So, some shenanigans are required.
- We change and futex-wake the location here, so as to wake up any
- blocked pthread_join (i.e. lll_wait_tid) or pthread_timedjoin_np
- (i.e. lll_timedwait_tid). However, that's before we have safely
- vacated the stack. So instead of clearing the location, we set
- it to a special magic value, NACL_EXITING_TID. This counts as a
- "live thread" value for all the generic logic, but is recognized
- specially in lll_wait_tid and lll_timedwait_tid (lowlevellock.h).
- Once it has this value, lll_wait_tid will busy-wait for the
- location to be cleared to zero by the NaCl system code. Only then
- is the stack actually safe to reuse. */
-
- if (!IS_DETACHED (pd))
- {
- /* The magic value must not be one that could ever be a valid
- TID value. See pthread-pids.h about the low bit. */
- assert (NACL_EXITING_TID & 1);
-
- /* The magic value must not be one that has the "free" flag
- (i.e. sign bit) set. If that bit is set, then the
- descriptor could be reused for a new thread. */
- assert (NACL_EXITING_TID > 0);
-
- atomic_store_relaxed (&pd->tid, NACL_EXITING_TID);
- futex_wake ((unsigned int *) &pd->tid, 1, FUTEX_PRIVATE);
- }
-
- /* This clears PD->tid some time after the thread stack can never
- be touched again. Unfortunately, it does not also do a
- futex-wake at that time (as Linux does via CLONE_CHILD_CLEARTID
- and set_tid_address). So lll_wait_tid does some busy-waiting. */
- __nacl_irt_thread.thread_exit (&pd->tid);
-
- /* That never returns unless something is severely and unrecoverably wrong.
- If it ever does, try to make sure we crash. */
- while (1)
- __builtin_trap ();
-}
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Change working directory given a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Change the current directory to FD. */
-int
-__fchdir (int fd)
-{
- return NACL_CALL (__nacl_irt_dev_fdio.fchdir (fd), 0);
-}
-weak_alias (__fchdir, fchdir)
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Change a file's permissions given a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Change the permissions of the file referenced by FD to MODE. */
-int
-__fchmod (int fd, mode_t mode)
-{
- return NACL_CALL (__nacl_irt_dev_fdio.fchmod (fd, mode), 0);
-}
-weak_alias (__fchmod, fchmod)
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Make all changes done to file data actually appear on disk. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Synchronize at least the data part of a file with the underlying
- media. */
-int
-fdatasync (int fd)
-{
- return NACL_CALL (__nacl_irt_dev_fdio.fdatasync (fd), 0);
-}
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Open a directory stream from a file descriptor. NaCl version.
- 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 <assert.h>
-#include <fcntl.h>
-
-/* Since NaCl does not have a useful fcntl, stub it out.
- fdopendir will not detect an fd open for writing only,
- but readdir will fail with EBADF so that's close enough. */
-
-#define __fcntl(fd, command) \
- ({ \
- assert ((command) == F_GETFL); \
- O_RDONLY; \
- })
-
-#include <sysdeps/posix/fdopendir.c>
deleted file mode 100644
@@ -1,3 +0,0 @@
-/* Get the stub, bypassing the "generic" NPTL code. */
-#include <posix/fork.c>
-strong_alias (__fork, __libc_fork)
deleted file mode 100644
@@ -1,27 +0,0 @@
-/* Make all changes done to FD actually appear on disk. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Make all changes done to FD actually appear on disk. */
-int
-fsync (int fd)
-{
- return NACL_CALL (__nacl_irt_dev_fdio.fsync (fd), 0);
-}
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Truncate a file. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Truncate the file referenced by FD to LENGTH bytes. */
-int
-__ftruncate (int fd, off_t length)
-{
- return NACL_CALL (__nacl_irt_dev_fdio.ftruncate (fd, length), 0);
-}
-weak_alias (__ftruncate, ftruncate)
-
-/* ftruncate64 is the same as ftruncate. */
-strong_alias (__ftruncate, __ftruncate64)
-weak_alias (__ftruncate64, ftruncate64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* ftruncate64 is the same as ftruncate. */
deleted file mode 100644
@@ -1,248 +0,0 @@
-/* futex operations for glibc-internal use. NaCl version.
- Copyright (C) 2014-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/>. */
-
-#ifndef FUTEX_INTERNAL_H
-#define FUTEX_INTERNAL_H
-
-#include <sysdeps/nptl/futex-internal.h>
-#include <errno.h>
-#include <lowlevellock-futex.h>
-#include <nacl-interfaces.h>
-#include <nptl/pthreadP.h>
-
-/* See sysdeps/nptl/futex-internal.h for documentation; this file only
- contains NaCl-specific comments.
-
- There is no support yet for shared futexes nor for exact relative
- timeouts. */
-
-/* See sysdeps/nptl/futex-internal.h for constraints on the value of the
- FUTEX_PRIVATE and FUTEX_SHARED constants.
- Shared futexes are not yet supported, and we never allow clients to
- actually request shared futexes. Therefore, we do not need a different
- value. */
-#undef FUTEX_SHARED
-#define FUTEX_SHARED FUTEX_PRIVATE
-
-/* FUTEX_SHARED is not yet supported. */
-static __always_inline int
-futex_supports_pshared (int pshared)
-{
- if (__glibc_likely (pshared == PTHREAD_PROCESS_PRIVATE))
- return 0;
- else if (pshared == PTHREAD_PROCESS_SHARED)
- return ENOTSUP;
- else
- return EINVAL;
-}
-
-/* Relative timeouts are only emulated via absolute timeouts using the
- system clock. */
-static __always_inline bool
-futex_supports_exact_relative_timeouts (void)
-{
- return false;
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_wait (unsigned int *futex_word, unsigned int expected, int private)
-{
- int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- return -err;
-
- case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_wait_cancelable (unsigned int *futex_word, unsigned int expected,
- int private)
-{
- int oldtype;
- oldtype = __pthread_enable_asynccancel ();
- int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
- __pthread_disable_asynccancel (oldtype);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- return -err;
-
- case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_reltimed_wait (unsigned int *futex_word, unsigned int expected,
- const struct timespec *reltime, int private)
-{
- int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- case -ETIMEDOUT:
- return -err;
-
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_reltimed_wait_cancelable (unsigned int *futex_word,
- unsigned int expected,
- const struct timespec *reltime, int private)
-{
- int oldtype;
- oldtype = __pthread_enable_asynccancel ();
- int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
- __pthread_disable_asynccancel (oldtype);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- case -ETIMEDOUT:
- return -err;
-
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_abstimed_wait (unsigned int *futex_word, unsigned int expected,
- const struct timespec *abstime, int private)
-{
- int err = __nacl_irt_futex.futex_wait_abs ((volatile int *) futex_word,
- expected, abstime);
- switch (err)
- {
- case 0:
- case EAGAIN:
- case EINTR:
- case ETIMEDOUT:
- return err;
-
- case EFAULT: /* Must have been caused by a glibc or application bug. */
- case EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_abstimed_wait_cancelable (unsigned int *futex_word,
- unsigned int expected,
- const struct timespec *abstime, int private)
-{
- int oldtype;
- oldtype = __pthread_enable_asynccancel ();
- int err = __nacl_irt_futex.futex_wait_abs ((volatile int *) futex_word,
- expected, abstime);
- __pthread_disable_asynccancel (oldtype);
- switch (err)
- {
- case 0:
- case EAGAIN:
- case EINTR:
- case ETIMEDOUT:
- return err;
-
- case EFAULT: /* Must have been caused by a glibc or application bug. */
- case EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline void
-futex_wake (unsigned int *futex_word, int processes_to_wake, int private)
-{
- int res = lll_futex_wake (futex_word, processes_to_wake, private);
- /* No error. Ignore the number of woken processes. */
- if (res >= 0)
- return;
- switch (res)
- {
- case -EFAULT: /* Could have happened due to memory reuse. */
- case -EINVAL: /* Could be either due to incorrect alignment (a bug in
- glibc or in the application) or due to memory being
- reused for a PI futex. We cannot distinguish between the
- two causes, and one of them is correct use, so we do not
- act in this case. */
- return;
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-#endif /* futex-internal.h */
deleted file mode 100644
@@ -1,45 +0,0 @@
-/* Get stat information from a file descriptor. NaCl version.
- 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/>. */
-
-/* Avoid the declaration so the compiler doesn't complain about the alias
- with a different type signature. It doesn't know that 'struct stat'
- and 'struct stat64' are ABI-compatible. */
-#define __fxstat64 __fxstat64_avoid
-#include <sys/stat.h>
-#undef __fxstat64
-
-#include <errno.h>
-#include <stddef.h>
-
-#include <xstatconv.h>
-
-#undef fstat
-
-/* Get information about the file descriptor FD in BUF. */
-int
-__fxstat (int vers, int fd, struct stat *buf)
-{
- nacl_abi_stat_t abi_buf;
- return NACL_CALL (__nacl_irt_fdio.fstat (fd, &abi_buf),
- __xstat_conv (vers, &abi_buf, buf));
-}
-hidden_def (__fxstat)
-weak_alias (__fxstat, _fxstat)
-
-strong_alias (__fxstat, __fxstat64)
-hidden_ver (__fxstat, __fxstat64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* fxstat.c defines __fxstat64 as an alias. */
deleted file mode 100644
@@ -1,56 +0,0 @@
-/* Get current working directory. NaCl version.
- 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 <unistd.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <nacl-interfaces.h>
-
-/* Get the pathname of the current working directory,
- and put it in SIZE bytes of BUF. Returns NULL if the
- directory couldn't be determined or SIZE was too small.
- If successful, returns BUF. In GNU, if BUF is NULL,
- an array is allocated with `malloc'; the array is SIZE
- bytes long, unless SIZE <= 0, in which case it is as
- big as necessary. */
-char *
-__getcwd (char *buf, size_t size)
-{
- char *use_buf = buf;
-
- if (buf == NULL)
- {
- if (size == 0)
- size = PATH_MAX;
- use_buf = malloc (size);
- if (__glibc_unlikely (use_buf == NULL))
- return NULL;
- }
-
- int error = __nacl_irt_dev_filename.getcwd (use_buf, size);
- if (__glibc_unlikely (error))
- {
- if (use_buf != buf)
- free (use_buf);
- errno = error;
- return NULL;
- }
-
- return use_buf;
-}
-weak_alias (__getcwd, getcwd)
deleted file mode 100644
@@ -1,29 +0,0 @@
-/* Read directory entries from a file descriptor. NaCl version.
- 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 <dirent.h>
-#include <nacl-interfaces.h>
-
-ssize_t
-internal_function
-__getdents (int fd, char *buf, size_t nbytes)
-{
- size_t nread;
- return NACL_CALL (__nacl_irt_fdio.getdents (fd, (void *) buf, nbytes, &nread),
- nread);
-}
deleted file mode 100644
@@ -1 +0,0 @@
-/* We do not define a getdirentries or getdirentries64 entry point at all. */
deleted file mode 100644
@@ -1,29 +0,0 @@
-/* getdtablesize -- Return the limit on file descriptor values. NaCl version.
- 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 <unistd.h>
-
-/* Return the maximum number of file descriptors
- the current process could possibly have. */
-int
-__getdtablesize (void)
-{
- /* There is no actual limit in NaCl, just memory. */
- return -1;
-}
-weak_alias (__getdtablesize, getdtablesize)
deleted file mode 100644
@@ -1,45 +0,0 @@
-/* Get current host's name. NaCl version.
- 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 <string.h>
-#include <unistd.h>
-
-/* Put the name of the current host in no more than LEN bytes of NAME.
- The result is null-terminated if LEN is large enough for the full
- name and the terminator. */
-int
-__gethostname (char *name, size_t len)
-{
- static const char hostname[] = "naclhost";
-
- int result = 0;
- size_t copy = sizeof hostname;
-
- if (len < copy)
- {
- errno = ENAMETOOLONG;
- result = -1;
- copy = len;
- }
-
- memcpy (name, hostname, copy);
-
- return result;
-}
-weak_alias (__gethostname, gethostname)
deleted file mode 100644
@@ -1 +0,0 @@
-#include <sysdeps/unix/getpagesize.c>
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Get the process ID of the calling process. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Get the process ID of the calling process. */
-pid_t
-__getpid (void)
-{
- int pid;
- return NACL_CALL (__nacl_irt_dev_getpid.getpid (&pid), pid);
-}
-libc_hidden_def (__getpid)
-weak_alias (__getpid, getpid)
-libc_hidden_weak (getpid)
deleted file mode 100644
@@ -1,65 +0,0 @@
-/* getsysstats - Determine various system internal values. NaCl version.
- 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 <sys/sysinfo.h>
-#include <nacl-interfaces.h>
-
-#undef __native_client__
-#include "native_client/src/trusted/service_runtime/include/sys/unistd.h"
-
-
-int
-__get_nprocs_conf (void)
-{
- int nprocs;
- if (__nacl_irt_basic.sysconf (NACL_ABI__SC_NPROCESSORS_ONLN, &nprocs) != 0)
- /* On failure (which should be impossible), just report one processor. */
- nprocs = 1;
- return nprocs;
-}
-weak_alias (__get_nprocs_conf, get_nprocs_conf)
-
-int
-__get_nprocs (void)
-{
- return __get_nprocs_conf ();
-}
-weak_alias (__get_nprocs, get_nprocs)
-
-
-long int
-__get_phys_pages (void)
-{
- /* We have no general way to determine this value. */
- __set_errno (ENOSYS);
- return -1;
-}
-weak_alias (__get_phys_pages, get_phys_pages)
-stub_warning (get_phys_pages)
-
-
-long int
-__get_avphys_pages (void)
-{
- /* We have no general way to determine this value. */
- __set_errno (ENOSYS);
- return -1;
-}
-weak_alias (__get_avphys_pages, get_avphys_pages)
-stub_warning (get_avphys_pages)
deleted file mode 100644
@@ -1,40 +0,0 @@
-/* Get the current wall clock time. NaCl version.
- 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 <sys/time.h>
-#include <nacl-interfaces.h>
-
-
-/* Get the current time of day and timezone information,
- putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled.
- Returns 0 on success, -1 on errors. */
-int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
-{
- if (__glibc_unlikely (tz != NULL))
- {
- tz->tz_minuteswest = 0;
- tz->tz_dsttime = 0;
- }
-
- return NACL_CALL (__nacl_irt_basic.gettod (tv), 0);
-}
-libc_hidden_def (__gettimeofday)
-weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
deleted file mode 100644
@@ -1,2 +0,0 @@
-/* Fetch the version that defines glob64 as an alias. */
-#include <sysdeps/wordsize-64/glob.c>
deleted file mode 100644
@@ -1 +0,0 @@
-#include <sysdeps/wordsize-64/glob64.c>
deleted file mode 100644
@@ -1,2 +0,0 @@
-/* Bypass the sysdeps/gnu version to get the plain stub. */
-#include <inet/ifaddrs.c>
deleted file mode 100644
@@ -1,27 +0,0 @@
-/* Initialization code run first thing by the ELF startup code. NaCl version.
- 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/>. */
-
-#ifdef SHARED
-
-# include <nacl-interfaces.h>
-
-# define VDSO_SETUP __nacl_initialize_interfaces
-
-#endif
-
-#include <csu/init-first.c>
deleted file mode 100644
@@ -1,26 +0,0 @@
-/* Open a stream from a file descriptor. NaCl version.
- 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 <fcntl.h>
-
-/* NaCl does not have a functioning fcntl, so don't use the stub and fail. */
-#undef F_GETFL
-#undef F_SETFL
-#define __fcntl(...) ???should not be called???
-
-#include <libio/iofdopen.c>
deleted file mode 100644
@@ -1,12 +0,0 @@
-# This sed script massages native_client/src/untrusted/irt/irt.h into
-# the nacl-irt.h used to build libc, by rewriting foo_t and struct bar
-# to nacl_abi_foo_t and nacl_abi_bar_t (and eliding forward declarations).
-# It doesn't perturb any struct CamelCaps cases, since such names will
-# be used only in NaCl-specific interfaces.
-/^struct \([a-z][a-z]*\);$/d
-/^#include "irt\.h"$/d
-/(/!b
-s/\([a-z0-9_][a-z0-9_]*\)_t\>/nacl_abi_\1_t/g
-s/struct \([a-z0-9_][a-z0-9_]*\)/nacl_abi_\1_t/g
-s/nacl_abi_\(u*int[3264ptr]*_t\)/\1/g
-s/nacl_abi_\(nacl_irt_\)/\1/g
deleted file mode 100644
@@ -1,38 +0,0 @@
-/* Determine if a file descriptor refers to a terminal. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Return 1 if FD is a terminal, 0 if not. */
-int
-__isatty (int fd)
-{
- int result;
- int error = __nacl_irt_dev_fdio.isatty (fd, &result);
- if (error == 0)
- {
- if (result)
- return 1;
- error = ENOTTY;
- }
- errno = error;
- return 0;
-}
-weak_alias (__isatty, isatty)
deleted file mode 100644
@@ -1,21 +0,0 @@
-/* Set flags signalling availability of certain operating system features.
- 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/>. */
-
-/* This file can define __ASSUME_* macros checked by certain source files.
- Almost none of these are used outside of sysdeps/unix/sysv/linux code.
- But those referring to POSIX-level features like O_* flags can be. */
deleted file mode 100644
@@ -1,10 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 __libc_stack_end D 0x4
-GLIBC_2.22 __stack_chk_guard D 0x4
-GLIBC_2.22 __tls_get_addr F
-GLIBC_2.22 _dl_mcount F
-GLIBC_2.22 _r_debug D 0x14
-GLIBC_2.22 calloc F
-GLIBC_2.22 free F
-GLIBC_2.22 malloc F
-GLIBC_2.22 realloc F
deleted file mode 100644
@@ -1,35 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. NaCl.
- 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/>. */
-
-#ifndef _LDSODEFS_H
-
-/* We have the auxiliary vector. */
-#define HAVE_AUX_VECTOR 1
-
-/* Get the real definitions. */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff. */
-
-/* Used by static binaries to check the auxiliary vector. */
-extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function;
-
-/* Initialization which is normally done by the dynamic linker. */
-extern void _dl_non_dynamic_init (void) internal_function;
-
-#endif /* ldsodefs.h */
deleted file mode 100644
@@ -1,2 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 __ctype_get_mb_cur_max F
deleted file mode 100644
@@ -1,5 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 gai_cancel F
-GLIBC_2.22 gai_error F
-GLIBC_2.22 gai_suspend F
-GLIBC_2.22 getaddrinfo_a F
deleted file mode 100644
@@ -1,4 +0,0 @@
-/* We can compute the location of auxv without a loop, so we might as well
- pass it in. */
-#define LIBC_START_MAIN_AUXVEC_ARG
-#include <csu/libc-start.c>
deleted file mode 100644
@@ -1,8 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 crypt F
-GLIBC_2.22 crypt_r F
-GLIBC_2.22 encrypt F
-GLIBC_2.22 encrypt_r F
-GLIBC_2.22 fcrypt F
-GLIBC_2.22 setkey F
-GLIBC_2.22 setkey_r F
deleted file mode 100644
@@ -1,10 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 dladdr F
-GLIBC_2.22 dladdr1 F
-GLIBC_2.22 dlclose F
-GLIBC_2.22 dlerror F
-GLIBC_2.22 dlinfo F
-GLIBC_2.22 dlmopen F
-GLIBC_2.22 dlopen F
-GLIBC_2.22 dlsym F
-GLIBC_2.22 dlvsym F
deleted file mode 100644
@@ -1,430 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 _LIB_VERSION D 0x4
-GLIBC_2.22 __acos_finite F
-GLIBC_2.22 __acosf_finite F
-GLIBC_2.22 __acosh_finite F
-GLIBC_2.22 __acoshf_finite F
-GLIBC_2.22 __asin_finite F
-GLIBC_2.22 __asinf_finite F
-GLIBC_2.22 __atan2_finite F
-GLIBC_2.22 __atan2f_finite F
-GLIBC_2.22 __atanh_finite F
-GLIBC_2.22 __atanhf_finite F
-GLIBC_2.22 __clog10 F
-GLIBC_2.22 __clog10f F
-GLIBC_2.22 __clog10l F
-GLIBC_2.22 __cosh_finite F
-GLIBC_2.22 __coshf_finite F
-GLIBC_2.22 __exp10_finite F
-GLIBC_2.22 __exp10f_finite F
-GLIBC_2.22 __exp2_finite F
-GLIBC_2.22 __exp2f_finite F
-GLIBC_2.22 __exp_finite F
-GLIBC_2.22 __expf_finite F
-GLIBC_2.22 __finite F
-GLIBC_2.22 __finitef F
-GLIBC_2.22 __finitel F
-GLIBC_2.22 __fmod_finite F
-GLIBC_2.22 __fmodf_finite F
-GLIBC_2.22 __fpclassify F
-GLIBC_2.22 __fpclassifyf F
-GLIBC_2.22 __gamma_r_finite F
-GLIBC_2.22 __gammaf_r_finite F
-GLIBC_2.22 __hypot_finite F
-GLIBC_2.22 __hypotf_finite F
-GLIBC_2.22 __issignaling F
-GLIBC_2.22 __issignalingf F
-GLIBC_2.22 __j0_finite F
-GLIBC_2.22 __j0f_finite F
-GLIBC_2.22 __j1_finite F
-GLIBC_2.22 __j1f_finite F
-GLIBC_2.22 __jn_finite F
-GLIBC_2.22 __jnf_finite F
-GLIBC_2.22 __lgamma_r_finite F
-GLIBC_2.22 __lgammaf_r_finite F
-GLIBC_2.22 __log10_finite F
-GLIBC_2.22 __log10f_finite F
-GLIBC_2.22 __log2_finite F
-GLIBC_2.22 __log2f_finite F
-GLIBC_2.22 __log_finite F
-GLIBC_2.22 __logf_finite F
-GLIBC_2.22 __pow_finite F
-GLIBC_2.22 __powf_finite F
-GLIBC_2.22 __remainder_finite F
-GLIBC_2.22 __remainderf_finite F
-GLIBC_2.22 __scalb_finite F
-GLIBC_2.22 __scalbf_finite F
-GLIBC_2.22 __signbit F
-GLIBC_2.22 __signbitf F
-GLIBC_2.22 __sinh_finite F
-GLIBC_2.22 __sinhf_finite F
-GLIBC_2.22 __sqrt_finite F
-GLIBC_2.22 __sqrtf_finite F
-GLIBC_2.22 __y0_finite F
-GLIBC_2.22 __y0f_finite F
-GLIBC_2.22 __y1_finite F
-GLIBC_2.22 __y1f_finite F
-GLIBC_2.22 __yn_finite F
-GLIBC_2.22 __ynf_finite F
-GLIBC_2.22 acos F
-GLIBC_2.22 acosf F
-GLIBC_2.22 acosh F
-GLIBC_2.22 acoshf F
-GLIBC_2.22 acoshl F
-GLIBC_2.22 acosl F
-GLIBC_2.22 asin F
-GLIBC_2.22 asinf F
-GLIBC_2.22 asinh F
-GLIBC_2.22 asinhf F
-GLIBC_2.22 asinhl F
-GLIBC_2.22 asinl F
-GLIBC_2.22 atan F
-GLIBC_2.22 atan2 F
-GLIBC_2.22 atan2f F
-GLIBC_2.22 atan2l F
-GLIBC_2.22 atanf F
-GLIBC_2.22 atanh F
-GLIBC_2.22 atanhf F
-GLIBC_2.22 atanhl F
-GLIBC_2.22 atanl F
-GLIBC_2.22 cabs F
-GLIBC_2.22 cabsf F
-GLIBC_2.22 cabsl F
-GLIBC_2.22 cacos F
-GLIBC_2.22 cacosf F
-GLIBC_2.22 cacosh F
-GLIBC_2.22 cacoshf F
-GLIBC_2.22 cacoshl F
-GLIBC_2.22 cacosl F
-GLIBC_2.22 carg F
-GLIBC_2.22 cargf F
-GLIBC_2.22 cargl F
-GLIBC_2.22 casin F
-GLIBC_2.22 casinf F
-GLIBC_2.22 casinh F
-GLIBC_2.22 casinhf F
-GLIBC_2.22 casinhl F
-GLIBC_2.22 casinl F
-GLIBC_2.22 catan F
-GLIBC_2.22 catanf F
-GLIBC_2.22 catanh F
-GLIBC_2.22 catanhf F
-GLIBC_2.22 catanhl F
-GLIBC_2.22 catanl F
-GLIBC_2.22 cbrt F
-GLIBC_2.22 cbrtf F
-GLIBC_2.22 cbrtl F
-GLIBC_2.22 ccos F
-GLIBC_2.22 ccosf F
-GLIBC_2.22 ccosh F
-GLIBC_2.22 ccoshf F
-GLIBC_2.22 ccoshl F
-GLIBC_2.22 ccosl F
-GLIBC_2.22 ceil F
-GLIBC_2.22 ceilf F
-GLIBC_2.22 ceill F
-GLIBC_2.22 cexp F
-GLIBC_2.22 cexpf F
-GLIBC_2.22 cexpl F
-GLIBC_2.22 cimag F
-GLIBC_2.22 cimagf F
-GLIBC_2.22 cimagl F
-GLIBC_2.22 clog F
-GLIBC_2.22 clog10 F
-GLIBC_2.22 clog10f F
-GLIBC_2.22 clog10l F
-GLIBC_2.22 clogf F
-GLIBC_2.22 clogl F
-GLIBC_2.22 conj F
-GLIBC_2.22 conjf F
-GLIBC_2.22 conjl F
-GLIBC_2.22 copysign F
-GLIBC_2.22 copysignf F
-GLIBC_2.22 copysignl F
-GLIBC_2.22 cos F
-GLIBC_2.22 cosf F
-GLIBC_2.22 cosh F
-GLIBC_2.22 coshf F
-GLIBC_2.22 coshl F
-GLIBC_2.22 cosl F
-GLIBC_2.22 cpow F
-GLIBC_2.22 cpowf F
-GLIBC_2.22 cpowl F
-GLIBC_2.22 cproj F
-GLIBC_2.22 cprojf F
-GLIBC_2.22 cprojl F
-GLIBC_2.22 creal F
-GLIBC_2.22 crealf F
-GLIBC_2.22 creall F
-GLIBC_2.22 csin F
-GLIBC_2.22 csinf F
-GLIBC_2.22 csinh F
-GLIBC_2.22 csinhf F
-GLIBC_2.22 csinhl F
-GLIBC_2.22 csinl F
-GLIBC_2.22 csqrt F
-GLIBC_2.22 csqrtf F
-GLIBC_2.22 csqrtl F
-GLIBC_2.22 ctan F
-GLIBC_2.22 ctanf F
-GLIBC_2.22 ctanh F
-GLIBC_2.22 ctanhf F
-GLIBC_2.22 ctanhl F
-GLIBC_2.22 ctanl F
-GLIBC_2.22 drem F
-GLIBC_2.22 dremf F
-GLIBC_2.22 dreml F
-GLIBC_2.22 erf F
-GLIBC_2.22 erfc F
-GLIBC_2.22 erfcf F
-GLIBC_2.22 erfcl F
-GLIBC_2.22 erff F
-GLIBC_2.22 erfl F
-GLIBC_2.22 exp F
-GLIBC_2.22 exp10 F
-GLIBC_2.22 exp10f F
-GLIBC_2.22 exp10l F
-GLIBC_2.22 exp2 F
-GLIBC_2.22 exp2f F
-GLIBC_2.22 exp2l F
-GLIBC_2.22 expf F
-GLIBC_2.22 expl F
-GLIBC_2.22 expm1 F
-GLIBC_2.22 expm1f F
-GLIBC_2.22 expm1l F
-GLIBC_2.22 fabs F
-GLIBC_2.22 fabsf F
-GLIBC_2.22 fabsl F
-GLIBC_2.22 fdim F
-GLIBC_2.22 fdimf F
-GLIBC_2.22 fdiml F
-GLIBC_2.22 feclearexcept F
-GLIBC_2.22 fedisableexcept F
-GLIBC_2.22 feenableexcept F
-GLIBC_2.22 fegetenv F
-GLIBC_2.22 fegetexcept F
-GLIBC_2.22 fegetexceptflag F
-GLIBC_2.22 fegetround F
-GLIBC_2.22 feholdexcept F
-GLIBC_2.22 feraiseexcept F
-GLIBC_2.22 fesetenv F
-GLIBC_2.22 fesetexceptflag F
-GLIBC_2.22 fesetround F
-GLIBC_2.22 fetestexcept F
-GLIBC_2.22 feupdateenv F
-GLIBC_2.22 finite F
-GLIBC_2.22 finitef F
-GLIBC_2.22 finitel F
-GLIBC_2.22 floor F
-GLIBC_2.22 floorf F
-GLIBC_2.22 floorl F
-GLIBC_2.22 fma F
-GLIBC_2.22 fmaf F
-GLIBC_2.22 fmal F
-GLIBC_2.22 fmax F
-GLIBC_2.22 fmaxf F
-GLIBC_2.22 fmaxl F
-GLIBC_2.22 fmin F
-GLIBC_2.22 fminf F
-GLIBC_2.22 fminl F
-GLIBC_2.22 fmod F
-GLIBC_2.22 fmodf F
-GLIBC_2.22 fmodl F
-GLIBC_2.22 frexp F
-GLIBC_2.22 frexpf F
-GLIBC_2.22 frexpl F
-GLIBC_2.22 gamma F
-GLIBC_2.22 gammaf F
-GLIBC_2.22 gammal F
-GLIBC_2.22 hypot F
-GLIBC_2.22 hypotf F
-GLIBC_2.22 hypotl F
-GLIBC_2.22 ilogb F
-GLIBC_2.22 ilogbf F
-GLIBC_2.22 ilogbl F
-GLIBC_2.22 j0 F
-GLIBC_2.22 j0f F
-GLIBC_2.22 j0l F
-GLIBC_2.22 j1 F
-GLIBC_2.22 j1f F
-GLIBC_2.22 j1l F
-GLIBC_2.22 jn F
-GLIBC_2.22 jnf F
-GLIBC_2.22 jnl F
-GLIBC_2.22 ldexp F
-GLIBC_2.22 ldexpf F
-GLIBC_2.22 ldexpl F
-GLIBC_2.22 lgamma F
-GLIBC_2.22 lgamma_r F
-GLIBC_2.22 lgammaf F
-GLIBC_2.22 lgammaf_r F
-GLIBC_2.22 lgammal F
-GLIBC_2.22 lgammal_r F
-GLIBC_2.22 llrint F
-GLIBC_2.22 llrintf F
-GLIBC_2.22 llrintl F
-GLIBC_2.22 llround F
-GLIBC_2.22 llroundf F
-GLIBC_2.22 llroundl F
-GLIBC_2.22 log F
-GLIBC_2.22 log10 F
-GLIBC_2.22 log10f F
-GLIBC_2.22 log10l F
-GLIBC_2.22 log1p F
-GLIBC_2.22 log1pf F
-GLIBC_2.22 log1pl F
-GLIBC_2.22 log2 F
-GLIBC_2.22 log2f F
-GLIBC_2.22 log2l F
-GLIBC_2.22 logb F
-GLIBC_2.22 logbf F
-GLIBC_2.22 logbl F
-GLIBC_2.22 logf F
-GLIBC_2.22 logl F
-GLIBC_2.22 lrint F
-GLIBC_2.22 lrintf F
-GLIBC_2.22 lrintl F
-GLIBC_2.22 lround F
-GLIBC_2.22 lroundf F
-GLIBC_2.22 lroundl F
-GLIBC_2.22 matherr F
-GLIBC_2.22 modf F
-GLIBC_2.22 modff F
-GLIBC_2.22 modfl F
-GLIBC_2.22 nan F
-GLIBC_2.22 nanf F
-GLIBC_2.22 nanl F
-GLIBC_2.22 nearbyint F
-GLIBC_2.22 nearbyintf F
-GLIBC_2.22 nearbyintl F
-GLIBC_2.22 nextafter F
-GLIBC_2.22 nextafterf F
-GLIBC_2.22 nextafterl F
-GLIBC_2.22 nexttoward F
-GLIBC_2.22 nexttowardf F
-GLIBC_2.22 nexttowardl F
-GLIBC_2.22 pow F
-GLIBC_2.22 pow10 F
-GLIBC_2.22 pow10f F
-GLIBC_2.22 pow10l F
-GLIBC_2.22 powf F
-GLIBC_2.22 powl F
-GLIBC_2.22 remainder F
-GLIBC_2.22 remainderf F
-GLIBC_2.22 remainderl F
-GLIBC_2.22 remquo F
-GLIBC_2.22 remquof F
-GLIBC_2.22 remquol F
-GLIBC_2.22 rint F
-GLIBC_2.22 rintf F
-GLIBC_2.22 rintl F
-GLIBC_2.22 round F
-GLIBC_2.22 roundf F
-GLIBC_2.22 roundl F
-GLIBC_2.22 scalb F
-GLIBC_2.22 scalbf F
-GLIBC_2.22 scalbl F
-GLIBC_2.22 scalbln F
-GLIBC_2.22 scalblnf F
-GLIBC_2.22 scalblnl F
-GLIBC_2.22 scalbn F
-GLIBC_2.22 scalbnf F
-GLIBC_2.22 scalbnl F
-GLIBC_2.22 signgam D 0x4
-GLIBC_2.22 significand F
-GLIBC_2.22 significandf F
-GLIBC_2.22 significandl F
-GLIBC_2.22 sin F
-GLIBC_2.22 sincos F
-GLIBC_2.22 sincosf F
-GLIBC_2.22 sincosl F
-GLIBC_2.22 sinf F
-GLIBC_2.22 sinh F
-GLIBC_2.22 sinhf F
-GLIBC_2.22 sinhl F
-GLIBC_2.22 sinl F
-GLIBC_2.22 sqrt F
-GLIBC_2.22 sqrtf F
-GLIBC_2.22 sqrtl F
-GLIBC_2.22 tan F
-GLIBC_2.22 tanf F
-GLIBC_2.22 tanh F
-GLIBC_2.22 tanhf F
-GLIBC_2.22 tanhl F
-GLIBC_2.22 tanl F
-GLIBC_2.22 tgamma F
-GLIBC_2.22 tgammaf F
-GLIBC_2.22 tgammal F
-GLIBC_2.22 trunc F
-GLIBC_2.22 truncf F
-GLIBC_2.22 truncl F
-GLIBC_2.22 y0 F
-GLIBC_2.22 y0f F
-GLIBC_2.22 y0l F
-GLIBC_2.22 y1 F
-GLIBC_2.22 y1f F
-GLIBC_2.22 y1l F
-GLIBC_2.22 yn F
-GLIBC_2.22 ynf F
-GLIBC_2.22 ynl F
-GLIBC_2.23 GLIBC_2.23 A
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 GLIBC_2.24 A
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 GLIBC_2.25 A
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
deleted file mode 100644
@@ -1,175 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 _IO_flockfile F
-GLIBC_2.22 _IO_ftrylockfile F
-GLIBC_2.22 _IO_funlockfile F
-GLIBC_2.22 __errno_location F
-GLIBC_2.22 __h_errno_location F
-GLIBC_2.22 __libc_allocate_rtsig F
-GLIBC_2.22 __libc_current_sigrtmax F
-GLIBC_2.22 __libc_current_sigrtmin F
-GLIBC_2.22 __pthread_cleanup_routine F
-GLIBC_2.22 __pthread_getspecific F
-GLIBC_2.22 __pthread_key_create F
-GLIBC_2.22 __pthread_mutex_destroy F
-GLIBC_2.22 __pthread_mutex_init F
-GLIBC_2.22 __pthread_mutex_lock F
-GLIBC_2.22 __pthread_mutex_trylock F
-GLIBC_2.22 __pthread_mutex_unlock F
-GLIBC_2.22 __pthread_mutexattr_destroy F
-GLIBC_2.22 __pthread_mutexattr_init F
-GLIBC_2.22 __pthread_mutexattr_settype F
-GLIBC_2.22 __pthread_once F
-GLIBC_2.22 __pthread_register_cancel F
-GLIBC_2.22 __pthread_register_cancel_defer F
-GLIBC_2.22 __pthread_rwlock_destroy F
-GLIBC_2.22 __pthread_rwlock_init F
-GLIBC_2.22 __pthread_rwlock_rdlock F
-GLIBC_2.22 __pthread_rwlock_tryrdlock F
-GLIBC_2.22 __pthread_rwlock_trywrlock F
-GLIBC_2.22 __pthread_rwlock_unlock F
-GLIBC_2.22 __pthread_rwlock_wrlock F
-GLIBC_2.22 __pthread_setspecific F
-GLIBC_2.22 __pthread_unregister_cancel F
-GLIBC_2.22 __pthread_unregister_cancel_restore F
-GLIBC_2.22 __pthread_unwind_next F
-GLIBC_2.22 __res_state F
-GLIBC_2.22 _pthread_cleanup_pop F
-GLIBC_2.22 _pthread_cleanup_pop_restore F
-GLIBC_2.22 _pthread_cleanup_push F
-GLIBC_2.22 _pthread_cleanup_push_defer F
-GLIBC_2.22 flockfile F
-GLIBC_2.22 ftrylockfile F
-GLIBC_2.22 funlockfile F
-GLIBC_2.22 pthread_attr_destroy F
-GLIBC_2.22 pthread_attr_getaffinity_np F
-GLIBC_2.22 pthread_attr_getdetachstate F
-GLIBC_2.22 pthread_attr_getguardsize F
-GLIBC_2.22 pthread_attr_getinheritsched F
-GLIBC_2.22 pthread_attr_getschedparam F
-GLIBC_2.22 pthread_attr_getschedpolicy F
-GLIBC_2.22 pthread_attr_getscope F
-GLIBC_2.22 pthread_attr_getstack F
-GLIBC_2.22 pthread_attr_getstackaddr F
-GLIBC_2.22 pthread_attr_getstacksize F
-GLIBC_2.22 pthread_attr_init F
-GLIBC_2.22 pthread_attr_setaffinity_np F
-GLIBC_2.22 pthread_attr_setdetachstate F
-GLIBC_2.22 pthread_attr_setguardsize F
-GLIBC_2.22 pthread_attr_setinheritsched F
-GLIBC_2.22 pthread_attr_setschedparam F
-GLIBC_2.22 pthread_attr_setschedpolicy F
-GLIBC_2.22 pthread_attr_setscope F
-GLIBC_2.22 pthread_attr_setstack F
-GLIBC_2.22 pthread_attr_setstackaddr F
-GLIBC_2.22 pthread_attr_setstacksize F
-GLIBC_2.22 pthread_barrier_destroy F
-GLIBC_2.22 pthread_barrier_init F
-GLIBC_2.22 pthread_barrier_wait F
-GLIBC_2.22 pthread_barrierattr_destroy F
-GLIBC_2.22 pthread_barrierattr_getpshared F
-GLIBC_2.22 pthread_barrierattr_init F
-GLIBC_2.22 pthread_barrierattr_setpshared F
-GLIBC_2.22 pthread_cancel F
-GLIBC_2.22 pthread_cond_broadcast F
-GLIBC_2.22 pthread_cond_destroy F
-GLIBC_2.22 pthread_cond_init F
-GLIBC_2.22 pthread_cond_signal F
-GLIBC_2.22 pthread_cond_timedwait F
-GLIBC_2.22 pthread_cond_wait F
-GLIBC_2.22 pthread_condattr_destroy F
-GLIBC_2.22 pthread_condattr_getclock F
-GLIBC_2.22 pthread_condattr_getpshared F
-GLIBC_2.22 pthread_condattr_init F
-GLIBC_2.22 pthread_condattr_setclock F
-GLIBC_2.22 pthread_condattr_setpshared F
-GLIBC_2.22 pthread_create F
-GLIBC_2.22 pthread_detach F
-GLIBC_2.22 pthread_equal F
-GLIBC_2.22 pthread_exit F
-GLIBC_2.22 pthread_getaffinity_np F
-GLIBC_2.22 pthread_getattr_default_np F
-GLIBC_2.22 pthread_getattr_np F
-GLIBC_2.22 pthread_getconcurrency F
-GLIBC_2.22 pthread_getcpuclockid F
-GLIBC_2.22 pthread_getname_np F
-GLIBC_2.22 pthread_getschedparam F
-GLIBC_2.22 pthread_getspecific F
-GLIBC_2.22 pthread_join F
-GLIBC_2.22 pthread_key_create F
-GLIBC_2.22 pthread_key_delete F
-GLIBC_2.22 pthread_kill F
-GLIBC_2.22 pthread_kill_other_threads_np F
-GLIBC_2.22 pthread_mutex_consistent F
-GLIBC_2.22 pthread_mutex_consistent_np F
-GLIBC_2.22 pthread_mutex_destroy F
-GLIBC_2.22 pthread_mutex_getprioceiling F
-GLIBC_2.22 pthread_mutex_init F
-GLIBC_2.22 pthread_mutex_lock F
-GLIBC_2.22 pthread_mutex_setprioceiling F
-GLIBC_2.22 pthread_mutex_timedlock F
-GLIBC_2.22 pthread_mutex_trylock F
-GLIBC_2.22 pthread_mutex_unlock F
-GLIBC_2.22 pthread_mutexattr_destroy F
-GLIBC_2.22 pthread_mutexattr_getkind_np F
-GLIBC_2.22 pthread_mutexattr_getprioceiling F
-GLIBC_2.22 pthread_mutexattr_getprotocol F
-GLIBC_2.22 pthread_mutexattr_getpshared F
-GLIBC_2.22 pthread_mutexattr_getrobust F
-GLIBC_2.22 pthread_mutexattr_getrobust_np F
-GLIBC_2.22 pthread_mutexattr_gettype F
-GLIBC_2.22 pthread_mutexattr_init F
-GLIBC_2.22 pthread_mutexattr_setkind_np F
-GLIBC_2.22 pthread_mutexattr_setprioceiling F
-GLIBC_2.22 pthread_mutexattr_setprotocol F
-GLIBC_2.22 pthread_mutexattr_setpshared F
-GLIBC_2.22 pthread_mutexattr_setrobust F
-GLIBC_2.22 pthread_mutexattr_setrobust_np F
-GLIBC_2.22 pthread_mutexattr_settype F
-GLIBC_2.22 pthread_once F
-GLIBC_2.22 pthread_rwlock_destroy F
-GLIBC_2.22 pthread_rwlock_init F
-GLIBC_2.22 pthread_rwlock_rdlock F
-GLIBC_2.22 pthread_rwlock_timedrdlock F
-GLIBC_2.22 pthread_rwlock_timedwrlock F
-GLIBC_2.22 pthread_rwlock_tryrdlock F
-GLIBC_2.22 pthread_rwlock_trywrlock F
-GLIBC_2.22 pthread_rwlock_unlock F
-GLIBC_2.22 pthread_rwlock_wrlock F
-GLIBC_2.22 pthread_rwlockattr_destroy F
-GLIBC_2.22 pthread_rwlockattr_getkind_np F
-GLIBC_2.22 pthread_rwlockattr_getpshared F
-GLIBC_2.22 pthread_rwlockattr_init F
-GLIBC_2.22 pthread_rwlockattr_setkind_np F
-GLIBC_2.22 pthread_rwlockattr_setpshared F
-GLIBC_2.22 pthread_self F
-GLIBC_2.22 pthread_setaffinity_np F
-GLIBC_2.22 pthread_setattr_default_np F
-GLIBC_2.22 pthread_setcancelstate F
-GLIBC_2.22 pthread_setcanceltype F
-GLIBC_2.22 pthread_setconcurrency F
-GLIBC_2.22 pthread_setname_np F
-GLIBC_2.22 pthread_setschedparam F
-GLIBC_2.22 pthread_setschedprio F
-GLIBC_2.22 pthread_setspecific F
-GLIBC_2.22 pthread_sigmask F
-GLIBC_2.22 pthread_sigqueue F
-GLIBC_2.22 pthread_spin_destroy F
-GLIBC_2.22 pthread_spin_init F
-GLIBC_2.22 pthread_spin_lock F
-GLIBC_2.22 pthread_spin_trylock F
-GLIBC_2.22 pthread_spin_unlock F
-GLIBC_2.22 pthread_testcancel F
-GLIBC_2.22 pthread_timedjoin_np F
-GLIBC_2.22 pthread_tryjoin_np F
-GLIBC_2.22 pthread_yield F
-GLIBC_2.22 raise F
-GLIBC_2.22 sem_close F
-GLIBC_2.22 sem_destroy F
-GLIBC_2.22 sem_getvalue F
-GLIBC_2.22 sem_init F
-GLIBC_2.22 sem_open F
-GLIBC_2.22 sem_post F
-GLIBC_2.22 sem_timedwait F
-GLIBC_2.22 sem_trywait F
-GLIBC_2.22 sem_unlink F
-GLIBC_2.22 sem_wait F
deleted file mode 100644
@@ -1,92 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 __b64_ntop F
-GLIBC_2.22 __b64_pton F
-GLIBC_2.22 __dn_comp F
-GLIBC_2.22 __dn_count_labels F
-GLIBC_2.22 __dn_expand F
-GLIBC_2.22 __dn_skipname F
-GLIBC_2.22 __fp_nquery F
-GLIBC_2.22 __fp_query F
-GLIBC_2.22 __fp_resstat F
-GLIBC_2.22 __hostalias F
-GLIBC_2.22 __loc_aton F
-GLIBC_2.22 __loc_ntoa F
-GLIBC_2.22 __p_cdname F
-GLIBC_2.22 __p_cdnname F
-GLIBC_2.22 __p_class F
-GLIBC_2.22 __p_class_syms D 0x54
-GLIBC_2.22 __p_fqname F
-GLIBC_2.22 __p_fqnname F
-GLIBC_2.22 __p_option F
-GLIBC_2.22 __p_query F
-GLIBC_2.22 __p_rcode F
-GLIBC_2.22 __p_secstodate F
-GLIBC_2.22 __p_time F
-GLIBC_2.22 __p_type F
-GLIBC_2.22 __p_type_syms D 0x228
-GLIBC_2.22 __putlong F
-GLIBC_2.22 __putshort F
-GLIBC_2.22 __res_close F
-GLIBC_2.22 __res_dnok F
-GLIBC_2.22 __res_hnok F
-GLIBC_2.22 __res_hostalias F
-GLIBC_2.22 __res_isourserver F
-GLIBC_2.22 __res_mailok F
-GLIBC_2.22 __res_mkquery F
-GLIBC_2.22 __res_nameinquery F
-GLIBC_2.22 __res_nmkquery F
-GLIBC_2.22 __res_nquery F
-GLIBC_2.22 __res_nquerydomain F
-GLIBC_2.22 __res_nsearch F
-GLIBC_2.22 __res_nsend F
-GLIBC_2.22 __res_ownok F
-GLIBC_2.22 __res_queriesmatch F
-GLIBC_2.22 __res_query F
-GLIBC_2.22 __res_querydomain F
-GLIBC_2.22 __res_search F
-GLIBC_2.22 __res_send F
-GLIBC_2.22 __sym_ntop F
-GLIBC_2.22 __sym_ntos F
-GLIBC_2.22 __sym_ston F
-GLIBC_2.22 _gethtbyaddr F
-GLIBC_2.22 _gethtbyname F
-GLIBC_2.22 _gethtbyname2 F
-GLIBC_2.22 _gethtent F
-GLIBC_2.22 _getlong F
-GLIBC_2.22 _getshort F
-GLIBC_2.22 _res_opcodes D 0x40
-GLIBC_2.22 _sethtent F
-GLIBC_2.22 inet_net_ntop F
-GLIBC_2.22 inet_net_pton F
-GLIBC_2.22 inet_neta F
-GLIBC_2.22 ns_datetosecs F
-GLIBC_2.22 ns_format_ttl F
-GLIBC_2.22 ns_get16 F
-GLIBC_2.22 ns_get32 F
-GLIBC_2.22 ns_initparse F
-GLIBC_2.22 ns_makecanon F
-GLIBC_2.22 ns_msg_getflag F
-GLIBC_2.22 ns_name_compress F
-GLIBC_2.22 ns_name_ntol F
-GLIBC_2.22 ns_name_ntop F
-GLIBC_2.22 ns_name_pack F
-GLIBC_2.22 ns_name_pton F
-GLIBC_2.22 ns_name_rollback F
-GLIBC_2.22 ns_name_skip F
-GLIBC_2.22 ns_name_uncompress F
-GLIBC_2.22 ns_name_unpack F
-GLIBC_2.22 ns_parse_ttl F
-GLIBC_2.22 ns_parserr F
-GLIBC_2.22 ns_put16 F
-GLIBC_2.22 ns_put32 F
-GLIBC_2.22 ns_samedomain F
-GLIBC_2.22 ns_samename F
-GLIBC_2.22 ns_skiprr F
-GLIBC_2.22 ns_sprintrr F
-GLIBC_2.22 ns_sprintrrf F
-GLIBC_2.22 ns_subdomain F
-GLIBC_2.22 res_gethostbyaddr F
-GLIBC_2.22 res_gethostbyname F
-GLIBC_2.22 res_gethostbyname2 F
-GLIBC_2.22 res_send_setqhook F
-GLIBC_2.22 res_send_setrhook F
deleted file mode 100644
@@ -1,36 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 __mq_open_2 F
-GLIBC_2.22 aio_cancel F
-GLIBC_2.22 aio_cancel64 F
-GLIBC_2.22 aio_error F
-GLIBC_2.22 aio_error64 F
-GLIBC_2.22 aio_fsync F
-GLIBC_2.22 aio_fsync64 F
-GLIBC_2.22 aio_init F
-GLIBC_2.22 aio_read F
-GLIBC_2.22 aio_read64 F
-GLIBC_2.22 aio_return F
-GLIBC_2.22 aio_return64 F
-GLIBC_2.22 aio_suspend F
-GLIBC_2.22 aio_suspend64 F
-GLIBC_2.22 aio_write F
-GLIBC_2.22 aio_write64 F
-GLIBC_2.22 lio_listio F
-GLIBC_2.22 lio_listio64 F
-GLIBC_2.22 mq_close F
-GLIBC_2.22 mq_getattr F
-GLIBC_2.22 mq_notify F
-GLIBC_2.22 mq_open F
-GLIBC_2.22 mq_receive F
-GLIBC_2.22 mq_send F
-GLIBC_2.22 mq_setattr F
-GLIBC_2.22 mq_timedreceive F
-GLIBC_2.22 mq_timedsend F
-GLIBC_2.22 mq_unlink F
-GLIBC_2.22 shm_open F
-GLIBC_2.22 shm_unlink F
-GLIBC_2.22 timer_create F
-GLIBC_2.22 timer_delete F
-GLIBC_2.22 timer_getoverrun F
-GLIBC_2.22 timer_gettime F
-GLIBC_2.22 timer_settime F
deleted file mode 100644
@@ -1,7 +0,0 @@
-GLIBC_2.22 GLIBC_2.22 A
-GLIBC_2.22 forkpty F
-GLIBC_2.22 login F
-GLIBC_2.22 login_tty F
-GLIBC_2.22 logout F
-GLIBC_2.22 logwtmp F
-GLIBC_2.22 openpty F
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Make a hard link. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Make a link to FROM called TO. */
-int
-__link (const char *from, const char *to)
-{
- return NACL_CALL (__nacl_irt_dev_filename.link (from, to), 0);
-}
-weak_alias (__link, link)
deleted file mode 100644
@@ -1,53 +0,0 @@
-/* Timed low level locking for pthread library. NaCl version.
- 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 <assert.h>
-#include <atomic.h>
-#include <errno.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-
-
-/* This behaves the same as the generic version in nptl/. It's simpler
- because it doesn't need to convert an absolute timeout to a relative
- one (and back again in the lll_futex_timed_wait macro). */
-
-int
-__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
-{
- /* Reject invalid timeouts. */
- if (__glibc_unlikely (abstime->tv_nsec < 0)
- || __glibc_unlikely (abstime->tv_nsec >= 1000000000))
- return EINVAL;
-
- /* Try locking. */
- while (atomic_exchange_acq (futex, 2) != 0)
- {
- /* If *futex == 2, wait until woken or timeout. */
- int err = __nacl_irt_futex.futex_wait_abs ((volatile int *) futex, 2,
- abstime);
- if (err != 0)
- {
- if (__glibc_likely (err == ETIMEDOUT))
- return err;
- assert (err == EAGAIN);
- }
- }
-
- return 0;
-}
deleted file mode 100644
@@ -1,61 +0,0 @@
-/* Timed waiting for thread death. NaCl version.
- 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 <assert.h>
-#include <atomic.h>
-#include <errno.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-
-int
-__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
-{
- /* Reject invalid timeouts. */
- if (__glibc_unlikely (abstime->tv_nsec < 0)
- || __glibc_unlikely (abstime->tv_nsec >= 1000000000))
- return EINVAL;
-
- /* Repeat until thread terminated. */
- int tid;
- while ((tid = atomic_load_relaxed (tidp)) != 0)
- {
- /* See exit-thread.h for details. */
- if (tid == NACL_EXITING_TID)
- /* The thread should now be in the process of exiting, so it will
- finish quick enough that the timeout doesn't matter. If any
- thread ever stays in this state for long, there is something
- catastrophically wrong. */
- atomic_spin_nop ();
- else
- {
- assert (tid > 0);
-
- /* If *FUTEX == TID, wait until woken or timeout. */
- int err = __nacl_irt_futex.futex_wait_abs ((volatile int *) tidp,
- tid, abstime);
- if (err != 0)
- {
- if (__glibc_likely (err == ETIMEDOUT))
- return err;
- assert (err == EAGAIN);
- }
- }
- }
-
- return 0;
-}
deleted file mode 100644
@@ -1,90 +0,0 @@
-/* Low-level locking access to futex facilities. NaCl version.
- 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/>. */
-
-#ifndef _LOWLEVELLOCK_FUTEX_H
-#define _LOWLEVELLOCK_FUTEX_H 1
-
-#include <nacl-interfaces.h>
-#include <time.h>
-
-
-#pragma GCC diagnostic ignored "-Wunused-value" /* XXX */
-
-/* Values for 'private' parameter of locking macros. Note pthreadP.h
- optimizes for these exact values, though they are not required. */
-#define LLL_PRIVATE 0
-#define LLL_SHARED 128
-
-#define FUTEX_PRIVATE_FLAG 0 /* XXX */
-
-
-/* Wait while *FUTEXP == VAL for an lll_futex_wake call on FUTEXP. */
-#define lll_futex_wait(futexp, val, private) \
- ((void) (private), \
- - __nacl_irt_futex.futex_wait_abs ((volatile int *) (futexp), val, NULL))
-
-/* Wait until a lll_futex_wake call on FUTEXP, or TIMEOUT elapses. */
-#define lll_futex_timed_wait(futexp, val, timeout, private) \
- ({ \
- /* This timeout is relative, but the IRT call wants it absolute. */\
- const struct timespec *_to = (timeout); \
- struct timespec _ts; \
- int _err = 0; \
- if (_to != NULL \
- && __glibc_likely ((_err = __nacl_irt_clock.clock_gettime \
- (CLOCK_REALTIME, &_ts)) == 0)) \
- { \
- _ts.tv_sec += _to->tv_sec; \
- _ts.tv_nsec += _to->tv_nsec; \
- while (_ts.tv_nsec >= 1000000000) \
- { \
- _ts.tv_nsec -= 1000000000; \
- ++_ts.tv_sec; \
- } \
- _to = &_ts; \
- } \
- if (_err == 0) \
- _err = __nacl_irt_futex.futex_wait_abs \
- ((volatile int *) (futexp), val, _to); \
- (void) (private); \
- -_err; \
- })
-
-/* Wake up up to NR waiters on FUTEXP. */
-#define lll_futex_wake(futexp, nr, private) \
- ({ \
- int _woken; \
- (void) (private); \
- - __nacl_irt_futex.futex_wake ((volatile int *) (futexp), nr, &_woken); \
- })
-
-/* NaCl does not support the requeue operation. The only use of this is in
- pthread_cond_broadcast, which handles an error return by falling back to
- plain lll_futex_wake. */
-#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
- ((futexp), (nr_wake), (nr_move), (mutex), (val), (private), -ENOSYS)
-
-/* NaCl does not support the special wake-unlock operation. The only use
- of this is in pthread_cond_signal, which handles an error return by
- falling back to plain lll_futex_wake. */
-/* Wake up up to NR_WAKE waiters on FUTEXP and NR_WAKE2 on FUTEXP2. */
-#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
- ((futexp), (nr_wake), (nr_wake2), (futexp2), (private), -ENOSYS)
-
-
-#endif /* lowlevellock-futex.h */
deleted file mode 100644
@@ -1,41 +0,0 @@
-/* Low-level lock implementation. NaCl version.
- 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/>. */
-
-#ifndef _LOWLEVELLOCK_H
-
-/* Everything except the exit handling is the same as the generic code. */
-# include <sysdeps/nptl/lowlevellock.h>
-
-/* See exit-thread.h for details. */
-# define NACL_EXITING_TID 1
-
-# undef lll_wait_tid
-# define lll_wait_tid(tid) \
- do { \
- __typeof (tid) __tid; \
- volatile __typeof (tid) *__tidp = &(tid); \
- while ((__tid = atomic_load_relaxed (__tidp)) != 0) \
- { \
- if (__tid == NACL_EXITING_TID) \
- atomic_spin_nop (); \
- else \
- lll_futex_wait (__tidp, __tid, LLL_PRIVATE); \
- } \
- } while (0)
-
-#endif /* lowlevellock.h */
deleted file mode 100644
@@ -1,43 +0,0 @@
-/* lseek -- Move the file position of a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-
-/* Seek to OFFSET on FD, starting from WHENCE. */
-off_t
-__libc_lseek (int fd, off_t offset, int whence)
-{
- off_t result;
- int error = __nacl_irt_fdio.seek (fd, offset, whence, &result);
- if (error)
- {
- __set_errno (error);
- return -1;
- }
- return result;
-}
-libc_hidden_def (__lseek)
-weak_alias (__libc_lseek, __lseek)
-weak_alias (__libc_lseek, lseek)
-
-/* Since off64_t is the same as off_t, lseek64 is just an alias. */
-weak_alias (__libc_lseek, __libc_lseek64)
-weak_alias (__libc_lseek, __lseek64)
-weak_alias (__libc_lseek, lseek64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* lseek.c defines lseek64 as an alias. */
deleted file mode 100644
@@ -1,46 +0,0 @@
-/* Get stat information from a file name NaCl version.
- 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/>. */
-
-/* Avoid the declaration so the compiler doesn't complain about the alias
- with a different type signature. It doesn't know that 'struct stat'
- and 'struct stat64' are ABI-compatible. */
-#define __lxstat64 __lxstat64_avoid
-#include <sys/stat.h>
-#undef __lxstat64
-
-#include <errno.h>
-#include <stddef.h>
-
-#include <xstatconv.h>
-
-#undef lstat
-
-/* Get file attributes about FILE and put them in BUF.
- If FILE is a symbolic link, do not follow it. */
-int
-__lxstat (int vers, const char *file, struct stat *buf)
-{
- nacl_abi_stat_t abi_buf;
- return NACL_CALL (__nacl_irt_dev_filename.lstat (file, &abi_buf),
- __xstat_conv (vers, &abi_buf, buf));
-}
-hidden_def (__lxstat)
-weak_alias (__lxstat, _lxstat)
-
-strong_alias (__lxstat, __lxstat64)
-hidden_ver (__lxstat, __lxstat64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* lxstat.c defines __lxstat64 as an alias. */
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Make a directory. NaCl version.
- 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 <sys/stat.h>
-#include <nacl-interfaces.h>
-
-/* Create a directory named PATH with protections MODE. */
-int
-__mkdir (const char *path, mode_t mode)
-{
- return NACL_CALL (__nacl_irt_dev_filename.mkdir (path, mode), 0);
-}
-weak_alias (__mkdir, mkdir)
deleted file mode 100644
@@ -1,49 +0,0 @@
-/* Map addresses from a file or anonymous memory. NaCl version.
- 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 <sys/mman.h>
-#include <nacl-interfaces.h>
-
-
-/* Map addresses starting near ADDR and extending for LEN bytes. From
- OFFSET into the file FD describes according to PROT and FLAGS. If ADDR
- is nonzero, it is the desired mapping address. If the MAP_FIXED bit is
- set in FLAGS, the mapping will be at ADDR exactly (which must be
- page-aligned); otherwise the system chooses a convenient nearby address.
- The return value is the actual mapping address chosen or MAP_FAILED
- for errors (in which case `errno' is set). A successful `mmap' call
- deallocates any previous mapping for the affected region. */
-
-__ptr_t
-__mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
-{
- int error = __nacl_irt_memory.mmap (&addr, len, prot, flags, fd, offset);
- if (error)
- {
- errno = error;
- return MAP_FAILED;
- }
- return addr;
-}
-weak_alias (__mmap, mmap)
-
-
-/* Since off64_t is the same as off_t, mmap64 is just an alias. */
-strong_alias (__mmap, __mmap64)
-weak_alias (__mmap, mmap64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* mmap.c defines mmap64 as an alias. */
deleted file mode 100644
@@ -1,33 +0,0 @@
-/* Change memory protections on pages. NaCl version.
- 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 <sys/types.h>
-#include <sys/mman.h>
-#include <nacl-interfaces.h>
-
-
-/* Change the memory protection of the region starting at ADDR and
- extending LEN bytes to PROT. Returns 0 if successful, -1 for errors
- (and sets errno). */
-
-int
-__mprotect (__ptr_t addr, size_t len, int prot)
-{
- return NACL_CALL (__nacl_irt_memory.mprotect (addr, len, prot), 0);
-}
-weak_alias (__mprotect, mprotect)
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Deallocate a region of pages. NaCl version.
- 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 <sys/mman.h>
-#include <nacl-interfaces.h>
-
-
-/* Deallocate any mapping for the region starting at ADDR and extending LEN
- bytes. Returns 0 if successful, -1 for errors (and sets errno). */
-
-int
-__munmap (__ptr_t addr, size_t len)
-{
- return NACL_CALL (__nacl_irt_memory.munmap (addr, len), 0);
-}
-
-weak_alias (__munmap, munmap)
deleted file mode 100755
@@ -1,69 +0,0 @@
-#!/bin/sh
-# Script to validate NaCl binaries after linking.
-
-# 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/>.
-
-# See sysdeps/nacl/Makefile for how this script is invoked.
-READELF="$1"
-binary="$2"
-
-if [ -z "$NACL_SDK_ROOT" ]; then
- echo >&2 "$0: NACL_SDK_ROOT must be set in the environment"
- exit 77
-fi
-
-ncval="${NACL_SDK_ROOT}/tools/ncval"
-
-if [ ! -x "$ncval" ]; then
- echo >&2 "$0: No ncval binary in $ncval"
- exit 77
-fi
-
-"${READELF}" -Wl "$binary" | awk '
-BEGIN { saw_load = saw_text = 0 }
-$1 == "LOAD" {
- saw_load = 1;
- if (/ R.E /) saw_code = 1;
-}
-END {
- exit (saw_code ? 11 : saw_load ? 22 : 1);
-}
-'
-case $? in
-11)
- # We saw a code segment, so we can try ncval.
- ;;
-22)
- # We saw LOAD segments but none of them were code.
- echo >&2 "+++ No code: $binary"
- exit 0
- ;;
-*)
- # Something funny going on.
- echo >&2 "*** Failed to analyze: $binary"
- exit 2
- ;;
-esac
-
-if "$ncval" "$binary"; then
- echo >&2 "+++ Validated: $binary"
- exit 0
-else
- echo >&2 "*** Validation failed: $binary"
- exit 2
-fi
deleted file mode 100644
@@ -1,45 +0,0 @@
-/* List of NaCl interface tables used in libraries.
- 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/>. */
-
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_BASIC_v0_1, nacl_irt_basic)
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_FDIO_v0_1, nacl_irt_fdio)
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_MEMORY_v0_3, nacl_irt_memory)
-NACL_MANDATORY_INTERFACE (libc,
- NACL_IRT_THREAD_v0_1, nacl_irt_thread)
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_FUTEX_v0_1, nacl_irt_futex)
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_TLS_v0_1, nacl_irt_tls)
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_RESOURCE_OPEN_v0_1, nacl_irt_resource_open)
-NACL_MANDATORY_INTERFACE (rtld,
- NACL_IRT_CODE_DATA_ALLOC_v0_1,
- nacl_irt_code_data_alloc)
-NACL_OPTIONAL_INTERFACE (libc,
- NACL_IRT_CLOCK_v0_1, nacl_irt_clock)
-NACL_OPTIONAL_INTERFACE (rtld,
- NACL_IRT_DYNCODE_v0_1, nacl_irt_dyncode)
-NACL_OPTIONAL_INTERFACE (rtld,
- NACL_IRT_DEV_GETPID_v0_1, nacl_irt_dev_getpid)
-NACL_OPTIONAL_INTERFACE (rtld,
- NACL_IRT_DEV_FILENAME_v0_3, nacl_irt_dev_filename)
-NACL_OPTIONAL_INTERFACE (libc,
- NACL_IRT_DEV_FDIO_v0_3, nacl_irt_dev_fdio)
deleted file mode 100644
@@ -1,43 +0,0 @@
-/* Define one NaCl interface table.
- 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 "nacl-interfaces.h"
-
-#define PASTE(a, b) PASTE_1 (a, b)
-#define PASTE_1(a, b) a##b
-#define STRINGIFY(x) STRINGIFY_1 (x)
-#define STRINGIFY_1(x) #x
-
-#if IS_IN (rtld) && PASTE (MODULE_, INTERFACE_MODULE) != MODULE_rtld
-# error "This interface is also needed in rtld."
-#endif
-
-#define SECTION(which) \
- section ("nacl_" STRINGIFY (INTERFACE_CATEGORY) "_interface_" #which)
-
-static const struct nacl_interface PASTE (desc_, INTERFACE_TYPE)
- __attribute__ ((used, SECTION (names))) =
-{
- .table_size = sizeof (struct INTERFACE_TYPE),
- .namelen = sizeof INTERFACE_STRING,
- .name = INTERFACE_STRING
-};
-
-struct INTERFACE_TYPE PASTE (__, INTERFACE_TYPE)
- __attribute__ ((SECTION (tables)));
-PASTE (INTERFACE_MODULE, _hidden_data_def) (PASTE (__, INTERFACE_TYPE))
deleted file mode 100644
@@ -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));
-}
deleted file mode 100644
@@ -1,120 +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/>. */
-
-#ifndef _NACL_INTERFACES_H
-#define _NACL_INTERFACES_H 1
-
-#include <errno.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <sys/types.h>
-
-/* <nacl-irt.h> is massaged from native_client/src/untrusted/irt/irt.h so
- that it uses nacl_abi_*_t type names. We must define those types first. */
-
-/* These are the same in the IRT ABI as in the libc ABI. */
-typedef blksize_t nacl_abi_blksize_t;
-typedef dev_t nacl_abi_dev_t;
-typedef gid_t nacl_abi_gid_t;
-typedef ino_t nacl_abi_ino_t;
-typedef mode_t nacl_abi_mode_t;
-typedef nlink_t nacl_abi_nlink_t;
-typedef size_t nacl_abi_size_t;
-typedef time_t nacl_abi_time_t;
-typedef uid_t nacl_abi_uid_t;
-typedef struct dirent nacl_abi_dirent_t;
-typedef struct timeval nacl_abi_timeval_t;
-typedef struct timespec nacl_abi_timespec_t;
-
-/* This is unsigned in the IRT ABI, but it's traditionally 'long int',
- so we stick with that. */
-typedef clock_t nacl_abi_clock_t;
-
-typedef int32_t nacl_abi_blkcnt_t;
-
-/* This is different by design. */
-typedef struct nacl_abi_stat nacl_abi_stat_t;
-
-#include <nacl-irt.h>
-
-/* This is how we access the IRT interface-query function.
- This formulation makes it usable as if it were a function name. */
-#define __nacl_irt_query (*(TYPE_nacl_irt_query) GLRO(dl_sysinfo))
-
-
-/* This describes one IRT (or IRT-like) interface that libc uses.
- This structure contains no pointers, so it can go into rodata
- without relocs. Instead, the actual tables we use for these
- interfaces live in a parallel section in writable data. */
-struct nacl_interface {
- size_t table_size;
- size_t namelen;
- char name[];
-};
-
-/* Increment for 'const struct nacl_interface *' pointers. */
-static inline const struct nacl_interface *
-next_nacl_interface (const struct nacl_interface *i)
-{
- uintptr_t align = __alignof (*i);
- return (const void *) (((uintptr_t) &i->name[i->namelen] + align - 1)
- & -align);
-}
-
-#if IS_IN (libpthread)
-# define libpthread_hidden_proto(name) hidden_proto (name)
-#else
-# define libpthread_hidden_proto(name)
-#endif
-
-#define DECLARE_INTERFACE(module, type) \
- extern struct type __##type; module##_hidden_proto (__##type);
-
-#define NACL_MANDATORY_INTERFACE(module, id, type) \
- DECLARE_INTERFACE (module, type)
-#define NACL_OPTIONAL_INTERFACE(module, id, type) \
- DECLARE_INTERFACE (module, type)
-#include "nacl-interface-list.h"
-#undef NACL_MANDATORY_INTERFACE
-#undef NACL_OPTIONAL_INTERFACE
-
-extern void __nacl_initialize_interfaces (void) attribute_hidden;
-extern bool __nacl_supply_interface_libc (const char *ident, size_t ident_len,
- const void *table, size_t tablesize)
- internal_function attribute_hidden;
-extern bool __nacl_supply_interface_rtld (const char *ident, size_t ident_len,
- const void *table, size_t tablesize);
- internal_function;
-
-/* Convenience function for handling IRT call return values. */
-static inline int
-__nacl_fail (int err)
-{
- errno = err;
- return -1;
-}
-
-#define NACL_CALL(err, val) \
- ({ int _err = (err); _err ? __nacl_fail (_err) : (val); })
-
-/* Same as NACL_CALL but without setting errno. */
-#define NACL_CALL_NOERRNO(err, val) \
- ({ int _err = (err); _err ? _err : (val); })
-
-#endif /* nacl-interfaces.h */
deleted file mode 100644
@@ -1,25 +0,0 @@
-/* Might as well be -*- C -*-.
-
- This generates a makefile that sets the variable pairs
- nacl-MODULE-mandatory-interfaces and nacl-MODULE-optional-interfaces
- based on the nacl-interface-list.h list. */
-
-%define NACL_MANDATORY_INTERFACE(module, id, type) \
- nacl-mandatory-interfaces += module-type
-%define NACL_OPTIONAL_INTERFACE(module, id, type) \
- nacl-optional-interfaces += module-type
-
-%include "nacl-interface-list.h"
-
-%undef NACL_MANDATORY_INTERFACE
-%undef NACL_OPTIONAL_INTERFACE
-
-%define NACL_MANDATORY_INTERFACE(module, id, type) \
- nacl-module-type-string := id
-%define NACL_OPTIONAL_INTERFACE(module, id, type) \
- nacl-module-type-string := id
-
-%include "nacl-interface-list.h"
-
-%undef NACL_MANDATORY_INTERFACE
-%undef NACL_OPTIONAL_INTERFACE
deleted file mode 100755
@@ -1,280 +0,0 @@
-#!/bin/bash
-# test-wrapper script for NaCl.
-
-# 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/>.
-
-progname="$(basename "$0")"
-
-usage="usage: ${progname} --arch=ARCH [VAR=VAL...] COMMAND ..."
-help="
-"
-
-use_bootstrap=true
-arch=
-env=()
-envi=0
-while [ $# -gt 0 ]; do
- case "$1" in
-
- --help)
- echo "$usage"
- echo "$help"
- exit 0
- ;;
-
- --arch=*)
- arch="${1#--arch=}"
- shift
- ;;
-
- *=*)
- env[envi++]='-E'
- env[envi++]="$1"
- shift
- ;;
-
- --)
- shift
- break
- ;;
-
- *)
- break
- ;;
- esac
-done
-
-if [ $# -lt 1 -o -z "$arch" ]; then
- echo "$usage" >&2
- echo "Type '${progname} --help' for more detailed help." >&2
- exit 1
-fi
-
-test_args=("$@")
-
-if [ -z "$NACL_SDK_ROOT" ]; then
- echo >&2 "$0: NACL_SDK_ROOT must be set in the environment"
- exit 77
-fi
-
-# We use a handful of things from the NaCl SDK, or at least
-# from a directory matching the layout of the NaCl SDK.
-sdk_tools="${NACL_SDK_ROOT}/tools"
-
-NACL_BOOTSTRAP="${sdk_tools}/nacl_helper_bootstrap_${arch}"
-NACL_SEL_LDR="${sdk_tools}/sel_ldr_${arch}"
-NACL_IRT="${sdk_tools}/irt_core_${arch}.nexe"
-NACL_LOADER="${sdk_tools}/elf_loader_${arch}.nexe"
-
-if [ ! -x "$NACL_BOOTSTRAP" -o ! -x "$NACL_SEL_LDR" ]; then
- echo >&2 "$0: sel_ldr_${arch} and/or nacl_helper_bootstrap_${arch} missing"
- echo >&2 "$0: from directory $sdk_tools"
- exit 77
-fi
-
-if [ ! -r "$NACL_IRT" -o ! -r "$NACL_LOADER" ]; then
- echo >&2 "$0: irt_core_${arch}.nexe and/or loader_${arch}.nexe missing"
- echo >&2 "$0: from directory $sdk_tools"
- exit 77
-fi
-
-# Figure out if we are building for the native machine or not.
-# If not, we'll run sel_ldr under qemu.
-decide_use_emulator()
-{
- local arg
- for arg; do
- if [[ "$(uname -m)" = "$1" ]]; then
- return
- fi
- done
- use_emulator=true
-}
-
-use_emulator=false
-case "$arch" in
-arm)
- decide_use_emulator 'arm*'
- emulator=(qemu-arm -cpu cortex-a15 -L "${sdk_tools}/arm_trusted")
- ;;
-x86_32)
- decide_use_emulator 'i?86' 'x86_64*'
- emulator=(qemu-i386)
- ;;
-x86_64)
- decide_use_emulator 'x86_64*'
- emulator=(qemu-x86_64)
- ;;
-esac
-
-if $use_emulator; then
- ldr_args=('-Q')
- emulator_factor=10
-else
- emulator=()
- ldr_args=()
- emulator_factor=1
-fi
-
-if $use_bootstrap; then
- ldr=(
- "${NACL_BOOTSTRAP}"
- "${NACL_SEL_LDR}"
- '--r_debug=0xXXXXXXXXXXXXXXXX'
- '--reserved_at_zero=0xXXXXXXXXXXXXXXXX'
- )
-else
- ldr=("${NACL_SEL_LDR}")
-fi
-
-static=true
-case "$1" in
-*/ld-nacl*) static=false ;;
-esac
-
-if $static; then
- loader=()
-else
- loader=(-f "${NACL_LOADER}")
-fi
-
-run_test()
-{
- local test_fifo="$1"
- local cmd=(
- "${emulator[@]}" "${ldr[@]}" -q -S -a "${ldr_args[@]}" -B "${NACL_IRT}"
- "${loader[@]}" "${env[@]}" -E TEST_DIRECT="$test_fifo" -- "${test_args[@]}"
- )
- if [ "${NACLVERBOSITY:+set}" = set ]; then
- "${cmd[@]}"
- else
- NACLLOG=/dev/null "${cmd[@]}"
- fi
-}
-
-temp_files=()
-test_fifo=
-do_cleanup()
-{
- rm -rf "$test_fifo" "${temp_files[@]}"
-}
-trap do_cleanup EXIT HUP INT TERM
-
-# Create a named pipe to receive the TEST_DIRECT information from the test
-# program.
-test_fifo=${TMPDIR:-/tmp}/libc-test-fifo.$$
-rm -f "$test_fifo"
-mkfifo "$test_fifo" || {
- echo "Cannot create test FIFO '$test_fifo'"
- exit 1
-}
-
-# Run the test in the background, so we can implement a timeout.
-# The no-op redirection defeats the default behavior of "< /dev/null"
-# for a background command.
-run_test "$test_fifo" <&0 & test_pid=$!
-
-# Set up a short timeout before we read from the FIFO, in case
-# the program doesn't actually write to the FIFO at all (it is
-# not a test-skeleton.c program, or it dies very early).
-no_skeleton=false
-script_pid=$$
-trap 'no_skeleton=true' USR1
-(sleep 2; kill -USR1 $script_pid) 2> /dev/null &
-
-# The test should first write into the FIFO to describe its expectations.
-# Our open-for-reading of the FIFO will block until the test starts up and
-# opens it for writing. Then our reads will block until the test finishes
-# writing out info and closes the FIFO. At that point we will have
-# collected (and evaluated) what it emitted. It sets these variables:
-# timeout=%u
-# timeoutfactor=%u
-# exit=%u
-# signal=%s
-unset exit signal
-. "$test_fifo" 2> /dev/null
-
-# If we got this far, either the 'no_skeleton=true' watchdog already
-# fired, or else we don't want it to.
-trap '' USR1
-
-if $no_skeleton; then
- # We hit the timeout, so we didn't get full information about test
- # expectations. Reset any partial results we may have gotten.
- unset exit signal
-else
- # Now we know the expected timeout, so we can start the timer running.
- ((sleep_time = timeout * timeoutfactor * emulator_factor))
-
- # Now start a background subshell to enforce the timeout.
- (sleep "$sleep_time"; kill -ALRM $test_pid) 2> /dev/null &
-fi
-
-# This corresponds to '#ifdef EXPECTED_STATUS' in test-skeleton.c.
-expected_status()
-{
- test "${exit+yes}" = yes
-}
-# This corresponds to '#ifdef EXPECTED_SIGNAL' in test-skeleton.c.
-expected_signal()
-{
- test "${signal+yes}" = yes
-}
-# This corresponds to 'if (WIFEXITED (status))' in test-skeleton.c.
-wifexited()
-{
- test $test_rc -lt 128
-}
-
-# Now wait for the test process to finish.
-wait $test_pid
-test_rc=$?
-
-# This exactly duplicates the logic in test-skeleton.c.
-if wifexited; then
- if ! expected_status; then
- if ! expected_signal; then
- # Simply exit with the return value of the test. */
- exit $test_rc
- else
- echo "Expected signal '${signal}' from child, got none"
- exit 1
- fi
- else
- if [ $test_rc -ne $exit ]; then
- echo "Expected status $exit, got $test_rc"
- exit 1
- fi
- exit 0
- fi
-else
- # Process was killed by timer or other signal.
- ((test_signal = test_rc > 192 ? 256 - test_rc : test_rc - 128 ))
- test_signame=$(kill -l "$test_signal")
- if ! expected_signal; then
- echo "Didn't expect signal from child; got '${test_signame}'"
- exit 1
- else
- if [ "$test_signame" != "$signal" ]; then
- echo "\
-Incorrect signal from child: got '${test_signame}', need '${signal}'"
- exit 1
- fi
- exit 0
- fi
-fi
deleted file mode 100644
@@ -1,42 +0,0 @@
-/* Interface for the user to replace NaCl IRT interface functions.
- 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 <nacl-interfaces.h>
-#include <string.h>
-
-size_t
-nacl_interface_ext_supply (const char *interface_ident,
- const void *table, size_t tablesize)
-{
- const size_t ident_len = strlen (interface_ident) + 1;
-
- /* Most interfaces are in rtld, so try there first. If other
- libraries ever get their own tables not used in libc, then we
- will need some dynamic registration mechanism here to iterate
- over all libraries' __nacl_supply_interface_libfoo calls. */
- if (0
-#ifdef SHARED
- || __nacl_supply_interface_rtld (interface_ident, ident_len,
- table, tablesize)
-#endif
- || __nacl_supply_interface_libc (interface_ident, ident_len,
- table, tablesize))
- return tablesize;
-
- return 0;
-}
deleted file mode 100644
@@ -1,50 +0,0 @@
-/* NaCl function exposing IRT interface query.
- 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 <nacl-interfaces.h>
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-/* We can define this trivially using IFUNC rather than a wrapper
- because we absolutely require that we get the IRT interface query
- function pointer via AT_SYSINFO. */
-
-extern TYPE_nacl_irt_query nacl_interface_query_ifunc (void)
- asm ("nacl_interface_query");
-
-TYPE_nacl_irt_query
-inhibit_stack_protector
-nacl_interface_query_ifunc (void)
-{
- return &__nacl_irt_query;
-}
-asm (".type nacl_interface_query, %gnu_indirect_function");
-
-#else
-
-/* In the static library, using IFUNC is just extra overhead. */
-
-size_t
-nacl_interface_query (const char *interface_ident,
- void *table, size_t tablesize)
-{
- return __nacl_irt_query (interface_ident, table, tablesize);
-}
-
-#endif
deleted file mode 100644
@@ -1,33 +0,0 @@
-/* nanosleep -- Sleep for a duration given in nanoseconds. NaCl version.
- 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 <time.h>
-#include <nacl-interfaces.h>
-
-
-/* Pause execution for a number of nanoseconds. */
-int
-__libc_nanosleep (const struct timespec *requested_time,
- struct timespec *remaining)
-{
- return NACL_CALL (__nacl_irt_basic.nanosleep (requested_time, remaining), 0);
-}
-
-weak_alias (__libc_nanosleep, __nanosleep)
-libc_hidden_def (__nanosleep)
-weak_alias (__libc_nanosleep, nanosleep)
deleted file mode 100644
@@ -1,52 +0,0 @@
-/* Open a file by name. NaCl version.
- 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 <fcntl.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <nacl-interfaces.h>
-
-
-/* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
- a third argument is the file protection. */
-int
-__libc_open (const char *file, int oflag, ...)
-{
- mode_t mode = 0;
-
- if (oflag & O_CREAT)
- {
- va_list arg;
- va_start (arg, oflag);
- mode = va_arg (arg, mode_t);
- va_end (arg);
- }
-
- int fd;
- return NACL_CALL (__nacl_irt_dev_filename.open (file, oflag, mode, &fd), fd);
-}
-libc_hidden_def (__libc_open)
-weak_alias (__libc_open, __open)
-libc_hidden_weak (__open)
-weak_alias (__libc_open, open)
-
-/* open64 is just an alias. */
-strong_alias (__libc_open, __libc_open64)
-strong_alias (__libc_open64, __open64)
-libc_hidden_def (__open64)
-weak_alias (__libc_open64, open64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* open.c defines open64 as an alias. */
deleted file mode 100644
@@ -1,7 +0,0 @@
-# GNU C Library preconfigure fragment for sysdeps/nacl
-
-case "$config_machine-$config_os" in
-arm*-nacl*)
- libc_config_ok=yes
- ;;
-esac
deleted file mode 100644
@@ -1,2 +0,0 @@
-/* Side-step sysdeps/posix/profil.c, which uses sigaction and setitimer. */
-#include <gmon/profil.c>
deleted file mode 100644
@@ -1,68 +0,0 @@
-/* Initialize pid and tid fields of struct pthread. NaCl version.
- 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 <pthreadP.h>
-
-
-/* NaCl has no concept of PID or TID, nor even any notion of an
- identifier for a thread within the process. But various places in
- the NPTL implementation rely on using the 'tid' field of the TCB
- (struct pthread) as an identifier that is unique at least among all
- live threads in the process. So we must synthesize some number to
- use. Conveniently, the 'pthread_t' value itself is already unique
- in exactly this way (because it's the 'struct pthread' pointer).
-
- The only wrinkle is that 'tid' is a (32-bit) 'int' and its high
- (sign) bit is used for special purposes, so we must be absolutely
- sure that we never use a pointer value with the high bit set. (It
- also cannot be zero, but zero is never a valid pointer anyway.)
- The NaCl sandbox models for 32-bit machines limit the address space
- to less than 3GB (in fact, to 1GB), so it's already impossible that
- a valid pointer will have its high bit set. But the NaCl x86-64
- sandbox model allows a full 4GB of address space, so we cannot
- assume that an arbitrary pointer value will not have the high bit
- set. Conveniently, there are always unused bits in the pointer
- value for a 'struct pthread', because it is always aligned to at
- least 32 bits and so the low bits are always zero. Hence, we can
- safely avoid the danger of a nonzero high bit just by shifting the
- pointer value right. */
-
-static inline int
-__nacl_get_tid (struct pthread *pd)
-{
- uintptr_t id = (uintptr_t) pd;
- int tid = id >> 1;
- assert ((id & 1) == 0);
- assert (sizeof id == sizeof tid);
- assert (tid > 0);
- /* This ensures that NACL_EXITING_TID (lowlevellock.h) can never
- be a valid TID value. */
- assert ((tid & 1) == 0);
- return tid;
-}
-
-
-/* Initialize PD->pid and PD->tid for the initial thread. If there is
- setup required to arrange that __exit_thread causes PD->tid to be
- cleared and futex-woken, then this function should do that as well. */
-static inline void
-__pthread_initialize_pids (struct pthread *pd)
-{
- pd->tid = __nacl_get_tid (pd);
- pd->pid = -1;
-}
deleted file mode 100644
@@ -1,42 +0,0 @@
-/* Set the clock for timeouts on a condition variable. NaCl version.
- 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 "pthreadP.h"
-
-
-int
-pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock_id)
-{
- switch (clock_id)
- {
- case CLOCK_REALTIME:
- /* This is the default state and the only one actually supported. */
- return 0;
-
- case CLOCK_MONOTONIC:
- /* NaCl recognizes CLOCK_MONOTONIC for other purposes, so it is a
- "known clock". But NaCl doesn't support it for this purpose. */
- return ENOTSUP;
-
- default:
- /* The only other recognized clocks are CPU-time clocks,
- which POSIX says should get EINVAL. */
- return EINVAL;
- }
-}
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* read -- Read data from a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Read NBYTES into BUF from FD. Return the number read or -1. */
-ssize_t
-__libc_read (int fd, void *buf, size_t nbytes)
-{
- size_t nread;
- return NACL_CALL (__nacl_irt_fdio.read (fd, buf, nbytes, &nread), nread);
-}
-libc_hidden_def (__libc_read)
-weak_alias (__libc_read, __read)
-libc_hidden_weak (__read)
-weak_alias (__libc_read, read)
deleted file mode 100644
@@ -1,11 +0,0 @@
-/* The compiler complains about aliases with nonmatching type signatures.
- The types 'struct dirent' and 'struct dirent64' are actually identical
- even though the compiler doesn't consider them to be. So we hide the
- declaration from the compiler. */
-#define __readdir64 __avoid___readdir64_declaration
-#define readdir64 __avoid_readdir64_declaration
-#include <sysdeps/posix/readdir.c>
-#undef __readdir64
-#undef readdir64
-strong_alias (__readdir, __readdir64)
-weak_alias (__readdir64, readdir64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* readdir.c defines readdir64 as an alias. */
deleted file mode 100644
@@ -1 +0,0 @@
-/* readdir_r.c defines readdir64_r as an alias. */
deleted file mode 100644
@@ -1,8 +0,0 @@
-/* The compiler complains about aliases with nonmatching type signatures.
- The types 'struct dirent' and 'struct dirent64' are actually identical
- even though the compiler doesn't consider them to be. So we hide the
- declaration from the compiler. */
-#define readdir64_r __avoid_readdir64_r_declaration
-#include <sysdeps/posix/readdir_r.c>
-#undef readdir64_r
-weak_alias (__readdir_r, readdir64_r)
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Read the contents of a symbolic link. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Read the contents of the symbolic link PATH into no more than
- LEN bytes of BUF. The contents are not null-terminated.
- Returns the number of characters read, or -1 for errors. */
-ssize_t
-__readlink (const char *path, char *buf, size_t len)
-{
- size_t nread;
- return NACL_CALL (__nacl_irt_dev_filename.readlink (path, buf, len, &nread),
- nread);
-}
-weak_alias (__readlink, readlink)
deleted file mode 100644
@@ -1,27 +0,0 @@
-/* Rename a file. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Rename the file OLD to NEW. */
-int
-rename (const char *old, const char *new)
-{
- return NACL_CALL (__nacl_irt_dev_filename.rename (old, new), 0);
-}
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Remove a directory. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Remove the directory PATH. */
-int
-__rmdir (const char *path)
-{
- return NACL_CALL (__nacl_irt_dev_filename.rmdir (path), 0);
-}
-weak_alias (__rmdir, rmdir)
deleted file mode 100644
@@ -1,31 +0,0 @@
-/* sched_yield -- Yield the processor. NaCl version.
- 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 <sched.h>
-#include <nacl-interfaces.h>
-
-
-/* Yield the processor. */
-int
-__sched_yield (void)
-{
- return NACL_CALL (__nacl_irt_basic.sched_yield (), 0);
-}
-libc_hidden_def (__sched_yield)
-weak_alias (__sched_yield, sched_yield)
deleted file mode 100644
@@ -1,9 +0,0 @@
-# DEFAULT Earliest symbol set
-# ------- -------------------
-DEFAULT GLIBC_2.22
-
-# Library=version Earliest symbol set (optional)
-# --------------- ------------------------------
-
-libc=0.1
-libm=0.1
deleted file mode 100644
@@ -1,11 +0,0 @@
-#if IS_IN (libpthread)
-
-/* This placeholder file prevents nptl/sigaction.c from being compiled.
- For NaCl, there is no need for a separate sigaction in libpthread. */
-
-#else
-
-/* Get the standard stub. */
-#include <signal/sigaction.c>
-
-#endif
deleted file mode 100644
@@ -1,2 +0,0 @@
-/* Side-step sysdeps/posix/sprofil.c, which uses sigaction and setitimer. */
-#include <gmon/sprofil.c>
deleted file mode 100644
@@ -1,77 +0,0 @@
-/* Entry-point for programs. NaCl version.
- 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- 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 <stdint.h>
-#include <link.h>
-
-/* NaCl's elf32.h is incompatible with the real <elf.h>. */
-#define NATIVE_CLIENT_SRC_INCLUDE_ELF32_H_
-#include <native_client/src/untrusted/nacl/nacl_startup.h>
-
-
-/* The application defines this, of course. */
-extern int main (int argc, char **argv, char **envp);
-
-/* But maybe it defines this too, in which case it takes precedence. */
-extern int __nacl_main (int argc, char **argv, char **envp)
- __attribute__ ((weak));
-
-/* These are defined in libc. */
-extern int __libc_csu_init (int argc, char **argv, char **envp);
-extern void __libc_csu_fini (void);
-extern void __libc_start_main (int (*main) (int, char **, char **),
- int argc, char **argv, ElfW(auxv_t) *auxv,
- int (*init) (int, char **, char **),
- void (*fini) (void),
- void (*rtld_fini) (void),
- void *stack_end);
-
-void
-_start (uint32_t info[])
-{
- /* The generic code actually assumes that envp follows argv. */
-
- __libc_start_main (&__nacl_main ?: &main,
- nacl_startup_argc (info),
- nacl_startup_argv (info),
- nacl_startup_auxv (info),
- &__libc_csu_init, &__libc_csu_fini,
- nacl_startup_fini (info),
- __builtin_frame_address (0));
-
- /* That should not return. Make sure we crash if it did. */
- while (1)
- __builtin_trap ();
-}
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Make a symbolic link. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Make a symbolic link to FROM called TO. */
-int
-__symlink (const char *from, const char *to)
-{
- return NACL_CALL (__nacl_irt_dev_filename.symlink (from, to), 0);
-}
-weak_alias (__symlink, symlink)
deleted file mode 100644
@@ -1,41 +0,0 @@
-/* Definition for thread-local data handling. NaCl version.
- 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/>. */
-
-#ifndef _NACL_TLS_H
-#define _NACL_TLS_H 1
-
-#ifndef __ASSEMBLER__
-
-# include <nacl-interfaces.h>
-
-/* Code to initially initialize the thread pointer. This might need
- special attention since 'errno' is not yet available and if the
- operation can cause a failure 'errno' must not be touched. */
-# define TLS_INIT_TP(tcbp) \
- ((*__nacl_irt_tls.tls_init) (tcbp) == 0 ? NULL : "tls_init call failed")
-
-/* Our use of dl_sysinfo is rather different from the Linux syscall
- entry-point case. We never need a thread-local copy of the value. */
-# undef SETUP_THREAD_SYSINFO
-# undef CHECK_THREAD_SYSINFO
-# define SETUP_THREAD_SYSINFO(pd) ((void) (pd))
-# define CHECK_THREAD_SYSINFO(pd) ((void) (pd))
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* tls.h */
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Truncate a file (by name). NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Truncate PATH to LENGTH bytes. */
-int
-__truncate (const char *path, off_t length)
-{
- return NACL_CALL (__nacl_irt_dev_filename.truncate (path, length), 0);
-}
-weak_alias (__truncate, truncate)
-
-/* truncate64 is the same as truncate. */
-strong_alias (__truncate, __truncate64)
-weak_alias (__truncate64, truncate64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* truncate64 is the same as truncate. */
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Constant values for the uname function to return. NaCl version.
- 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/>. */
-
-/* This file must define these macros with string values:
- UNAME_SYSNAME
- UNAME_RELEASE
- UNAME_VERSION
- UNAME_MACHINE
-*/
-
-#ifndef UNAME_MACHINE
-# error "sysdeps/MACHINE/nacl/uname-values.h should define UNAME_MACHINE"
-#endif
-
-#define UNAME_SYSNAME "NaCl"
-#define UNAME_RELEASE "unknown"
-#define UNAME_VERSION "unknown"
deleted file mode 100644
@@ -1,28 +0,0 @@
-/* Remove a file. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Remove the link named NAME. */
-int
-__unlink (const char *name)
-{
- return NACL_CALL (__nacl_irt_dev_filename.unlink (name), 0);
-}
-weak_alias (__unlink, unlink)
deleted file mode 100644
@@ -1,29 +0,0 @@
-/* Change the access and modification times of a file. NaCl version.
- 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 <sys/time.h>
-#include <nacl-interfaces.h>
-
-/* Change the access time of FILE to TVP[0] and
- the modification time of FILE to TVP[1]. */
-int
-__utimes (const char *file, const struct timeval tvp[2])
-{
- return NACL_CALL (__nacl_irt_dev_filename.utimes (file, tvp), 0);
-}
-weak_alias (__utimes, utimes)
deleted file mode 100644
@@ -1,33 +0,0 @@
-/* write -- Write data to a file descriptor. NaCl version.
- 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 <unistd.h>
-#include <nacl-interfaces.h>
-
-/* Write NBYTES of BUF to FD. Return the number written, or -1. */
-ssize_t
-__libc_write (int fd, const void *buf, size_t nbytes)
-{
- size_t wrote;
- return NACL_CALL (__nacl_irt_fdio.write (fd, buf, nbytes, &wrote), wrote);
-}
-libc_hidden_def (__libc_write)
-
-weak_alias (__libc_write, __write)
-libc_hidden_weak (__write)
-weak_alias (__libc_write, write)
deleted file mode 100644
@@ -1,45 +0,0 @@
-/* Get stat information from a file name. NaCl version.
- 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/>. */
-
-/* Avoid the declaration so the compiler doesn't complain about the alias
- with a different type signature. It doesn't know that 'struct stat'
- and 'struct stat64' are ABI-compatible. */
-#define __xstat64 __xstat64_avoid
-#include <sys/stat.h>
-#undef __xstat64
-
-#include <errno.h>
-#include <stddef.h>
-
-#include <xstatconv.h>
-
-#undef stat
-
-/* Get file information about FILE in BUF. */
-int
-__xstat (int vers, const char *file, struct stat *buf)
-{
- nacl_abi_stat_t abi_buf;
- return NACL_CALL (__nacl_irt_dev_filename.stat (file, &abi_buf),
- __xstat_conv (vers, &abi_buf, buf));
-}
-hidden_def (__xstat)
-weak_alias (__xstat, _xstat)
-
-strong_alias (__xstat, __xstat64)
-hidden_ver (__xstat, __xstat64)
deleted file mode 100644
@@ -1 +0,0 @@
-/* xstat.c defines __xstat64 as an alias. */
deleted file mode 100644
@@ -1,76 +0,0 @@
-/* Convert between the NaCl ABI's `struct stat' format, and libc's.
- 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 <string.h>
-#include <sys/stat.h>
-#include <xstatconv.h>
-
-internal_function
-int
-__xstat_conv (int vers, const struct nacl_abi_stat *kbuf, void *ubuf)
-{
- /* It's kosher enough just to crash here, but there are some
- existing NaCl tests that like to see EFAULT, and that's what
- making the IRT call with NULL would give. */
- if (__glibc_unlikely (ubuf == NULL))
- {
- __set_errno (EFAULT);
- return -1;
- }
-
- switch (vers)
- {
- case _STAT_VER_NACL:
- /* Nothing to do. The struct is in the form the NaCl ABI expects. */
- *(struct nacl_abi_stat *) ubuf = *kbuf;
- break;
-
- case _STAT_VER_LINUX:
- {
- struct stat *buf = ubuf;
-
- /* Zero-fill the pad/unused fields. */
- memset (buf, 0, sizeof *buf);
-
- /* Convert from NaCl IRT ABI `struct stat'. */
- buf->st_dev = kbuf->nacl_abi_st_dev;
- buf->st_ino = kbuf->nacl_abi_st_ino;
- buf->st_mode = kbuf->nacl_abi_st_mode;
- buf->st_nlink = kbuf->nacl_abi_st_nlink;
- buf->st_uid = kbuf->nacl_abi_st_uid;
- buf->st_gid = kbuf->nacl_abi_st_gid;
- buf->st_rdev = kbuf->nacl_abi_st_rdev;
- buf->st_size = kbuf->nacl_abi_st_size;
- buf->st_blksize = kbuf->nacl_abi_st_blksize;
- buf->st_blocks = kbuf->nacl_abi_st_blocks;
- buf->st_atim.tv_sec = kbuf->nacl_abi_st_atime;
- buf->st_atim.tv_nsec = kbuf->nacl_abi_st_atimensec;
- buf->st_mtim.tv_sec = kbuf->nacl_abi_st_mtime;
- buf->st_mtim.tv_nsec = kbuf->nacl_abi_st_mtimensec;
- buf->st_ctim.tv_sec = kbuf->nacl_abi_st_ctime;
- buf->st_ctim.tv_nsec = kbuf->nacl_abi_st_ctimensec;
- }
- break;
-
- default:
- __set_errno (EINVAL);
- return -1;
- }
-
- return 0;
-}
deleted file mode 100644
@@ -1,32 +0,0 @@
-/* Convert between the NaCl ABI's `struct stat' format, and libc's.
- 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 <nacl-interfaces.h>
-
-#define NACL_IN_TOOLCHAIN_HEADERS
-
-struct stat;
-
-/* stat.h uses nacl_abi_off_t, but irt.h defines only nacl_irt_off_t. */
-typedef nacl_irt_off_t nacl_abi_off_t;
-
-/* We use this header to define struct nacl_abi_stat. */
-#include <native_client/src/trusted/service_runtime/include/bits/stat.h>
-
-extern int __xstat_conv (int vers, const struct nacl_abi_stat *, void *)
- internal_function attribute_hidden;