Checkout Tools
  • last updated 2 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1535610 is being indexed.

Filter out -no-cpp-precomp from flags passed to SWIG.

This is necessary since APR for whatever reason leaks the fact that it uses

-no-cpp-precomp on OS X into apr-1-config. Unfortunately, a lot of versions

of APR have this in the wild so we just have to deal with it. If you use clang

directly you don't see this because we already filter it out of CPPFLAGS.


(SWIG_CPPFLAGS): New variable, deliberately pulling in EXTRA_CPPFLAGS and

not EXTRA_SIWG_CPPFLAGS because it would be harmful to split those

(e.g. users wanting to enable a feature that adds an API).

* build.conf

(swig-python-opts, swig-perl-opts, swig-ruby-opts): Use SWIG_CPPFLAGS

instead of CPPFLAGS.

* configure.acc

(SWIG_CPPFLAGS): Add the variable and copy it from the normal CPPFLAGS

while filtering out the -no-cpp-precomp.

  1. … 2 more files in changeset.

(): don't use the -fwhole-program flag as it is superseded by

-flto and by itself causes issues with llvm

We managed not to propagate configure-time CFLAGS to the makefile.

Fix that, and while there, make sure that gcc/clang-specific compiler

flags (for compilation mode etc.) are only set if Autoconf detects

a GCC-compatible compiler.


initialize from environment.

* (CFLAGS): Add substituted CUSERFLAGS to the definition.


* build/ac-macros/compiler.m4

(SVN_CC_MODE_SETUP, SVN_CXX_MODE_SETUP): Add specific mode flags

only if the corresponding $GCC or $GXX variable is set.


  1. … 2 more files in changeset.
Fix 'make install' broken by faulty FS_X install dependency.


(SVN_LIBSVN_FS_LINKS_FS_X): remove bogus dependency;

add comment about the correct one

Merge fsx branch into /trunk with no conflicts.


  1. … 83 more files in changeset.
Remove detection of __builtin_constant_p from the build system. It is unused

as of r1509166.

* build/ac-macros/svn-macros.m4




* subversion/svn_private_config.hw


  1. … 2 more files in changeset.
Follow-up to r1508221.

* build/ac-macros/svn-macros.m4

(SVN_CHECK_FOR_DUNDER_BUILTINS): make the cross-compile case match the

standard check



Found by: danielsh

  1. … 1 more file in changeset.
Follow-up to r1507366: svn_hash_gets: compute the length of string literal

keys (common case) at compile-time, without multiply-evaluating dynamically-

computed keys.

Review by: philip


* build/ac-macros/svn-macros.m4




* subversion/include/svn_hash.h

(svn_hash_gets): Use __builtin_choose_expr() and __builtin_constant_p(),

when available.

  1. … 2 more files in changeset.
Tweak the cxxhl/Googlemock build.

* build.conf

(cxxhl-test): Add apr to libs.


(gmock): Make behaviour match help text, i.e. enabled by default

with --disable-gmock to disable.

  1. … 1 more file in changeset.
Followup to r1461851 and its merge to trunk in r1502712:

Fix the while() construction to properly have parens. We should not

rely on the macro expression to provide parentheses.

Fix the non-GCC expansion of SVN__PREDICT_*() to actually perform the



(svn_private_config:SVN__PREDICT_*): default to (x)

* subversion/libsvn_subr/compress.c:

(svn__decode_uint): add parens for the while() statement.

  1. … 1 more file in changeset.
Cherrypick merge c1442910,1443171 from the fsfs-format7 branch

to /trunk and resolve a trivial tree conflict.

This move svn__(de)compress from libsvn_delta to libsvn_subr and

makes the API slightly more symmetric by using stringbuf for in and

out parameters.

  1. … 8 more files in changeset.
Silence some compiler warnings.


(--enable-maintainer-mode): Suppress -Wstring-plus-int.

* subversion/include/private/svn_ra_svn_private.h

* subversion/libsvn_ra_svn/marshal.c

(svn_ra_svn__write_data_log_entry): Change type of a parameter to match what

the caller has.

* subversion/svnserve/serve.c

(log_receiver): Avoid up- then down-casting an integer.

* subversion/libsvn_client/merge.c

(find_gaps_in_merge_source_history): Use the correct variant of abs().

* subversion/libsvn_ra_serf/property.c

(parse_status_code, propfind_closed): Since we use a function that returns

an int64 to parse, just use a 64-bit return type, too. That avoids

an implicit downcast.

* subversion/svnadmin/svnadmin.c

(subcommand_info): Use the correct integer type.

  1. … 6 more files in changeset.
Reintegrate the gtest_addition branch to trunk and convert the result to

use Googlemock and begin writing a Googlemock/Googletest-based test suite

for C++HL.

* .: Ignore gmock-fused instead of gtest.

* INSTALL: Note optional dependency on Googlemock.

* Rename all getst to gmock and implement Googlemock downloader.

* build.conf (cxxhl-tests): Depend on libgmock and make conditional.

(libgmock): New target.

* Check for Googlemock.

(GMOCK_SRCDIR, SVN_USE_GMOCK): New substituted variables.


Expand configure variables.


New generic compilation rules.

(COMPILE_CXXHL_CXX): Rewrite in terms of LT_COMPILE_CXX.


* Add placeholder for --disable-gmock option.

* build/generator/ (TargetLinked): Make .cc a source file extension.

* doc/programmer/gtest-guide.txt: New.

* subversion/bindings/cxxhl/tests/cxxhl-tests.cpp,

subversion/bindings/cxxhl/tests/test_aprwrap.cpp: New test suite files.

* subversion/bindings/cxxhl/tests/test_exception.cpp: Temporarily disable.

* tools/dist/

Mergeinfo was updated as a side effect of the merge.

  1. … 12 more files in changeset.
Rename --enable-banging-head-against-wall to --enable-bdb6. I still like the

former name for this option, however using a clear name will help packagers

and people trying to read packaging scripts, and that's more important than

making a joke.

* build/ac-macros/berkeley-db.m4 Rename --enable-banging-head-against-wall to --enable-bdb6.

  1. … 1 more file in changeset.
configure: Add an opt-in for BDB 6.

Review by: stsp

(He co-authored the warning text, too.)

* build/ac-macros/berkeley-db.m4

(--enable-banging-head-against-wall): New option.

(SVN_LIB_BERKELEY_DB_TRY): Grow new parameter, add a possible return value.

(SVN_LIB_BERKELEY_DB): Add a new failure mode when bdb6 was found but the

opt-in not used.

* Add a detailed warning message for "Found, but not opt-in" case.

  1. … 1 more file in changeset.
* Nuke the warning at the end about not building with BDB,

because the BDB backend is deprecated.

The warning had a bug: it referred to $with_berkeley_db which is never set.

Block building with BDB 6.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Block building with BDB 6, with a comment

explaining why.

(SVN_LIB_BERKELEY_DB): Document that only 4.x and 5.x are supported.

(--with-berkeley-db): Ditto. The help string does not evaluate the $,

but that is a preexisting bug that should be fixed separately.

* build/generator/

(GeneratorBase._find_bdb): Add a comment cautioning against enabling

BDB 6.

* Define $db_alt_version and use it in an error message.

  1. … 2 more files in changeset.
For issue #4371 ("Subversion requires Serf 1.2.1"), teach the build

system to expect Serf 1.2.1 now.




* build/generator/

Bump Serf required version to 1.2.1.

  1. … 3 more files in changeset.
Follow up to r1469519: Rearrange the code in cache-inprocess.c to avoid

premature initialization.

* subversion/libsvn_subr/cache-inprocess.c

(inprocess_cache_get_internal): Always return with *buffer and *size

set to known values.

(inprocess_cache_get): Move declarations of buffer and size inside

the block where they're actually used, and make sure *found and

*value_p are always initialized.

Inadvertently committed:

* Fix a typo in the typo fix.

  1. … 1 more file in changeset.
Followup to r1481772:

* Typo fix in output string.

Second attempt at dealing with newer clang's propensity to accept, yet warn

about, unknown warning flags.

* build/ac-macros/compiler.m4 (SVN_CC_MODE_SETUP, SVN_CXX_MODE_SETUP):

Instead of trying to use -Wno-unknown-warning-option, add the invoerse

-Werror=unknown-warning-option to the default C(XX)FLAGS.

* Dump the various sets of C and C++ options, for easier debugging.

  1. … 1 more file in changeset.
Check compiler flags one at a time, otherwise one unsupported flag can

invalidate others that are supported.

* (--enable-optimization): Issue separate checks for

-Wno-clobbered and -flto because SVN_CFLAGS_ADD_IFELSE does

not treat its parameter as a list of options. don't recommend using tar/gunzip to unpack a zip.


Add note to update build/ac-macros/sqlite.m4 if changing

SQLITE_URL's file extension.

* build/ac-macros/sqlite.m4:

Recommend using unzip since SQLITE_URL ends in .zip.

  1. … 1 more file in changeset.
Finish issue #4296 ("svn 1.8 blocks on release of serf 1.2.x").

(This will probably light up the buildbots...)




* tools/dev/windows-build/Makefile,

* tools/dev/unix-build/Makefile.svn

Bump our Serf dependency to version 1.2.0.

  1. … 3 more files in changeset.
Remove obsolete configure options: --with-ssl, which was used by in-tree

neon builds, and --with-gssapi, which was used when GSSAPI support was in

ra_serf rather than serf itself.

* Remove --with-ssl and --with-gssapi.

* build/ac-macros/gssapi.m4: Remove.


  1. … 2 more files in changeset.
We added "--enable-optimize" to configure in 1.8 but it does hardly more

than "--disable-debug" would. So, with this patch, we will actually enable

very expensive optimizations (when available) in optimized mode.

I measured a 5% performance gain in 'svnadmin verify'. YMMV.


(enable_optimization): go for -O3 instead of -O2; enable link time

optimization and whole program optimization

Temporarily back out r1441110 to make the centos buildbot happy again.

In the UNIX build, make some compiler warnings which we usually fix up

fatal build errors. This should help with catching these warnings on the



(CMAINTAINERFLAGS): Make -Wshadow, -Wunused, and -Wmissing-declarations

fatal build errors.

Fix issue #4280: Prompt the controlling terminal, rather than stdin.

* Check for TERMIOS support.

* subversion/libsvn_subr/prompt.c:

Include apr_portable.h and optionally either conio.h or termios.h.

(terminal_handle_t): New struct, open terminal descriptor.

(terminal_cleanup_handler, terminal_plain_cleanup, terminal_cleanup_handler):

New; pool cleanup handlers for closing an open terminal.

(terminal_close): New; explicitly closes a terminal.

(terminal_open): New; opens and initializes a terminal.

(terminal_puts, terminal_getc): New; terminal I/O uses direct console

I/O on Windows and/or /dev/tty where available, with fallback to

stdin for input and stderr for prompt/output.

(prompt): Use the new terminal functions to implement platform-

-independent prompting and user input.

(maybe_print_realm, plaintext_prompt_helper):

Use terminal I/O to display prompts.

(wait_for_input): Removed; equivalent functionality moved to

terminal_open and terminal_close.

  1. … 1 more file in changeset.
Reintegrate tweak-build-take-two branch to trunk.

Summary of changes:

** Split standards-compliance mode and maintainer mode compiler flags

out of CFLAGS, so that compilation command lines that do not

generate (too many) warnings or are not forced to comply with ISO

C '90 can be constructed without having to resort to stripping

individual flags out of CFLAGS.

$ svn diff -r1424288:1424822 \

^/subversion/branches/tweak-build-take-two/ \

^/subversion/branches/tweak-build-take-two/aclocal.m4 \

^/subversion/branches/tweak-build-take-two/build/ac-macros/compiler.m4 \


** Now that warning and standards-compliance mode macros are no

longer part of CFLAGS, stop stripping them in the Swig wrapper

configury, except for Ruby, which is more delicate.

$ svn diff -r1424329:1425040 \


** Allow optimization and debugging to coexist, including in

maintainer mode, adding a new configure option

--enable-optimize. Neither --enable-optimize nor --enable-debug

will override any optimization or debugging flags set by the user

in C(XX)FLAGS at configure time. If debugging and optimization are

enabled at the same time, we will try to use -O1, then -O; if

debuggin is not enabled, we will try -O2 first.

$ svn diff -c1424860 \


** Remove an obsolete autoconf macro that was not used anywhere and

is superceded with SVN_CFLAGS_ADD_IFELSE.

$ svn diff -c1424297 \


** Move the sqlite-amalgamation directory from the root of the source tree

under subversion/include/private to make include paths safer from

possible collision with sqlite include files from other install locations.

$ svn diff -c1425050 \


** Allow a user to set a custom set of compiler flags at configure time that

are used for Subversion sources, but not, e.g., Swig-generated sources,

like this:

$ ./configure CUSERFLAGS=--flags-for-C CXXUSERFLAGS=--flags-for-C++

$ svn diff -c1425086 \


  1. … 14 more files in changeset.