Ok,

While in general the integration went well, a couple of issues have been
raised. These are:

1. building with a -current source tree on -stable fails. This also
   means that we currently don't have the possibility to upgrade
   from -stable to -current.
2. Incompatibilities wrt to the disappearence of sigcontext and the
   undocumented 4th argument to signal handlers.
3. Numerous style bugs and namespace pollution in the last commit.

I don't think I should try to solve all issues at once.

The way I see it is:

o  Fixing issue 1 (cross-compilation) needs a concession. I like
   to really solve the actual problem, because that would help to
   support multiple architectures, including new ones. Other
   solutions have been proposed, each with different pros and
   cons, but they all are bandaids to different extends (IMO).
o  Fixing issue 2 (incompatibilities) is more urgent. We are now
   in a position to fix what was broken. The problem will get
   harder to fix the longer we wait.
o  Fixing issue 3 (non-critical bugs) is not urgent, but there
   may be bugs that cause breakage. I suggest that urgent bugs
   get fixed ASAP. Others may be fixed at any time.

So, to start with issue 2:

To start with the beginning:

1. Should the ucontext_t changes be backed out, or is this the
   way we would like to go? (but only it better :-)

2. The 4th argument issue (pointed out by Alan) can be easily
   fixed. See the attached patch. If this is allright with
   everyone, I'll commit it (assuming Q1 is answered positive).

Corrections, additions and the likes are welcome (as usual :-)

-- 
Marcel Moolenaar                        mailto:[EMAIL PROTECTED]
SCC Internetworking & Databases           http://www.scc.nl/
The FreeBSD project                mailto:[EMAIL PROTECTED]
Index: i386/machdep.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/machdep.c,v
retrieving revision 1.364
diff -u -r1.364 machdep.c
--- machdep.c   1999/10/01 07:49:37     1.364
+++ machdep.c   1999/10/01 09:13:32
@@ -687,6 +687,7 @@
        else {
                /* Old FreeBSD-style arguments. */
                sf.sf_siginfo = code;
+               sf.sf_addr = (char *)regs->tf_err;
                sf.sf_ahu.sf_handler = catcher;
        }
 
Index: include/sigframe.h
===================================================================
RCS file: /home/ncvs/src/sys/i386/include/sigframe.h,v
retrieving revision 1.1
diff -u -r1.1 sigframe.h
--- sigframe.h  1999/09/29 15:06:23     1.1
+++ sigframe.h  1999/10/01 09:11:38
@@ -68,12 +68,12 @@
 
 struct sigframe {
        /*
-        * The first three members may be used by applications.
+        * The first four members may be used by applications.
         */
        register_t      sf_signum;
        register_t      sf_siginfo;             /* code or pointer to sf_si */
        register_t      sf_ucontext;            /* points to sf_uc */
-       register_t      __spare__;              /* Align sf_ahu */
+       char            *sf_addr;               /* undocumented 4th arg */
        union {
                __siginfohandler_t      *sf_action;
                __sighandler_t          *sf_handler;

Reply via email to