binutils status?

Charles Wilson cwilson@ece.gatech.edu
Thu May 30 12:29:00 GMT 2002


Any comments here?  Should I submit this patch to binutils, or can we 
agree and commit from here?

--Chuck

Charles Wilson wrote:
> Danny Smith wrote:
> 
>  >>> I think we should keep the warnings if --auto-import isn't  specified
>  >>>  on the command line but get rid of them if it is  explictly
>  >>> specified.  Including --auto-import on the command  line would
>  >>> indicate that the user knows what they're doing,  so they don't
>  >>>  need to see warnings.
>  >>>
>  >> Works for me.
>  >>
>  >>
>  > Agree  This addresses my main concern of no warnings and is similar
>  > to the way --enable-stdcall-fixup works now.
> 
> 
> How about this?
> 
> Since the tests in /bfd/ are against pei386_auto_import != 0, effectively:
> 
> ./bfd/cofflink.c:         if (!h && info->pei386_auto_import)
> ./bfd/linker.c:   if (info->pei386_auto_import)
> 
> We can use the same
> -1 == default, 1 == explicitly enabled, 0 == explicitly disabled
> formuation that stdcall_fixup uses.
> 
> I also downgraded the message to 'info_msg' on stdout, instead of
> 'einfo' on stderr (this may be overkill given the 0/1/-1 changes)
> 
> Finally, I'm not sure if link_info.pei386_auto_import should be set to
> '0' or to '-1' in ldmain.c.  It is *reset* to '-1' at the beginning of
> 
> gld_${EMULATION_NAME}_before_parse()
> 
> in pe.em...The question is, since pei386_auto_import is part of the 
> global link_info structure, should a Solaris linker have that variable 
> set to '0' or to '-1'?
> 
> I don't think it makes any functional difference, but I'm unsure of the
> stylistic issues.
> 
> --Chuck
> 
> 
> ------------------------------------------------------------------------
> 
> ? bfd/doc/bfdint.info
> ? bfd/doc/bfdint.info-1
> ? bfd/doc/bfdint.info-2
> ? bfd/doc/bfdsumm.info
> ? ld/ldint.info
> Index: ld/ldmain.c
> ===================================================================
> RCS file: /cvs/src/src/ld/ldmain.c,v
> retrieving revision 1.46
> diff -u -r1.46 ldmain.c
> --- ld/ldmain.c	10 May 2002 09:49:25 -0000	1.46
> +++ ld/ldmain.c	21 May 2002 03:52:12 -0000
> @@ -258,7 +258,7 @@
>    link_info.eh_frame_hdr = false;
>    link_info.flags = (bfd_vma) 0;
>    link_info.flags_1 = (bfd_vma) 0;
> -  link_info.pei386_auto_import = false;
> +  link_info.pei386_auto_import = -1; /* 0=disable 1=enable */
>    link_info.combreloc = true;
>    link_info.spare_dynamic_tags = 5;
>  
> Index: ld/emultempl/pe.em
> ===================================================================
> RCS file: /cvs/src/src/ld/emultempl/pe.em,v
> retrieving revision 1.59
> diff -u -r1.59 pe.em
> --- ld/emultempl/pe.em	15 Feb 2002 02:11:05 -0000	1.59
> +++ ld/emultempl/pe.em	21 May 2002 03:52:18 -0000
> @@ -173,7 +173,7 @@
>  #ifdef DLL_SUPPORT
>    config.dynamic_link = true;
>    config.has_shared = 1;
> -/* link_info.pei386_auto_import = true; */
> +  link_info.pei386_auto_import = -1; /* 1=enable 0=disable */
>  
>  #if (PE_DEF_SUBSYSTEM == 9) || (PE_DEF_SUBSYSTEM == 2)
>  #if defined TARGET_IS_mipspe || defined TARGET_IS_armpe
> @@ -622,10 +622,10 @@
>        pe_dll_do_default_excludes = 0;
>        break;
>      case OPTION_DLL_ENABLE_AUTO_IMPORT:
> -      link_info.pei386_auto_import = true;
> +      link_info.pei386_auto_import = 1;
>        break;
>      case OPTION_DLL_DISABLE_AUTO_IMPORT:
> -      link_info.pei386_auto_import = false;
> +      link_info.pei386_auto_import = 0;
>        break;
>      case OPTION_ENABLE_EXTRA_PE_DEBUG:
>        pe_dll_extra_pe_debug = 1;
> @@ -906,7 +906,10 @@
>            sym = bfd_link_hash_lookup (link_info.hash, buf, 0, 0, 1);
>            if (sym && sym->type == bfd_link_hash_defined)
>              {
> -              einfo (_("Warning: resolving %s by linking to %s (auto-import)\n"),
> +              if (link_info.pei386_auto_import == -1)
> +              {
> +                info_msg (_("Info: resolving %s by linking to %s (auto-import)\n"),
> +              }
>                       undef->root.string, buf);
>                {
>                  bfd *b = sym->u.def.section->owner;





More information about the Cygwin-apps mailing list