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)
