0002-Remove-configure-probe-for-struct-sockaddr_storage.patch

text/x-patch

Filename: 0002-Remove-configure-probe-for-struct-sockaddr_storage.patch
Type: text/x-patch
Part: 1
Message: Re: Cleaning up historical portability baggage

Patch

Format: format-patch
Series: patch 0002
Subject: Remove configure probe for struct sockaddr_storage.
File+
config/c-library.m4 1 13
configure 0 13
configure.ac 0 1
src/include/libpq/pqcomm.h 0 23
src/include/pg_config.h.in 0 3
src/tools/msvc/Solution.pm 0 1
From 05f16ae2e21704cea6c560c4f333bff555222fa0 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Sat, 13 Aug 2022 21:10:39 +1200
Subject: [PATCH 2/4] Remove configure probe for struct sockaddr_storage.

<sys/socket.h> provides sockaddr_storage in SUSv3.  Windows has it too.
---
 config/c-library.m4        | 14 +-------------
 configure                  | 13 -------------
 configure.ac               |  1 -
 src/include/libpq/pqcomm.h | 23 -----------------------
 src/include/pg_config.h.in |  3 ---
 src/tools/msvc/Solution.pm |  1 -
 6 files changed, 1 insertion(+), 54 deletions(-)

diff --git a/config/c-library.m4 b/config/c-library.m4
index f6b171d923..7a79033730 100644
--- a/config/c-library.m4
+++ b/config/c-library.m4
@@ -73,23 +73,11 @@ AC_DEFUN([PGAC_UNION_SEMUN],
 ])])# PGAC_UNION_SEMUN
 
 
-# PGAC_STRUCT_SOCKADDR_STORAGE
-# ----------------------------
-# If `struct sockaddr_storage' exists, define HAVE_STRUCT_SOCKADDR_STORAGE.
-# If it is missing then one could define it.
-AC_DEFUN([PGAC_STRUCT_SOCKADDR_STORAGE],
-[AC_CHECK_TYPES([struct sockaddr_storage], [], [],
-[#include <sys/types.h>
-#include <sys/socket.h>
-])])# PGAC_STRUCT_SOCKADDR_STORAGE
-
 # PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS
 # --------------------------------------
 # Check the members of `struct sockaddr_storage'.  We need to know about
 # ss_family and ss_len.  (Some platforms follow RFC 2553 and call them
-# __ss_family and __ss_len.)  We also check struct sockaddr's sa_len;
-# if we have to define our own `struct sockaddr_storage', this tells us
-# whether we need to provide an ss_len field.
+# __ss_family and __ss_len.)  We also check struct sockaddr's sa_len.
 AC_DEFUN([PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS],
 [AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family,
 		   struct sockaddr_storage.__ss_family,
diff --git a/configure b/configure
index c6300a9a54..7c10905dfd 100755
--- a/configure
+++ b/configure
@@ -15058,19 +15058,6 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-fi
-
-ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "#include <sys/types.h>
-#include <sys/socket.h>
-
-"
-if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SOCKADDR_STORAGE 1
-_ACEOF
-
-
 fi
 
 ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include <sys/types.h>
diff --git a/configure.ac b/configure.ac
index 010c8e6a25..d3e402dfc0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1618,7 +1618,6 @@ PGAC_C_COMPUTED_GOTO
 PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 AC_CHECK_TYPES(socklen_t, [], [], [#include <sys/socket.h>])
-PGAC_STRUCT_SOCKADDR_STORAGE
 PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS
 PGAC_STRUCT_ADDRINFO
 
diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h
index 3bcc06b2d6..7e2f1495f3 100644
--- a/src/include/libpq/pqcomm.h
+++ b/src/include/libpq/pqcomm.h
@@ -21,8 +21,6 @@
 #include <netdb.h>
 #include <netinet/in.h>
 
-#ifdef HAVE_STRUCT_SOCKADDR_STORAGE
-
 #ifndef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
 #ifdef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY
 #define ss_family __ss_family
@@ -35,27 +33,6 @@
 #define ss_len __ss_len
 #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN 1
 #endif
-#else							/* !HAVE_STRUCT_SOCKADDR_STORAGE */
-
-/* Define a struct sockaddr_storage if we don't have one. */
-
-struct sockaddr_storage
-{
-	union
-	{
-		struct sockaddr sa;		/* get the system-dependent fields */
-		int64		ss_align;	/* ensures struct is properly aligned */
-		char		ss_pad[128];	/* ensures struct has desired size */
-	}			ss_stuff;
-};
-
-#define ss_family	ss_stuff.sa.sa_family
-/* It should have an ss_len field if sockaddr has sa_len. */
-#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
-#define ss_len		ss_stuff.sa.sa_len
-#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN 1
-#endif
-#endif							/* HAVE_STRUCT_SOCKADDR_STORAGE */
 
 typedef struct
 {
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 45faf05121..31674bde4e 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -463,9 +463,6 @@
 /* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
 #undef HAVE_STRUCT_SOCKADDR_SA_LEN
 
-/* Define to 1 if the system has the type `struct sockaddr_storage'. */
-#undef HAVE_STRUCT_SOCKADDR_STORAGE
-
 /* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
 #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
 
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index df594b2fe7..1632931840 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -350,7 +350,6 @@ sub GenerateFiles
 		HAVE_STRUCT_CMSGCRED                     => undef,
 		HAVE_STRUCT_OPTION                       => undef,
 		HAVE_STRUCT_SOCKADDR_SA_LEN              => undef,
-		HAVE_STRUCT_SOCKADDR_STORAGE             => 1,
 		HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY   => 1,
 		HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN      => undef,
 		HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY => undef,
-- 
2.30.2