Home | History | Annotate | Download | only in netbsd32
History log of /src/sys/compat/netbsd32/netbsd32_exec.h
RevisionDateAuthorComments
 1.37  06-Nov-2021  thorpej COMPAT_NETBSD32 is all about running the 32-bit flavor of native
binaries on a 64-bit platform[*], as such:
- Make the logic about which "sendsig" flavor to call MI (as it is in the
native 64-bit environment) and follow the same rules as the native 32-bit
environment.
- Make COMPAT_NETBSD32 x COMPAT_16 work the same as it would in the
native 32-bit environment by providing a netbsd32_sendsig_sigcontext_16_hook,
rather than overriding the entire sendsig logic with a netbsd32_sendsig_hook.
- In netbsd32___sigaction_sigtramp(), make sure the compat_netbsd32_16
module is loaded if the trampoline version specifies a sigcontext style
handler, otherwise return EINVAL so that libc can try again with siginfo
style.

[*] ...except for arm32, which uses it to mean "run 32-bit OABI binaries
from the 32-bit EABI environment". Doing it this way was arguably a mistake,
but we are stuck with it for now, so support it by providing a machine-
dependent override for netbsd32_sendsig() that also disables the corresponding
logic in netbsd32___sigaction_sigtramp().

Fixes PR kern/56487.
 1.36  19-Jan-2021  simonb Whitespace nits.
 1.35  18-Jan-2021  simonb s/u_intN_t/uintN_t/
 1.34  27-Jan-2019  pgoyette branches: 1.34.12;
Merge the [pgoyette-compat] branch
 1.33  25-Jan-2017  jakllsch branches: 1.33.12; 1.33.14;
Catch netbsd32_copyargs() up to changes in r1.441 src/sys/kern/kern_exec.c
 1.32  24-Oct-2014  christos branches: 1.32.2; 1.32.4; 1.32.6;
sync with the regular method; no functional diff
 1.31  10-Dec-2009  matt branches: 1.31.22;
Change u_long to vaddr_t/vsize_t in exec code where appropriate (mostly
involves setregs and vmcmds). Should result in no code differences.
 1.30  15-Aug-2009  matt Include <sys/exec_aout.h> explicitly instead of relying on <sys/exec.h> to
do it for you.
 1.29  15-Mar-2009  cegger ansify function definition
 1.28  19-Nov-2008  ad branches: 1.28.4; 1.28.6;
Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.27  29-May-2008  mrg branches: 1.27.4; 1.27.6;
remove clause #3 from my license where there are no other
copyright holders involved.
 1.26  04-Dec-2007  dsl branches: 1.26.12; 1.26.14; 1.26.16; 1.26.18;
Remove all the __P
 1.25  26-Mar-2007  cube branches: 1.25.8; 1.25.10; 1.25.16; 1.25.18;
Count environment vars with envc, not argc [hi dsl!]. Reported by Nicolas
Joly in private mail.
 1.24  16-Mar-2007  dsl remove all the double (and triple) casts used to convert 32bit userspace
pointers to and from 64bit kernel pointers. Instead use the defines
NETBSD32PTR64(p32) to read a 32bit pointer and (the new) NETBSD32PTR32(p32,p64)
to write a 32bit pointer throughout.
The 32bit pointer is now a struct to enforce the above.
amd64 (with linux emul) and sparc64 will both compile (when the arch stuff
goes in soon), and amd64 still runs some i386 binaries.
 1.23  16-Feb-2006  perry branches: 1.23.20; 1.23.24; 1.23.26; 1.23.28;
Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.22  24-Dec-2005  perry branches: 1.22.2; 1.22.4; 1.22.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.21  11-Dec-2005  christos merge ktrace-lwp.
 1.20  26-Feb-2005  perry branches: 1.20.4;
nuke trailing whitespace
 1.19  26-Mar-2004  drochner branches: 1.19.8; 1.19.10;
all ports define __HAVE_SIGINFO now, so remove the CPP conditionals
 1.18  11-Oct-2003  chs fix typo in previous.
 1.17  10-Oct-2003  matt Define SIGINFO variant of netbsd32_sendsig when __HAVE_SIGINFO is defined.
 1.16  26-Sep-2003  christos bring in MI declarations.
 1.15  29-Jun-2003  fvdl branches: 1.15.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.14  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.13  23-Oct-2002  scw In preparation for COMPAT_NETBSD32 on SH-5:

- The MD netbsd32_machdep.h header now defines the 32-bit pointer type
instead of using u_int32_t everywhere,
- The MD netbsd32_machdep.h header now defines a macro (at least on
current implementations) which converts a 32-bit pointer to its 64-bit
equivalent,
- Change the MI code to utilise the above two items in all the right places,
- Implement netbsd32___sigaction_sigtramp().

Tested on Sparc64 by Matt Green.
 1.12  26-Aug-2002  christos Implement passing AT_{E,R}{U,G}ID in the elf aux vector, like solaris.
- pass struct proc to copyargs.
- eliminate svr4_copyargs, since it is the same as ours now.
 1.11  04-Jun-2002  eeh Prototype for probing noteless 32-bit emulation binaries.
 1.10  25-Aug-2001  mrg branches: 1.10.12;
update copyright notices.
 1.9  29-Jul-2001  christos Adjust to the new copyargs() footprint.
 1.8  02-Feb-2001  mrg branches: 1.8.2; 1.8.4;
de-static netbsd32_exec_aout_prep_[zno]magic().
de-static netbsd32_from_stat43().
move the guts of netbsd32_execve() into netbsd32_execve2().

all of are for the forthcoming sunos32 compat mode (for sparc64).
 1.7  01-Dec-2000  jdolecek make netbsd32_copyargs() an inline
 1.6  27-Nov-2000  jdolecek adapt to execsw[] changes
 1.5  21-Nov-2000  jdolecek restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
provide single struct emul per emulation
* elf:
- kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
per emulation and contains pointer to respective probe function
- interp is allocated via MALLOC() rather than on stack
- elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
part of appropriate execsw[] entry
* constify couple of structures
 1.4  30-Dec-1999  eeh Update to 32-bit compatibility routines.
 1.3  25-Mar-1999  mrg branches: 1.3.8;
SPARC32->NETBSD32
 1.2  25-Mar-1999  mrg move sparc32 to netbsd32; split out MD part (signal handling) (mostly via repository copy, rename and perl -pi :-)
 1.1  26-Aug-1998  mrg add a 32-bit compatibility module for the sparc64 port, so it can run NetBSD/sparc binaries with a LP64 kernel.
 1.3.8.4  11-Feb-2001  bouyer Sync with HEAD.
 1.3.8.3  08-Dec-2000  bouyer Sync with HEAD.
 1.3.8.2  22-Nov-2000  bouyer Sync with HEAD.
 1.3.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.8.4.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.8.4.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.8.4.2  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.8.4.1  03-Aug-2001  lukem update to -current
 1.8.2.5  11-Nov-2002  nathanw Catch up to -current
 1.8.2.4  27-Aug-2002  nathanw Catch up to -current.
 1.8.2.3  20-Jun-2002  nathanw Catch up to -current.
 1.8.2.2  21-Sep-2001  nathanw Catch up to -current.
 1.8.2.1  24-Aug-2001  nathanw Catch up with -current.
 1.10.12.2  29-Aug-2002  gehenna catch up with -current.
 1.10.12.1  20-Jun-2002  gehenna catch up with -current.
 1.15.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.15.2.5  04-Feb-2005  skrll Adapt to branch.
 1.15.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.15.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.15.2.2  03-Aug-2004  skrll Sync with HEAD
 1.15.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.19.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.8.1  29-Apr-2005  kent sync with -current
 1.20.4.3  07-Dec-2007  yamt sync with head
 1.20.4.2  03-Sep-2007  yamt sync with head.
 1.20.4.1  21-Jun-2006  yamt sync with head.
 1.22.6.1  22-Apr-2006  simonb Sync with head.
 1.22.4.1  09-Sep-2006  rpaulo sync with head
 1.22.2.1  18-Feb-2006  yamt sync with head.
 1.23.28.2  29-Mar-2007  reinoud Pullup to -current
 1.23.28.1  18-Mar-2007  reinoud First attempt to bring branch in sync with HEAD
 1.23.26.1  11-Jul-2007  mjf Sync with head.
 1.23.24.1  10-Apr-2007  ad Sync with head.
 1.23.20.2  15-Apr-2007  yamt sync with head.
 1.23.20.1  24-Mar-2007  yamt sync with head.
 1.25.18.1  08-Dec-2007  ad Sync with head.
 1.25.16.1  08-Dec-2007  mjf Sync with HEAD.
 1.25.10.1  09-Jan-2008  matt sync with HEAD
 1.25.8.1  09-Dec-2007  jmcneill Sync with HEAD.
 1.26.18.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.26.16.3  11-Mar-2010  yamt sync with head
 1.26.16.2  19-Aug-2009  yamt sync with head.
 1.26.16.1  04-May-2009  yamt sync with head.
 1.26.14.1  04-Jun-2008  yamt sync with head
 1.26.12.2  17-Jan-2009  mjf Sync with HEAD.
 1.26.12.1  02-Jun-2008  mjf Sync with HEAD.
 1.27.6.2  28-Apr-2009  skrll Sync with HEAD.
 1.27.6.1  19-Jan-2009  skrll Sync with HEAD.
 1.27.4.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.28.6.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.28.4.2  19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.28.4.1  19-Nov-2008  ad file netbsd32_exec.h was added on branch christos-time_t on 2008-11-19 18:36:06 +0000
 1.31.22.1  03-Dec-2017  jdolecek update from HEAD
 1.32.6.1  21-Apr-2017  bouyer Sync with HEAD
 1.32.4.1  20-Mar-2017  pgoyette Sync with HEAD
 1.32.2.1  05-Feb-2017  skrll Sync with HEAD
 1.33.14.1  10-Jun-2019  christos Sync with HEAD
 1.33.12.1  11-Sep-2018  pgoyette Put the ``extern struct emul'' into the netbsd32_netbsd.h header
so it doesn't have to be separately declared in each source file.

Thanks mrg@
 1.34.12.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed