#else /* not COFF */
+#ifdef HPUX
+extern void *sbrk ();
+#else
#ifdef __STDC__
extern void *sbrk ();
#else
extern char *sbrk ();
-#endif
+#endif /* __STDC__ */
+#endif /* HPUX */
#define SYMS_START ((long) N_SYMOFF (ohdr))
#else /* not HPUX */
-#if defined (USG) && !defined (IBMAIX) && !defined (IRIS) && !defined (COFF_ENCAPSULATE)
+#if defined (USG) && !defined (IBMAIX) && !defined (IRIS) && !defined (COFF_ENCAPSULATE) && !defined (LINUX)
static struct bhdr hdr, ohdr;
#define a_magic fmagic
#define a_text tsize
* space.
*/
- bias = bss_end - (f_ohdr.data_start + f_dhdr.s_size);
+ bias = bss_start - (f_ohdr.data_start + f_dhdr.s_size);
#endif
* .lib), adjust the address of where the section data is in the
* file, and write out the header.
*
- * If any section preceeds .text or .data in the file, this code
+ * If any section precedes .text or .data in the file, this code
* will not adjust the file pointer for that section correctly.
*/
{
n = size > sizeof (page) ? sizeof (page) : size;
if (read (a_out, page, n) != n || write (new, page, n) != n)
- PERROR ("xemacs");
+ PERROR ("emacs");
}
lseek (a_out, old_a_out_ptr, 0);
}
/* ****************************************************************
* mark_x
*
- * After succesfully building the new a.out, mark it executable
+ * After successfully building the new a.out, mark it executable
*/
static void
mark_x (name)
{
read (new, &auxentry, AUXESZ);
nsyms++;
- if (ISFCN (symentry.n_type)) {
- auxentry.x_sym.x_fcnary.x_fcn.x_lnnoptr += bias;
- lseek (new, -AUXESZ, 1);
- write (new, &auxentry, AUXESZ);
- }
+ if (ISFCN (symentry.n_type) || symentry.n_type == 0x2400)
+ {
+ auxentry.x_sym.x_fcnary.x_fcn.x_lnnoptr += bias;
+ lseek (new, -AUXESZ, 1);
+ write (new, &auxentry, AUXESZ);
+ }
}
}
close (new);