sigsetreturn (_sigreturn);
*/
\f
+#ifdef emacs
+#include <config.h>
+#endif
+
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <a.out.h>
+#ifdef HPUX_USE_SHLIBS
+#include <dl.h>
+#endif
+
+/* brk value to restore, stored as a global.
+ This is really used only if we used shared libraries. */
+static long brk_on_dump = 0;
+
+/* Called from main, if we use shared libraries. */
+int
+run_time_remap (ignored)
+ char *ignored;
+{
+ brk ((char *) brk_on_dump);
+}
+
+#undef roundup
#define roundup(x,n) (((x) + ((n) - 1)) & ~((n) - 1)) /* n is power of 2 */
#define min(x,y) (((x) < (y)) ? (x) : (y))
/* Read the old headers */
read_header (old, &hdr, &auxhdr);
+
+ brk_on_dump = (long) sbrk (0);
/* Decide how large the new and old data areas are */
old_size = auxhdr.exec_dsize;
/* I suspect these two statements are separate
to avoid a compiler bug in hpux version 8. */
- i = sbrk (0);
+ i = (long) sbrk (0);
new_size = i - auxhdr.exec_dmem;
/* Copy the old file to the new, up to the data space */
int size;
{
int len;
- int buffer[8196]; /* word aligned will be faster */
+ int buffer[8192]; /* word aligned will be faster */
for (; size > 0; size -= len)
{