summaryrefslogtreecommitdiff
path: root/elf/dynamic-link.h
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dynamic-link.h')
-rw-r--r--elf/dynamic-link.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
index 8d428e20d3..9fb6459236 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -1,5 +1,5 @@
/* Inline functions for dynamic linking.
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -42,7 +42,8 @@
&& (__builtin_expect ((sym_map)->l_tls_offset != NO_TLS_OFFSET, 1) \
|| _dl_try_allocate_static_tls (sym_map) == 0))
-int internal_function _dl_try_allocate_static_tls (struct link_map *map);
+int internal_function attribute_hidden
+ _dl_try_allocate_static_tls (struct link_map *map);
#include <elf.h>
@@ -135,16 +136,18 @@ elf_machine_lazy_rel (struct link_map *map,
\
if (ranges[0].start + ranges[0].size == (start + size)) \
ranges[0].size -= size; \
- if (! ELF_DURING_STARTUP && ((do_lazy) || ranges[0].size == 0)) \
+ if (ELF_DURING_STARTUP \
+ || (!(do_lazy) \
+ && (ranges[0].start + ranges[0].size) == start)) \
{ \
- ranges[1].start = start; \
- ranges[1].size = size; \
- ranges[1].lazy = (do_lazy); \
+ /* Combine processing the sections. */ \
+ ranges[0].size += size; \
} \
else \
{ \
- /* Combine processing the sections. */ \
- ranges[0].size += size; \
+ ranges[1].start = start; \
+ ranges[1].size = size; \
+ ranges[1].lazy = (do_lazy); \
} \
} \
\