This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Properly convert LTO plugin visibility to ELF visibility


On Sun, Dec 5, 2010 at 4:32 PM, Alan Modra <amodra@gmail.com> wrote:
> On Sun, Dec 05, 2010 at 04:01:51PM -0800, H.J. Lu wrote:
>> Hi,
>>
>> The order of LTO plugin visibility is different from ELF visibility.
>
> Daft. ?Can't we fix that now, before 2.21 and gcc-4.6 are released?

I guess it is too late to change the plugin API.

>> I checked in this patch to fix it.
>>
>>
>> H.J.
>> ---
>> diff --git a/ld/ChangeLog b/ld/ChangeLog
>> index 66aee40..bfef25a 100644
>> --- a/ld/ChangeLog
>> +++ b/ld/ChangeLog
>> @@ -1,3 +1,9 @@
>> +2010-12-05 ?H.J. Lu ?<hongjiu.lu@intel.com>
>> +
>> + ? ? * plugin.c (asymbol_from_plugin_symbol): Proper translate
>> + ? ? LTO plugin visibility to ELF visibility.
>> + ? ? (is_visible_from_outside): Re-indent.
>
> Please put PR ld/12277 on the ChangeLog entry.

Done.

>> + ? ? ? einfo (_("%P%F: unknown ELF symbol visibility: %d!"),
>> + ? ? ? ? ? ? ?ldsym->visibility);
>
> einfo needs a trailing \n on the message string.
>

I checked in the enclosed patch.

Thanks.


-- 
H.J.
---
2010-12-05  H.J. Lu  <hongjiu.lu@intel.com>

	* plugin.c (asymbol_from_plugin_symbol): Add the trailing `\n'
	to einfo.
	(get_symbols): Likewise.
	(plugin_notice): Likewise.
	(plugin_multiple_definition): Likewise.

diff --git a/ld/plugin.c b/ld/plugin.c
index ae9c378..8cc0270 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -310,11 +310,11 @@ asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym,
       unsigned char visibility;

       if (!elfsym)
-	einfo (_("%P%F: %s: non-ELF symbol in ELF BFD!"), asym->name);
+	einfo (_("%P%F: %s: non-ELF symbol in ELF BFD!\n"), asym->name);
       switch (ldsym->visibility)
 	{
 	default:
-	  einfo (_("%P%F: unknown ELF symbol visibility: %d!"),
+	  einfo (_("%P%F: unknown ELF symbol visibility: %d!\n"),
 		 ldsym->visibility);
 	case LDPV_DEFAULT:
 	  visibility = STV_DEFAULT;
@@ -476,7 +476,7 @@ get_symbols (const void *handle, int nsyms, struct
ld_plugin_symbol *syms)
 	  && blhe->type != bfd_link_hash_common)
 	{
 	  /* We should not have a new, indirect or warning symbol here.  */
-	  einfo ("%P%F: %s: plugin symbol table corrupt (sym type %d)",
+	  einfo ("%P%F: %s: plugin symbol table corrupt (sym type %d)\n",
 		 called_plugin->name, blhe->type);
 	}

@@ -869,7 +869,7 @@ plugin_notice (struct bfd_link_info *info ATTRIBUTE_UNUSED,
       /* This is a ref from a non-IR file, so note the ref'd symbol
 	 in the non-IR-only hash.  */
       if (!bfd_hash_lookup (non_ironly_hash, name, TRUE, TRUE))
-	einfo (_("%P%X: %s: hash table failure adding symbol %s"),
+	einfo (_("%P%X: %s: hash table failure adding symbol %s\n"),
 	       abfd->filename, name);
     }
   else if (!is_ref && is_dummy)
@@ -902,10 +902,10 @@ plugin_multiple_definition (struct bfd_link_info
*info, const char *name,
       struct bfd_link_hash_entry *blhe
 	= bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, FALSE);
       if (!blhe)
-	einfo (_("%P%X: %s: can't find IR symbol '%s'"), nbfd->filename,
+	einfo (_("%P%X: %s: can't find IR symbol '%s'\n"), nbfd->filename,
 	       name);
       else if (blhe->type != bfd_link_hash_defined)
-	einfo (_("%P%x: %s: bad IR symbol type %d"), name, blhe->type);
+	einfo (_("%P%x: %s: bad IR symbol type %d\n"), name, blhe->type);
       /* Replace it with new details.  */
       blhe->u.def.section = nsec;
       blhe->u.def.value = nval;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]