Commit Graph

143 Commits

Author SHA1 Message Date
Brad King 4533560c23 Merge branch 'libarchive-upstream' into update-libarchive
Resolve conflicts in Utilities/cmlibarchive/CMakeLists.txt as
appropriate.
2014-04-15 16:34:50 -04:00
Brad King 44d6b82f43 libarchive: Disable all whitespace checks in third-party code 2014-04-15 16:34:17 -04:00
Brad King 6ab7c32648 libarchive: Avoid left-shift overflow of signed integer
In libarchive/archive_write_set_format_zip.c there are two calls to
archive_le32enc whose second argument is of the form

 archive_entry_mode(zip->entry) << 16

However, the return type from archive_entry_mode may be a signed integer
so the shift may overflow.  Since the second argument of archive_le32enc
expects uint32_t anyway, simply cast to that prior to shifting.
2014-04-15 09:08:20 -04:00
Brad King 5a58efaac3 libarchive: Avoid using name 'u_long'
The system headers on some platforms define a 'u_long' type so we cannot
use the name.  Spell out 'unsigned long' instead.
2014-04-11 09:01:27 -04:00
Brad King 8088332178 libarchive: Do not require includers to have windows.h
In archive_entry.h refer to "BY_HANDLE_FILE_INFORMATION *" using
"struct _BY_HANDLE_FILE_INFORMATION *" to avoid requiring the
includer to already have <windows.h>.
2014-04-03 15:20:53 -04:00
Brad King dfb0458e5b libarchive: Convert literal LL suffix to ARCHIVE_LITERAL_LL 2014-04-03 15:20:53 -04:00
Brad King b0a9807f39 libarchive: Update archive_util.c to use CMake zlib and bzip2 headers 2014-04-03 15:20:53 -04:00
Brad King debe4decce libarchive: Drop options not present in reduced version
Drop ENABLE_TAR and ENABLE_CPIO related options because we do not build
these command-line tools.  Drop ENABLE_TEST and ENABLE_COVERAGE options
because we do not build the tests.
2014-04-03 15:03:48 -04:00
Brad King 66b0c4fa19 libarchive: Do not generate a pkg-config file
CMake does not install the headers or libraries so skip the .pc file
too.
2014-04-03 15:03:43 -04:00
Brad King 8092e759ea libarchive: Update README-CMake.txt for new snapshot 2014-04-03 15:03:39 -04:00
Brad King 2f1978632b Merge branch 'libarchive-upstream' into update-libarchive
Resolve conflicts in favor of the upstream side where possible.
Resolve a logical conflict in archive_windows.h where the upstream
port to Watcom was done slightly differently from ours.
2014-04-03 15:02:49 -04:00
Brad King 23e4666cf5 libarchive: Disable more whitespace checks in third-party code 2014-04-03 14:37:13 -04:00
Jiri Malak 52285a993b libarchive: Fix compliation with Open Watcom 2014-03-09 10:36:21 -04:00
Ruslan Baratov 9e41eb68ec Fix wording of "the the" typos throughout text 2014-01-03 11:35:32 -05:00
Brad King 0bff4df5f6 libarchive: Use ARCHIVE_LITERAL_ULL to add ULL integer suffix
The macro maps to an implementation that works on older compilers
when necessary.
2013-12-09 14:04:24 -05:00
Brad King 61b39af353 libarchive: Port upstream issue 320 second fix
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>
2013-12-09 12:55:21 -05:00
Brad King 5ee1297d6b libarchive: Port upstream issue 320 fix
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>
2013-11-25 11:16:45 -05:00
Daniele E. Domenichelli 15610bb5b1 Drop use of configure_file IMMEDIATE option
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.
2013-11-13 10:12:17 -05:00
Brad King ab65862417 Clang: Add separate "AppleClang" compiler id
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.
2013-10-07 20:12:46 -04:00
Brad King df62f64db7 Clean up install rules of CMake itself (#14371)
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.
2013-08-26 11:54:07 -04:00
Brad King 26fe7e3adf libarchive: Backport to CMake 2.8.2
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.
2013-07-31 08:22:15 -04:00
Brad King b81a4e1568 libarchive: Remove build options not used by CMake
Drop options POSIX_REGEX_LIB and ENABLE_SAFESEH that we do not want for
the CMake build of libarchive.
2013-07-31 08:21:20 -04:00
Brad King 3218f52f11 libarchive: Avoid struct init with variable
Compilers such as Borland and MIPSpro do not like struct initialization
with variables.  Initialize using assignment instead.
2013-07-31 08:20:24 -04:00
Brad King bae3a73cee libarchive: Silence API deprecation warnings
CMake uses old libarchive APIs for now.
2013-07-31 08:20:05 -04:00
Brad King 677384017a libarchive: Include cm_zlib.h to get zlib used by CMake
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.
2013-07-31 08:19:58 -04:00
Brad King 8dc0a9f898 libarchive: Update README-CMake.txt for new snapshot 2013-07-31 08:19:48 -04:00
Brad King 102071f80c Merge branch 'libarchive-upstream' into update-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
2013-07-31 08:19:13 -04:00
Ömer Fadıl USTA 499531c64e libarchive: Fix free() order to avoid accessing freed memory
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>
2013-07-15 10:20:00 -04:00
Andreas Mohr bf019d765d Fix spelling and typos (non-binary) 2013-05-07 08:39:19 -04:00
Andreas Mohr ddac8d3d2d Fix spelling and typos (affecting binary data / module messages) 2013-05-07 08:39:19 -04:00
Sean McBride 6a6a6f3670 libarchive: fixed undefined left shift with signed ints
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.
2012-11-30 08:04:48 -05:00
Rolf Eike Beer 6c8722fab5 Fix typo direcotry -> directory (and similar) [#13444] 2012-07-30 08:08:33 +02:00
Brad King 54ffb5b4f1 libarchive: Avoid 'inline' on SunPro < 5.9 (#13277)
Suggested-by: Daniel R. Gomez <gomez@teragram.com>
2012-06-07 13:46:49 -04:00
Brad King d960de2f54 Require CMake 2.8.2 or higher to build CMake
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.
2012-04-26 16:39:54 -04:00
Brad King 09a91c6d5a libarchive: Avoid 'inline' keyword on XL C v6 (#13148) 2012-04-19 09:49:43 -04:00
Jim Hague a8995ebe35 libarchive: Avoid trailing , in enum for XL v6 (#13148)
IBM xlc v6 cannot cope with a trailing ',' in enum definitions.
2012-04-19 09:00:29 -04:00
Brad King ca7790240c libarchive: Workaround mbsnrtowcs assertion failure on old glibc
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.
2012-02-10 15:16:06 -05:00
Brad King d4a9e334d3 Include bzlib.h consistently across CMake build (#10950)
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>.
2012-01-13 14:05:36 -05:00
Brad King 6c611c6b94 libarchive: Restore CMake 2.6.3 as minimum version
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.
2012-01-05 09:09:31 -05:00
Brad King 2f5b677186 libarchive: Update README-CMake.txt for new snapshot 2012-01-05 09:06:42 -05:00
Brad King 156cb3bbf2 Merge branch 'libarchive-upstream' into update-libarchive
Conflicts:
	Utilities/cmlibarchive/CMakeLists.txt
	Utilities/cmlibarchive/libarchive/archive_windows.c
2012-01-05 09:02:58 -05:00
Brad King fd42bf1bdc libarchive: Set .gitattributes to allow trailing whitespace
We do not care about trailing whitespace in third-party code.
2012-01-05 09:02:01 -05:00
Brad King 65b6e19a35 libarchive: Avoid bogus conversion warning from PGI compiler
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.
2012-01-04 11:54:51 -05:00
Brad King 9ccaeb10f9 libarchive: Suppress PathScale compiler warnings
We are not developing libarchive so we do not care about warnings.
2012-01-04 09:57:46 -05:00
Brad King 2309438321 libarchive: Rename isoent_rr_move_dir parameter isoent => curent
The PGI compiler confuses parameter name "isoent" with "struct isoent".
Rename the parameter to "curent" to avoid confusion.
2012-01-04 09:48:41 -05:00
Brad King b6ca96ec95 libarchive: Include linux/types.h before linux/fiemap.h
Some Linux API versions do not perform this inclusion automatically,
so types like __u64 needed by the latter are not available.
2012-01-04 09:39:28 -05:00
Brad King f293b73d71 libarchive: Define _XOPEN_SOURCE=500 on HP-UX
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.
2012-01-04 08:46:49 -05:00
Brad King 6781a09940 libarchive: Cleanup after ZLIB_WINAPI check
Clear CMAKE_REQUIRED_(INCLUDES|LIBRARIES) so that the rest of the checks
after this one do not try to link zlib.
2012-01-03 18:34:19 -05:00
Brad King f15d75760f libarchive: Remove hard-coded build configuration
Do not set CMAKE_BUILD_TYPE to Debug.  Use the configuration specified by
the user.
2012-01-03 11:37:32 -05:00
Brad King 3a9f4490f4 libarchive: Use Apple copyfile.h API only if available
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.
2012-01-03 11:16:32 -05:00