Mercurial > emacs
diff src/unexec.c @ 96732:1e0b67e40d48
* systty.h: Remove code for Aix on 386, unsupported platform.
* s/ms-w32.h: Remove boilerplate comments.
(fcloseall, fgetchar, flushall, fputchar, getw, putw): Remove, unused.
* s/gnu-linux.h (TERM): Remove support.
(HAVE_SYSVIPC): Remove, unused.
(A_TEXT_OFFSET, A_TEXT_SEEK, ADJUST_EXEC_HEADER): Remove, not used
for this system.
* process.c: Remove support for IRIS, unused.
Remove support for TERM, not relevant anymore.
* unexalpha.c (DEFAULT_ENTRY_ADDRESS): Remove, replace the only
used with the definition.
* s/aix4-2.h (static): Do not undef.
* m/ibmrs6000.h: Remove code depending on USG5_4, this file is
only used on Aix.
(HAVE_SYSVIPC): Remove, unused.
* m/hp800.h (CANNOT_DUMP): Do not undef.
* m/alpha.h: Fix comment.
* s/usg5-4.h (HAVE_SYSVIPC): Remove, unused.
(USG_SHARED_LIBRARIES): Remove, only used in unexec.c which is not
used by this configuration.
* emacs.c: Remove code depending on USG_SHARED_LIBRARIES.
* unexec.c: Remove code depending on HPUX and
USG_SHARED_LIBRARIES, not used with this file. Remove code
depending on IRIS, unused. Remove if 0-ed code.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Wed, 16 Jul 2008 08:06:18 +0000 |
parents | 31cae2dacc05 |
children | baf6162e41d4 |
line wrap: on
line diff
--- a/src/unexec.c Wed Jul 16 07:55:50 2008 +0000 +++ b/src/unexec.c Wed Jul 16 08:06:18 2008 +0000 @@ -229,41 +229,11 @@ #else /* not COFF */ -#ifdef HPUX -extern void *sbrk (); -#else -#if 0 -/* Some systems with __STDC__ compilers still declare this `char *' in some - header file, and our declaration conflicts. The return value is always - cast, so it should be harmless to leave it undefined. Hopefully - machines with different size pointers and ints declare sbrk in a header - file. */ -#ifdef __STDC__ -extern void *sbrk (); -#else extern char *sbrk (); -#endif /* __STDC__ */ -#endif -#endif /* HPUX */ #define SYMS_START ((long) N_SYMOFF (ohdr)) -#ifdef HPUX -#ifdef HP9000S200_ID -#define MY_ID HP9000S200_ID -#else -#include <model.h> -#define MY_ID MYSYS -#endif /* no HP9000S200_ID */ -static MAGIC OLDMAGIC = {MY_ID, SHARE_MAGIC}; -static MAGIC NEWMAGIC = {MY_ID, DEMAND_MAGIC}; -#define N_TXTOFF(x) TEXT_OFFSET(x) -#define N_SYMOFF(x) LESYM_OFFSET(x) -static struct exec hdr, ohdr; - -#else /* not HPUX */ - -#if defined (USG) && !defined (IRIS) && !defined (GNU_LINUX) +#if defined (USG) static struct bhdr hdr, ohdr; #define a_magic fmagic #define a_text tsize @@ -277,11 +247,10 @@ (((x).fmagic)!=OMAGIC && ((x).fmagic)!=NMAGIC &&\ ((x).fmagic)!=FMAGIC && ((x).fmagic)!=IMAGIC) #define NEWMAGIC FMAGIC -#else /* IRIS or not USG */ +#else /* not USG */ static struct exec hdr, ohdr; #define NEWMAGIC ZMAGIC -#endif /* IRIS or not USG */ -#endif /* not HPUX */ +#endif /* not USG */ static int unexec_text_start; static int unexec_data_start; @@ -358,11 +327,7 @@ auto struct scnhdr scntemp; /* Temporary section header */ register int scns; #endif /* COFF */ -#ifdef USG_SHARED_LIBRARIES - extern unsigned int bss_end; -#else unsigned int bss_end; -#endif pagemask = getpagesize () - 1; @@ -479,17 +444,6 @@ /* Now we alter the contents of all the f_*hdr variables to correspond to what we want to dump. */ -#ifdef USG_SHARED_LIBRARIES - - /* The amount of data we're adding to the file is distance from the - * end of the original .data space to the current end of the .data - * space. - */ - - bias = bss_start - (f_ohdr.data_start + f_dhdr.s_size); - -#endif - f_hdr.f_flags |= (F_RELFLG | F_EXEC); #ifndef NO_REMAP f_ohdr.text_start = (long) start_of_text (); @@ -532,9 +486,7 @@ f_bhdr.s_vaddr = f_ohdr.data_start + f_ohdr.dsize; f_bhdr.s_size = f_ohdr.bsize; f_bhdr.s_scnptr = 0L; -#ifndef USG_SHARED_LIBRARIES bias = f_dhdr.s_scnptr + f_dhdr.s_size - block_copy_start; -#endif if (f_hdr.f_symptr > 0L) { @@ -560,8 +512,6 @@ PERROR (new_name); } -#ifndef USG_SHARED_LIBRARIES - if (write (new, &f_thdr, sizeof (f_thdr)) != sizeof (f_thdr)) { PERROR (new_name); @@ -577,55 +527,6 @@ PERROR (new_name); } -#else /* USG_SHARED_LIBRARIES */ - - /* The purpose of this code is to write out the new file's section - * header table. - * - * Scan through the original file's sections. If the encountered - * section is one we know (.text, .data or .bss), write out the - * correct header. If it is a section we do not know (such as - * .lib), adjust the address of where the section data is in the - * file, and write out the header. - * - * If any section precedes .text or .data in the file, this code - * will not adjust the file pointer for that section correctly. - */ - - /* This used to use sizeof (f_ohdr) instead of .f_opthdr. - .f_opthdr is said to be right when there is no optional header. */ - lseek (a_out, sizeof (f_hdr) + f_hdr.f_opthdr, 0); - - for (scns = f_hdr.f_nscns; scns > 0; scns--) - { - if (read (a_out, &scntemp, sizeof (scntemp)) != sizeof (scntemp)) - PERROR (a_name); - - if (!strcmp (scntemp.s_name, f_thdr.s_name)) /* .text */ - { - if (write (new, &f_thdr, sizeof (f_thdr)) != sizeof (f_thdr)) - PERROR (new_name); - } - else if (!strcmp (scntemp.s_name, f_dhdr.s_name)) /* .data */ - { - if (write (new, &f_dhdr, sizeof (f_dhdr)) != sizeof (f_dhdr)) - PERROR (new_name); - } - else if (!strcmp (scntemp.s_name, f_bhdr.s_name)) /* .bss */ - { - if (write (new, &f_bhdr, sizeof (f_bhdr)) != sizeof (f_bhdr)) - PERROR (new_name); - } - else - { - if (scntemp.s_scnptr) - scntemp.s_scnptr += bias; - if (write (new, &scntemp, sizeof (scntemp)) != sizeof (scntemp)) - PERROR (new_name); - } - } -#endif /* USG_SHARED_LIBRARIES */ - return (0); #else /* if not COFF */ @@ -684,11 +585,6 @@ PERROR (new_name); } -#if 0 /* This #ifndef caused a bug on GNU/Linux when using QMAGIC. */ - /* This adjustment was done above only #ifndef NO_REMAP, - so only undo it now #ifndef NO_REMAP. */ - /* #ifndef NO_REMAP */ -#endif #ifdef A_TEXT_OFFSET hdr.a_text -= A_TEXT_OFFSET (ohdr); #endif @@ -767,63 +663,6 @@ #ifdef COFF -#ifdef USG_SHARED_LIBRARIES - - int scns; - struct scnhdr scntemp; /* Temporary section header */ - - /* The purpose of this code is to write out the new file's section - * contents. - * - * Step through the section table. If we know the section (.text, - * .data) do the appropriate thing. Otherwise, if the section has - * no allocated space in the file (.bss), do nothing. Otherwise, - * the section has space allocated in the file, and is not a section - * we know. So just copy it. - */ - - lseek (a_out, sizeof (struct filehdr) + sizeof (struct aouthdr), 0); - - for (scns = f_hdr.f_nscns; scns > 0; scns--) - { - if (read (a_out, &scntemp, sizeof (scntemp)) != sizeof (scntemp)) - PERROR ("temacs"); - - if (!strcmp (scntemp.s_name, ".text")) - { - lseek (new, (long) text_scnptr, 0); - ptr = (char *) f_ohdr.text_start; - end = ptr + f_ohdr.tsize; - write_segment (new, ptr, end); - } - else if (!strcmp (scntemp.s_name, ".data")) - { - lseek (new, (long) data_scnptr, 0); - ptr = (char *) f_ohdr.data_start; - end = ptr + f_ohdr.dsize; - write_segment (new, ptr, end); - } - else if (!scntemp.s_scnptr) - ; /* do nothing - no data for this section */ - else - { - char page[BUFSIZ]; - int size, n; - long old_a_out_ptr = lseek (a_out, 0, 1); - - lseek (a_out, scntemp.s_scnptr, 0); - for (size = scntemp.s_size; size > 0; size -= sizeof (page)) - { - n = size > sizeof (page) ? sizeof (page) : size; - if (read (a_out, page, n) != n || write (new, page, n) != n) - PERROR ("emacs"); - } - lseek (a_out, old_a_out_ptr, 0); - } - } - -#else /* COFF, but not USG_SHARED_LIBRARIES */ - #ifdef MSDOS #if __DJGPP__ >= 2 /* Dump the original table of exception handlers, not the one @@ -857,8 +696,6 @@ #endif #endif -#endif /* USG_SHARED_LIBRARIES */ - #else /* if not COFF */ /* Some machines count the header as part of the text segment.