summaryrefslogtreecommitdiff
path: root/ld/ldexp.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2002-02-12 14:50:08 +0000
committerJakub Jelinek <jakub@redhat.com>2002-02-12 14:50:08 +0000
commit2d20f7bf674ff3f0f43842677c70fc2879c5e2c7 (patch)
tree486a0034e29b96292c8bc2fbcd053045be1878ea /ld/ldexp.h
parentd2c1cacb1ee42bfab028bb553f4017ac54725843 (diff)
downloadbinutils-gdb-2d20f7bf674ff3f0f43842677c70fc2879c5e2c7.tar.gz
* ldlex.l (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens.
* ldgram.y (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens. (exp): Add DATA_SEGMENT_ALIGN (exp, exp) and DATA_SEGMENT_END (exp). * ldexp.c (exp_data_seg): New variable. (exp_print_token): Handle DATA_SEGMENT_ALIGN and DATA_SEGMENT_END. (fold_binary): Handle DATA_SEGMENT_ALIGN. (exp_fold_tree): Handle DATA_SEGMENT_END. Pass allocation_done when recursing instead of hardcoding lang_allocating_phase_enum. * ldexp.h (exp_data_seg): New. * ldlang.c (lang_size_sections_1): Renamed from lang_size_sections. (lang_size_sections): New. * ld.texinfo (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): Document. * scripttempl/elf.sc: Use DATA_SEGMENT_ALIGN and DATA_SEGMENT_END if COMMONPAGESIZE is defined. * emulparams/elf_i386.sh (COMMONPAGESIZE): Set to 4K. * emulparams/elf32_sparc.sh (COMMONPAGESIZE): Set to 8K. * emulparams/elf64_sparc.sh (COMMONPAGESIZE): Set to 8K. * emulparams/elf64alpha.sh (COMMONPAGESIZE): Set to 8K. * emulparams/elf64_ia64.sh (COMMONPAGESIZE): Set to 16K for shared libraries only.
Diffstat (limited to 'ld/ldexp.h')
-rw-r--r--ld/ldexp.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/ld/ldexp.h b/ld/ldexp.h
index 36f88f8b24f..fe152d8bb3f 100644
--- a/ld/ldexp.h
+++ b/ld/ldexp.h
@@ -88,6 +88,16 @@ typedef union etree_union {
} assert_s;
} etree_type;
+extern struct exp_data_seg {
+ enum {
+ exp_dataseg_none,
+ exp_dataseg_align_seen,
+ exp_dataseg_end_seen,
+ exp_dataseg_adjust
+ } phase;
+ bfd_vma base, end, pagesize;
+} exp_data_seg;
+
etree_type *exp_intop PARAMS ((bfd_vma));
etree_type *exp_relop PARAMS ((asection *, bfd_vma));
etree_value_type invalid PARAMS ((void));