diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:26 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:26 -0800 |
commit | deda2c0fd8689349fea2a900199a76ff7ecb319e (patch) | |
tree | c9726d54a0806a9b0c75e6c82db8692aea0053cf /unexalpha.c | |
parent | 3278b75942bdbe706f7a0fba87729bb1e935b68b (diff) | |
download | scm-480dce1955c6d4d9463f2c0641be6f36576a0c5e.tar.gz scm-480dce1955c6d4d9463f2c0641be6f36576a0c5e.zip |
Import Upstream version 5d6upstream/5d6
Diffstat (limited to 'unexalpha.c')
-rw-r--r-- | unexalpha.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/unexalpha.c b/unexalpha.c index 2adfd1f..69db5fd 100644 --- a/unexalpha.c +++ b/unexalpha.c @@ -20,7 +20,15 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <config.h> +#ifndef emacs +# ifndef __ELF__ + /* Describe layout of the address space in an executing process. */ +# define TEXT_START 0x120000000 +# define DATA_START 0x140000000 +# endif +#else +# include <config.h> +#endif #include <sys/types.h> #include <sys/file.h> #include <sys/stat.h> @@ -93,7 +101,7 @@ struct headers { /* Define name of label for entry point for the dumped executable. */ #ifndef DEFAULT_ENTRY_ADDRESS -#define DEFAULT_ENTRY_ADDRESS __start +# define DEFAULT_ENTRY_ADDRESS __start #endif unexec (new_name, a_name, data_start, bss_start, entry_address) @@ -194,10 +202,10 @@ unexec (new_name, a_name, data_start, bss_start, entry_address) #endif #ifdef _PDATA CHECK_SCNHDR (pdata_section, _PDATA, STYP_PDATA); -#endif _PDATA +#endif /* _PDATA */ #ifdef _GOT CHECK_SCNHDR (got_section, _GOT, STYP_GOT); -#endif _GOT +#endif /* _GOT */ CHECK_SCNHDR (data_section, _DATA, STYP_DATA); #ifdef _XDATA CHECK_SCNHDR (xdata_section, _XDATA, STYP_XDATA); @@ -315,7 +323,7 @@ unexec (new_name, a_name, data_start, bss_start, entry_address) "writing data section to %s", new_name); #ifdef _GOT -#define old_got_section ((struct scnhdr *)buffer) +# define old_got_section ((struct scnhdr *)buffer) if (got_section != NULL) { @@ -327,7 +335,7 @@ unexec (new_name, a_name, data_start, bss_start, entry_address) "seeking to end of data section of %s", new_name); } -#undef old_got_section +# undef old_got_section #endif /* @@ -408,10 +416,10 @@ update_dynamic_symbols (old, new_name, new, aout) x = ds_base[rd_base[i].index]; -#if 0 +# if 0 fprintf (stderr, "Object inspected: %s, addr = %lx, shndx = %x", old + dynstr_section->s_scnptr + x.st_name, rd_base[i].addr, x.st_shndx); -#endif +# endif if ((ELF32_ST_BIND (x.st_info) == STB_GLOBAL) @@ -433,13 +441,13 @@ update_dynamic_symbols (old, new_name, new, aout) unsigned long newref = aout.tsize + reladdr; int len; -#if 0 +# if 0 fprintf (stderr, "...relocated\n"); -#endif +# endif - if (rd_base[i].type == R_REFLONG) + if (rd_base[i].type == R_REFLONG) len = 4; - else if (rd_base[i].type == R_REFQUAD) + else if (rd_base[i].type == R_REFQUAD) len = 8; else fatal_unexec ("unrecognized relocation type in .dyn.rel section (symbol #%d)", i); @@ -448,10 +456,10 @@ update_dynamic_symbols (old, new_name, new, aout) WRITE (new, oldref, len, "writing old dynrel info in %s", new_name); } -#if 0 +# if 0 else fprintf (stderr, "...not relocated\n"); -#endif +# endif } |