Applying the attached patch should help.

Also, please consider switching the upstream source of this package to <https://github.com/stsp/dosemu2>. It's theoretically still unstable, but it's more actively maintained than the SourceForge repository, and by the same person (to my knowledge). It has an analogous patch already applied: <https://github.com/stsp/dosemu2/commit/a5fb2f6f772af161b5cce24f77dc30b34aada082>.

--
--f
Index: dosemu-1.4.0.7+20130105+b028d3f/src/arch/linux/async/signal.c
===================================================================
--- dosemu-1.4.0.7+20130105+b028d3f.orig/src/arch/linux/async/signal.c
+++ dosemu-1.4.0.7+20130105+b028d3f/src/arch/linux/async/signal.c
@@ -225,7 +225,7 @@ int check_fix_fs_gs_base(unsigned char p
 /* init_handler puts the handler in a sane state that glibc
    expects. That means restoring fs and gs for vm86 (necessary for
    2.4 kernels) and fs, gs and eflags for DPMI. */
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 void init_handler(struct sigcontext_struct *scp)
 {
   /*
@@ -309,7 +309,7 @@ void init_handler(struct sigcontext_stru
 
 /* this cleaning up is necessary to avoid the port server becoming
    a zombie process */
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 static void cleanup_child(struct sigcontext_struct *scp)
 {
   int status;
@@ -322,7 +322,7 @@ static void cleanup_child(struct sigcont
   }
 }
 
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 static void leavedos_signal(int sig)
 {
   init_handler(NULL);
@@ -804,7 +804,7 @@ static void sigalrm(struct sigcontext_st
   }
 }
 
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 static void sigasync0(int sig, struct sigcontext_struct *scp)
 {
   init_handler(scp);
@@ -813,7 +813,7 @@ static void sigasync0(int sig, struct si
   dpmi_iret_setup(scp);
 }
 
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 static void sigasync(int sig, siginfo_t *si, void *uc)
 {
   sigasync0(sig, (struct sigcontext_struct *)
Index: dosemu-1.4.0.7+20130105+b028d3f/src/arch/linux/async/sigsegv.c
===================================================================
--- dosemu-1.4.0.7+20130105+b028d3f.orig/src/arch/linux/async/sigsegv.c
+++ dosemu-1.4.0.7+20130105+b028d3f/src/arch/linux/async/sigsegv.c
@@ -37,7 +37,7 @@ void print_exception_info(struct sigcont
 
 /*
  * All of the functions in this module need to be declared with
- *   __attribute__((no_instrument_function))
+ *   __attribute__((no_instrument_function,optimize("no-stack-protector")))
  * so that they can safely handle signals that occur in DPMI context when
  * DOSEMU is built with the "-pg" gcc flag (which enables instrumentation for
  * gprof profiling).
@@ -62,7 +62,7 @@ void print_exception_info(struct sigcont
  * DANG_END_FUNCTION
  */
 
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 int dosemu_fault1(
 #ifdef __linux__
 int signal, struct sigcontext_struct *scp
@@ -380,7 +380,7 @@ bad:
   }
 }
 
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 static void dosemu_fault0(int signal, struct sigcontext_struct *scp)
 {
   int retcode;
@@ -448,7 +448,7 @@ static void dosemu_fault0(int signal, st
 }
 
 #ifdef __linux__
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 void dosemu_fault(int signal, siginfo_t *si, void *uc)
 {
   dosemu_fault0(signal, (struct sigcontext_struct *)
@@ -465,7 +465,7 @@ void dosemu_fault(int signal, siginfo_t
  * DANG_END_FUNCTION
  *
  */
-__attribute__((no_instrument_function))
+__attribute__((no_instrument_function,optimize("no-stack-protector")))
 void print_exception_info(struct sigcontext_struct *scp)
 {
   int i;

Reply via email to