NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/58225 - netbsd9/amd64 requires COMPAT_16 for 32bit support (fwd)



The following reply was made to PR kern/58225; it has been noted by GNATS.

From: Martin Husemann <martin%duskware.de@localhost>
To: Jason Thorpe <thorpej%me.com@localhost>
Cc: Paul Goyette <paul%whooppee.com@localhost>, Jason Thorpe <thorpej%netbsd.org@localhost>,
	mlelstv%netbsd.org@localhost, Martin Husemann <martin%NetBSD.org@localhost>,
	gnats-bugs%netbsd.org@localhost
Subject: Re: kern/58225 - netbsd9/amd64 requires COMPAT_16 for 32bit support
 (fwd)
Date: Sat, 24 Aug 2024 18:05:25 +0200

 On Sat, Aug 24, 2024 at 08:57:20AM -0700, Jason Thorpe wrote:
 > 
 > 
 > > On Aug 24, 2024, at 8:54?AM, Martin Husemann <martin%duskware.de@localhost> wrote:
 > > 
 > > On Sat, Aug 24, 2024 at 08:42:30AM -0700, Jason Thorpe wrote:
 > >> I guess the **real** question is ?why is a i386 tcsh binary for netbsd9 saying it wants the old sigcontext-style signal trampoline??
 > > 
 > > I am not sure in what way it is saying that, but the original binary
 > > should still be here: https://www.netbsd.org/~martin/tcsh.gz
 > 
 > It?s a parameter (vers) passed to the __sigaction_sigtramp() system call.
 
 (gdb) run
 Starting program: /tmp/tcsh 
 
 Breakpoint 1.1, 0xfaa6c9e0 in __sigaction_sigtramp ()
    from /usr/lib/i386/libc.so.12
 (gdb) bt
 #0  0xfaa6c9e0 in __sigaction_sigtramp () from /usr/lib/i386/libc.so.12
 #1  0xfa94a9f2 in __libc_sigaction14 (sig=14, act=0xfffef2c8, oact=0x0)
     at /usr/src/lib/libc/compat/sys/compat___sigaction14_sigtramp.c:68
 
 
 #if defined(__HAVE_STRUCT_SIGCONTEXT) &&  defined(__LIBC12_SOURCE__)
         /*
          * We select the non-SA_SIGINFO trampoline if SA_SIGINFO is not   
          * set in the sigaction.
          */
         if ((act->sa_flags & SA_SIGINFO) == 0) {
                 int sav = errno;
                 int rv =  __sigaction_sigtramp(sig, act, oact,
                     __SIGTRAMP_SIGCONTEXT, __SIGTRAMP_SIGCONTEXT_VERSION);
                 if (rv >= 0 || errno != EINVAL)
                         return rv;
                 errno = sav;
         }
 #endif
 
 Martin
 


Home | Main Index | Thread Index | Old Index