aboutsummaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2023-10-22Update config=sanitize and fuzz targetsArseny Kapoulkine1-2/+2
We used to need to silence float-divide-by-zero and float-cast-overflow sanitizers since clang used a finite valid floating point value range. Fortunately, since clang-9 UBSAN properly handles various primitive operations per IEEE-754 so we no longer need this workaround. Also use fork=16 mode for fuzz targets to make it easier to run fuzzing locally.
2023-03-16#556 fix makefile err in some envjiangqucheng1-1/+1
2020-11-26scripts: Convert archive.py to Python 3v1.11Arseny Kapoulkine1-1/+1
The changes are mostly mechanically converting str to bytes.
2019-09-16Add LICENSE.md to RELEASE (#295)Wolfgang Stöggl1-1/+1
2019-03-13Remove contrib from Makefile and readme.txtArseny Kapoulkine1-1/+1
2018-12-10Move unreachable line handling to MakefileArseny Kapoulkine1-0/+1
This allows us to reuse this code for MinGW builds. Additionally disable coverage step for Linux clang - it looks like Travis has a mismatch in the version of gcov info between clang and gcov which causes gcov to crash - somehow this crash isn't picked up as a build error.
2018-11-27Enable config=sanitize in Travis CIArseny Kapoulkine1-1/+1
This commit changes sanitize configuration to fail on the first error and ignore floating-point division and overflow "errors" that trigger when we test the corresponding functionality. This makes it possible to run this on all commits - if new UB or memory safety issues are introduced, asan/ubsan will catch them.
2018-11-23Fix Wdouble-promotion warningsArseny Kapoulkine1-1/+1
We had a few places in test code and library source where we used an implicit float->double cast; while it should preserve the value exactly, gcc/clang implement this warning to make sure uses of double are intentional. This change also adds the warning to Makefile to make sure we don't regress on this warning. Fixes #243.
2017-11-13Merge pull request #170 from zeux/moveArseny Kapoulkine1-7/+2
This change implements move ctor and assign support for xml_document. All node handles remain valid after the move and point to the new document; the only exception is the document node itself (that remains unmoved). Move is O(document size) in theory because it needs to relocate immediate document children (there is just one in conformant documents) and all memory pages; in practice the memory pages only need the header adjusted, which is ~0.1% of the actual data size. Move requires no allocations in general, except when using compact mode where some moves need to grow the hash table which can fail (throw). Fixes #104
2017-10-29build: Simplify config=sanitizeArseny Kapoulkine1-7/+2
These days OSX clang supports UB sanitizer so we can just use the same settings for all systems.
2017-10-29build: Switch fuzz builds to use Clang 5.0 sanitize=fuzzerArseny Kapoulkine1-7/+2
The old fuzzer location is deprecated; this also makes it almost trivial to fuzz, provided that the clang is set up correctly... on Ubuntu 17.10, a command sequence like this works now: sudo apt install clang-5.0 sudo apt install libfuzzer-5.0 sudo cp /usr/lib/llvm-5.0/lib/libFuzzer.a /usr/lib/libLLVMFuzzer.a CXX=clang++-5.0 make fuzz_parse
2017-04-03Move libFuzzer build to MakefileArseny Kapoulkine1-2/+7
Now the only thing fuzz_setup.sh does is installing new clang; if system clang supports -fsanitize-coverage then fuzz_setup.sh is not required.
2017-03-21Fix path to fuzzing corpusArseny Kapoulkine1-1/+1
2017-02-11tests: Add fuzzing dictionariesArseny Kapoulkine1-1/+1
Hopefully this will allow for better fuzzing coverage
2017-02-09fuzz: Use libFuzzer instead of afl-fuzzArseny Kapoulkine1-4/+7
This allows us to have faster fuzz cycles since the fuzzer is in-process.
2017-01-30Enable branch probabilities for gcovArseny Kapoulkine1-1/+1
2016-11-28scripts: Make archive build reproducibleArseny Kapoulkine1-2/+2
We used to use the current timestamp when building the archive; switch to using the timestamp of the tag with the version we're packaging. This requires some monkey patching since tarfile module is always using current timestamp when writing gzip header... Also exclude archive.py from archive and simplify release file list in Makefile.
2016-11-27scripts: Move archive.py from testsArseny Kapoulkine1-1/+1
2016-11-13Rewrite archive script into PythonArseny Kapoulkine1-1/+1
Perl version needed Archive::Zip that for some reason is not installed on WSL by default. Use this as an opportunity to remove the last Perl script.
2016-07-28Remove -b gcov argumentArseny Kapoulkine1-1/+1
It interferes in a somewhat strange way with codecov reporting
2016-07-10Makefile: Add -Wcast-qualArseny Kapoulkine1-1/+1
It is probably redundant given that we have -Wold-style-cast, but it's better to warn about casts like this in case we ever need to remove the latter flag.
2016-06-10Add CMakeLists to 'make release' now that it's top-levelArseny Kapoulkine1-1/+1
2016-01-26Make cxxstd an argument to MakefileStephan Beyer1-4/+5
This determines the used C++ standard. If you do not want to use a specific C++ standard, use cxxstd=any. The default is set to c++11. The "define" PUGIXML_NO_CXX11 is removed from the Makefile since it is not used in the code anyways.
2015-10-18Add config=analyzeArseny Kapoulkine1-0/+4
2015-10-17Use -pedantic instead of -WpedanticArseny Kapoulkine1-1/+1
Travis CI strikes once more.
2015-10-17Enable a few more warningsArseny Kapoulkine1-1/+1
2015-10-10Fix 'make release' after clean checkoutArseny Kapoulkine1-0/+1
2015-08-25build: Fix -o gcov optionArseny Kapoulkine1-1/+1
Also upload just pugixml.cpp.gcov to codecov to avoid issues the script has with old gcov.
2015-08-25build: Rework config=coverage to be more robustArseny Kapoulkine1-3/+3
Use find -exec instead of xargs to work around differences between xargs on OSX and Linux. Use -b option of gcov - for some reason gcov on Travis can't find .gcno files otherwise (old version?). And finally enable config=coverage again.
2015-08-25build: Simplify coverage configurationArseny Kapoulkine1-3/+2
Use -coverage option and keep NDEBUG off
2015-06-13Makefile now supports Xcode 7 ASANArseny Kapoulkine1-2/+7
All other sanitizers are still unavailable so only enable them on non-OSX systems.
2015-05-12Add config=sanitize support to MakefileArseny Kapoulkine1-0/+5
2015-04-21Use -std=c++0x instead of -std=c++11Arseny Kapoulkine1-1/+2
2015-04-21Enable C++11 in MakefileArseny Kapoulkine1-0/+4
2015-04-11Use -fno-exceptions flag for PUGIXML_NO_EXCEPTIONS buildArseny Kapoulkine1-0/+4
This makes sure that no exception handling mechanisms are used if PUGXML_NO_EXCEPTIONS is defined.
2015-03-24docs: Use automatically retrieved version for docsArseny Kapoulkine1-1/+1
This eliminates one more hardcoded version from the repo, yay!
2015-03-24Update Makefile to exclude docs/manual folder from releaseArseny Kapoulkine1-1/+1
2015-03-22Add include dependencies to HTML targetsArseny Kapoulkine1-3/+4
2015-03-21Add docs target to MakefileArseny Kapoulkine1-0/+5
2015-03-20Add release target to MakefileArseny Kapoulkine1-1/+9
2015-03-20Makefile refactoringArseny Kapoulkine1-2/+5
Simplify test source specification, disable built-in rules and suffixes
2015-03-13tests: Add support for afl-fuzzArseny Kapoulkine1-3/+8
With the current setup it successfully finds the (fixed) DOCTYPE buffer overrun in ~50 minutes (on a single core).
2015-02-12Don't use xargs -r since it's a GNU extensions.Arseny Kapoulkine1-1/+1
Instead just ignore the result of xargs.
2014-11-01Fix first-time make config=coverage testArseny Kapoulkine1-2/+2
Not sure why xargs -r is not the default...
2014-10-25Add 'coverage' configuration to Makefile.Arseny Kapoulkine1-0/+14
git-svn-id: https://pugixml.googlecode.com/svn/trunk@1079 99668b35-9821-0410-8761-19e4c4f06640
2014-02-09Add Makefile for building and running tests.Arseny Kapoulkine1-0/+40
This expands and replaces the Travis-specific makefile by adding more options and correctly tracking header dependencies. Also add wchar_t mode test to Travis configuration. git-svn-id: http://pugixml.googlecode.com/svn/trunk@971 99668b35-9821-0410-8761-19e4c4f06640