> -----Original Message----- > From: Ivan Zhakov [mailto:i...@visualsvn.com] > Sent: maandag 5 november 2012 15:10 > To: Branko Čibej > Cc: dev@subversion.apache.org > Subject: Re: [PATCH] Add platform information to user agent string > > On Fri, Nov 2, 2012 at 10:40 PM, Ivan Zhakov <i...@visualsvn.com> wrote: > > On Fri, Nov 2, 2012 at 9:04 PM, Branko Čibej <br...@wandisco.com> > wrote: > >> > >> On 02.11.2012 17:30, Ivan Zhakov wrote: > >> > On Fri, Nov 2, 2012 at 5:12 PM, Branko Čibej <br...@wandisco.com> > wrote: > >> >> On 02.11.2012 12:36, Ivan Zhakov wrote: > >> >>> On Wed, Oct 31, 2012 at 2:04 AM, Branko Čibej > <br...@wandisco.com> wrote: > >> >>> [..] > >> >>>> The sysinfo bits have static (build-time) info and dynamic (runtime) > >> >>>> info. Presumably the only difference will be noticing when you're > >> >>>> running the program on a different "size" of OS, e.g., running 32-bit > >> >>>> code on a 64-bit OS (hopefully in some compatibility mode). > >> >>>> > >> >>>> For the purpose of user agent strings, the host triplet exposed in > the > >> >>>> #define in svn_private_config.h should be more than good enough. > >> >>>> > >> >>> I agree that using autoconf to collect OS type is much better. But I > >> >>> think we should use $target, instead of $host for user-agent to > >> >>> support cross compile scenarios. Also I've checked $target_os for our > >> >>> build bots and their values are: > >> >>> * OpenBSD: 'i386-unknown-openbsd5.0' ($target_os = 'openbsd5.0', > >> >>> $target_vendor='unknown') > >> >>> * Centos: 'x86_64-redhat-linux-gnu' ($target_os='linux-gnu'; > >> >>> $target_vendor='redhat') > >> >>> * Ubuntu: ''x86_64-unknown-linux-gnu'' ($target_os=''linux-gnu''; > >> >>> $target_vendor='unknown') > >> >>> > >> >>> I've also googled for different autoconf outputs: > >> >>> * MacOS: 'x86_64-apple-darwin11.2.0' > >> >>> * cygwin: 'i686-pc-cygwin' > >> >>> * mingw: 'i686-pc-mingw32' > >> >>> > >> >>> We can use all $target triplet in user-agent or just $target_os. I > >> >>> have no opinion on this matter. Any thoughts? > >> >> I considered that, but our build scripts very definitely do not support > >> >> cross-compiling. So anyone who tries that and succeeds can easily add > >> >> another line to the already-huge patch that made cross-compiling > possible. > >> >> > >> > Well, it seems our scripts actually supports cross compiling :) On > >> > Windows: you can build x86 binaries on x64 platform or vice versa. > >> > >> Yes, but I hardly think that has anything to do with autoconf and > >> config.guess ... :) > >> > > Anyway I'm going to add SVN_BUILD_TARGET to both autoconf and > Windows > > build stuff and use it user-string. > > > Here is updated patch: > [[[ > Add target platform information to user agent string. > > * subversion/libsvn_ra_serf/ra_serf.h > (USER_AGENT): Add target platform information. > * subversion/libsvn_ra_serf/ra_svn.h > (SVN_RA_SVN__DEFAULT_USERAGENT): Add target platform information. > * configure.ac > (SVN_BUILD_TARGET): Define to ${target}. > * subversion/svn_private_config.hw > (SVN_BUILD_TARGET): Define. > ]]] > > NOTE: I tested it only on Windows platform.
I don't think they are currently likely targets, but _WIN64 is defined for more than just x86_x64. The Intel Itanium is still supported and ARM-64 support is around the corner. Maybe we should use the defines that specify the architecture instead of just 64 bit = x64. Bert