Fix Werrors with GCC-14.1.0
[platform/upstream/rpm.git] / system.h
index f3b1bab..570cef1 100644 (file)
--- a/system.h
+++ b/system.h
@@ -1,5 +1,7 @@
 /**
  * \file system.h
+ *
+ *  Some misc low-level API
  */
 
 #ifndef        H_SYSTEM
@@ -78,29 +80,8 @@ char * stpncpy(char * dest, const char * src, size_t n);
 #endif
 #endif
 
-#if WITH_SELINUX
-#include <selinux/selinux.h>
-#include <selinux/label.h>
-#include <selinux/avc.h>
-#else
-typedef        char * security_context_t;
-
-#define        freecon(_c)
-
-#define        setfilecon(_fn, _c)     (-1)
-#define        lsetfilecon(_fn, _c)    (-1)
-
-#define        is_selinux_enabled()    (0)
-
-#define matchpathcon_init(_fn)                 (-1)
-#define matchpathcon_fini()                    (0)
-#define matchpathcon(_fn, _fm, _c)             (-1)
-
-#define selabel_lookup_raw(_hnd, _scon, _key,_type)    (-1)
-
-#define selinux_file_context_path() (0)
-
-#define rpm_execcon(_v, _fn, _av, _envp)       (0)
+#if defined(HAVE_FDATASYNC) && !HAVE_DECL_FDATASYNC
+extern int fdatasync(int fildes);
 #endif
 
 #include "rpmio/rpmutil.h"
@@ -111,20 +92,23 @@ typedef    char * security_context_t;
 #define xstrdup(_str) rstrdup((_str))
 #define _free(_ptr) rfree((_ptr))
 
-/* Retrofit glibc __progname */
-#if defined __GLIBC__ && __GLIBC__ >= 2
-#if __GLIBC_MINOR__ >= 1
-#define        __progname      __assert_program_name
-#endif
-#define        setprogname(pn)
+/* To extract program's name: use calls (reimplemented or shipped with system):
+   - void setprogname(const char *pn)
+   - const char *getprogname(void)
+
+   setprogname(*pn) must be the first call in main() in order to set the name
+   as soon as possible. */
+#if defined(HAVE_SETPROGNAME) /* BSD'ish systems */
+# include <stdlib.h> /* Make sure this header is included */
+# define xsetprogname(pn) setprogname(pn)
+# define xgetprogname(pn) getprogname(pn)
+#elif defined(HAVE___PROGNAME) /* glibc and others */
+# define xsetprogname(pn)
+  extern const char *__progname;
+# define xgetprogname(pn) __progname
 #else
-#define        __progname      program_name
-#define        setprogname(pn) \
-  { if ((__progname = strrchr(pn, '/')) != NULL) __progname++; \
-    else __progname = pn;              \
-  }
+# error "Did not find any sutable implementation of xsetprogname/xgetprogname"
 #endif
-extern const char *__progname;
 
 /* Take care of NLS matters.  */
 #if ENABLE_NLS