# HG changeset patch
# User john.levon@sun.com
# Date 1161090130 25200
# Node ID afeef751f9dafa771726bcfb00b29a10b0baeabd
# Parent 7147e57f18552bbb8d25155cc1c635315283ee31
On Solaris, GCC is configured to use Sun''s LD. Fix the build to use the
correct
flags, and link against libsocket where necessary.
Signed-off-by: John Levon <john.levon@sun.com>
diff --git a/config/Linux.mk b/config/Linux.mk
--- a/config/Linux.mk
+++ b/config/Linux.mk
@@ -20,6 +20,10 @@ INSTALL_PROG = $(INSTALL) -m0755
LIB64DIR=lib64
+SOCKET_LIBS +SONAME_LDFLAG = -Wl,-soname
+SHLIB_FLAGS = -shared
+
ifneq ($(debug),y)
# Optimisation flags are overridable
CFLAGS ?= -O2 -fomit-frame-pointer
diff --git a/config/SunOS.mk b/config/SunOS.mk
--- a/config/SunOS.mk
+++ b/config/SunOS.mk
@@ -20,6 +20,10 @@ INSTALL_PROG = $(INSTALL) -m0755
LIB64DIR=lib/amd64
+SOCKET_LIBS = -lsocket
+SONAME_LDFLAG = -Wl,-h
+SHLIB_FLAGS = -static-libgcc -shared
+
ifneq ($(debug),y)
# Optimisation flags are overridable
CFLAGS ?= -O2 -fno-omit-frame-pointer
diff --git a/tools/blktap/lib/Makefile b/tools/blktap/lib/Makefile
--- a/tools/blktap/lib/Makefile
+++ b/tools/blktap/lib/Makefile
@@ -52,7 +52,7 @@ clean:
rm -rf *.a *.so* *.o *.rpm $(LIB) *~ $(DEPS) xen TAGS
libblktap.a: $(OBJS)
- $(CC) $(CFLAGS) -Wl,-soname -Wl,$(SONAME) -shared \
+ $(CC) $(CFLAGS) $(SONAME_LDFLAG) -Wl,$(SONAME) $(SHLIB_FLAGS) \
-L$(XEN_XENSTORE) -l xenstore \
-o libblktap.so.$(MAJOR).$(MINOR) $^ $(LIBS)
ln -sf libblktap.so.$(MAJOR).$(MINOR) libblktap.so.$(MAJOR)
diff --git a/tools/console/Makefile b/tools/console/Makefile
--- a/tools/console/Makefile
+++ b/tools/console/Makefile
@@ -22,11 +22,11 @@ clean:
xenconsoled: $(patsubst %.c,%.o,$(wildcard daemon/*.c))
$(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -L$(XEN_XENSTORE) \
- -lxenctrl -lxenstore
+ $(SOCKET_LIBS) -lxenctrl -lxenstore
xenconsole: $(patsubst %.c,%.o,$(wildcard client/*.c))
$(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -L$(XEN_XENSTORE) \
- -lxenctrl -lxenstore
+ $(SOCKET_LIBS) -lxenctrl -lxenstore
.PHONY: install
install: $(BIN)
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -117,7 +117,7 @@ libxenctrl.so.$(MAJOR): libxenctrl.so.$(
ln -sf $< $@
libxenctrl.so.$(MAJOR).$(MINOR): $(CTRL_PIC_OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenctrl.so.$(MAJOR) -shared -o
$@ $^
+ $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_LDFLAG) -Wl,libxenctrl.so.$(MAJOR)
$(SHLIB_FLAGS) -o $@ $^
# libxenguest
@@ -130,7 +130,7 @@ libxenguest.so.$(MAJOR): libxenguest.so.
ln -sf $< $@
libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so
- $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenguest.so.$(MAJOR) -shared -o
$@ $^ -lz -lxenctrl
+ $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR)
$(SHLIB_FLAGS) -o $@ $^ -lz -lxenctrl
-include $(DEPS)
diff --git a/tools/vnet/libxutil/Makefile b/tools/vnet/libxutil/Makefile
--- a/tools/vnet/libxutil/Makefile
+++ b/tools/vnet/libxutil/Makefile
@@ -55,7 +55,7 @@ libxutil.so.$(MAJOR): libxutil.so.$(MAJO
ln -sf $^ $@
libxutil.so.$(MAJOR).$(MINOR): $(PIC_OBJS)
- $(CC) $(CFLAGS) -Wl,-soname -Wl,libxutil.so.$(MAJOR) -shared -o $@ $^
+ $(CC) $(CFLAGS) $(SONAME_LDFLAG) -Wl,libxutil.so.$(MAJOR) $(SHLIB_FLAGS) -o $@
$^
libxutil.a: $(LIB_OBJS)
$(AR) rc $@ $^
diff --git a/tools/xenstat/libxenstat/Makefile
b/tools/xenstat/libxenstat/Makefile
--- a/tools/xenstat/libxenstat/Makefile
+++ b/tools/xenstat/libxenstat/Makefile
@@ -30,7 +30,7 @@ SHLIB=src/libxenstat.so.$(MAJOR).$(MINOR
SHLIB=src/libxenstat.so.$(MAJOR).$(MINOR)
SHLIB_LINKS=src/libxenstat.so.$(MAJOR) src/libxenstat.so
OBJECTS=src/xenstat.o
-SONAME_FLAGS=-Wl,-soname -Wl,libxenstat.so.$(MAJOR)
+SONAME_FLAGS=$(SONAME_LDFLAG) -Wl,libxenstat.so.$(MAJOR)
WARN_FLAGS=-Wall -Werror
@@ -45,7 +45,7 @@ all: $(LIB)
$(RANLIB) $@
$(SHLIB): $(OBJECTS)
- $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_FLAGS) -shared -o $@ $(OBJECTS) \
+ $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_FLAGS) $(SHLIB_FLAGS) -o $@ $(OBJECTS) \
-lxenstore -lxenctrl
src/xenstat.o: src/xenstat.c src/xenstat.h
@@ -97,7 +97,7 @@ PYTHON_FLAGS=-I/usr/include/python$(PYTH
swig -python $(SWIG_FLAGS) -outdir $(@D) -o $(PYSRC) $<
$(PYLIB): $(PYSRC)
- $(CC) $(CFLAGS) $(LDFLAGS) $(PYTHON_FLAGS) -shared -lxenstat -o $@ $<
+ $(CC) $(CFLAGS) $(LDFLAGS) $(PYTHON_FLAGS) $(SHLIB_FLAGS) -lxenstat -o $@
$<
python-bindings: $(PYLIB) $(PYMOD)
@@ -118,7 +118,7 @@ PERL_FLAGS=`perl -MConfig -e ''print "$$C
swig -perl $(SWIG_FLAGS) -outdir $(@D) -o $(PERLSRC) $<
$(PERLLIB): $(PERLSRC)
- $(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) -shared -lxenstat -o $@ $<
+ $(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) $(SHLIB_FLAGS) -lxenstat -o $@ $<
.PHONY: perl-bindings
perl-bindings: $(PERLLIB) $(PERLMOD)
diff --git a/tools/xenstat/xentop/Makefile b/tools/xenstat/xentop/Makefile
--- a/tools/xenstat/xentop/Makefile
+++ b/tools/xenstat/xentop/Makefile
@@ -25,7 +25,7 @@ sbindir=$(prefix)/sbin
CFLAGS += -DGCC_PRINTF -Wall -Werror -I$(XEN_LIBXENSTAT)
LDFLAGS += -L$(XEN_LIBXENSTAT)
-LDLIBS += -lxenstat -lncurses
+LDLIBS += -lxenstat -lncurses $(SOCKET_LIBS)
.PHONY: all
all: xentop
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -41,19 +41,19 @@ testcode: xs_test xenstored_test xs_rand
testcode: xs_test xenstored_test xs_random
xenstored: $(XENSTORED_OBJS)
- $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -lxenctrl -o $@
+ $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -lxenctrl $(SOCKET_LIBS) -o $@
$(CLIENTS): xenstore-%: xenstore_%.o libxenstore.so
- $(LINK.o) $< $(LOADLIBES) $(LDLIBS) -L. -lxenstore -o $@
+ $(LINK.o) $< $(LOADLIBES) $(LDLIBS) -L. -lxenstore $(SOCKET_LIBS) -o $@
$(CLIENTS_OBJS): xenstore_%.o: xenstore_client.c
$(COMPILE.c) -DCLIENT_$(*F) -o $@ $<
xenstore-control: xenstore_control.o libxenstore.so
- $(LINK.o) $< $(LOADLIBES) $(LDLIBS) -L. -lxenstore -o $@
+ $(LINK.o) $< $(LOADLIBES) $(LDLIBS) -L. -lxenstore $(SOCKET_LIBS) -o $@
xenstore-ls: xsls.o libxenstore.so
- $(LINK.o) $< $(LOADLIBES) $(LDLIBS) -L. -lxenstore -o $@
+ $(LINK.o) $< $(LOADLIBES) $(LDLIBS) -L. -lxenstore $(SOCKET_LIBS) -o $@
xenstored_test: xenstored_core_test.o xenstored_watch_test.o
xenstored_domain_test.o xenstored_transaction_test.o xs_lib.o talloc_test.o
fake_libxc.o utils.o tdb.o
$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
@@ -90,7 +90,7 @@ libxenstore.so.$(MAJOR): libxenstore.so.
ln -sf $< $@
libxenstore.so.$(MAJOR).$(MINOR): xs.opic xs_lib.opic
- $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenstore.so.$(MAJOR) -shared -o
$@ $^ -lpthread
+ $(CC) $(CFLAGS) $(LDFLAGS) $(SONAME_LDFLAG) -Wl,libxenstore.so.$(MAJOR)
$(SHLIB_FLAGS) -o $@ $^ -lpthread
libxenstore.a: xs.o xs_lib.o
$(AR) rcs libxenstore.a $^
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel