[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New Feature Submission for GNU Make

From: Ben Robinson
Subject: Re: New Feature Submission for GNU Make
Date: Sun, 12 Jun 2011 14:42:12 -0700


I thank the community for their feedback regarding my submission of $(trimpath ...) and $(relpath ...).  Many other benefits to the submission have been identified which would improve GNU Make if incorporated.  However, I see two outstanding issues which remain:

1) The submission needs to be refactored to incorporate the coding style and macros of 3.82 (it is currently based on 3.81).  I will proceed with this effort as soon as I hear word that the submission is approved.

2) Handling of symbolic links.  The current implementation only analyzes the string representation of the path, and does not touch the file system.  This has the advantage of performance, and the fact that expanding and resolving symbolic links can lead to longer resultant paths, when the purpose of the symbolic link was to skip over numerous long directory names.  I would recommend the submission remain in its current form, and if symbolic link expansion is needed, it be added to another new function, such as $(resolve-symlinks...), as was previously suggested.  In this way, the expansion of symbolic links can be controlled by the user, when the user desires that functionality.

I appreciate the community's feedback, and I look forward to hearing approval for submission if appropriate.

Thank you,

Ben Robinson

On Tue, May 31, 2011 at 9:37 AM, Howard Chu <address@hidden> wrote:
Edward Welbourne wrote:
Pretty weak. If a few more include paths were added to the project it would
still break, regardless of your patch.

When you have thousands of object files, shortening the name of each
by several bytes when invoking ar can make room for really quite a lot
more files before you run up against the command-line length limit.

Never understimate the value of a modest shortening of file names -
when our ar command-line got to about 230 kibibytes, we had to re-work
the way we invoked ar !

Whatever you're doing, you're doing it wrong. ;)

If you're tossing a bunch of object files into an ar library simply for grouping purposes, and all of the object files will eventually be used in the final executable, it's faster to use ld -r and combine groups of them all into a single object file. If you profiled your build I'm sure you would find that a large percentage of time is being wasted in ar itself.

And if you're really running a build with thousands of object files, on a frequent basis, you're foolish not to profile it and figure out what else you're doing wrong. Giant monolithic command lines also prevent you from leveraging parallel make, so that's another reason not to do things that way...

 -- Howard Chu
 CTO, Symas Corp.           http://www.symas.com
 Director, Highland Sun     http://highlandsun.com/hyc/
 Chief Architect, OpenLDAP  http://www.openldap.org/project/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]