File c99.patch of Package libcdio

From 79a15b760e0b5e81b29953acada3a963c3f8eba9 Mon Sep 17 00:00:00 2001
From: Alfred Wingate <parona@protonmail.com>
Date: Mon, 20 May 2024 22:02:08 +0300
Subject: [PATCH] Do not use LFS shims, rely on _FILE_OFFSET_BITS=64

See https://savannah.gnu.org/bugs/?65751 and https://bugs.gentoo.org/918988

Setting _FILE_OFFSET_BITS=64 is enough to get the LFS interface,
using LFS shims is unnecessary on 64-bit systems and they may
not be available on 32-bit systems on glibc.

Signed-off-by: Alfred Wingate <parona@protonmail.com>
---
 configure.ac               |    8 ++++----
 lib/driver/_cdio_generic.c |   12 +-----------
 lib/driver/_cdio_stdio.c   |    6 +-----
 3 files changed, 6 insertions(+), 20 deletions(-)

--- a/configure.ac
+++ b/configure.ac
@@ -539,10 +539,10 @@ AC_SUBST(HAVE_SOLARIS_CDROM)
 AC_SUBST(HAVE_WIN32_CDROM)
 AC_SUBST(HAVE_OS2_CDROM)
 
-AC_CHECK_FUNCS( [chdir drand48 fseeko fseeko64 ftruncate geteuid getgid \
-		 getuid getpwuid gettimeofday lseek64 lstat memcpy memset mkstemp rand \
-		 seteuid setegid snprintf setenv strndup unsetenv tzset sleep \
-		 _stati64 usleep vsnprintf readlink realpath gmtime_r localtime_r] )
+AC_CHECK_FUNCS( [chdir drand48 fseeko ftruncate geteuid getgid getuid \
+		 getpwuid gettimeofday lstat memcpy memset mkstemp rand seteuid \
+		 setegid snprintf setenv strndup unsetenv tzset sleep _stati64 \
+		 usleep vsnprintf readlink realpath gmtime_r localtime_r] )
 
 # check for timegm() support
 AC_CHECK_FUNC(timegm, AC_DEFINE(HAVE_TIMEGM,1,
--- a/lib/driver/_cdio_generic.c
+++ b/lib/driver/_cdio_generic.c
@@ -55,16 +55,6 @@
 #define PATH_MAX 4096
 #endif
 
-/* If available and LFS is enabled, try to use lseek64 */
-#if defined(HAVE_LSEEK64) && defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
-#if defined(_MSC_VER)
-#include <io.h>
-#endif
-#define CDIO_LSEEK lseek64
-#else
-#define CDIO_LSEEK lseek
-#endif
-
 /*!
   Eject media -- there's nothing to do here. We always return -2.
   Should we also free resources?
@@ -170,7 +160,7 @@ off_t
 cdio_generic_lseek (void *user_data, off_t offset, int whence)
 {
   generic_img_private_t *p_env = user_data;
-  return CDIO_LSEEK(p_env->fd, offset, whence);
+  return lseek(p_env->fd, offset, whence);
 }
 
 /*!
--- a/lib/driver/_cdio_stdio.c
+++ b/lib/driver/_cdio_stdio.c
@@ -47,11 +47,7 @@
 #include "_cdio_stdio.h"
 #include "cdio_assert.h"
 
-/* On 32 bit platforms, fseek can only access streams of 2 GB or less.
-   Prefer fseeko/fseeko64, that take a 64 bit offset when LFS is enabled */
-#if defined(HAVE_FSEEKO64) && defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
-#define CDIO_FSEEK fseeko64
-#elif defined(HAVE_FSEEKO)
+#if defined(HAVE_FSEEKO)
 #define CDIO_FSEEK fseeko
 #else
 #define CDIO_FSEEK fseek
openSUSE Build Service is sponsored by