On Wed, Mar 21, 2018 at 08:42:45AM -0700, David Anderson wrote:
> That embedding a copy of
> 
> ax_cc_for_build.m4
> 
> in one's release is considered an appropriate thing to do is
> quite a surprise to me.   Even shocking.

This is quite difficult for me. Personally, I very much think that such
embedded code copies are a bad thing and should go away. When packaging
a software it is often a good idea to simply wipe such copies, because
they are always outdated and tend to contain fixed bugs. Numerous times,
I've filed bugs saying "please update your embedded copy, because it has
bugs that are fixed upstream".

Yet, that's exactly what autoconf upstream recommends. There even is a
tool(!) for managing these embedded copies: aclocal. It creates an
aclocal.m4 by copying macros from other sources (e.g. autoconf-archive)
into aclocal.m4, which is supposed to be part of a source code release.
See e.g. https://autotools.io/autoconf/macros.html

> [And what about libelf?  Include it too because
> it is not available automatically to all?
> Where to stop embedding?]

If you ask me, don't embed. Just don't do it. Also don't ship compiled
code (e.g. generated configure scripts). But that's just me.

So now you essentially have a choice of:
 * Depend on autoconf-archive.
 * Embed the damn macro.
 * Use AC_PATH_PROG([CC_FOR_BUILD],[cc]) as a simple substitute.
 * Ignore cross building.

There is no silver bullet.

Helmut

Reply via email to