help-make
[Top][All Lists]
Advanced

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

Re: Problems with pattern rules


From: Stepan Kasal
Subject: Re: Problems with pattern rules
Date: Sat, 17 Jun 2006 23:27:57 +0200
User-agent: Mutt/1.4.2.1i

Hello,
  an update to my previous mail:

On Sat, Jun 17, 2006 at 03:26:29PM +0200, Stepan Kasal wrote:
> libebl_%.so: libebl_%_pic.a libebl_%.map $(libelf) $(libdw)
>       $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
>               -Wl,--version-script,$(word 2,$^) \
>               -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
>       $(textrel_check)
> 
> libebl_%.map: Makefile
>       echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' > $@
> 
> libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
>              libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
>              libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
>              libebl_s390_pic.a
> noinst_DATA = $(libebl_pic:_pic.a=.so)
> 
> all: $(noinst_DATA)
> 
> The scenario does not work as expected:
> 
> First, if we run make all twice, the second run rebuilds something.

This problem is now resolved: libebl_%_pic.a is rebuilt because some
intermediate prerequisities get mentioned in autogenerated
dependencies.

> Second, when we run this with -j4, make often fails: it creates
> certain numbers of *.map files (6-9, perhaps) and then starts
> building *.so files; when it comes to a case where the *.map file is
> missing, the $(LINK) command fails.
> (An observation: the `rm' command that removes the *.map files (they
> are intermediate) does not include the missing *.map file, so in a
> sense, make knows that it was not created.)

Bit this one is still a mystery for me.

I do not see any connection to the other problem.

I incline to think that this is a bug in make, but it'll take me
several days until I find time to investiate it and eventually
generate a good bug report.

The question remains: which versions of GNU make should I try, and
where can I grab them?

Thanks,
        Stepan kasal




reply via email to

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