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) Mon Oct 21 09:25:33 1991 Steve Chamberlain (steve at rtl.cygnus.com)
* configure.in: added ebmon entry. * configure.in: added ebmon entry.

View File

@ -93,7 +93,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifdef DEBUG #ifdef DEBUG
#undef NDEBUG #undef NDEBUG
#ifndef know
#define know(p) assert(p) /* Verify our assumptions! */ #define know(p) assert(p) /* Verify our assumptions! */
#endif /* not yet defined */
#else #else
#define know(p) /* know() checks are no-op.ed */ #define know(p) /* know() checks are no-op.ed */
#endif #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). * X_add_symbol != X_sub_symbol (then we just cancel them, => SEG_ABSOLUTE).
*/ */
#ifdef MANY_SEGMENTS #ifdef MANY_SEGMENTS
#define N_SEGMENTS 10
#define SEG_NORMAL(x) ((x) >= SEG_E0 && (x) <= SEG_E9) #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 #else
#define N_SEGMENTS 3
#define SEG_NORMAL(x) ((x) == SEG_TEXT || (x) == SEG_DATA || (x) == SEG_BSS) #define SEG_NORMAL(x) ((x) == SEG_TEXT || (x) == SEG_DATA || (x) == SEG_BSS)
#define SEG_LIST SEG_TEXT,SEG_DATA,SEG_BSS
#endif #endif
typedef enum _segT { typedef enum _segT {
SEG_ABSOLUTE = 0, SEG_ABSOLUTE = 0,
#ifdef MANY_SEGMENTS SEG_LIST,
/* 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_UNKNOWN, SEG_UNKNOWN,
SEG_ABSENT, /* Mythical Segment (absent): NO expression seen. */ SEG_ABSENT, /* Mythical Segment (absent): NO expression seen. */
SEG_PASS1, /* Mythical Segment: Need another pass. */ SEG_PASS1, /* Mythical Segment: Need another pass. */

View File

@ -57,17 +57,35 @@ ebmon)
generic) obj_format=generic ;; generic) obj_format=generic ;;
hds) hds)
obj_format=ieee obj_format=coff-bfd
need_bfd="$(unsubdir)/../bfd$(subdir)/libbfd.a" 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 case ${target_vendor} in
aout) obj_format=aout ;; aout) obj_format=aout ;;
bout) obj_format=bout ;; bout) obj_format=bout ;;
coff) obj_format=coff ;; coff)
obj_format=coff
case ${target_cpu} in
i960) emulation=ic960 ;;
esac
;;
*) obj_format=aout ;; *) obj_format=aout ;;
esac 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 GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by 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. any later version.
GAS is distributed in the hope that it will be useful, 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) */ /* chain, even if it contains no (complete) */
/* frags. */ /* 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; extern frchainS * data0_frchainP;
/* Sentinel for frchain crawling. */ /* Sentinel for frchain crawling. */
/* Points to the 1st data-segment frchain. */ /* Points to the 1st data-segment frchain. */
/* (Which is pointed to by the last text- */ /* (Which is pointed to by the last text- */
/* segment frchain.) */ /* segment frchain.) */
#endif
/* end: subsegs.h */ /* end: subsegs.h */