diff mbox series

Stop checking if MiG supports retcode.

Message ID ZFspor91aoMwbh9T@jupiter.tail36e24.ts.net
State New
Headers show
Series Stop checking if MiG supports retcode. | expand

Commit Message

Flavio Cruz May 10, 2023, 5:20 a.m. UTC
We already did the same change for Hurd
(https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=ef5924402864ef049f40a39e73967628583bc1a4)

Due to MiG requiring the subsystem to be defined early in order to know the
size of a port, this was causing a division by zero error during ./configure.
We could have just move subsystem to the top of the snippet, however it is
simpler to just remove the check given that we have no plans to use some other
MiG anyway.

HAVE_MIG_RETCODE is removed completely since this will be a no-op either
way (compiling against old Hurd headers will work the same, new Hurd
headers will result in the same stubs since retcode is a no-op).
---
 config.h.in               |  3 ---
 sysdeps/mach/configure    | 36 ------------------------------------
 sysdeps/mach/configure.ac | 26 --------------------------
 3 files changed, 65 deletions(-)

Comments

Sergey Bugaev May 10, 2023, 5:36 a.m. UTC | #1
Hello,

On Wed, May 10, 2023, 08:21 Flavio Cruz <flaviocruz@gmail.com> wrote:
> HAVE_MIG_RETCODE is removed completely since this will be a no-op either
> way (compiling against old Hurd headers will work the same, new Hurd
> headers will result in the same stubs since retcode is a no-op).

It is a no-op currently, but please note that I was planning to make
it not a no-op some time (I wanted my epoll server to return error
replies properly). Will that cause any issues?

Sergey
Samuel Thibault May 10, 2023, 11:28 p.m. UTC | #2
Applied, thanks!

Flavio Cruz, le mer. 10 mai 2023 01:20:34 -0400, a ecrit:
> We already did the same change for Hurd
> (https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=ef5924402864ef049f40a39e73967628583bc1a4)
> 
> Due to MiG requiring the subsystem to be defined early in order to know the
> size of a port, this was causing a division by zero error during ./configure.
> We could have just move subsystem to the top of the snippet, however it is
> simpler to just remove the check given that we have no plans to use some other
> MiG anyway.
> 
> HAVE_MIG_RETCODE is removed completely since this will be a no-op either
> way (compiling against old Hurd headers will work the same, new Hurd
> headers will result in the same stubs since retcode is a no-op).
> ---
>  config.h.in               |  3 ---
>  sysdeps/mach/configure    | 36 ------------------------------------
>  sysdeps/mach/configure.ac | 26 --------------------------
>  3 files changed, 65 deletions(-)
> 
> diff --git a/config.h.in b/config.h.in
> index c87008b6a9..44a34072a4 100644
> --- a/config.h.in
> +++ b/config.h.in
> @@ -150,9 +150,6 @@
>  /* Override abi-tags ABI version if necessary.  */
>  #undef  __ABI_TAG_VERSION
>  
> -/* Mach/Hurd specific: define if mig supports the `retcode' keyword.  */
> -#undef	HAVE_MIG_RETCODE
> -
>  /* Mach specific: define if the `host_page_size' RPC is available.  */
>  #undef	HAVE_HOST_PAGE_SIZE
>  
> diff --git a/sysdeps/mach/configure b/sysdeps/mach/configure
> index b08872b8bc..df20d8640f 100644
> --- a/sysdeps/mach/configure
> +++ b/sysdeps/mach/configure
> @@ -485,40 +485,4 @@ if test $libc_cv_mach_i386_gdt = yes; then
>  fi
>  
>  
> -
> -# See if mig groks `retcode'.
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MIG supports the retcode keyword" >&5
> -$as_echo_n "checking whether $MIG supports the retcode keyword... " >&6; }
> -if ${hurd_cv_mig_retcode+:} false; then :
> -  $as_echo_n "(cached) " >&6
> -else
> -  cat > conftest.defs <<\EOF
> -#include <mach/std_types.defs>
> -#include <mach/mach_types.defs>
> -subsystem foobar 1000;
> -type reply_port_t = polymorphic | MACH_MSG_TYPE_PORT_SEND_ONCE
> -	ctype: mach_port_t;
> -simpleroutine foobar_reply (
> -	reply_port: reply_port_t;
> -	err: kern_return_t, RetCode);
> -EOF
> -if { ac_try='CC="${CC}" ${MIG-false} -n conftest.defs 1>&5'
> -  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
> -  (eval $ac_try) 2>&5
> -  ac_status=$?
> -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> -  test $ac_status = 0; }; }; then
> -  hurd_cv_mig_retcode=yes
> -else
> -  hurd_cv_mig_retcode=no
> -fi
> -rm -f conftest*
> -fi
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hurd_cv_mig_retcode" >&5
> -$as_echo "$hurd_cv_mig_retcode" >&6; }
> -if test $hurd_cv_mig_retcode = yes; then
> -  $as_echo "#define HAVE_MIG_RETCODE 1" >>confdefs.h
> -
> -fi
> -
>  CPPFLAGS=$OLD_CPPFLAGS
> diff --git a/sysdeps/mach/configure.ac b/sysdeps/mach/configure.ac
> index 537677c1d7..869cc9f820 100644
> --- a/sysdeps/mach/configure.ac
> +++ b/sysdeps/mach/configure.ac
> @@ -104,30 +104,4 @@ if test $libc_cv_mach_i386_gdt = yes; then
>    AC_DEFINE([HAVE_I386_SET_GDT])
>  fi
>  
> -dnl Swiped from hurd/aclocal.m4
> -AC_DEFUN([hurd_MIG_RETCODE], [dnl
> -# See if mig groks `retcode'.
> -AC_CACHE_CHECK(whether $MIG supports the retcode keyword, hurd_cv_mig_retcode,
> -[cat > conftest.defs <<\EOF
> -#include <mach/std_types.defs>
> -#include <mach/mach_types.defs>
> -subsystem foobar 1000;
> -type reply_port_t = polymorphic | MACH_MSG_TYPE_PORT_SEND_ONCE
> -	ctype: mach_port_t;
> -simpleroutine foobar_reply (
> -	reply_port: reply_port_t;
> -	err: kern_return_t, RetCode);
> -EOF
> -if AC_TRY_COMMAND([CC="${CC}" ${MIG-false} -n conftest.defs 1>&AS_MESSAGE_LOG_FD]); then
> -  hurd_cv_mig_retcode=yes
> -else
> -  hurd_cv_mig_retcode=no
> -fi
> -rm -f conftest*])
> -if test $hurd_cv_mig_retcode = yes; then
> -  AC_DEFINE(HAVE_MIG_RETCODE)
> -fi])
> -
> -hurd_MIG_RETCODE
> -
>  CPPFLAGS=$OLD_CPPFLAGS
> -- 
> 2.39.2
>
Flavio Cruz May 15, 2023, 4:09 a.m. UTC | #3
Hi Sergey

On Wed, May 10, 2023 at 1:36 AM Sergey Bugaev <bugaevc@gmail.com> wrote:

> Hello,
>
> On Wed, May 10, 2023, 08:21 Flavio Cruz <flaviocruz@gmail.com> wrote:
> > HAVE_MIG_RETCODE is removed completely since this will be a no-op either
> > way (compiling against old Hurd headers will work the same, new Hurd
> > headers will result in the same stubs since retcode is a no-op).
>
> It is a no-op currently, but please note that I was planning to make
> it not a no-op some time (I wanted my epoll server to return error
> replies properly). Will that cause any issues?
>

No, it should be fine. For that functionality, maybe we should enforce that
the return code
parameter is always the second parameter (after the reply port - which is
already the
case) by adding the appropriate checks in MiG when retcode is used. If we
want
./configure to check if MiG generates code to call the server reply routine
in case of errors (it doesn't :() then we will need to build a different
check.


> Sergey
>
diff mbox series

Patch

diff --git a/config.h.in b/config.h.in
index c87008b6a9..44a34072a4 100644
--- a/config.h.in
+++ b/config.h.in
@@ -150,9 +150,6 @@ 
 /* Override abi-tags ABI version if necessary.  */
 #undef  __ABI_TAG_VERSION
 
-/* Mach/Hurd specific: define if mig supports the `retcode' keyword.  */
-#undef	HAVE_MIG_RETCODE
-
 /* Mach specific: define if the `host_page_size' RPC is available.  */
 #undef	HAVE_HOST_PAGE_SIZE
 
diff --git a/sysdeps/mach/configure b/sysdeps/mach/configure
index b08872b8bc..df20d8640f 100644
--- a/sysdeps/mach/configure
+++ b/sysdeps/mach/configure
@@ -485,40 +485,4 @@  if test $libc_cv_mach_i386_gdt = yes; then
 fi
 
 
-
-# See if mig groks `retcode'.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MIG supports the retcode keyword" >&5
-$as_echo_n "checking whether $MIG supports the retcode keyword... " >&6; }
-if ${hurd_cv_mig_retcode+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.defs <<\EOF
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-subsystem foobar 1000;
-type reply_port_t = polymorphic | MACH_MSG_TYPE_PORT_SEND_ONCE
-	ctype: mach_port_t;
-simpleroutine foobar_reply (
-	reply_port: reply_port_t;
-	err: kern_return_t, RetCode);
-EOF
-if { ac_try='CC="${CC}" ${MIG-false} -n conftest.defs 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-  hurd_cv_mig_retcode=yes
-else
-  hurd_cv_mig_retcode=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hurd_cv_mig_retcode" >&5
-$as_echo "$hurd_cv_mig_retcode" >&6; }
-if test $hurd_cv_mig_retcode = yes; then
-  $as_echo "#define HAVE_MIG_RETCODE 1" >>confdefs.h
-
-fi
-
 CPPFLAGS=$OLD_CPPFLAGS
diff --git a/sysdeps/mach/configure.ac b/sysdeps/mach/configure.ac
index 537677c1d7..869cc9f820 100644
--- a/sysdeps/mach/configure.ac
+++ b/sysdeps/mach/configure.ac
@@ -104,30 +104,4 @@  if test $libc_cv_mach_i386_gdt = yes; then
   AC_DEFINE([HAVE_I386_SET_GDT])
 fi
 
-dnl Swiped from hurd/aclocal.m4
-AC_DEFUN([hurd_MIG_RETCODE], [dnl
-# See if mig groks `retcode'.
-AC_CACHE_CHECK(whether $MIG supports the retcode keyword, hurd_cv_mig_retcode,
-[cat > conftest.defs <<\EOF
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-subsystem foobar 1000;
-type reply_port_t = polymorphic | MACH_MSG_TYPE_PORT_SEND_ONCE
-	ctype: mach_port_t;
-simpleroutine foobar_reply (
-	reply_port: reply_port_t;
-	err: kern_return_t, RetCode);
-EOF
-if AC_TRY_COMMAND([CC="${CC}" ${MIG-false} -n conftest.defs 1>&AS_MESSAGE_LOG_FD]); then
-  hurd_cv_mig_retcode=yes
-else
-  hurd_cv_mig_retcode=no
-fi
-rm -f conftest*])
-if test $hurd_cv_mig_retcode = yes; then
-  AC_DEFINE(HAVE_MIG_RETCODE)
-fi])
-
-hurd_MIG_RETCODE
-
 CPPFLAGS=$OLD_CPPFLAGS