xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] minios: make mini-os_app.o depend on included xen libraries
@ 2016-09-27 12:06 Juergen Gross
  2016-09-27 15:56 ` Wei Liu
  2016-09-27 16:28 ` Samuel Thibault
  0 siblings, 2 replies; 6+ messages in thread
From: Juergen Gross @ 2016-09-27 12:06 UTC (permalink / raw)
  To: minios-devel, xen-devel; +Cc: Juergen Gross, samuel.thibault, wei.liu2

When building Mini-OS with an app which is using xen libraries like
libxenguest.a let mini-os_app.o depend on the library binaries as it
is statically linked with them.

While at it add "-T" before app.lds for linking mini-os_app.o to avoid
a linker warning.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Makefile | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 81b936f..1d2324c 100644
--- a/Makefile
+++ b/Makefile
@@ -125,11 +125,18 @@ OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
 ifeq ($(libc),y)
 ifeq ($(CONFIG_XC),y)
 APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
+LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog/libxentoollog.a
 APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/evtchn -whole-archive -lxenevtchn -no-whole-archive
+LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/evtchn/libxenevtchn.a
 APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/gnttab -whole-archive -lxengnttab -no-whole-archive
+LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/gnttab/libxengnttab.a
 APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call -whole-archive -lxencall -no-whole-archive
+LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call/libxencall.a
 APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory -whole-archive -lxenforeignmemory -no-whole-archive
+LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory/libxenforeignmemory.a
 APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH) -whole-archive -lxenguest -lxenctrl -no-whole-archive
+LIBS += $(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH)/libxenctrl.a
+LIBS += $(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH)/libxenguest.a
 endif
 APP_LDLIBS += -lpci
 APP_LDLIBS += -lz
@@ -141,8 +148,8 @@ ifneq ($(APP_OBJS)-$(lwip),-y)
 OBJS := $(filter-out $(OBJ_DIR)/daytime.o, $(OBJS))
 endif
 
-$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds
-	$(LD) -r -d $(LDFLAGS) -\( $^ -\) $(APP_LDLIBS) --undefined main -o $@
+$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds $(LIBS)
+	$(LD) -r -d $(LDFLAGS) -\( $(APP_OBJS) -T app.lds -\) $(APP_LDLIBS) --undefined main -o $@
 
 ifneq ($(APP_OBJS),)
 APP_O=$(OBJ_DIR)/$(TARGET)_app.o 
-- 
2.6.6


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] minios: make mini-os_app.o depend on included xen libraries
  2016-09-27 12:06 [PATCH] minios: make mini-os_app.o depend on included xen libraries Juergen Gross
@ 2016-09-27 15:56 ` Wei Liu
  2016-09-27 16:03   ` Juergen Gross
  2016-09-27 16:28 ` Samuel Thibault
  1 sibling, 1 reply; 6+ messages in thread
From: Wei Liu @ 2016-09-27 15:56 UTC (permalink / raw)
  To: Juergen Gross; +Cc: minios-devel, xen-devel, wei.liu2, samuel.thibault

On Tue, Sep 27, 2016 at 02:06:24PM +0200, Juergen Gross wrote:
> When building Mini-OS with an app which is using xen libraries like
> libxenguest.a let mini-os_app.o depend on the library binaries as it
> is statically linked with them.
> 
> While at it add "-T" before app.lds for linking mini-os_app.o to avoid
> a linker warning.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  Makefile | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 81b936f..1d2324c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -125,11 +125,18 @@ OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
>  ifeq ($(libc),y)
>  ifeq ($(CONFIG_XC),y)
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog/libxentoollog.a

I don't follow. Why is the original APP_LDLIBS not enough?

The new dependency doesn't seem to generate any new rules. What do I
miss?

Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] minios: make mini-os_app.o depend on included xen libraries
  2016-09-27 15:56 ` Wei Liu
@ 2016-09-27 16:03   ` Juergen Gross
  2016-09-27 16:15     ` Wei Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Juergen Gross @ 2016-09-27 16:03 UTC (permalink / raw)
  To: Wei Liu; +Cc: minios-devel, xen-devel, samuel.thibault

On 27/09/16 17:56, Wei Liu wrote:
> On Tue, Sep 27, 2016 at 02:06:24PM +0200, Juergen Gross wrote:
>> When building Mini-OS with an app which is using xen libraries like
>> libxenguest.a let mini-os_app.o depend on the library binaries as it
>> is statically linked with them.
>>
>> While at it add "-T" before app.lds for linking mini-os_app.o to avoid
>> a linker warning.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>  Makefile | 11 +++++++++--
>>  1 file changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 81b936f..1d2324c 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -125,11 +125,18 @@ OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
>>  ifeq ($(libc),y)
>>  ifeq ($(CONFIG_XC),y)
>>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
>> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog/libxentoollog.a
> 
> I don't follow. Why is the original APP_LDLIBS not enough?

This just adds the parameters for ld to use the libs.

> The new dependency doesn't seem to generate any new rules. What do I
> miss?

You snipped:

+$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds $(LIBS)

which adds a dependency on the libs. Now mini-os_app.o will be relinked
if any of the libs changed. That was not the case before. I realized
that a modification of libxc wouldn't make it into pvgrub if I didn't
do a "make clean" and pvgrub was built before.


Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] minios: make mini-os_app.o depend on included xen libraries
  2016-09-27 16:03   ` Juergen Gross
@ 2016-09-27 16:15     ` Wei Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Wei Liu @ 2016-09-27 16:15 UTC (permalink / raw)
  To: Juergen Gross; +Cc: minios-devel, xen-devel, Wei Liu, samuel.thibault

On Tue, Sep 27, 2016 at 06:03:28PM +0200, Juergen Gross wrote:
> On 27/09/16 17:56, Wei Liu wrote:
> > On Tue, Sep 27, 2016 at 02:06:24PM +0200, Juergen Gross wrote:
> >> When building Mini-OS with an app which is using xen libraries like
> >> libxenguest.a let mini-os_app.o depend on the library binaries as it
> >> is statically linked with them.
> >>
> >> While at it add "-T" before app.lds for linking mini-os_app.o to avoid
> >> a linker warning.
> >>
> >> Signed-off-by: Juergen Gross <jgross@suse.com>
> >> ---
> >>  Makefile | 11 +++++++++--
> >>  1 file changed, 9 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/Makefile b/Makefile
> >> index 81b936f..1d2324c 100644
> >> --- a/Makefile
> >> +++ b/Makefile
> >> @@ -125,11 +125,18 @@ OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
> >>  ifeq ($(libc),y)
> >>  ifeq ($(CONFIG_XC),y)
> >>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
> >> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog/libxentoollog.a
> > 
> > I don't follow. Why is the original APP_LDLIBS not enough?
> 
> This just adds the parameters for ld to use the libs.
> 
> > The new dependency doesn't seem to generate any new rules. What do I
> > miss?
> 
> You snipped:
> 
> +$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds $(LIBS)
> 
> which adds a dependency on the libs. Now mini-os_app.o will be relinked
> if any of the libs changed. That was not the case before. I realized
> that a modification of libxc wouldn't make it into pvgrub if I didn't
> do a "make clean" and pvgrub was built before.
> 

I see

Reviewed-by: Wei Liu <wei.liu2@citrix.com>

> 
> Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] minios: make mini-os_app.o depend on included xen libraries
  2016-09-27 12:06 [PATCH] minios: make mini-os_app.o depend on included xen libraries Juergen Gross
  2016-09-27 15:56 ` Wei Liu
@ 2016-09-27 16:28 ` Samuel Thibault
  2016-09-27 16:52   ` Wei Liu
  1 sibling, 1 reply; 6+ messages in thread
From: Samuel Thibault @ 2016-09-27 16:28 UTC (permalink / raw)
  To: Juergen Gross; +Cc: minios-devel, xen-devel, wei.liu2

Juergen Gross, on Tue 27 Sep 2016 14:06:24 +0200, wrote:
> When building Mini-OS with an app which is using xen libraries like
> libxenguest.a let mini-os_app.o depend on the library binaries as it
> is statically linked with them.
> 
> While at it add "-T" before app.lds for linking mini-os_app.o to avoid
> a linker warning.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  Makefile | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 81b936f..1d2324c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -125,11 +125,18 @@ OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
>  ifeq ($(libc),y)
>  ifeq ($(CONFIG_XC),y)
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog/libxentoollog.a
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/evtchn -whole-archive -lxenevtchn -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/evtchn/libxenevtchn.a
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/gnttab -whole-archive -lxengnttab -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/gnttab/libxengnttab.a
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call -whole-archive -lxencall -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call/libxencall.a
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory -whole-archive -lxenforeignmemory -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory/libxenforeignmemory.a
>  APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH) -whole-archive -lxenguest -lxenctrl -no-whole-archive
> +LIBS += $(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH)/libxenctrl.a
> +LIBS += $(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH)/libxenguest.a
>  endif
>  APP_LDLIBS += -lpci
>  APP_LDLIBS += -lz
> @@ -141,8 +148,8 @@ ifneq ($(APP_OBJS)-$(lwip),-y)
>  OBJS := $(filter-out $(OBJ_DIR)/daytime.o, $(OBJS))
>  endif
>  
> -$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds
> -	$(LD) -r -d $(LDFLAGS) -\( $^ -\) $(APP_LDLIBS) --undefined main -o $@
> +$(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds $(LIBS)
> +	$(LD) -r -d $(LDFLAGS) -\( $(APP_OBJS) -T app.lds -\) $(APP_LDLIBS) --undefined main -o $@
>  
>  ifneq ($(APP_OBJS),)
>  APP_O=$(OBJ_DIR)/$(TARGET)_app.o 
> -- 
> 2.6.6
> 

-- 
Samuel
#ifndef I_WISH_WORLD_WERE_PERFECT
/* It is not :-( All the routers (except for Linux) return only
...
 -+- linux/net/ipv4/ipip.c -+-

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] minios: make mini-os_app.o depend on included xen libraries
  2016-09-27 16:28 ` Samuel Thibault
@ 2016-09-27 16:52   ` Wei Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Wei Liu @ 2016-09-27 16:52 UTC (permalink / raw)
  To: Samuel Thibault, Juergen Gross, minios-devel, xen-devel, wei.liu2

On Tue, Sep 27, 2016 at 06:28:10PM +0200, Samuel Thibault wrote:
> Juergen Gross, on Tue 27 Sep 2016 14:06:24 +0200, wrote:
> > When building Mini-OS with an app which is using xen libraries like
> > libxenguest.a let mini-os_app.o depend on the library binaries as it
> > is statically linked with them.
> > 
> > While at it add "-T" before app.lds for linking mini-os_app.o to avoid
> > a linker warning.
> > 
> > Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
> 

Pushed. Thanks.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-09-27 16:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-27 12:06 [PATCH] minios: make mini-os_app.o depend on included xen libraries Juergen Gross
2016-09-27 15:56 ` Wei Liu
2016-09-27 16:03   ` Juergen Gross
2016-09-27 16:15     ` Wei Liu
2016-09-27 16:28 ` Samuel Thibault
2016-09-27 16:52   ` Wei Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).