Message ID | 20230319151017.531737-5-bugaevc@gmail.com |
---|---|
State | New |
Headers | show |
Series | The rest of the x86_64-gnu port | expand |
Applied, thanks! Sergey Bugaev, le dim. 19 mars 2023 18:09:47 +0300, a ecrit: > On EXC_BAD_ACCESS, exception subcode is used to pass the faulting memory > address, so it needs to be (at least) pointer-sized. Thus, make it into > a long. This matches the corresponding change in GNU Mach. > --- > hurd/catch-exc.c | 2 +- > hurd/hurd/signal.h | 5 +++-- > hurd/hurdfault.c | 2 +- > 3 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c > index e8a9c798..5ee2233a 100644 > --- a/hurd/catch-exc.c > +++ b/hurd/catch-exc.c > @@ -31,7 +31,7 @@ _S_catch_exception_raise (mach_port_t port, > mach_msg_type_number_t codeCnt > #else /* Vanilla Mach 3.0 interface. */ > integer_t exception, > - integer_t code, integer_t subcode > + integer_t code, long_integer_t subcode > #endif > ) > { > diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h > index 4e9f79b1..c33f974b 100644 > --- a/hurd/hurd/signal.h > +++ b/hurd/hurd/signal.h > @@ -51,9 +51,10 @@ struct hurd_signal_preemptor; /* <hurd/sigpreempt.h> */ > struct hurd_signal_detail > { > /* Codes from origination Mach exception_raise message. */ > - integer_t exc, exc_code, exc_subcode; > + integer_t exc, exc_code; > + long_integer_t exc_subcode; > /* Sigcode as passed or computed from exception codes. */ > - integer_t code; > + long_integer_t code; > /* Error code as passed or extracted from exception codes. */ > error_t error; > }; > diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c > index 069c1c26..a81e7280 100644 > --- a/hurd/hurdfault.c > +++ b/hurd/hurdfault.c > @@ -45,7 +45,7 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port, > mach_msg_type_number_t codeCnt > #else /* Vanilla Mach 3.0 interface. */ > integer_t exception, > - integer_t code, integer_t subcode > + integer_t code, long_integer_t subcode > #endif > ) > { > -- > 2.39.2 >
diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c index e8a9c798..5ee2233a 100644 --- a/hurd/catch-exc.c +++ b/hurd/catch-exc.c @@ -31,7 +31,7 @@ _S_catch_exception_raise (mach_port_t port, mach_msg_type_number_t codeCnt #else /* Vanilla Mach 3.0 interface. */ integer_t exception, - integer_t code, integer_t subcode + integer_t code, long_integer_t subcode #endif ) { diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index 4e9f79b1..c33f974b 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -51,9 +51,10 @@ struct hurd_signal_preemptor; /* <hurd/sigpreempt.h> */ struct hurd_signal_detail { /* Codes from origination Mach exception_raise message. */ - integer_t exc, exc_code, exc_subcode; + integer_t exc, exc_code; + long_integer_t exc_subcode; /* Sigcode as passed or computed from exception codes. */ - integer_t code; + long_integer_t code; /* Error code as passed or extracted from exception codes. */ error_t error; }; diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index 069c1c26..a81e7280 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -45,7 +45,7 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port, mach_msg_type_number_t codeCnt #else /* Vanilla Mach 3.0 interface. */ integer_t exception, - integer_t code, integer_t subcode + integer_t code, long_integer_t subcode #endif ) {