| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
The macro maps to an implementation that works on older compilers
when necessary.
|
|
|
|
|
|
|
| |
Port upstream commit 6cf33c93 (Issue 320: Rewrite (again) to avoid
the left shift that CLang dislikes so much, 2013-12-07) into CMake.
Inspired-by: Tim Kientzle <kientzle@freebsd.org>
|
|
|
|
|
|
|
| |
Port upstream commit 533e8fda (Rework the sign-extension to avoid
left-shift of an explicit negative number, 2013-06-29) into CMake.
Inspired-by: Tim Kientzle <kientzle@freebsd.org>
|
|
|
|
|
|
| |
Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08)
we no longer need to use the configure_file IMMEDIATE option to support
compatibility modes less than 2.0.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apple distributes their own Clang build with their own version numbers
that differ from upstream Clang. Use the __apple_build_version__ symbol
to identify the Apple Clang compiler and report the Apple Build Version
as the fourth version component in CMAKE_<LANG>_COMPILER_VERSION. Add
Compiler/AppleClang-<lang> and Platform/Darwin-AppleClang-<lang> modules
that simply include the upstream equivalents.
Fix comparisons of CMAKE_<LANG>_COMPILER_ID to Clang in CMake's own
source and tests to account for AppleClang.
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR are always
relative paths in CMake code, and set defaults accordingly. Use the
install() command instead of install_files() and install_targets().
This is more modern and also avoids stripping of the first character
from user-specified destinations.
While at it, fix the default destinations reported in the bootstrap
help.
|
|
|
|
|
|
|
| |
Avoid requiring CMake 2.8.6 for CMakePushCheckState or CMake 2.8.8 for
CMakeExpandImportedTargets. Drop the custom versions of CMake modules
CheckCSource(Compiles|Runs) because we do not use the SAFESEH option
anyway.
|
|
|
|
|
| |
Drop options POSIX_REGEX_LIB and ENABLE_SAFESEH that we do not want for
the CMake build of libarchive.
|
|
|
|
|
| |
Compilers such as Borland and MIPSpro do not like struct initialization
with variables. Initialize using assignment instead.
|
|
|
|
| |
CMake uses old libarchive APIs for now.
|
|
|
|
|
|
| |
Follow up change from commit ffa6faa4 (libarchive: Include cm_zlib.h to
get zlib used by CMake, 2011-12-20) for new includes of zlib.h in
updated libarchive.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Conflicts:
Utilities/cmlibarchive/CMakeLists.txt
Utilities/cmlibarchive/libarchive/archive.h
Utilities/cmlibarchive/libarchive/archive_entry.h
Utilities/cmlibarchive/libarchive/archive_read_disk_posix.c
Utilities/cmlibarchive/libarchive/archive_read_support_format_iso9660.c
Utilities/cmlibarchive/libarchive/archive_windows.h
Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c
|
|
|
|
|
|
|
|
|
| |
The archive_string_conv type sc variable already freed via free(sc) on
the other hand in second line we are tyring to free its subset via
free(sc->from_charset) this will cause a problem because we couldn't
reach sc after first release.
Reviewed-by: Igor Murzov <e-mail@date.by>
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
caught by clang's -fsanitize=shift. A small unsigned int was
promoted, according to C's regular promotion rules, to a signed
int, it was then left shifted. This sometimes pushed a 1 into
the sign bit, which is undefined behaviour. Fixed by using
unsigned temporaries.
|
| |
|
|
|
|
| |
Suggested-by: Daniel R. Gomez <gomez@teragram.com>
|
|
|
|
|
|
|
|
|
| |
Update the requirement specified in the top-level CMakeLists.txt file.
Drop the special-case minimum required version of 2.8.0 because the new
minimum subsumes it.
Revert commit 6c611c6b (libarchive: Restore CMake 2.6.3 as minimum
version, 2012-01-05) since our requirement now subsumes libarchive's.
|
| |
|
|
|
|
| |
IBM xlc v6 cannot cope with a trailing ',' in enum definitions.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The CMake TarTest fails with the error
mbsnrtowcs.c:116: __mbsnrtowcs: Assertion
`status == GCONV_OK || status != GCONV_EMPTY_INPUT ||
status == GCONV_ILLEGAL_INPUT || status == GCONV_INCOMPLETE_INPUT ||
status == GCONV_FULL_OUTPUT' failed.
on very old glibc versions. Work around the problem by pretending that
mbsnrtowcs does not exist. Libarchive will fall back to mbrtowc.
|
|
|
|
|
|
|
|
|
| |
Use the approach originally used in commit f91b3c1d (Add options to
build with system utility libraries, 2006-10-19) for all other
third-party libraries. Create a "cm_bzlib.h" header wrapper that
robustly includes the header from the bzip2 library chosen for the CMake
build (either builtin or system version). Include the header wrapper
anywhere we need the API provided by <bzlib.h>.
|
|
|
|
|
|
| |
Upstream libarchive now requires CMake 2.8 to get the newer add_test
functionality. Since we do not build libarchive's tests we do not
need the requirement.
|
| |
|
|
|
|
|
|
| |
Conflicts:
Utilities/cmlibarchive/CMakeLists.txt
Utilities/cmlibarchive/libarchive/archive_windows.c
|
|
|
|
| |
We do not care about trailing whitespace in third-party code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot suppress PGI compiler warnings completely because even with
the "-w" flag the compiler still writes a message containing "compilation
completed with warnings" to stderr.
A warning is triggered by expressions like
test ? NULL : ptr_to_const_char
test ? ".." : ptr_to_const_char
that the PGI compiler handles incorrectly. It chooses the pointer type
of the first option (either void* or char*) and warns about conversion
of the second without a cast. Flip the expression logic to
!test ? ptr_to_const_char : NULL
!test ? ptr_to_const_char : ".."
to help the compiler choose the proper result type.
|
|
|
|
| |
We are not developing libarchive so we do not care about warnings.
|
|
|
|
|
| |
The PGI compiler confuses parameter name "isoent" with "struct isoent".
Rename the parameter to "curent" to avoid confusion.
|
|
|
|
|
| |
Some Linux API versions do not perform this inclusion automatically,
so types like __u64 needed by the latter are not available.
|
|
|
|
|
|
|
| |
The HP-UX <wchar.h> header provides 'mbstate_t' in C89/C90 mode only if
_XOPEN_SOURCE is defined to exactly 500. Type 'mbstate_t' was
introduced in C89/C90 Normative Amendment 1, aka C94/C95, adding support
international character sets. It is part of C99 but not C89/C90.
|
|
|
|
|
| |
Clear CMAKE_REQUIRED_(INCLUDES|LIBRARIES) so that the rest of the checks
after this one do not try to link zlib.
|
|
|
|
|
| |
Do not set CMAKE_BUILD_TYPE to Debug. Use the configuration specified by
the user.
|
|
|
|
|
| |
Do not use the copyfile.h API if the header is not available.
The Mac SDK for older OS X versions does not provide it.
|
|
|
|
|
| |
Use the same pattern already used elsewhere in archive_read_disk_posix.c
for ST_NOATIME to use MNT_NOATIME only when defined.
|
|
|
|
|
|
| |
Configure the result as definition HAVE_STRUCT_STATVFS_F_IOSIZE and use
the member only if it exists. At least one platform (IRIX) provides
struct statvfs without this member.
|
|
|
|
|
| |
Use the same pattern already used elsewhere in archive_read_disk_posix.c
to use ST_NOATIME only when defined.
|
|
|
|
|
| |
When HAVE_MBRTOWC is true we declare an extra local variable. Move the
unused argument cast to the end of the invalid_mbs function.
|
|
|
|
| |
We are not developing libarchive so we do not care about warnings.
|
|
|
|
|
|
|
|
| |
VS 6 warns verbosely when WINVER >= 0x0500. Avoid defining WINVER and
_WIN32_WINNT to higher than 0x0400 on VS 6. Provide missing API
declarations in archive_windows.h when we do not get them from
<windows.h>. Provide GetVolumePathNameW because VS 6 does not declare
it regardless of the API version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At least one compiler (Borland) defines mode_t as just "short" which is
signed. This breaks code like
switch(archive_entry_filetype(e)) {
case AE_IFREG:
...
}
if AE_IFREG and other constants have a longer signed type (int) because
sign extension of the mode_t return type from archive_entry_filetype
changes its value. Avoid the problem by ensuring the type of the
constants matches mode_t.
This change was originally made in commit a73acfbe (Fix for mode_t with
signed types, 2009-11-07). Port it to the new libarchive snapshot.
|
|
|
|
|
| |
Require ZLIB but skip LZMA and XML support. Mark ZLIB and ICONV cache
variables advanced.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mangle the open_FILE symbols to avoid conflict with open_file:
Warning: public '_archive_read_open_file'
in module 'archive_read_open_filename.c' clashes with
prior module 'archive_read_open_file.c'
Warning: public '_archive_write_open_file'
in module 'archive_write_open_filename.c' clashes with
prior module 'archive_write_open_file.c'
This workaround should not go upstream because it will break when
mixing compilers.
|
|
|
|
| |
The LL suffix is not portable. Use an explicit cast instead.
|
|
|
|
|
| |
The Borland C++ 5.81 runtime library provides wcrtomb but only the
C++ header <cwchar> actually declares the API.
|
|
|
|
|
|
| |
Restore Windows 64-bit lseek removed by upstream svn revision 3826
(Cast away __la_lseek(), use _lseeki64() instead, 2011-11-21). We
need it on Borland.
|