diff --git a/SOURCES/centos-arm32-NO_LONG_DOUBLE_MATH.patch b/SOURCES/centos-arm32-NO_LONG_DOUBLE_MATH.patch
deleted file mode 100644
index 790c74a..0000000
--- a/SOURCES/centos-arm32-NO_LONG_DOUBLE_MATH.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -Naurp a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
---- a/stdio-common/printf_fp.c	2021-02-03 16:46:26.887807279 +0000
-+++ b/stdio-common/printf_fp.c	2021-02-03 16:50:16.604469900 +0000
-@@ -151,6 +151,7 @@ static wchar_t *group_number (wchar_t *b
- 			      wchar_t thousands_sep, int ngroups)
-      internal_function;
- 
-+#ifndef __NO_LONG_DOUBLE_MATH
- static __always_inline int
- isnanl_or_pseudo (long double in)
- {
-@@ -172,6 +173,7 @@ isnanl_or_pseudo (long double in)
-   return __isnanl (in);
- #endif
- }
-+#endif
- 
- 
- int
diff --git a/SOURCES/glibc-armhfp-ELF_MACHINE_NO_REL-undefined.patch b/SOURCES/glibc-armhfp-ELF_MACHINE_NO_REL-undefined.patch
deleted file mode 100644
index 78d7c4b..0000000
--- a/SOURCES/glibc-armhfp-ELF_MACHINE_NO_REL-undefined.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From patchwork Thu Jul  3 13:26:40 2014
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: ARM: Define ELF_MACHINE_NO_REL
-X-Patchwork-Submitter: Will Newton <will.newton@linaro.org>
-X-Patchwork-Id: 366862
-Message-Id: <1404394000-13429-1-git-send-email-will.newton@linaro.org>
-To: libc-alpha@sourceware.org
-Date: Thu,  3 Jul 2014 14:26:40 +0100
-From: Will Newton <will.newton@linaro.org>
-List-Id: <libc-alpha.sourceware.org>
-
-Fix a -Wundef warning on ARM.
-
-ChangeLog:
-
-2014-07-03  Will Newton  <will.newton@linaro.org>
-
-	* sysdeps/arm/dl-machine.h (ELF_MACHINE_NO_REL): Define.
----
- sysdeps/arm/dl-machine.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
-index c5ffc93..d6b0c52 100644
---- a/sysdeps/arm/dl-machine.h
-+++ b/sysdeps/arm/dl-machine.h
-@@ -296,6 +296,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc,
- /* ARM never uses Elf32_Rela relocations for the dynamic linker.
-    Prelinked libraries may use Elf32_Rela though.  */
- #define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP
-+#define ELF_MACHINE_NO_REL 0
- 
- /* Names of the architecture-specific auditing callback functions.  */
- #define ARCH_LA_PLTENTER arm_gnu_pltenter
diff --git a/SOURCES/glibc-rh1256317-armhfp-build-issue.patch b/SOURCES/glibc-rh1256317-armhfp-build-issue.patch
deleted file mode 100644
index aa6e7fe..0000000
--- a/SOURCES/glibc-rh1256317-armhfp-build-issue.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/sysdeps/unix/arm/sysdep.S	2016-11-05 11:44:45.561945344 +0100
-+++ b/sysdeps/unix/arm/sysdep.S	2016-11-05 11:44:19.542069815 +0100
-@@ -37,7 +37,7 @@
- 	moveq r0, $EAGAIN	/* Yes; translate it to EAGAIN.  */
- #endif
- 
--#ifndef IS_IN_rtld
-+#if !IS_IN (rtld)
- 	mov ip, lr
- 	cfi_register (lr, ip)
- 	mov r1, r0
diff --git a/SOURCES/glibc-rh1927536.patch b/SOURCES/glibc-rh1927536.patch
new file mode 100644
index 0000000..1be9e89
--- /dev/null
+++ b/SOURCES/glibc-rh1927536.patch
@@ -0,0 +1,109 @@
+Move __isnanl_pseudo to its own file in sysdeps/x86/isnanl-pseudo.c so
+that it only links into libc.so.  This way it is only available to
+functions in libc and should not affect libm.
+
+diff --git a/include/math.h b/include/math.h
+index 4eddc81be0dccad9..c42c8101dd8ebc88 100644
+--- a/include/math.h
++++ b/include/math.h
+@@ -7,8 +7,7 @@
+ extern int __matherr (struct exception *__exc);
+ 
+ # if IS_IN (libc)
+-extern int __isnanl_pseudo (long double);
+-hidden_proto (__isnanl_pseudo)
++extern int __isnanl_pseudo (long double) attribute_hidden;
+ #endif
+ 
+ # if IS_IN (libc) || IS_IN (libm)
+diff --git a/sysdeps/i386/fpu/s_isnanl.c b/sysdeps/i386/fpu/s_isnanl.c
+index dc83d7a85fb3318b..816396d8fbc79dde 100644
+--- a/sysdeps/i386/fpu/s_isnanl.c
++++ b/sysdeps/i386/fpu/s_isnanl.c
+@@ -41,23 +41,3 @@ int __isnanl(long double x)
+ }
+ hidden_def (__isnanl)
+ weak_alias (__isnanl, isnanl)
+-
+-#if IS_IN (libc)
+-/* Exact backport from glibc-2.33, used only in printf_fp.c.  */
+-int __isnanl_pseudo (long double x)
+-{
+-	int32_t se,hx,lx,pn;
+-	GET_LDOUBLE_WORDS(se,hx,lx,x);
+-	se = (se & 0x7fff) << 1;
+-	/* Detect pseudo-normal numbers, i.e. exponent is non-zero and the top
+-	   bit of the significand is not set.   */
+-	pn = (uint32_t)((~hx & 0x80000000) & (se|(-se)))>>31;
+-	/* Clear the significand bit when computing mantissa.  */
+-	lx |= hx & 0x7fffffff;
+-	se |= (uint32_t)(lx|(-lx))>>31;
+-	se = 0xfffe - se;
+-
+-	return (int)(((uint32_t)(se)) >> 16) | pn;
+-}
+-hidden_def (__isnanl_pseudo)
+-#endif
+diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
+index f1da941dbbadadb3..d2f7b05db6ff6f72 100644
+--- a/sysdeps/x86/Makefile
++++ b/sysdeps/x86/Makefile
+@@ -22,3 +22,7 @@ endif
+ ifeq ($(subdir),math)
+ tests += tst-ldbl-nonnormal-printf
+ endif # $(subdir) == math
++
++ifeq ($(subdir),stdio-common)
++sysdep_routines += isnanl-pseudo
++endif
+diff --git a/sysdeps/x86/isnanl-pseudo.c b/sysdeps/x86/isnanl-pseudo.c
+new file mode 100644
+index 0000000000000000..95aba4672ba51a16
+--- /dev/null
++++ b/sysdeps/x86/isnanl-pseudo.c
+@@ -0,0 +1,45 @@
++/* s_isnanl.c -- long double version for i387 of s_isnan.c.
++ * Conversion to long double by Ulrich Drepper,
++ * Cygnus Support, drepper@cygnus.com.
++ */
++
++/*
++ * ====================================================
++ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
++ *
++ * Developed at SunPro, a Sun Microsystems, Inc. business.
++ * Permission to use, copy, modify, and distribute this
++ * software is freely granted, provided that this notice
++ * is preserved.
++ * ====================================================
++ */
++
++#if defined(LIBM_SCCS) && !defined(lint)
++static char rcsid[] = "$NetBSD: $";
++#endif
++
++/*
++ * isnanl(x) returns 1 is x is nan, else 0;
++ * no branching!
++ */
++
++#include <math.h>
++#include <math_private.h>
++
++int
++attribute_hidden
++__isnanl_pseudo(long double x)
++{
++	int32_t se,hx,lx,pn;
++	GET_LDOUBLE_WORDS(se,hx,lx,x);
++	se = (se & 0x7fff) << 1;
++	/* Detect pseudo-normal numbers, i.e. exponent is non-zero and the top
++	   bit of the significand is not set.   */
++	pn = (uint32_t)((~hx & 0x80000000) & (se|(-se)))>>31;
++	/* Clear the significand bit when computing mantissa.  */
++	lx |= hx & 0x7fffffff;
++	se |= (uint32_t)(lx|(-lx))>>31;
++	se = 0xfffe - se;
++
++	return (int)(((uint32_t)(se)) >> 16) | pn;
++}
diff --git a/SPECS/glibc.spec b/SPECS/glibc.spec
index 4d0c67c..d455851 100644
--- a/SPECS/glibc.spec
+++ b/SPECS/glibc.spec
@@ -1,6 +1,6 @@
 %define glibcsrcdir glibc-2.17-c758a686
 %define glibcversion 2.17
-%define glibcrelease 323%{?dist}
+%define glibcrelease 324%{?dist}
 ##############################################################################
 # We support the following options:
 # --with/--without,
@@ -249,11 +249,6 @@ Patch0068: glibc-rh1349982.patch
 # These changes were brought forward from RHEL 6 for compatibility
 Patch0069: glibc-rh1448107.patch
 
-# Armhfp build issue
-Patch9997: centos-arm32-NO_LONG_DOUBLE_MATH.patch
-Patch9998: glibc-armhfp-ELF_MACHINE_NO_REL-undefined.patch
-Patch9999: glibc-rh1256317-armhfp-build-issue.patch
-
 Patch1000: glibc-rh905877.patch
 Patch1001: glibc-rh958652.patch
 Patch1002: glibc-rh977870.patch
@@ -1645,6 +1640,7 @@ Patch2857: glibc-rh1812119-2.patch
 Patch2858: glibc-rh1883162.patch
 Patch2859: glibc-rh1925204-1.patch
 Patch2860: glibc-rh1925204-2.patch
+Patch2861: glibc-rh1927536.patch
 
 ##############################################################################
 # End of glibc patches.
@@ -3015,12 +3011,7 @@ package or when debugging this package.
 %patch2858 -p1
 %patch2859 -p1
 %patch2860 -p1
-
-%ifarch %{arm}
-%patch9998 -p1
-%patch9999 -p1
-%patch9997 -p1
-%endif
+%patch2861 -p1
 
 ##############################################################################
 # %%prep - Additional prep required...
@@ -4208,6 +4199,9 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Fri Mar 26 2021 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.17-324
+- Move __isnanl_pseudo into its own file and link only into libc (#1927536)
+
 * Fri Feb 05 2021 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.17-323
 - Fix isnanl check in printf. (#1925204)