delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1999/07/21/20:34:59

Message-ID: <19990722003428.12362.qmail@daffy.airs.com>
Date: 21 Jul 1999 20:34:27 -0400
From: Ian Lance Taylor <ian AT zembu DOT com>
To: snowball3 AT bigfoot DOT com
CC: binutils AT sourceware DOT cygnus DOT com, djgpp-workers AT delorie DOT com
In-reply-to: <199907220030.AAA09334@out5.ibm.net> (snowball3@bigfoot.com)
Subject: Re: DJGPP and alignment
References: <199907211607 DOT QAA38452 AT out1 DOT ibm DOT net>; from Mark E. on Wed, Jul 21, 1999 at 12:07:18PM -0400 <199907220030 DOT AAA09334 AT out5 DOT ibm DOT net>
Reply-To: djgpp-workers AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

   From: "Mark E." <snowball3 AT bigfoot DOT com>
   Date: Wed, 21 Jul 1999 20:30:51 -0400

   > I fear you're getting yourself into trouble, since there's no
   > way to change the section alignment in coff. 

   Since the documentation is silent on this, what does 
   COFF_DEFAULT_SECTION_ALIGNMENT_POWER do then? My tests 
   show it does increase the size of the object files and executables 
   accordingly.

Richard means that COFF can not change the alignment on a section by
section basis (i960 COFF is an exception).  The alignment is fixed to
a specific value: COFF_DEFAULT_SECTION_ALIGNMENT_POWER.

   > If you do any sort of collect-sections-to-make-data kinds of
   > things like .ctors or .dtors, that'll break.  Do you know that
   > you're using collect2 to construct constructor lists?

   I'm not 100% sure, but I don't think so. The linker script groups them 
   together in the .data section and surrounds them with special symbols 
   (djgpp_first_ctor, etc.) defined in the script.

Yes, but *(.ctors) in the linker will align each .ctors section in an
input file to COFF_DEFAULT_SECTION_ALIGNMENT_POWER, which will put
unsightly zero values in the .ctors section in the output file.

Or it would if .ctors and .dtors were not specially handled in
coff_new_section_hook in coffcode.h.  So you're OK on constructors and
destructors if you do indeed use the section names .ctors and .dtors.

Ian

- Raw text -


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