* Makefile.in (earmsymbian.c): Depend on armbpabi.sc, not elf.sc.

* ldexp.h (segment_type): New type.
	(segments): New variable.
	* ldexp.c (segments): New variable.
	(exp_print_token): Handle SEGMENT_START.
	(fold_binary): Likewise.
	* ldgram.y (SEGMENT_START): Declare it as a token.
	(exp): Handle SEGMENT_START.
	* ldlang.h (lang_address_statement_type): Add segment field.
	(lang_section_start): Change prototype.
	* ldlang.c (map_input_to_output_sections): Do not process section
	assignments if a corresponding SEGMENT_START has already been
	seen.
	(lang_section_start): Add segment parameter.
	* ldlex.l (SEGMENT_START): Add it.
	* lexsup.c (seg_segment_start): New function.
	(parse_args): Use it for -Tbss, -Tdata, and -Ttext.
	* ld.texinfo (SEGMENT_START): Document it.
	* emulparams/armsymbian.sh (EMBEDDED): Set it.
	* scripttempl/armbpabi.sc: Use SEGMENT_START to control segment
	base addresses.  Do not map relocations.
	* NEWS: Mention SEGMENT_START.
This commit is contained in:
Mark Mitchell
2004-10-26 18:41:52 +00:00
parent 1ec5cd3721
commit ba916c8af2
14 changed files with 235 additions and 150 deletions

View File

@@ -316,6 +316,7 @@ typedef struct lang_address_statement_struct
lang_statement_header_type header;
const char *section_name;
union etree_union *address;
const segment_type *segment;
} lang_address_statement_type;
typedef struct
@@ -461,7 +462,7 @@ extern void lang_final
extern void lang_process
(void);
extern void lang_section_start
(const char *, union etree_union *);
(const char *, union etree_union *, const segment_type *);
extern void lang_add_entry
(const char *, bfd_boolean);
extern void lang_add_target