On Friday, November 04, 2011 1:24 AM, "Jonathan Nieder" <jrnie...@gmail.com> 
wrote:
> Daniel Shahaf wrote:
> > On Wednesday, November 02, 2011 4:25 PM, "Jonathan Nieder" 
> > <jrnie...@gmail.com> wrote:
> 
> >> I'm not very happy about putting -DSVN_SQLITE_COMPAT_VERSION in CFLAGS
> >> --- does subversion have a config.h somewhere?
> >
> > http://s.apache.org/xy-problem --- Why do you think you need config.h?
> 
> Sorry, that was cryptic of me.  The -DSVN_SQLITE_COMPAT_VERSION looked
> lonely on the command line not surrounded by settings like -DHAVE_INT
> and -DHAVE_PRINTF --- I was afraid there might be some other idiom I
> was missing.
> 
> I'm happy keeping it in CFLAGS.
> 

There is the svn_config_private.h idiom.  There is also the
${target}_CFLAGS Makefile variable, generated by the build/*/*.py
infrastructure.

I don't feel that throwing it in CFLAGS is intuitively wrong, in our
build system.

> Your other comments looked reasonable, too.  Details:
> 
>  - there were no unpatched instances of SQLITE_VERSION_NUMBER, but
>    there was one unpatched instance of SQLITE_VERSION.  So now I do
> 
>       -DSVN_SQLITE_MIN_VERSION_NUMBER=1002003
>       -DSVN_SQLITE_MIN_VERSION="1.2.3"
> 

Okay.

>  - it would be simple to make the configure script take care of the
>    default for SVN_SQLITE_MIN_VERSION_NUMBER instead of the header
>    doing so, but I prefer the latter since it means you can use
>    "gcc -c" directly to build without remembering the -D
>    option and still have a chance of the result working.  So I've
>    left that alone for now.
> 

+1

>  - assignment to $2 in sqlite.m4 could be replaced by
> 
>       ver_num=`expr ...`
>       $2=$ver_num
> 
>    or:
> 
>       result_var="$2"
>       ...
>       eval "$result_var=\$ver_num"
> 
>    Left untouched for now.
> 

What I actually had in mind was:

   f() {
      echo foo
   }
   bar=`f`

That's primarily because I'm not used to the $1=* idiom (in its various
forms as you suggest above).  If it's a standard idiom for configure
script writing I wouldn't feel strongly to change it.

> [[[
> Introduce a --enable-sqlite-compatibility-version=X.Y.Z option for
> ./configure to allow people building Subversion to specify how old the
> system being deployed on might be.  Setting the compatibility version
> to an older version turns on code in subversion that works around
> infelicities in older versions and relaxes the version check ("SQLite
> compiled for 3.7.4, but running with 3.7.3") at initialization time.
> 
> If the compat version is set to a version before the minimum supported
> version (3.6.18), the build will fail early so the person building can
> adjust her expectations.
> 

Looks good.

> The default for the compat version is the currently installed version,
> so there should be no change in behavior for users not passing this
> option to the configure script.
> 

I'll read/review the rest later.

Reply via email to