[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: errorcode.inc in tarballs

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Thu, 10 Aug 2017 17:36:15 +0000

Branko Čibej wrote on Thu, 10 Aug 2017 11:04 +0200:
> On 09.08.2017 23:40, Philip Martin wrote:
> > To an extent the change is trivial, this code is only used in SVN_DEBUG
> > builds and even then it doesn't have much effect on how Subversion
> > works.
> >
> > Arguably more important is having our tarballs be reproducible. These
> > symbolic names are a bit tricky to generate and the choice of python
> > means it has be done by gen-make.py rather than configure. There are
> > comments in gen_base.py about this. There is also the question about
> > how portable these symbolic names are to other systems, i.e. Windows.
> >
> > I'm considering a --release flag for gen-make.py that omits this
> > information from the file and thus the tarball.
> Since OS-specific error codes are, by definition, OS-specific, it's more
> or less impossible to generate errorcode.inc on one platform and use it
> on another. Even "POSIX" errno values are not consistent across platforms.
> Would be better to generate this header at build time ... but to do that
> in a cross-platform manner, we'd have to write a C program to do that.

And to not break cross-builds, we'll want to limit ourselves to using the
preprocessor, compiler, and linker, but not to running any compiled C program.

That said, I agree with Philip: this functionality is only used by maintainer
mode builds, and even then it's only used to prettify error messages, so it's
easier to disable it where we can't easily provide it.

These two together suggest we should disable that functionality on
cross-builds, too. This functionality is currently implemented pre-configure,
in gen-make.py, because configure doesn't require Python, but it seems to make
perfect sense to move this functionality to configure provided that it be
guarded with:

    if (maintainer mode); then
      if cross building;
        build an empty/dummy error-code.inc;
        build error-code.inc;

Received on 2017-08-10 19:36:24 CEST

This is an archived mail posted to the Subversion Dev mailing list.