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

Re: [PATCH] Add platform information to user agent string

From: Ivan Zhakov <ivan_at_visualsvn.com>
Date: Mon, 5 Nov 2012 19:17:29 +0400

On Mon, Nov 5, 2012 at 7:05 PM, Bert Huijben <bert_at_qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Ivan Zhakov [mailto:ivan_at_visualsvn.com]
>> Sent: maandag 5 november 2012 15:10
>> To: Branko Čibej
>> Cc: dev_at_subversion.apache.org
>> Subject: Re: [PATCH] Add platform information to user agent string
>>
>> On Fri, Nov 2, 2012 at 10:40 PM, Ivan Zhakov <ivan_at_visualsvn.com> wrote:
>> > On Fri, Nov 2, 2012 at 9:04 PM, Branko Čibej <brane_at_wandisco.com>
>> wrote:
>> >>
>> >> On 02.11.2012 17:30, Ivan Zhakov wrote:
>> >> > On Fri, Nov 2, 2012 at 5:12 PM, Branko Čibej <brane_at_wandisco.com>
>> wrote:
>> >> >> On 02.11.2012 12:36, Ivan Zhakov wrote:
>> >> >>> On Wed, Oct 31, 2012 at 2:04 AM, Branko Čibej
>> <brane_at_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
Received on 2012-11-05 16:18:22 CET

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