aboutsummaryrefslogtreecommitdiffstats
path: root/src/build-data/cc
Commit message (Collapse)AuthorAgeFilesLines
* add BOTAN_NORETURN macro and mark those functions that do not return with itDaniel Neus2016-01-081-1/+1
|
* Use memcpy instead of misaligned pointer casts for reading words.Jack Lloyd2015-12-311-2/+6
| | | | | | | | | | | | | | | | | | | | | | It works on x86, but C says it is undefined and it makes UBSan unhappy. Happily, this memcpy approach probably also works fine under processors which previously used the byte-at-a-time approach such as ARM. But for right now using memcpy here is still gated under the processor alignment flags. In my tests recent GCC and Clang seemed to produce basically identical code for either approach when using -O3; I imagine most compilers these days are very good at analyzing/inlining/unrolling memcpys. Also remove the manually unrolled versions of xor_buf, which caused problems with GCC and -O3 due to it vectorizing the loads into (aligned) SSE2 loads, which would fail when a misaligned pointer was passed. Which always seemed kind of bogus to me, but I guess that's what undefined behavior is for. Enable -O3 for GCC. With this change the test suite is clean under GCC ASan+UBSan and Clang ASan+UBSan, with the exception of one failure due to a bug in libstdc++ (GCC bug 60734) when compiled by Clang.
* Add -Wnon-virtual-dtor to GCC buildJack Lloyd2015-12-261-1/+1
| | | | GH #382
* Fix a few clang warnings. Set clang sanitizer flagsJack Lloyd2015-12-241-0/+1
|
* add support for Intel RdSeedDaniel Neus2015-12-183-0/+3
|
* Remove the strange conjoining of debug and optimization flags.Jack Lloyd2015-10-269-42/+37
| | | | | | | | | | | | | | | | | | | Previously a build had optimizations disabled completely when debug info was emitted. But there are many reasons to use optimized builds with debug symbols (running under valgrind, against afl, with Asan/Ubsan, in prod, etc). And personally I find even debugging at -O2 or -O3 is fine most of the time and worth it for the speed. Use the (now documented!) --no-optimizations flag if no optimization is desired while debugging. This also removes the distinction between library and application compile flags; there is a single optimization level that is probably good enough for everything. On Win32 it removes definding _CONSOLE for the application. This seems to be some mythical value that may have been required at some point, but is not documented anywhere I can find. Who knows what VC thinks, hoping I don't have to add this back. It also drops defining `EBUG` which is what happens when you tell cl.exe to '/DEBUG'. LOL.
* Adjust gcc.txt to arm32 and arm64 archsDaniel Seither2015-10-151-1/+2
| | | | See also -march in https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
* build system: Add framework support for OS X and iOSDaniel Seither2015-09-251-0/+1
| | | | | | | On Darwin platforms, there are frameworks that can bundle libraries and header files in a standardized directory structure. We need to support linking to them because most of the OS X or iOS-specific APIs are provided as frameworks.
* Add soname_patternSimon Warta2015-08-247-15/+15
| | | | Fixes #241
* Add so_link_command for clang debug on darwin and defaultSimon Warta2015-08-141-3/+5
| | | | Fixes #250
* Rename so_link_flags to so_link_commandsSimon Warta2015-07-219-24/+24
|
* Add binary_link_command; Use compiler configs to set RPATH on LinuxSimon Warta2015-07-213-0/+19
|
* Add debug linker for GCCSimon Warta2015-07-211-1/+2
|
* Merge compile_option into CXX_FLAGSSimon Warta2015-07-219-24/+18
|
* Have a $(LINKER) variableSimon Warta2015-07-211-1/+3
|
* Use -O0 (no optimization) in GCC debug compile flagsSimon Warta2015-07-211-2/+2
|
* Adjust MSVC compile flagsSimon Warta2015-07-211-2/+2
| | | | | | | | | | /FS is needed for parallel builds /bigobj is needed for amalgamation build. Remove explicit setting from appveyor /DEBUG is a parameter, not a precompiler constant Conflicts: src/build-data/cc/msvc.txt
* Make release/debug versions for: compile_flags, lib_opt_flags and app_opt_flagsSimon Warta2015-07-219-32/+44
| | | | | | This commit aims to preserve all settings. In some cases it will drop optimization flags and fall back to compiler's defaults in the new debug mode.
* GCC 4.8 doesn't have UbSan, remove for TravisJack Lloyd2015-07-051-1/+2
|
* Make sanitizer a build mode for easy use by developers.Jack Lloyd2015-07-051-0/+1
|
* Remove compiler settings from compilers that don't support C++11Simon Warta2015-06-282-52/+0
|
* Add coverage checking with gcov/lcovlloyd2015-04-122-0/+2
|
* Consider AES-NI as implying SSSE3 which lets us merge two of thelloyd2015-03-152-2/+2
| | | | | | amalgamation objects (aes_ni and clmul). The real advantage is for the static link, as GCM will pull in clmul via its reference, which is sufficient to also pull the AES impl into the link.
* Split amalagamation into ISA specific objectslloyd2015-02-222-4/+2
|
* Remove algo factory, engines, global RNG, global state, etc.lloyd2015-02-042-4/+4
| | | | | | | | | | | | | | | Convert all uses of Algorithm_Factory and the engines to using Algo_Registry The shared pool of entropy sources remains but is moved to EntropySource. With that and few remaining initializations (default OIDs and aliases) moved elsewhere, the global state is empty and init and shutdown are no-ops. Remove almost all of the headers and code for handling the global state, except LibraryInitializer which remains as a compatability stub. Update seeding for blinding so only one hacky almost-global RNG instance needs to be setup instead of across all pubkey uses (it uses either the system RNG or an AutoSeeded_RNG if the system RNG is not available).
* Stack protector flags are required also at link time, at least on MinGWlloyd2014-12-211-3/+3
| | | | Github issue 34
* Windows/VC build fixeslloyd2014-10-311-1/+1
|
* Use -O2 instead of -O3 with GCC as it seems tree-vectorize in 4.9.0lloyd2014-10-311-2/+2
| | | | causes problems when it converts unaligned loads to aligned SSE loads.
* Erroring on strict-overflow is a little too strict, GCC 4.9 is smartlloyd2014-05-261-18/+17
|
* Support restricting compiler ISAs to specific architectures. Specificallylloyd2014-05-011-1/+1
| | | | | to work around weird MSVC limitations in 32-bit mode, but maybe useful elsewhere someday. Github #11.
* Let Clang choose whichever C++ library it preferslloyd2014-03-131-4/+3
|
* Also avoid tuning for 686lloyd2014-02-131-1/+2
|
* Update Clang flags. Remove unneeded includes of init.hlloyd2014-02-091-3/+4
|
* More fixes for minified buildslloyd2014-02-091-1/+1
|
* Microsoft docs indicate VC++ 2013 has AVX2 intrinsics, so enable them.lloyd2014-01-311-1/+1
|
* If the build compiler doesn't support intrinsics we need, disable the modulelloyd2014-01-261-0/+12
| | | | | rather than causing the whole build to fail. Also mark MSVC as supporting intrinsics (except AVX2 which seemingly is not yet supported). Github issue 7.
* Set -msse2/-maltivec as needed on things that depend on the SIMD wrapper. ↵lloyd2014-01-242-0/+2
| | | | Bug 264
* Finish renamelloyd2014-01-079-9/+9
|
* Don't use -fno-inline-functions for debug as that is enabled in all ↵lloyd2014-01-042-2/+2
| | | | non-release builds now
* Move base64, bzip, ca, and tls exampleslloyd2014-01-011-1/+1
|
* Rename targetlloyd2014-01-0111-11/+11
|
* s/check/test/glloyd2014-01-0111-11/+11
|
* Turn on Werror on clanglloyd2014-01-011-0/+1
|
* Support multiple ISA requirements. Fix CLMUL flag.lloyd2013-12-272-2/+2
|
* Set -m flags for rdrand.cpp. Update compiler ISA flagslloyd2013-12-232-16/+20
|
* Add AVX2 compiler flags for GCC and Clang. Tidy compiler option ordering.lloyd2013-12-142-3/+11
|
* Use -Werror only when --maintainer-mode is set as warnings will sneaklloyd2013-12-141-2/+3
| | | | | in on platforms/configs I don't test regularly, and that shouldn't break end-user builds.
* Add a simple HTTP 1.0 GET using asio (for CRLs and OCSP)lloyd2013-11-271-1/+1
|
* Enable all the GCC warning flags, as we now require at least GCC 4.7 anywaylloyd2013-11-161-3/+1
| | | | Fix a few nullptr and cast warnings.
* Always include modules requiring ISA extensions as long as thelloyd2013-04-173-26/+34
| | | | | | | | | | | compiler and target platform might support it. For instance the AES SSSE3 code is now always in any x86 build, with just that specific file being compiled with -mssse3. Since we'll only call that code if cpuid confirms it works at runtime, we don't have portability issues, and it can be safely included in generic builds (eg for distributions). Tweak how machine specific compiler flags are generated to be a bit easier to maintain.