mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
binutils 2.22 changed ld default from --copy-dt-needed-entries to -no-copy-dt-needed-entries. This revealed that some objects are linked implicitly with libtinfo and newer ld fails to build relevant executables. Below is short explanation why we should not do that... http://fedoraproject.org/wiki/UnderstandingDSOLinkChange says: The default behaviour for ld (my note: before version 2.22) allows users to 'indirectly' link to required objects/libraries through intermediate objects/libraries. While this is convenient, it can also be dangerous because it makes your program's dependencies tied to the dependencies of other objects. If those objects ever change their linkages, they can break your program without any changes to your own code! Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> Acked-by: Wei Liu <wei.liu2@citrix.com>
109 lines
3.4 KiB
Makefile
109 lines
3.4 KiB
Makefile
XEN_ROOT=$(CURDIR)/../..
|
|
include $(XEN_ROOT)/tools/Rules.mk
|
|
|
|
CFLAGS += -Werror -I$(XEN_ROOT)/tools
|
|
CFLAGS += $(CFLAGS_libxenctrl)
|
|
CFLAGS += $(CFLAGS_xeninclude)
|
|
CFLAGS += $(CFLAGS_libxenstore)
|
|
|
|
# Everything to be installed in regular bin/
|
|
INSTALL_BIN-$(CONFIG_X86) += xen-detect
|
|
INSTALL_BIN += xencons
|
|
INSTALL_BIN += xencov_split
|
|
INSTALL_BIN += $(INSTALL_BIN-y)
|
|
|
|
# Everything to be installed in regular sbin/
|
|
INSTALL_SBIN += gtracestat
|
|
INSTALL_SBIN += gtraceview
|
|
INSTALL_SBIN += xen-bugtool
|
|
INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
|
|
INSTALL_SBIN-$(CONFIG_X86) += xen-hvmcrash
|
|
INSTALL_SBIN-$(CONFIG_X86) += xen-hvmctx
|
|
INSTALL_SBIN-$(CONFIG_X86) += xen-lowmemd
|
|
INSTALL_SBIN-$(CONFIG_X86) += xen-mfndump
|
|
INSTALL_SBIN += xen-ringwatch
|
|
INSTALL_SBIN += xen-tmem-list-parse
|
|
INSTALL_SBIN += xencov
|
|
INSTALL_SBIN += xenlockprof
|
|
INSTALL_SBIN += xenperf
|
|
INSTALL_SBIN += xenpm
|
|
INSTALL_SBIN += xenwatchdogd
|
|
INSTALL_SBIN += $(INSTALL_SBIN-y)
|
|
|
|
# Everything to be installed in a private bin/
|
|
INSTALL_PRIVBIN += xenpvnetboot
|
|
|
|
# Everything to be installed
|
|
TARGETS_ALL := $(INSTALL_BIN) $(INSTALL_SBIN) $(INSTALL_PRIVBIN)
|
|
|
|
# Everything which only needs copying to install
|
|
TARGETS_COPY += xen-bugtool
|
|
TARGETS_COPY += xen-ringwatch
|
|
TARGETS_COPY += xencons
|
|
TARGETS_COPY += xencov_split
|
|
TARGETS_COPY += xenpvnetboot
|
|
|
|
# Everything which needs to be built
|
|
TARGETS_BUILD := $(filter-out $(TARGETS_COPY),$(TARGETS_ALL))
|
|
|
|
.PHONY: all build
|
|
all build: $(TARGETS_BUILD)
|
|
|
|
.PHONY: install
|
|
install: build
|
|
$(INSTALL_DIR) $(DESTDIR)$(bindir)
|
|
$(INSTALL_DIR) $(DESTDIR)$(sbindir)
|
|
$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
|
|
$(INSTALL_PYTHON_PROG) $(INSTALL_BIN) $(DESTDIR)$(bindir)
|
|
$(INSTALL_PYTHON_PROG) $(INSTALL_SBIN) $(DESTDIR)$(sbindir)
|
|
$(INSTALL_PYTHON_PROG) $(INSTALL_PRIVBIN) $(DESTDIR)$(LIBEXEC_BIN)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(RM) *.o $(TARGETS_BUILD) *~ $(DEPS)
|
|
|
|
.PHONY: distclean
|
|
distclean: clean
|
|
|
|
xen-hvmctx: xen-hvmctx.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
xen-hvmcrash: xen-hvmcrash.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
xenperf: xenperf.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
xenpm: xenpm.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
gtracestat: gtracestat.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(APPEND_LDFLAGS)
|
|
|
|
xenlockprof: xenlockprof.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
# xen-hptool incorrectly uses libxc internals
|
|
xen-hptool.o: CFLAGS += -I$(XEN_ROOT)/tools/libxc
|
|
xen-hptool: xen-hptool.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
|
|
|
|
# xen-mfndump incorrectly uses libxc internals
|
|
xen-mfndump.o: CFLAGS += -I$(XEN_ROOT)/tools/libxc
|
|
xen-mfndump: xen-mfndump.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
|
|
|
|
xenwatchdogd: xenwatchdogd.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
xen-lowmemd: xen-lowmemd.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
|
|
|
|
gtraceview: gtraceview.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(CURSES_LIBS) $(TINFO_LIBS) $(APPEND_LDFLAGS)
|
|
|
|
xencov: xencov.o
|
|
$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
|
|
|
|
-include $(DEPS)
|