* write.c (fixup_segment): if relaxing, don't do anything.

* config/obj-bout.[ch] : maintain the a_relaxable file header info
	* config/tc-i960.c: new option -linkrelax
This commit is contained in:
Steve Chamberlain
1992-07-16 15:22:26 +00:00
parent 01bbba251b
commit 462088b886
3 changed files with 50 additions and 8 deletions

View File

@ -1,3 +1,23 @@
Thu Jul 16 08:20:17 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* write.c (fixup_segment): if relaxing, don't do anything.
* config/obj-bout.[ch] : maintain the a_relaxable file header info
* config/tc-i960.c: new option -linkrelax
Mon Jul 13 14:11:36 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* expr.c (expr): allow SEG_BSS in expressions
* read.c (potable): align should be nbytes, not ptwo!
* write.c (write_object_file): extra glue for new bss attributes
(relax_segment): SEG_BSS is ok now
* config/tc-m68k.c (m68k_ip_op): can now parse more @( modes
Mon Jun 1 16:20:22 1992 Michael Tiemann (tiemann@cygnus.com)
* configure.in: recognize m680x0 as having sun3 emulation mode for
vxworks environment.
Tue Jun 30 20:25:54 1992 D. V. Henkel-Wallace (gumby@cygnus.com) Tue Jun 30 20:25:54 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
* Makefile.in: Add program_suffix (parallel to program_prefix) * Makefile.in: Add program_suffix (parallel to program_prefix)
@ -19,7 +39,26 @@ Tue Jun 9 07:54:54 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* write.c (write_object_file): various changes to handle data in * write.c (write_object_file): various changes to handle data in
the BSS segment in much the same was as stuff in the DATA segment. the BSS segment in much the same was as stuff in the DATA segment.
* subsegs.c (subseg_change): allow and handle a change into SEG_BSS.
Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* expr.c(expr): allow SEG_REGISTER in expressions.
* read.c(pseudo_set): register expressions can be the source of a
set.
* subsegs.c (subseg_new): Now -R forces all changes to SEG_DATA to
goto SEG_TEXT (if a.out)
* write.c (write_object_file): If a.out don't use the old way for
-R.
* config/obj-a.out (s_sect): complain if the user tries to use a
subsegment with a value which might interfere with out -R hackery.
* config/tc-m68k.c (m68k_reg_parse): lookup names in symbol table
rather than use ugly if tree. (init_regtable): insert register
names into symbol table.
Tue Jun 2 16:47:09 1992 Steve Chamberlain (sac@cygnus.com)
* write.c (write_object_file): keep the fix_tail clean, which
fixes a bug in -R where relocations were being lost.
Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com) Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com)
@ -46,6 +85,7 @@ Mon Jun 1 16:20:22 1992 Michael Tiemann (tiemann@cygnus.com)
* configure.in: recognize m680x0 as having sun3 emulation mode for * configure.in: recognize m680x0 as having sun3 emulation mode for
vxworks environment. vxworks environment.
>>>>>>> 1.62
Sun May 31 05:33:00 1992 david d `zoo' zuhn (zoo@cygnus.com) Sun May 31 05:33:00 1992 david d `zoo' zuhn (zoo@cygnus.com)
* configure.in: recognize m680x0 as an m68k * configure.in: recognize m680x0 as an m68k

View File

@ -130,7 +130,9 @@ object_headers *headers;
headers->header.a_tload = 0; headers->header.a_tload = 0;
headers->header.a_dload = md_section_align(SEG_DATA, H_GET_TEXT_SIZE(headers)); headers->header.a_dload = md_section_align(SEG_DATA, H_GET_TEXT_SIZE(headers));
headers->header.a_relaxable = linkrelax;
append(where, (char *) &headers->header, sizeof(headers->header)); append(where, (char *) &headers->header, sizeof(headers->header));
} /* a_header_append() */ } /* a_header_append() */

View File

@ -100,12 +100,12 @@ struct exec {
unsigned long a_drsize; /* Length of data relocation info */ unsigned long a_drsize; /* Length of data relocation info */
/* Added for i960 */ /* Added for i960 */
unsigned long a_tload; /* Text runtime load address */ unsigned long a_tload; /* Text runtime load address */
unsigned long a_dload; /* Data runtime load address */ unsigned long a_dload; /* Data runtime load address */
unsigned char a_talign; /* Alignment of text segment */ unsigned char a_talign; /* Alignment of text segment */
unsigned char a_dalign; /* Alignment of data segment */ unsigned char a_dalign; /* Alignment of data segment */
unsigned char a_balign; /* Alignment of bss segment */ unsigned char a_balign; /* Alignment of bss segment */
unsigned char unused; /* (Just to make struct size a multiple of 4) */ unsigned char a_relaxable; /* Contains enough info to relax */
}; };
#define N_BADMAG(x) (((x).a_magic)!=BMAGIC) #define N_BADMAG(x) (((x).a_magic)!=BMAGIC)