diff mbox

[uclibc-ng-devel] uClibc-ng - small C library for embedded systems branch master updated. v1.0.19-31-g50aba30

Message ID 20161202070424.D635E1014D@helium.openadk.org
State Not Applicable
Headers show

Commit Message

wbx Dec. 2, 2016, 7:04 a.m. UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".

The branch, master has been updated
       via  50aba30aee11d4fa51948c6ba258ec0bbdbae8c0 (commit)
       via  ed10e944ac7f9b4d55dc130987274a2799a115b1 (commit)
       via  43a336e63f16c639e0e6fefdd7404509159c07b1 (commit)
       via  b433e2d9fccb17f9a2807403c339a7004e3d4f1b (commit)
       via  9945c6d21797553e78cbef8034f6dd16b3824df5 (commit)
       via  74ca8d6f5d2e29bb7cf4606531313ee8c52b9eda (commit)
      from  d9f4c6bb0568da6d80f60a0040354f45478f84a3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 50aba30aee11d4fa51948c6ba258ec0bbdbae8c0
Author: Waldemar Brodkorb <wbx@openadk.org>
Date:   Thu Dec 1 19:08:52 2016 +0100

    remove libintl stub and libintl.h header
    
    As __UCLIBC_HAS_GETTEXT_AWARENESS__ is never defined, this is
    mostly dead code. It is planned to integrate libiconv-tiny
    and gettext-tiny into uClibc-ng after the next release, so
    that more software packages can be used without modification.
    
    Remove any _/_N macro usage.

commit ed10e944ac7f9b4d55dc130987274a2799a115b1
Author: Waldemar Brodkorb <wbx@openadk.org>
Date:   Wed Nov 30 05:11:00 2016 +0100

    NONTLS_INIT_TP is never defined, remove dead code

commit 43a336e63f16c639e0e6fefdd7404509159c07b1
Author: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
Date:   Thu Oct 6 20:15:58 2016 +0200

    libpthread: Fix inclusion of unwind code.
    
    Since librt and libpthread are now integrated into libc, including
    unwind-resume and unwind-forcedunwind implementations of unwind code
    makes no sense.  Only unwind-forcedunwind is now included with
    functions hidden to avoid them overriding the ones from libgcc_s.
    
    * libpthread/nptl/sysdeps/generic/unwind-resume.h: New.  Define
      generic PERSONALITY_PROTO and PERSONALITY_ARGS and set
      HAVE_ARCH_UNWIND_RESUME to 0.
    
    * libpthread/nptl/sysdeps/pthread/unwind-resume.c: Move...
    
    * libpthread/nptl/sysdeps/generic/unwind-resume.c: ... here.  Include
      generic implementation of _Unwind_Resume on the condition that
      !HAVE_ARCH_UNWIND_RESUME.  Make functions hidden to prevent them
      from overriding libgcc_s's ones.
    
    * libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c: Likewise.
    
    * libpthread/nptl/sysdeps/arm/unwind-resume.h: New.  Define
      ARM-specific PERSONALITY_PROTO and PERSONALITY_ARGS and set
      HAVE_ARCH_UNWIND_RESUME to 1.
    
    * libpthread/nptl/sysdeps/arm/arm-unwind-resume.c,
    * libpthread/nptl/sysdeps/arm/pt-arm-unwind-resume.c,
    * libpthread/nptl/sysdeps/arm/rt-arm-unwind-resume.c: New.
      ARM-specific implementations of _Unwind_Resume resp. for libc,
      libpthread and librt.
    
    * libpthread/nptl/sysdeps/Makefile.commonarch: Remove both
      arm-unwind-resume and rt-arm-unwind-resume from
      libpthread_arch_CSRC.
    
    * libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c,
    * libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c: Remove.
    
    Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>

commit b433e2d9fccb17f9a2807403c339a7004e3d4f1b
Author: Waldemar Brodkorb <wbx@openadk.org>
Date:   Tue Nov 29 08:38:20 2016 +0100

    remove libresolv stub

commit 9945c6d21797553e78cbef8034f6dd16b3824df5
Author: Waldemar Brodkorb <wbx@openadk.org>
Date:   Mon Nov 28 07:31:00 2016 +0100

    posix_madvise not available for noMMU

commit 74ca8d6f5d2e29bb7cf4606531313ee8c52b9eda
Author: Waldemar Brodkorb <wbx@openadk.org>
Date:   Sun Nov 27 22:31:25 2016 +0100

    remove UCLIBC_HAS_LFS

-----------------------------------------------------------------------

Summary of changes:
 Makefile.in                                        |  11 +-
 Makerules                                          |  16 +-
 extra/Configs/Config.alpha                         |   1 -
 extra/Configs/Config.in                            |  15 --
 extra/Configs/defconfigs/or1k/defconfig            |   1 -
 include/_lfs_64.h                                  |   8 -
 include/dirent.h                                   |   2 -
 include/features.h                                 |  14 --
 include/libc-symbols.h                             |  36 -----
 include/libintl.h                                  | 140 ----------------
 libc/Makefile.in                                   |   4 -
 libc/inet/gai_strerror.c                           |  37 +++--
 libc/inet/rpc/auth_unix.c                          |   5 +-
 libc/inet/rpc/clnt_perror.c                        |  66 ++++----
 libc/inet/rpc/clnt_raw.c                           |   2 +-
 libc/inet/rpc/clnt_tcp.c                           |   2 +-
 libc/inet/rpc/clnt_udp.c                           |   2 +-
 libc/inet/rpc/clnt_unix.c                          |   2 +-
 libc/inet/rpc/get_myaddress.c                      |   3 +-
 libc/inet/rpc/pm_getmaps.c                         |   2 +-
 libc/inet/rpc/pmap_clnt.c                          |   4 +-
 libc/inet/rpc/pmap_rmt.c                           |  14 +-
 libc/inet/rpc/rcmd.c                               |   1 -
 libc/inet/rpc/rpc_private.h                        |   1 -
 libc/inet/rpc/ruserpass.c                          |  11 +-
 libc/inet/rpc/svc_run.c                            |   2 +-
 libc/inet/rpc/svc_simple.c                         |  12 +-
 libc/inet/rpc/svc_tcp.c                            |   8 +-
 libc/inet/rpc/svc_udp.c                            |  22 +--
 libc/inet/rpc/svc_unix.c                           |   8 +-
 libc/inet/rpc/xdr.c                                |   5 +-
 libc/inet/rpc/xdr_array.c                          |   3 +-
 libc/inet/rpc/xdr_rec.c                            |   2 +-
 libc/inet/rpc/xdr_reference.c                      |   3 +-
 libc/misc/dirent/Makefile.in                       |   4 +-
 libc/misc/dirent/alphasort.c                       |   2 +-
 libc/misc/dirent/readdir.c                         |   2 +-
 libc/misc/dirent/readdir_r.c                       |   2 +-
 libc/misc/dirent/scandir.c                         |   2 +-
 libc/misc/dirent/versionsort.c                     |   2 +-
 libc/misc/file/Makefile.in                         |   4 +-
 libc/misc/file/isfdtype.c                          |   7 +-
 libc/misc/fts/fts.c                                |   9 +-
 libc/misc/ftw/Makefile.in                          |   3 +-
 libc/misc/ftw/ftw.c                                |   8 -
 libc/misc/glob/Makefile.in                         |   2 +-
 libc/misc/glob/glob-susv3.c                        |   8 +-
 libc/misc/glob/glob.c                              |   6 +-
 libc/misc/gnu/obstack.c                            |   4 +-
 libc/misc/internals/tempname.c                     |   2 -
 libc/misc/regex/regex_old.c                        |   9 +-
 libc/misc/statfs/Makefile.in                       |   7 +-
 libc/misc/sysvipc/ftok.c                           |   6 +-
 libc/stdio/Makefile.in                             |   3 +-
 libc/stdio/_cs_funcs.c                             |   4 -
 libc/stdio/_stdio.h                                |   4 -
 libc/stdio/fseeko.c                                |   2 +-
 libc/stdio/ftello.c                                |   2 +-
 libc/stdio/tmpfile.c                               |   2 -
 libc/stdlib/Makefile.in                            |   2 +-
 libc/sysdeps/linux/arm/Makefile.arch               |   3 +-
 .../linux/common-generic/bits/kernel_stat.h        |   4 -
 libc/sysdeps/linux/common/Makefile.in              |   5 +-
 libc/sysdeps/linux/common/__syscall_fcntl.c        |   4 +-
 libc/sysdeps/linux/common/bits/uClibc_posix_opt.h  |   7 -
 libc/sysdeps/linux/common/bits/uClibc_stdio.h      |   6 -
 libc/sysdeps/linux/common/fstat.c                  |   2 +-
 libc/sysdeps/linux/common/ftruncate.c              |   6 +-
 libc/sysdeps/linux/common/getdents.c               |   6 +-
 libc/sysdeps/linux/common/getdents64.c             |   2 +-
 libc/sysdeps/linux/common/getdirname.c             |   9 --
 libc/sysdeps/linux/common/getrlimit.c              |   2 +-
 libc/sysdeps/linux/common/lseek.c                  |   9 +-
 libc/sysdeps/linux/common/lstat.c                  |   3 +-
 libc/sysdeps/linux/common/posix_fadvise.c          |   4 +-
 libc/sysdeps/linux/common/posix_fallocate.c        |   2 +-
 libc/sysdeps/linux/common/posix_madvise.c          |   2 +
 libc/sysdeps/linux/common/pread_write.c            |  10 +-
 libc/sysdeps/linux/common/readahead.c              |   2 +-
 libc/sysdeps/linux/common/sendfile.c               |   2 +-
 libc/sysdeps/linux/common/setrlimit.c              |   2 +-
 libc/sysdeps/linux/common/splice.c                 |   2 +-
 libc/sysdeps/linux/common/stat.c                   |   3 +-
 libc/sysdeps/linux/common/stat64.c                 |  12 +-
 libc/sysdeps/linux/common/stubs.c                  |   8 +-
 libc/sysdeps/linux/common/sync_file_range.c        |   2 +-
 libc/sysdeps/linux/common/truncate.c               |   6 +-
 libc/sysdeps/linux/common/xstatconv.c              |   4 -
 libc/sysdeps/linux/common/xstatconv.h              |   2 -
 libc/sysdeps/linux/i386/Makefile.arch              |   5 +-
 libc/sysdeps/linux/mips/Makefile.arch              |   3 +-
 libc/sysdeps/linux/mips/posix_fadvise.c            |   2 +-
 libc/unistd/daemon.c                               |   5 -
 libc/unistd/fpathconf.c                            |   2 +-
 libc/unistd/getopt-susv3.c                         |   1 -
 libc/unistd/getopt.c                               |  95 ++++-------
 libc/unistd/pathconf.c                             |   2 +-
 libc/unistd/sysconf.c                              |   4 -
 libintl/Makefile                                   |  13 --
 libintl/Makefile.in                                |  43 -----
 libintl/intl.c                                     | 154 ------------------
 libpthread/linuxthreads/sysdeps/ia64/tls.h         |  20 ---
 libpthread/linuxthreads/wrapsyscall.c              |  11 +-
 libpthread/nptl/sem_open.c                         |  10 +-
 libpthread/nptl/sysdeps/Makefile.commonarch        |   1 +
 libpthread/nptl/sysdeps/arm/arm-unwind-resume.c    |  67 ++++++++
 libpthread/nptl/sysdeps/arm/pt-arm-unwind-resume.c |   2 +
 libpthread/nptl/sysdeps/arm/rt-arm-unwind-resume.c |   1 +
 libpthread/nptl/sysdeps/arm/unwind-resume.h        |  33 ++++
 libpthread/nptl/sysdeps/generic/dl-tls.c           |   1 -
 libpthread/nptl/sysdeps/generic/libc-tls.c         |  11 --
 .../sysdeps/{pthread => generic}/unwind-resume.c   |  51 +++---
 libpthread/nptl/sysdeps/generic/unwind-resume.h    |  33 ++++
 .../nptl/sysdeps/pthread/unwind-forcedunwind.c     |  49 +++---
 .../unix/sysv/linux/arm/unwind-forcedunwind.c      | 177 ---------------------
 .../sysdeps/unix/sysv/linux/arm/unwind-resume.c    | 116 --------------
 .../nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h  |   4 -
 libresolv/Makefile                                 |  13 --
 libresolv/Makefile.in                              |  28 ----
 libresolv/resolv.c                                 |  16 --
 librt/spawn_int.h                                  |   9 --
 libuargp/argp-help.c                               |  12 +-
 libuargp/argp-parse.c                              |  15 +-
 123 files changed, 406 insertions(+), 1307 deletions(-)
 delete mode 100644 include/libintl.h
 delete mode 100644 libintl/Makefile
 delete mode 100644 libintl/Makefile.in
 delete mode 100644 libintl/intl.c
 create mode 100644 libpthread/nptl/sysdeps/arm/arm-unwind-resume.c
 create mode 100644 libpthread/nptl/sysdeps/arm/pt-arm-unwind-resume.c
 create mode 100644 libpthread/nptl/sysdeps/arm/rt-arm-unwind-resume.c
 create mode 100644 libpthread/nptl/sysdeps/arm/unwind-resume.h
 rename libpthread/nptl/sysdeps/{pthread => generic}/unwind-resume.c (54%)
 create mode 100644 libpthread/nptl/sysdeps/generic/unwind-resume.h
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
 delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
 delete mode 100644 libresolv/Makefile
 delete mode 100644 libresolv/Makefile.in
 delete mode 100644 libresolv/resolv.c



hooks/post-receive
diff mbox

Patch

diff --git a/Makefile.in b/Makefile.in
index b79314f..c590979 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -32,9 +32,7 @@  endif # ifeq ($(HAVE_DOT_CONFIG),y)
 include $(top_srcdir)extra/locale/Makefile.in
 include $(top_srcdir)ldso/Makefile.in
 include $(top_srcdir)libcrypt/Makefile.in
-include $(top_srcdir)libintl/Makefile.in
 include $(top_srcdir)libm/Makefile.in
-include $(top_srcdir)libresolv/Makefile.in
 include $(top_srcdir)libutil/Makefile.in
 include $(top_srcdir)libpthread/Makefile.in
 include $(top_srcdir)librt/Makefile.in
@@ -274,7 +272,6 @@  HEADERS_RM-$(UCLIBC_HAS_FLOATS)              += complex.h fpu_control.h ieee754.
 	bits/math*.h
 HEADERS_RM-$(findstring y,$(UCLIBC_HAS_FTW)$(UCLIBC_HAS_NFTW))  += ftw.h
 HEADERS_RM-$(UCLIBC_HAS_FTS)                 += fts.h
-HEADERS_RM-$(UCLIBC_HAS_GETTEXT_AWARENESS)   += libintl.h
 HEADERS_RM-$(UCLIBC_HAS_GLIBC_CUSTOM_PRINTF) += printf.h
 HEADERS_RM-$(UCLIBC_HAS_GLOB)                += glob.h
 HEADERS_RM-$(UCLIBC_HAS_GNU_ERROR)           += error.h
@@ -362,7 +359,7 @@  else
 	$(Q)cd $(PREFIX)$(DEVEL_PREFIX)include && $(RM) -f wchar-stub.h
 endif
 
-EMPTY_LIB_NAMES = dl nsl
+EMPTY_LIB_NAMES = dl nsl resolv
 ifeq ($(DO_C99_MATH),y)
 EMPTY_LIB_NAMES += m
 endif
@@ -378,12 +375,6 @@  endif
 ifeq ($(UCLIBC_HAS_LIBUTIL),y)
 EMPTY_LIB_NAMES += util
 endif
-ifeq ($(UCLIBC_HAS_LIBRESOLV_STUB),y)
-EMPTY_LIB_NAMES += resolv
-endif
-ifeq ($(UCLIBC_HAS_GETTEXT_AWARENESS),y)
-EMPTY_LIB_NAMES += intl
-endif
 EMPTY_LIBS = $(EMPTY_LIB_NAMES:%=lib/lib%.a)
 
 $(EMPTY_LIBS):
diff --git a/Makerules b/Makerules
index b169439..d708600 100644
--- a/Makerules
+++ b/Makerules
@@ -39,28 +39,22 @@  $(eval $(call add_IS_IN_lib,rtld,$(ldso-y)))
 $(eval $(call add_IS_IN_lib,libc,$(libc-y) $(libc-static-y) $(libc-y:.o=.os) $(libc-shared-y) $(libc-nonshared-y)))
 $(eval $(call add_IS_IN_lib,libcrypt,$(libcrypt-a-y) $(libcrypt-so-y)))
 $(eval $(call add_IS_IN_lib,libdl,$(libdl-a-y) $(libdl-so-y)))
-$(eval $(call add_IS_IN_lib,libintl,$(libintl-a-y) $(libintl-so-y)))
 $(eval $(call add_IS_IN_lib,libm,$(libm-a-y) $(libm-so-y)))
 $(eval $(call add_IS_IN_lib,libpthread/$(PTNAME),$(libpthread-a-y) $(libpthread-so-y) $(libpthread-nonshared-y)))
 $(eval $(call add_IS_IN_lib,libpthread/$(PTNAME)_db,$(libthread_db-a-y) $(libthread_db-so-y)))
-$(eval $(call add_IS_IN_lib,libresolv,$(libresolv-a-y) $(libresolv-so-y)))
 $(eval $(call add_IS_IN_lib,librt,$(librt-a-y) $(librt-so-y)))
 $(eval $(call add_IS_IN_lib,libutil,$(libutil-a-y) $(libutil-so-y)))
 $(eval $(call add_IS_IN_lib,libubacktrace,$(libubacktrace-a-y) $(libubacktrace-so-y)))
 $(eval $(call add_IS_IN_lib,libuargp,$(libuargp-a-y) $(libuargp-so-y)))
 
 shared_objs = $(libc-y:.o=.os) $(libc-shared-y) $(libc-nonshared-y) \
-	$(libcrypt-so-y) $(libdl-so-y) \
-	$(libintl-so-y) $(libm-so-y) \
+	$(libcrypt-so-y) $(libdl-so-y) $(libm-so-y) \
 	$(libpthread-so-y) $(libpthread-nonshared-y) $(libthread_db-so-y) \
-	$(libresolv-so-y) $(librt-so-y) \
-	$(ldso-y) \
-	$(libutil-so-y) $(libubacktrace-so-y) $(libuargp-so-y)
+	$(librt-so-y) $(ldso-y) $(libutil-so-y) $(libubacktrace-so-y) $(libuargp-so-y)
 
 ar_objs =  $(libc-y) $(libc-static-y) $(libcrypt-a-y) \
-	$(libdl-a-y) $(libintl-a-y) $(libm-a-y) \
-	$(libpthread-a-y) $(libthread_db-a-y) \
-	$(libresolv-a-y) $(librt-a-y) $(libutil-a-y) $(libubacktrace-a-y) $(libuargp-a-y)
+	$(libdl-a-y) $(libm-a-y) $(libpthread-a-y) $(libthread_db-a-y) \
+	$(librt-a-y) $(libutil-a-y) $(libubacktrace-a-y) $(libuargp-a-y)
 ifeq ($(DOPIC),y)
 ar_objs := $(ar_objs:.o=.os)
 endif
@@ -477,7 +471,7 @@  files.dep := $(libc-a-y) $(libc-so-y) $(libc-nonshared-y) \
 	$(libthread_db-a-y) $(libthread_db-so-y) $(libpthread-generated-y) \
 	$(START_FILE-libpthread.so) $(END_FILE-libpthread.so) \
 	$(PTHREAD_INITFINI:.c=.s) \
-	$(librt-a-y) $(librt-so-y)  $(libresolv-a-y) $(libresolv-so-y) \
+	$(librt-a-y) $(librt-so-y) \
 	$(libcrypt-a-y) $(libcrypt-so-y) $(libutil-a-y) $(libutil-so-y) \
 	$(ldso-y) $(libdl-a-y) $(libdl-so-y) \
 	$(libubacktrace-a-y) $(libubacktrace-so-y) $(libuargp-so-y) $(libuargp-a-y)
diff --git a/extra/Configs/Config.alpha b/extra/Configs/Config.alpha
index 212df6a..a1eb789 100644
--- a/extra/Configs/Config.alpha
+++ b/extra/Configs/Config.alpha
@@ -14,4 +14,3 @@  config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_HAS_MMU
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_DEPRECATED_SYSCALLS
-	select UCLIBC_HAS_LFS
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 3315c7d..b1ca3fa 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -567,15 +567,6 @@  config UCLIBC_HAS_SYSLOG
 	  Support sending messages to the system logger.
 	  This requires socket-support.
 
-config UCLIBC_HAS_LFS
-	bool "Large File Support"
-	default y
-	help
-	  If you wish to build uClibc with support for accessing large files
-	  (i.e. files greater then 2 GiB) then answer Y.  Do not enable this
-	  if you are using an older Linux kernel (2.0.x) that lacks large file
-	  support.  Enabling this option will increase the size of uClibc.
-
 choice
 	prompt "Malloc Implementation"
 	default MALLOC if ! ARCH_USE_MMU
@@ -1376,11 +1367,6 @@  config UCLIBC_HAS_RESOLVER_SUPPORT
 	  ns_name_pack, ns_name_compress, ns_name_skip, dn_skipname,
 	  ns_get16, ns_get32, ns_put16, ns_put32
 
-config UCLIBC_HAS_LIBRESOLV_STUB
-	bool "Provide libresolv stub"
-	help
-	  Provide a dummy resolv library.
-
 endif
 
 
@@ -1736,7 +1722,6 @@  config UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION
 
 config UCLIBC_HAS_FOPEN_LARGEFILE_MODE
 	bool "Support an fopen() 'F' flag for large file mode (uClibc-specific)"
-	depends on UCLIBC_HAS_LFS
 	help
 	  Answer Y to enable a uClibc-specific extension to allow passing an
 	  additional 'F' flag in the mode string for fopen() to specify that
diff --git a/extra/Configs/defconfigs/or1k/defconfig b/extra/Configs/defconfigs/or1k/defconfig
index b1f890a..d976515 100644
--- a/extra/Configs/defconfigs/or1k/defconfig
+++ b/extra/Configs/defconfigs/or1k/defconfig
@@ -79,7 +79,6 @@  UCLIBC_HAS_LINUXTHREADS=y
 UCLIBC_HAS_THREADS=y
 # PTHREADS_DEBUG_SUPPORT is not set
 UCLIBC_HAS_SYSLOG=y
-UCLIBC_HAS_LFS=y
 # MALLOC is not set
 # MALLOC_SIMPLE is not set
 MALLOC_STANDARD=y
diff --git a/include/_lfs_64.h b/include/_lfs_64.h
index deee98a..88af93c 100644
--- a/include/_lfs_64.h
+++ b/include/_lfs_64.h
@@ -5,8 +5,6 @@ 
  */
 #include <features.h>
 
-#ifdef __UCLIBC_HAS_LFS__
-
 #if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS != 64
 #undef _FILE_OFFSET_BITS
 #define _FILE_OFFSET_BITS   64
@@ -21,9 +19,3 @@ 
 #ifdef __USE_FILE_OFFSET64
 # undef __USE_FILE_OFFSET64
 #endif
-
-#else
-
-# error Do not include this header in files not built when LFS is disabled
-
-#endif
diff --git a/include/dirent.h b/include/dirent.h
index 00aa077..9abd054 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -369,9 +369,7 @@  __END_DECLS
 
 #ifdef _LIBC
 extern __ssize_t __getdents(int fd, char *buf, size_t count) attribute_hidden;
-# ifdef __UCLIBC_HAS_LFS__
 extern __ssize_t __getdents64 (int fd, char *buf, size_t count) attribute_hidden;
-# endif
 #endif
 
 #endif /* dirent.h  */
diff --git a/include/features.h b/include/features.h
index dcf1348..e76bbba 100644
--- a/include/features.h
+++ b/include/features.h
@@ -211,16 +211,6 @@ 
 #  endif
 # endif
 
-# ifndef __UCLIBC_HAS_LFS__
-#  undef _LARGEFILE64_SOURCE
-/* NOTE: This is probably incorrect on a 64-bit arch... */
-#  if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
-#   error It appears you have defined _FILE_OFFSET_BITS=64.  Unfortunately, \
-uClibc was built without large file support enabled.
-#  endif
-# elif defined __BCC__
-#  error BCC does not support LFS, please disable it
-# endif
 #endif /* __UCLIBC__ */
 
 /* If nothing (other than _GNU_SOURCE) is defined,
@@ -419,9 +409,7 @@  uClibc was built without large file support enabled.
    __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
 # if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
 #  define __USE_LARGEFILE	1
-#  ifdef __UCLIBC_HAS_LFS__
 #  define __USE_LARGEFILE64	1
-#  endif
 # endif
 
 #endif	/* !ASSEMBLER */
@@ -440,10 +428,8 @@  uClibc was built without large file support enabled.
 #endif
 
 #ifdef _LIBC
-# ifdef __UCLIBC_HAS_LFS__
 #  undef _FILE_OFFSET_BITS
 #  undef __USE_FILE_OFFSET64
-# endif
 # include <libc-internal.h>
 #endif
 
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 21c4ee0..4dc05c7 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -546,24 +546,6 @@  FIXME! - ?
 # define libm_hidden_data_ver(local, name)
 #endif
 
-#if defined NOT_IN_libc && defined IS_IN_libresolv
-# define libresolv_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libresolv_hidden_def(name) hidden_def (name)
-# define libresolv_hidden_weak(name) hidden_weak (name)
-# define libresolv_hidden_ver(local, name) hidden_ver (local, name)
-# define libresolv_hidden_data_def(name) hidden_data_def (name)
-# define libresolv_hidden_data_weak(name) hidden_data_weak (name)
-# define libresolv_hidden_data_ver(local, name) hidden_data_ver (local, name)
-#else
-# define libresolv_hidden_proto(name, attrs...)
-# define libresolv_hidden_def(name)
-# define libresolv_hidden_weak(name)
-# define libresolv_hidden_ver(local, name)
-# define libresolv_hidden_data_def(name)
-# define libresolv_hidden_data_weak(name)
-# define libresolv_hidden_data_ver(local, name)
-#endif
-
 #if defined NOT_IN_libc && defined IS_IN_librt
 # define librt_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
 # define librt_hidden_def(name) hidden_def (name)
@@ -600,24 +582,6 @@  FIXME! - ?
 # define libdl_hidden_data_ver(local, name)
 #endif
 
-#if defined NOT_IN_libc && defined IS_IN_libintl
-# define libintl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libintl_hidden_def(name) hidden_def (name)
-# define libintl_hidden_weak(name) hidden_weak (name)
-# define libintl_hidden_ver(local, name) hidden_ver (local, name)
-# define libintl_hidden_data_def(name) hidden_data_def (name)
-# define libintl_hidden_data_weak(name) hidden_data_weak (name)
-# define libintl_hidden_data_ver(local, name) hidden_data_ver(local, name)
-#else
-# define libintl_hidden_proto(name, attrs...)
-# define libintl_hidden_def(name)
-# define libintl_hidden_weak(name)
-# define libintl_hidden_ver(local, name)
-# define libintl_hidden_data_def(name)
-# define libintl_hidden_data_weak(name)
-# define libintl_hidden_data_ver(local, name)
-#endif
-
 #if defined NOT_IN_libc && defined IS_IN_libutil
 # define libutil_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
 # define libutil_hidden_def(name) hidden_def (name)
diff --git a/include/libintl.h b/include/libintl.h
deleted file mode 100644
index 0cbf758..0000000
--- a/include/libintl.h
+++ /dev/null
@@ -1,140 +0,0 @@ 
-/* Message catalogs for internationalization.
-   Copyright (C) 1995-2002, 2004, 2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   This file is derived from the file libgettext.h in the GNU gettext package.
-
-   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 _LIBINTL_H
-#define _LIBINTL_H	1
-
-#include <features.h>
-
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-
-/* We define an additional symbol to signal that we use the GNU
-   implementation of gettext.  */
-#define __USE_GNU_GETTEXT 1
-
-/* Provide information about the supported file formats.  Returns the
-   maximum minor revision number supported for a given major revision.  */
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
-  ((major) == 0 ? 1 : -1)
-
-__BEGIN_DECLS
-
-/* Look up MSGID in the current default message catalog for the current
-   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
-   text).  */
-extern char *gettext (const char *__msgid)
-     __THROW __attribute_format_arg__ (1);
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current
-   LC_MESSAGES locale.  */
-extern char *dgettext (const char *__domainname, const char *__msgid)
-     __THROW __attribute_format_arg__ (2);
-#if 0 /* uClibc: disabled */
-extern char *__dgettext (const char *__domainname, const char *__msgid)
-     __THROW __attribute_format_arg__ (2);
-#endif
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
-   locale.  */
-extern char *dcgettext (const char *__domainname,
-			const char *__msgid, int __category)
-     __THROW __attribute_format_arg__ (2);
-#if 0 /* uClibc: disabled */
-extern char *__dcgettext (const char *__domainname,
-			  const char *__msgid, int __category)
-     __THROW __attribute_format_arg__ (2);
-#endif
-
-
-/* Similar to `gettext' but select the plural form corresponding to the
-   number N.  */
-extern char *ngettext (const char *__msgid1, const char *__msgid2,
-		       unsigned long int __n)
-     __THROW __attribute_format_arg__ (1) __attribute_format_arg__ (2);
-
-/* Similar to `dgettext' but select the plural form corresponding to the
-   number N.  */
-extern char *dngettext (const char *__domainname, const char *__msgid1,
-			const char *__msgid2, unsigned long int __n)
-     __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
-
-/* Similar to `dcgettext' but select the plural form corresponding to the
-   number N.  */
-extern char *dcngettext (const char *__domainname, const char *__msgid1,
-			 const char *__msgid2, unsigned long int __n,
-			 int __category)
-     __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
-
-
-/* Set the current default message catalog to DOMAINNAME.
-   If DOMAINNAME is null, return the current default.
-   If DOMAINNAME is "", reset to the default of "messages".  */
-extern char *textdomain (const char *__domainname) __THROW;
-
-/* Specify that the DOMAINNAME message catalog will be found
-   in DIRNAME rather than in the system locale data base.  */
-extern char *bindtextdomain (const char *__domainname,
-			     const char *__dirname) __THROW;
-
-/* Specify the character encoding in which the messages from the
-   DOMAINNAME message catalog will be returned.  */
-extern char *bind_textdomain_codeset (const char *__domainname,
-				      const char *__codeset) __THROW;
-
-
-/* Optimized version of the function above.  */
-#if defined __OPTIMIZE__ && !defined __cplusplus
-
-/* We need NULL for `gettext'.  */
-# define __need_NULL
-# include <stddef.h>
-
-/* We need LC_MESSAGES for `dgettext'.  */
-# include <locale.h>
-
-/* These must be macros.  Inlined functions are useless because the
-   `__builtin_constant_p' predicate in dcgettext would always return
-   false.  */
-
-# define gettext(msgid) dgettext (NULL, msgid)
-
-# define dgettext(domainname, msgid) \
-  dcgettext (domainname, msgid, LC_MESSAGES)
-
-# define ngettext(msgid1, msgid2, n) dngettext (NULL, msgid1, msgid2, n)
-
-# define dngettext(domainname, msgid1, msgid2, n) \
-  dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
-
-#endif	/* Optimizing.  */
-
-__END_DECLS
-
-#else
-
-#define gettext(msgid) ((const char *) (msgid))
-
-#endif /* __UCLIBC_HAS_GETTEXT_AWARENESS__ */
-
-#ifdef _LIBC
-# define _(x) gettext(x)
-# define N_(x) x
-#endif
-
-#endif /* libintl.h */
diff --git a/libc/Makefile.in b/libc/Makefile.in
index ef7bade..3cff9fd 100644
--- a/libc/Makefile.in
+++ b/libc/Makefile.in
@@ -44,26 +44,22 @@  endif
 
 libc-a-$(HAVE_SHARED) += $(libdl-a-y)
 libc-a-$(DO_C99_MATH) += $(libm-a-y)
-libc-a-$(UCLIBC_HAS_LIBRESOLV_STUB) += $(libresolv-a-y)
 libc-a-$(UCLIBC_HAS_LIBUTIL) += $(libutil-a-y)
 libc-a-$(UCLIBC_HAS_CRYPT) += $(libcrypt-a-y)
 libc-a-$(UCLIBC_HAS_ARGP) += $(libuargp-a-y)
 libc-a-$(UCLIBC_HAS_THREADS) += $(libpthread-a-y)
 libc-a-$(UCLIBC_HAS_REALTIME) += $(librt-a-y)
-libc-a-$(UCLIBC_HAS_GETTEXT_AWARENESS) += $(libintl-a-y)
 libc-a-$(UCLIBC_HAS_BACKTRACE) += $(libubacktrace-a-y)
 
 libc-so-y = $(libc-y:.o=.os) $(libc-shared-y)
 
 libc-so-y += $(libdl-so-y)
 libc-so-$(DO_C99_MATH) += $(libm-so-y)
-libc-so-$(UCLIBC_HAS_LIBRESOLV_STUB) += $(libresolv-so-y)
 libc-so-$(UCLIBC_HAS_LIBUTIL) += $(libutil-so-y)
 libc-so-$(UCLIBC_HAS_CRYPT) += $(libcrypt-so-y)
 libc-so-$(UCLIBC_HAS_ARGP) += $(libuargp-so-y)
 libc-so-$(UCLIBC_HAS_THREADS) += $(libpthread-so-y)
 libc-so-$(UCLIBC_HAS_REALTIME) += $(librt-so-y)
-libc-so-$(UCLIBC_HAS_GETTEXT_AWARENESS) += $(libintl-so-y)
 libc-so-$(UCLIBC_HAS_BACKTRACE) += $(libubacktrace-so-y)
 
 lib-a-y += $(top_builddir)lib/libc.a
diff --git a/libc/inet/gai_strerror.c b/libc/inet/gai_strerror.c
index 1da5552..18e85bf 100644
--- a/libc/inet/gai_strerror.c
+++ b/libc/inet/gai_strerror.c
@@ -18,7 +18,6 @@ 
 
 #include <stdio.h>
 #include <netdb.h>
-#include <libintl.h>
 
 static const struct
   {
@@ -27,22 +26,22 @@  static const struct
   }
 values[] =
   {
-    { EAI_ADDRFAMILY, N_("Address family for hostname not supported") },
-    { EAI_AGAIN, N_("Temporary failure in name resolution") },
-    { EAI_BADFLAGS, N_("Bad value for ai_flags") },
-    { EAI_FAIL, N_("Non-recoverable failure in name resolution") },
-    { EAI_FAMILY, N_("ai_family not supported") },
-    { EAI_MEMORY, N_("Memory allocation failure") },
-    { EAI_NODATA, N_("No address associated with hostname") },
-    { EAI_NONAME, N_("Name or service not known") },
-    { EAI_SERVICE, N_("Servname not supported for ai_socktype") },
-    { EAI_SOCKTYPE, N_("ai_socktype not supported") },
-    { EAI_SYSTEM, N_("System error") },
-    { EAI_INPROGRESS, N_("Processing request in progress") },
-    { EAI_CANCELED, N_("Request canceled") },
-    { EAI_NOTCANCELED, N_("Request not canceled") },
-    { EAI_ALLDONE, N_("All requests done") },
-    { EAI_INTR, N_("Interrupted by a signal") }
+    { EAI_ADDRFAMILY, "Address family for hostname not supported" },
+    { EAI_AGAIN, "Temporary failure in name resolution" },
+    { EAI_BADFLAGS, "Bad value for ai_flags" },
+    { EAI_FAIL, "Non-recoverable failure in name resolution" },
+    { EAI_FAMILY, "ai_family not supported" },
+    { EAI_MEMORY, "Memory allocation failure" },
+    { EAI_NODATA, "No address associated with hostname" },
+    { EAI_NONAME, "Name or service not known" },
+    { EAI_SERVICE, "Servname not supported for ai_socktype" },
+    { EAI_SOCKTYPE, "ai_socktype not supported" },
+    { EAI_SYSTEM, "System error" },
+    { EAI_INPROGRESS, "Processing request in progress" },
+    { EAI_CANCELED, "Request canceled" },
+    { EAI_NOTCANCELED, "Request not canceled" },
+    { EAI_ALLDONE, "All requests done" },
+    { EAI_INTR, "Interrupted by a signal" }
   };
 
 const char *
@@ -51,7 +50,7 @@  gai_strerror (int code)
     size_t i;
     for (i = 0; i < sizeof (values) / sizeof (values[0]); ++i)
 	if (values[i].code == code)
-	    return _(values[i].msg);
+	    return values[i].msg;
 
-    return _("Unknown error");
+    return "Unknown error";
 }
diff --git a/libc/inet/rpc/auth_unix.c b/libc/inet/rpc/auth_unix.c
index 72d7a7a..86c5ce9 100644
--- a/libc/inet/rpc/auth_unix.c
+++ b/libc/inet/rpc/auth_unix.c
@@ -42,7 +42,6 @@ 
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
-#include <libintl.h>
 #include <sys/param.h>
 
 #include <rpc/types.h>
@@ -105,7 +104,7 @@  authunix_create (char *machname, uid_t uid, gid_t gid, int len,
   if (auth == NULL || au == NULL)
     {
 no_memory:
-      (void) fputs (_("authunix_create: out of memory\n"), stderr);
+      (void) fputs ("authunix_create: out of memory\n", stderr);
       mem_free (auth, sizeof (*auth));
       mem_free (au, sizeof (*au));
       return NULL;
@@ -314,7 +313,7 @@  marshal_new_auth (AUTH *auth)
   xdrmem_create (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
   if ((!xdr_opaque_auth (xdrs, &(auth->ah_cred))) ||
       (!xdr_opaque_auth (xdrs, &(auth->ah_verf))))
-    perror (_("auth_unix.c - Fatal marshalling problem"));
+    perror ("auth_unix.c - Fatal marshalling problem");
   else
     au->au_mpos = XDR_GETPOS (xdrs);
 
diff --git a/libc/inet/rpc/clnt_perror.c b/libc/inet/rpc/clnt_perror.c
index 190e07e..f34900d 100644
--- a/libc/inet/rpc/clnt_perror.c
+++ b/libc/inet/rpc/clnt_perror.c
@@ -72,74 +72,74 @@  struct rpc_errtab
 static const char rpc_errstr[] =
 {
 #define RPC_SUCCESS_IDX		0
-  N_("RPC: Success")
+  "RPC: Success"
   "\0"
 #define RPC_CANTENCODEARGS_IDX	(RPC_SUCCESS_IDX + sizeof "RPC: Success")
-  N_("RPC: Can't encode arguments")
+  "RPC: Can't encode arguments"
   "\0"
 #define RPC_CANTDECODERES_IDX	(RPC_CANTENCODEARGS_IDX \
 				 + sizeof "RPC: Can't encode arguments")
-  N_("RPC: Can't decode result")
+  "RPC: Can't decode result"
   "\0"
 #define RPC_CANTSEND_IDX	(RPC_CANTDECODERES_IDX \
 				 + sizeof "RPC: Can't decode result")
-  N_("RPC: Unable to send")
+  "RPC: Unable to send"
   "\0"
 #define RPC_CANTRECV_IDX	(RPC_CANTSEND_IDX \
 				 + sizeof "RPC: Unable to send")
-  N_("RPC: Unable to receive")
+  "RPC: Unable to receive"
   "\0"
 #define RPC_TIMEDOUT_IDX	(RPC_CANTRECV_IDX \
 				 + sizeof "RPC: Unable to receive")
-  N_("RPC: Timed out")
+  "RPC: Timed out"
   "\0"
 #define RPC_VERSMISMATCH_IDX	(RPC_TIMEDOUT_IDX \
 				 + sizeof "RPC: Timed out")
-  N_("RPC: Incompatible versions of RPC")
+  "RPC: Incompatible versions of RPC"
   "\0"
 #define RPC_AUTHERROR_IDX	(RPC_VERSMISMATCH_IDX \
 				 + sizeof "RPC: Incompatible versions of RPC")
-  N_("RPC: Authentication error")
+  "RPC: Authentication error"
   "\0"
 #define RPC_PROGUNAVAIL_IDX		(RPC_AUTHERROR_IDX \
 				 + sizeof "RPC: Authentication error")
-  N_("RPC: Program unavailable")
+  "RPC: Program unavailable"
   "\0"
 #define RPC_PROGVERSMISMATCH_IDX (RPC_PROGUNAVAIL_IDX \
 				  + sizeof "RPC: Program unavailable")
-  N_("RPC: Program/version mismatch")
+  "RPC: Program/version mismatch"
   "\0"
 #define RPC_PROCUNAVAIL_IDX	(RPC_PROGVERSMISMATCH_IDX \
 				 + sizeof "RPC: Program/version mismatch")
-  N_("RPC: Procedure unavailable")
+  "RPC: Procedure unavailable"
   "\0"
 #define RPC_CANTDECODEARGS_IDX	(RPC_PROCUNAVAIL_IDX \
 				 + sizeof "RPC: Procedure unavailable")
-  N_("RPC: Server can't decode arguments")
+  "RPC: Server can't decode arguments"
   "\0"
 #define RPC_SYSTEMERROR_IDX	(RPC_CANTDECODEARGS_IDX \
 				 + sizeof "RPC: Server can't decode arguments")
-  N_("RPC: Remote system error")
+  "RPC: Remote system error"
   "\0"
 #define RPC_UNKNOWNHOST_IDX	(RPC_SYSTEMERROR_IDX \
 				 + sizeof "RPC: Remote system error")
-  N_("RPC: Unknown host")
+  "RPC: Unknown host"
   "\0"
 #define RPC_UNKNOWNPROTO_IDX	(RPC_UNKNOWNHOST_IDX \
 				 + sizeof "RPC: Unknown host")
-  N_("RPC: Unknown protocol")
+  "RPC: Unknown protocol"
   "\0"
 #define RPC_PMAPFAILURE_IDX	(RPC_UNKNOWNPROTO_IDX \
 				 + sizeof "RPC: Unknown protocol")
-  N_("RPC: Port mapper failure")
+  "RPC: Port mapper failure"
   "\0"
 #define RPC_PROGNOTREGISTERED_IDX (RPC_PMAPFAILURE_IDX \
 				   + sizeof "RPC: Port mapper failure")
-  N_("RPC: Program not registered")
+  "RPC: Program not registered"
   "\0"
 #define RPC_FAILED_IDX		(RPC_PROGNOTREGISTERED_IDX \
 				 + sizeof "RPC: Program not registered")
-  N_("RPC: Failed (unspecified error)")
+  "RPC: Failed (unspecified error)"
 };
 
 static const struct rpc_errtab rpc_errlist[] =
@@ -177,10 +177,10 @@  clnt_sperrno (enum clnt_stat stat)
     {
       if (rpc_errlist[i].status == stat)
 	{
-	  return (char*)_(rpc_errstr + rpc_errlist[i].message_off);
+	  return (char*)rpc_errstr + rpc_errlist[i].message_off;
 	}
     }
-  return N_("RPC: (unknown error code)");
+  return "RPC: (unknown error code)";
 }
 libc_hidden_def(clnt_sperrno)
 
@@ -238,14 +238,14 @@  clnt_sperror (CLIENT * rpch, const char *msg)
       break;
 
     case RPC_VERSMISMATCH:
-      len= sprintf (str, _("; low version = %lu, high version = %lu"),
+      len= sprintf (str, "; low version = %lu, high version = %lu",
 		    e.re_vers.low, e.re_vers.high);
       str += len;
       break;
 
     case RPC_AUTHERROR:
       err = auth_errmsg (e.re_why);
-      (void) strcpy(str, _("; why = "));
+      (void) strcpy(str, "; why = ");
       str += strlen(str);
 
       if (err != NULL)
@@ -255,14 +255,14 @@  clnt_sperror (CLIENT * rpch, const char *msg)
 	}
       else
 	{
-	  len = sprintf (str, _("(unknown authentication error - %d)"),
+	  len = sprintf (str, "(unknown authentication error - %d)",
 			 (int) e.re_why);
 	  str += len;
 	}
       break;
 
     case RPC_PROGVERSMISMATCH:
-      len = sprintf (str, _("; low version = %lu, high version = %lu"),
+      len = sprintf (str, "; low version = %lu, high version = %lu",
 		     e.re_vers.low, e.re_vers.high);
       str += len;
       break;
@@ -345,34 +345,34 @@  struct auth_errtab
 static const char auth_errstr[] =
 {
 #define AUTH_OK_IDX		0
-   N_("Authentication OK")
+   "Authentication OK"
    "\0"
 #define AUTH_BADCRED_IDX	(AUTH_OK_IDX + sizeof "Authentication OK")
-   N_("Invalid client credential")
+   "Invalid client credential"
    "\0"
 #define AUTH_REJECTEDCRED_IDX	(AUTH_BADCRED_IDX \
 				 + sizeof "Invalid client credential")
-   N_("Server rejected credential")
+   "Server rejected credential"
    "\0"
 #define AUTH_BADVERF_IDX	(AUTH_REJECTEDCRED_IDX \
 				 + sizeof "Server rejected credential")
-   N_("Invalid client verifier")
+   "Invalid client verifier"
    "\0"
 #define AUTH_REJECTEDVERF_IDX	(AUTH_BADVERF_IDX \
 				 + sizeof "Invalid client verifier")
-   N_("Server rejected verifier")
+   "Server rejected verifier"
    "\0"
 #define AUTH_TOOWEAK_IDX	(AUTH_REJECTEDVERF_IDX \
 				 + sizeof "Server rejected verifier")
-   N_("Client credential too weak")
+   "Client credential too weak"
    "\0"
 #define AUTH_INVALIDRESP_IDX	(AUTH_TOOWEAK_IDX \
 				 + sizeof "Client credential too weak")
-   N_("Invalid server verifier")
+   "Invalid server verifier"
    "\0"
 #define AUTH_FAILED_IDX		(AUTH_INVALIDRESP_IDX \
 				 + sizeof "Invalid server verifier")
-   N_("Failed (unspecified error)")
+   "Failed (unspecified error)"
 };
 
 static const struct auth_errtab auth_errlist[] =
@@ -397,7 +397,7 @@  auth_errmsg (enum auth_stat stat)
     {
       if (auth_errlist[i].status == stat)
 	{
-	  return (char*)_(auth_errstr + auth_errlist[i].message_off);
+	  return (char*)auth_errstr + auth_errlist[i].message_off;
 	}
     }
   return NULL;
diff --git a/libc/inet/rpc/clnt_raw.c b/libc/inet/rpc/clnt_raw.c
index ddc1c14..0d4efde 100644
--- a/libc/inet/rpc/clnt_raw.c
+++ b/libc/inet/rpc/clnt_raw.c
@@ -113,7 +113,7 @@  clntraw_create (u_long prog, u_long vers)
   xdrmem_create (xdrs, clp->mashl_callmsg, MCALL_MSG_SIZE, XDR_ENCODE);
   if (!xdr_callhdr (xdrs, &call_msg))
     {
-      perror (_ ("clnt_raw.c - Fatal header serialization error."));
+      perror ("clnt_raw.c - Fatal header serialization error.");
     }
   clp->mcnt = XDR_GETPOS (xdrs);
   XDR_DESTROY (xdrs);
diff --git a/libc/inet/rpc/clnt_tcp.c b/libc/inet/rpc/clnt_tcp.c
index 4b19a9a..7046057 100644
--- a/libc/inet/rpc/clnt_tcp.c
+++ b/libc/inet/rpc/clnt_tcp.c
@@ -122,7 +122,7 @@  clnttcp_create (struct sockaddr_in *raddr, u_long prog, u_long vers,
   if (h == NULL || ct == NULL)
     {
       struct rpc_createerr *ce = &get_rpc_createerr ();
-      (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
+      (void) fputs ("clnttcp_create: out of memory\n", stderr);
       ce->cf_stat = RPC_SYSTEMERROR;
       ce->cf_error.re_errno = ENOMEM;
       goto fooy;
diff --git a/libc/inet/rpc/clnt_udp.c b/libc/inet/rpc/clnt_udp.c
index ce7e9e6..b2dbbba 100644
--- a/libc/inet/rpc/clnt_udp.c
+++ b/libc/inet/rpc/clnt_udp.c
@@ -128,7 +128,7 @@  clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
   if (cl == NULL || cu == NULL)
     {
       struct rpc_createerr *ce = &get_rpc_createerr ();
-      (void) fputs (_("clntudp_create: out of memory\n"), stderr);
+      (void) fputs ("clntudp_create: out of memory\n", stderr);
       ce->cf_stat = RPC_SYSTEMERROR;
       ce->cf_error.re_errno = ENOMEM;
       goto fooy;
diff --git a/libc/inet/rpc/clnt_unix.c b/libc/inet/rpc/clnt_unix.c
index e4a6672..060fac4 100644
--- a/libc/inet/rpc/clnt_unix.c
+++ b/libc/inet/rpc/clnt_unix.c
@@ -119,7 +119,7 @@  clntunix_create (struct sockaddr_un *raddr, u_long prog, u_long vers,
   if (h == NULL || ct == NULL)
     {
       struct rpc_createerr *ce = &get_rpc_createerr ();
-      (void) fputs (_("clntunix_create: out of memory\n"), stderr);
+      (void) fputs ("clntunix_create: out of memory\n", stderr);
       ce->cf_stat = RPC_SYSTEMERROR;
       ce->cf_error.re_errno = ENOMEM;
       goto fooy;
diff --git a/libc/inet/rpc/get_myaddress.c b/libc/inet/rpc/get_myaddress.c
index 04999a1..edeadce 100644
--- a/libc/inet/rpc/get_myaddress.c
+++ b/libc/inet/rpc/get_myaddress.c
@@ -44,7 +44,6 @@  static char sccsid[] = "@(#)get_myaddress.c 1.4 87/08/11 Copyr 1984 Sun Micro";
 #include <sys/socket.h>
 #include <stdio.h>
 #include <unistd.h>
-#include <libintl.h>
 #include <net/if.h>
 #include <sys/ioctl.h>
 /* Order of following two #includes reversed by roland@gnu */
@@ -76,7 +75,7 @@  get_myaddress (struct sockaddr_in *addr)
   ifc.ifc_buf = buf;
   if (ioctl (s, SIOCGIFCONF, (char *) &ifc) < 0)
     {
-      perror (_("get_myaddress: ioctl (get interface configuration)"));
+      perror ("get_myaddress: ioctl (get interface configuration)");
       exit (1);
     }
 
diff --git a/libc/inet/rpc/pm_getmaps.c b/libc/inet/rpc/pm_getmaps.c
index 910625a..17d5705 100644
--- a/libc/inet/rpc/pm_getmaps.c
+++ b/libc/inet/rpc/pm_getmaps.c
@@ -74,7 +74,7 @@  pmap_getmaps (struct sockaddr_in *address)
 		     (xdrproc_t)xdr_pmaplist, (caddr_t)&head,
 		     minutetimeout) != RPC_SUCCESS)
 	{
-	  clnt_perror (client, _("pmap_getmaps rpc problem"));
+	  clnt_perror (client, "pmap_getmaps rpc problem");
 	}
       CLNT_DESTROY (client);
     }
diff --git a/libc/inet/rpc/pmap_clnt.c b/libc/inet/rpc/pmap_clnt.c
index 20a5431..c7f759e 100644
--- a/libc/inet/rpc/pmap_clnt.c
+++ b/libc/inet/rpc/pmap_clnt.c
@@ -69,7 +69,7 @@  __get_myaddress (struct sockaddr_in *addr)
   ifc.ifc_buf = buf;
   if (ioctl (s, SIOCGIFCONF, (char *) &ifc) < 0)
     {
-      perror (_("__get_myaddress: ioctl (get interface configuration)"));
+      perror ("__get_myaddress: ioctl (get interface configuration)");
       exit (1);
     }
 
@@ -133,7 +133,7 @@  pmap_set (u_long program, u_long version, int protocol, u_short port)
 		 (xdrproc_t)xdr_bool, (caddr_t)&rslt,
 		 tottimeout) != RPC_SUCCESS)
     {
-      clnt_perror (client, _("Cannot register service"));
+      clnt_perror (client, "Cannot register service");
       rslt = FALSE;
     }
   CLNT_DESTROY (client);
diff --git a/libc/inet/rpc/pmap_rmt.c b/libc/inet/rpc/pmap_rmt.c
index 2576e39..df271fb 100644
--- a/libc/inet/rpc/pmap_rmt.c
+++ b/libc/inet/rpc/pmap_rmt.c
@@ -176,7 +176,7 @@  getbroadcastnets (struct in_addr *addrs, int sock, char *buf)
   ifc.ifc_buf = buf;
   if (ioctl (sock, SIOCGIFCONF, (char *) &ifc) < 0)
     {
-      perror (_("broadcast: ioctl (get interface configuration)"));
+      perror ("broadcast: ioctl (get interface configuration)");
       return (0);
     }
   ifr = ifc.ifc_req;
@@ -185,7 +185,7 @@  getbroadcastnets (struct in_addr *addrs, int sock, char *buf)
       ifreq = *ifr;
       if (ioctl (sock, SIOCGIFFLAGS, (char *) &ifreq) < 0)
 	{
-	  perror (_("broadcast: ioctl (get interface flags)"));
+	  perror ("broadcast: ioctl (get interface flags)");
 	  continue;
 	}
       if ((ifreq.ifr_flags & IFF_BROADCAST) &&
@@ -255,14 +255,14 @@  clnt_broadcast (
    */
   if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
     {
-      perror (_("Cannot create socket for broadcast rpc"));
+      perror ("Cannot create socket for broadcast rpc");
       stat = RPC_CANTSEND;
       goto done_broad;
     }
 #ifdef SO_BROADCAST
   if (setsockopt (sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof (on)) < 0)
     {
-      perror (_("Cannot set socket option SO_BROADCAST"));
+      perror ("Cannot set socket option SO_BROADCAST");
       stat = RPC_CANTSEND;
       goto done_broad;
     }
@@ -313,7 +313,7 @@  clnt_broadcast (
 		      (struct sockaddr *) &baddr,
 		      sizeof (struct sockaddr)) != outlen)
 	    {
-	      perror (_("Cannot send broadcast packet"));
+	      perror ("Cannot send broadcast packet");
 	      stat = RPC_CANTSEND;
 	      goto done_broad;
 	    }
@@ -338,7 +338,7 @@  clnt_broadcast (
 	case -1:		/* some kind of error */
 	  if (errno == EINTR)
 	    goto recv_again;
-	  perror (_("Broadcast poll problem"));
+	  perror ("Broadcast poll problem");
 	  stat = RPC_CANTRECV;
 	  goto done_broad;
 
@@ -351,7 +351,7 @@  clnt_broadcast (
 	{
 	  if (errno == EINTR)
 	    goto try_again;
-	  perror (_("Cannot receive reply to broadcast"));
+	  perror ("Cannot receive reply to broadcast");
 	  stat = RPC_CANTRECV;
 	  goto done_broad;
 	}
diff --git a/libc/inet/rpc/rcmd.c b/libc/inet/rpc/rcmd.c
index fdfaa09..63b0ef2 100644
--- a/libc/inet/rpc/rcmd.c
+++ b/libc/inet/rpc/rcmd.c
@@ -78,7 +78,6 @@  static char sccsid[] = "@(#)rcmd.c	8.3 (Berkeley) 3/26/94";
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
-#include <libintl.h>
 #include <stdlib.h>
 #ifdef __UCLIBC_HAS_WCHAR__
 #include <wchar.h>
diff --git a/libc/inet/rpc/rpc_private.h b/libc/inet/rpc/rpc_private.h
index 9e01df4..adb8138 100644
--- a/libc/inet/rpc/rpc_private.h
+++ b/libc/inet/rpc/rpc_private.h
@@ -1,7 +1,6 @@ 
 #ifndef _RPC_PRIVATE_H
 #define _RPC_PRIVATE_H
 #include <rpc/rpc.h>
-#include <libintl.h>
 
 /* Now define the internal interfaces.  */
 extern u_long _create_xid (void) attribute_hidden;
diff --git a/libc/inet/rpc/ruserpass.c b/libc/inet/rpc/ruserpass.c
index 9197763..4f3060b 100644
--- a/libc/inet/rpc/ruserpass.c
+++ b/libc/inet/rpc/ruserpass.c
@@ -41,7 +41,6 @@ 
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <libintl.h>
 
 /* #include "ftp_var.h" */
 
@@ -163,7 +162,7 @@  next:
 				  newp = malloc((unsigned) strlen(tokval) + 1);
 				  if (newp == NULL)
 				    {
-				      printf(_("out of memory"));
+				      printf("out of memory");
 				      goto bad;
 				    }
 				  *aname = strcpy(newp, tokval);
@@ -177,8 +176,8 @@  next:
 			if (strcmp(*aname, "anonymous") &&
 			    fstat(fileno(cfile), &stb) >= 0 &&
 			    (stb.st_mode & 077) != 0) {
-	printf(_("Error: .netrc file is readable by others."));
-	printf(_("Remove password or make file unreadable by others."));
+	printf("Error: .netrc file is readable by others.");
+	printf("Remove password or make file unreadable by others.");
 				goto bad;
 			}
 			if (token() && *apass == 0) {
@@ -186,7 +185,7 @@  next:
 				newp = malloc((unsigned) strlen(tokval) + 1);
 				if (newp == NULL)
 				  {
-				    printf(_("out of memory"));
+				    printf("out of memory");
 				    goto bad;
 				  }
 				*apass = strcpy(newp, tokval);
@@ -270,7 +269,7 @@  next:
 #endif
 			break;
 		default:
-			printf(_("Unknown .netrc keyword %s"), tokval);
+			printf("Unknown .netrc keyword %s", tokval);
 			break;
 		}
 		goto done;
diff --git a/libc/inet/rpc/svc_run.c b/libc/inet/rpc/svc_run.c
index f3e0209..32c4dee 100644
--- a/libc/inet/rpc/svc_run.c
+++ b/libc/inet/rpc/svc_run.c
@@ -74,7 +74,7 @@  svc_run (void)
 	  free (my_pollfd);
 	  if (errno == EINTR)
 	    continue;
-	  perror (_("svc_run: - poll failed"));
+	  perror ("svc_run: - poll failed");
 	  return;
 	case 0:
 	  free (my_pollfd);
diff --git a/libc/inet/rpc/svc_simple.c b/libc/inet/rpc/svc_simple.c
index c770938..4c27eae 100644
--- a/libc/inet/rpc/svc_simple.c
+++ b/libc/inet/rpc/svc_simple.c
@@ -80,7 +80,7 @@  registerrpc (u_long prognum, u_long versnum, u_long procnum,
   if (procnum == NULLPROC)
     {
 
-      (void) asprintf (&buf, _("can't reassign procedure number %ld\n"),
+      (void) asprintf (&buf, "can't reassign procedure number %ld\n",
 			 NULLPROC);
       goto err_out;
     }
@@ -89,7 +89,7 @@  registerrpc (u_long prognum, u_long versnum, u_long procnum,
       transp = svcudp_create (RPC_ANYSOCK);
       if (transp == NULL)
 	{
-	  buf = strdup (_("couldn't create an rpc server\n"));
+	  buf = strdup ("couldn't create an rpc server\n");
 	  goto err_out;
 	}
     }
@@ -97,14 +97,14 @@  registerrpc (u_long prognum, u_long versnum, u_long procnum,
   if (!svc_register (transp, (u_long) prognum, (u_long) versnum,
 		     universal, IPPROTO_UDP))
     {
-      (void) asprintf (&buf, _("couldn't register prog %ld vers %ld\n"),
+      (void) asprintf (&buf, "couldn't register prog %ld vers %ld\n",
 			 prognum, versnum);
       goto err_out;
     }
   pl = (struct proglst_ *) malloc (sizeof (struct proglst_));
   if (pl == NULL)
     {
-      buf = strdup (_("registerrpc: out of memory\n"));
+      buf = strdup ("registerrpc: out of memory\n");
       goto err_out;
     }
   pl->p_progname = progname;
@@ -162,7 +162,7 @@  universal (struct svc_req *rqstp, SVCXPRT *transp_l)
 	if (!svc_sendreply (transp_l, pl->p_outproc, outdata))
 	  {
 	    (void) asprintf (&buf,
-			       _("trouble replying to prog %d\n"),
+			       "trouble replying to prog %d\n",
 			       pl->p_prognum);
 	    exit (1);
 	  }
@@ -170,7 +170,7 @@  universal (struct svc_req *rqstp, SVCXPRT *transp_l)
 	(void) svc_freeargs (transp_l, pl->p_inproc, xdrbuf);
 	return;
       }
-  (void) asprintf (&buf, _("never registered prog %d\n"), prog);
+  (void) asprintf (&buf, "never registered prog %d\n", prog);
   fputs (buf, stderr);
   free (buf);
   exit (1);
diff --git a/libc/inet/rpc/svc_tcp.c b/libc/inet/rpc/svc_tcp.c
index f0acf35..c1608ac 100644
--- a/libc/inet/rpc/svc_tcp.c
+++ b/libc/inet/rpc/svc_tcp.c
@@ -146,7 +146,7 @@  svctcp_create (int sock, u_int sendsize, u_int recvsize)
     {
       if ((sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
 	{
-	  perror (_("svc_tcp.c - tcp socket creation problem"));
+	  perror ("svc_tcp.c - tcp socket creation problem");
 	  return (SVCXPRT *) NULL;
 	}
       madesock = TRUE;
@@ -161,7 +161,7 @@  svctcp_create (int sock, u_int sendsize, u_int recvsize)
   if ((getsockname (sock, (struct sockaddr *) &addr, &len) != 0) ||
       (listen (sock, 2) != 0))
     {
-      perror (_("svc_tcp.c - cannot getsockname or listen"));
+      perror ("svc_tcp.c - cannot getsockname or listen");
       if (madesock)
 	(void) close (sock);
       return (SVCXPRT *) NULL;
@@ -170,7 +170,7 @@  svctcp_create (int sock, u_int sendsize, u_int recvsize)
   xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
   if (r == NULL || xprt == NULL)
     {
-      (void) fputs (_("svctcp_create: out of memory\n"), stderr);
+      (void) fputs ("svctcp_create: out of memory\n", stderr);
       mem_free (r, sizeof (*r));
       mem_free (xprt, sizeof (SVCXPRT));
       return NULL;
@@ -210,7 +210,7 @@  makefd_xprt (int fd, u_int sendsize, u_int recvsize)
   cd = (struct tcp_conn *) mem_alloc (sizeof (struct tcp_conn));
   if (xprt == (SVCXPRT *) NULL || cd == NULL)
     {
-      (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
+      (void) fputs ("svc_tcp: makefd_xprt: out of memory\n", stderr);
       mem_free (xprt, sizeof (SVCXPRT));
       mem_free (cd, sizeof (struct tcp_conn));
       return NULL;
diff --git a/libc/inet/rpc/svc_udp.c b/libc/inet/rpc/svc_udp.c
index 456c6de..5b8a8d2 100644
--- a/libc/inet/rpc/svc_udp.c
+++ b/libc/inet/rpc/svc_udp.c
@@ -117,7 +117,7 @@  svcudp_bufcreate (int sock, u_int sendsz, u_int recvsz)
     {
       if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
 	{
-	  perror (_("svcudp_create: socket creation problem"));
+	  perror ("svcudp_create: socket creation problem");
 	  return (SVCXPRT *) NULL;
 	}
       madesock = TRUE;
@@ -131,7 +131,7 @@  svcudp_bufcreate (int sock, u_int sendsz, u_int recvsz)
     }
   if (getsockname (sock, (struct sockaddr *) &addr, &len) != 0)
     {
-      perror (_("svcudp_create - cannot getsockname"));
+      perror ("svcudp_create - cannot getsockname");
       if (madesock)
 	(void) close (sock);
       return (SVCXPRT *) NULL;
@@ -141,7 +141,7 @@  svcudp_bufcreate (int sock, u_int sendsz, u_int recvsz)
   buf = mem_alloc (((MAX (sendsz, recvsz) + 3) / 4) * 4);
   if (xprt == NULL || su == NULL || buf == NULL)
     {
-      (void) fputs (_("svcudp_create: out of memory\n"), stderr);
+      (void) fputs ("svcudp_create: out of memory\n", stderr);
       mem_free (xprt, sizeof (SVCXPRT));
       mem_free (su, sizeof (*su));
       mem_free (buf, ((MAX (sendsz, recvsz) + 3) / 4) * 4);
@@ -162,7 +162,7 @@  svcudp_bufcreate (int sock, u_int sendsz, u_int recvsz)
        + sizeof(struct cmsghdr) + sizeof (struct in_pktinfo))
       > sizeof (xprt->xp_pad))
     {
-      (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
+      (void) fputs ("svcudp_create: xp_pad is too small for IP_PKTINFO\n",
 		      stderr);
       return NULL;
     }
@@ -429,13 +429,13 @@  svcudp_enablecache (SVCXPRT *transp, u_long size)
 
   if (su->su_cache != NULL)
     {
-      CACHE_PERROR (_("enablecache: cache already enabled"));
+      CACHE_PERROR ("enablecache: cache already enabled");
       return 0;
     }
   uc = ALLOC (struct udp_cache, 1);
   if (uc == NULL)
     {
-      CACHE_PERROR (_("enablecache: could not allocate cache"));
+      CACHE_PERROR ("enablecache: could not allocate cache");
       return 0;
     }
   uc->uc_size = size;
@@ -443,14 +443,14 @@  svcudp_enablecache (SVCXPRT *transp, u_long size)
   uc->uc_entries = ALLOC (cache_ptr, size * SPARSENESS);
   if (uc->uc_entries == NULL)
     {
-      CACHE_PERROR (_("enablecache: could not allocate cache data"));
+      CACHE_PERROR ("enablecache: could not allocate cache data");
       return 0;
     }
   BZERO (uc->uc_entries, cache_ptr, size * SPARSENESS);
   uc->uc_fifo = ALLOC (cache_ptr, size);
   if (uc->uc_fifo == NULL)
     {
-      CACHE_PERROR (_("enablecache: could not allocate cache fifo"));
+      CACHE_PERROR ("enablecache: could not allocate cache fifo");
       return 0;
     }
   BZERO (uc->uc_fifo, cache_ptr, size);
@@ -486,7 +486,7 @@  cache_set (SVCXPRT *xprt, u_long replylen)
 	;
       if (*vicp == NULL)
 	{
-	  CACHE_PERROR (_("cache_set: victim not found"));
+	  CACHE_PERROR ("cache_set: victim not found");
 	  return;
 	}
       *vicp = victim->cache_next;	/* remote from cache */
@@ -497,13 +497,13 @@  cache_set (SVCXPRT *xprt, u_long replylen)
       victim = ALLOC (struct cache_node, 1);
       if (victim == NULL)
 	{
-	  CACHE_PERROR (_("cache_set: victim alloc failed"));
+	  CACHE_PERROR ("cache_set: victim alloc failed");
 	  return;
 	}
       newbuf = mem_alloc (su->su_iosz);
       if (newbuf == NULL)
 	{
-	  CACHE_PERROR (_("cache_set: could not allocate new rpc_buffer"));
+	  CACHE_PERROR ("cache_set: could not allocate new rpc_buffer");
 	  return;
 	}
     }
diff --git a/libc/inet/rpc/svc_unix.c b/libc/inet/rpc/svc_unix.c
index 7a09af6..8cc982a 100644
--- a/libc/inet/rpc/svc_unix.c
+++ b/libc/inet/rpc/svc_unix.c
@@ -142,7 +142,7 @@  svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path)
     {
       if ((sock = socket (AF_UNIX, SOCK_STREAM, 0)) < 0)
 	{
-	  perror (_("svc_unix.c - AF_UNIX socket creation problem"));
+	  perror ("svc_unix.c - AF_UNIX socket creation problem");
 	  return (SVCXPRT *) NULL;
 	}
       madesock = TRUE;
@@ -158,7 +158,7 @@  svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path)
   if (getsockname (sock, (struct sockaddr *) &addr, &len) != 0
       || listen (sock, 2) != 0)
     {
-      perror (_("svc_unix.c - cannot getsockname or listen"));
+      perror ("svc_unix.c - cannot getsockname or listen");
       if (madesock)
 	close (sock);
       return (SVCXPRT *) NULL;
@@ -168,7 +168,7 @@  svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path)
   xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
   if (r == NULL || xprt == NULL)
     {
-      fputs (_("svcunix_create: out of memory\n"), stderr);
+      fputs ("svcunix_create: out of memory\n", stderr);
       mem_free (r, sizeof (*r));
       mem_free (xprt, sizeof (SVCXPRT));
       return NULL;
@@ -208,7 +208,7 @@  makefd_xprt (int fd, u_int sendsize, u_int recvsize)
   cd = (struct unix_conn *) mem_alloc (sizeof (struct unix_conn));
   if (xprt == (SVCXPRT *) NULL || cd == (struct unix_conn *) NULL)
     {
-      (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
+      (void) fputs ("svc_unix: makefd_xprt: out of memory\n", stderr);
       mem_free (xprt, sizeof (SVCXPRT));
       mem_free (cd, sizeof (struct unix_conn));
       return NULL;
diff --git a/libc/inet/rpc/xdr.c b/libc/inet/rpc/xdr.c
index 57d7dbd..1bca297 100644
--- a/libc/inet/rpc/xdr.c
+++ b/libc/inet/rpc/xdr.c
@@ -44,7 +44,6 @@  static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
 #include <stdio.h>
 #include <limits.h>
 #include <string.h>
-#include <libintl.h>
 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
@@ -557,7 +556,7 @@  xdr_bytes (XDR *xdrs, char **cpp, u_int *sizep, u_int maxsize)
 	}
       if (sp == NULL)
 	{
-	  (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
+	  (void) fputs ("xdr_bytes: out of memory\n", stderr);
 	  return FALSE;
 	}
       /* fall into ... */
@@ -694,7 +693,7 @@  xdr_string (XDR *xdrs, char **cpp, u_int maxsize)
 	*cpp = sp = (char *) mem_alloc (nodesize);
       if (sp == NULL)
 	{
-	  (void) fputs (_("xdr_string: out of memory\n"), stderr);
+	  (void) fputs ("xdr_string: out of memory\n", stderr);
 	  return FALSE;
 	}
       sp[size] = 0;
diff --git a/libc/inet/rpc/xdr_array.c b/libc/inet/rpc/xdr_array.c
index 25428aa..1bce142 100644
--- a/libc/inet/rpc/xdr_array.c
+++ b/libc/inet/rpc/xdr_array.c
@@ -45,7 +45,6 @@  static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 #include <limits.h>
-#include <libintl.h>
 
 #define LASTUNSIGNED	((u_int)0-1)
 
@@ -94,7 +93,7 @@  xdr_array (XDR *xdrs, caddr_t *addrp, u_int *sizep, u_int maxsize, u_int elsize,
 	*addrp = target = mem_alloc (nodesize);
 	if (target == NULL)
 	  {
-	    (void) fputs (_("xdr_array: out of memory\n"), stderr);
+	    (void) fputs ("xdr_array: out of memory\n", stderr);
 	    return FALSE;
 	  }
 	memset (target, 0, nodesize);
diff --git a/libc/inet/rpc/xdr_rec.c b/libc/inet/rpc/xdr_rec.c
index 3ad7d72..c17bfa1 100644
--- a/libc/inet/rpc/xdr_rec.c
+++ b/libc/inet/rpc/xdr_rec.c
@@ -154,7 +154,7 @@  xdrrec_create (XDR *xdrs, u_int sendsize,
 
   if (rstrm == NULL || buf == NULL)
     {
-      (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
+      (void) fputs ("xdrrec_create: out of memory\n", stderr);
       mem_free (rstrm, sizeof (RECSTREAM));
       mem_free (buf, sendsize + recvsize + BYTES_PER_XDR_UNIT);
       /*
diff --git a/libc/inet/rpc/xdr_reference.c b/libc/inet/rpc/xdr_reference.c
index 8576588..00feb8a 100644
--- a/libc/inet/rpc/xdr_reference.c
+++ b/libc/inet/rpc/xdr_reference.c
@@ -44,7 +44,6 @@  static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";
 #include <string.h>
 #include <rpc/types.h>
 #include <rpc/xdr.h>
-#include <libintl.h>
 
 #define LASTUNSIGNED	((u_int)0-1)
 
@@ -73,7 +72,7 @@  xdr_reference (XDR *xdrs, caddr_t *pp, u_int size, xdrproc_t proc)
 	*pp = loc = (caddr_t) mem_alloc (size);
 	if (loc == NULL)
 	  {
-	    (void) fputs (_("xdr_reference: out of memory\n"), stderr);
+	    (void) fputs ("xdr_reference: out of memory\n", stderr);
 	    return FALSE;
 	  }
 	memset (loc, 0, (int) size);
diff --git a/libc/misc/dirent/Makefile.in b/libc/misc/dirent/Makefile.in
index 5cae8d4..90cdc25 100644
--- a/libc/misc/dirent/Makefile.in
+++ b/libc/misc/dirent/Makefile.in
@@ -11,8 +11,8 @@  CSRC   := alphasort.c readdir.c scandir.c versionsort.c
 CSRC_R := readdir_r.c
 CSRC-y := closedir.c dirfd.c opendir.c rewinddir.c seekdir.c telldir.c $(CSRC) \
 		  $(CSRC_R)
-CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC))
-CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %_r.c,%64_r.c,$(CSRC_R))
+CSRC-y += $(patsubst %.c,%64.c,$(CSRC))
+CSRC-y += $(patsubst %_r.c,%64_r.c,$(CSRC_R))
 
 MISC_DIRENT_DIR := $(top_srcdir)libc/misc/dirent
 MISC_DIRENT_OUT := $(top_builddir)libc/misc/dirent
diff --git a/libc/misc/dirent/alphasort.c b/libc/misc/dirent/alphasort.c
index 67b3b78..de9bf4d 100644
--- a/libc/misc/dirent/alphasort.c
+++ b/libc/misc/dirent/alphasort.c
@@ -12,6 +12,6 @@  int alphasort(const struct dirent **a, const struct dirent **b)
 {
 	return strcoll((*a)->d_name, (*b)->d_name);
 }
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(alphasort,alphasort64)
 #endif
diff --git a/libc/misc/dirent/readdir.c b/libc/misc/dirent/readdir.c
index 7517106..52fd26b 100644
--- a/libc/misc/dirent/readdir.c
+++ b/libc/misc/dirent/readdir.c
@@ -56,7 +56,7 @@  all_done:
 	return de;
 }
 libc_hidden_def(__READDIR)
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(readdir,readdir64)
 libc_hidden_def(readdir64)
 #endif
diff --git a/libc/misc/dirent/readdir_r.c b/libc/misc/dirent/readdir_r.c
index 5beebfe..04feac9 100644
--- a/libc/misc/dirent/readdir_r.c
+++ b/libc/misc/dirent/readdir_r.c
@@ -67,7 +67,7 @@  all_done:
 	return((de != NULL)? 0 : ret);
 }
 libc_hidden_def(__READDIR_R)
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(readdir_r,readdir64_r)
 libc_hidden_def(readdir64_r)
 #endif
diff --git a/libc/misc/dirent/scandir.c b/libc/misc/dirent/scandir.c
index c036ce5..1f6c1ec 100644
--- a/libc/misc/dirent/scandir.c
+++ b/libc/misc/dirent/scandir.c
@@ -97,6 +97,6 @@  int __SCANDIR(const char *dir, __DIRENT_TYPE ***namelist,
     *namelist = names;
     return pos;
 }
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(scandir,scandir64)
 #endif
diff --git a/libc/misc/dirent/versionsort.c b/libc/misc/dirent/versionsort.c
index 8e56ec5..8129f78 100644
--- a/libc/misc/dirent/versionsort.c
+++ b/libc/misc/dirent/versionsort.c
@@ -12,6 +12,6 @@  int versionsort(const struct dirent **a, const struct dirent **b)
 {
 	return strverscmp((*a)->d_name, (*b)->d_name);
 }
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(versionsort,versionsort64)
 #endif
diff --git a/libc/misc/file/Makefile.in b/libc/misc/file/Makefile.in
index b94efa6..a19ac57 100644
--- a/libc/misc/file/Makefile.in
+++ b/libc/misc/file/Makefile.in
@@ -13,12 +13,12 @@  MISC_FILE_OUT := $(top_builddir)libc/misc/file
 CSRC-y := $(wildcard $(MISC_FILE_DIR)/*.c)
 CSRC_LFS := $(wildcard $(MISC_FILE_DIR)/*64.c)
 CSRC-y := $(filter-out $(CSRC_LFS),$(CSRC-y))
-CSRC-$(UCLIBC_HAS_LFS) += $(CSRC_LFS)
+CSRC-y += $(CSRC_LFS)
 
 MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(CSRC-y))
 libc-y += $(MISC_FILE_OBJ)
 
-libc-nomulti-$(UCLIBC_HAS_LFS) += $(MISC_FILE_OUT)/lockf64.o
+libc-nomulti-y += $(MISC_FILE_OUT)/lockf64.o
 
 objclean-y += CLEAN_libc/misc/file
 
diff --git a/libc/misc/file/isfdtype.c b/libc/misc/file/isfdtype.c
index 4d9199b..27fb01c 100644
--- a/libc/misc/file/isfdtype.c
+++ b/libc/misc/file/isfdtype.c
@@ -20,12 +20,7 @@ 
 #include <sys/stat.h>
 #include <sys/socket.h>
 #include <sys/types.h>
-#ifdef __UCLIBC_HAS_LFS__
-# include <_lfs_64.h>
-#else
-# define stat64 stat
-# define fstat64 fstat
-#endif
+#include <_lfs_64.h>
 
 int
 isfdtype (int fildes, int fdtype)
diff --git a/libc/misc/fts/fts.c b/libc/misc/fts/fts.c
index 7dc6768..d5ebcbc 100644
--- a/libc/misc/fts/fts.c
+++ b/libc/misc/fts/fts.c
@@ -36,14 +36,7 @@ 
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-
-#ifdef __UCLIBC_HAS_LFS__
-/* this is wrong, either you include this header as first, or not at all */
-# include <_lfs_64.h>
-#else
-# define stat64 stat
-# define fstat64 fstat
-#endif
+#include <_lfs_64.h>
 
 /* Largest alignment size needed, minus one.
    Usually long double is the worst case.  */
diff --git a/libc/misc/ftw/Makefile.in b/libc/misc/ftw/Makefile.in
index 084a730..939932b 100644
--- a/libc/misc/ftw/Makefile.in
+++ b/libc/misc/ftw/Makefile.in
@@ -7,8 +7,7 @@ 
 
 subdirs += libc/misc/ftw
 
-CSRC-y := ftw.c
-CSRC-$(UCLIBC_HAS_LFS) += ftw64.c
+CSRC-y := ftw.c ftw64.c
 
 MISC_FTW_DIR := $(top_srcdir)libc/misc/ftw
 MISC_FTW_OUT := $(top_builddir)libc/misc/ftw
diff --git a/libc/misc/ftw/ftw.c b/libc/misc/ftw/ftw.c
index c6241ed..0c6e617 100644
--- a/libc/misc/ftw/ftw.c
+++ b/libc/misc/ftw/ftw.c
@@ -111,11 +111,7 @@  extern char *xgetcwd (void);
 # undef __opendir
 # define __opendir opendir
 # undef __readdir64
-# ifndef __UCLIBC_HAS_LFS__
-# define __readdir64 readdir
-# else
 # define __readdir64 readdir64
-# endif
 # undef __stpcpy
 # define __stpcpy stpcpy
 # undef __tdestroy
@@ -126,10 +122,6 @@  extern char *xgetcwd (void);
 # define __tsearch tsearch
 # undef internal_function
 # define internal_function /* empty */
-# ifndef __UCLIBC_HAS_LFS__
-# undef dirent64
-# define dirent64 dirent
-# endif
 # undef MAX
 # define MAX(a, b) ((a) > (b) ? (a) : (b))
 #endif
diff --git a/libc/misc/glob/Makefile.in b/libc/misc/glob/Makefile.in
index c89d2b0..a3f9520 100644
--- a/libc/misc/glob/Makefile.in
+++ b/libc/misc/glob/Makefile.in
@@ -9,7 +9,7 @@  subdirs += libc/misc/glob
 
 VARIANT := $(if $(UCLIBC_HAS_GNU_GLOB),,-susv3)
 CSRC-y := glob$(VARIANT).c
-CSRC-$(UCLIBC_HAS_LFS) += glob64$(VARIANT).c
+CSRC-y += glob64$(VARIANT).c
 
 MISC_GLOB_DIR := $(top_srcdir)libc/misc/glob
 MISC_GLOB_OUT := $(top_builddir)libc/misc/glob
diff --git a/libc/misc/glob/glob-susv3.c b/libc/misc/glob/glob-susv3.c
index 59b4d8e..bdece2a 100644
--- a/libc/misc/glob/glob-susv3.c
+++ b/libc/misc/glob/glob-susv3.c
@@ -6,9 +6,7 @@ 
 
 #include <features.h>
 
-#ifdef __UCLIBC_HAS_LFS__
-# define BUILD_GLOB64
-#endif
+#define BUILD_GLOB64
 
 #include <glob.h>
 #include <fnmatch.h>
@@ -39,14 +37,10 @@  extern int __glob_sort(const void *a, const void *b) attribute_hidden;
 extern int __glob_match_in_dir(const char *d, const char *p, int flags, int (*errfunc)(const char *path, int err), struct match **tail) attribute_hidden;
 #endif
 
-#ifdef __UCLIBC_HAS_LFS__
 # define stat stat64
 # define readdir_r readdir64_r
 # define dirent dirent64
 # define struct_stat struct stat64
-#else
-# define struct_stat struct stat
-#endif
 
 /* keep only one copy of these */
 #ifndef __GLOB64
diff --git a/libc/misc/glob/glob.c b/libc/misc/glob/glob.c
index 923c035..c4ecf67 100644
--- a/libc/misc/glob/glob.c
+++ b/libc/misc/glob/glob.c
@@ -49,11 +49,7 @@ 
 #define globfree(pglob) globfree64 (pglob)
 #else
 #define __readdir readdir
-#ifdef __UCLIBC_HAS_LFS__
 #define __readdir64 readdir64
-#else
-#define __readdir64 readdir
-#endif
 #define struct_stat64          struct stat
 #define __stat64(fname, buf)   stat (fname, buf)
 #endif
@@ -341,7 +337,7 @@  static int glob_in_dir (const char *pattern, const char *directory, int flags,
 		{
 		  const char *name;
 		  size_t len;
-#if defined __UCLIBC_HAS_LFS__ && !defined COMPILE_GLOB64
+#if !defined COMPILE_GLOB64
 		  struct dirent64 *d;
 		  union
 		    {
diff --git a/libc/misc/gnu/obstack.c b/libc/misc/gnu/obstack.c
index 6acc567..a5c6468 100644
--- a/libc/misc/gnu/obstack.c
+++ b/libc/misc/gnu/obstack.c
@@ -403,9 +403,7 @@  _obstack_memory_used (struct obstack *h)
 }
 
 /* Define the error handler.  */
-# ifdef _LIBC
-#  include <libintl.h>
-# else
+# ifndef _LIBC
 #  include "gettext.h"
 # endif
 # ifndef _
diff --git a/libc/misc/internals/tempname.c b/libc/misc/internals/tempname.c
index 7654eb4..ca87b0c 100644
--- a/libc/misc/internals/tempname.c
+++ b/libc/misc/internals/tempname.c
@@ -223,11 +223,9 @@  int attribute_hidden __gen_tempname (char *tmpl, int kind, int flags,
 	    case __GT_FILE:
 		fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | flags, mode);
 		break;
-#if defined __UCLIBC_HAS_LFS__
 	    case __GT_BIGFILE:
 		fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL | flags, mode);
 		break;
-#endif
 	    case __GT_DIR:
 		fd = mkdir (tmpl, mode);
 		break;
diff --git a/libc/misc/regex/regex_old.c b/libc/misc/regex/regex_old.c
index fa5de7a..9d8182e 100644
--- a/libc/misc/regex/regex_old.c
+++ b/libc/misc/regex/regex_old.c
@@ -76,14 +76,7 @@ 
 #  include <locale/coll-lookup.h>
 # endif
 
-/* This is for other GNU distributions with internationalized messages.  */
-# if defined HAVE_LIBINTL_H || defined _LIBC
-#  include <libintl.h>
-#  ifdef _LIBC
-#   undef gettext
-#   define gettext(msgid) __dcgettext ("libc", msgid, LC_MESSAGES)
-#  endif
-# else
+# ifndef gettext
 #  define gettext(msgid) (msgid)
 # endif
 
diff --git a/libc/misc/statfs/Makefile.in b/libc/misc/statfs/Makefile.in
index d70ab8f..322bc90 100644
--- a/libc/misc/statfs/Makefile.in
+++ b/libc/misc/statfs/Makefile.in
@@ -8,9 +8,8 @@ 
 subdirs += libc/misc/statfs
 
 CSRC-y := statvfs.c fstatvfs.c
-CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC-y))
-CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_LINUX_SPECIFIC)),y) += \
-	fstatfs64.c statfs64.c
+CSRC-y += $(patsubst %.c,%64.c,$(CSRC-y))
+CSRC-$(UCLIBC_LINUX_SPECIFIC) += fstatfs64.c statfs64.c
 
 MISC_STATFS_DIR := $(top_srcdir)libc/misc/statfs
 MISC_STATFS_OUT := $(top_builddir)libc/misc/statfs
@@ -20,7 +19,7 @@  MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC-y))
 
 libc-y += $(MISC_STATFS_OBJ)
 
-libc-nomulti-$(UCLIBC_HAS_LFS) += $(MISC_STATFS_OUT)/statvfs64.o $(MISC_STATFS_OUT)/fstatvfs64.o
+libc-nomulti-y += $(MISC_STATFS_OUT)/statvfs64.o $(MISC_STATFS_OUT)/fstatvfs64.o
 
 objclean-y += CLEAN_libc/misc/statfs
 
diff --git a/libc/misc/sysvipc/ftok.c b/libc/misc/sysvipc/ftok.c
index 1e75499..c8d5e58 100644
--- a/libc/misc/sysvipc/ftok.c
+++ b/libc/misc/sysvipc/ftok.c
@@ -18,11 +18,7 @@ 
 
 #include <sys/ipc.h>
 #include <sys/stat.h>
-#ifdef __UCLIBC_HAS_LFS__
-# include <_lfs_64.h>
-#else
-# define stat64 stat
-#endif
+#include <_lfs_64.h>
 
 key_t ftok (const char *pathname, int proj_id)
 {
diff --git a/libc/stdio/Makefile.in b/libc/stdio/Makefile.in
index 7d697bf..b100c78 100644
--- a/libc/stdio/Makefile.in
+++ b/libc/stdio/Makefile.in
@@ -19,8 +19,7 @@  CSRC-y := \
 	printf.c vprintf.c vsprintf.c fprintf.c snprintf.c dprintf.c \
 	asprintf.c sprintf.c vasprintf.c vdprintf.c vsnprintf.c \
 	tmpfile.c popen.c ctermid.c
-CSRC-$(UCLIBC_HAS_LFS) += fgetpos64.c fopen64.c freopen64.c \
-	fseeko64.c fsetpos64.c ftello64.c
+CSRC-y += fgetpos64.c fopen64.c freopen64.c fseeko64.c fsetpos64.c ftello64.c
 CSRC-$(UCLIBC_SUSV4_LEGACY) += tmpnam.c tmpnam_r.c tempnam.c
 
 # internal support functions
diff --git a/libc/stdio/_cs_funcs.c b/libc/stdio/_cs_funcs.c
index be416a4..7dfb120 100644
--- a/libc/stdio/_cs_funcs.c
+++ b/libc/stdio/_cs_funcs.c
@@ -13,11 +13,7 @@  int attribute_hidden __stdio_seek(FILE *stream, register __offmax_t *pos, int wh
 {
 	__offmax_t res;
 
-#ifdef __UCLIBC_HAS_LFS__
 	res = lseek64(stream->__filedes, *pos, whence);
-#else
-	res = lseek(stream->__filedes, *pos, whence);
-#endif
 
 	return (res >= 0) ? ((*pos = res), 0) : ((int) res);
 }
diff --git a/libc/stdio/_stdio.h b/libc/stdio/_stdio.h
index 727e331..974327d 100644
--- a/libc/stdio/_stdio.h
+++ b/libc/stdio/_stdio.h
@@ -297,11 +297,7 @@  static inline int __CLOSE(FILE *stream)
 	free((S)); } while (0)
 
 
-#ifdef __UCLIBC_HAS_LFS__
 #define __STDIO_WHEN_LFS(E) E
-#else
-#define __STDIO_WHEN_LFS(E) ((void)0)
-#endif
 
 /**********************************************************************/
 /* The following return 0 on success. */
diff --git a/libc/stdio/fseeko.c b/libc/stdio/fseeko.c
index 16b0c04..781032a 100644
--- a/libc/stdio/fseeko.c
+++ b/libc/stdio/fseeko.c
@@ -18,7 +18,7 @@ 
 
 int FSEEK(register FILE *stream, OFFSET_TYPE offset, int whence)
 {
-#if defined(__UCLIBC_HAS_LFS__) && !defined(__DO_LARGEFILE)
+#if !defined(__DO_LARGEFILE)
 
 	return fseeko64(stream, offset, whence);
 
diff --git a/libc/stdio/ftello.c b/libc/stdio/ftello.c
index 219b699..f19735c 100644
--- a/libc/stdio/ftello.c
+++ b/libc/stdio/ftello.c
@@ -14,7 +14,7 @@ 
 
 OFFSET_TYPE FTELL(register FILE *stream)
 {
-#if defined(__UCLIBC_HAS_LFS__) && !defined(__DO_LARGEFILE)
+#if !defined(__DO_LARGEFILE)
 
 	__offmax_t pos = ftello64(stream);
 
diff --git a/libc/stdio/tmpfile.c b/libc/stdio/tmpfile.c
index 3654f9e..c00ae43 100644
--- a/libc/stdio/tmpfile.c
+++ b/libc/stdio/tmpfile.c
@@ -48,6 +48,4 @@  FILE * tmpfile (void)
 
     return f;
 }
-#ifdef __UCLIBC_HAS_LFS__
 strong_alias(tmpfile,tmpfile64)
-#endif
diff --git a/libc/stdlib/Makefile.in b/libc/stdlib/Makefile.in
index ae74995..f6e471a 100644
--- a/libc/stdlib/Makefile.in
+++ b/libc/stdlib/Makefile.in
@@ -22,7 +22,7 @@  CSRC-$(UCLIBC_SUSV2_LEGACY) += valloc.c
 CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_memalign.c
 CSRC-$(UCLIBC_HAS_PTY) += grantpt.c unlockpt.c ptsname.c
 CSRC-$(UCLIBC_HAS_ARC4RANDOM) += arc4random.c
-CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c mkostemp64.c mkstemps64.c mkostemps64.c
+CSRC-y += mkstemp64.c mkostemp64.c mkstemps64.c mkostemps64.c
 CSRC-$(UCLIBC_HAS_FLOATS) += drand48.c drand48_r.c erand48.c erand48_r.c
 CSRC-$(if $(findstring yy,$(UCLIBC_HAS_FLOATS)$(UCLIBC_SUSV3_LEGACY)),y) += \
 	gcvt.c
diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch
index 78f7533..f9ac88b 100644
--- a/libc/sysdeps/linux/arm/Makefile.arch
+++ b/libc/sysdeps/linux/arm/Makefile.arch
@@ -10,9 +10,8 @@  CSRC-y := brk.c ioperm.c iopl.c __syscall_error.c sigaction.c
 SSRC-y := \
 	__longjmp.S setjmp.S bsd-setjmp.S \
 	bsd-_setjmp.S sigrestorer.S \
-	vfork.S clone.S
+	vfork.S clone.S mmap64.S
 
-SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
 libc-nonshared-$(UCLIBC_HAS_THREADS_NATIVE) += $(ARCH_OUT)/libc-aeabi_read_tp.os
 libc-static-$(UCLIBC_HAS_THREADS_NATIVE) += $(ARCH_OUT)/libc-aeabi_read_tp.o
 CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
diff --git a/libc/sysdeps/linux/common-generic/bits/kernel_stat.h b/libc/sysdeps/linux/common-generic/bits/kernel_stat.h
index 843a1d1..7a97bb4 100644
--- a/libc/sysdeps/linux/common-generic/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/common-generic/bits/kernel_stat.h
@@ -18,11 +18,7 @@ 
  * However that requires more #ifndef in relevant wrappers,
  * further uglifying them
  */
-#if defined __UCLIBC_HAS_LFS__
-#define kernel_stat64	stat64
-#else
 #define kernel_stat64	stat
-#endif
 
 #endif	/*  _BITS_STAT_STRUCT_H */
 
diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
index 3855e85..257ed72 100644
--- a/libc/sysdeps/linux/common/Makefile.in
+++ b/libc/sysdeps/linux/common/Makefile.in
@@ -13,7 +13,7 @@  CSRC-  := ssp-local.c
 
 CSRC_LFS := $(notdir $(wildcard $(COMMON_DIR)/*64.c))
 CSRC-y := $(filter-out llseek.c $(CSRC_LFS),$(CSRC-y))
-CSRC-$(UCLIBC_HAS_LFS) += llseek.c $(CSRC_LFS)
+CSRC-y += llseek.c $(CSRC_LFS)
 CSRC-$(findstring y,$(UCLIBC_HAS_SSP)$(UCLIBC_HAS_FORTIFY)) += ssp.c
 CSRC-$(UCLIBC_LINUX_MODULE_26) += delete_module.c init_module.c
 # we need these internally: fstatfs.c statfs.c
@@ -65,8 +65,7 @@  CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
 	uselib.c \
 	vhangup.c \
 	vmsplice.c
-CSRC-$(if $(findstring yy,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_LFS)),y) += \
-	sendfile64.c
+CSRC-$(UCLIBC_LINUX_SPECIFIC) += sendfile64.c
 # posix_fallocate() needs __libc_fallocate() from fallocate.c
 # posix_fallocate64() needs __libc_fallocate64() from fallocate64.c
 CSRC-$(if $(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_ADVANCED_REALTIME),y,) += \
diff --git a/libc/sysdeps/linux/common/__syscall_fcntl.c b/libc/sysdeps/linux/common/__syscall_fcntl.c
index 86cc60d..909b0a0 100644
--- a/libc/sysdeps/linux/common/__syscall_fcntl.c
+++ b/libc/sysdeps/linux/common/__syscall_fcntl.c
@@ -18,7 +18,7 @@  int __NC(fcntl)(int fd, int cmd, long arg)
 {
 #if __WORDSIZE == 32
 	if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
-# if (defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64) || !defined __NR_fcntl
+# if defined __NR_fcntl64 || !defined __NR_fcntl
 		return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
 # else
 		__set_errno(ENOSYS);
@@ -66,7 +66,7 @@  int fcntl(int fd, int cmd, ...)
 }
 lt_strong_alias(fcntl)
 lt_libc_hidden(fcntl)
-#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fcntl64 && __WORDSIZE == 32
+#if !defined __NR_fcntl64 && __WORDSIZE == 32
 strong_alias_untyped(fcntl,fcntl64)
 lt_strong_alias(fcntl64)
 lt_libc_hidden(fcntl64)
diff --git a/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h b/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h
index 0ae0da1..6ec7da3 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h
+++ b/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h
@@ -110,13 +110,6 @@ 
 # undef _POSIX_MEMORY_PROTECTION
 #endif
 
-#ifndef __UCLIBC_HAS_LFS__
-# undef _LFS64_ASYNCHRONOUS_IO
-# undef _LFS_LARGEFILE
-# undef _LFS64_LARGEFILE
-# undef _LFS64_STDIO
-#endif
-
 #ifndef __UCLIBC_HAS_REALTIME__
 # undef _POSIX_SEMAPHORES
 #endif
diff --git a/libc/sysdeps/linux/common/bits/uClibc_stdio.h b/libc/sysdeps/linux/common/bits/uClibc_stdio.h
index efd8a6c..6222ceb 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_stdio.h
+++ b/libc/sysdeps/linux/common/bits/uClibc_stdio.h
@@ -151,7 +151,6 @@  typedef struct {
 #endif
 } __STDIO_fpos_t;
 
-#ifdef __UCLIBC_HAS_LFS__
 typedef struct {
 	__off64_t __pos;
 #ifdef __STDIO_MBSTATE
@@ -161,14 +160,9 @@  typedef struct {
 	int __mblen_pending;
 #endif
 } __STDIO_fpos64_t;
-#endif
 
 /**********************************************************************/
-#ifdef __UCLIBC_HAS_LFS__
 typedef __off64_t __offmax_t;		/* TODO -- rename this? */
-#else
-typedef __off_t __offmax_t;		/* TODO -- rename this? */
-#endif
 
 /**********************************************************************/
 #ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
diff --git a/libc/sysdeps/linux/common/fstat.c b/libc/sysdeps/linux/common/fstat.c
index 696f79e..eae3c80 100644
--- a/libc/sysdeps/linux/common/fstat.c
+++ b/libc/sysdeps/linux/common/fstat.c
@@ -56,7 +56,7 @@  int fstat(int fd, struct stat *buf)
 }
 libc_hidden_def(fstat)
 
-# if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
+# if ! defined __NR_fstat64
 strong_alias_untyped(fstat,fstat64)
 libc_hidden_def(fstat64)
 # endif
diff --git a/libc/sysdeps/linux/common/ftruncate.c b/libc/sysdeps/linux/common/ftruncate.c
index 96076e4..8637ee8 100644
--- a/libc/sysdeps/linux/common/ftruncate.c
+++ b/libc/sysdeps/linux/common/ftruncate.c
@@ -15,10 +15,10 @@ 
 # include <stdint.h>
 int ftruncate(int fd, __off_t length)
 {
-# if defined __UCLIBC_HAS_LFS__
-	return ftruncate64(fd, length);
-# elif __WORDSIZE == 32
+# if __WORDSIZE == 32
 	return INLINE_SYSCALL(ftruncate64, 3, fd, OFF_HI_LO(length));
+# else
+	return ftruncate64(fd, length);
 # endif
 }
 libc_hidden_def(ftruncate);
diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c
index 8f371eb..6a5389e 100644
--- a/libc/sysdeps/linux/common/getdents.c
+++ b/libc/sysdeps/linux/common/getdents.c
@@ -7,7 +7,7 @@ 
 #include <sys/syscall.h>
 #include <bits/wordsize.h>
 
-#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
+#if !(defined __NR_getdents64 && __WORDSIZE == 64)
 
 #include <dirent.h>
 #include <string.h>
@@ -72,7 +72,7 @@  ssize_t __getdents (int fd, char *buf, size_t nbytes)
 	return retval;
 }
 
-# elif ! defined __UCLIBC_HAS_LFS__ || !defined __NR_getdents64
+# elif !defined __NR_getdents64
 
 #  include <assert.h>
 #  include <stddef.h>
@@ -187,7 +187,7 @@  ssize_t __getdents (int fd, char *buf, size_t nbytes)
 
 # endif
 
-# if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
+# if ! defined __NR_getdents64
 strong_alias(__getdents,__getdents64)
 # endif
 
diff --git a/libc/sysdeps/linux/common/getdents64.c b/libc/sysdeps/linux/common/getdents64.c
index 017fa63..d4bc14b 100644
--- a/libc/sysdeps/linux/common/getdents64.c
+++ b/libc/sysdeps/linux/common/getdents64.c
@@ -91,7 +91,7 @@  ssize_t __getdents64 (int fd, char *buf, size_t nbytes)
     return (char *) dp - buf;
 }
 
-#if __WORDSIZE == 64 || (defined __UCLIBC_HAS_LFS__ && !defined __NR_getdents)
+#if __WORDSIZE == 64 || !defined __NR_getdents
 /* since getdents doesnt give us d_type but getdents64 does, try and
  * use getdents64 as much as possible */
 strong_alias(__getdents64,__getdents)
diff --git a/libc/sysdeps/linux/common/getdirname.c b/libc/sysdeps/linux/common/getdirname.c
index 862559a..7153cd1 100644
--- a/libc/sysdeps/linux/common/getdirname.c
+++ b/libc/sysdeps/linux/common/getdirname.c
@@ -32,21 +32,12 @@  char *
 get_current_dir_name (void)
 {
 	char *pwd;
-#ifdef __UCLIBC_HAS_LFS__
 	struct stat64 dotstat, pwdstat;
-#else
-	struct stat dotstat, pwdstat;
-#endif
 
 	pwd = getenv ("PWD");
 	if (pwd != NULL
-#ifdef __UCLIBC_HAS_LFS__
 		&& stat64 (".", &dotstat) == 0
 		&& stat64 (pwd, &pwdstat) == 0
-#else
-		&& stat (".", &dotstat) == 0
-		&& stat (pwd, &pwdstat) == 0
-#endif
 		&& pwdstat.st_dev == dotstat.st_dev
 		&& pwdstat.st_ino == dotstat.st_ino)
 		/* The PWD value is correct.  Use it.  */
diff --git a/libc/sysdeps/linux/common/getrlimit.c b/libc/sysdeps/linux/common/getrlimit.c
index 3b2ce3b..8091e56 100644
--- a/libc/sysdeps/linux/common/getrlimit.c
+++ b/libc/sysdeps/linux/common/getrlimit.c
@@ -58,6 +58,6 @@  int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
 #endif
 libc_hidden_def(getrlimit)
 
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(getrlimit, getrlimit64)
 #endif
diff --git a/libc/sysdeps/linux/common/lseek.c b/libc/sysdeps/linux/common/lseek.c
index 11a1fbb..cbebbae 100644
--- a/libc/sysdeps/linux/common/lseek.c
+++ b/libc/sysdeps/linux/common/lseek.c
@@ -14,17 +14,16 @@ 
 #ifdef __NR_lseek
 # define __NR___lseek_nocancel __NR_lseek
 _syscall3(off_t, __NC(lseek), int, fd, off_t, offset, int, whence)
-/* Use lseek64 if __NR_lseek is not defined but UCLIBC_HAS_LFS is enabled */
 #elif !defined __NR_lseek && defined __NR_llseek
 #include <endian.h>
 off_t __NC(lseek)(int fd, off_t offset, int whence)
 {
-#if defined __UCLIBC_HAS_LFS__
-	return lseek64(fd, offset, whence);
-#elif __WORDSIZE == 32
+#if __WORDSIZE == 32
 	__off64_t result;
 	__off_t high = 0;
 	return INLINE_SYSCALL(llseek, 5, fd, high, offset, &result, whence) ?: result;
+#else
+	return lseek64(fd, offset, whence);
 #endif
 /* No need to handle __WORDSIZE == 64 as such a kernel won't define __NR_llseek */
 }
@@ -53,7 +52,7 @@  off_t __NC(lseek)(int fd, off_t offset attribute_unused, int whence)
 #endif
 CANCELLABLE_SYSCALL(off_t, lseek, (int fd, off_t offset, int whence), (fd, offset, whence))
 lt_libc_hidden(lseek)
-#if defined __UCLIBC_HAS_LFS__ && (__WORDSIZE == 64 || (!defined __NR__llseek && !defined __NR_llseek))
+#if __WORDSIZE == 64 || (!defined __NR__llseek && !defined __NR_llseek)
 strong_alias_untyped(__NC(lseek),__NC(lseek64))
 strong_alias_untyped(lseek,lseek64)
 lt_strong_alias(lseek64)
diff --git a/libc/sysdeps/linux/common/lstat.c b/libc/sysdeps/linux/common/lstat.c
index 2fa3de1..143cc19 100644
--- a/libc/sysdeps/linux/common/lstat.c
+++ b/libc/sysdeps/linux/common/lstat.c
@@ -49,8 +49,7 @@  int lstat(const char *file_name, struct stat *buf)
 }
 libc_hidden_def(lstat)
 
-# if ! defined __NR_fstatat64 && ! defined __NR_lstat64 \
-	&& defined __UCLIBC_HAS_LFS__
+# if ! defined __NR_fstatat64 && ! defined __NR_lstat64
 strong_alias_untyped(lstat,lstat64)
 libc_hidden_def(lstat64)
 # endif
diff --git a/libc/sysdeps/linux/common/posix_fadvise.c b/libc/sysdeps/linux/common/posix_fadvise.c
index 74d8409..c4ebeaa 100644
--- a/libc/sysdeps/linux/common/posix_fadvise.c
+++ b/libc/sysdeps/linux/common/posix_fadvise.c
@@ -22,7 +22,7 @@ 
 # include <endian.h>
 # include <bits/wordsize.h>
 
-# if defined(__NR_fadvise64_64) && defined(__UCLIBC_HAS_LFS__)
+# if defined(__NR_fadvise64_64)
 #include <_lfs_64.h>
 
 int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice);
@@ -73,7 +73,7 @@  int posix_fadvise(int fd, off_t offset, off_t len, int advice)
 		return INTERNAL_SYSCALL_ERRNO (ret, err);
 	return 0;
 }
-# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || __WORDSIZE == 64)
+# if !defined __NR_fadvise64_64 || __WORDSIZE == 64
 strong_alias(posix_fadvise,posix_fadvise64)
 # endif
 #endif
diff --git a/libc/sysdeps/linux/common/posix_fallocate.c b/libc/sysdeps/linux/common/posix_fallocate.c
index 2316cfd..0f1632f 100644
--- a/libc/sysdeps/linux/common/posix_fallocate.c
+++ b/libc/sysdeps/linux/common/posix_fallocate.c
@@ -22,7 +22,7 @@  int posix_fallocate(int fd, __off_t offset, __off_t len)
 		return errno;
 	return 0;
 }
-# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+# if __WORDSIZE == 64
 strong_alias(posix_fallocate,posix_fallocate64)
 # endif
 #endif
diff --git a/libc/sysdeps/linux/common/posix_madvise.c b/libc/sysdeps/linux/common/posix_madvise.c
index 2f95bcb..541dabe 100644
--- a/libc/sysdeps/linux/common/posix_madvise.c
+++ b/libc/sysdeps/linux/common/posix_madvise.c
@@ -4,6 +4,7 @@ 
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
+#ifdef __ARCH_USE_MMU__
 #if defined __NR_madvise && defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
 int posix_madvise(void *addr, size_t len, int advice)
 {
@@ -23,3 +24,4 @@  int posix_madvise(void *addr, size_t len, int advice)
 	return INTERNAL_SYSCALL_ERRNO (result, err);
 }
 #endif
+#endif
diff --git a/libc/sysdeps/linux/common/pread_write.c b/libc/sysdeps/linux/common/pread_write.c
index d0abd90..cb2e325 100644
--- a/libc/sysdeps/linux/common/pread_write.c
+++ b/libc/sysdeps/linux/common/pread_write.c
@@ -86,8 +86,7 @@  static ssize_t __NC(pwrite)(int fd, const void *buf, size_t count, off_t offset)
 CANCELLABLE_SYSCALL(ssize_t, pwrite, (int fd, const void *buf, size_t count, off_t offset),
 		    (fd, buf, count, offset))
 
-#ifdef __UCLIBC_HAS_LFS__
-# if __WORDSIZE == 32
+#if __WORDSIZE == 32
 static ssize_t __NC(pread64)(int fd, void *buf, size_t count, off64_t offset)
 {
 	return MY_PREAD64(fd, buf, count, offset);
@@ -101,15 +100,14 @@  static ssize_t __NC(pwrite64)(int fd, const void *buf, size_t count, off64_t off
 }
 CANCELLABLE_SYSCALL(ssize_t, pwrite64, (int fd, const void *buf, size_t count, off64_t offset),
 		    (fd, buf, count, offset))
-# else
-#  ifdef __UCLIBC_HAS_LINUXTHREADS__
+#else
+# ifdef __UCLIBC_HAS_LINUXTHREADS__
 weak_alias(pread,pread64)
 weak_alias(pwrite,pwrite64)
 lt_strong_alias(pread64)
 lt_strong_alias(pwrite64)
-#  else
+# else
 strong_alias_untyped(pread,pread64)
 strong_alias_untyped(pwrite,pwrite64)
-#  endif
 # endif
 #endif
diff --git a/libc/sysdeps/linux/common/readahead.c b/libc/sysdeps/linux/common/readahead.c
index bda0de2..f45be75 100644
--- a/libc/sysdeps/linux/common/readahead.c
+++ b/libc/sysdeps/linux/common/readahead.c
@@ -18,7 +18,7 @@ 
 
 #include <sys/syscall.h>
 
-#if defined __NR_readahead && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
+#if defined __NR_readahead && defined __USE_GNU
 
 # include <fcntl.h>
 # include <bits/wordsize.h>
diff --git a/libc/sysdeps/linux/common/sendfile.c b/libc/sysdeps/linux/common/sendfile.c
index 2f48871..cca80ab 100644
--- a/libc/sysdeps/linux/common/sendfile.c
+++ b/libc/sysdeps/linux/common/sendfile.c
@@ -15,7 +15,7 @@ 
 #if defined __NR_sendfile
 _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset,
 	  size_t, count)
-# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_sendfile64 || __WORDSIZE == 64)
+# if !defined __NR_sendfile64 || __WORDSIZE == 64
 libc_hidden_def(sendfile64)
 strong_alias_untyped(sendfile,sendfile64)
 # endif
diff --git a/libc/sysdeps/linux/common/setrlimit.c b/libc/sysdeps/linux/common/setrlimit.c
index d96700a..cc4f671 100644
--- a/libc/sysdeps/linux/common/setrlimit.c
+++ b/libc/sysdeps/linux/common/setrlimit.c
@@ -63,6 +63,6 @@  int setrlimit(__rlimit_resource_t resource, const struct rlimit *rlimits)
 #endif
 libc_hidden_def(setrlimit)
 
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+#if __WORDSIZE == 64
 strong_alias_untyped(setrlimit, setrlimit64)
 #endif
diff --git a/libc/sysdeps/linux/common/splice.c b/libc/sysdeps/linux/common/splice.c
index 4a32c54..edf9314 100644
--- a/libc/sysdeps/linux/common/splice.c
+++ b/libc/sysdeps/linux/common/splice.c
@@ -9,7 +9,7 @@ 
 
 #include <sys/syscall.h>
 
-#if defined __NR_splice && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
+#if defined __NR_splice && defined __USE_GNU
 # include <fcntl.h>
 
 _syscall6(ssize_t, splice, int, __fdin, off64_t *, __offin, int, __fdout,
diff --git a/libc/sysdeps/linux/common/stat.c b/libc/sysdeps/linux/common/stat.c
index c7e2138..b3c2a19 100644
--- a/libc/sysdeps/linux/common/stat.c
+++ b/libc/sysdeps/linux/common/stat.c
@@ -51,8 +51,7 @@  int stat(const char *file_name, struct stat *buf)
 #endif /* __NR_fstat64 */
 libc_hidden_def(stat)
 
-#if ! defined __NR_stat64 && ! defined __NR_fstatat64 && \
-	defined __UCLIBC_HAS_LFS__
+#if ! defined __NR_stat64 && ! defined __NR_fstatat64
 strong_alias_untyped(stat,stat64)
 libc_hidden_def(stat64)
 #endif
diff --git a/libc/sysdeps/linux/common/stat64.c b/libc/sysdeps/linux/common/stat64.c
index cb3a0e1..736125f 100644
--- a/libc/sysdeps/linux/common/stat64.c
+++ b/libc/sysdeps/linux/common/stat64.c
@@ -11,11 +11,9 @@ 
 #include <sys/syscall.h>
 #include <sys/stat.h>
 
-#if defined __UCLIBC_HAS_LFS__
-
-# if defined __NR_fstatat64 && !defined __NR_stat64
-# include <fcntl.h>
-# include <unistd.h>
+#if defined __NR_fstatat64 && !defined __NR_stat64
+#include <fcntl.h>
+#include <unistd.h>
 
 int stat64(const char *file_name, struct stat64 *buf)
 {
@@ -42,6 +40,4 @@  int stat64(const char *file_name, struct stat64 *buf)
 	return result;
 }
 libc_hidden_def(stat64)
-# endif
-
-#endif /* __UCLIBC_HAS_LFS__ */
+#endif
diff --git a/libc/sysdeps/linux/common/stubs.c b/libc/sysdeps/linux/common/stubs.c
index b80b54b..e7e81da 100644
--- a/libc/sysdeps/linux/common/stubs.c
+++ b/libc/sysdeps/linux/common/stubs.c
@@ -232,9 +232,7 @@  make_stub(modify_ldt)
 
 #ifndef __NR_openat
 make_stub(openat)
-# ifdef __UCLIBC_HAS_LFS__
 make_stub(openat64)
-# endif
 #endif
 
 #if !defined __NR_personality && defined __UCLIBC_LINUX_SPECIFIC__
@@ -249,11 +247,11 @@  make_stub(pipe2)
 make_stub(pivot_root)
 #endif
 
-#if !defined __NR_fadvise64 && defined __UCLIBC_HAS_LFS__
+#if !defined __NR_fadvise64
 make_ret_stub(posix_fadvise)
 #endif
 
-#if !defined __NR_fadvise64_64 && defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
+#if !defined __NR_fadvise64_64 && __WORDSIZE == 32
 make_ret_stub(posix_fadvise64)
 #endif
 
@@ -322,7 +320,7 @@  make_stub(send)
 make_stub(sendfile)
 #endif
 
-#if !defined __NR_sendfile64 && !defined __NR_sendfile && defined __UCLIBC_LINUX_SPECIFIC__ && defined __UCLIBC_HAS_LFS__
+#if !defined __NR_sendfile64 && !defined __NR_sendfile && defined __UCLIBC_LINUX_SPECIFIC__
 make_stub(sendfile64)
 #endif
 
diff --git a/libc/sysdeps/linux/common/sync_file_range.c b/libc/sysdeps/linux/common/sync_file_range.c
index 52bc9d7..ed03d2f 100644
--- a/libc/sysdeps/linux/common/sync_file_range.c
+++ b/libc/sysdeps/linux/common/sync_file_range.c
@@ -8,7 +8,7 @@ 
  */
 
 #include <sys/syscall.h>
-#if defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
+#if defined __USE_GNU
 # include <bits/wordsize.h>
 # include <endian.h>
 # include <fcntl.h>
diff --git a/libc/sysdeps/linux/common/truncate.c b/libc/sysdeps/linux/common/truncate.c
index 5cbf673..48514c2 100644
--- a/libc/sysdeps/linux/common/truncate.c
+++ b/libc/sysdeps/linux/common/truncate.c
@@ -16,14 +16,14 @@ 
 
 int truncate(const char *path, __off_t length)
 {
-# if defined __UCLIBC_HAS_LFS
-	return truncate64(path, length);
-# elif __WORDSIZE == 32
+# if __WORDSIZE == 32
 #  if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
 	return INLINE_SYSCALL(truncate64, 4, path, 0, OFF_HI_LO(length));
 #  else
 	return INLINE_SYSCALL(truncate64, 3, path, OFF_HI_LO(length));
 #  endif
+# else
+	return truncate64(path, length);
 # endif
 }
 libc_hidden_def(truncate);
diff --git a/libc/sysdeps/linux/common/xstatconv.c b/libc/sysdeps/linux/common/xstatconv.c
index a21579c..d50fbf9 100644
--- a/libc/sysdeps/linux/common/xstatconv.c
+++ b/libc/sysdeps/linux/common/xstatconv.c
@@ -67,8 +67,6 @@  void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf)
 	buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
 }
 
-#ifdef __UCLIBC_HAS_LFS__
-
 void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
 {
 	/* Convert to current kernel version of `struct stat64'. */
@@ -93,5 +91,3 @@  void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
 	buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
 	buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
 }
-
-#endif /* __UCLIBC_HAS_LFS__ */
diff --git a/libc/sysdeps/linux/common/xstatconv.h b/libc/sysdeps/linux/common/xstatconv.h
index cd4d7e9..7c86c2e 100644
--- a/libc/sysdeps/linux/common/xstatconv.h
+++ b/libc/sysdeps/linux/common/xstatconv.h
@@ -28,8 +28,6 @@ 
 #ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
 extern void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) attribute_hidden;
 extern void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) attribute_hidden;
-#if defined __UCLIBC_HAS_LFS__
 extern void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) attribute_hidden;
 #endif
-#endif
 
diff --git a/libc/sysdeps/linux/i386/Makefile.arch b/libc/sysdeps/linux/i386/Makefile.arch
index 581e10a..e1739e1 100644
--- a/libc/sysdeps/linux/i386/Makefile.arch
+++ b/libc/sysdeps/linux/i386/Makefile.arch
@@ -9,9 +9,8 @@  CSRC-y := brk.c __syscall_error.c sigaction.c
 
 SSRC-y := \
 	__longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
-	sync_file_range.S syscall.S mmap.S
+	sync_file_range.S syscall.S mmap.S mmap64.S
 
-SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
-SSRC-$(if $(findstring yy,$(UCLIBC_HAS_ADVANCED_REALTIME)$(UCLIBC_HAS_LFS)),y) += posix_fadvise64.S
+SSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.S
 SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
 SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S swapcontext.S
diff --git a/libc/sysdeps/linux/mips/Makefile.arch b/libc/sysdeps/linux/mips/Makefile.arch
index 844bc2b..10deedc 100644
--- a/libc/sysdeps/linux/mips/Makefile.arch
+++ b/libc/sysdeps/linux/mips/Makefile.arch
@@ -12,8 +12,7 @@  CSRC-y := \
 SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
 
 CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c sysmips.c
-CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise.c
-CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_HAS_ADVANCED_REALTIME)),y) += posix_fadvise64.c
+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise.c posix_fadvise64.c
 SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
 SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S \
 	swapcontext.S
diff --git a/libc/sysdeps/linux/mips/posix_fadvise.c b/libc/sysdeps/linux/mips/posix_fadvise.c
index b0110bf..ea71ac0 100644
--- a/libc/sysdeps/linux/mips/posix_fadvise.c
+++ b/libc/sysdeps/linux/mips/posix_fadvise.c
@@ -31,7 +31,7 @@  int posix_fadvise(int fd, off_t offset, off_t len, int advice)
 		return INTERNAL_SYSCALL_ERRNO (ret, err);
 	return 0;
 }
-# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
+# if __WORDSIZE == 64
 strong_alias(posix_fadvise,posix_fadvise64)
 # endif
 
diff --git a/libc/unistd/daemon.c b/libc/unistd/daemon.c
index 8fa2928..3b3a626 100644
--- a/libc/unistd/daemon.c
+++ b/libc/unistd/daemon.c
@@ -53,13 +53,8 @@ 
 #include <sys/stat.h>
 #endif
 
-#ifdef __UCLIBC_HAS_LFS__
 #define STAT stat64
 #define FSTAT fstat64
-#else
-#define STAT stat
-#define FSTAT fstat
-#endif
 
 #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
 
diff --git a/libc/unistd/fpathconf.c b/libc/unistd/fpathconf.c
index fe4bcea..556343b 100644
--- a/libc/unistd/fpathconf.c
+++ b/libc/unistd/fpathconf.c
@@ -202,7 +202,7 @@  long int fpathconf(int fd, int name)
 #endif
 
 	case _PC_ASYNC_IO:
-#if defined _POSIX_ASYNC_IO && defined __UCLIBC_HAS_LFS__
+#if defined _POSIX_ASYNC_IO
 	    {
 		/* AIO is only allowed on regular files and block devices.  */
 		struct stat st;
diff --git a/libc/unistd/getopt-susv3.c b/libc/unistd/getopt-susv3.c
index 49f9626..291f106 100644
--- a/libc/unistd/getopt-susv3.c
+++ b/libc/unistd/getopt-susv3.c
@@ -22,7 +22,6 @@ 
 #include <string.h>
 #include <stdio.h>
 #include <getopt.h>
-#include <libintl.h>
 
 #ifdef __BCC__
 static const char missing[] = "option requires an argument";
diff --git a/libc/unistd/getopt.c b/libc/unistd/getopt.c
index db5e12c..9d2df34 100644
--- a/libc/unistd/getopt.c
+++ b/libc/unistd/getopt.c
@@ -1,7 +1,4 @@ 
 /* Getopt for GNU.
-   NOTE: getopt is now part of the C library, so if you don't know what
-   "Keep this file name-space clean" means, talk to drepper@gnu.org
-   before changing it!
    Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002,2003,2004
    	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
@@ -20,17 +17,6 @@ 
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-/*
- * Modified for uClibc by Manuel Novoa III on 1/5/01.
- * Modified once again for uClibc by Erik Andersen 8/7/02
- */
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
-   Ditto for AIX 3.2 and <stdlib.h>.  */
-#ifndef _NO_PROTO
-# define _NO_PROTO
-#endif
-
 #ifdef HAVE_CONFIG_H
 # include <config.h>
 #endif
@@ -67,17 +53,6 @@ 
 
 #include <string.h>
 
-#ifdef VMS
-# include <unixlib.h>
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "gettext.h"
-# define _(msgid) gettext (msgid)
-#endif
-
 /* Treat '-W foo' the same as the long option '--foo',
  * disabled for the moment since it costs about 2k... */
 #undef SPECIAL_TREATMENT_FOR_W
@@ -575,7 +550,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 #if defined _LIBC && defined USE_IN_LIBIO
 	      char *buf;
 
-	      if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
+	      if (__asprintf (&buf, "%s: option `%s' is ambiguous\n",
 			      argv[0], argv[d->optind]) >= 0)
 		{
 		  _IO_flockfile (stderr);
@@ -591,7 +566,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		  free (buf);
 		}
 #else
-	      fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+	      fprintf (stderr, "%s: option `%s' is ambiguous\n",
 		       argv[0], argv[d->optind]);
 #endif
 	    }
@@ -624,12 +599,12 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 			{
 			  /* --option */
 #if defined _LIBC && defined USE_IN_LIBIO
-			  n = __asprintf (&buf, _("\
-%s: option `--%s' doesn't allow an argument\n"),
+			  n = __asprintf (&buf, "\
+%s: option `--%s' doesn't allow an argument\n",
 					  argv[0], pfound->name);
 #else
-			  fprintf (stderr, _("\
-%s: option `--%s' doesn't allow an argument\n"),
+			  fprintf (stderr, "\
+%s: option `--%s' doesn't allow an argument\n",
 				   argv[0], pfound->name);
 #endif
 			}
@@ -637,13 +612,13 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 			{
 			  /* +option or -option */
 #if defined _LIBC && defined USE_IN_LIBIO
-			  n = __asprintf (&buf, _("\
-%s: option `%c%s' doesn't allow an argument\n"),
+			  n = __asprintf (&buf, "\
+%s: option `%c%s' doesn't allow an argument\n",
 					  argv[0], argv[d->optind - 1][0],
 					  pfound->name);
 #else
-			  fprintf (stderr, _("\
-%s: option `%c%s' doesn't allow an argument\n"),
+			  fprintf (stderr, "\
+%s: option `%c%s' doesn't allow an argument\n",
 				   argv[0], argv[d->optind - 1][0],
 				   pfound->name);
 #endif
@@ -685,8 +660,8 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 #if defined _LIBC && defined USE_IN_LIBIO
 		      char *buf;
 
-		      if (__asprintf (&buf, _("\
-%s: option `%s' requires an argument\n"),
+		      if (__asprintf (&buf, "\
+%s: option `%s' requires an argument\n",
 				      argv[0], argv[d->optind - 1]) >= 0)
 			{
 			  _IO_flockfile (stderr);
@@ -704,7 +679,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 			}
 #else
 		      fprintf (stderr,
-			       _("%s: option `%s' requires an argument\n"),
+			       "%s: option `%s' requires an argument\n",
 			       argv[0], argv[d->optind - 1]);
 #endif
 		    }
@@ -742,10 +717,10 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		{
 		  /* --option */
 #if defined _LIBC && defined USE_IN_LIBIO
-		  n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
+		  n = __asprintf (&buf, "%s: unrecognized option `--%s'\n",
 				  argv[0], d->__nextchar);
 #else
-		  fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+		  fprintf (stderr, "%s: unrecognized option `--%s'\n",
 			   argv[0], d->__nextchar);
 #endif
 		}
@@ -753,10 +728,10 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		{
 		  /* +option or -option */
 #if defined _LIBC && defined USE_IN_LIBIO
-		  n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
+		  n = __asprintf (&buf, "%s: unrecognized option `%c%s'\n",
 				  argv[0], argv[d->optind][0], d->__nextchar);
 #else
-		  fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+		  fprintf (stderr, "%s: unrecognized option `%c%s'\n",
 			   argv[0], argv[d->optind][0], d->__nextchar);
 #endif
 		}
@@ -808,19 +783,19 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 	      {
 		/* 1003.2 specifies the format of this message.  */
 #if defined _LIBC && defined USE_IN_LIBIO
-		n = __asprintf (&buf, _("%s: illegal option -- %c\n"),
+		n = __asprintf (&buf, "%s: illegal option -- %c\n",
 				argv[0], c);
 #else
-		fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
+		fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c);
 #endif
 	      }
 	    else
 	      {
 #if defined _LIBC && defined USE_IN_LIBIO
-		n = __asprintf (&buf, _("%s: invalid option -- %c\n"),
+		n = __asprintf (&buf, "%s: invalid option -- %c\n",
 				argv[0], c);
 #else
-		fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
+		fprintf (stderr, "%s: invalid option -- %c\n", argv[0], c);
 #endif
 	      }
 
@@ -873,7 +848,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		char *buf;
 
 		if (__asprintf (&buf,
-				_("%s: option requires an argument -- %c\n"),
+				"%s: option requires an argument -- %c\n",
 				argv[0], c) >= 0)
 		  {
 		    _IO_flockfile (stderr);
@@ -889,7 +864,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		    free (buf);
 		  }
 #else
-		fprintf (stderr, _("%s: option requires an argument -- %c\n"),
+		fprintf (stderr, "%s: option requires an argument -- %c\n",
 			 argv[0], c);
 #endif
 	      }
@@ -942,7 +917,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 #if defined _LIBC && defined USE_IN_LIBIO
 		char *buf;
 
-		if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
+		if (__asprintf (&buf, "%s: option `-W %s' is ambiguous\n",
 				argv[0], argv[d->optind]) >= 0)
 		  {
 		    _IO_flockfile (stderr);
@@ -958,7 +933,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		    free (buf);
 		  }
 #else
-		fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+		fprintf (stderr, "%s: option `-W %s' is ambiguous\n",
 			 argv[0], argv[d->optind]);
 #endif
 	      }
@@ -982,8 +957,8 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 #if defined _LIBC && defined USE_IN_LIBIO
 			char *buf;
 
-			if (__asprintf (&buf, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
+			if (__asprintf (&buf, "\
+%s: option `-W %s' doesn't allow an argument\n",
 					argv[0], pfound->name) >= 0)
 			  {
 			    _IO_flockfile (stderr);
@@ -1000,8 +975,8 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 			    free (buf);
 			  }
 #else
-			fprintf (stderr, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
+			fprintf (stderr, "\
+%s: option `-W %s' doesn't allow an argument\n",
 				 argv[0], pfound->name);
 #endif
 		      }
@@ -1021,8 +996,8 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 #if defined _LIBC && defined USE_IN_LIBIO
 			char *buf;
 
-			if (__asprintf (&buf, _("\
-%s: option `%s' requires an argument\n"),
+			if (__asprintf (&buf, "\
+%s: option `%s' requires an argument\n",
 					argv[0], argv[d->optind - 1]) >= 0)
 			  {
 			    _IO_flockfile (stderr);
@@ -1040,7 +1015,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 			  }
 #else
 			fprintf (stderr,
-				 _("%s: option `%s' requires an argument\n"),
+				 "%s: option `%s' requires an argument\n",
 				 argv[0], argv[d->optind - 1]);
 #endif
 		      }
@@ -1094,8 +1069,8 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 #if defined _LIBC && defined USE_IN_LIBIO
 		    char *buf;
 
-		    if (__asprintf (&buf, _("\
-%s: option requires an argument -- %c\n"),
+		    if (__asprintf (&buf, "\
+%s: option requires an argument -- %c\n",
 				    argv[0], c) >= 0)
 		      {
 			_IO_flockfile (stderr);
@@ -1112,7 +1087,7 @@  _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 		      }
 #else
 		    fprintf (stderr,
-			     _("%s: option requires an argument -- %c\n"),
+			     "%s: option requires an argument -- %c\n",
 			     argv[0], c);
 #endif
 		  }
diff --git a/libc/unistd/pathconf.c b/libc/unistd/pathconf.c
index de78a83..c8d03a2 100644
--- a/libc/unistd/pathconf.c
+++ b/libc/unistd/pathconf.c
@@ -149,7 +149,7 @@  pathconf (const char *path, int name)
 #endif
 
     case _PC_ASYNC_IO:
-#if defined _POSIX_ASYNC_IO && defined __UCLIBC_HAS_LFS__
+#if defined _POSIX_ASYNC_IO
       {
 	/* AIO is only allowed on regular files and block devices.  */
 	struct stat st;
diff --git a/libc/unistd/sysconf.c b/libc/unistd/sysconf.c
index 3d3b1a5..172794e 100644
--- a/libc/unistd/sysconf.c
+++ b/libc/unistd/sysconf.c
@@ -99,10 +99,6 @@  static int nprocessors_onln(void)
 	return ret != 0 ? ret : 1;
 }
 
-#if defined __UCLIBC__ && !defined __UCLIBC_HAS_LFS__
-# define readdir64 readdir
-# define dirent64 dirent
-#endif
 static int nprocessors_conf(void)
 {
 	int ret = 0;
diff --git a/libintl/Makefile b/libintl/Makefile
deleted file mode 100644
index c8dc9b4..0000000
--- a/libintl/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-top_srcdir=../
-top_builddir=../
-include $(top_builddir)Rules.mak
-all: libs
-include Makefile.in
-include $(top_srcdir)Makerules
diff --git a/libintl/Makefile.in b/libintl/Makefile.in
deleted file mode 100644
index b54e23d..0000000
--- a/libintl/Makefile.in
+++ /dev/null
@@ -1,43 +0,0 @@ 
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-subdirs += libintl
-
-CFLAGS-libintl := -DNOT_IN_libc -DIS_IN_libintl $(SSP_ALL_CFLAGS)
-
-MOBJ := \
-	gettext.o ngettext.o  dgettext.o dcgettext.o dngettext.o dcngettext.o \
-	textdomain.o bindtextdomain.o bind_textdomain_codeset.o \
-	_nl_expand_alias.o _nl_msg_cat_cntr.o # glibc-isms
-
-libintl_DIR := $(top_srcdir)libintl
-libintl_OUT := $(top_builddir)libintl
-
-libintl_MSRC := $(libintl_DIR)/intl.c
-libintl_MOBJ := $(patsubst %.o,$(libintl_OUT)/%.o,$(MOBJ))
-
-ifeq ($(DOPIC),y)
-libintl-a-y := $(libintl_MOBJ:.o=.os)
-else
-libintl-a-y := $(libintl_MOBJ)
-endif
-libintl-so-y := $(libintl_MOBJ:.o=.os)
-
-objclean-y += CLEAN_libintl
-
-$(libintl_OUT)/libintl.oS: $(libintl_MSRC)
-	$(Q)$(RM) $@
-	$(compile-m)
-
-$(libintl_MOBJ): $(libintl_MSRC)
-	$(compile.m)
-
-$(libintl_MOBJ:.o=.os): $(libintl_MSRC)
-	$(compile.m)
-
-CLEAN_libintl:
-	$(do_rm) $(addprefix $(libintl_OUT)/*., o os oS a)
diff --git a/libintl/intl.c b/libintl/intl.c
deleted file mode 100644
index e42a999..0000000
--- a/libintl/intl.c
+++ /dev/null
@@ -1,154 +0,0 @@ 
-/* Copyright (C) 2003     Manuel Novoa III
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-/*
- *  Stub version of libintl.
- *
- *  Aug 30, 2003
- *  Add some hidden names to support locale-enabled libstd++.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#undef __OPTIMIZE__
-#include <libintl.h>
-
-/**********************************************************************/
-#ifdef L_gettext
-
-char *gettext(const char *msgid)
-{
-	return (char *) msgid;
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_dgettext
-
-char *dgettext(const char *domainname,
-				 const char *msgid)
-{
-	return (char *) msgid;
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_dcgettext
-
-char *dcgettext(const char *domainname,
-				  const char *msgid, int category)
-{
-	return (char *) msgid;
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_ngettext
-
-char *ngettext(const char *msgid1, const char *msgid2,
-			   unsigned long int n)
-{
-	return (char *) ((n == 1) ? msgid1 : msgid2);
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_dngettext
-
-char *dngettext(const char *domainname, const char *msgid1,
-				const char *msgid2, unsigned long int n)
-{
-	return (char *) ((n == 1) ? msgid1 : msgid2);
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_dcngettext
-
-char *dcngettext(const char *domainname, const char *msgid1,
-				 const char *msgid2, unsigned long int n,
-				 int category)
-{
-	return (char *) ((n == 1) ? msgid1 : msgid2);
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_textdomain
-
-char *textdomain(const char *domainname)
-{
-	static const char default_str[] = "messages";
-
-	if (domainname && *domainname && strcmp(domainname, default_str)) {
-		__set_errno(EINVAL);
-		return NULL;
-	}
-	return (char *) default_str;
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_bindtextdomain
-
-char *bindtextdomain(const char *domainname, const char *dirname)
-{
-	static const char dir[] = "/";
-
-	if (!domainname || !*domainname
-		|| (dirname
-#if 1
-			&& ((dirname[0] != '/') || dirname[1])
-#else
-			&& strcmp(dirname, dir)
-#endif
-			)
-		) {
-		__set_errno(EINVAL);
-		return NULL;
-	}
-
-	return (char *) dir;
-}
-
-#endif
-/**********************************************************************/
-#ifdef L_bind_textdomain_codeset
-
-/* Specify the character encoding in which the messages from the
-   DOMAINNAME message catalog will be returned.  */
-char *bind_textdomain_codeset(const char *domainname, const char *codeset)
-{
-	if (!domainname || !*domainname || codeset) {
-		__set_errno(EINVAL);
-	}
-	return NULL;
-}
-
-#endif
-/**********************************************************************/
-#ifdef L__nl_expand_alias
-
-/* glibc-ism */
-
-const char *_nl_expand_alias(const char * name);
-const char *_nl_expand_alias(const char * name)
-{
-	return NULL;		 /* uClibc does not support locale aliases. */
-}
-
-#endif
-/**********************************************************************/
-#ifdef L__nl_msg_cat_cntr
-
-/* glibc-ism */
-
-int _nl_msg_cat_cntr = 0;
-
-#endif
-/**********************************************************************/
diff --git a/libpthread/linuxthreads/sysdeps/ia64/tls.h b/libpthread/linuxthreads/sysdeps/ia64/tls.h
index a78f0ec..ffc8f77 100644
--- a/libpthread/linuxthreads/sysdeps/ia64/tls.h
+++ b/libpthread/linuxthreads/sysdeps/ia64/tls.h
@@ -113,26 +113,6 @@  typedef struct
 
 # endif
 
-#else
-
-# ifndef __ASSEMBLER__
-
-typedef struct
-{
-  void *tcb;
-  dtv_t *dtv;
-  void *self;
-  int multiple_threads;
-} tcbhead_t;
-
-#  define NONTLS_INIT_TP \
-  do { 									\
-    static const tcbhead_t nontls_init_tp = { .multiple_threads = 0 };	\
-    __thread_self = (__typeof (__thread_self)) &nontls_init_tp;		\
-  } while (0)
-
-#endif
-
 #endif /* USE_TLS */
 
 #endif	/* tls.h */
diff --git a/libpthread/linuxthreads/wrapsyscall.c b/libpthread/linuxthreads/wrapsyscall.c
index 668b391..ca046a4 100644
--- a/libpthread/linuxthreads/wrapsyscall.c
+++ b/libpthread/linuxthreads/wrapsyscall.c
@@ -80,13 +80,12 @@  CANCELABLE_SYSCALL (int, close, (int fd), (fd))
 CANCELABLE_SYSCALL_VA (int, fcntl, (int fd, int cmd, ...),
 		       (fd, cmd, va_arg (ap, long int)), cmd)
 
-#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
+#if __WORDSIZE == 32
 /* fcntl64(2).  */
 CANCELABLE_SYSCALL_VA (int, fcntl64, (int fd, int cmd, ...),
 		       (fd, cmd, va_arg (ap, long int)), cmd)
 #endif
 
-
 /* fsync(2).  */
 CANCELABLE_SYSCALL (int, fsync, (int fd), (fd))
 
@@ -95,11 +94,9 @@  CANCELABLE_SYSCALL (int, fsync, (int fd), (fd))
 CANCELABLE_SYSCALL (off_t, lseek, (int fd, off_t offset, int whence),
 		    (fd, offset, whence))
 
-#ifdef __UCLIBC_HAS_LFS__
 /* lseek64(2).  */
 CANCELABLE_SYSCALL (off64_t, lseek64, (int fd, off64_t offset, int whence),
 		    (fd, offset, whence))
-#endif
 
 #if defined(__NR_msync) && defined(__ARCH_USE_MMU__)
 
@@ -122,11 +119,9 @@  CANCELABLE_SYSCALL_VA (int, open, (const char *pathname, int flags, ...),
 		       (pathname, flags, va_arg (ap, mode_t)), flags)
 
 
-#ifdef __UCLIBC_HAS_LFS__
 /* open64(3).  */
 CANCELABLE_SYSCALL_VA (int, open64, (const char *pathname, int flags, ...),
 		       (pathname, flags, va_arg (ap, mode_t)), flags)
-#endif
 
 /* pause(2).  */
 CANCELABLE_SYSCALL (int, pause, (void), ())
@@ -139,7 +134,7 @@  CANCELABLE_SYSCALL (ssize_t, pread, (int fd, void *buf, size_t count,
 		    (fd, buf, count, offset))
 
 
-#if defined __UCLIBC_HAS_LFS__ && defined __NR_pread64
+#if defined __NR_pread64
 /* pread64(3).  */
 CANCELABLE_SYSCALL (ssize_t, pread64, (int fd, void *buf, size_t count,
 				       off64_t offset),
@@ -152,7 +147,7 @@  CANCELABLE_SYSCALL (ssize_t, pwrite, (int fd, const void *buf, size_t n,
 		    (fd, buf, n, offset))
 
 
-#if defined __UCLIBC_HAS_LFS__ && defined __NR_pwrited64
+#if defined __NR_pwrited64
 /* pwrite64(3).  */
 CANCELABLE_SYSCALL (ssize_t, pwrite64, (int fd, const void *buf, size_t n,
 					off64_t offset),
diff --git a/libpthread/nptl/sem_open.c b/libpthread/nptl/sem_open.c
index 5584557..d811ec5 100644
--- a/libpthread/nptl/sem_open.c
+++ b/libpthread/nptl/sem_open.c
@@ -42,14 +42,8 @@ 
 #define __setmntent                    setmntent
 #define __statfs                       statfs
 #define __libc_close                   close
-#ifdef __UCLIBC_HAS_LFS__
-# define __libc_open                    open64
-# define __fxstat64(vers, fd, buf)		fstat64(fd, buf)
-#else
-# define __libc_open                    open
-# define __fxstat64(vers, fd, buf)		fstat(fd, buf)
-# define stat64							stat
-#endif
+#define __libc_open                    open64
+#define __fxstat64(vers, fd, buf)      fstat64(fd, buf)
 #define __libc_write                   write
 
 
diff --git a/libpthread/nptl/sysdeps/Makefile.commonarch b/libpthread/nptl/sysdeps/Makefile.commonarch
index 7f531f5..c206ac9 100644
--- a/libpthread/nptl/sysdeps/Makefile.commonarch
+++ b/libpthread/nptl/sysdeps/Makefile.commonarch
@@ -18,6 +18,7 @@  endif
 libpthread_arch_SSRC := $(filter-out librt-%,$(filter-out libc-%,$(notdir $(wildcard $(libpthread_arch_DIR)/*.S))))
 libpthread_arch_CSRC := $(filter-out librt-%,$(filter-out libc-%,$(notdir $(wildcard $(libpthread_arch_DIR)/*.c))))
 libpthread_arch_CSRC := $(filter-out gen_%,$(libpthread_arch_CSRC))
+libpthread_arch_CSRC := $(filter-out arm-unwind-resume.% rt-arm-unwind-resume.%,$(libpthread_arch_CSRC))
 
 ifneq ($(TARGET_SUBARCH),)
 libpthread_subarch_SSRC := $(notdir $(wildcard $(libpthread_subarch_DIR)/*.S))
diff --git a/libpthread/nptl/sysdeps/arm/arm-unwind-resume.c b/libpthread/nptl/sysdeps/arm/arm-unwind-resume.c
new file mode 100644
index 0000000..ae55582
--- /dev/null
+++ b/libpthread/nptl/sysdeps/arm/arm-unwind-resume.c
@@ -0,0 +1,67 @@ 
+/* Copyright (C) 2003, 2005, 2010 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>.
+
+   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/>.  */
+
+/* It's vitally important that _Unwind_Resume not have a stack frame; the
+   ARM unwinder relies on register state at entrance.  So we write this in
+   assembly.  */
+
+#include <sysdep.h>
+
+__asm__ (
+"       .globl  _Unwind_Resume\n"
+"	.hidden	_Unwind_Resume\n"
+"       .type   _Unwind_Resume, %function\n"
+"_Unwind_Resume:\n"
+"       " CFI_SECTIONS (.debug_frame) "\n"
+"       " CFI_STARTPROC "\n"
+"       stmfd   sp!, {r4, r5, r6, lr}\n"
+"       " CFI_ADJUST_CFA_OFFSET (16)" \n"
+"       " CFI_REL_OFFSET (r4, 0) "\n"
+"       " CFI_REL_OFFSET (r5, 4) "\n"
+"       " CFI_REL_OFFSET (r6, 8) "\n"
+"       " CFI_REL_OFFSET (lr, 12) "\n"
+"       " CFI_REMEMBER_STATE "\n"
+"       ldr     r4, 1f\n"
+"       ldr     r5, 2f\n"
+"3:     add     r4, pc, r4\n"
+"       ldr     r3, [r4, r5]\n"
+"       mov     r6, r0\n"
+"       cmp     r3, #0\n"
+"       beq     4f\n"
+"5:     mov     r0, r6\n"
+"       ldmfd   sp!, {r4, r5, r6, lr}\n"
+"       " CFI_ADJUST_CFA_OFFSET (-16) "\n"
+"       " CFI_RESTORE (r4) "\n"
+"       " CFI_RESTORE (r5) "\n"
+"       " CFI_RESTORE (r6) "\n"
+"       " CFI_RESTORE (lr) "\n"
+"       bx      r3\n"
+"       " CFI_RESTORE_STATE "\n"
+"4:     bl      __libgcc_s_init\n"
+"       ldr     r3, [r4, r5]\n"
+"       b       5b\n"
+"       " CFI_ENDPROC "\n"
+"       .align 2\n"
+#ifdef __thumb2__
+"1:     .word   _GLOBAL_OFFSET_TABLE_ - 3b - 4\n"
+#else
+"1:     .word   _GLOBAL_OFFSET_TABLE_ - 3b - 8\n"
+#endif
+"2:     .word   __libgcc_s_resume(GOTOFF)\n"
+"       .size   _Unwind_Resume, .-_Unwind_Resume\n"
+);
diff --git a/libpthread/nptl/sysdeps/arm/pt-arm-unwind-resume.c b/libpthread/nptl/sysdeps/arm/pt-arm-unwind-resume.c
new file mode 100644
index 0000000..fd0cec4
--- /dev/null
+++ b/libpthread/nptl/sysdeps/arm/pt-arm-unwind-resume.c
@@ -0,0 +1,2 @@ 
+__asm__ (".set __libgcc_s_init, pthread_cancel_init");
+#include <arm-unwind-resume.c>
diff --git a/libpthread/nptl/sysdeps/arm/rt-arm-unwind-resume.c b/libpthread/nptl/sysdeps/arm/rt-arm-unwind-resume.c
new file mode 100644
index 0000000..2641dc5
--- /dev/null
+++ b/libpthread/nptl/sysdeps/arm/rt-arm-unwind-resume.c
@@ -0,0 +1 @@ 
+#include <arm-unwind-resume.c>
diff --git a/libpthread/nptl/sysdeps/arm/unwind-resume.h b/libpthread/nptl/sysdeps/arm/unwind-resume.h
new file mode 100644
index 0000000..736cc83
--- /dev/null
+++ b/libpthread/nptl/sysdeps/arm/unwind-resume.h
@@ -0,0 +1,33 @@ 
+/* Definitions for unwind-resume.c.  ARM (EABI) version.
+   Copyright (C) 2015-2016 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/>.  */
+
+/* The EABI personality routine has a different signature than the
+   canonical one.  These macros tell sysdeps/gnu/unwind*.c how to
+   define __gcc_personality_v0.  */
+#define PERSONALITY_PROTO                       \
+  (_Unwind_State state,                         \
+   struct _Unwind_Exception *ue_header,         \
+   struct _Unwind_Context *context)
+#define PERSONALITY_ARGS                        \
+  (state, ue_header, context)
+
+/* It's vitally important that _Unwind_Resume not have a stack frame; the
+   ARM unwinder relies on register state at entrance.  So we write this in
+   assembly (see arm-unwind-resume.S).  This macro tells the generic code
+   not to provide the generic C definition.  */
+#define HAVE_ARCH_UNWIND_RESUME                 1
diff --git a/libpthread/nptl/sysdeps/generic/dl-tls.c b/libpthread/nptl/sysdeps/generic/dl-tls.c
index 10a5421..989e587 100644
--- a/libpthread/nptl/sysdeps/generic/dl-tls.c
+++ b/libpthread/nptl/sysdeps/generic/dl-tls.c
@@ -19,7 +19,6 @@ 
 #if defined SHARED || defined NOT_IN_libc
 # error in buildsystem: This file is for libc.a
 #endif
-#include <libintl.h>
 #include <signal.h>
 #include <stdlib.h>
 #include <sys/param.h>
diff --git a/libpthread/nptl/sysdeps/generic/libc-tls.c b/libpthread/nptl/sysdeps/generic/libc-tls.c
index c7bd347..58e77ff 100644
--- a/libpthread/nptl/sysdeps/generic/libc-tls.c
+++ b/libpthread/nptl/sysdeps/generic/libc-tls.c
@@ -252,15 +252,4 @@  __pthread_initialize_minimal (void)
   __libc_setup_tls (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN);
 }
 
-#elif defined NONTLS_INIT_TP
-
-/* This is the minimal initialization function used when libpthread is
-   not used.  */
-void
-__attribute__ ((weak))
-__pthread_initialize_minimal (void)
-{
-  NONTLS_INIT_TP;
-}
-
 #endif
diff --git a/libpthread/nptl/sysdeps/pthread/unwind-resume.c b/libpthread/nptl/sysdeps/generic/unwind-resume.c
similarity index 54%
rename from libpthread/nptl/sysdeps/pthread/unwind-resume.c
rename to libpthread/nptl/sysdeps/generic/unwind-resume.c
index 3c1ce07..cd9df9f 100644
--- a/libpthread/nptl/sysdeps/pthread/unwind-resume.c
+++ b/libpthread/nptl/sysdeps/generic/unwind-resume.c
@@ -21,60 +21,55 @@ 
 #include <stdlib.h>
 #include <unwind.h>
 #include <libgcc_s.h>
+#include <unwind-resume.h>
 
 #define __libc_dlopen(x)        dlopen(x, (RTLD_LOCAL | RTLD_LAZY))
 #define __libc_dlsym            dlsym
 #define __libc_dlclose          dlclose
 
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
-static _Unwind_Reason_Code (*libgcc_s_personality)
-  (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-   struct _Unwind_Context *);
+void (*__libgcc_s_resume) (struct _Unwind_Exception *exc)
+  attribute_hidden __attribute__ ((noreturn));
+
+static _Unwind_Reason_Code (*libgcc_s_personality) PERSONALITY_PROTO;
 
 extern
 void abort(void);
 
-static void
-init (void)
+void attribute_hidden __attribute__ ((cold))
+__libgcc_s_init(void)
 {
   void *resume, *personality;
   void *handle;
-  resume = personality = NULL;
-  handle = dlopen (LIBGCC_S_SO, (RTLD_LOCAL | RTLD_LAZY));
+
+  handle = __libc_dlopen (LIBGCC_S_SO);
 
   if (handle == NULL
-      || (resume = dlsym (handle, "_Unwind_Resume")) == NULL
-      || (personality = dlsym (handle, "__gcc_personality_v0")) == NULL)
+      || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL
+      || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL)
   {
-    printf (LIBGCC_S_SO " must be installed for pthread_cancel to work\n");
+    fprintf (stderr,
+	     LIBGCC_S_SO " must be installed for pthread_cancel to work\n");
     abort();
   }
 
-  libgcc_s_resume = resume;
+  __libgcc_s_resume = resume;
   libgcc_s_personality = personality;
 }
 
-void
+#if !HAVE_ARCH_UNWIND_RESUME
+void attribute_hidden
 _Unwind_Resume (struct _Unwind_Exception *exc)
 {
   if (__builtin_expect (libgcc_s_resume == NULL, 0))
-    init ();
-  libgcc_s_resume (exc);
+    __libgcc_s_init ();
+  __libgcc_s_resume (exc);
 }
+#endif
 
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
-		      _Unwind_Exception_Class exception_class,
-                      struct _Unwind_Exception *ue_header,
-                      struct _Unwind_Context *context);
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
-		      _Unwind_Exception_Class exception_class,
-                      struct _Unwind_Exception *ue_header,
-                      struct _Unwind_Context *context)
+_Unwind_Reason_Code attribute_hidden
+__gcc_personality_v0 PERSONALITY_PROTO
 {
   if (__builtin_expect (libgcc_s_personality == NULL, 0))
-    init ();
-  return libgcc_s_personality (version, actions, exception_class,
-			       ue_header, context);
+    __libgcc_s_init ();
+  return libgcc_s_personality PERSONALITY_ARGS;
 }
diff --git a/libpthread/nptl/sysdeps/generic/unwind-resume.h b/libpthread/nptl/sysdeps/generic/unwind-resume.h
new file mode 100644
index 0000000..a0dd638
--- /dev/null
+++ b/libpthread/nptl/sysdeps/generic/unwind-resume.h
@@ -0,0 +1,33 @@ 
+/* Definitions for unwind-resume.c.  Generic version.
+   Copyright (C) 2015-2016 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/>.  */
+
+/* These describe the arguments to unwinder personality functions,
+   specifically __gcc_personality_v0.  A machine-specific sysdeps
+   file might define them differently.  */
+#define PERSONALITY_PROTO                       \
+  (int version, _Unwind_Action actions,         \
+   _Unwind_Exception_Class exception_class,     \
+   struct _Unwind_Exception *ue_header,         \
+   struct _Unwind_Context *context)
+#define PERSONALITY_ARGS                                        \
+  (version, actions, exception_class, ue_header, context)
+
+/* This is defined nonzero by a machine-specific sysdeps file if
+   _Unwind_Resume is provided separately and thus the generic C
+   version should not be defined.  */
+#define HAVE_ARCH_UNWIND_RESUME         0
diff --git a/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c b/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c
index 6b6ad6f..fd45ce1 100644
--- a/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c
+++ b/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c
@@ -22,16 +22,16 @@ 
 #include <pthreadP.h>
 #include <sysdep.h>
 #include <libgcc_s.h>
+#include <unwind-resume.h>
 
 #define __libc_dlopen(x)        dlopen(x, (RTLD_LOCAL | RTLD_LAZY))
 #define __libc_dlsym            dlsym
 #define __libc_dlclose		dlclose
 
 static void *libgcc_s_handle;
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
-static _Unwind_Reason_Code (*libgcc_s_personality)
-  (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-   struct _Unwind_Context *);
+void (*__libgcc_s_resume) (struct _Unwind_Exception *exc)
+  attribute_hidden __attribute__ ((noreturn));
+static _Unwind_Reason_Code (*libgcc_s_personality) PERSONALITY_PROTO;
 static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
   (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
 static _Unwind_Word (*libgcc_s_getcfa) (struct _Unwind_Context *);
@@ -66,11 +66,12 @@  pthread_cancel_init (void)
 #endif
       )
   {
-    printf (LIBGCC_S_SO " must be installed for pthread_cancel to work\n");
+    fprintf (stderr,
+	     LIBGCC_S_SO " must be installed for pthread_cancel to work\n");
     abort();
   }
 
-  libgcc_s_resume = resume;
+  __libgcc_s_resume = resume;
   libgcc_s_personality = personality;
   libgcc_s_forcedunwind = forcedunwind;
   libgcc_s_getcfa = getcfa;
@@ -93,55 +94,41 @@  __unwind_freeres (void)
     }
 }
 
-void
+#if !HAVE_ARCH_UNWIND_RESUME
+void attribute_hidden
 _Unwind_Resume (struct _Unwind_Exception *exc)
 {
   if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  void (*resume) (struct _Unwind_Exception *exc) = libgcc_s_resume;
-  resume (exc);
+  __libgcc_s_resume(exc);
 }
+#endif
 
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
-		      _Unwind_Exception_Class exception_class,
-                      struct _Unwind_Exception *ue_header,
-                      struct _Unwind_Context *context);
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
-		      _Unwind_Exception_Class exception_class,
-                      struct _Unwind_Exception *ue_header,
-                      struct _Unwind_Context *context)
+_Unwind_Reason_Code attribute_hidden
+__gcc_personality_v0 PERSONALITY_PROTO
 {
   if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  _Unwind_Reason_Code (*personality)
-    (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-     struct _Unwind_Context *) = libgcc_s_personality;
-  return personality (version, actions, exception_class, ue_header, context);
+  return libgcc_s_personality PERSONALITY_ARGS;
 }
 
-_Unwind_Reason_Code
+_Unwind_Reason_Code attribute_hidden
 _Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
 		      void *stop_argument)
 {
   if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  _Unwind_Reason_Code (*forcedunwind)
-    (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *)
-    = libgcc_s_forcedunwind;
-  return forcedunwind (exc, stop, stop_argument);
+  return libgcc_s_forcedunwind (exc, stop, stop_argument);
 }
 
-_Unwind_Word
+_Unwind_Word attribute_hidden
 _Unwind_GetCFA (struct _Unwind_Context *context)
 {
   if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  _Unwind_Word (*getcfa) (struct _Unwind_Context *) = libgcc_s_getcfa;
-  return getcfa (context);
+  return libgcc_s_getcfa (context);
 }
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
deleted file mode 100644
index a6a0515..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
+++ /dev/null
@@ -1,177 +0,0 @@ 
-/* Copyright (C) 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>.
-
-   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/>.  */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <unwind.h>
-#include <pthreadP.h>
-
-#define __libc_dlopen(x)        dlopen(x, (RTLD_LOCAL | RTLD_LAZY))
-#define __libc_dlsym            dlsym
-#define __libc_dlclose          dlclose
-#define __libc_fatal(x)         {/*write(STDERR_FILENO, x, strlen(x));*/ abort();}
-
-static void *libgcc_s_handle;
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
-  __attribute_used__;
-static _Unwind_Reason_Code (*libgcc_s_personality)
-  (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
-static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
-  (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-static _Unwind_Word (*libgcc_s_getcfa) (struct _Unwind_Context *);
-
-void
-__attribute_noinline__
-pthread_cancel_init (void)
-{
-  void *resume, *personality, *forcedunwind, *getcfa;
-  void *handle;
-
-  if (__builtin_expect (libgcc_s_handle != NULL, 1))
-    {
-      /* Force gcc to reload all values.  */
-      __asm__ __volatile__ ("" ::: "memory");
-      return;
-    }
-
-  handle = __libc_dlopen ("libgcc_s.so.1");
-
-  if (handle == NULL
-      || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL
-      || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL
-      || (forcedunwind = __libc_dlsym (handle, "_Unwind_ForcedUnwind"))
-	 == NULL
-      || (getcfa = __libc_dlsym (handle, "_Unwind_GetCFA")) == NULL
-#ifdef ARCH_CANCEL_INIT
-      || ARCH_CANCEL_INIT (handle)
-#endif
-      )
-    __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n");
-
-  libgcc_s_resume = resume;
-  libgcc_s_personality = personality;
-  libgcc_s_forcedunwind = forcedunwind;
-  libgcc_s_getcfa = getcfa;
-  /* Make sure libgcc_s_getcfa is written last.  Otherwise,
-     pthread_cancel_init might return early even when the pointer the
-     caller is interested in is not initialized yet.  */
-  atomic_write_barrier ();
-  libgcc_s_handle = handle;
-}
-
-void
-__libc_freeres_fn_section
-__unwind_freeres (void)
-{
-  void *handle = libgcc_s_handle;
-  if (handle != NULL)
-    {
-      libgcc_s_handle = NULL;
-      __libc_dlclose (handle);
-    }
-}
-
-#ifdef __thumb__
-void
-_Unwind_Resume (struct _Unwind_Exception *exc)
-{
-  if (__builtin_expect (libgcc_s_resume == NULL, 0))
-    pthread_cancel_init ();
-
-  libgcc_s_resume (exc);
-}
-
-#else
-/* It's vitally important that _Unwind_Resume not have a stack frame; the
-   ARM unwinder relies on register state at entrance.  So we write this in
-   assembly.  */
-
-__asm__ (
-"	.globl	_Unwind_Resume\n"
-"	.type	_Unwind_Resume, %function\n"
-"_Unwind_Resume:\n"
-"	.cfi_sections .debug_frame\n"
-"	" CFI_STARTPROC "\n"
-"	stmfd	sp!, {r4, r5, r6, lr}\n"
-"	" CFI_ADJUST_CFA_OFFSET (16)" \n"
-"	" CFI_REL_OFFSET (r4, 0) "\n"
-"	" CFI_REL_OFFSET (r5, 4) "\n"
-"	" CFI_REL_OFFSET (r6, 8) "\n"
-"	" CFI_REL_OFFSET (lr, 12) "\n"
-"	" CFI_REMEMBER_STATE "\n"
-"	ldr	r4, 1f\n"
-"	ldr	r5, 2f\n"
-"3:	add	r4, pc, r4\n"
-"	ldr	r3, [r4, r5]\n"
-"	mov	r6, r0\n"
-"	cmp	r3, #0\n"
-"	beq	4f\n"
-"5:	mov	r0, r6\n"
-"	ldmfd	sp!, {r4, r5, r6, lr}\n"
-"	" CFI_ADJUST_CFA_OFFSET (-16) "\n"
-"	" CFI_RESTORE (r4) "\n"
-"	" CFI_RESTORE (r5) "\n"
-"	" CFI_RESTORE (r6) "\n"
-"	" CFI_RESTORE (lr) "\n"
-"	bx	r3\n"
-"	" CFI_RESTORE_STATE "\n"
-"4:	bl	pthread_cancel_init\n"
-"	ldr	r3, [r4, r5]\n"
-"	b	5b\n"
-"	" CFI_ENDPROC "\n"
-"	.align 2\n"
-#ifdef __thumb2__
-"1:	.word	_GLOBAL_OFFSET_TABLE_ - 3b - 4\n"
-#else
-"1:	.word	_GLOBAL_OFFSET_TABLE_ - 3b - 8\n"
-#endif
-"2:	.word	libgcc_s_resume(GOTOFF)\n"
-"	.size	_Unwind_Resume, .-_Unwind_Resume\n"
-);
-
-#endif
-
-_Unwind_Reason_Code
-__gcc_personality_v0 (_Unwind_State state,
-		      struct _Unwind_Exception *ue_header,
-		      struct _Unwind_Context *context)
-{
-  if (__builtin_expect (libgcc_s_personality == NULL, 0))
-    pthread_cancel_init ();
-
-  return libgcc_s_personality (state, ue_header, context);
-}
-
-_Unwind_Reason_Code
-_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
-		      void *stop_argument)
-{
-  if (__builtin_expect (libgcc_s_forcedunwind == NULL, 0))
-    pthread_cancel_init ();
-
-  return libgcc_s_forcedunwind (exc, stop, stop_argument);
-}
-
-_Unwind_Word
-_Unwind_GetCFA (struct _Unwind_Context *context)
-{
-  if (__builtin_expect (libgcc_s_getcfa == NULL, 0))
-    pthread_cancel_init ();
-
-  return libgcc_s_getcfa (context);
-}
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
deleted file mode 100644
index e2e2e0b..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
+++ /dev/null
@@ -1,116 +0,0 @@ 
-/* Copyright (C) 2003, 2005, 2010 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>.
-
-   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/>.  */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <unwind.h>
-
-#define __libc_dlopen(x)        dlopen(x, (RTLD_LOCAL | RTLD_LAZY))
-#define __libc_dlsym            dlsym
-#define __libc_dlclose          dlclose
-#define __libc_fatal(x)         {/*write(STDERR_FILENO, x, strlen(x));*/ abort();}
-
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc)
-  __attribute_used__;
-static _Unwind_Reason_Code (*libgcc_s_personality)
-  (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
-
-static void init (void) __attribute_used__;
-
-static void
-init (void)
-{
-  void *resume, *personality;
-  void *handle;
-
-  handle = __libc_dlopen ("libgcc_s.so.1");
-
-  if (handle == NULL
-      || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL
-      || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL)
-    __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n");
-
-  libgcc_s_resume = resume;
-  libgcc_s_personality = personality;
-}
-#ifdef __thumb__
-void
-_Unwind_Resume (struct _Unwind_Exception *exc)
-{
-  if (__builtin_expect (libgcc_s_resume == NULL, 0))
-    init ();
-  libgcc_s_resume (exc);
-}
-#else
-/* It's vitally important that _Unwind_Resume not have a stack frame; the
-   ARM unwinder relies on register state at entrance.  So we write this in
-   assembly.  */
-
-__asm__ (
-"	.globl	_Unwind_Resume\n"
-"	.type	_Unwind_Resume, %function\n"
-"_Unwind_Resume:\n"
-"	" CFI_SECTIONS (.debug_frame) "\n"
-"	" CFI_STARTPROC "\n"
-"	stmfd	sp!, {r4, r5, r6, lr}\n"
-"	" CFI_ADJUST_CFA_OFFSET (16)" \n"
-"	" CFI_REL_OFFSET (r4, 0) "\n"
-"	" CFI_REL_OFFSET (r5, 4) "\n"
-"	" CFI_REL_OFFSET (r6, 8) "\n"
-"	" CFI_REL_OFFSET (lr, 12) "\n"
-"	" CFI_REMEMBER_STATE "\n"
-"	ldr	r4, 1f\n"
-"	ldr	r5, 2f\n"
-"3:	add	r4, pc, r4\n"
-"	ldr	r3, [r4, r5]\n"
-"	mov	r6, r0\n"
-"	cmp	r3, #0\n"
-"	beq	4f\n"
-"5:	mov	r0, r6\n"
-"	ldmfd	sp!, {r4, r5, r6, lr}\n"
-"	" CFI_ADJUST_CFA_OFFSET (-16) "\n"
-"	" CFI_RESTORE (r4) "\n"
-"	" CFI_RESTORE (r5) "\n"
-"	" CFI_RESTORE (r6) "\n"
-"	" CFI_RESTORE (lr) "\n"
-"	bx	r3\n"
-"	" CFI_RESTORE_STATE "\n"
-"4:	bl	init\n"
-"	ldr	r3, [r4, r5]\n"
-"	b	5b\n"
-"	" CFI_ENDPROC "\n"
-"	.align 2\n"
-#ifdef __thumb2__
-"1:	.word	_GLOBAL_OFFSET_TABLE_ - 3b - 4\n"
-#else
-"1:	.word	_GLOBAL_OFFSET_TABLE_ - 3b - 8\n"
-#endif
-"2:	.word	libgcc_s_resume(GOTOFF)\n"
-"	.size	_Unwind_Resume, .-_Unwind_Resume\n"
-);
-#endif
-
-_Unwind_Reason_Code
-__gcc_personality_v0 (_Unwind_State state,
-		      struct _Unwind_Exception *ue_header,
-		      struct _Unwind_Context *context)
-{
-  if (__builtin_expect (libgcc_s_personality == NULL, 0))
-    init ();
-  return libgcc_s_personality (state, ue_header, context);
-}
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
index c92bd72..2f4b16b 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -114,13 +114,9 @@ 
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
-
-#ifdef __UCLIBC_HAS_LFS__
-/* The rest of the LFS is also available.  */
 #define _LFS_LARGEFILE		1
 #define _LFS64_LARGEFILE	1
 #define _LFS64_STDIO		1
-#endif
 
 /* POSIX shared memory objects are implemented.  */
 #define _POSIX_SHARED_MEMORY_OBJECTS	200809L
diff --git a/libresolv/Makefile b/libresolv/Makefile
deleted file mode 100644
index c8dc9b4..0000000
--- a/libresolv/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-top_srcdir=../
-top_builddir=../
-include $(top_builddir)Rules.mak
-all: libs
-include Makefile.in
-include $(top_srcdir)Makerules
diff --git a/libresolv/Makefile.in b/libresolv/Makefile.in
deleted file mode 100644
index 3425a7c..0000000
--- a/libresolv/Makefile.in
+++ /dev/null
@@ -1,28 +0,0 @@ 
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-subdirs += libresolv
-
-CFLAGS-libresolv := -DNOT_IN_libc -DIS_IN_libresolv $(SSP_ALL_CFLAGS)
-
-libresolv_DIR := $(top_srcdir)libresolv
-libresolv_OUT := $(top_builddir)libresolv
-
-libresolv_SRC := $(libresolv_DIR)/resolv.c
-libresolv_OBJ := $(patsubst $(libresolv_DIR)/%.c,$(libresolv_OUT)/%.o,$(libresolv_SRC))
-
-ifeq ($(DOPIC),y)
-libresolv-a-y := $(libresolv_OBJ:.o=.os)
-else
-libresolv-a-y := $(libresolv_OBJ)
-endif
-libresolv-so-y := $(libresolv_OBJ:.o=.os)
-
-objclean-y += CLEAN_libresolv
-
-CLEAN_libresolv:
-	$(do_rm) $(addprefix $(libresolv_OUT)/*., o os a)
diff --git a/libresolv/resolv.c b/libresolv/resolv.c
deleted file mode 100644
index 4319969..0000000
--- a/libresolv/resolv.c
+++ /dev/null
@@ -1,16 +0,0 @@ 
-/* vi: set sw=4 ts=4: */
-/*
- * libresolv for uClibc
- *
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-void __stub1(void);
-void __stub1(void)
-{
-	return;
-}
-link_warning (__stub1, "the `libresolv' library is a stub.  Do you really need it?")
-
diff --git a/librt/spawn_int.h b/librt/spawn_int.h
index 1d990fc..89c88db 100644
--- a/librt/spawn_int.h
+++ b/librt/spawn_int.h
@@ -24,12 +24,3 @@  struct __spawn_action {
 };
 
 int __posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *fa);
-
-/* handle !LFS */
-#ifndef __UCLIBC_HAS_LFS__
-# define rlimit64 rlimit
-# define getrlimit64 getrlimit
-#endif
-#ifndef O_LARGEFILE
-# define O_LARGEFILE 0
-#endif
diff --git a/libuargp/argp-help.c b/libuargp/argp-help.c
index 0d63ae3..81c45a1 100644
--- a/libuargp/argp-help.c
+++ b/libuargp/argp-help.c
@@ -57,17 +57,7 @@  char *alloca ();
 
 #include <features.h>
 #ifndef _
-/* This is for other GNU distributions with internationalized messages.  */
-# if (defined HAVE_LIBINTL_H || defined _LIBC) && defined __UCLIBC_HAS_GETTEXT_AWARENESS__
-#  include <libintl.h>
-#  ifdef _LIBC
-#   undef dgettext
-#   define dgettext(domain, msgid) \
-  INTUSE(__dcgettext) (domain, msgid, LC_MESSAGES)
-#  endif
-# else
-#  define dgettext(domain, msgid) (msgid)
-# endif
+# define dgettext(domain, msgid) (msgid)
 #endif
 
 #ifndef _LIBC
diff --git a/libuargp/argp-parse.c b/libuargp/argp-parse.c
index 912e3e2..ecd5e7e 100644
--- a/libuargp/argp-parse.c
+++ b/libuargp/argp-parse.c
@@ -48,19 +48,8 @@  char *alloca ();
 
 #include <features.h>
 #ifndef _
-/* This is for other GNU distributions with internationalized messages.
-   When compiling libc, the _ macro is predefined.  */
-# if (defined HAVE_LIBINTL_H || defined _LIBC) && defined __UCLIBC_HAS_GETTEXT_AWARENESS__
-#  include <libintl.h>
-#  ifdef _LIBC
-#   undef dgettext
-#   define dgettext(domain, msgid) \
-  INTUSE(__dcgettext) (domain, msgid, LC_MESSAGES)
-#  endif
-# else
-#  define dgettext(domain, msgid) (msgid)
-#  define gettext(msgid) (msgid)
-# endif
+# define dgettext(domain, msgid) (msgid)
+# define gettext(msgid) (msgid)
 #endif
 #ifndef N_
 # define N_(msgid) (msgid)