[Top][All Lists]

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

Re: New Feature Submission for GNU Make

From: Rob Walker
Subject: Re: New Feature Submission for GNU Make
Date: Mon, 13 Jun 2011 09:01:24 -0700
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv: Gecko/20110414 Thunderbird/3.1.10

Have you considered the backwards compatibility issues this patch might

The functions you've implemented for inclusion are implementable
directly in the make language.  Therefore, there are very likely
implementations floating around in existing makefiles, very likely with
the names you've chosen, but possibly with slightly different semantics.

When both make and a makefile define a function $(call fn) always
resolves to the built-in.

Until make gives make programmers more control over their environment, I
think a moratorium on new built-in functions might be a good idea.  Any


On 6/12/11 2:42 PM, Ben Robinson wrote:
> Hello,
> 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
> <mailto: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/
> _______________________________________________
> Bug-make mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/bug-make

reply via email to

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