diff options
author | Diego Elio Pettenò <flameeyes@flameeyes.eu> | 2012-03-24 02:41:28 +0100 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@flameeyes.eu> | 2012-03-24 02:41:28 +0100 |
commit | 2abbf97edd22f289f33bd859ee1b529e6e4ef989 (patch) | |
tree | 4ba0920b0ee2381508e054cca4e02c30c702cd90 /src | |
parent | lxc-0.8.0-rc2 (diff) | |
download | lxc-2abbf97edd22f289f33bd859ee1b529e6e4ef989.tar.gz lxc-2abbf97edd22f289f33bd859ee1b529e6e4ef989.tar.bz2 lxc-2abbf97edd22f289f33bd859ee1b529e6e4ef989.zip |
build: use libtool for linking the library, and link lxc-init statically.
The shared object versioning on the library (soname) was completely wrong,
as the ABI doesn't seem to be guaranteed between one version and the other,
so proposing all of them as .so.0 is very wrong.
Furthermore you generally want lxc-init static so that you don't have to add
(or have a compatible version of) libcap and liblxc within a container you
want to use lxc-execute with.
To solve the issue, use the good old libtool to take care of the library
building, and pass -all-static to the lxc-init linking stage.
Also drop the manual rpath handling, and leave it to libtool to manage.
Diffstat (limited to 'src')
-rw-r--r-- | src/lxc/Makefile.am | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am index 3a3816e..4c72dc9 100644 --- a/src/lxc/Makefile.am +++ b/src/lxc/Makefile.am @@ -15,11 +15,9 @@ pkginclude_HEADERS = \ state.h \ attach.h -sodir=$(libdir) -# use PROGRAMS to avoid complains from automake -so_PROGRAMS = liblxc.so +lib_LTLIBRARIES = liblxc-@VERSION@.la -liblxc_so_SOURCES = \ +liblxc_@VERSION@_la_SOURCES = \ arguments.c arguments.h \ commands.c commands.h \ start.c start.h \ @@ -60,13 +58,10 @@ AM_CFLAGS=-I$(top_srcdir)/src \ -DLXCPATH=\"$(LXCPATH)\" \ -DLXCINITDIR=\"$(LXCINITDIR)\" -liblxc_so_CFLAGS = -fPIC -DPIC $(AM_CFLAGS) +liblxc_@VERSION@_la_LDFLAGS = \ + -avoid-version -liblxc_so_LDFLAGS = \ - -shared \ - -Wl,-soname,liblxc.so.$(firstword $(subst ., ,$(VERSION))) - -liblxc_so_LDADD = -lutil $(CAP_LIBS) +liblxc_@VERSION@_la_LIBADD = -lutil $(CAP_LIBS) bin_SCRIPTS = \ lxc-ps \ @@ -100,11 +95,7 @@ bin_PROGRAMS = \ pkglibexec_PROGRAMS = \ lxc-init -AM_LDFLAGS = -Wl,-E -if ENABLE_RPATH -AM_LDFLAGS += -Wl,-rpath -Wl,$(libdir) -endif -LDADD=liblxc.so @CAP_LIBS@ +LDADD=liblxc-@VERSION@.la lxc_attach_SOURCES = lxc_attach.c lxc_cgroup_SOURCES = lxc_cgroup.c @@ -114,6 +105,7 @@ lxc_execute_SOURCES = lxc_execute.c lxc_freeze_SOURCES = lxc_freeze.c lxc_info_SOURCES = lxc_info.c lxc_init_SOURCES = lxc_init.c +lxc_init_LDFLAGS = -all-static lxc_monitor_SOURCES = lxc_monitor.c lxc_restart_SOURCES = lxc_restart.c lxc_start_SOURCES = lxc_start.c @@ -123,15 +115,6 @@ lxc_unshare_SOURCES = lxc_unshare.c lxc_wait_SOURCES = lxc_wait.c lxc_kill_SOURCES = lxc_kill.c -install-exec-local: install-soPROGRAMS - mv $(DESTDIR)$(libdir)/liblxc.so $(DESTDIR)$(libdir)/liblxc.so.$(VERSION) - /sbin/ldconfig -l $(DESTDIR)$(libdir)/liblxc.so.$(VERSION) - cd $(DESTDIR)$(libdir); \ - ln -sf liblxc.so.$(firstword $(subst ., ,$(VERSION))) liblxc.so - -uninstall-local: - $(RM) $(DESTDIR)$(libdir)/liblxc.so* - namespace.c: setns.h setns.h: |