diff mbox

rules: filter out irrelevant files

Message ID 1455722040-31820-1-git-send-email-mst@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Michael S. Tsirkin Feb. 17, 2016, 3:15 p.m. UTC
It's often handy to make executables depend on each other, e.g. make a
test depend on a helper. This doesn't work now, as linker
will attempt to use the helper as an object.
To fix, filter only relevant file types before linking an executable.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 rules.mak | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Paolo Bonzini Feb. 17, 2016, 3:16 p.m. UTC | #1
On 17/02/2016 16:15, Michael S. Tsirkin wrote:
> It's often handy to make executables depend on each other, e.g. make a
> test depend on a helper. This doesn't work now, as linker
> will attempt to use the helper as an object.
> To fix, filter only relevant file types before linking an executable.

Can you provide an example of what you're trying to do?

Paolo

> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  rules.mak | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/rules.mak b/rules.mak
> index fc5ee41..d1ff311 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -102,7 +102,7 @@ LD_REL := $(CC) -nostdlib -Wl,-r
>  modules:
>  
>  %$(EXESUF): %.o
> -	$(call LINK,$^)
> +	$(call LINK,$(filter %.o %.a %.mo, $^))
>  
>  %.a:
>  	$(call quiet-command,rm -f $@ && $(AR) rcs $@ $^,"  AR    $(TARGET_DIR)$@")
>
Michael S. Tsirkin Feb. 17, 2016, 3:18 p.m. UTC | #2
On Wed, Feb 17, 2016 at 04:16:31PM +0100, Paolo Bonzini wrote:
> 
> 
> On 17/02/2016 16:15, Michael S. Tsirkin wrote:
> > It's often handy to make executables depend on each other, e.g. make a
> > test depend on a helper. This doesn't work now, as linker
> > will attempt to use the helper as an object.
> > To fix, filter only relevant file types before linking an executable.
> 
> Can you provide an example of what you're trying to do?
> 
> Paolo

Write a test that uses vhost-user to talk to a background
process helper (e.g. vhost-user-bridge).
This has to depend on the helper being built.

> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >  rules.mak | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/rules.mak b/rules.mak
> > index fc5ee41..d1ff311 100644
> > --- a/rules.mak
> > +++ b/rules.mak
> > @@ -102,7 +102,7 @@ LD_REL := $(CC) -nostdlib -Wl,-r
> >  modules:
> >  
> >  %$(EXESUF): %.o
> > -	$(call LINK,$^)
> > +	$(call LINK,$(filter %.o %.a %.mo, $^))
> >  
> >  %.a:
> >  	$(call quiet-command,rm -f $@ && $(AR) rcs $@ $^,"  AR    $(TARGET_DIR)$@")
> >
diff mbox

Patch

diff --git a/rules.mak b/rules.mak
index fc5ee41..d1ff311 100644
--- a/rules.mak
+++ b/rules.mak
@@ -102,7 +102,7 @@  LD_REL := $(CC) -nostdlib -Wl,-r
 modules:
 
 %$(EXESUF): %.o
-	$(call LINK,$^)
+	$(call LINK,$(filter %.o %.a %.mo, $^))
 
 %.a:
 	$(call quiet-command,rm -f $@ && $(AR) rcs $@ $^,"  AR    $(TARGET_DIR)$@")