ChangeLog: ---------- 2002-09-16 Nathan Tallent * ecoffswap.h (ecoff_swap_pdr_in) : Update to correctly sign-extend 32-bit ECOFF null values (0xffffffff, -1) on 64 bit machines. (ecoff_swap_sym_in) : Likewise. Patch: bfd/ecoffswap.h (created with 'cvs diff -c3p' against cvs repository on 9/16/02) ------ Index: ecoffswap.h =================================================================== RCS file: /cvs/src/src/bfd/ecoffswap.h,v retrieving revision 1.6 diff -c -3 -p -r1.6 ecoffswap.h *** ecoffswap.h 18 Sep 2001 09:57:23 -0000 1.6 --- ecoffswap.h 16 Sep 2002 17:53:47 -0000 *************** ecoff_swap_pdr_in (abfd, ext_copy, inter *** 341,347 **** --- 341,357 ---- intern->adr = ECOFF_GET_OFF (abfd, ext->p_adr); intern->isym = H_GET_32 (abfd, ext->p_isym); + /* eraxxon@alumni.rice.edu */ + #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) + if (intern->isym == (signed long) 0xffffffff) + intern->isym = -1; + #endif intern->iline = H_GET_32 (abfd, ext->p_iline); + /* eraxxon@alumni.rice.edu */ + #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) + if (intern->iline == (signed long) 0xffffffff) + intern->iline = -1; + #endif intern->regmask = H_GET_32 (abfd, ext->p_regmask); intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset); intern->iopt = H_GET_S32 (abfd, ext->p_iopt); *************** ecoff_swap_sym_in (abfd, ext_copy, inter *** 531,536 **** --- 541,551 ---- *ext = *(struct sym_ext *) ext_copy; intern->iss = H_GET_32 (abfd, ext->s_iss); + /* eraxxon@alumni.rice.edu */ + #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) + if (intern->iss == (signed long) 0xffffffff) + intern->iss = -1; + #endif intern->value = ECOFF_GET_OFF (abfd, ext->s_value); /* now the fun stuff... */