summaryrefslogtreecommitdiff
path: root/Build/source/extra/xz/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/extra/xz/src/common')
-rw-r--r--Build/source/extra/xz/src/common/common_w32res.rc50
-rw-r--r--Build/source/extra/xz/src/common/mythread.h42
-rw-r--r--Build/source/extra/xz/src/common/sysdefs.h192
-rw-r--r--Build/source/extra/xz/src/common/tuklib_common.h71
-rw-r--r--Build/source/extra/xz/src/common/tuklib_config.h7
-rw-r--r--Build/source/extra/xz/src/common/tuklib_cpucores.c62
-rw-r--r--Build/source/extra/xz/src/common/tuklib_cpucores.h23
-rw-r--r--Build/source/extra/xz/src/common/tuklib_exit.c57
-rw-r--r--Build/source/extra/xz/src/common/tuklib_exit.h25
-rw-r--r--Build/source/extra/xz/src/common/tuklib_gettext.h44
-rw-r--r--Build/source/extra/xz/src/common/tuklib_integer.h523
-rw-r--r--Build/source/extra/xz/src/common/tuklib_mbstr.h66
-rw-r--r--Build/source/extra/xz/src/common/tuklib_mbstr_fw.c31
-rw-r--r--Build/source/extra/xz/src/common/tuklib_mbstr_width.c64
-rw-r--r--Build/source/extra/xz/src/common/tuklib_open_stdxxx.c57
-rw-r--r--Build/source/extra/xz/src/common/tuklib_open_stdxxx.h23
-rw-r--r--Build/source/extra/xz/src/common/tuklib_physmem.c196
-rw-r--r--Build/source/extra/xz/src/common/tuklib_physmem.h28
-rw-r--r--Build/source/extra/xz/src/common/tuklib_progname.c50
-rw-r--r--Build/source/extra/xz/src/common/tuklib_progname.h32
20 files changed, 0 insertions, 1643 deletions
diff --git a/Build/source/extra/xz/src/common/common_w32res.rc b/Build/source/extra/xz/src/common/common_w32res.rc
deleted file mode 100644
index fdb88d184ac..00000000000
--- a/Build/source/extra/xz/src/common/common_w32res.rc
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#include <winresrc.h>
-#include "config.h"
-#define LZMA_H_INTERNAL
-#define LZMA_H_INTERNAL_RC
-#include "lzma/version.h"
-
-#ifndef MY_BUILD
-# define MY_BUILD 0
-#endif
-#define MY_VERSION LZMA_VERSION_MAJOR,LZMA_VERSION_MINOR,LZMA_VERSION_PATCH,MY_BUILD
-
-#define MY_FILENAME MY_NAME MY_SUFFIX
-#define MY_COMPANY "The Tukaani Project <http://tukaani.org/>"
-#define MY_PRODUCT PACKAGE_NAME " <" PACKAGE_URL ">"
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION MY_VERSION
- PRODUCTVERSION MY_VERSION
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
- FILEFLAGS 0
- FILEOS VOS_NT_WINDOWS32
- FILETYPE MY_TYPE
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", MY_COMPANY
- VALUE "FileDescription", MY_DESC
- VALUE "FileVersion", LZMA_VERSION_STRING
- VALUE "InternalName", MY_NAME
- VALUE "OriginalFilename", MY_FILENAME
- VALUE "ProductName", MY_PRODUCT
- VALUE "ProductVersion", LZMA_VERSION_STRING
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
diff --git a/Build/source/extra/xz/src/common/mythread.h b/Build/source/extra/xz/src/common/mythread.h
deleted file mode 100644
index 476c2fc9e10..00000000000
--- a/Build/source/extra/xz/src/common/mythread.h
+++ /dev/null
@@ -1,42 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file mythread.h
-/// \brief Wrappers for threads
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "sysdefs.h"
-
-
-#ifdef HAVE_PTHREAD
-# include <pthread.h>
-
-# define mythread_once(func) \
- do { \
- static pthread_once_t once_ = PTHREAD_ONCE_INIT; \
- pthread_once(&once_, &func); \
- } while (0)
-
-# define mythread_sigmask(how, set, oset) \
- pthread_sigmask(how, set, oset)
-
-#else
-
-# define mythread_once(func) \
- do { \
- static bool once_ = false; \
- if (!once_) { \
- func(); \
- once_ = true; \
- } \
- } while (0)
-
-# define mythread_sigmask(how, set, oset) \
- sigprocmask(how, set, oset)
-
-#endif
diff --git a/Build/source/extra/xz/src/common/sysdefs.h b/Build/source/extra/xz/src/common/sysdefs.h
deleted file mode 100644
index 5ea6bdae4ae..00000000000
--- a/Build/source/extra/xz/src/common/sysdefs.h
+++ /dev/null
@@ -1,192 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file sysdefs.h
-/// \brief Common includes, definitions, system-specific things etc.
-///
-/// This file is used also by the lzma command line tool, that's why this
-/// file is separate from common.h.
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef LZMA_SYSDEFS_H
-#define LZMA_SYSDEFS_H
-
-//////////////
-// Includes //
-//////////////
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-// Get standard-compliant stdio functions under MinGW and MinGW-w64.
-#ifdef __MINGW32__
-# define __USE_MINGW_ANSI_STDIO 1
-#endif
-
-// size_t and NULL
-#include <stddef.h>
-
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-
-// C99 says that inttypes.h always includes stdint.h, but some systems
-// don't do that, and require including stdint.h separately.
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-
-// Some pre-C99 systems have SIZE_MAX in limits.h instead of stdint.h. The
-// limits are also used to figure out some macros missing from pre-C99 systems.
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-// Be more compatible with systems that have non-conforming inttypes.h.
-// We assume that int is 32-bit and that long is either 32-bit or 64-bit.
-// Full Autoconf test could be more correct, but this should work well enough.
-// Note that this duplicates some code from lzma.h, but this is better since
-// we can work without inttypes.h thanks to Autoconf tests.
-#ifndef UINT32_C
-# if UINT_MAX != 4294967295U
-# error UINT32_C is not defined and unsigned int is not 32-bit.
-# endif
-# define UINT32_C(n) n ## U
-#endif
-#ifndef UINT32_MAX
-# define UINT32_MAX UINT32_C(4294967295)
-#endif
-#ifndef PRIu32
-# define PRIu32 "u"
-#endif
-#ifndef PRIx32
-# define PRIx32 "x"
-#endif
-#ifndef PRIX32
-# define PRIX32 "X"
-#endif
-
-#if ULONG_MAX == 4294967295UL
-# ifndef UINT64_C
-# define UINT64_C(n) n ## ULL
-# endif
-# ifndef PRIu64
-# define PRIu64 "llu"
-# endif
-# ifndef PRIx64
-# define PRIx64 "llx"
-# endif
-# ifndef PRIX64
-# define PRIX64 "llX"
-# endif
-#else
-# ifndef UINT64_C
-# define UINT64_C(n) n ## UL
-# endif
-# ifndef PRIu64
-# define PRIu64 "lu"
-# endif
-# ifndef PRIx64
-# define PRIx64 "lx"
-# endif
-# ifndef PRIX64
-# define PRIX64 "lX"
-# endif
-#endif
-#ifndef UINT64_MAX
-# define UINT64_MAX UINT64_C(18446744073709551615)
-#endif
-
-// Incorrect(?) SIZE_MAX:
-// - Interix headers typedef size_t to unsigned long,
-// but a few lines later define SIZE_MAX to INT32_MAX.
-// - SCO OpenServer (x86) headers typedef size_t to unsigned int
-// but define SIZE_MAX to INT32_MAX.
-#if defined(__INTERIX) || defined(_SCO_DS)
-# undef SIZE_MAX
-#endif
-
-// The code currently assumes that size_t is either 32-bit or 64-bit.
-#ifndef SIZE_MAX
-# if SIZEOF_SIZE_T == 4
-# define SIZE_MAX UINT32_MAX
-# elif SIZEOF_SIZE_T == 8
-# define SIZE_MAX UINT64_MAX
-# else
-# error size_t is not 32-bit or 64-bit
-# endif
-#endif
-#if SIZE_MAX != UINT32_MAX && SIZE_MAX != UINT64_MAX
-# error size_t is not 32-bit or 64-bit
-#endif
-
-#include <stdlib.h>
-#include <assert.h>
-
-// Pre-C99 systems lack stdbool.h. All the code in LZMA Utils must be written
-// so that it works with fake bool type, for example:
-//
-// bool foo = (flags & 0x100) != 0;
-// bool bar = !!(flags & 0x100);
-//
-// This works with the real C99 bool but breaks with fake bool:
-//
-// bool baz = (flags & 0x100);
-//
-#ifdef HAVE_STDBOOL_H
-# include <stdbool.h>
-#else
-# if ! HAVE__BOOL
-typedef unsigned char _Bool;
-# endif
-# define bool _Bool
-# define false 0
-# define true 1
-# define __bool_true_false_are_defined 1
-#endif
-
-// string.h should be enough but let's include strings.h and memory.h too if
-// they exists, since that shouldn't do any harm, but may improve portability.
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#ifdef HAVE_MEMORY_H
-# include <memory.h>
-#endif
-
-
-////////////
-// Macros //
-////////////
-
-#undef memzero
-#define memzero(s, n) memset(s, 0, n)
-
-// NOTE: Avoid using MIN() and MAX(), because even conditionally defining
-// those macros can cause some portability trouble, since on some systems
-// the system headers insist defining their own versions.
-#define my_min(x, y) ((x) < (y) ? (x) : (y))
-#define my_max(x, y) ((x) > (y) ? (x) : (y))
-
-#ifndef ARRAY_SIZE
-# define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
-#endif
-
-#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
-# define lzma_attr_alloc_size(x) __attribute__((__alloc_size__(x)))
-#else
-# define lzma_attr_alloc_size(x)
-#endif
-
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_common.h b/Build/source/extra/xz/src/common/tuklib_common.h
deleted file mode 100644
index 31fbab58b00..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_common.h
+++ /dev/null
@@ -1,71 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_common.h
-/// \brief Common definitions for tuklib modules
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_COMMON_H
-#define TUKLIB_COMMON_H
-
-// The config file may be replaced by a package-specific file.
-// It should include at least stddef.h, inttypes.h, and limits.h.
-#include "tuklib_config.h"
-
-// TUKLIB_SYMBOL_PREFIX is prefixed to all symbols exported by
-// the tuklib modules. If you use a tuklib module in a library,
-// you should use TUKLIB_SYMBOL_PREFIX to make sure that there
-// are no symbol conflicts in case someone links your library
-// into application that also uses the same tuklib module.
-#ifndef TUKLIB_SYMBOL_PREFIX
-# define TUKLIB_SYMBOL_PREFIX
-#endif
-
-#define TUKLIB_CAT_X(a, b) a ## b
-#define TUKLIB_CAT(a, b) TUKLIB_CAT_X(a, b)
-
-#ifndef TUKLIB_SYMBOL
-# define TUKLIB_SYMBOL(sym) TUKLIB_CAT(TUKLIB_SYMBOL_PREFIX, sym)
-#endif
-
-#ifndef TUKLIB_DECLS_BEGIN
-# ifdef __cplusplus
-# define TUKLIB_DECLS_BEGIN extern "C" {
-# else
-# define TUKLIB_DECLS_BEGIN
-# endif
-#endif
-
-#ifndef TUKLIB_DECLS_END
-# ifdef __cplusplus
-# define TUKLIB_DECLS_END }
-# else
-# define TUKLIB_DECLS_END
-# endif
-#endif
-
-#if defined(__GNUC__) && defined(__GNUC_MINOR__)
-# define TUKLIB_GNUC_REQ(major, minor) \
- ((__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)) \
- || __GNUC__ > (major))
-#else
-# define TUKLIB_GNUC_REQ(major, minor) 0
-#endif
-
-#if TUKLIB_GNUC_REQ(2, 5)
-# define tuklib_attr_noreturn __attribute__((__noreturn__))
-#else
-# define tuklib_attr_noreturn
-#endif
-
-#if (defined(_WIN32) && !defined(__CYGWIN__)) \
- || defined(__OS2__) || defined(__MSDOS__)
-# define TUKLIB_DOSLIKE 1
-#endif
-
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_config.h b/Build/source/extra/xz/src/common/tuklib_config.h
deleted file mode 100644
index 549cb24d773..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "sysdefs.h"
-#else
-# include <stddef.h>
-# include <inttypes.h>
-# include <limits.h>
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_cpucores.c b/Build/source/extra/xz/src/common/tuklib_cpucores.c
deleted file mode 100644
index 1da13df7f5f..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_cpucores.c
+++ /dev/null
@@ -1,62 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_cpucores.c
-/// \brief Get the number of CPU cores online
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_cpucores.h"
-
-#if defined(TUKLIB_CPUCORES_SYSCTL)
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# endif
-# include <sys/sysctl.h>
-
-#elif defined(TUKLIB_CPUCORES_SYSCONF)
-# include <unistd.h>
-
-// HP-UX
-#elif defined(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC)
-# include <sys/param.h>
-# include <sys/pstat.h>
-#endif
-
-
-extern uint32_t
-tuklib_cpucores(void)
-{
- uint32_t ret = 0;
-
-#if defined(TUKLIB_CPUCORES_SYSCTL)
- int name[2] = { CTL_HW, HW_NCPU };
- int cpus;
- size_t cpus_size = sizeof(cpus);
- if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
- && cpus_size == sizeof(cpus) && cpus > 0)
- ret = cpus;
-
-#elif defined(TUKLIB_CPUCORES_SYSCONF)
-# ifdef _SC_NPROCESSORS_ONLN
- // Most systems
- const long cpus = sysconf(_SC_NPROCESSORS_ONLN);
-# else
- // IRIX
- const long cpus = sysconf(_SC_NPROC_ONLN);
-# endif
- if (cpus > 0)
- ret = cpus;
-
-#elif defined(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC)
- struct pst_dynamic pst;
- if (pstat_getdynamic(&pst, sizeof(pst), 1, 0) != -1)
- ret = pst.psd_proc_cnt;
-#endif
-
- return ret;
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_cpucores.h b/Build/source/extra/xz/src/common/tuklib_cpucores.h
deleted file mode 100644
index be1ce1c175a..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_cpucores.h
+++ /dev/null
@@ -1,23 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_cpucores.h
-/// \brief Get the number of CPU cores online
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_CPUCORES_H
-#define TUKLIB_CPUCORES_H
-
-#include "tuklib_common.h"
-TUKLIB_DECLS_BEGIN
-
-#define tuklib_cpucores TUKLIB_SYMBOL(tuklib_cpucores)
-extern uint32_t tuklib_cpucores(void);
-
-TUKLIB_DECLS_END
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_exit.c b/Build/source/extra/xz/src/common/tuklib_exit.c
deleted file mode 100644
index c393be64d75..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_exit.c
+++ /dev/null
@@ -1,57 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_exit.c
-/// \brief Close stdout and stderr, and exit
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_common.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "tuklib_gettext.h"
-#include "tuklib_progname.h"
-#include "tuklib_exit.h"
-
-
-extern void
-tuklib_exit(int status, int err_status, int show_error)
-{
- if (status != err_status) {
- // Close stdout. If something goes wrong,
- // print an error message to stderr.
- const int ferror_err = ferror(stdout);
- const int fclose_err = fclose(stdout);
- if (ferror_err || fclose_err) {
- status = err_status;
-
- // If it was fclose() that failed, we have the reason
- // in errno. If only ferror() indicated an error,
- // we have no idea what the reason was.
- if (show_error)
- fprintf(stderr, "%s: %s: %s\n", progname,
- _("Writing to standard "
- "output failed"),
- fclose_err ? strerror(errno)
- : _("Unknown error"));
- }
- }
-
- if (status != err_status) {
- // Close stderr. If something goes wrong, there's
- // nothing where we could print an error message.
- // Just set the exit status.
- const int ferror_err = ferror(stderr);
- const int fclose_err = fclose(stderr);
- if (fclose_err || ferror_err)
- status = err_status;
- }
-
- exit(status);
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_exit.h b/Build/source/extra/xz/src/common/tuklib_exit.h
deleted file mode 100644
index b11776f0e5b..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_exit.h
+++ /dev/null
@@ -1,25 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_exit.h
-/// \brief Close stdout and stderr, and exit
-/// \note Requires tuklib_progname and tuklib_gettext modules
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_EXIT_H
-#define TUKLIB_EXIT_H
-
-#include "tuklib_common.h"
-TUKLIB_DECLS_BEGIN
-
-#define tuklib_exit TUKLIB_SYMBOL(tuklib_exit)
-extern void tuklib_exit(int status, int err_status, int show_error)
- tuklib_attr_noreturn;
-
-TUKLIB_DECLS_END
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_gettext.h b/Build/source/extra/xz/src/common/tuklib_gettext.h
deleted file mode 100644
index ff189040712..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_gettext.h
+++ /dev/null
@@ -1,44 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_gettext.h
-/// \brief Wrapper for gettext and friends
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_GETTEXT_H
-#define TUKLIB_GETTEXT_H
-
-#include "tuklib_common.h"
-#include <locale.h>
-
-#ifndef TUKLIB_GETTEXT
-# ifdef ENABLE_NLS
-# define TUKLIB_GETTEXT 1
-# else
-# define TUKLIB_GETTEXT 0
-# endif
-#endif
-
-#if TUKLIB_GETTEXT
-# include <libintl.h>
-# define tuklib_gettext_init(package, localedir) \
- do { \
- setlocale(LC_ALL, ""); \
- bindtextdomain(package, localedir); \
- textdomain(package); \
- } while (0)
-# define _(msgid) gettext(msgid)
-#else
-# define tuklib_gettext_init(package, localedir) \
- setlocale(LC_ALL, "")
-# define _(msgid) (msgid)
-# define ngettext(msgid1, msgid2, n) ((n) == 1 ? (msgid1) : (msgid2))
-#endif
-#define N_(msgid) msgid
-
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_integer.h b/Build/source/extra/xz/src/common/tuklib_integer.h
deleted file mode 100644
index e6daa772d58..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_integer.h
+++ /dev/null
@@ -1,523 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_integer.h
-/// \brief Various integer and bit operations
-///
-/// This file provides macros or functions to do some basic integer and bit
-/// operations.
-///
-/// Endianness related integer operations (XX = 16, 32, or 64; Y = b or l):
-/// - Byte swapping: bswapXX(num)
-/// - Byte order conversions to/from native: convXXYe(num)
-/// - Aligned reads: readXXYe(ptr)
-/// - Aligned writes: writeXXYe(ptr, num)
-/// - Unaligned reads (16/32-bit only): unaligned_readXXYe(ptr)
-/// - Unaligned writes (16/32-bit only): unaligned_writeXXYe(ptr, num)
-///
-/// Since they can macros, the arguments should have no side effects since
-/// they may be evaluated more than once.
-///
-/// \todo PowerPC and possibly some other architectures support
-/// byte swapping load and store instructions. This file
-/// doesn't take advantage of those instructions.
-///
-/// Bit scan operations for non-zero 32-bit integers:
-/// - Bit scan reverse (find highest non-zero bit): bsr32(num)
-/// - Count leading zeros: clz32(num)
-/// - Count trailing zeros: ctz32(num)
-/// - Bit scan forward (simply an alias for ctz32()): bsf32(num)
-///
-/// The above bit scan operations return 0-31. If num is zero,
-/// the result is undefined.
-//
-// Authors: Lasse Collin
-// Joachim Henke
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_INTEGER_H
-#define TUKLIB_INTEGER_H
-
-#include "tuklib_common.h"
-
-
-////////////////////////////////////////
-// Operating system specific features //
-////////////////////////////////////////
-
-#if defined(HAVE_BYTESWAP_H)
- // glibc, uClibc, dietlibc
-# include <byteswap.h>
-# ifdef HAVE_BSWAP_16
-# define bswap16(num) bswap_16(num)
-# endif
-# ifdef HAVE_BSWAP_32
-# define bswap32(num) bswap_32(num)
-# endif
-# ifdef HAVE_BSWAP_64
-# define bswap64(num) bswap_64(num)
-# endif
-
-#elif defined(HAVE_SYS_ENDIAN_H)
- // *BSDs and Darwin
-# include <sys/endian.h>
-
-#elif defined(HAVE_SYS_BYTEORDER_H)
- // Solaris
-# include <sys/byteorder.h>
-# ifdef BSWAP_16
-# define bswap16(num) BSWAP_16(num)
-# endif
-# ifdef BSWAP_32
-# define bswap32(num) BSWAP_32(num)
-# endif
-# ifdef BSWAP_64
-# define bswap64(num) BSWAP_64(num)
-# endif
-# ifdef BE_16
-# define conv16be(num) BE_16(num)
-# endif
-# ifdef BE_32
-# define conv32be(num) BE_32(num)
-# endif
-# ifdef BE_64
-# define conv64be(num) BE_64(num)
-# endif
-# ifdef LE_16
-# define conv16le(num) LE_16(num)
-# endif
-# ifdef LE_32
-# define conv32le(num) LE_32(num)
-# endif
-# ifdef LE_64
-# define conv64le(num) LE_64(num)
-# endif
-#endif
-
-
-///////////////////
-// Byte swapping //
-///////////////////
-
-#ifndef bswap16
-# define bswap16(num) \
- (((uint16_t)(num) << 8) | ((uint16_t)(num) >> 8))
-#endif
-
-#ifndef bswap32
-# define bswap32(num) \
- ( (((uint32_t)(num) << 24) ) \
- | (((uint32_t)(num) << 8) & UINT32_C(0x00FF0000)) \
- | (((uint32_t)(num) >> 8) & UINT32_C(0x0000FF00)) \
- | (((uint32_t)(num) >> 24) ) )
-#endif
-
-#ifndef bswap64
-# define bswap64(num) \
- ( (((uint64_t)(num) << 56) ) \
- | (((uint64_t)(num) << 40) & UINT64_C(0x00FF000000000000)) \
- | (((uint64_t)(num) << 24) & UINT64_C(0x0000FF0000000000)) \
- | (((uint64_t)(num) << 8) & UINT64_C(0x000000FF00000000)) \
- | (((uint64_t)(num) >> 8) & UINT64_C(0x00000000FF000000)) \
- | (((uint64_t)(num) >> 24) & UINT64_C(0x0000000000FF0000)) \
- | (((uint64_t)(num) >> 40) & UINT64_C(0x000000000000FF00)) \
- | (((uint64_t)(num) >> 56) ) )
-#endif
-
-// Define conversion macros using the basic byte swapping macros.
-#ifdef WORDS_BIGENDIAN
-# ifndef conv16be
-# define conv16be(num) ((uint16_t)(num))
-# endif
-# ifndef conv32be
-# define conv32be(num) ((uint32_t)(num))
-# endif
-# ifndef conv64be
-# define conv64be(num) ((uint64_t)(num))
-# endif
-# ifndef conv16le
-# define conv16le(num) bswap16(num)
-# endif
-# ifndef conv32le
-# define conv32le(num) bswap32(num)
-# endif
-# ifndef conv64le
-# define conv64le(num) bswap64(num)
-# endif
-#else
-# ifndef conv16be
-# define conv16be(num) bswap16(num)
-# endif
-# ifndef conv32be
-# define conv32be(num) bswap32(num)
-# endif
-# ifndef conv64be
-# define conv64be(num) bswap64(num)
-# endif
-# ifndef conv16le
-# define conv16le(num) ((uint16_t)(num))
-# endif
-# ifndef conv32le
-# define conv32le(num) ((uint32_t)(num))
-# endif
-# ifndef conv64le
-# define conv64le(num) ((uint64_t)(num))
-# endif
-#endif
-
-
-//////////////////////////////
-// Aligned reads and writes //
-//////////////////////////////
-
-static inline uint16_t
-read16be(const uint8_t *buf)
-{
- uint16_t num = *(const uint16_t *)buf;
- return conv16be(num);
-}
-
-
-static inline uint16_t
-read16le(const uint8_t *buf)
-{
- uint16_t num = *(const uint16_t *)buf;
- return conv16le(num);
-}
-
-
-static inline uint32_t
-read32be(const uint8_t *buf)
-{
- uint32_t num = *(const uint32_t *)buf;
- return conv32be(num);
-}
-
-
-static inline uint32_t
-read32le(const uint8_t *buf)
-{
- uint32_t num = *(const uint32_t *)buf;
- return conv32le(num);
-}
-
-
-static inline uint64_t
-read64be(const uint8_t *buf)
-{
- uint64_t num = *(const uint64_t *)buf;
- return conv64be(num);
-}
-
-
-static inline uint64_t
-read64le(const uint8_t *buf)
-{
- uint64_t num = *(const uint64_t *)buf;
- return conv64le(num);
-}
-
-
-// NOTE: Possible byte swapping must be done in a macro to allow GCC
-// to optimize byte swapping of constants when using glibc's or *BSD's
-// byte swapping macros. The actual write is done in an inline function
-// to make type checking of the buf pointer possible similarly to readXXYe()
-// functions.
-
-#define write16be(buf, num) write16ne((buf), conv16be(num))
-#define write16le(buf, num) write16ne((buf), conv16le(num))
-#define write32be(buf, num) write32ne((buf), conv32be(num))
-#define write32le(buf, num) write32ne((buf), conv32le(num))
-#define write64be(buf, num) write64ne((buf), conv64be(num))
-#define write64le(buf, num) write64ne((buf), conv64le(num))
-
-
-static inline void
-write16ne(uint8_t *buf, uint16_t num)
-{
- *(uint16_t *)buf = num;
- return;
-}
-
-
-static inline void
-write32ne(uint8_t *buf, uint32_t num)
-{
- *(uint32_t *)buf = num;
- return;
-}
-
-
-static inline void
-write64ne(uint8_t *buf, uint64_t num)
-{
- *(uint64_t *)buf = num;
- return;
-}
-
-
-////////////////////////////////
-// Unaligned reads and writes //
-////////////////////////////////
-
-// NOTE: TUKLIB_FAST_UNALIGNED_ACCESS indicates only support for 16-bit and
-// 32-bit unaligned integer loads and stores. It's possible that 64-bit
-// unaligned access doesn't work or is slower than byte-by-byte access.
-// Since unaligned 64-bit is probably not needed as often as 16-bit or
-// 32-bit, we simply don't support 64-bit unaligned access for now.
-#ifdef TUKLIB_FAST_UNALIGNED_ACCESS
-# define unaligned_read16be read16be
-# define unaligned_read16le read16le
-# define unaligned_read32be read32be
-# define unaligned_read32le read32le
-# define unaligned_write16be write16be
-# define unaligned_write16le write16le
-# define unaligned_write32be write32be
-# define unaligned_write32le write32le
-
-#else
-
-static inline uint16_t
-unaligned_read16be(const uint8_t *buf)
-{
- uint16_t num = ((uint16_t)buf[0] << 8) | (uint16_t)buf[1];
- return num;
-}
-
-
-static inline uint16_t
-unaligned_read16le(const uint8_t *buf)
-{
- uint16_t num = ((uint16_t)buf[0]) | ((uint16_t)buf[1] << 8);
- return num;
-}
-
-
-static inline uint32_t
-unaligned_read32be(const uint8_t *buf)
-{
- uint32_t num = (uint32_t)buf[0] << 24;
- num |= (uint32_t)buf[1] << 16;
- num |= (uint32_t)buf[2] << 8;
- num |= (uint32_t)buf[3];
- return num;
-}
-
-
-static inline uint32_t
-unaligned_read32le(const uint8_t *buf)
-{
- uint32_t num = (uint32_t)buf[0];
- num |= (uint32_t)buf[1] << 8;
- num |= (uint32_t)buf[2] << 16;
- num |= (uint32_t)buf[3] << 24;
- return num;
-}
-
-
-static inline void
-unaligned_write16be(uint8_t *buf, uint16_t num)
-{
- buf[0] = num >> 8;
- buf[1] = num;
- return;
-}
-
-
-static inline void
-unaligned_write16le(uint8_t *buf, uint16_t num)
-{
- buf[0] = num;
- buf[1] = num >> 8;
- return;
-}
-
-
-static inline void
-unaligned_write32be(uint8_t *buf, uint32_t num)
-{
- buf[0] = num >> 24;
- buf[1] = num >> 16;
- buf[2] = num >> 8;
- buf[3] = num;
- return;
-}
-
-
-static inline void
-unaligned_write32le(uint8_t *buf, uint32_t num)
-{
- buf[0] = num;
- buf[1] = num >> 8;
- buf[2] = num >> 16;
- buf[3] = num >> 24;
- return;
-}
-
-#endif
-
-
-static inline uint32_t
-bsr32(uint32_t n)
-{
- // Check for ICC first, since it tends to define __GNUC__ too.
-#if defined(__INTEL_COMPILER)
- return _bit_scan_reverse(n);
-
-#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX == UINT32_MAX
- // GCC >= 3.4 has __builtin_clz(), which gives good results on
- // multiple architectures. On x86, __builtin_clz() ^ 31U becomes
- // either plain BSR (so the XOR gets optimized away) or LZCNT and
- // XOR (if -march indicates that SSE4a instructions are supported).
- return __builtin_clz(n) ^ 31U;
-
-#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
- uint32_t i;
- __asm__("bsrl %1, %0" : "=r" (i) : "rm" (n));
- return i;
-
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
- // MSVC isn't supported by tuklib, but since this code exists,
- // it doesn't hurt to have it here anyway.
- uint32_t i;
- _BitScanReverse((DWORD *)&i, n);
- return i;
-
-#else
- uint32_t i = 31;
-
- if ((n & UINT32_C(0xFFFF0000)) == 0) {
- n <<= 16;
- i = 15;
- }
-
- if ((n & UINT32_C(0xFF000000)) == 0) {
- n <<= 8;
- i -= 8;
- }
-
- if ((n & UINT32_C(0xF0000000)) == 0) {
- n <<= 4;
- i -= 4;
- }
-
- if ((n & UINT32_C(0xC0000000)) == 0) {
- n <<= 2;
- i -= 2;
- }
-
- if ((n & UINT32_C(0x80000000)) == 0)
- --i;
-
- return i;
-#endif
-}
-
-
-static inline uint32_t
-clz32(uint32_t n)
-{
-#if defined(__INTEL_COMPILER)
- return _bit_scan_reverse(n) ^ 31U;
-
-#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX == UINT32_MAX
- return __builtin_clz(n);
-
-#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
- uint32_t i;
- __asm__("bsrl %1, %0\n\t"
- "xorl $31, %0"
- : "=r" (i) : "rm" (n));
- return i;
-
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
- uint32_t i;
- _BitScanReverse((DWORD *)&i, n);
- return i ^ 31U;
-
-#else
- uint32_t i = 0;
-
- if ((n & UINT32_C(0xFFFF0000)) == 0) {
- n <<= 16;
- i = 16;
- }
-
- if ((n & UINT32_C(0xFF000000)) == 0) {
- n <<= 8;
- i += 8;
- }
-
- if ((n & UINT32_C(0xF0000000)) == 0) {
- n <<= 4;
- i += 4;
- }
-
- if ((n & UINT32_C(0xC0000000)) == 0) {
- n <<= 2;
- i += 2;
- }
-
- if ((n & UINT32_C(0x80000000)) == 0)
- ++i;
-
- return i;
-#endif
-}
-
-
-static inline uint32_t
-ctz32(uint32_t n)
-{
-#if defined(__INTEL_COMPILER)
- return _bit_scan_forward(n);
-
-#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX >= UINT32_MAX
- return __builtin_ctz(n);
-
-#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
- uint32_t i;
- __asm__("bsfl %1, %0" : "=r" (i) : "rm" (n));
- return i;
-
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
- uint32_t i;
- _BitScanForward((DWORD *)&i, n);
- return i;
-
-#else
- uint32_t i = 0;
-
- if ((n & UINT32_C(0x0000FFFF)) == 0) {
- n >>= 16;
- i = 16;
- }
-
- if ((n & UINT32_C(0x000000FF)) == 0) {
- n >>= 8;
- i += 8;
- }
-
- if ((n & UINT32_C(0x0000000F)) == 0) {
- n >>= 4;
- i += 4;
- }
-
- if ((n & UINT32_C(0x00000003)) == 0) {
- n >>= 2;
- i += 2;
- }
-
- if ((n & UINT32_C(0x00000001)) == 0)
- ++i;
-
- return i;
-#endif
-}
-
-#define bsf32 ctz32
-
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_mbstr.h b/Build/source/extra/xz/src/common/tuklib_mbstr.h
deleted file mode 100644
index 9f358355180..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_mbstr.h
+++ /dev/null
@@ -1,66 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_mstr.h
-/// \brief Utility functions for handling multibyte strings
-///
-/// If not enough multibyte string support is available in the C library,
-/// these functions keep working with the assumption that all strings
-/// are in a single-byte character set without combining characters, e.g.
-/// US-ASCII or ISO-8859-*.
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_MBSTR_H
-#define TUKLIB_MBSTR_H
-
-#include "tuklib_common.h"
-TUKLIB_DECLS_BEGIN
-
-#define tuklib_mbstr_width TUKLIB_SYMBOL(tuklib_mbstr_width)
-extern size_t tuklib_mbstr_width(const char *str, size_t *bytes);
-///<
-/// \brief Get the number of columns needed for the multibyte string
-///
-/// This is somewhat similar to wcswidth() but works on multibyte strings.
-///
-/// \param str String whose width is to be calculated. If the
-/// current locale uses a multibyte character set
-/// that has shift states, the string must begin
-/// and end in the initial shift state.
-/// \param bytes If this is not NULL, *bytes is set to the
-/// value returned by strlen(str) (even if an
-/// error occurs when calculating the width).
-///
-/// \return On success, the number of columns needed to display the
-/// string e.g. in a terminal emulator is returned. On error,
-/// (size_t)-1 is returned. Possible errors include invalid,
-/// partial, or non-printable multibyte character in str, or
-/// that str doesn't end in the initial shift state.
-
-#define tuklib_mbstr_fw TUKLIB_SYMBOL(tuklib_mbstr_fw)
-extern int tuklib_mbstr_fw(const char *str, int columns_min);
-///<
-/// \brief Get the field width for printf() e.g. to align table columns
-///
-/// Printing simple tables to a terminal can be done using the field field
-/// feature in the printf() format string, but it works only with single-byte
-/// character sets. To do the same with multibyte strings, tuklib_mbstr_fw()
-/// can be used to calculate appropriate field width.
-///
-/// The behavior of this function is undefined, if
-/// - str is NULL or not terminated with '\0';
-/// - columns_min <= 0; or
-/// - the calculated field width exceeds INT_MAX.
-///
-/// \return If tuklib_mbstr_width(str, NULL) fails, -1 is returned.
-/// If str needs more columns than columns_min, zero is returned.
-/// Otherwise a positive integer is returned, which can be
-/// used as the field width, e.g. printf("%*s", fw, str).
-
-TUKLIB_DECLS_END
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_mbstr_fw.c b/Build/source/extra/xz/src/common/tuklib_mbstr_fw.c
deleted file mode 100644
index 978a3fe10d9..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_mbstr_fw.c
+++ /dev/null
@@ -1,31 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_mstr_fw.c
-/// \brief Get the field width for printf() e.g. to align table columns
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_mbstr.h"
-
-
-extern int
-tuklib_mbstr_fw(const char *str, int columns_min)
-{
- size_t len;
- const size_t width = tuklib_mbstr_width(str, &len);
- if (width == (size_t)-1)
- return -1;
-
- if (width > (size_t)columns_min)
- return 0;
-
- if (width < (size_t)columns_min)
- len += (size_t)columns_min - width;
-
- return len;
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_mbstr_width.c b/Build/source/extra/xz/src/common/tuklib_mbstr_width.c
deleted file mode 100644
index 3c38990f460..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_mbstr_width.c
+++ /dev/null
@@ -1,64 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_mstr_width.c
-/// \brief Calculate width of a multibyte string
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_mbstr.h"
-
-#if defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH)
-# include <wchar.h>
-#endif
-
-
-extern size_t
-tuklib_mbstr_width(const char *str, size_t *bytes)
-{
- const size_t len = strlen(str);
- if (bytes != NULL)
- *bytes = len;
-
-#if !(defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH))
- // In single-byte mode, the width of the string is the same
- // as its length.
- return len;
-
-#else
- mbstate_t state;
- memset(&state, 0, sizeof(state));
-
- size_t width = 0;
- size_t i = 0;
-
- // Convert one multibyte character at a time to wchar_t
- // and get its width using wcwidth().
- while (i < len) {
- wchar_t wc;
- const size_t ret = mbrtowc(&wc, str + i, len - i, &state);
- if (ret < 1 || ret > len)
- return (size_t)-1;
-
- i += ret;
-
- const int wc_width = wcwidth(wc);
- if (wc_width < 0)
- return (size_t)-1;
-
- width += wc_width;
- }
-
- // Require that the string ends in the initial shift state.
- // This way the caller can be combine the string with other
- // strings without needing to worry about the shift states.
- if (!mbsinit(&state))
- return (size_t)-1;
-
- return width;
-#endif
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_open_stdxxx.c b/Build/source/extra/xz/src/common/tuklib_open_stdxxx.c
deleted file mode 100644
index 26702a6afab..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_open_stdxxx.c
+++ /dev/null
@@ -1,57 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_open_stdxxx.c
-/// \brief Make sure that file descriptors 0, 1, and 2 are open
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_open_stdxxx.h"
-
-#ifndef TUKLIB_DOSLIKE
-# include <stdlib.h>
-# include <errno.h>
-# include <fcntl.h>
-# include <unistd.h>
-#endif
-
-
-extern void
-tuklib_open_stdxxx(int err_status)
-{
-#ifdef TUKLIB_DOSLIKE
- // Do nothing, just silence warnings.
- (void)err_status;
-
-#else
- for (int i = 0; i <= 2; ++i) {
- // We use fcntl() to check if the file descriptor is open.
- if (fcntl(i, F_GETFD) == -1 && errno == EBADF) {
- // With stdin, we could use /dev/full so that
- // writing to stdin would fail. However, /dev/full
- // is Linux specific, and if the program tries to
- // write to stdin, there's already a problem anyway.
- const int fd = open("/dev/null", O_NOCTTY
- | (i == 0 ? O_WRONLY : O_RDONLY));
-
- if (fd != i) {
- if (fd != -1)
- (void)close(fd);
-
- // Something went wrong. Exit with the
- // exit status we were given. Don't try
- // to print an error message, since stderr
- // may very well be non-existent. This
- // error should be extremely rare.
- exit(err_status);
- }
- }
- }
-#endif
-
- return;
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_open_stdxxx.h b/Build/source/extra/xz/src/common/tuklib_open_stdxxx.h
deleted file mode 100644
index b91161609ee..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_open_stdxxx.h
+++ /dev/null
@@ -1,23 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_open_stdxxx.h
-/// \brief Make sure that file descriptors 0, 1, and 2 are open
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_OPEN_STDXXX_H
-#define TUKLIB_OPEN_STDXXX_H
-
-#include "tuklib_common.h"
-TUKLIB_DECLS_BEGIN
-
-#define tuklib_open_stdxx TUKLIB_SYMBOL(tuklib_open_stdxxx)
-extern void tuklib_open_stdxxx(int err_status);
-
-TUKLIB_DECLS_END
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_physmem.c b/Build/source/extra/xz/src/common/tuklib_physmem.c
deleted file mode 100644
index 623b6e70b7f..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_physmem.c
+++ /dev/null
@@ -1,196 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_physmem.c
-/// \brief Get the amount of physical memory
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_physmem.h"
-
-// We want to use Windows-specific code on Cygwin, which also has memory
-// information available via sysconf(), but on Cygwin 1.5 and older it
-// gives wrong results (from our point of view).
-#if defined(_WIN32) || defined(__CYGWIN__)
-# ifndef _WIN32_WINNT
-# define _WIN32_WINNT 0x0500
-# endif
-# include <windows.h>
-
-#elif defined(__OS2__)
-# define INCL_DOSMISC
-# include <os2.h>
-
-#elif defined(__DJGPP__)
-# include <dpmi.h>
-
-#elif defined(__VMS)
-# include <lib$routines.h>
-# include <syidef.h>
-# include <ssdef.h>
-
-// AIX
-#elif defined(TUKLIB_PHYSMEM_AIX)
-# include <sys/systemcfg.h>
-
-#elif defined(TUKLIB_PHYSMEM_SYSCONF)
-# include <unistd.h>
-
-#elif defined(TUKLIB_PHYSMEM_SYSCTL)
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# endif
-# include <sys/sysctl.h>
-
-// Tru64
-#elif defined(TUKLIB_PHYSMEM_GETSYSINFO)
-# include <sys/sysinfo.h>
-# include <machine/hal_sysinfo.h>
-
-// HP-UX
-#elif defined(TUKLIB_PHYSMEM_PSTAT_GETSTATIC)
-# include <sys/param.h>
-# include <sys/pstat.h>
-
-// IRIX
-#elif defined(TUKLIB_PHYSMEM_GETINVENT_R)
-# include <invent.h>
-
-// This sysinfo() is Linux-specific.
-#elif defined(TUKLIB_PHYSMEM_SYSINFO)
-# include <sys/sysinfo.h>
-#endif
-
-
-extern uint64_t
-tuklib_physmem(void)
-{
- uint64_t ret = 0;
-
-#if defined(_WIN32) || defined(__CYGWIN__)
- if ((GetVersion() & 0xFF) >= 5) {
- // Windows 2000 and later have GlobalMemoryStatusEx() which
- // supports reporting values greater than 4 GiB. To keep the
- // code working also on older Windows versions, use
- // GlobalMemoryStatusEx() conditionally.
- HMODULE kernel32 = GetModuleHandle("kernel32.dll");
- if (kernel32 != NULL) {
- BOOL (WINAPI *gmse)(LPMEMORYSTATUSEX) = GetProcAddress(
- kernel32, "GlobalMemoryStatusEx");
- if (gmse != NULL) {
- MEMORYSTATUSEX meminfo;
- meminfo.dwLength = sizeof(meminfo);
- if (gmse(&meminfo))
- ret = meminfo.ullTotalPhys;
- }
- }
- }
-
- if (ret == 0) {
- // GlobalMemoryStatus() is supported by Windows 95 and later,
- // so it is fine to link against it unconditionally. Note that
- // GlobalMemoryStatus() has no return value.
- MEMORYSTATUS meminfo;
- meminfo.dwLength = sizeof(meminfo);
- GlobalMemoryStatus(&meminfo);
- ret = meminfo.dwTotalPhys;
- }
-
-#elif defined(__OS2__)
- unsigned long mem;
- if (DosQuerySysInfo(QSV_TOTPHYSMEM, QSV_TOTPHYSMEM,
- &mem, sizeof(mem)) == 0)
- ret = mem;
-
-#elif defined(__DJGPP__)
- __dpmi_free_mem_info meminfo;
- if (__dpmi_get_free_memory_information(&meminfo) == 0
- && meminfo.total_number_of_physical_pages
- != (unsigned long)-1)
- ret = (uint64_t)meminfo.total_number_of_physical_pages * 4096;
-
-#elif defined(__VMS)
- int vms_mem;
- int val = SYI$_MEMSIZE;
- if (LIB$GETSYI(&val, &vms_mem, 0, 0, 0, 0) == SS$_NORMAL)
- ret = (uint64_t)vms_mem * 8192;
-
-#elif defined(TUKLIB_PHYSMEM_AIX)
- ret = _system_configuration.physmem;
-
-#elif defined(TUKLIB_PHYSMEM_SYSCONF)
- const long pagesize = sysconf(_SC_PAGESIZE);
- const long pages = sysconf(_SC_PHYS_PAGES);
- if (pagesize != -1 && pages != -1)
- // According to docs, pagesize * pages can overflow.
- // Simple case is 32-bit box with 4 GiB or more RAM,
- // which may report exactly 4 GiB of RAM, and "long"
- // being 32-bit will overflow. Casting to uint64_t
- // hopefully avoids overflows in the near future.
- ret = (uint64_t)pagesize * (uint64_t)pages;
-
-#elif defined(TUKLIB_PHYSMEM_SYSCTL)
- int name[2] = {
- CTL_HW,
-#ifdef HW_PHYSMEM64
- HW_PHYSMEM64
-#else
- HW_PHYSMEM
-#endif
- };
- union {
- uint32_t u32;
- uint64_t u64;
- } mem;
- size_t mem_ptr_size = sizeof(mem.u64);
- if (sysctl(name, 2, &mem.u64, &mem_ptr_size, NULL, 0) != -1) {
- // IIRC, 64-bit "return value" is possible on some 64-bit
- // BSD systems even with HW_PHYSMEM (instead of HW_PHYSMEM64),
- // so support both.
- if (mem_ptr_size == sizeof(mem.u64))
- ret = mem.u64;
- else if (mem_ptr_size == sizeof(mem.u32))
- ret = mem.u32;
- }
-
-#elif defined(TUKLIB_PHYSMEM_GETSYSINFO)
- // Docs are unclear if "start" is needed, but it doesn't hurt
- // much to have it.
- int memkb;
- int start = 0;
- if (getsysinfo(GSI_PHYSMEM, (caddr_t)&memkb, sizeof(memkb), &start)
- != -1)
- ret = (uint64_t)memkb * 1024;
-
-#elif defined(TUKLIB_PHYSMEM_PSTAT_GETSTATIC)
- struct pst_static pst;
- if (pstat_getstatic(&pst, sizeof(pst), 1, 0) != -1)
- ret = (uint64_t)pst.physical_memory * (uint64_t)pst.page_size;
-
-#elif defined(TUKLIB_PHYSMEM_GETINVENT_R)
- inv_state_t *st = NULL;
- if (setinvent_r(&st) != -1) {
- inventory_t *i;
- while ((i = getinvent_r(st)) != NULL) {
- if (i->inv_class == INV_MEMORY
- && i->inv_type == INV_MAIN_MB) {
- ret = (uint64_t)i->inv_state << 20;
- break;
- }
- }
-
- endinvent_r(st);
- }
-
-#elif defined(TUKLIB_PHYSMEM_SYSINFO)
- struct sysinfo si;
- if (sysinfo(&si) == 0)
- ret = (uint64_t)si.totalram * si.mem_unit;
-#endif
-
- return ret;
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_physmem.h b/Build/source/extra/xz/src/common/tuklib_physmem.h
deleted file mode 100644
index 09e2a51338a..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_physmem.h
+++ /dev/null
@@ -1,28 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_physmem.h
-/// \brief Get the amount of physical memory
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_PHYSMEM_H
-#define TUKLIB_PHYSMEM_H
-
-#include "tuklib_common.h"
-TUKLIB_DECLS_BEGIN
-
-#define tuklib_physmem TUKLIB_SYMBOL(tuklib_physmem)
-extern uint64_t tuklib_physmem(void);
-///<
-/// \brief Get the amount of physical memory in bytes
-///
-/// \return Amount of physical memory in bytes. On error, zero is
-/// returned.
-
-TUKLIB_DECLS_END
-#endif
diff --git a/Build/source/extra/xz/src/common/tuklib_progname.c b/Build/source/extra/xz/src/common/tuklib_progname.c
deleted file mode 100644
index 7cb7e203dd9..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_progname.c
+++ /dev/null
@@ -1,50 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_progname.c
-/// \brief Program name to be displayed in messages
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "tuklib_progname.h"
-#include <string.h>
-
-
-#if !HAVE_DECL_PROGRAM_INVOCATION_NAME
-char *progname = NULL;
-#endif
-
-
-extern void
-tuklib_progname_init(char **argv)
-{
-#ifdef TUKLIB_DOSLIKE
- // On these systems, argv[0] always has the full path and .exe
- // suffix even if the user just types the plain program name.
- // We modify argv[0] to make it nicer to read.
-
- // Strip the leading path.
- char *p = argv[0] + strlen(argv[0]);
- while (argv[0] < p && p[-1] != '/' && p[-1] != '\\')
- --p;
-
- argv[0] = p;
-
- // Strip the .exe suffix.
- p = strrchr(p, '.');
- if (p != NULL)
- *p = '\0';
-
- // Make it lowercase.
- for (p = argv[0]; *p != '\0'; ++p)
- if (*p >= 'A' && *p <= 'Z')
- *p = *p - 'A' + 'a';
-#endif
-
- progname = argv[0];
- return;
-}
diff --git a/Build/source/extra/xz/src/common/tuklib_progname.h b/Build/source/extra/xz/src/common/tuklib_progname.h
deleted file mode 100644
index 791b12517e5..00000000000
--- a/Build/source/extra/xz/src/common/tuklib_progname.h
+++ /dev/null
@@ -1,32 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file tuklib_progname.h
-/// \brief Program name to be displayed in messages
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TUKLIB_PROGNAME_H
-#define TUKLIB_PROGNAME_H
-
-#include "tuklib_common.h"
-#include <errno.h>
-
-TUKLIB_DECLS_BEGIN
-
-#if HAVE_DECL_PROGRAM_INVOCATION_NAME
-# define progname program_invocation_name
-#else
-# define progname TUKLIB_SYMBOL(tuklib_progname)
- extern char *progname;
-#endif
-
-#define tuklib_progname_init TUKLIB_SYMBOL(tuklib_progname_init)
-extern void tuklib_progname_init(char **argv);
-
-TUKLIB_DECLS_END
-#endif