diff options
| author | YAMAMOTO Mitsuharu | 2011-12-09 21:33:20 +0900 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2011-12-09 21:33:20 +0900 |
| commit | b34d73171792a089e2fc3728990deae186578c83 (patch) | |
| tree | 1f37c3be48b92291fa69f5275aa7dd3109c6c9f7 /src | |
| parent | 2fac8180337f8e8ca153be4ae3946e30bf2a571c (diff) | |
| download | emacs-b34d73171792a089e2fc3728990deae186578c83.tar.gz emacs-b34d73171792a089e2fc3728990deae186578c83.zip | |
Fix for GNUstep build failure during dumping.
* unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
that where the value of an _OBJC_* symbol points to is in the .bss
section (Bug#10240).
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/unexelf.c | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index c533b93916d..44f80ae4098 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case | ||
| 4 | that where the value of an _OBJC_* symbol points to is in the .bss | ||
| 5 | section (Bug#10240). | ||
| 6 | |||
| 1 | 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change) | 7 | 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change) |
| 2 | 8 | ||
| 3 | * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end) | 9 | * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end) |
diff --git a/src/unexelf.c b/src/unexelf.c index 04c029f7e80..1715c3670ca 100644 --- a/src/unexelf.c +++ b/src/unexelf.c | |||
| @@ -1219,9 +1219,15 @@ temacs: | |||
| 1219 | nn = symp->st_shndx; | 1219 | nn = symp->st_shndx; |
| 1220 | if (nn > old_bss_index) | 1220 | if (nn > old_bss_index) |
| 1221 | nn--; | 1221 | nn--; |
| 1222 | old = ((symp->st_value - NEW_SECTION_H (symp->st_shndx).sh_addr) | 1222 | if (nn == old_bss_index) |
| 1223 | + OLD_SECTION_H (nn).sh_offset + old_base); | 1223 | memset (new, 0, symp->st_size); |
| 1224 | memcpy (new, old, symp->st_size); | 1224 | else |
| 1225 | { | ||
| 1226 | old = ((symp->st_value | ||
| 1227 | - NEW_SECTION_H (symp->st_shndx).sh_addr) | ||
| 1228 | + OLD_SECTION_H (nn).sh_offset + old_base); | ||
| 1229 | memcpy (new, old, symp->st_size); | ||
| 1230 | } | ||
| 1225 | } | 1231 | } |
| 1226 | #endif | 1232 | #endif |
| 1227 | } | 1233 | } |