This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.


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

please try this patch



These changes (relative to last night's snapshot on ftp.cygnus.com in
/private/jelly) will affect:

 - top-level make (nuked INSTALL_LAST stuff)
 - bfd.h generation (avoiding a bug in bsd4.4 make, hopefully not
	hitting any others)
 - vms hosted or targeted execution and debugging
 - hpux 8 native-cc builds
 - mips bsd (4.4) linking
 - hppa linking

Please test them and let me know how they work for you, today if
possible.  (If you sent them to me, please make sure I got them right.
If you didn't send me the patches, but use one of the configurations
above, please confirm that it works.)

If I get some positive feedback today, I'll go ahead with the release
tonight.  Otherwise, I'll push it off a bit longer.

Index: Makefile.in
===================================================================
RCS file: /rel/cvsfiles/devo/Makefile.in,v
retrieving revision 1.341.2.1
diff -c -r1.341.2.1 Makefile.in
*** Makefile.in	1994/05/11 06:04:57	1.341.2.1
--- Makefile.in	1994/05/19 06:26:40
***************
*** 117,124 ****
  	$(INSTALL_MODULES) \
  	$(INSTALL_TARGET_MODULES) \
  	$(INSTALL_X11_MODULES) \
! 	install-gcc \
! 	$(INSTALL_LAST)
  
  
  CC_FOR_TARGET = ` \
--- 117,123 ----
  	$(INSTALL_MODULES) \
  	$(INSTALL_TARGET_MODULES) \
  	$(INSTALL_X11_MODULES) \
! 	install-gcc
  
  
  CC_FOR_TARGET = ` \
***************
*** 793,813 ****
  	  srcroot=`cd $(srcdir); pwd`; export srcroot; \
  	  (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  	else \
- 	  true; \
- 	fi
- 
- 
- # EXPERIMENTAL STUFF
- # This rule is used to install the modules which use FLAGS_TO_PASS.
- # To build a target install-X means to cd to X and make install.
- .PHONY: $(INSTALL_LAST)
- $(INSTALL_LAST): install-dirs
- 	@dir=`echo $@ | sed -e 's/install-//'`; \
- 	if [ -f ./$${dir}/Makefile ] ; then \
- 	  r=`pwd`; export r; \
- 	  srcroot=`cd $(srcdir); pwd`; export srcroot; \
- 	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
- 	else \
  	  true; \
  	fi
  
--- 792,797 ----
Index: bfd/ChangeLog
===================================================================
RCS file: /rel/cvsfiles/devo/bfd/ChangeLog,v
retrieving revision 1.1155.2.5
diff -c -r1.1155.2.5 ChangeLog
*** ChangeLog	1994/05/17 18:23:39	1.1155.2.5
--- ChangeLog	1994/05/19 19:40:50
***************
*** 1,3 ****
--- 1,17 ----
+ Thu May 19 13:56:47 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+ 
+ 	From Ralph Campbell:
+ 	* mipsbsd.c (mips_fix_jmp_addr): If symbol is undefined, return an
+ 	error.
+ 	(mips_fix_hi16_s): Ditto.
+ 
+ 	* Makefile.in (stmp-bfd.h): Wrap `if' block around grep
+ 	invocation, to avoid a bug in BSD 4.4 make.
+ 
+ 	From Jeff Law:
+ 	* libhppa.h (hppa_field_adjust): Avoid adding constant_value into
+ 	the final value twice for LR and RR field selectors.
+ 
  Mon May 16 12:02:07 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
  
  	* configure.bat: Do use CR-LF for line termination.
Index: bfd/Makefile.in
===================================================================
RCS file: /rel/cvsfiles/devo/bfd/Makefile.in,v
retrieving revision 1.211.2.4
diff -c -r1.211.2.4 Makefile.in
*** Makefile.in	1994/05/13 19:56:37	1.211.2.4
--- Makefile.in	1994/05/19 18:00:34
***************
*** 474,482 ****
  
  # The file ../include/bfd.h is from earlier attempts to get this right.
  # If the file is still there, kill it.
  stmp-bfd.h : $(srcdir)/bfd-in2.h Makefile
  	rm -f bfd.h-new 64 ../include/bfd.h
! 	grep BFD_HOST_64_BIT sysdep.h > 64 2>/dev/null || exit 0
  	sed -e 's/@WORDSIZE@/$(WORDSIZE)/' \
  	    -e "s/@VERSION@/`cat $(srcdir)/VERSION`/" \
  	    -e '/64-bit.*sysdep.h/ r 64' \
--- 474,486 ----
  
  # The file ../include/bfd.h is from earlier attempts to get this right.
  # If the file is still there, kill it.
+ # The weird sh*t with grep is to avoid printing "exit 1 (ignored)" type
+ # messages from make, and avoid various ways in which different versions
+ # of make will screw up exit status checks.
  stmp-bfd.h : $(srcdir)/bfd-in2.h Makefile
  	rm -f bfd.h-new 64 ../include/bfd.h
! 	if grep BFD_HOST_64_BIT sysdep.h > 64 2>/dev/null ; then true; \
! 	else true; fi
  	sed -e 's/@WORDSIZE@/$(WORDSIZE)/' \
  	    -e "s/@VERSION@/`cat $(srcdir)/VERSION`/" \
  	    -e '/64-bit.*sysdep.h/ r 64' \
Index: bfd/libhppa.h
===================================================================
RCS file: /rel/cvsfiles/devo/bfd/libhppa.h,v
retrieving revision 1.19
diff -c -r1.19 libhppa.h
*** libhppa.h	1994/03/19 03:54:42	1.19
--- libhppa.h	1994/05/19 17:56:05
***************
*** 308,327 ****
       unsigned long constant_value;
       unsigned short r_field;
  {
-   value += constant_value;
    switch (r_field)
      {
      case e_fsel:		/* F  : no change                      */
        break;
  
      case e_lssel:		/* LS : if (bit 21) then add 0x800
  				   arithmetic shift right 11 bits */
        if (value & 0x00000400)
  	value += 0x800;
        value = (value & 0xfffff800) >> 11;
        break;
  
      case e_rssel:		/* RS : Sign extend from bit 21        */
        if (value & 0x00000400)
  	value |= 0xfffff800;
        else
--- 308,329 ----
       unsigned long constant_value;
       unsigned short r_field;
  {
    switch (r_field)
      {
      case e_fsel:		/* F  : no change                      */
+       value += constant_value;
        break;
  
      case e_lssel:		/* LS : if (bit 21) then add 0x800
  				   arithmetic shift right 11 bits */
+       value += constant_value;
        if (value & 0x00000400)
  	value += 0x800;
        value = (value & 0xfffff800) >> 11;
        break;
  
      case e_rssel:		/* RS : Sign extend from bit 21        */
+       value += constant_value;
        if (value & 0x00000400)
  	value |= 0xfffff800;
        else
***************
*** 329,348 ****
--- 331,354 ----
        break;
  
      case e_lsel:		/* L  : Arithmetic shift right 11 bits */
+       value += constant_value;
        value = (value & 0xfffff800) >> 11;
        break;
  
      case e_rsel:		/* R  : Set bits 0-20 to zero          */
+       value += constant_value;
        value = value & 0x7ff;
        break;
  
      case e_ldsel:		/* LD : Add 0x800, arithmetic shift
  				   right 11 bits                  */
+       value += constant_value;
        value += 0x800;
        value = (value & 0xfffff800) >> 11;
        break;
  
      case e_rdsel:		/* RD : Set bits 0-20 to one           */
+       value += constant_value;
        value |= 0xfffff800;
        break;
  
Index: bfd/mipsbsd.c
===================================================================
RCS file: /rel/cvsfiles/devo/bfd/mipsbsd.c,v
retrieving revision 1.20
diff -c -r1.20 mipsbsd.c
*** mipsbsd.c	1994/05/05 19:50:26	1.20
--- mipsbsd.c	1994/05/19 19:40:38
***************
*** 200,205 ****
--- 200,210 ----
    if (output_bfd != (bfd *)NULL)
      return bfd_reloc_continue;
  
+   /* If this is an undefined symbol, return error */
+   if (symbol->section == &bfd_und_section
+       && (symbol->flags & BSF_WEAK) == 0)
+     return bfd_reloc_undefined;
+ 
    /* 
     * Work out which section the relocation is targetted at and the
     * initial relocation command value.
***************
*** 249,254 ****
--- 254,264 ----
    if (output_bfd != (bfd *)NULL)
      return bfd_reloc_continue;
  
+   /* If this is an undefined symbol, return error */
+   if (symbol->section == &bfd_und_section
+       && (symbol->flags & BSF_WEAK) == 0)
+     return bfd_reloc_undefined;
+ 
    /* 
     * Work out which section the relocation is targetted at and the
     * initial relocation command value.
Index: config/mh-hpux
===================================================================
RCS file: /rel/cvsfiles/devo/config/mh-hpux,v
retrieving revision 1.3
diff -c -r1.3 mh-hpux
*** mh-hpux	1993/06/16 00:08:20	1.3
--- mh-hpux	1994/05/19 17:49:18
***************
*** 1,4 ****
--- 1,5 ----
  # Define SYSV as -DSYSV if you are using a System V operating system.
+ CC = cc -Wp,-H256000
  SYSV = -DSYSV
  RANLIB = true
  
Index: gas/ChangeLog
===================================================================
RCS file: /rel/cvsfiles/devo/gas/ChangeLog,v
retrieving revision 1.660.2.6
diff -c -r1.660.2.6 ChangeLog
*** ChangeLog	1994/05/18 23:47:10	1.660.2.6
--- ChangeLog	1994/05/19 19:52:54
***************
*** 1,3 ****
--- 1,40 ----
+ Thu May 19 13:45:59 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+ 
+ 	From Ian Taylor:
+ 	* config/tc-sparc.c (md_section_align): Don't change the size if
+ 	OBJ_ELF.
+ 
+ 	* config/obj-vms.c: Replaced unchecked uses of malloc with
+ 	xmalloc.
+ 
+ 	From Jeff Law:
+ 	* config/tc-hppa.c (pa_parse_fp_cmp_cond): Report an error
+ 	on a partial completer match.
+ 
+ Wed May 18 20:50:35 1994  Pat Rankin  (rankin@eql.caltech.edu)
+ 
+ 	* config/obj-vms.h (DBG_S_C_SQUAD, DBG_S_C_UQUAD): define these
+ 	new VMS symbol-type macros; signed and unsigned quadword integers,
+ 	for `long long' support.  Their values come from the existing
+ 	DSC$K_DTYPE_QU and DSC$K_DTYPE_Q macros in <descrip.h>.  The
+ 	VMS debugger now recognizes `long long' variables correctly.
+ 	config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries
+ 	for gcc2's predefined types "long double" (same as double, as
+ 	per gcc's current state), "long long int", "long long unsigned
+ 	int", and final `otherwise' case (to avoid uninitialized type
+ 	and size fields).  [caveat:  predefined types "complex int",
+ 	"complex float", "complex double", and "complex long double" are
+ 	still missing.]
+ 
+ 	* config/ho-vms.h (EXIT_FAILURE): define as 0x10000002 instead
+ 	of 0, because the latter indicates success rather than failure
+ 	when passed to `exit' or return from `main' compiled by gcc2.
+ 
+ 	* config/obj-vms.c (array_suffix, generate_suffix): replace two
+ 	hardcoded `0xa3's with macro DBG_S_C_ADVANCED_TYPE from obj-vms.h.
+ 	(VMS_typedef_parse): eliminate redundant if-then-else when
+ 	allocating new symbol entry and linking it to VMS_Symbol_type_list.
+ 
  Wed May 18 15:32:35 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
  
  	* listing.c (list_symbol_table): Only test BFD64, not
Index: gas/NEWS
===================================================================
RCS file: /rel/cvsfiles/devo/gas/NEWS,v
retrieving revision 1.12
diff -c -r1.12 NEWS
*** NEWS	1994/03/15 02:56:20	1.12
--- NEWS	1994/05/19 17:33:08
***************
*** 10,16 ****
  based on mail received from various people.  The `-h#' option should work again
  too.
  
! HP-PA work, by Jeff Law.
  
  Vax support in gas fixed for BSD, so it builds and seems to run a couple simple
  tests okay.  I haven't put it through extensive testing.  (GNU make is
--- 10,20 ----
  based on mail received from various people.  The `-h#' option should work again
  too.
  
! HP-PA work, by Jeff Law.  Note, for the PA, gas-2.3 has been designed to work
! with gdb-4.12 and gcc-2.6.  As gcc-2.6 has not been released yet, a special
! version of gcc-2.5.8 has been patched to work with gas-2.3.  You can retrieve
! this special version of gcc-2.5.8 via anonymous ftp from jaguar.cs.utah.edu
! in the "dist" directory.
  
  Vax support in gas fixed for BSD, so it builds and seems to run a couple simple
  tests okay.  I haven't put it through extensive testing.  (GNU make is
Index: gas/config/ho-vms.h
===================================================================
RCS file: /rel/cvsfiles/devo/gas/config/ho-vms.h,v
retrieving revision 1.4.2.1
diff -c -r1.4.2.1 ho-vms.h
*** ho-vms.h	1994/05/18 19:58:54	1.4.2.1
--- ho-vms.h	1994/05/19 17:41:54
***************
*** 28,35 ****
  #include <perror.h>
  
  #ifndef EXIT_SUCCESS
! #define EXIT_SUCCESS 1
! #define EXIT_FAILURE 0
  #endif
  
  #define unlink delete
--- 28,35 ----
  #include <perror.h>
  
  #ifndef EXIT_SUCCESS
! #define EXIT_SUCCESS 1			/* SS$_NORMAL, STS$K_SUCCESS */
! #define EXIT_FAILURE 0x10000002		/* (STS$K_ERROR | STS$M_INHIB_MSG) */
  #endif
  
  #define unlink delete
Index: gas/config/obj-vms.c
===================================================================
RCS file: /rel/cvsfiles/devo/gas/config/obj-vms.c,v
retrieving revision 1.15.2.2
diff -c -r1.15.2.2 obj-vms.c
*** obj-vms.c	1994/05/18 23:50:29	1.15.2.2
--- obj-vms.c	1994/05/19 17:50:39
***************
*** 1428,1434 ****
  	  break;
  	}
      }
!   fpnt = (struct input_file *) malloc (sizeof (struct input_file));
    if (file_root == (struct input_file *) NULL)
      file_root = fpnt;
    else
--- 1428,1434 ----
  	  break;
  	}
      }
!   fpnt = (struct input_file *) xmalloc (sizeof (struct input_file));
    if (file_root == (struct input_file *) NULL)
      file_root = fpnt;
    else
***************
*** 1639,1645 ****
      }
    total_size = total_size * spnt1->data_size;
    push (spnt1->data_size, 2);
!   if (spnt1->VMS_type == 0xa3)
      push (0, 1);
    else
      push (spnt1->VMS_type, 1);
--- 1639,1645 ----
      }
    total_size = total_size * spnt1->data_size;
    push (spnt1->data_size, 2);
!   if (spnt1->VMS_type == DBG_S_C_ADVANCED_TYPE)
      push (0, 1);
    else
      push (spnt1->VMS_type, 1);
***************
*** 1675,1681 ****
       int dbx_type;
  {
    struct forward_ref *fpnt;
!   fpnt = (struct forward_ref *) malloc (sizeof (struct forward_ref));
    fpnt->next = f_ref_root;
    f_ref_root = fpnt;
    fpnt->dbx_type = dbx_type;
--- 1675,1681 ----
       int dbx_type;
  {
    struct forward_ref *fpnt;
!   fpnt = (struct forward_ref *) xmalloc (sizeof (struct forward_ref));
    fpnt->next = f_ref_root;
    f_ref_root = fpnt;
    fpnt->dbx_type = dbx_type;
***************
*** 1809,1815 ****
      new_forward_ref (dbx_type);
    else
      {
!       if (spnt->VMS_type != 0xa3)
  	return 0;		/* no suffix needed */
        gen1 (spnt, 0);
      }
--- 1809,1815 ----
      new_forward_ref (dbx_type);
    else
      {
!       if (spnt->VMS_type != DBG_S_C_ADVANCED_TYPE)
  	return 0;		/* no suffix needed */
        gen1 (spnt, 0);
      }
***************
*** 2344,2361 ****
  /* first we see if this has been defined already, due to a forward reference*/
    if (spnt == (struct VMS_DBG_Symbol *) NULL)
      {
!       if (VMS_Symbol_type_list == (struct VMS_DBG_Symbol *) NULL)
! 	{
! 	  spnt = (struct VMS_DBG_Symbol *) malloc (sizeof (struct VMS_DBG_Symbol));
! 	  spnt->next = (struct VMS_DBG_Symbol *) NULL;
! 	  VMS_Symbol_type_list = spnt;
! 	}
!       else
! 	{
! 	  spnt = (struct VMS_DBG_Symbol *) malloc (sizeof (struct VMS_DBG_Symbol));
! 	  spnt->next = VMS_Symbol_type_list;
! 	  VMS_Symbol_type_list = spnt;
! 	}
        spnt->dbx_type = i1;	/* and save the type */
      }
  /* for structs and unions, do a partial parse, otherwise we sometimes get
--- 2344,2352 ----
  /* first we see if this has been defined already, due to a forward reference*/
    if (spnt == (struct VMS_DBG_Symbol *) NULL)
      {
!       spnt = (struct VMS_DBG_Symbol *) xmalloc (sizeof (struct VMS_DBG_Symbol));
!       spnt->next = VMS_Symbol_type_list;
!       VMS_Symbol_type_list = spnt;
        spnt->dbx_type = i1;	/* and save the type */
      }
  /* for structs and unions, do a partial parse, otherwise we sometimes get
***************
*** 2450,2458 ****
--- 2441,2472 ----
  	}
        else if (type_check ("double"))
  	{
+ 	  /* caveat: this assumes D_float, and is not correct for G_float */
+ 	  spnt->VMS_type = DBG_S_C_REAL8;
+ 	  spnt->data_size = 8;
+ 	}
+       else if (type_check ("long double"))
+ 	{
+ 	  /* same as double, at least for now */
  	  spnt->VMS_type = DBG_S_C_REAL8;
  	  spnt->data_size = 8;
  	}
+       else if (type_check ("long long int"))
+ 	{
+ 	  spnt->VMS_type = DBG_S_C_SQUAD;	/* signed quadword */
+ 	  spnt->data_size = 8;
+ 	}
+       else if (type_check ("long long unsigned int"))
+ 	{
+ 	  spnt->VMS_type = DBG_S_C_UQUAD;	/* unsigned quadword */
+ 	  spnt->data_size = 8;
+ 	}
+       else
+ 	{
+ 	  /* something more substantial ought to be done here */
+ 	  spnt->VMS_type = 0;
+ 	  spnt->data_size = 0;
+ 	}
        pnt1 = (char *) strchr (str, ';') + 1;
        break;
      case 's':
***************
*** 2729,2735 ****
  			pnt = str + strlen(str) - 1;
  		      } while (*pnt == '?');
  		      tlen += strlen(str);
! 		      parse_buffer = (char *) malloc (tlen + 1);
  		      strcpy(parse_buffer, S_GET_NAME (sp));
  		      pnt2 = parse_buffer + strlen(S_GET_NAME (sp)) - 1;
  		      *pnt2 = '\0';
--- 2743,2749 ----
  			pnt = str + strlen(str) - 1;
  		      } while (*pnt == '?');
  		      tlen += strlen(str);
! 		      parse_buffer = (char *) xmalloc (tlen + 1);
  		      strcpy(parse_buffer, S_GET_NAME (sp));
  		      pnt2 = parse_buffer + strlen(S_GET_NAME (sp)) - 1;
  		      *pnt2 = '\0';
***************
*** 3770,3776 ****
        if (!HAS_PSECT_ATTRIBUTES (Name))
  	continue;
  
!       stripped_name = (char *) malloc (strlen (Name) + 1);
        strcpy (stripped_name, Name);
        Psect_Attributes = 0;
        VMS_Modify_Psect_Attributes (stripped_name, &Psect_Attributes);
--- 3784,3790 ----
        if (!HAS_PSECT_ATTRIBUTES (Name))
  	continue;
  
!       stripped_name = (char *) xmalloc (strlen (Name) + 1);
        strcpy (stripped_name, Name);
        Psect_Attributes = 0;
        VMS_Modify_Psect_Attributes (stripped_name, &Psect_Attributes);
Index: gas/config/obj-vms.h
===================================================================
RCS file: /rel/cvsfiles/devo/gas/config/obj-vms.h,v
retrieving revision 1.8
diff -c -r1.8 obj-vms.h
*** obj-vms.h	1994/03/11 23:07:26	1.8
--- obj-vms.h	1994/05/19 17:46:55
***************
*** 421,431 ****
  #define DBG_S_C_UCHAR		0x02
  #define DBG_S_C_USINT		0x03
  #define DBG_S_C_ULINT		0x04
  #define DBG_S_C_SCHAR		0x06
  #define DBG_S_C_SSINT		0x07
  #define DBG_S_C_SLINT		0x08
  #define DBG_S_C_REAL4		0x0a
! #define DBG_S_C_REAL8		0x0b
  #define DBG_S_C_FUNCTION_ADDR	0x17
  #define DBG_S_C_ADVANCED_TYPE	0xa3
  /*  These are the codes that are used to generate the definitions of struct
--- 421,433 ----
  #define DBG_S_C_UCHAR		0x02
  #define DBG_S_C_USINT		0x03
  #define DBG_S_C_ULINT		0x04
+ #define DBG_S_C_UQUAD		0x05
  #define DBG_S_C_SCHAR		0x06
  #define DBG_S_C_SSINT		0x07
  #define DBG_S_C_SLINT		0x08
+ #define DBG_S_C_SQUAD		0x09
  #define DBG_S_C_REAL4		0x0a
! #define DBG_S_C_REAL8		0x0b		/* D_float (G_float is 0x1b) */
  #define DBG_S_C_FUNCTION_ADDR	0x17
  #define DBG_S_C_ADVANCED_TYPE	0xa3
  /*  These are the codes that are used to generate the definitions of struct
Index: gas/config/tc-hppa.c
===================================================================
RCS file: /rel/cvsfiles/devo/gas/config/tc-hppa.c,v
retrieving revision 1.85
diff -c -r1.85 tc-hppa.c
*** tc-hppa.c	1994/04/24 07:14:02	1.85
--- tc-hppa.c	1994/05/19 17:56:12
***************
*** 3435,3447 ****
  	{
  	  cond = fp_cond_map[i].cond;
  	  *s += strlen (fp_cond_map[i].string);
  	  while (**s == ' ' || **s == '\t')
  	    *s = *s + 1;
  	  return cond;
  	}
      }
  
!   as_bad ("Invalid FP Compare Condition: %c", **s);
    return 0;
  }
  
--- 3435,3459 ----
  	{
  	  cond = fp_cond_map[i].cond;
  	  *s += strlen (fp_cond_map[i].string);
+ 	  /* If not a complete match, back up the input string and
+ 	     report an error.  */
+ 	  if (**s != ' ' && **s != '\t')
+ 	    {
+ 	      *s -= strlen (fp_cond_map[i].string);
+ 	      break;
+ 	    }
  	  while (**s == ' ' || **s == '\t')
  	    *s = *s + 1;
  	  return cond;
  	}
      }
  
!   as_bad ("Invalid FP Compare Condition: %s", *s);
! 
!   /* Advance over the bogus completer.  */
!   while (**s != ',' && **s != ' ' && **s != '\t')
!     *s += 1;
! 
    return 0;
  }
  
Index: gas/config/tc-sparc.c
===================================================================
RCS file: /rel/cvsfiles/devo/gas/config/tc-sparc.c,v
retrieving revision 1.86.2.2
diff -c -r1.86.2.2 tc-sparc.c
*** tc-sparc.c	1994/05/17 18:37:46	1.86.2.2
--- tc-sparc.c	1994/05/19 19:52:32
***************
*** 1737,1750 ****
       segT segment;
       valueT size;
  {
!   /* This may or may not be right for ELF; a.out wants it, and COFF
!      will force the alignment anyways.  */
    valueT align = (valueT) 1 << (valueT) (stdoutput->xvec->align_power_min);
    valueT newsize;
    /* turn alignment value into a mask */
    align--;
    newsize = (size + align) & ~align;
    return newsize;
  }
  
  /* Exactly what point is a PC-relative offset relative TO?
--- 1737,1754 ----
       segT segment;
       valueT size;
  {
! #ifndef OBJ_ELF
!   /* This is not right for ELF; a.out wants it, and COFF will force
!      the alignment anyways.  */
    valueT align = (valueT) 1 << (valueT) (stdoutput->xvec->align_power_min);
    valueT newsize;
    /* turn alignment value into a mask */
    align--;
    newsize = (size + align) & ~align;
    return newsize;
+ #else
+   return size;
+ #endif
  }
  
  /* Exactly what point is a PC-relative offset relative TO?