diff options
Diffstat (limited to '0029-CryptoPkg-CrtLib-add-access-open-read-write-close-sy.patch')
| -rw-r--r-- | 0029-CryptoPkg-CrtLib-add-access-open-read-write-close-sy.patch | 139 | 
1 files changed, 139 insertions, 0 deletions
| diff --git a/0029-CryptoPkg-CrtLib-add-access-open-read-write-close-sy.patch b/0029-CryptoPkg-CrtLib-add-access-open-read-write-close-sy.patch new file mode 100644 index 0000000..b32c5bd --- /dev/null +++ b/0029-CryptoPkg-CrtLib-add-access-open-read-write-close-sy.patch @@ -0,0 +1,139 @@ +From 168cfe83b250d3166817549c1e96e6b1f02bcab4 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann <kraxel@redhat.com> +Date: Mon, 28 Aug 2023 13:27:09 +0200 +Subject: [PATCH] CryptoPkg/CrtLib: add access/open/read/write/close syscalls + +Needed by rhel downstream openssl patches, they use unix syscalls +for file access (instead of fopen + friends like the rest of the +code base).  No actual file access is needed for edk2, so just +add stubs to make linking work. + +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> +--- + .../Library/BaseCryptLib/SysCall/CrtWrapper.c | 46 +++++++++++++++++++ + CryptoPkg/Library/Include/CrtLibSupport.h     | 41 +++++++++++++++++ + 2 files changed, 87 insertions(+) + +diff --git a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c +index 37cdecc9bd..dfdb635536 100644 +--- a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c ++++ b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c +@@ -550,6 +550,52 @@ fread ( +   return 0;
 + }
 + 
 ++int
 ++access(
 ++  const char*,
 ++  int
 ++  )
 ++{
 ++  return -1;
 ++}
 ++
 ++int
 ++open (
 ++  const char *,
 ++  int
 ++  )
 ++{
 ++  return -1;
 ++}
 ++
 ++ssize_t
 ++read (
 ++  int,
 ++  void*,
 ++  size_t
 ++  )
 ++{
 ++  return -1;
 ++}
 ++
 ++ssize_t
 ++write (
 ++  int,
 ++  const void*,
 ++  size_t
 ++  )
 ++{
 ++  return -1;
 ++}
 ++
 ++int
 ++close (
 ++  int
 ++  )
 ++{
 ++  return -1;
 ++}
 ++
 + uid_t
 + getuid (
 +   void
 +diff --git a/CryptoPkg/Library/Include/CrtLibSupport.h b/CryptoPkg/Library/Include/CrtLibSupport.h +index f36fe08f0c..7d98496af8 100644 +--- a/CryptoPkg/Library/Include/CrtLibSupport.h ++++ b/CryptoPkg/Library/Include/CrtLibSupport.h +@@ -78,6 +78,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + //
 + // Definitions for global constants used by CRT library routines
 + //
 ++#define EINTR         4
 + #define EINVAL        22              /* Invalid argument */
 + #define EAFNOSUPPORT  47              /* Address family not supported by protocol family */
 + #define INT_MAX       0x7FFFFFFF      /* Maximum (signed) int value */
 +@@ -102,6 +103,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #define NS_INADDRSZ   4   /*%< IPv4 T_A */
 + #define NS_IN6ADDRSZ  16  /*%< IPv6 T_AAAA */
 + 
 ++#define O_RDONLY        00000000
 ++#define O_WRONLY        00000001
 ++#define O_RDWR          00000002
 ++
 ++#define R_OK  4
 ++#define W_OK  2
 ++#define X_OK  1
 ++#define F_OK  0
 ++
 + //
 + // Basic types mapping
 + //
 +@@ -324,6 +334,37 @@ fprintf     ( +   ...
 +   );
 + 
 ++int
 ++access(
 ++  const char*,
 ++  int
 ++  );
 ++
 ++int
 ++open (
 ++  const char *,
 ++  int
 ++  );
 ++
 ++ssize_t
 ++read (
 ++  int,
 ++  void*,
 ++  size_t
 ++  );
 ++
 ++ssize_t
 ++write (
 ++  int,
 ++  const void*,
 ++  size_t
 ++  );
 ++
 ++int
 ++close (
 ++  int
 ++  );
 ++
 + time_t
 + time        (
 +   time_t *
 | 
