Commit Graph

1304 Commits

Author SHA1 Message Date
Brad King 518c5060a7 Merge branch 'libuv-gnu-hurd' into release-3.12
Merge-request: !2422
2018-10-01 08:24:35 -04:00
Brad King 3c0bfb596f libuv: do not require PATH_MAX to be defined
Some platforms (e.g. GNU/Hurd) do not define PATH_MAX.  Add a few other
variants and a fallback constant.  Also use alternatives where possible:

* For readlink(), use lstat() to read the length of the link first.
  If it is not a symlink, report EINVAL before trying to allocate.
  If the size reports as zero, fall back one of the PATH_MAX variants.

* For realpath(), POSIX 2008 allows us to pass a NULL buffer
  to tell it to malloc() internally.

This patch was inspired by downstream patches in Debian packaging
for issues 897061 and 909011.

Issue: #18337
2018-10-01 08:22:38 -04:00
Brad King e7e88e955b libarchive: Backport fix for build with LibreSSL 2.7
Backport libarchive commit v3.3.3~16^2 (fix build with LibreSSL 2.7,
2018-04-01).  LibreSSL 2.7 adds OpenSSL 1.1 API leading to conflicts on
method names.

Fixes: #18404
2018-09-26 09:47:53 -04:00
Brad King ef5e2e8a62 Merge branch 'sphinx-info' into release-3.12
Merge-request: !2146
2018-06-13 10:52:11 -04:00
Orivej Desh 276e369813 Utilities/Sphinx: Add option to build and install Info manual
Add option `SPHINX_INFO` to enable the Sphinx 'texinfo' builder and use
the `makeinfo` tool to convert it to a `.info` file.
2018-06-12 10:25:37 -04:00
Brad King af63c8bd61 CMake 3.12.0-rc1 version update 2018-06-05 11:43:10 -04:00
luz.paz be28106880 Fix misc. typos
Found via `codespell` and `grep`
2018-06-04 10:32:49 -04:00
Kitware Robot d7204e649e Revise C++ coding style using clang-format-6.0
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`.  Use `clang-format` version 6.0.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.
2018-06-01 09:53:42 -04:00
Brad King 523c443d13 clang-format.bash: update to clang-format-6.0
Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before.  Then revise the style:

* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`

Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`.  This will aid
external infrastructure in knowing what version of the tool to run.
2018-06-01 09:52:02 -04:00
Brad King 86121ffd1c Utilities/Release: Update to openssl-1.1.0h
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2018-05-31 11:24:41 -04:00
Brad King 722056372e Merge topic 'update-curl'
3e913b819d Merge branch 'upstream-curl' into update-curl
d431136e02 curl 2018-05-15 (cb013830)
f3c73b878c curl: Update script to get curl 7.60.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2091
2018-05-21 09:53:06 -04:00
Brad King 3e913b819d Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-05-15 (cb013830)
2018-05-18 10:16:50 -04:00
Brad King f3c73b878c curl: Update script to get curl 7.60.0 2018-05-18 10:15:46 -04:00
Brad King 8cfc45f6bd clang-format: Explicitly require version 3.8 of the tool
Versions of clang-format newer than 3.8 produce different output.
Our source code guide says that version 3.8 exactly must be used.
Update the comment in our `.clang-format` config file accordingly.
Add a check to our formatting script to verify the version.
Also update its tool search to look for the explicitly-named
3.8 variant first.
2018-05-18 09:19:10 -04:00
Daniel Franke 7a33cfc1bc regenerate-parsers.bash: Add script to automate parser generation
This depends on

- a suitable flex version in PATH (currently 3.0.4)
- a suitable version of 'sed' in PATH (e.g. GNU sed)
2018-05-16 11:47:44 -04:00
Daniel Franke 3d382a494f regenerate-lexers.bash: Add option to check timestamps 2018-05-16 11:47:41 -04:00
Daniel Franke 5cd9f5c965 regenerate-lexers.bash: Factor file names into variables 2018-05-16 11:47:37 -04:00
Brad King 65431c727b Merge topic 'update-libuv'
0d389d175a libuv: Revert local linux/sparc64 fix now that we have upstream fix
42fbb28516 Merge branch 'upstream-libuv' into update-libuv
c8b67ea119 libuv 2018-05-06 (bf605bd7)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2049
2018-05-08 08:34:51 -04:00
Brad King d165fd1727 Merge topic 'doc-code-block-highlight'
8114b00b02 Utilities/Sphinx: Do not highlight unspecified code blocks as python

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2047
2018-05-08 08:28:19 -04:00
Brad King 0d389d175a libuv: Revert local linux/sparc64 fix now that we have upstream fix 2018-05-07 11:49:25 -04:00
Brad King 42fbb28516 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2018-05-06 (bf605bd7)
2018-05-07 11:48:01 -04:00
Brad King 72814e46da Utilities/Sphinx: Make HTML links in parsed-literal blocks more obvious
Hyperlink text color does not stand out when used inside a literal block
because such blocks typically get syntax highlighting.  Update our CSS
style to make the links more distinct.

Suggested-by: Kyle Edwards <kyle.edwards@kitware.com>
2018-05-07 10:10:37 -04:00
Brad King 8114b00b02 Utilities/Sphinx: Do not highlight unspecified code blocks as python 2018-05-04 14:57:36 -04:00
Brad King 593c409a65 Merge topic 'ctest-libuv-linux-sparc64'
1c22fdf360 libuv: linux/sparc64: use fcntl to set and clear O_NONBLOCK

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2029
2018-05-03 08:13:16 -04:00
Brad King 1c22fdf360 libuv: linux/sparc64: use fcntl to set and clear O_NONBLOCK
Upstream libuv commits:

* node-v0.6.0~28 (linux: use ioctl(FIONBIO) to set O_NONBLOCK, saves a syscall, 2011-10-29)
* v1.11.0~11 (unix: use async-signal safe functions between fork and exec, 2016-12-12)

left an asymmetry in the way O_NONBLOCK is set and cleared.  Normally
ioctl/FIONBIO is used for both.  However, uv_spawn uses fcntl/O_NONBLOCK
to clear O_NONBLOCK between fork and exec.  This fails on Linux/sparc64
where setting via ioctl/FIONBIO actually sets two bits (in O_NDELAY)
that cause clearing via fcntl/O_NONBLOCK to be silently ignored (though
clearing via ioctl/FIONBIO or fcntl/O_NDELAY works).

Since CMake commit v3.11.0-rc1~117^2 (CTest: Re-implement test process
handling using libuv, 2017-12-10), CTest uses libuv.  On Linux/sparc64
child processes have been started with non-blocking output pipes.  This
can lead to write errors or lost output from children not prepared to
deal with `EAGAIN` on stdout or stderr.

Fix this for now by switching libuv back to fcntl/O_NONBLOCK to set and
clear O_NONBLOCK when compiled on Linux/sparc64.

LibUV-Issue: 1830
Fixes: #17941
2018-05-02 11:16:19 -04:00
Brad King 8acf46caf1 Utilities/Sphinx: Add role and directive for 'envvar' in CMake domain
This enables cross-reference syntax for CMake environment variables:

    :envvar:`SOMEVAR`

and definition of CMake environment variables via a directive:

    .. envvar:: SOMEVAR

It also adds environment variables defined by the directive and by
`Help/envvar/SOMEVAR.rst` documents to the index.

This `envvar` role and directive is defined in our `cmake` domain
and overrides the equivalent `envvar` role and directive provided
by Sphinx in its default domain.  This is okay because we build
CMake documents in the `cmakd` domain.

This follows up the work from commit v3.10.0-rc1~43^2 (Help: Document
CMake's environment variables, 2017-09-01) that originally added
`envvar` documentation.
2018-04-19 09:02:44 -04:00
Brad King 7e532abc78 Utilities/Sphinx: Fix QtHelp generator identifiers
Add missinge entry in `create_identifiers.py` helper.
2018-04-19 08:48:28 -04:00
Jean-Christophe Fillion-Robin 52b1419040 Utilities/Release: Remove extra colon from release scripts
The type of the `BUILD_QtDialog` cache entry is `BOOL`, not `BOOL:`.
2018-04-03 14:11:38 -04:00
Brad King c5428d8db2 libuv: disable process affinity during CMake bootstrap
Avoid depending on platform-specific pthread features during bootstrap.
2018-03-05 09:21:31 -05:00
Brad King 24de561a1a libuv: unix,win: add uv_spawn option to set child CPU affinity mask
Implement it on Linux, FreeBSD, and Windows for now, and fail with
UV_ENOTSUP on other platforms.

Backported from upstream libuv PR 1527, scheduled for inclusion
in libuv 2.0.
2018-03-05 09:21:31 -05:00
Brad King 43d6e5a71f libuv: misc: add function to get CPU affinity mask size
Implement it on Linux, FreeBSD, and Windows for now, and return
UV_ENOTSUP on other platforms.

Backported from upstream libuv PR 1527, scheduled for inclusion
in libuv 2.0.
2018-03-05 09:21:31 -05:00
Brad King 51b287c40c CMake 3.11.0-rc1 version update 2018-02-05 11:16:50 -05:00
Brad King cd8e31a1bf Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-01-23 (d6c21c8e)
2018-01-24 14:18:16 -05:00
Brad King e9c8ea7557 curl: Update script to get curl 7.58.0 2018-01-24 14:14:04 -05:00
Brad King 63f263b27f Merge topic 'update-libuv'
6db7b352 libuv: Update build within CMake
b58d48c1 Merge branch 'upstream-libuv' into update-libuv
f4a26c74 libuv 2018-01-19 (63de1eca)
e8b57c22 libuv: Teach import script to add missing newlines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1666
2018-01-22 10:18:44 -05:00
Brad King e720a34399 IWYU: Add more workaround mappings for internal bits
Extend our hack section of mappings to work around IWYU incorrectly
requiring:

* bits/stdint-uintn.h for stdint.h
* bits/stdint-intn.h for stdint.h
* bits/types/mbstate_t.h for wchar.h
2018-01-22 09:56:30 -05:00
Brad King 6db7b35236 libuv: Update build within CMake
Update our CMake build rules to account for upstream changes.
2018-01-19 13:03:12 -05:00
Brad King b58d48c15f Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2018-01-19 (63de1eca)
2018-01-19 13:03:04 -05:00
Brad King e8b57c2283 libuv: Teach import script to add missing newlines 2018-01-16 13:27:23 -05:00
Brad King 4cf08c96f8 Merge topic 'ctest-libuv'
b5e21d7d CTest: Re-implement test process handling using libuv
fcebff75 cmProcess: Use explicit enum for process exit exception
3dd2edf4 cmProcess: Use explicit enum for process state
5238e6db cmProcess: Remove unused ReportStatus method
c13b68e6 cmCTestRunTest: Modernize constructor and destructor decls
4d6b0903 cmCTestRunTest: Drop unused members
05da65bc cmCTestMultiProcessHandler: Factor out duplicate test finish logic
dd945345 cmCTestMultiProcessHandler: Add helper to make libuv use SA_RESTART
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1455
2018-01-11 15:33:03 -05:00
Brad King 8a53242df9 Merge branch 'upstream-KWIML' into update-kwiml
* upstream-KWIML:
  KWIML 2018-01-09 (9c2d6cae)
2018-01-09 08:51:59 -05:00
Brad King 4ffb0f8b45 libuv: unix: restart syscalls interrupted by our signal handler
BSD `signal(2)` semantics make some system calls (e.g. for `write`)
restartable when interrupted by a signal handler.  Use `SA_RESTART` to
enable these semantics everywhere that supports them.

This is required by C++ stream libraries that interpret `EINTR` as any
other error, set `badbit`, and stop writing.  I've observed this with
`libstdc++` during a `std::cout.flush()` call interrupted by `SIGCHLD`.
2018-01-08 12:55:00 -05:00
Brad King b8e7af979d Merge topic 'ctest-chrono'
66419bc0 CTest: convert timeouts to std::chrono::duration
923b8fad IWYU: Add mappings for std::enable_if on chrono durations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1513
2017-12-05 08:12:52 -05:00
Wouter Klouwen 66419bc046 CTest: convert timeouts to std::chrono::duration
This commit continues the refactoring of CTest to adopt std::chrono.
After the last sets of changes that introduced std::chrono::steady_clock
and std::chrono::system_clock respectively, it makes sense to have all
the timeouts be stored as std::chrono::duration.

No functional change intended.
2017-12-04 10:43:14 -05:00
Brad King 5cb64508a3 Merge branch 'upstream-GitSetup' into update-gitsetup
* upstream-GitSetup:
  GitSetup 2017-10-26 (1639317d)
2017-11-30 14:55:34 -05:00
Brad King cbd37fbec3 GitSetup: Restrict import to files we need 2017-11-30 14:55:16 -05:00
Brad King 923b8fadd5 IWYU: Add mappings for std::enable_if on chrono durations
IWYU incorrectly classifies this internal STL type as not internal, and
suggests including `<type_traits>` for it.  Work around the problem by
mapping the offending names to a file that we always include.

See include-what-you-use issue 434.
2017-11-28 10:50:44 -05:00
Brad King e5fdbcc9da IWYU: Add more mappings for std::__decay_and_strip
IWYU incorrectly classifies this internal STL type as not internal, and
suggests including `<type_traits>` for it.  Work around the problem by
mapping the offending names to a file that we always include.

See include-what-you-use issue 434.
2017-11-21 14:22:40 -05:00
Brad King b40d45cdb1 Utilities/Release: Update to openssl-1.1.0g
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.

Now that we require pthreads for libuv anyway, we can use OpenSSL 1.1
along with its dependency on pthreads.
2017-11-14 09:43:03 -05:00
Brad King 78aeb30075 Utilities/Release: Update to openssl-1.0.2m
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2017-11-14 09:36:07 -05:00