Mark H Weaver <m...@netris.org> writes: > The problem is that glibc-CVE-2017-1000366-pt2.patch introduces a > reference to 'strcspn' in rtld.c. This causes the glibc build system to > automatically add 'rtld-strcspn.os' and 'rtld-strcspn-c.os' to the list > of objects to be built. When 'rtld-strcspn-c.os' is built, "-msse4" is > passed to the compiler (along with "-mno-sse" near the end).
I found a patch in Debian to address this issue: --8<---------------cut here---------------start------------->8--- 2017-06-14 Florian Weimer <fwei...@redhat.com> * sysdeps/i386/i686/multiarch/strcspn-c.c: Add IS_IN (libc) guard. * sysdeps/i386/i686/multiarch/varshift.c: Likewise. --- a/sysdeps/i386/i686/multiarch/strcspn-c.c +++ b/sysdeps/i386/i686/multiarch/strcspn-c.c @@ -1,2 +1,4 @@ -#define __strcspn_sse2 __strcspn_ia32 -#include <sysdeps/x86_64/multiarch/strcspn-c.c> +#if IS_IN (libc) +# define __strcspn_sse2 __strcspn_ia32 +# include <sysdeps/x86_64/multiarch/strcspn-c.c> +#endif --- a/sysdeps/i386/i686/multiarch/varshift.c +++ b/sysdeps/i386/i686/multiarch/varshift.c @@ -1 +1,3 @@ -#include <sysdeps/x86_64/multiarch/varshift.c> +#if IS_IN (libc) +# include <sysdeps/x86_64/multiarch/varshift.c> +#endif --8<---------------cut here---------------end--------------->8--- With this patch added, the grafted glibc builds successfully on i686. I'm doing a few more tests, and then will push this in the next hour or two. Mark