On Mon, Nov 5, 2012 at 7:05 PM, Bert Huijben <b...@qqmail.nl> wrote: > > >> -----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. > Hi Bert,
We can use _M_IA64, _M_IX86, _M_X64 [1]. [1] http://msdn.microsoft.com/en-us/library/b0084kay%28v=vs.110%29.aspx -- Ivan Zhakov