Commit Graph

153 Commits

Author SHA1 Message Date
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
Brad King 6af6b96cb3 libarchive: Do not use MNT_NOATIME if not defined
Use the same pattern already used elsewhere in archive_read_disk_posix.c
for ST_NOATIME to use MNT_NOATIME only when defined.
2012-01-03 11:15:25 -05:00
Brad King 02d5e40572 libarchive: Check for 'struct statvfs' member 'f_iosize'
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.
2011-12-23 16:04:59 -05:00
Brad King 8b7ee30bf4 libarchive: Do not use ST_NOATIME if not defined
Use the same pattern already used elsewhere in archive_read_disk_posix.c
to use ST_NOATIME only when defined.
2011-12-23 16:04:59 -05:00
Brad King 680fc0eda8 libarchive: Fix var decl after statement in archive_string.c
When HAVE_MBRTOWC is true we declare an extra local variable.  Move the
unused argument cast to the end of the invalid_mbs function.
2011-12-23 16:04:59 -05:00
Brad King e1afd072bc libarchive: Suppress compiler warnings
We are not developing libarchive so we do not care about warnings.
2011-12-23 16:04:59 -05:00
Brad King e2dc5561bb libarchive: Fix Windows NT API usage in VS 6
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.
2011-12-23 16:04:58 -05:00
Brad King 297d9f2032 libarchive: Cast mode constants to mode_t in case it is signed
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.
2011-12-23 16:04:58 -05:00
Brad King e00dbe86d9 libarchive: Clean up configuration within CMake build
Require ZLIB but skip LZMA and XML support.  Mark ZLIB and ICONV cache
variables advanced.
2011-12-23 16:04:58 -05:00
Brad King b5dd9aa482 libarchive: Workaround case-insensitive symbols on Borland
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.
2011-12-23 16:04:58 -05:00
Brad King 3b9eaec738 libarchive: Cast constants to int64_t instead of using LL suffix
The LL suffix is not portable.  Use an explicit cast instead.
2011-12-23 16:04:58 -05:00
Brad King 53da4b3028 libarchive: Declare mbstate_t and wcrtomb for Borland
The Borland C++ 5.81 runtime library provides wcrtomb but only the
C++ header <cwchar> actually declares the API.
2011-12-23 16:04:58 -05:00
Brad King ec48f10656 libarchive: Implement custom lseek for Borland
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.
2011-12-23 16:04:58 -05:00
Brad King c37c0c7897 libarchive: Fix typo in CheckFileOffsetBits
Replay commit 41719b75 (fix typo in CheckFileOffsetBits.cmake,
2011-10-05) after import of new libarchive snapshot.
2011-12-23 16:04:58 -05:00
Brad King 7dba0d668f libarchive: Port to OSF operating system
Make changes equivalent to those originally made by commits

  bd56626a (Fixes for the OSF operating system build, 2010-09-08)
  92c082b1 (Add a fix for the inline keyword on the osf os, 2010-09-10)

but based on the updated libarchive snapshot.
2011-12-23 16:04:58 -05:00
Brad King 0f7a85349a libarchive: Install COPYING with CMake documentation
Replay commit d39aee48 (Install COPYING with CMake documentation,
2011-06-16) after import of new libarchive snapshot.
2011-12-23 16:04:58 -05:00
Brad King ffa6faa40d libarchive: Include cm_zlib.h to get zlib used by CMake 2011-12-22 10:38:37 -05:00
Brad King 25a5e7cbc1 libarchive: Build one static cmlibarchive for CMake
CMake needs only a single static libarchive library and not a shared
one.  Call it cmlibarchive to avoid confusion.
2011-12-22 10:38:36 -05:00
Brad King bbdb75c5ff libarchive: Remove -Wall -Werror from build with GNU
We are not developing new libarchive features.  Furthermore -Werror can
break some try_compile cases.
2011-12-22 10:38:35 -05:00
Brad King 1d7ea8b629 libarchive: Do not build subdirectories not in reduced snapshot
Remove add_subdirectory() calls for directories not included in the
reduced libarchive snapshot.  Remove options that configure settings in
the missing directories.
2011-12-22 10:38:34 -05:00
Brad King d31bb538ef libarchive: Add README-CMake.txt
Describe how to update libarchive from upstream.
2011-12-22 10:38:33 -05:00
Brad King b2d14f705f libarchive: Add .gitattributes for indentation with tab 2011-12-22 10:38:32 -05:00
Brad King 3e5a80f063 Merge branch 'libarchive-upstream' into update-libarchive
Add Utilities/cmlibarchive using upstream libarchive 3.0.0-r3950
snapshot.
2011-12-20 11:54:25 -05:00
Brad King f6ac86d70e libarchive: Remove our copy to make room for new import 2011-12-20 11:47:27 -05:00
Rolf Eike Beer 41719b7507 libarchive: fix typo in CheckFileOffsetBits.cmake
s/Cheking/Checking/
2011-10-05 09:29:36 -04:00
Brad King 8dfe74c358 libarchive: Fix ssize_t detection with mingwrt 3.20
This version of MinGW defines _SSIZE_T_ for ssize_t.  This patch is
based on upstream libarchive SVN commit 3649 (Fix build with mingwrt
3.20, 2011-08-27).

Inspired-by: Tim Kientzle <kientzle@freebsd.org>
2011-09-16 16:44:44 -04:00
Brad King d39aee483e libarchive: Install COPYING with CMake documentation 2011-06-20 09:54:08 -04:00
Brad King 9a7c6a3cc4 Merge topic 'require-cmake-2.6.3'
c3e452e Require at least CMake 2.6.3 to build current CMake
2011-03-01 15:30:38 -05:00
Brad King c3e452e944 Require at least CMake 2.6.3 to build current CMake
Remove some cruft left for supporting builds with CMake 2.4.
2011-02-24 15:14:08 -05:00
Brad King fabdf7aa32 libarchive: Remove unused build/windows directory (#11885)
The directory contains some files with unclear licensing anyway.
2011-02-22 15:56:02 -05:00
Brad King ee55a4f709 libarchive: Use OpenSSL only if CMAKE_USE_OPENSSL (#11815)
OpenSSL is not part of the Linux Standard Base but its headers and
libraries may still be found at build time even though they may not be
available at runtime.  Use it only if explicitly allowed.
2011-02-08 15:22:50 -05:00
Brad King 41b7b3efa4 libarchive: Define major/minor/makedev only where needed (#11648)
If neither MAJOR_IN_MKDEV or MAJOR_IN_SYSMACROS is defined then provide
our own implementation of these macros locally.  This complements the
change in commit cf5ad183 (Fix major() check for LSB 4.0, 2011-01-12).
This patch is based on upstream libarchive SVN commit 1553 (Shuffle the
major/minor/makedev support a bit; this should work on both Windows and
Haiku, 2009-10-31).

Inspired-by: Tim Kientzle <kientzle@freebsd.org>
2011-02-07 10:06:50 -05:00
Brad King cf5ad18340 libarchive: Fix major() check for LSB 4.0 (#11648)
The LSB header files define major() as a macro but if it is ever called
the macro references symbols not available at link time.  Improve the
test for major() to actually call the macro and try to link.  This
approach is based on upstream libarchive SVN commit 2866 which fixed
libarchive issue 125, submitted in response to CMake issue #11648.

Inspired-by: Tim Kientzle <kientzle@freebsd.org>
2011-01-12 13:52:14 -05:00
David Cole 745671441d Merge topic 'fix_osf_build'
92c082b Add a fix for the inline keyword on the osf os.
bd56626 Fixes for the OSF operating system build.
2010-11-09 15:53:55 -05:00
Bill Hoffman 92c082b1c9 Add a fix for the inline keyword on the osf os. 2010-09-10 13:37:02 -04:00
Brad King b9c41813d2 libarchive: Fix purposeful crash
Dereferencing a 0-pointer is undefined behavior, not a deterministic
crash.  Use a 1-pointer instead.  This also avoids a warning by Clang
about the undefined behavior.
2010-09-10 09:00:48 -04:00
Bill Hoffman bd56626a4a Fixes for the OSF operating system build. 2010-09-08 14:50:14 -04:00
Brad King e87b6bbddb libarchive: Remove SCHILY dev,ino,nlink attributes (#11176)
At least one version of GNU tar (1.15.1 with Fedora patches) does not
recognize these attributes and exits with error.  Do not generate them.
Patch from upstream libarchive svn r2563.
2010-08-27 09:15:29 -04:00
Bill Hoffman aa1450bda1 Fix build on borland windows, by adding back typedef for pid_t. 2010-05-06 08:48:14 -04:00
Ruben Van Boxem 7883f952b0 Win64 fixes for mingw-w64 compilation 2010-05-05 17:13:21 -04:00
Bill Hoffman 1c13ced6eb Fix prototype to match header, for bug # 10543. 2010-05-05 09:34:57 -04:00
Bill Hoffman d6a6eadcfe For HP, preprocessor if on multiple lines not allowed, make a long line. 2010-05-04 15:52:00 -04:00
Bill Hoffman a18612429d Fixes for bug # 10543, build on older sunpro now works. 2010-05-04 14:52:22 -04:00
Bill Hoffman 38524ec8d1 Remove another c++ comment from the c code. 2010-04-27 21:27:26 -04:00
Bill Hoffman 2e188ef1ff Get rid of c++ style comments in C code. 2010-04-27 17:45:40 -04:00
Brad King 68374fe078 libarchive: Drop unused %jd and %lld checks
The libarchive source does not use HAVE_PRINTF_JD or HAVE_PRINTF_LLD, so
we do not need to test for them at configuration time.
2009-12-14 17:26:47 -05:00
Brad King 8b2f6dbfa2 libarchive: Remove unused STDC_HEADERS try_run
This was the only try_run() in libarchive, and the result was not used
in the source code.  We remove it to allow cross-compiling to work.
2009-11-30 17:22:24 -05:00
Brad King 9e852190b3 libarchive: Use one architecture for try-compiles
We use CHECK_TYPE_SIZE in libarchive to check for the existence of some
types.  For universal binary builds on the Mac, the size check can fail
if it is inconsistent across architectures.  However, we do not actually
need the size so it is safe to do the checks for only one architecture.

See issue #9913.
2009-11-23 11:30:58 -05:00
Brad King 8cb1f4b0a4 libarchive: Include integer types very early
In libarchive/archive_platform.h we should include <stdint.h> or
<inttypes.h> immediately after "config.h" to define integer types
referenced by configuration results.  For example, on a non-conformant
platform ssize_t might default to int64_t, so int64_t must be defined
before ssize_t is used (and ssize_t is used in archive_windows.h).
2009-11-18 15:50:24 -05:00
Bill Hoffman f8b9a2681b for the Cmake build we do not want to have -Werror or force -Wall 2009-11-13 22:48:31 -05:00
Bill Hoffman bd60a2469a remove the last of the windows W4 warnings 2009-11-12 10:17:55 -05:00
Bill Hoffman d91d04a47a Remove a few more warnings 2009-11-12 07:42:21 -05:00
Brad King 8cf5af0645 libarchive: Borland provides umask, not _umask 2009-11-10 16:27:42 -05:00
Bill Hoffman 0106b490de keep libarchive from using a system zlib unless cmake uses one 2009-11-09 14:42:23 -05:00
Brad King 665ac8d4a4 libarchive: Put local include dir first
In libarchive we configure an internal header file called 'config.h'.
This commits moves the include directory containing the file to the
beginning of the include path to avoid conflicts from system headers.
2009-11-09 13:38:29 -05:00
Bill Hoffman 739d692e72 try to get rid of some warnings on hpux 2009-11-08 17:39:39 -05:00
Bill Hoffman f5ff79e8bd remove a few more windows warnings 2009-11-08 15:10:34 -05:00
Bill Hoffman a73acfbeb9 Fix for mode_t with signed types 2009-11-07 19:34:24 -05:00
Bill Hoffman bc701c59de link in additional libraries that the configure step finds 2009-11-07 10:52:40 -05:00
Bill Hoffman 8111b06078 Fix hpux build on heart 2009-11-06 12:13:36 -05:00
Brad King 5a509ab6ae libarchive: Fix get(pw|gr)name_r comment
The commit "libarchive: Define _XOPEN_SOURCE for get(pwu|grg)id_r"
introduced a comment referring to get(pwu|grg)id_r in a source file that
actually uses the functions get(pw|gr)name_r.  We fix the comment.
2009-11-06 10:54:25 -05:00
Brad King 76f8504596 libarchive: Initialize passwd/group lookup result
The "result" argument to functions get(pwu|grg)id_r and get(pw|gr)name_r
does not appear in the signatures provided on older platforms.  We set
the pointer to the result memory in case the function ignores it, thus
ensuring initialization.
2009-11-06 10:54:10 -05:00
Brad King db05eb1b3c libarchive: Fix try-compile for SIZE_MAX
This constant may be defined in one of a few headers.  We teach the
try-compile for it to test all the headers together instead of only one
header.
2009-11-05 16:29:30 -05:00
Brad King d7ef7e9416 libarchive: Add try-compile for 'major'
The commit "Fix libarchive linker errors on SunOS for mkdev/major/minor"
hard-coded #include lines for getting mkdev/major/minor on the Sun.
Instead we add missing try-compile tests to make sure the proper headers
get included through the standard mechanism.
2009-11-05 16:29:21 -05:00
Brad King fe598550aa libarchive: Define _XOPEN_SOURCE for get(pwu|grg)id_r
The commit "Fixed a few of the SunOS build errors in libarchive" changed
the call to these functions to use the old signatures.  Instead we now
define _XOPEN_SOURCE to get the improved modern signatures.
2009-11-05 16:29:10 -05:00
Bill Hoffman 7eac77605d Do not use external lzma library as it causes link errors on several machines and we don't need it. 2009-11-05 15:54:19 -05:00
Zach Mullen ac3f37e0b6 Fix linker errors for libarchive in AIX as well. 2009-11-05 15:48:50 -05:00
Zach Mullen a01badcc7a Fix statement not reached warning for libarchive. 2009-11-05 14:15:28 -05:00
Zach Mullen 557a42a9dd Fix libarchive linker errors on SunOS for mkdev/major/minor 2009-11-05 14:06:45 -05:00
Zach Mullen 5a6cb44e96 Fixed a few of the SunOS build errors in libarchive. 2009-11-05 13:40:06 -05:00
Brad King 593bb64d16 libarchive: Use consistent function storage class
Functions declared 'static' should be defined 'static' too.
2009-11-04 17:25:35 -05:00
Brad King 4c6f63a409 libarchive: Fix integer type defaults for Windows
Most of the integer type defaults needed for MSVC and Borland actually
work with all Windows compilers.  This commit generalizes the defaults
to avoid compiler-specific tests.
2009-11-04 17:17:57 -05:00
Brad King f4b70b6323 libarchive: Provide SetFilePointerEx for VS 6 2009-11-04 16:31:40 -05:00
Brad King e5075bb8e8 libarchive: Fix unconfigured header logic
The commit "libarchive: Fix Borland integer constants" introduced use of
HAVE_* configured macros into archive.h and archive_entry.h where they
are not allowed.  This commit replaces the logic with something that
does not depend on the configured macros.
2009-11-04 16:06:44 -05:00
Brad King 7f5361f040 libarchive: Fix dev_t configuration 2009-11-04 16:06:34 -05:00
Brad King 9bc63eb30f libarchive: Fix intptr_t and uintptr_t configuration 2009-11-04 16:06:26 -05:00
Brad King d785cb0021 libarchive: Fix wincrypt.h inclusion on VS 6
The VS 6 version of wincrypt.h only works if _WIN32_WINNT >= 0x0400.
We block its inclusion through windows.h by defining NOCRYPT, and then
define _WIN32_WINNT and include it only when necessary.
2009-11-04 16:06:17 -05:00
Brad King c9a9c88634 libarchive: Fix Borland integer constants
Some versions of Borland provide <stdint.h>, so we use it when possible.
However, the 64-bit signed and unsigned integer min/max constants cause
overflow warnings from Borland itself!  For these constants we fall back
on our default definitions.
2009-11-04 13:10:11 -05:00
Brad King 12baf7b7f1 libarchive: Disable Borland warnings
We disable warnings to silence them while making minimal changes to
third-party code.
2009-11-04 13:09:59 -05:00
Brad King ccd831c559 libarchive: Disable MSVC warnings
We disable warnings to silence them while making minimal changes to
third-party code.
2009-11-04 13:09:41 -05:00
Bill Hoffman 7fba9849f9 Fix for warning on dash8 that caused a build failure because of -WError 2009-11-04 10:45:52 -05:00
Bill Hoffman 2733f4f8e7 Fix for dash17 ACL requires linking to a library acl that we don't want to depend on. 2009-11-03 17:40:44 -05:00
Bill Hoffman b9e88cd4c8 remove makefiles as they cause the in source build test of cmake to fail 2009-11-03 10:21:50 -05:00
Bill Hoffman ca73562e54 borland builds, but still has some link errors 2009-11-02 10:51:29 -05:00
Bill Hoffman 8ba2a40404 Fixes for borland, compiles with lots of warnings, but compiles, might fix vs70 again too. 2009-11-01 12:41:17 -05:00
Bill Hoffman 1db02b4d4e Fix for haiku 2009-10-31 09:39:58 -04:00
Bill Hoffman a533cc6093 Try to fix borland 2009-10-30 22:29:08 -04:00
Bill Hoffman 53082a4f34 Try to fix old hpux 2009-10-30 18:07:45 -04:00
Bill Hoffman 7ff27819de Remove unused variable to fix warning 2009-10-30 17:10:09 -04:00
Bill Hoffman 7b22ab1990 Remove unused variable to fix warning 2009-10-30 17:05:57 -04:00
Bill Hoffman 7a35b9ba3a only use archive_entry_copy_bhfi.c on windows so we don't get empty .o file warnings 2009-10-30 17:01:49 -04:00