You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Salikh Zakirov <Sa...@Intel.com> on 2006/10/05 16:01:50 UTC
[drlvm][build]Stale object files are linked to DRLVM
Hi!
Currently DRLVM build system suffers from a deficiency,
which gets in the way quickly if you experiment a lot with patches.
If you apply a patch that creates a new file, and build DRLVM,
and then unapply the patch, and rebuild again,
the stale .obj file will still get linked to the executable.
Usually, this leads to the spurios linker errors.
Can anyone with Ant/DRLVM build system experience propose a solution?
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by Tim Ellison <t....@gmail.com>.
Geir Magnusson Jr. wrote:
> make?
ROTFL! -- thanks<g>
--
Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Gregory Shimansky wrote:
> On Tuesday 10 October 2006 04:56 Geir Magnusson Jr. wrote:
>> Gregory Shimansky wrote:
>>> On Friday 06 October 2006 18:24 Salikh Zakirov wrote:
>>>>> I'm actually not. Were there an additional 24 hours in a day....
>>>>> There is a whole list of reasons why I'm not a fan of the current
>>>>> system, including maintainability as well as performance. (Building
>>>>> classlib takes far less time that DRLVM on windows, for reasons I find
>>>>> utterly perplexing...)
>>>> Well, performance-wise, using 'make' will not make DRLVM build any
>>>> faster, mainly because it is hard (if at all possible) to take advantage
>>>> of compile-many-cpp-files-by-single-compiler-command mode available in
>>>> MSVC and Intel compilers.
>>> It has its own disadvantages like all object files are put in the same
>>> place, so no name duplication can happen. It also doesn't allow fixing
>>> compilation problems in some particular subdirectory because ant requires
>>> running only from the top level for all file tree.
>> Um. Have you looked at class library lately? Sure, there are root
>> points, but it's no larger a unit than the DRLVM component.
>
> It compiles 3 times faster than drlvm :)
Yes, that's been my contention for a while. But I was noting that you
can have subtrees that build with both make and ant.
>
>>> The only valid reason for ant build system I think is that make requires
>>> cygwin, mingw or some emulation of bash/make/sed environment of fileutils
>>> and binutils on windows.
>> Hm? I don't need that for classlib....
>
> I actually meant ant build for drlvm. For classlib as for building java ant is
> very good.
Ah :)
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by Gregory Shimansky <gs...@gmail.com>.
On Tuesday 10 October 2006 04:56 Geir Magnusson Jr. wrote:
> Gregory Shimansky wrote:
> > On Friday 06 October 2006 18:24 Salikh Zakirov wrote:
> >>> I'm actually not. Were there an additional 24 hours in a day....
> >>> There is a whole list of reasons why I'm not a fan of the current
> >>> system, including maintainability as well as performance. (Building
> >>> classlib takes far less time that DRLVM on windows, for reasons I find
> >>> utterly perplexing...)
> >>
> >> Well, performance-wise, using 'make' will not make DRLVM build any
> >> faster, mainly because it is hard (if at all possible) to take advantage
> >> of compile-many-cpp-files-by-single-compiler-command mode available in
> >> MSVC and Intel compilers.
> >
> > It has its own disadvantages like all object files are put in the same
> > place, so no name duplication can happen. It also doesn't allow fixing
> > compilation problems in some particular subdirectory because ant requires
> > running only from the top level for all file tree.
>
> Um. Have you looked at class library lately? Sure, there are root
> points, but it's no larger a unit than the DRLVM component.
It compiles 3 times faster than drlvm :)
> > The only valid reason for ant build system I think is that make requires
> > cygwin, mingw or some emulation of bash/make/sed environment of fileutils
> > and binutils on windows.
>
> Hm? I don't need that for classlib....
I actually meant ant build for drlvm. For classlib as for building java ant is
very good.
--
Gregory Shimansky, Intel Middleware Products Division
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Gregory Shimansky wrote:
> On Friday 06 October 2006 18:24 Salikh Zakirov wrote:
>>> I'm actually not. Were there an additional 24 hours in a day.... There
>>> is a whole list of reasons why I'm not a fan of the current system,
>>> including maintainability as well as performance. (Building classlib
>>> takes far less time that DRLVM on windows, for reasons I find utterly
>>> perplexing...)
>> Well, performance-wise, using 'make' will not make DRLVM build any faster,
>> mainly because it is hard (if at all possible) to take advantage of
>> compile-many-cpp-files-by-single-compiler-command mode available
>> in MSVC and Intel compilers.
>
> It has its own disadvantages like all object files are put in the same place,
> so no name duplication can happen. It also doesn't allow fixing compilation
> problems in some particular subdirectory because ant requires running only
> from the top level for all file tree.
Um. Have you looked at class library lately? Sure, there are root
points, but it's no larger a unit than the DRLVM component.
>
> The only valid reason for ant build system I think is that make requires
> cygwin, mingw or some emulation of bash/make/sed environment of fileutils and
> binutils on windows.
Hm? I don't need that for classlib....
>
>> I completely agree on the maintainability side.
>
> +1
>
>>>> I can easily propose a couple of ways to use make
>>>> for building DRLVM (i.e. running C++ compiler and linker). The last
>>>> thing I played
>>>> with was using shell-script for generating Makefiles using the source
>>>> file list.
>>> Well, cool :) We have the ability to learn from and improve upon
>>> classlib how we want to try and handle platforms correctly...
>> Actually, I do not think I would want to take classlib's make system
>> as the base, because it does not satisfy two requirements I personally
>> consider important:
>>
>> * concentrate the build configuration in one place
>
> If we come to a configure script, it will do this automatically. Still it
> doesn't work for windows.
>
>> * automatically deduce object files lists by finding .cpp files
>>
>> And, I would rather add GNU Make (Cygwin or Mingw) to the required build
>> tools, than maintain two copies of make files.
>
> +1
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by Gregory Shimansky <gs...@gmail.com>.
On Friday 06 October 2006 18:24 Salikh Zakirov wrote:
> > I'm actually not. Were there an additional 24 hours in a day.... There
> > is a whole list of reasons why I'm not a fan of the current system,
> > including maintainability as well as performance. (Building classlib
> > takes far less time that DRLVM on windows, for reasons I find utterly
> > perplexing...)
>
> Well, performance-wise, using 'make' will not make DRLVM build any faster,
> mainly because it is hard (if at all possible) to take advantage of
> compile-many-cpp-files-by-single-compiler-command mode available
> in MSVC and Intel compilers.
It has its own disadvantages like all object files are put in the same place,
so no name duplication can happen. It also doesn't allow fixing compilation
problems in some particular subdirectory because ant requires running only
from the top level for all file tree.
The only valid reason for ant build system I think is that make requires
cygwin, mingw or some emulation of bash/make/sed environment of fileutils and
binutils on windows.
> I completely agree on the maintainability side.
+1
> >> I can easily propose a couple of ways to use make
> >> for building DRLVM (i.e. running C++ compiler and linker). The last
> >> thing I played
> >> with was using shell-script for generating Makefiles using the source
> >> file list.
> >
> > Well, cool :) We have the ability to learn from and improve upon
> > classlib how we want to try and handle platforms correctly...
>
> Actually, I do not think I would want to take classlib's make system
> as the base, because it does not satisfy two requirements I personally
> consider important:
>
> * concentrate the build configuration in one place
If we come to a configure script, it will do this automatically. Still it
doesn't work for windows.
> * automatically deduce object files lists by finding .cpp files
>
> And, I would rather add GNU Make (Cygwin or Mingw) to the required build
> tools, than maintain two copies of make files.
+1
--
Gregory Shimansky, Intel Middleware Products Division
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by Salikh Zakirov <Sa...@Intel.com>.
Geir Magnusson Jr. wrote:
>>> make?
Salikh Zakirov wrote:
>> I know you are teasing (^_-)
>> Geir replied:
> I'm actually not. Were there an additional 24 hours in a day.... There
> is a whole list of reasons why I'm not a fan of the current system,
> including maintainability as well as performance. (Building classlib
> takes far less time that DRLVM on windows, for reasons I find utterly
> perplexing...)
Well, performance-wise, using 'make' will not make DRLVM build any faster,
mainly because it is hard (if at all possible) to take advantage of
compile-many-cpp-files-by-single-compiler-command mode available
in MSVC and Intel compilers.
I completely agree on the maintainability side.
>> I can easily propose a couple of ways to use make
>> for building DRLVM (i.e. running C++ compiler and linker). The last
>> thing I played
>> with was using shell-script for generating Makefiles using the source
>> file list.
>
> Well, cool :) We have the ability to learn from and improve upon
> classlib how we want to try and handle platforms correctly...
Actually, I do not think I would want to take classlib's make system
as the base, because it does not satisfy two requirements I personally
consider important:
* concentrate the build configuration in one place
* automatically deduce object files lists by finding .cpp files
And, I would rather add GNU Make (Cygwin or Mingw) to the required build tools,
than maintain two copies of make files.
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Salikh Zakirov wrote:
>
> Geir replied:
>> make?
>
> I know you are teasing (^_-)
I'm actually not. Were there an additional 24 hours in a day.... There
is a whole list of reasons why I'm not a fan of the current system,
including maintainability as well as performance. (Building classlib
takes far less time that DRLVM on windows, for reasons I find utterly
perplexing...)
> I can easily propose a couple of ways to use make
> for building DRLVM (i.e. running C++ compiler and linker). The last thing I played
> with was using shell-script for generating Makefiles using the source file list.
Well, cool :) We have the ability to learn from and improve upon
classlib how we want to try and handle platforms correctly...
geir
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by Salikh Zakirov <Sa...@Intel.com>.
Salikh Zakirov wrote:
>> Currently DRLVM build system suffers from a deficiency,
>> which gets in the way quickly if you experiment a lot with patches.
>> If you apply a patch that creates a new file, and build DRLVM, and
>> then unapply the patch, and rebuild again,
>> the stale .obj file will still get linked to the executable.
>>
>> Usually, this leads to the spurios linker errors.
>>
>> Can anyone with Ant/DRLVM build system experience propose a solution?
I've spent some time reading Ant manual in all conceivable directions,
trying to make ant remove stale .obj files, i.e. .obj files
that do not have corresponding .cpp file anymore.
The only thing I could come up with was something like
<delete>
<fileset dir="." includes="*.obj">
<none>
<present targetdir="vm/vmcore/src" present="both">
<mapper type="glob" from="*.obj" to="*.cpp"/>
</present>
<present targetdir="vm/vmcore/src/class_support" present="both">
<mapper type="glob" from="*.obj" to="*.cpp"/>
</present>
...
</none>
</fileset>
</delete>
To make this operation clean up stale.obj files, one would
need to list all directories, where .cpp files come from. And there exist .c and .asm files too.
So, it looks vastly impractical.
Too bad Ant doesn't allow to make operations with filesets, like add, subtract,
intersect, map, etc.
There always is an option to make a custom Ant task, e.g.
for creating a new fileset from existing filesets and a mapper,
or for subtracting filesets, but I would not go that way
until I know for sure there is no others.
Dreaming for a moment, if the following construct was possible in Ant,
<fileset id="sources> ... </fileset>
<fileset id="objects">
<transform filesetref="sources">
<chainedmapper>
<flattenmapper/>
<globmapper from="*.cpp" to="${objdir}/*.obj"/>
</chainedmapper>
</transform>
</fileset>
then the original problem would have been solved by using this "objects" fileset in the link task.
Geir replied:
> make?
I know you are teasing (^_-)
I can easily propose a couple of ways to use make
for building DRLVM (i.e. running C++ compiler and linker). The last thing I played
with was using shell-script for generating Makefiles using the source file list.
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm][build]Stale object files are linked to DRLVM
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Salikh Zakirov wrote:
> Hi!
>
> Currently DRLVM build system suffers from a deficiency,
> which gets in the way quickly if you experiment a lot with patches.
> If you apply a patch that creates a new file, and build DRLVM,
> and then unapply the patch, and rebuild again,
> the stale .obj file will still get linked to the executable.
>
> Usually, this leads to the spurios linker errors.
>
> Can anyone with Ant/DRLVM build system experience propose a solution?
make?
geir
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org