[distcc] Re: Introduction: distcc for msvc
Syed U. Aqeel
aqeesye at iit.edu
Mon Jul 31 15:51:43 GMT 2006
Hi Tom,
Which version of the MS compiler are you targeting initially? I can
sweeten the pot for volunteers by providing 3 VS licenses free of charge
-- might help you get volunteers of your choice :)
Uzair
----- Original Message -----
From: Martin Pool <mbp at canonical.com>
Date: Monday, July 31, 2006 3:40 am
Subject: [distcc] Re: Introduction: distcc for msvc
> On 27 Jul 2006, Tom Aratyn <themystic.ca at gmail.com> wrote:
> > Hi Martin,
> >
> > As Shaver said, we're working on getting distcc working with MS
> cl. In order
> > to do that we must make some changes to your code. Up to now
> we've been
> > reading your code and we would like to run some of our thoughts
> by you to
> > get your opinion on how to best make changes so that our patch
> can make it
> > into the trunk.
> >
> > We think there are two basic routes we can go: one is having two
> different> binary versions of distcc using #ifdef's from the same
> source; another is to
> > check the compiler at run time. We think that the latter is a
> much better
> > option. Ideally we'd like to make these changes in such a way as
> to retain
> > the cleanliness and readability of the code (which is *really
> *clean and
> > readable right now.... thanks!)
>
> Yes, ifdefs would be a bit undesirable. If nothing else it'd be
> good to
> generalize this from not just gcc vs msvc to support more compilers if
> people wish to addthem in the future.
>
> > Our idea is to use a global flag to mark which compiler is being
> used> (gcc/cc/cl). Then any function which performs a compiler
> specific operation
> > (e.g dcc_strip_local_args() ) would check that flag and call the
> appropriate> compiler specific function (i.e. the code currently in
> > dcc_strip_local_args() would be moved to
> dcc_cc_strip_local_args() and
> > dcc_strip_local_args() would now check the global flag and call
> either> dcc_cc_strip_local_args() or dcc_cl_strip_local_args() ).
>
> Right, or perhaps make it a bit more OO and go through a function
> pointer table for each compiler, along the lines of
>
> struct dcc_compiler_setup {
> int *strip_local_args(...)
> };
>
> We also need to think about how this will be configured. Will it
> be by
> looking at argv[1], if not in masquerade mode? That might be simplest
> to start with.
>
> > Another issue is finding volunteers with cl. In order to keep the
> distcc> command compatible with both (g)cc and cl we would like to
> keep their
> > "volunteer lists" in two separate environment variables. For
> backward> compatibility reasons we feel that the (g)cc volunteers
> should still be
> > listed in $DISTCC_HOSTS and the cl volunteers should be listed
> somewhere> like $DISTCC_CL_HOSTS. Also, for backward compatibility
> reasons, we feel
> > that under no circumstance should distcc default to cl.
> Masquerade mode
> > should still default to cc.
>
> Yes, you obviously do need to make sure the volunteer selected has the
> right compiler. Using a separate variable may be a reasonable
> place to
> start. You should also consider how it would be stored in a host list
> on disk.
>
> --
> Martin
> __
> distcc mailing list http://distcc.samba.org/
> To unsubscribe or change options:
> https://lists.samba.org/mailman/listinfo/distcc
>
More information about the distcc
mailing list