2002-04-05 07:04:54

by NeilBrown

[permalink] [raw]
Subject: 2.5.7 Rules.make change break nfsd.



2.5.7 introduces:

-------------------------------------------------------------
#
# Rule to link composite objects
#

# for make >= 3.78 the following is cleaner:
# multi-used := $(foreach m,$(obj-y) $(obj-m), $(if $($(basename $(m))-Objs), $(m)))
multi-used := $(sort $(foreach m,$(obj-y) $(obj-m),$(patsubst %,$(m),$($(basename $(m))-objs))))
^^^^^^^^^^^^^^^^^^^^^^^
ld-multi-used := $(filter-out $(list-multi),$(multi-used))
ld-multi-objs := $(foreach m, $(ld-multi-used), $($(basename $(m))-objs))
------------------------------------------------------------


If the basename of some object is "export" (i.e. export.o), then the
underlined section referes to "export-objs" which is a macro that
already has a well defined meaning.

Maybe it should be "-Objs" or "-components" or ...

NeilBrown


2002-04-12 02:00:07

by Kai Germaschewski

[permalink] [raw]
Subject: Re: 2.5.7 Rules.make change break nfsd.

On Fri, 5 Apr 2002, Neil Brown wrote:

> If the basename of some object is "export" (i.e. export.o), then the
> underlined section referes to "export-objs" which is a macro that
> already has a well defined meaning.
>
> Maybe it should be "-Objs" or "-components" or ...

Hmmh, I did that change. Changing the -objs suffix is not really an
option, as it's being used all over the makefiles already. But you're
right, this conflict needs to be resolved.

(It also means nobody can build a multi-part object called export.o, but I
suppose that's a limitation we can live with it.)

I think I'll just filter out export.o at the affected places.

--Kai