gcl.git - GNU Common Lisp

index : gcl.git
GNU Common Lisp
summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamm Maguire <camm@debian.org>2005年01月13日 22:42:54 +0000
committerCamm Maguire <camm@debian.org>2005年01月13日 22:42:54 +0000
commit87ac0cc2e88989cf0c0ee2704b06274608c4d195 (patch)
treebcddd962870c71c77f8b3fcb6178ae5df36610b9
parente704d2dcdd5312259371ac9e6219b77c6a98a2b9 (diff)
downloadgcl-unlabeled-1.12.4.1.2.4.10.tar.gz
Allow .data section to be first in executable, as on solaris. Also allow for new bfd section size semanticsunlabeled-1.12.4.1.2.4.10
Diffstat
-rw-r--r--gcl/o/sfaslbfd.c 11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcl/o/sfaslbfd.c b/gcl/o/sfaslbfd.c
index cb0643d86..c2e98e251 100644
--- a/gcl/o/sfaslbfd.c
+++ b/gcl/o/sfaslbfd.c
@@ -263,7 +263,7 @@ fasload(object faslfile) {
current=round_up(current,1<<s->alignment_power);
- current+=s->_raw_size;
+ current+=bfd_section_size(b,s);
}
curr_size=(unsigned long)current;
@@ -288,7 +288,7 @@ fasload(object faslfile) {
m=round_up(m,1<<s->alignment_power);
s->output_section->vma=(unsigned long)m;
- m+=s->_raw_size;
+ m+=bfd_section_size(b,s);
}
@@ -306,7 +306,7 @@ fasload(object faslfile) {
struct bfd_link_hash_entry *h;
if (!strncmp(entry_name_ptr,q[u]->name,5)) {
- init_address=q[u]->value;
+ init_address=q[u]->value+(q[u]->section->output_section->vma-(unsigned long)memory->cfd.cfd_start);
continue;
}
@@ -344,6 +344,8 @@ fasload(object faslfile) {
for (s=b->sections;s;s=s->next) {
+ unsigned long ss=bfd_section_size(b,s);
+
if (!(s->flags & SEC_LOAD))
continue;
@@ -353,9 +355,10 @@ fasload(object faslfile) {
v,0,q))
FEerror("Cannot get relocated section contents\n",0);
- memcpy((void *)(unsigned long)s->output_section->vma,v,s->_raw_size);
+ memcpy((void *)(unsigned long)s->output_section->vma,v,ss);
}
+
}
dum.sm.sm_object1=faslfile;
generated by cgit v1.2.3 (git 2.25.1) at 2025年09月06日 07:59:57 +0000

AltStyle によって変換されたページ (->オリジナル) /