Compile elf/rtld.c with -fno-tree-loop-distribute-patterns.
authorSandra Loosemore <sandra@codesourcery.com>
Thu, 21 Nov 2019 02:10:40 +0000 (19:10 -0700)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 26 Nov 2019 18:18:23 +0000 (19:18 +0100)
commitc72e5cd87dcb075782f9b6beea024b984f2e1130
tree5775f299eaf17d56b80ff23f1a92e6f45925265a
parentcc0e0b097c3e2176b51c32c09a76766e890cd2d4
Compile elf/rtld.c with -fno-tree-loop-distribute-patterns.

In GCC 10, the default at -O2 is now -ftree-loop-distribute-patterns.
This optimization causes GCC to "helpfully" convert the hand-written
loop in _dl_start into a call to memset, which is not available that
early in program startup.  Similar problems in other places in GLIBC
have been addressed by explicitly building with
-fno-tree-loop-distribute-patterns, but this one may have been
overlooked previously because it only affects targets where
HAVE_BUILTIN_MEMSET is not defined.

This patch fixes a bug observed on nios2-linux-gnu target that caused
all programs to segv on startup.
elf/Makefile