.SUFFIXES hosed by switch to automake 1.9.x

Joern Rennecke joernr@arc.com
Wed Apr 18 14:53:00 GMT 2007

On Wed, Apr 18, 2007 at 03:59:47PM +0200, Ralf Corsepius wrote:
> Add *.S to *_SOURCES.

crt0.o is not part of lib_a, it is a stand-alone binary file that is
linked specifically by ld.

If I add to sys/arc/Makefile.am:

crt0_SOURCES = crt0.S

I get an error message:

Makefile.am:13: variable `crt0_SOURCES' is defined but no program or
Makefile.am:13: library has `crt0' as canonic name (possible typo)

Well, crt0 is neither a library nor a program.

> Unlike previous automakes (which didn't handle them), newer automakes
> know to handle them.

More like 'unlike previous automakes, which rather erred on the safe side
to include an unneeded rule, newer automakes think they know how to handle
them better and make a mess of it'.

I rather have the .S.o rule added automatically all the time than
have to add it by hand in dozens of .am files.
As it turns out, the .SUFFIXES rule alone is not enough, as then
the multilib flags are missing.

More information about the Newlib mailing list