aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-07-22 09:34:47 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-07-22 07:34:47 +0000
commita861990d21a7f495695597e75509a834d44fdb2d (patch)
tree2db8d2971bc773879593177b253a46b32d2cbbca
parentd1caf05a899bb57d1a96acd4869890991dedca20 (diff)
downloadgcc-a861990d21a7f495695597e75509a834d44fdb2d.zip
gcc-a861990d21a7f495695597e75509a834d44fdb2d.tar.gz
gcc-a861990d21a7f495695597e75509a834d44fdb2d.tar.bz2
Do not emit __gnu_lto_v1 symbol.
2019-07-22 Martin Liska <mliska@suse.cz> * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update comment. * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol. 2019-07-22 Martin Liska <mliska@suse.cz> * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1. * config/pa/t-stublib: Likewise. 2019-07-22 Martin Liska <mliska@suse.cz> * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Do not search for gnu_lto_v1, but search for first '\0'. From-SVN: r273662
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/avr/avr.c2
-rw-r--r--gcc/toplev.c21
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/pa/stublib.c4
-rw-r--r--libgcc/config/pa/t-stublib6
-rw-r--r--libiberty/ChangeLog5
-rw-r--r--libiberty/simple-object-elf.c23
8 files changed, 26 insertions, 46 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 528432f..05d8efa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2019-07-22 Martin Liska <mliska@suse.cz>
+ * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
+ comment.
+ * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
+
+2019-07-22 Martin Liska <mliska@suse.cz>
+
* lto-section-in.c (lto_get_section_data):
Use new function get_compression.
* lto-streamer-out.c (produce_lto_section): Use
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index b97faaf..760e937 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -10163,7 +10163,7 @@ avr_asm_output_aligned_decl_common (FILE * stream,
return;
}
- /* __gnu_lto_v1 etc. are just markers for the linker injected by toplev.c.
+ /* __gnu_lto_slim is just a marker for the linker injected by toplev.c.
There is no need to trigger __do_clear_bss code for them. */
if (!STR_PREFIX_P (name, "__gnu_lto"))
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 2567fe2..56ef63e 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -543,27 +543,6 @@ compile_file (void)
process_pending_assemble_externals ();
}
- /* Emit LTO marker if LTO info has been previously emitted. This is
- used by collect2 to determine whether an object file contains IL.
- We used to emit an undefined reference here, but this produces
- link errors if an object file with IL is stored into a shared
- library without invoking lto1. */
- if (flag_generate_lto || flag_generate_offload)
- {
-#if defined ASM_OUTPUT_ALIGNED_DECL_COMMON
- ASM_OUTPUT_ALIGNED_DECL_COMMON (asm_out_file, NULL_TREE,
- "__gnu_lto_v1",
- HOST_WIDE_INT_1U, 8);
-#elif defined ASM_OUTPUT_ALIGNED_COMMON
- ASM_OUTPUT_ALIGNED_COMMON (asm_out_file, "__gnu_lto_v1",
- HOST_WIDE_INT_1U, 8);
-#else
- ASM_OUTPUT_COMMON (asm_out_file, "__gnu_lto_v1",
- HOST_WIDE_INT_1U,
- HOST_WIDE_INT_1U);
-#endif
- }
-
/* Let linker plugin know that this is a slim object and must be LTOed
even when user did not ask for it. */
if (flag_generate_lto && !flag_fat_lto_objects)
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 0a449a7..7997ad8 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2019-07-22 Martin Liska <mliska@suse.cz>
+
+ * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1.
+ * config/pa/t-stublib: Likewise.
+
2019-07-22 Stafford Horne <shorne@gmail.com>
PR target/90362
diff --git a/libgcc/config/pa/stublib.c b/libgcc/config/pa/stublib.c
index b47afe1..7e79dbf 100644
--- a/libgcc/config/pa/stublib.c
+++ b/libgcc/config/pa/stublib.c
@@ -115,7 +115,3 @@ pthread_once (void)
return 0;
}
#endif
-
-#ifdef L_gnu_lto_v1
-char gnu_lto_v1;
-#endif
diff --git a/libgcc/config/pa/t-stublib b/libgcc/config/pa/t-stublib
index 0a6223d..8004c1e 100644
--- a/libgcc/config/pa/t-stublib
+++ b/libgcc/config/pa/t-stublib
@@ -3,8 +3,7 @@ LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o ritm-stub.o ditm-stub.o \
pthread_default_stacksize_np-stub.o \
pthread_mutex_lock-stub.o \
pthread_mutex_unlock-stub.o \
- pthread_once-stub.o \
- gnu_lto_v1-stub.o
+ pthread_once-stub.o
rfi-stub.o: $(srcdir)/config/pa/stublib.c
$(gcc_compile) -c -O2 -DL_register_frame_info $<
@@ -36,9 +35,6 @@ pthread_mutex_unlock-stub.o: $(srcdir)/config/pa/stublib.c
pthread_once-stub.o: $(srcdir)/config/pa/stublib.c
$(gcc_compile) -c -O2 -DL_pthread_once $<
-gnu_lto_v1-stub.o: $(srcdir)/config/pa/stublib.c
- $(gcc_compile) -c -O2 -DL_gnu_lto_v1 $<
-
libgcc_stub.a: $(LIBGCCSTUB_OBJS)
-rm -rf $@
$(AR) rc $@ $(LIBGCCSTUB_OBJS)
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index af24257..a0508e9 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,8 @@
+2019-07-22 Martin Liska <mliska@suse.cz>
+
+ * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
+ Do not search for gnu_lto_v1, but search for first '\0'.
+
2019-07-18 Eduard-Mihai Burtescu <eddyb@lyken.rs>
* cplus-dem.c: Include rust-demangle.h.
diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
index 22c9ae7..5023889 100644
--- a/libiberty/simple-object-elf.c
+++ b/libiberty/simple-object-elf.c
@@ -1358,9 +1358,8 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
return errmsg;
}
- /* If we are processing .symtab purge __gnu_lto_v1 and
- __gnu_lto_slim symbols from it and any symbols in discarded
- sections. */
+ /* If we are processing .symtab purge __gnu_lto_slim symbol
+ from it and any symbols in discarded sections. */
if (sh_type == SHT_SYMTAB)
{
unsigned entsize = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
@@ -1380,14 +1379,9 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
sobj->offset + stroff,
(unsigned char *)strings,
strsz, &errmsg, err);
- /* Find gnu_lto_ in strings. */
- while ((gnu_lto = (char *) memchr (gnu_lto, 'g',
- strings + strsz - gnu_lto)))
- if (strncmp (gnu_lto, "gnu_lto_v1",
- strings + strsz - gnu_lto) == 0)
- break;
- else
- gnu_lto++;
+ /* Find first '\0' in strings. */
+ gnu_lto = (char *) memchr (gnu_lto, '\0',
+ strings + strsz - gnu_lto + 1);
/* Read the section index table if present. */
if (symtab_indices_shndx[i - 1] != 0)
{
@@ -1461,10 +1455,9 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
undefined and sharing the gnu_lto_ name. */
bind = STB_WEAK;
other = STV_HIDDEN;
- if (gnu_lto)
- ELF_SET_FIELD (type_functions, ei_class, Sym,
- ent, st_name, Elf_Word,
- gnu_lto - strings);
+ ELF_SET_FIELD (type_functions, ei_class, Sym,
+ ent, st_name, Elf_Word,
+ gnu_lto - strings);
ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_shndx, Elf_Half, SHN_UNDEF);
}