Mon Nov 25 17:26:22 1991 Steve Chamberlain (sac at cygnus.com)

* as.c: (perform_an_assembly_pass): moved declaration of i to
	avoid a syntax error. Now always create the three default
	sections when in MANY_SEGMENTS mode.
	* as.h: New improved way of specifying MANY_SEGMENTS
	* configure.in: hds object format is now coff-bfd
	* subsegs.h: add line numbers and section stuff to the
	segment_info structure. (But go back later and fix.. this is
	COFF specific)
This commit is contained in:
Steve Chamberlain 1991-11-26 02:15:13 +00:00
parent 605fe2b1b0
commit ace68c4ed9
4 changed files with 69 additions and 12 deletions

View File

@ -1,3 +1,20 @@
Mon Nov 25 17:26:22 1991 Steve Chamberlain (sac at cygnus.com)
* as.c: (perform_an_assembly_pass): moved declaration of i to
avoid a syntax error. Now always create the three default
sections when in MANY_SEGMENTS mode.
* as.h: New improved way of specifying MANY_SEGMENTS
* configure.in: hds object format is now coff-bfd
* subsegs.h: add line numbers and section stuff to the
segment_info structure. (But go back later and fix.. this is
COFF specific)
Thu Oct 24 17:25:59 1991 Steve Chamberlain (steve at rtl.cygnus.com)
* config/obj-coff.c (obj_coff_dim): Allows newline to end a
.dim statement.
Mon Oct 21 09:25:33 1991 Steve Chamberlain (steve at rtl.cygnus.com)
* configure.in: added ebmon entry.

View File

@ -93,7 +93,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifdef DEBUG
#undef NDEBUG
#ifndef know
#define know(p) assert(p) /* Verify our assumptions! */
#endif /* not yet defined */
#else
#define know(p) /* know() checks are no-op.ed */
#endif
@ -140,22 +142,20 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
* X_add_symbol != X_sub_symbol (then we just cancel them, => SEG_ABSOLUTE).
*/
#ifdef MANY_SEGMENTS
#define N_SEGMENTS 10
#define SEG_NORMAL(x) ((x) >= SEG_E0 && (x) <= SEG_E9)
#define SEG_LIST SEG_E0,SEG_E1,SEG_E2,SEG_E3,SEG_E4,SEG_E5,SEG_E6,SEG_E7,SEG_E8,SEG_E9
#else
#define N_SEGMENTS 3
#define SEG_NORMAL(x) ((x) == SEG_TEXT || (x) == SEG_DATA || (x) == SEG_BSS)
#define SEG_LIST SEG_TEXT,SEG_DATA,SEG_BSS
#endif
typedef enum _segT {
SEG_ABSOLUTE = 0,
#ifdef MANY_SEGMENTS
/* For the moment, we allow only 10 extra segments to be specified by the user */
SEG_E0, SEG_E1,SEG_E2,SEG_E3,SEG_E4,SEG_E5,SEG_E6,SEG_E7,SEG_E8,SEG_E9,
#else
SEG_TEXT,
SEG_DATA,
SEG_BSS,
#endif
SEG_LIST,
SEG_UNKNOWN,
SEG_ABSENT, /* Mythical Segment (absent): NO expression seen. */
SEG_PASS1, /* Mythical Segment: Need another pass. */

View File

@ -57,17 +57,35 @@ ebmon)
generic) obj_format=generic ;;
hds)
obj_format=ieee
obj_format=coff-bfd
need_bfd="$(unsubdir)/../bfd$(subdir)/libbfd.a"
;;
coff* | sysv*) obj_format=coff ;;
sysv32)
obj_format=coff
emulation=sysv32
;;
coff* | sysv*)
obj_format=coff
case ${target_vendor} in
bull) emulation=dpx2 ;;
sco) emulation=sco386 ;;
sun) emulation=sun3 ;;
*)
esac
;;
*)
case ${target_vendor} in
aout) obj_format=aout ;;
bout) obj_format=bout ;;
coff) obj_format=coff ;;
coff)
obj_format=coff
case ${target_cpu} in
i960) emulation=ic960 ;;
esac
;;
*) obj_format=aout ;;
esac
;;

View File

@ -5,7 +5,7 @@ This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
the Free Software Foundation; either version 2, or (at your option)
any later version.
GAS is distributed in the hope that it will be useful,
@ -56,10 +56,32 @@ extern frchainS * frchain_now;
/* chain, even if it contains no (complete) */
/* frags. */
#ifdef MANY_SEGMENTS
typedef struct
{
frchainS *frchainP;
int hadone;
int user_stuff;
struct frag *frag_root;
struct frag *last_frag;
fixS *fix_root;
fixS *fix_tail;
struct internal_scnhdr scnhdr;
symbolS *dot;
struct lineno_list *lineno_list_head;
struct lineno_list *lineno_list_tail;
} segment_info_type;
segment_info_type segment_info[];
#else
extern frchainS * data0_frchainP;
/* Sentinel for frchain crawling. */
/* Points to the 1st data-segment frchain. */
/* (Which is pointed to by the last text- */
/* segment frchain.) */
#endif
/* end: subsegs.h */