From 31fffa6b0700f9cc0f903a53489b829290168b4c Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 11 Jun 2011 03:35:31 -0700 Subject: Make asserts accept DT_FLAGS/DT_FLAGS_1 with zero flags. --- ChangeLog | 3 +++ elf/dynamic-link.h | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 440545a573..7c8c2e2854 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-07-02 Roland McGrath + * elf/dynamic-link.h (elf_get_dynamic_info): Make asserts accept + DT_FLAGS/DT_FLAGS_1 with zero flags. + * elf/Makefile ($(objpfx)ld.so): Use -defsym=_begin=0 instead of linker script munging. diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index 6d7e14282f..9c16da4ebe 100644 --- a/elf/dynamic-link.h +++ b/elf/dynamic-link.h @@ -1,5 +1,5 @@ /* Inline functions for dynamic linking. - Copyright (C) 1995-2005, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 1995-2005,2006,2008,2011 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 @@ -201,9 +201,9 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp) #ifdef RTLD_BOOTSTRAP /* Only the bind now flags are allowed. */ assert (info[VERSYMIDX (DT_FLAGS_1)] == NULL - || info[VERSYMIDX (DT_FLAGS_1)]->d_un.d_val == DF_1_NOW); + || (info[VERSYMIDX (DT_FLAGS_1)]->d_un.d_val & ~DF_1_NOW) == 0); assert (info[DT_FLAGS] == NULL - || info[DT_FLAGS]->d_un.d_val == DF_BIND_NOW); + || (info[DT_FLAGS]->d_un.d_val & ~DF_BIND_NOW) == 0); /* Flags must not be set for ld.so. */ assert (info[DT_RUNPATH] == NULL); assert (info[DT_RPATH] == NULL); -- cgit v1.2.3