Article View: fj.editor.mule
Article #3291Re: undump failure on Solaris 2.4
From: Hiroshi NAKANO
Date: Wed, 20 Dec 1995 00:00
Date: Wed, 20 Dec 1995 00:00
103 lines
4806 bytes
4806 bytes
$BCfLn(B@$BN6C+$G$9!#(B
In article <4aq7jf$ctj@isnews.is.s.u-tokyo.ac.jp>
furuso@is.s.u-tokyo.ac.jp (FURUSOU Shinichi) writes:
| $B=q$-K:$l$^$7$?$,!"(B ld $B4XO"$N%Q%C%A$H$7$F$O(B 102303-05, 102049-02 $B$rEv(B
|$B$F$F$"$j$^$9!#B>$K(B Recommended Patches, Security Patches $B$rEv$F$F$"$j(B
|$B$^$9!#(B
102049-02 $B$N8e$G(B 102303-05 $B$rEv$F$i$l$?$N$G$9$h$M!#(B
$B$3$N(B 102303-05 $B$H$$$&%Q%C%A$,6J<T$G!"$3$l$K4^$^$l$k(B ld $B$O!"(Btemacs $B$N(B
data segment $B$K$J$<$+(B relocation $B$r;D$7$F$7$^$&$h$&$G$9!#(B ($B$J$<$=$&$7(B
$B$?$$$N$+$O$J$s$H$J$/J,$+$k$N(B$B$G$9$,(B ...) $B$=$N$?$a(B temacs $B$N5/F0;~$H!"(B
dumped emacs $B$N5/F0;~$H$G!"Fs=E$K(B relocation $B$,<B9T$5$l$F$7$^(B$B$$$^$9!#(B
$B0lJ}!"(B102049-02 $B$N(B ld $B$O$3$N$h$&$J(B relocation $B$r;D$5$J$$$h$&$G$9!#(B
In article <4aq7jf$ctj@isnews.is.s.u-tokyo.ac.jp>
furuso@is.s.u-tokyo.ac.jp (FURUSOU Shinichi) writes:
| $BD4$Y$F$_$?$H$3$m(B xlwMenuWidgetClass $B$N(B superclass $B$N=i4|CM(B
|(&coreClassRec) $B$,(B make $B;~$N(B dump $B$NA08e$GJQ2=$7$F$7$^$C(B$B$F$$$k$h$&$G$7(B
|$B$?!#(B
xlwMenuWidgetClass $B$N(B superclass $B$NCM$,FsG\$K$J$C$F$7$^$C$F$$$k$N$G$9(B
$B$h$M(B ... $B$3$l$O!"(Bld.so $B$,$3$N%U%#!<%k%I(B($B:G=i$O(B 0)$B$K!"(Btemacs $B$N5/F0;~$H(B
dumped emacs $B$N5/F0;~$H!"FsEY(B &coreClassRec $B$rB-$79~$`$+$i$G$7$g$&!#(B
|$B0l1~!"<B9T;~$K(B superclass $B$r;XDj$7D>$9$3$H$GF0:n$9$k$h$&$K$O$J$j$^(B
|$B$7$?!#(B
text segment $B$O(B dump $B$5$l$^$;$s$+$i!"(Btemacs $B$N5/F0;~$N(B relocation $B$N7k(B
$B2L$O(B dumped emacs $B$N(B$BJ}$K$OJ]B8$5$l$^$;$s!#(B $B$G$9$+$i!"$*$C$7$c$kJ}K!$G(B
$BF0$/$h$&$K$J$k$N$@$H;W$$$^$9!#(B
| shared library $B$N(B$BMm$s$@(B dump $B$NLdBj$N$h$&$J$N$G!"K\Mh$J$i(B unexec $B$N(B
|$BJ}$r$$$8$k$Y$-$+$H;W$&$N$G$9$,!";d$O$=$A$i$NJ}LL(B$B$K$OL@$k$/$"$j$^$;$s!#(B
|$BB>$KF1$8LdBj$KEv$?$i$l$?J}$O$$$i$C$7$c$$$^$;$s$G$7$g$&$+!#(B
$B<B$O$3$l$HF1$8Ld(B$BBj$,!"(B18.27 $B0JA0(B $B$N(B emacs $B$N(B sun-sparc-sunos4shr $B$G$*(B
$B$-$F$$$^$7$?!#(B $B8=:_$NHG$G$O!"(Bunexec $B$,!"(Btemacs $B$N5/F0;~$N(B relocaltion
$B$r%j%;%C%H$9$k$h$&$K$J$C$F$$$^$9!#(B
$B$G!"2r7hK!$G$9$,!"(B18.28 $B$N(B src/unexelf.c $B$K(B$B0J2<$N%Q%C%A$rEv$F$F8+$F2<(B
$B$5$$!#(B $B>/$J$/$H$b(B Solaris 2.4 $B$O!"$3$l$GBg>fIW$@$H;W$$$^$9!#(B $B$?$@$7!"(B
$BB>$N(B SVR4 $B7O$N(B OS (linux, dgux, esix $B$J$I(B)$B$KI{:nMQ$r5Z$\$5$J$$$+$I$&$+(B
$B$O$A$g$C$H<+?H$,$"$j$^$;$s!#(B
*** src/unexelf.c.ORG Fri Oct 21 13:21:00 1994
--- src/unexelf.c Wed Dec 20 09:52:09 1995
***************
*** 796,801 ****
--- 796,841 ----
memcpy (&symp->st_value, &new_bss_addr, sizeof (new_bss_addr));
}
+ /* Undo relocations. */
+ #define UNDO_RELOC_SEC(rel_type, n) \
+ do { \
+ rel_type *relp, *relendp; \
+ \
+ relp = (rel_type *) (NEW_SECTION_H (n).sh_offset + new_base); \
+ relendp = (rel_type *) ((byte *)relp + NEW_SECTION_H (n).sh_size); \
+ \
+ for (; relp < relendp; relp ++) \
+ { \
+ for (nn = old_file_h->e_phnum - 1; nn; nn--) \
+ { \
+ if (OLD_PROGRAM_H (nn).p_type == PT_LOAD \
+ && relp->r_offset >= OLD_PROGRAM_H (nn).p_vaddr \
+ && relp->r_offset < OLD_PROGRAM_H (nn).p_vaddr \
+ + OLD_PROGRAM_H (nn).p_filesz) \
+ { \
+ memcpy (relp->r_offset - OLD_PROGRAM_H (nn).p_vaddr \
+ + OLD_PROGRAM_H (nn).p_offset + new_base, \
+ relp->r_offset - OLD_PROGRAM_H (nn).p_vaddr \
+ + OLD_PROGRAM_H (nn).p_offset + old_base, \
+ sizeof (Elf32_Word)); \
+ break; \
+ } \
+ } \
+ } \
+ } while(0)
+
+ for (n = new_file_h->e_shnum - 1; n; n--)
+ {
+ if (NEW_SECTION_H (n).sh_type == SHT_REL)
+ {
+ UNDO_RELOC_SEC(Elf32_Rel, n);
+ }
+ else if (NEW_SECTION_H (n).sh_type == SHT_RELA)
+ {
+ UNDO_RELOC_SEC(Elf32_Rela, n);
+ }
+ }
+
/* Close the files and make the new file executable. */
if (close (old_file))
--
Hiroshi Nakano <nakano@rins.ryukoku.ac.jp>
Ryukoku Univ., Seta, Otsu, Japan
Technical Details
Message-ID:
<NAKANO.95Dec20124508@dolphin70.math.ryukoku.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<4apu2d$b9f@isnews.is.s.u-tokyo.ac.jp> <4aq7jf$ctj@isnews.is.s.u-tokyo.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10eba4,6359c222a0616c28 X-Google-Attributes: gid10eba4,public From: nakano@math.ryukoku.ac.jp (Hiroshi NAKANO) Subject: Re: undump failure on Solaris 2.4 Date: 1995/12/20 Message-ID: <NAKANO.95Dec20124508@dolphin70.math.ryukoku.ac.jp> X-Deja-AN: 122391861 sender: news@rins.ryukoku.ac.jp references: <4apu2d$b9f@isnews.is.s.u-tokyo.ac.jp> <4aq7jf$ctj@isnews.is.s.u-tokyo.ac.jp> followup-to: fj.editor.mule organization: Ryukoku Univ., Seta, Otsu, Japan reply-to: nakano@rins.ryukoku.ac.jp newsgroups: fj.editor.mule