Olaf Hering
2010-Jul-28 12:55 UTC
[Xen-devel] [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
Fix link error in openSuSE 11.2. The order of objects and linked libraries is important with recent toolchain when --as-needed is used. xc.o: In function `xc_wait_for_event_or_timeout'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:80: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:86: undefined reference to `xc_evtchn_pending'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:89: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:93: undefined reference to `xc_evtchn_unmask'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:96: undefined reference to `xc_report_error'' xc.o: In function `xc_mem_paging_flush_ioemu_cache'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:57: undefined reference to `xs_daemon_open'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:61: undefined reference to `xs_write'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:63: undefined reference to `xs_daemon_close'' xc.o: In function `get_platform_info'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xg_save_restore.h:52: undefined reference to `xc_version'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xg_save_restore.h:55: undefined reference to `xc_version'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xg_save_restore.h:58: undefined reference to `xc_memory_op'' xc.o: In function `do_domctl'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:148: undefined reference to `hcall_buf_prep'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:150: undefined reference to `safe_strerror'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:150: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:159: undefined reference to `do_xen_hypercall'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:162: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:166: undefined reference to `hcall_buf_release'' xenpaging.o: In function `xenpaging_resume_page'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:393: undefined reference to `xc_mem_paging_resume'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:395: undefined reference to `xc_evtchn_notify'' xenpaging.o: In function `xenpaging_evict_page'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:342: undefined reference to `xc_map_foreign_pages'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:346: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:355: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:365: undefined reference to `xc_mem_paging_evict'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:369: undefined reference to `xc_report_error'' xenpaging.o: In function `evict_victim'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:457: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:461: undefined reference to `xc_mem_paging_nominate'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:469: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:475: undefined reference to `xc_report_error'' xenpaging.o: In function `xenpaging_teardown'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:244: undefined reference to `xc_mem_event_disable'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:247: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:252: undefined reference to `xc_evtchn_unbind'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:255: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:261: undefined reference to `xc_evtchn_close'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:264: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:270: undefined reference to `xc_interface_close'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:273: undefined reference to `xc_report_error'' xenpaging.o: In function `xenpaging_init'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:76: undefined reference to `xc_interface_open'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:80: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:97: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:105: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:119: undefined reference to `xc_mem_event_enable'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:125: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:127: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:132: undefined reference to `xc_evtchn_open'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:135: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:140: undefined reference to `xc_evtchn_bind_interdomain'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:145: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:155: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:163: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:171: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:175: undefined reference to `xc_domain_getinfolist'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:179: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:190: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:193: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:199: undefined reference to `xc_report_error'' xenpaging.o: In function `main'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:529: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:539: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:542: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:551: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:556: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:581: undefined reference to `xc_report'' xenpaging.o: In function `xenpaging_populate_page'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:411: undefined reference to `xc_mem_paging_prep'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:415: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:422: undefined reference to `xc_map_foreign_pages'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:427: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:435: undefined reference to `xc_report_error'' xenpaging.o: In function `main'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:589: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:602: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:611: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:629: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:643: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:648: undefined reference to `xc_interface_close'' policy_default.o: In function `policy_choose_victim'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/policy_default.c:64: undefined reference to `xc_report'' collect2: ld returned 1 exit status make[3]: *** [xenpaging] Error 1 Signed-off-by: Olaf Hering <olaf@aepfle.de> --- tools/xenpaging/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- xen-unstable.hg-4.1.21864.orig/tools/xenpaging/Makefile +++ xen-unstable.hg-4.1.21864/tools/xenpaging/Makefile @@ -27,7 +27,7 @@ IBINS = xenpaging all: $(IBINS) xenpaging: $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) install: all $(INSTALL_DIR) $(DESTDIR)$(SBINDIR) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2010-Jul-28 14:02 UTC
Re: [Xen-devel] [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
Olaf Hering writes ("[Xen-devel] [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains"):> Fix link error in openSuSE 11.2. > The order of objects and linked libraries is important with recent toolchain > when --as-needed is used.> xenpaging: $(OBJS) > - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ > + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)Thanks, but once again, LDFLAGS belongs at the beginning and what''s needed is to introduce a *_LIBS variable. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Olaf Hering
2010-Jul-28 15:47 UTC
[Xen-devel] [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
Fix link error in openSuSE 11.2. The order of objects and linked libraries is important with recent toolchain when --as-needed is used. xc.o: In function `xc_wait_for_event_or_timeout'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:80: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:86: undefined reference to `xc_evtchn_pending'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:89: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:93: undefined reference to `xc_evtchn_unmask'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:96: undefined reference to `xc_report_error'' xc.o: In function `xc_mem_paging_flush_ioemu_cache'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:57: undefined reference to `xs_daemon_open'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:61: undefined reference to `xs_write'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xc.c:63: undefined reference to `xs_daemon_close'' xc.o: In function `get_platform_info'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xg_save_restore.h:52: undefined reference to `xc_version'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xg_save_restore.h:55: undefined reference to `xc_version'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xg_save_restore.h:58: undefined reference to `xc_memory_op'' xc.o: In function `do_domctl'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:148: undefined reference to `hcall_buf_prep'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:150: undefined reference to `safe_strerror'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:150: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:159: undefined reference to `do_xen_hypercall'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:162: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/../../tools/libxc/xc_private.h:166: undefined reference to `hcall_buf_release'' xenpaging.o: In function `xenpaging_resume_page'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:393: undefined reference to `xc_mem_paging_resume'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:395: undefined reference to `xc_evtchn_notify'' xenpaging.o: In function `xenpaging_evict_page'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:342: undefined reference to `xc_map_foreign_pages'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:346: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:355: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:365: undefined reference to `xc_mem_paging_evict'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:369: undefined reference to `xc_report_error'' xenpaging.o: In function `evict_victim'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:457: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:461: undefined reference to `xc_mem_paging_nominate'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:469: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:475: undefined reference to `xc_report_error'' xenpaging.o: In function `xenpaging_teardown'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:244: undefined reference to `xc_mem_event_disable'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:247: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:252: undefined reference to `xc_evtchn_unbind'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:255: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:261: undefined reference to `xc_evtchn_close'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:264: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:270: undefined reference to `xc_interface_close'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:273: undefined reference to `xc_report_error'' xenpaging.o: In function `xenpaging_init'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:76: undefined reference to `xc_interface_open'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:80: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:97: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:105: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:119: undefined reference to `xc_mem_event_enable'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:125: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:127: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:132: undefined reference to `xc_evtchn_open'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:135: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:140: undefined reference to `xc_evtchn_bind_interdomain'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:145: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:155: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:163: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:171: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:175: undefined reference to `xc_domain_getinfolist'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:179: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:190: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:193: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:199: undefined reference to `xc_report_error'' xenpaging.o: In function `main'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:529: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:539: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:542: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:551: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:556: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:581: undefined reference to `xc_report'' xenpaging.o: In function `xenpaging_populate_page'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:411: undefined reference to `xc_mem_paging_prep'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:415: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:422: undefined reference to `xc_map_foreign_pages'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:427: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:435: undefined reference to `xc_report_error'' xenpaging.o: In function `main'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:589: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:602: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:611: undefined reference to `xc_report'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:629: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:643: undefined reference to `xc_report_error'' /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/xenpaging.c:648: undefined reference to `xc_interface_close'' policy_default.o: In function `policy_choose_victim'': /usr/src/packages/BUILD/xen-unstable.hg-4.1.21864/tools/xenpaging/policy_default.c:64: undefined reference to `xc_report'' collect2: ld returned 1 exit status make[3]: *** [xenpaging] Error 1 Signed-off-by: Olaf Hering <olaf@aepfle.de> --- v2: use XENPAGING_LIBS instead of moving LDFLAGS to the end of cmdline tools/xenpaging/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- xen-unstable.hg-4.1.21864.orig/tools/xenpaging/Makefile +++ xen-unstable.hg-4.1.21864/tools/xenpaging/Makefile @@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -I $(XEN_XC) CFLAGS += -I ./ CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenstore) -LDFLAGS += $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) +XENPAGING_LIBS = $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) POLICY = default @@ -27,7 +27,7 @@ IBINS = xenpaging all: $(IBINS) xenpaging: $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(XENPAGING_LIBS) install: all $(INSTALL_DIR) $(DESTDIR)$(SBINDIR) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2010-Jul-28 16:05 UTC
[Xen-devel] Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
Olaf Hering writes ("[PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains"):> -LDFLAGS += $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) > +XENPAGING_LIBS = $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore)*_LIBS = $(LDFLAGS_*) ? surely some mistake. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Olaf Hering
2010-Jul-28 16:15 UTC
[Xen-devel] Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
On Wed, Jul 28, Ian Jackson wrote:> Olaf Hering writes ("[PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains"): > > -LDFLAGS += $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) > > +XENPAGING_LIBS = $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) > > *_LIBS = $(LDFLAGS_*) ? > > surely some mistake.Ian, LDFLAGS_libxenctrl is defined in tools/Rules.mk and used in several Makefiles. Are you suggesting to rename these variables and update all users? Also, its not clear to me why the place of LDFLAGS matters. In another thread it was stated that -static may behave different. Whats the reason for that? Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2010-Jul-29 15:16 UTC
[Xen-devel] Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
Olaf Hering writes ("Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains"):> LDFLAGS_libxenctrl is defined in tools/Rules.mk and used in several > Makefiles. Are you suggesting to rename these variables and update all > users?Linker command lines are order-sensitive. This means that LDFLAGS and LDLIBS are not the same and should not be conflated. You are finding build bugs on some toolchains because libraries have been stuffed into LDFLAGS which come after the general linker flags but before the objects, when you want them to be at the end (or nearly at the end). The right answer is not to make LDFLAGS be included at the end of the link line; nor is it to copy values from some LDFLAGS variable to an LDLIBS variable. I think the right answer is to rename the variables LDFLAGS_foo which actually contain arguments like -Lfoo -lfoo to LDLIBS_foo. If there are mixed variables (which contain actual linker options rather than just instructions to link against libraries) they should be split in two.> Also, its not clear to me why the place of LDFLAGS matters. In another > thread it was stated that -static may behave different. Whats the reason > for that?-static was just an example. It affects only libraries appearing after it in the link line. In general, arguments and options to the linker are quite positional. This means that linker options (which are typically found in LDLIBS variables) normally need to come first, before any object files or libraries are mentioned. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Olaf Hering
2010-Jul-29 15:20 UTC
[Xen-devel] Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
On Thu, Jul 29, Ian Jackson wrote:> I think the right answer is to rename the variables LDFLAGS_foo which > actually contain arguments like -Lfoo -lfoo to LDLIBS_foo. If there > are mixed variables (which contain actual linker options rather than > just instructions to link against libraries) they should be split in > two.Ian, I will walk through the code and prepare individual patches to move to the suggested variable naming. Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2010-Jul-29 15:39 UTC
[Xen-devel] Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains
Olaf Hering writes ("Re: [PATCH] xenpaging: correct order of linker options to avoid link errors with recent toolchains"):> On Thu, Jul 29, Ian Jackson wrote: > > I think the right answer is to rename the variables LDFLAGS_foo which > > actually contain arguments like -Lfoo -lfoo to LDLIBS_foo. If there > > are mixed variables (which contain actual linker options rather than > > just instructions to link against libraries) they should be split in > > two. > > I will walk through the code and prepare individual patches to move to > the suggested variable naming.Thank you! One patch to change all the variable names at once would be fine. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Olaf Hering
2010-Aug-01 09:51 UTC
[Xen-devel] [PATCH] split LDLIBS from LDFLAGS to fix link errors in recent toolchains
Linker command lines are order-sensitive. Move linker options -Lfoo -lfoo from LDFLAGS to LDLIBS and place this new variable after the objects to link. This resolves build errors in xenpagin and blktap with recent toolchains. rename SHLIB_CFLAGS to SHLIB_LDFLAGS rename LDFLAGS_* to LDLIBS_* move LDFLAGS usage after CFLAGS in CC calls remove stale comments in xenpaging Makefile Signed-off-by: Olaf Hering <olaf@aepfle.de> --- config/StdGNU.mk | 2 +- config/SunOS.mk | 2 +- tools/Rules.mk | 8 ++++---- tools/blktap/drivers/Makefile | 10 +++++----- tools/blktap/lib/Makefile | 6 +++--- tools/blktap2/Makefile | 2 +- tools/blktap2/drivers/Makefile | 12 ++++++------ tools/blktap2/vhd/Makefile | 4 ++-- tools/blktap2/vhd/lib/Makefile | 2 +- tools/console/Makefile | 13 +++++++------ tools/debugger/xenitp/Makefile | 4 ++-- tools/flask/libflask/Makefile | 2 +- tools/flask/utils/Makefile | 4 ++-- tools/fs-back/Makefile | 4 ++-- tools/libfsimage/Rules.mk | 2 +- tools/libfsimage/common/Makefile | 2 +- tools/libxc/Makefile | 4 ++-- tools/libxen/Makefile | 2 +- tools/libxen/Makefile.dist | 4 ++-- tools/libxl/Makefile | 6 +++--- tools/misc/Makefile | 2 +- tools/security/Makefile | 2 +- tools/vnet/libxutil/Makefile | 2 +- tools/xcutils/Makefile | 2 +- tools/xenbackendd/Makefile | 4 ++-- tools/xenmon/Makefile | 6 +++--- tools/xenpaging/Makefile | 7 ++----- tools/xenpmd/Makefile | 4 ++-- tools/xenstat/libxenstat/Makefile | 6 +++--- tools/xenstore/Makefile | 4 ++-- tools/xentrace/Makefile | 6 +++--- 31 files changed, 69 insertions(+), 71 deletions(-) --- xen-unstable.hg-4.1.21890.orig/config/StdGNU.mk +++ xen-unstable.hg-4.1.21890/config/StdGNU.mk @@ -59,7 +59,7 @@ CURSES_LIBS = -lncurses PTHREAD_LIBS = -lpthread UTIL_LIBS = -lutil SONAME_LDFLAG = -soname -SHLIB_CFLAGS = -shared +SHLIB_LDFLAGS = -shared ifneq ($(debug),y) CFLAGS += -O2 -fomit-frame-pointer --- xen-unstable.hg-4.1.21890.orig/config/SunOS.mk +++ xen-unstable.hg-4.1.21890/config/SunOS.mk @@ -51,7 +51,7 @@ CURSES_LIBS = -lcurses PTHREAD_LIBS = -lpthread UTIL_LIBS SONAME_LDFLAG = -h -SHLIB_CFLAGS = -R $(SunOS_LIBDIR) -shared +SHLIB_LDFLAGS = -R $(SunOS_LIBDIR) -shared ifneq ($(debug),y) CFLAGS += -O2 -fno-omit-frame-pointer --- xen-unstable.hg-4.1.21890.orig/tools/Rules.mk +++ xen-unstable.hg-4.1.21890/tools/Rules.mk @@ -18,16 +18,16 @@ XEN_BLKTAP2 = $(XEN_ROOT)/tools/b CFLAGS_include = -I$(XEN_INCLUDE) CFLAGS_libxenctrl = -I$(XEN_LIBXC) $(CFLAGS_include) -LDFLAGS_libxenctrl = -L$(XEN_LIBXC) -lxenctrl +LDLIBS_libxenctrl = -L$(XEN_LIBXC) -lxenctrl CFLAGS_libxenguest = -I$(XEN_LIBXC) $(CFLAGS_include) -LDFLAGS_libxenguest = -L$(XEN_LIBXC) -lxenguest +LDLIBS_libxenguest = -L$(XEN_LIBXC) -lxenguest CFLAGS_libxenstore = -I$(XEN_XENSTORE) $(CFLAGS_include) -LDFLAGS_libxenstore = -L$(XEN_XENSTORE) -lxenstore +LDLIBS_libxenstore = -L$(XEN_XENSTORE) -lxenstore CFLAGS_libblktapctl = -I$(XEN_BLKTAP2)/control -I$(XEN_BLKTAP2)/include $(CFLAGS_include) -LDFLAGS_libblktapctl = -L$(XEN_BLKTAP2)/control -lblktapctl +LDLIBS_libblktapctl = -L$(XEN_BLKTAP2)/control -lblktapctl X11_LDPATH = -L/usr/X11R6/$(LIBLEAFDIR) --- xen-unstable.hg-4.1.21890.orig/tools/blktap/drivers/Makefile +++ xen-unstable.hg-4.1.21890/tools/blktap/drivers/Makefile @@ -29,8 +29,8 @@ CFLAGS += -DMEMSHR MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a endif -LDFLAGS_blktapctrl := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) $(MEMSHRLIBS) -L../lib -lblktap -lrt -lm -lpthread -LDFLAGS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz +LDLIBS_blktapctrl := $(MEMSHRLIBS) $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) -L../lib -lblktap -lrt -lm -lpthread +LDLIBS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz BLK-OBJS-y := block-aio.o BLK-OBJS-y += block-sync.o @@ -48,16 +48,16 @@ BLKTAB-OBJS-$(CONFIG_Linux) += blktapctr all: $(IBIN) qcow-util blktapctrl: $(BLKTAB-OBJS-y) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDFLAGS_blktapctrl) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS_blktapctrl) tapdisk: tapdisk.o $(BLK-OBJS-y) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDFLAGS_img) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS_img) .PHONY: qcow-util qcow-util: img2qcow qcow2raw qcow-create img2qcow qcow2raw qcow-create: %: %.o $(BLK-OBJS-y) - $(CC) $(CFLAGS) -o $* $^ $(LDFLAGS) $(LDFLAGS_img) + $(CC) $(CFLAGS) $(LDFLAGS) -o $* $^ $(LDLIBS_img) install: all $(INSTALL_PROG) $(IBIN) $(QCOW_UTIL) $(VHD_UTIL) $(DESTDIR)$(SBINDIR) --- xen-unstable.hg-4.1.21890.orig/tools/blktap/lib/Makefile +++ xen-unstable.hg-4.1.21890/tools/blktap/lib/Makefile @@ -8,7 +8,7 @@ SONAME = libblktap.so.$(MAJOR) CFLAGS += -I. CFLAGS += $(CFLAGS_libxenctrl) CFLAGS += $(CFLAGS_libxenstore) -LDFLAGS += $(LDFLAGS_libxenstore) +LDLIBS += $(LDLIBS_libxenstore) SRCS : SRCS += xenbus.c blkif.c xs_api.c @@ -46,8 +46,8 @@ clean: rm -rf *.a *.so* *.o *.opic *.rpm $(LIB) *~ $(DEPS) xen TAGS libblktap.so.$(MAJOR).$(MINOR): $(OBJS_PIC) - $(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,$(SONAME) $(SHLIB_CFLAGS) \ - $(LDFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,$(SONAME) $(SHLIB_LDFLAGS) \ + -o $@ $^ $(LDLIBS) ln -sf libblktap.so.$(MAJOR).$(MINOR) libblktap.so.$(MAJOR) ln -sf libblktap.so.$(MAJOR) libblktap.so --- xen-unstable.hg-4.1.21890.orig/tools/blktap2/Makefile +++ xen-unstable.hg-4.1.21890/tools/blktap2/Makefile @@ -2,7 +2,7 @@ XEN_ROOT = ../.. include $(XEN_ROOT)/tools/Rules.mk CFLAGS += $(CFLAGS_libxenctrl) -LDFLAGS += $(LDFLAGS_libxenctrl) +LDLIBS += $(LDLIBS_libxenctrl) SUBDIRS-y : SUBDIRS-y += include --- xen-unstable.hg-4.1.21890.orig/tools/blktap2/drivers/Makefile +++ xen-unstable.hg-4.1.21890/tools/blktap2/drivers/Makefile @@ -25,7 +25,7 @@ endif LIBS += -lrt -lz -LDFLAGS_img := $(LDFLAGS_libxenctrl) $(CRYPT_LIB) -lpthread -lz -lm +LBLIBS_img := $(LDLIBS_libxenctrl) $(CRYPT_LIB) -lpthread -lz -lm LIBS += -L$(LIBVHDDIR) -lvhd @@ -93,16 +93,16 @@ all: $(IBIN) lock-util qcow-util tapdisk2: $(TAP-OBJS-y) $(BLK-OBJS-y) $(MISC-OBJS-y) tapdisk2.c - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(MEMSHRLIBS) $(LDFLAGS_img) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(MEMSHRLIBS) $(LBLIBS_img) tapdisk-client: tapdisk-client.o - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(LDFLAGS_img) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(LBLIBS_img) tapdisk-stream tapdisk-diff: %: %.o $(TAP-OBJS-y) $(BLK-OBJS-y) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(MEMSHRLIBS) $(LDFLAGS_img) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(MEMSHRLIBS) $(LBLIBS_img) td-util: td.o tapdisk-utils.o tapdisk-log.o $(PORTABLE-OBJS-y) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(LDFLAGS_img) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(LBLIBS_img) lock-util: lock.c $(CC) $(CFLAGS) -DUTIL -o lock-util lock.c $(LDFLAGS) $(LIBS) @@ -111,7 +111,7 @@ lock-util: lock.c qcow-util: img2qcow qcow2raw qcow-create img2qcow qcow2raw qcow-create: %: %.o $(TAP-OBJS-y) $(BLK-OBJS-y) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(MEMSHRLIBS) $(LDFLAGS_img) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(MEMSHRLIBS) $(LBLIBS_img) install: all $(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR) --- xen-unstable.hg-4.1.21890.orig/tools/blktap2/vhd/Makefile +++ xen-unstable.hg-4.1.21890/tools/blktap2/vhd/Makefile @@ -38,10 +38,10 @@ LIBS_DEPENDS := lib/libvhd.so lib/vhd. $(LIBS_DEPENDS):subdirs-all vhd-util: vhd-util.o $(LIBS_DEPENDS) - $(CC) $(CFLAGS) -o vhd-util vhd-util.o $(LDFLAGS) $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -o vhd-util vhd-util.o $(LIBS) vhd-update: vhd-update.o $(LIBS_DEPENDS) - $(CC) $(CFLAGS) -o vhd-update vhd-update.o $(LDFLAGS) $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -o vhd-update vhd-update.o $(LIBS) install: all $(MAKE) subdirs-install --- xen-unstable.hg-4.1.21890.orig/tools/blktap2/vhd/lib/Makefile +++ xen-unstable.hg-4.1.21890/tools/blktap2/vhd/lib/Makefile @@ -55,7 +55,7 @@ all: build build: $(LIBVHD-BUILD) libvhd.a: $(LIB-OBJS) - $(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG),$(LIBVHD-SONAME) $(SHLIB_CFLAGS) \ + $(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG),$(LIBVHD-SONAME) $(SHLIB_LDFLAGS) \ $(LDFLAGS) -o libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(LIBS) $^ ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) libvhd.so.$(LIBVHD-MAJOR) ln -sf libvhd.so.$(LIBVHD-MAJOR) libvhd.so --- xen-unstable.hg-4.1.21890.orig/tools/console/Makefile +++ xen-unstable.hg-4.1.21890/tools/console/Makefile @@ -6,8 +6,11 @@ CFLAGS += -Werror CFLAGS += $(CFLAGS_libxenctrl) CFLAGS += $(CFLAGS_libxenstore) -LDFLAGS += $(LDFLAGS_libxenctrl) -LDFLAGS += $(LDFLAGS_libxenstore) +LDLIBS += $(LDLIBS_libxenctrl) +LDLIBS += $(LDLIBS_libxenstore) +LDLIBS += $(UTIL_LIBS) +LDLIBS += $(SOCKET_LIBS) +LDLIBS += -lrt BIN = xenconsoled xenconsole @@ -20,12 +23,10 @@ clean: $(RM) client/*.o daemon/*.o xenconsoled: $(patsubst %.c,%.o,$(wildcard daemon/*.c)) - $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) \ - $(UTIL_LIBS) $(SOCKET_LIBS) -lrt + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) xenconsole: $(patsubst %.c,%.o,$(wildcard client/*.c)) - $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) \ - $(UTIL_LIBS) $(SOCKET_LIBS) + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) .PHONY: install install: $(BIN) --- xen-unstable.hg-4.1.21890.orig/tools/debugger/xenitp/Makefile +++ xen-unstable.hg-4.1.21890/tools/debugger/xenitp/Makefile @@ -46,8 +46,8 @@ clean: $(RM) *.a *.so *.o *.rpm $(BIN) $(LIBBIN) %: %.c $(HDRS) Makefile - $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS_libxenctrl) + $(CC) $(CFLAGS) -o $@ $< $(LDLIBS_libxenctrl) XENITP_OBJS=xenitp.o ia64-dis.o ia64-opc.o cpu-ia64-opc.o xenitp: $(XENITP_OBJS) - $(CC) $(CFLAGS) -o $@ $(XENITP_OBJS) $(LDFLAGS_libxenctrl) + $(CC) $(CFLAGS) -o $@ $(XENITP_OBJS) $(LDLIBS_libxenctrl) --- xen-unstable.hg-4.1.21890.orig/tools/flask/libflask/Makefile +++ xen-unstable.hg-4.1.21890/tools/flask/libflask/Makefile @@ -59,6 +59,6 @@ libflask.so.$(MAJOR): libflask.so.$(MAJO ln -sf $< $@ libflask.so.$(MAJOR).$(MINOR): $(PIC_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libflask.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libflask.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ -include $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/flask/utils/Makefile +++ xen-unstable.hg-4.1.21890/tools/flask/utils/Makefile @@ -14,7 +14,7 @@ BASECFLAGS+= -I$(LIBFLASK_ROOT)/include BASECFLAGS+= -I. CFLAGS += $(BASECFLAGS) -LDFLAGS += $(PROFILE) -L$(XEN_LIBXC) -L$(LIBFLASK_ROOT) +LDLIBS += $(PROFILE) -L$(XEN_LIBXC) -L$(LIBFLASK_ROOT) TESTDIR = testsuite/tmp TESTFLAGS= -DTESTING TESTENV = XENSTORED_ROOTDIR=$(TESTDIR) XENSTORED_RUNDIR=$(TESTDIR) @@ -27,7 +27,7 @@ CLIENTS_OBJS := $(patsubst flask-%,%.o,$ all: $(CLIENTS) $(CLIENTS): flask-%: %.o - $(CC) $(CFLAGS) $(LDFLAGS) $< $(LOADLIBES) $(LDLIBS) -L. -lflask $(LDFLAGS_libxenctrl) -o $@ + $(CC) $(CFLAGS) $(LDFLAGS) $< $(LOADLIBES) $(LDLIBS) -L. -lflask $(LDLIBS_libxenctrl) -o $@ .PHONY: clean clean: --- xen-unstable.hg-4.1.21890.orig/tools/fs-back/Makefile +++ xen-unstable.hg-4.1.21890/tools/fs-back/Makefile @@ -14,8 +14,8 @@ CFLAGS += $(INCLUDES) -I. CFLAGS += -D_GNU_SOURCE LIBS := -L. -L.. -L../lib -LIBS += $(LDFLAGS_libxenctrl) -LIBS += $(LDFLAGS_libxenstore) +LIBS += $(LDLIBS_libxenctrl) +LIBS += $(LDLIBS_libxenstore) LIBS += -lrt -lpthread OBJS := fs-xenbus.o fs-ops.o --- xen-unstable.hg-4.1.21890.orig/tools/libfsimage/Rules.mk +++ xen-unstable.hg-4.1.21890/tools/libfsimage/Rules.mk @@ -24,7 +24,7 @@ fs-install: fs-all $(INSTALL_PROG) $(FSLIB) $(DESTDIR)$(FSDIR) $(FSLIB): $(PIC_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) $(SHLIB_CFLAGS) -o $@ $^ -lfsimage $(FS_LIBDEPS) + $(CC) $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $^ -lfsimage $(FS_LIBDEPS) clean distclean: rm -f $(PIC_OBJS) $(FSLIB) $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/libfsimage/common/Makefile +++ xen-unstable.hg-4.1.21890/tools/libfsimage/common/Makefile @@ -37,7 +37,7 @@ libfsimage.so.$(MAJOR): libfsimage.so.$( ln -sf $< $@ libfsimage.so.$(MAJOR).$(MINOR): $(PIC_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libfsimage.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ -lpthread + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libfsimage.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ -lpthread -include $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/libxc/Makefile +++ xen-unstable.hg-4.1.21890/tools/libxc/Makefile @@ -145,7 +145,7 @@ libxenctrl.so.$(MAJOR): libxenctrl.so.$( ln -sf $< $@ libxenctrl.so.$(MAJOR).$(MINOR): $(CTRL_PIC_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenctrl.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ $(PTHREAD_LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenctrl.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ $(PTHREAD_LIBS) # libxenguest @@ -181,7 +181,7 @@ xc_dom_bzimageloader.opic: CFLAGS += $(c libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(call zlib-options,l) libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz -lxenctrl $(PTHREAD_LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz -lxenctrl $(PTHREAD_LIBS) -include $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/libxen/Makefile +++ xen-unstable.hg-4.1.21890/tools/libxen/Makefile @@ -44,7 +44,7 @@ libxenapi.so.$(MAJOR): libxenapi.so.$(MA ln -sf $< $@ libxenapi.so.$(MAJOR).$(MINOR): $(LIBXENAPI_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenapi.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenapi.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ libxenapi.a: $(LIBXENAPI_OBJS) $(AR) rcs libxenapi.a $^ --- xen-unstable.hg-4.1.21890.orig/tools/libxen/Makefile.dist +++ xen-unstable.hg-4.1.21890/tools/libxen/Makefile.dist @@ -30,7 +30,7 @@ LDFLAGS = $(shell xml2-config --libs) \ # -h for Solaris SONAME_LDFLAG ?= -soname # -R /usr/sfw/$(LIBDIR) -shared for Solaris -SHLIB_CFLAGS ?= -shared +SHLIB_LDFLAGS ?= -shared # ginstall for Solaris INSTALL = install @@ -54,7 +54,7 @@ libxenapi.so.$(MAJOR): libxenapi.so.$(MA ln -sf $< $@ libxenapi.so.$(MAJOR).$(MINOR): $(LIBXENAPI_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenapi.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenapi.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ libxenapi.a: $(LIBXENAPI_OBJS) $(AR) rcs libxenapi.a $^ --- xen-unstable.hg-4.1.21890.orig/tools/libxl/Makefile +++ xen-unstable.hg-4.1.21890/tools/libxl/Makefile @@ -15,7 +15,7 @@ CFLAGS += -Werror -Wno-format-zero-lengt CFLAGS += -I. -fPIC CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore) $(CFLAGS_libblktapctl) -LIBS = $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenguest) $(LDFLAGS_libxenstore) $(LDFLAGS_libblktapctl) $(UTIL_LIBS) +LIBS = $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(LDLIBS_libblktapctl) $(UTIL_LIBS) LIBXL_OBJS-y = osdeps.o libxl_paths.o libxl_bootloader.o LIBXL_OBJS = flexarray.o libxl.o libxl_pci.o libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o libxl_internal.o xenguest.o libxl_utils.o $(LIBXL_OBJS-y) @@ -59,7 +59,7 @@ libxenlight.so.$(MAJOR): libxenlight.so. ln -sf $< $@ libxenlight.so.$(MAJOR).$(MINOR): $(LIBXL_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ libxenlight.a: $(LIBXL_OBJS) $(AR) rcs libxenlight.a $^ @@ -71,7 +71,7 @@ libxlutil.so.$(XLUMAJOR): libxlutil.so.$ ln -sf $< $@ libxlutil.so.$(XLUMAJOR).$(XLUMINOR): $(LIBXLU_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxlutil.so.$(XLUMAJOR) $(SHLIB_CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxlutil.so.$(XLUMAJOR) $(SHLIB_LDFLAGS) -o $@ $^ libxlutil.a: $(LIBXLU_OBJS) $(AR) rcs libxlutil.a $^ --- xen-unstable.hg-4.1.21890.orig/tools/misc/Makefile +++ xen-unstable.hg-4.1.21890/tools/misc/Makefile @@ -52,7 +52,7 @@ clean: $(CC) -c $(CFLAGS) -o $@ $< xen-hvmctx xenperf xenpm gtracestat xenlockprof xen-hptool xenwatchdogd: %: %.o Makefile - $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenguest) $(LDFLAGS_libxenstore) + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) gtraceview: %: %.o Makefile $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) $(CURSES_LIBS) --- xen-unstable.hg-4.1.21890.orig/tools/security/Makefile +++ xen-unstable.hg-4.1.21890/tools/security/Makefile @@ -76,7 +76,7 @@ build: $(ACM_INST_TOOLS) $(ACM_NOINST_TO chmod 700 $(ACM_SCRIPTS) xensec_tool: $(OBJS_TOOL) - $(CC) -g $(CFLAGS) $(LDFLAGS) -O0 -o $@ $^ $(LDFLAGS_libxenctrl) + $(CC) -g $(CFLAGS) $(LDFLAGS) -O0 -o $@ $^ $(LDLIBS_libxenctrl) xensec_gen: xensec_gen.py cp -f $^ $@ --- xen-unstable.hg-4.1.21890.orig/tools/vnet/libxutil/Makefile +++ xen-unstable.hg-4.1.21890/tools/vnet/libxutil/Makefile @@ -52,7 +52,7 @@ libxutil.so.$(MAJOR): libxutil.so.$(MAJO ln -sf $^ $@ libxutil.so.$(MAJOR).$(MINOR): $(PIC_OBJS) - $(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxutil.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxutil.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ libxutil.a: $(LIB_OBJS) $(AR) rc $@ $^ --- xen-unstable.hg-4.1.21890.orig/tools/xcutils/Makefile +++ xen-unstable.hg-4.1.21890/tools/xcutils/Makefile @@ -16,7 +16,7 @@ CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_ PROGRAMS = xc_restore xc_save readnotes lsevtchn -LDLIBS = $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenguest) $(LDFLAGS_libxenstore) +LDLIBS = $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) .PHONY: all all: build --- xen-unstable.hg-4.1.21890.orig/tools/xenbackendd/Makefile +++ xen-unstable.hg-4.1.21890/tools/xenbackendd/Makefile @@ -15,7 +15,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -Werror CFLAGS += $(CFLAGS_libxenstore) CPPFLAGS += -DXEN_SCRIPT_DIR="\"$(XEN_SCRIPT_DIR)\"" -LDFLAGS += $(LDFLAGS_libxenstore) +LDLIBS += $(LDLIBS_libxenstore) SBIN = xenbackendd @@ -36,6 +36,6 @@ clean: %: %.c Makefile - $(CC) $(CFLAGS) $(CPPFLAGS) $< $(LDFLAGS) -o $@ + $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LDLIBS) -include $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/xenmon/Makefile +++ xen-unstable.hg-4.1.21890/tools/xenmon/Makefile @@ -16,7 +16,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -Werror CFLAGS += -I $(XEN_XC) CFLAGS += $(CFLAGS_libxenctrl) -LDFLAGS += $(LDFLAGS_libxenctrl) +LDLIBS += $(LDLIBS_libxenctrl) BIN = xentrace_setmask xenbaked SCRIPTS = xenmon.py @@ -42,8 +42,8 @@ clean: %: %.c Makefile - $(CC) $(CFLAGS) $< $(LDFLAGS) -o $@ + $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ $(LDLIBS) xentrace_%: %.c Makefile - $(CC) $(CFLAGS) $< $(LDFLAGS) -o $@ + $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ $(LDLIBS) -include $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/xenpaging/Makefile +++ xen-unstable.hg-4.1.21890/tools/xenpaging/Makefile @@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -I $(XEN_XC) CFLAGS += -I ./ CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenstore) -LDFLAGS += $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) +LDLIBS += $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) POLICY = default @@ -15,19 +15,16 @@ CFLAGS += -Werror CFLAGS += -Wno-unused CFLAGS += -g -#CFLAGS += -Wl,-rpath,.. CFLAGS += -Wp,-MD,.$(@F).d DEPS = .*.d -#LDFLAGS += $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenguest) - OBJS = $(SRCS:.c=.o) IBINS = xenpaging all: $(IBINS) xenpaging: $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) install: all $(INSTALL_DIR) $(DESTDIR)$(SBINDIR) --- xen-unstable.hg-4.1.21890.orig/tools/xenpmd/Makefile +++ xen-unstable.hg-4.1.21890/tools/xenpmd/Makefile @@ -3,7 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -Werror CFLAGS += $(CFLAGS_libxenstore) -LDFLAGS += $(LDFLAGS_libxenstore) +LDLIBS += $(LDLIBS_libxenstore) BIN = xenpmd @@ -20,6 +20,6 @@ clean: $(RM) -f $(BIN) $(DEPS) %: %.c Makefile - $(CC) $(CFLAGS) $< $(LDFLAGS) -o $@ + $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ $(LDLIBS) -include $(DEPS) --- xen-unstable.hg-4.1.21890.orig/tools/xenstat/libxenstat/Makefile +++ xen-unstable.hg-4.1.21890/tools/xenstat/libxenstat/Makefile @@ -53,7 +53,7 @@ $(LIB): $(OBJECTS-y) $(RANLIB) $@ $(SHLIB): $(OBJECTS-y) - $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_FLAGS) $(SHLIB_CFLAGS) -o $@ \ + $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_FLAGS) $(SHLIB_LDFLAGS) -o $@ \ $(OBJECTS-y) $(LDLIBS-y) src/xenstat.o: src/xenstat.c src/xenstat.h src/xenstat_priv.h @@ -112,7 +112,7 @@ $(PYSRC): bindings/swig/xenstat.i swig -python $(SWIG_FLAGS) -outdir $(@D) -o $(PYSRC) $< $(PYLIB): $(PYSRC) - $(CC) $(CFLAGS) $(LDFLAGS) $(PYTHON_FLAGS) $(SHLIB_CFLAGS) -lxenstat -o $@ $< + $(CC) $(CFLAGS) $(LDFLAGS) $(PYTHON_FLAGS) $(SHLIB_LDFLAGS) -lxenstat -o $@ $< python-bindings: $(PYLIB) $(PYMOD) @@ -134,7 +134,7 @@ $(PERLSRC): bindings/swig/xenstat.i swig -perl $(SWIG_FLAGS) -outdir $(@D) -o $(PERLSRC) $< $(PERLLIB): $(PERLSRC) - $(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) $(SHLIB_CFLAGS) -lxenstat -o $@ $< + $(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) $(SHLIB_LDFLAGS) -lxenstat -o $@ $< .PHONY: perl-bindings perl-bindings: $(PERLLIB) $(PERLMOD) --- xen-unstable.hg-4.1.21890.orig/tools/xenstore/Makefile +++ xen-unstable.hg-4.1.21890/tools/xenstore/Makefile @@ -47,7 +47,7 @@ CFLAGS += -DHAVE_DTRACE=1 endif xenstored: $(XENSTORED_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDFLAGS_libxenctrl) $(SOCKET_LIBS) -o $@ + $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS_libxenctrl) $(SOCKET_LIBS) -o $@ $(CLIENTS): xenstore ln -f xenstore $@ @@ -69,7 +69,7 @@ libxenstore.so.$(MAJOR): libxenstore.so. xs.opic: CFLAGS += -DUSE_PTHREAD libxenstore.so.$(MAJOR).$(MINOR): xs.opic xs_lib.opic - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenstore.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^ $(SOCKET_LIBS) -lpthread + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenstore.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ $(SOCKET_LIBS) -lpthread libxenstore.a: xs.o xs_lib.o $(AR) rcs $@ $^ --- xen-unstable.hg-4.1.21890.orig/tools/xentrace/Makefile +++ xen-unstable.hg-4.1.21890/tools/xentrace/Makefile @@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -Werror CFLAGS += $(CFLAGS_libxenctrl) -LDFLAGS += $(LDFLAGS_libxenctrl) +LDLIBS += $(LDLIBS_libxenctrl) HDRS = $(wildcard *.h) OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) @@ -50,9 +50,9 @@ clean: $(RM) *.a *.so *.o *.rpm $(BIN) $(LIBBIN) $(DEPS) %: %.c $(HDRS) Makefile - $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS) xentrace_%: %.c $(HDRS) Makefile - $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS) -include $(DEPS) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2010-Aug-11 13:44 UTC
Re: [Xen-devel] [PATCH] split LDLIBS from LDFLAGS to fix link errors in recent toolchains
Olaf Hering writes ("[Xen-devel] [PATCH] split LDLIBS from LDFLAGS to fix link errors in recent toolchains"):> Linker command lines are order-sensitive. > Move linker options -Lfoo -lfoo from LDFLAGS to LDLIBS and place this new > variable after the objects to link. This resolves build errors in xenpagin > and blktap with recent toolchains. > > rename SHLIB_CFLAGS to SHLIB_LDFLAGS > rename LDFLAGS_* to LDLIBS_* > move LDFLAGS usage after CFLAGS in CC calls > remove stale comments in xenpaging MakefileExcellent work, thank you. Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel