1
0
Fork 0
Commit graph

123 commits

Author SHA1 Message Date
kcgen
fe6674f9eb Move build-script procedures to top-level 2020-05-10 21:58:52 +02:00
kcgen
d423a4363b Add empty configs for remaining package managers 2020-05-10 21:58:52 +02:00
kcgen
72a8ffb0a7 Refresh build docs against current scripts 2020-05-10 21:58:52 +02:00
Patryk Obara
01fb4f303e Parse build log in MSVC format 2020-05-09 19:00:31 +02:00
kcgen
a495aefe83 Add Haiku OS support to build system 2020-05-09 18:46:08 +02:00
kcgen
d7b8590026 Allow GCC's LTO on all platforms 2020-05-06 09:11:58 +02:00
kcgen
ec43dabba4 Enable NEON SIMD for corresponding ARM platforms 2020-04-27 03:32:26 +02:00
kcgen
2f4830830e Add nightly ARM & IBM platform builds 2020-04-27 03:32:26 +02:00
kcgen
01728f719e Drop xvfb, and add autotools for apt-repos 2020-04-27 03:32:26 +02:00
kcgen
892a6f61a2 Print the log if configure fails 2020-04-27 03:32:26 +02:00
Patryk Obara
237577101b Merge branch 'svn/trunk' r4337 2020-04-26 00:38:29 +02:00
Peter Veenstra
8e74e307a9 time keeps ticking
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4337
2020-04-25 20:05:04 +00:00
krcroft
3301b5924e Use more robust method to get the scripts directory 2020-04-22 02:31:55 +02:00
krcroft
31d4f485c8 Add aliasing warnings to the warnmore target 2020-04-15 14:26:29 +02:00
krcroft
9d3f982f52 Enable strict aliasing for release builds 2020-04-15 14:26:29 +02:00
krcroft
96943eb68b Add ARM platforms to the build script 2020-04-14 05:55:18 +02:00
krcroft
9d576b5cb7 Statically link libasan during ASAN builds
Some deployments of GCC won't link ASAN build without explicitly
specifying the library, and report:

  "ASan runtime does not come first in initial library list;
   you should either link runtime to your application or
   manually preload it with LD_PRELOAD"

This commit includes the asan library by default for respective
builds.
2020-04-13 14:15:07 +02:00
krcroft
85517f82a9 Add memory-count instrumentation to Clang MSAN builds 2020-04-13 14:15:07 +02:00
krcroft
e1d2fe3135 Make sanitizers platform-agnostic 2020-04-13 14:15:07 +02:00
krcroft
6d308e1129 Append to lists to avoid clobbering 2020-04-09 11:59:04 +02:00
krcroft
de3958fd74 Add an 'optinfo' build target
The 'optinfo' build target asks GCC to print optimizations that
could not be performed to local 'missing.txt' files; these will
appear in each repsective subdirectory having source files.

Both GCC and Clang will now print Verbose vectorization information
during the build process, often describing why vectorization
cannot be performed.

This commit also enables basic instruction and math vectorization
for both the 'release' and 'optinfo' targets. This includes making
use of altivec instructions (available on all powerpc processors),
and at a minimum sse4.2 on all x86_64 processors (circa-2008+ AMD
and Intel CPUs).

Vectorization is also re-enabled for GCC FDO builds, which would
otherwise be disabled when we switch to -O2 optimizations.
2020-04-09 11:58:51 +02:00
Patryk Obara
68a1291bc6 Update clang-format rules to 9.0
Set AllowAllConstructorInitializersOnNextLine to false. This prevents
formatting problem when initializer list is long enough to be wrapped
once, but all initializers fitted into the next line.

Turn on AlignConsecutiveMacros option.
2020-04-02 03:30:17 +02:00
krcroft
78ae277d28 Expand use and support for LTO and FDO builds
Adds LTO to the CI build for Linux, which bring it as close as possible
to the planned formal release, which will additionally use FDO.

Adds some helper scripts to work with FDO files.

Improves the build notes for how to create and use FDO files.
2020-04-01 08:03:39 +02:00
Patryk Obara
0759165f45 Implement script for re-formatting recent commits
This script is intended to be used in two situations:

- When user can't configure clang-format in code editor or IDE
- Potentially to be used in CI in the future

Normal usecase is to run this script after commit, then review and
add formatted code, and amend the commit, e.g.:

  git commit -m "Edit some C++ code"
  ./scripts/format-commit.sh
  git add -p  # select formatting changes you want to use
  git commit --amend

Run:

  ./scripts/format-commit.sh --help

to learn about other options.
2020-04-01 07:38:05 +02:00
krcroft
2c8db8fbe4 Use ccache in the CI workflows 2020-03-24 03:42:04 +01:00
krcroft
99a47bc590 Use ccache if available 2020-03-22 21:12:36 +01:00
krcroft
f142509ac8 Selectively enable MarkDown line-length checking 2020-03-21 23:38:40 +01:00
krcroft
1460f90720 Allow finer grain tracing for debug builds 2020-03-20 01:06:23 +01:00
krcroft
01f5ca4365 Handle user-defined sets of files 2020-03-15 21:46:46 +01:00
krcroft
6fcc453d50 Add a script to check if <ctype> is included before <algorithm> 2020-03-14 17:01:43 +01:00
krcroft
5071f76ccb Add a script to capture preprocessor #define statements 2020-03-14 17:01:43 +01:00
Patryk Obara
38e2944eae Implement counter for sanitizer issues 2020-03-11 10:38:10 +01:00
Patryk Obara
60198816f1 Rename count-bugs to count-clang-bugs 2020-03-11 10:38:10 +01:00
Joshua Fern
f2029d71d8 Update copyright dates to 2020 2020-03-07 00:18:01 +01:00
Patryk Obara
8b1603c5f2 Avoid counting duplicate warnings
Prevents inflation of effc++ warnings number.
2020-03-01 21:23:04 +01:00
krcroft
7957435c53 Improve layout of storage directory 2020-02-17 19:29:43 +01:00
krcroft
018cca2415 Expire records and cache at different timeframes 2020-02-17 19:29:43 +01:00
krcroft
82a22fd878 Let user specify branch(es) to operate on 2020-02-17 19:29:43 +01:00
krcroft
675d8b99bf Check dependencies and improve messages 2020-02-14 09:29:39 +01:00
krcroft
cdb6957bb6 Store GitHub credentials using git 2020-02-14 09:29:39 +01:00
krcroft
94cd6df6cd Add a script to fetch and diff GitHub workflow logs 2020-02-14 09:29:39 +01:00
krcroft
65d8187595 Test more criteria during PVS analysis
This commit:

- Adds a separate analysis run against the MIRSA (Motor Industry
  Software Reliability Association) criteria, which is extremely
  thorough. This tally is not summarized or considered fatal to the
  workflow. It runs virtually instantly, and the results are very
  interesting; however are too numerous to include in our general
  analysis (ie: over 13,000 issues).

- Changes the PVS summary script output to a tally-per-file instead
  of trying to summarize the nature of the issue, which was mostly
  unhelpful without the full text.

- Adds the full list of possible supressible issue to the report
  directory, so if further suppressions are needed then these will be
  easy to find and use.

- Adds one dr_flac suppression per the resolution here:
  mackron/dr_libs#117
2020-01-29 14:59:50 +01:00
krcroft
9df802fd56 Count the bugs reported by PVS-Studio 2020-01-15 18:30:45 +01:00
Oldman
db02acfccf
Strip trailing white-space as a pre-commit hook 2020-01-13 11:27:27 -08:00
Patryk Obara
a110153fff Bundle autoconf ax_cxx_* macros
Users, who try to compile keep tripping over it, despite documentation
in the INSTALL file.  Also, autoconf-archive might be hard to install
for users, who opted not to use MSYS2 and stick to MinGW only.

This commit bundles macros:

AX_CXX_COMPILE_STDCXX (version/serial 10)
AX_CXX_COMPILE_STDCXX_11 (version/serial 18)
2020-01-13 01:42:20 +01:00
krcroft
d56afec70b Only run config heavy if our repo has commits 2020-01-13 00:26:11 +01:00
krcroft
c776239c3c Switch from static to dynamically-linked libstdc++
When using C++11 code that can possibly throw exceptions (such as
std::make_shared(...) linking libstdc++.a using Clang on MSYS2
will generate errors such as:

  libstdc++.a(eh_personality.o): duplicate section
  `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size

Although potential suggested fixes involve allowing duplicate symbols,
-Wl,--allow-multiple-definition, this solution can introduce unexpected
behavior when one symbol clobbers another symbol.

To solve this, switching to dynamic linking of the libstdc++ library
appears to be all that's needed.
2020-01-07 19:46:32 +01:00
krcroft
a852fe3eab Make MD docs comply with markdownlint 2020-01-07 19:28:12 +01:00
krcroft
312a763509 Verify Markdown documents in linting workflow
Also re-order to perform shellcheck first because it
requires the least installation work compared to pylint
and markdownlint.  The reason being if we're going to fail
during shellcheck, then we fail faster (and leave heavier
tasks for further down the line).
2020-01-07 19:28:12 +01:00
Patryk Obara
3be0409d25 Update copyright line in several scripts
Use the exact formatting suggested in COPYING file.

This change is basically a pretext to trigger a new clean build in
order to check if Coverity is capable of accepting new builds for
analysis finally.
2020-01-03 17:15:25 +01:00