]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Do not emit __gnu_lto_v1 symbol.
authorMartin Liska <mliska@suse.cz>
Mon, 22 Jul 2019 07:34:47 +0000 (09:34 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 22 Jul 2019 07:34:47 +0000 (07:34 +0000)
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

gcc/ChangeLog
gcc/config/avr/avr.c
gcc/toplev.c
libgcc/ChangeLog
libgcc/config/pa/stublib.c
libgcc/config/pa/t-stublib
libiberty/ChangeLog
libiberty/simple-object-elf.c

index 528432f7b8b5bd34da6194ce680765843d90ffe8..05d8efaf971532085126d9d926ed28a00c70cd64 100644 (file)
@@ -1,3 +1,9 @@
+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):
index b97faafdc3be936bc84f4e8bfe2a36e232f814ad..760e9371a01237aaf5f0c9bbae2ea5bd42eceb81 100644 (file)
@@ -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"))
index 2567fe2e697c2ec9156935fe32ab6e9f5ff8a6e8..56ef63e5adb06f01bfc4258db3faf99ef26530a6 100644 (file)
@@ -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)
index 0a449a7dd0c399e260ea3a72946d494dd1283d36..7997ad871f468ca2f48f6f5135b1fd77fe0b84a4 100644 (file)
@@ -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
index b47afe1551108932ef2b77b04046ef001975501e..7e79dbfd6c92c235c1d91151fb208af419cbedef 100644 (file)
@@ -115,7 +115,3 @@ pthread_once (void)
   return 0;
 }
 #endif
-
-#ifdef L_gnu_lto_v1
-char gnu_lto_v1;
-#endif
index 0a6223d952eaa117e1a40cd7f931fe9ac245d475..8004c1e46a78fffdd7e1feac25d717212b8a2e22 100644 (file)
@@ -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)
index af242573a4258e98f17ea13a1bbaa4e01e27d883..a0508e98b08660469c4fced3e3bee55b3ddfcc7a 100644 (file)
@@ -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.
index 22c9ae7ed2df01dfe221e9627b82e6d56f225824..502388991a08e3e0bb5104f9981ee775a0e016b8 100644 (file)
@@ -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);
                    }