www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/09/18/15:14:46

Message-Id: <200009181903.PAA22034@delorie.com>
From: "Mark E." <snowball3 AT bigfoot DOT com>
To: djgpp-announce AT delorie DOT com
Date: Sat, 16 Sep 2000 13:16:10 -0400
Subject: ANNOUNCE: Binutils 2.10 update #2
Reply-To: djgpp AT delorie DOT com

An updated DJGPP port of Binutils 2.10 is now available from SimTel mirrors:

Binaries and Documentation (info and man formats):
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bnu210b.zip

Source:
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bnu210s.zip

BFD library:
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bnu210a.zip

The update addresses the following problems fixed since the previous update:

* Fixed bogus warnings 'symbol has no section' and 'symbol type changed from x to y'.

You can update your sources from the previous update with this patch:
*** obj-coff.c.r1	Wed Aug 30 09:24:06 2000
--- obj-coff.c	Sat Aug 26 12:57:26 2000
***************
*** 30,35 ****
--- 30,42 ----
  #define KEEP_RELOC_INFO
  #endif
  
+ /* The BFD_ASSEMBLER version of obj_coff_section will use this macro to set
+    a new section's attributes when a directive has no valid flags or the
+    "w" flag is used. This default should be appropriate for most.  */
+ #ifndef TC_COFF_SECTION_DEFAULT_ATTRIBUTES
+ #define TC_COFF_SECTION_DEFAULT_ATTRIBUTES (SEC_LOAD | SEC_DATA)
+ #endif
+ 
  static void obj_coff_bss PARAMS ((int));
  const char *s_get_name PARAMS ((symbolS * s));
  static void obj_coff_ln PARAMS ((int));
*************** obj_coff_endef (ignore)
*** 725,740 ****
--- 732,755 ----
      case C_ARG:
      case C_REGPARM:
      case C_FIELD:
+ #ifdef TE_GO32
+     case C_MOS:
+     case C_MOE:
+     case C_MOU:
+     case C_EOS:
+ #endif
        SF_SET_DEBUG (def_symbol_in_progress);
        S_SET_SEGMENT (def_symbol_in_progress, absolute_section);
        break;
  
+ #ifndef TE_GO32
      case C_MOS:
      case C_MOE:
      case C_MOU:
      case C_EOS:
        S_SET_SEGMENT (def_symbol_in_progress, absolute_section);
        break;
+ #endif
  
      case C_EXT:
      case C_WEAKEXT:
*************** coff_frob_symbol (symp, punt)
*** 1132,1142 ****
--- 1147,1160 ----
        symbolS *real;
        if (!SF_GET_LOCAL (symp)
  	  && !SF_GET_STATICS (symp)
+ 	  && S_GET_STORAGE_CLASS (symp) != C_LABEL
+ 	  && symbol_constant_p(symp)
  	  && (real = symbol_find_base (S_GET_NAME (symp), DO_NOT_STRIP))
  	  && real != symp)
  	{
  	  c_symbol_merge (symp, real);
  	  *punt = 1;
+ 	  return;
  	}
        if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp))
  	{
*************** obj_coff_section (ignore)
*** 1430,1436 ****
        /* Set section flags for a new section just created by subseg_new.
           Provide a default if no flags were parsed.  */
        if (flags == SEC_NO_FLAGS)
!         flags = TC_COFF_SECTION_DEFAULT_ATTRIBUTES;
            
  #ifdef COFF_LONG_SECTION_NAMES
        /* Add SEC_LINK_ONCE and SEC_LINK_DUPLICATES_DISCARD to .gnu.linkonce
--- 1448,1454 ----
        /* Set section flags for a new section just created by subseg_new.
           Provide a default if no flags were parsed.  */
        if (flags == SEC_NO_FLAGS)
! 	flags = TC_COFF_SECTION_DEFAULT_ATTRIBUTES;
            
  #ifdef COFF_LONG_SECTION_NAMES
        /* Add SEC_LINK_ONCE and SEC_LINK_DUPLICATES_DISCARD to .gnu.linkonce
*************** coff_frob_section (sec)
*** 1486,1493 ****
  #if !defined(TICOFF)
    if (size & mask)
      {
!       size = (size + mask) & ~mask;
!       bfd_set_section_size (stdoutput, sec, size);
      }
  #endif
  
--- 1504,1523 ----
  #if !defined(TICOFF)
    if (size & mask)
      {
!       bfd_vma new_size;
!       fragS *last;
!       
!       new_size = (size + mask) & ~mask;
!       bfd_set_section_size (stdoutput, sec, new_size);
! 
!       /* If the size had to be rounded up, add some padding in
!          the last non-empty frag.  */
!       fragp = seg_info (sec)->frchainP->frch_root;
!       last = seg_info (sec)->frchainP->frch_last;
!       while (fragp->fr_next != last)
!         fragp = fragp->fr_next;
!       last->fr_address = size;
!       fragp->fr_offset += new_size - size;
      }
  #endif
  

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019