[PATCH]: do not link static libraries from the system library directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Do not ever link GIT development sources against static SELinux libraries that
are eventually already installed in the system library directory (LIBDIR), but
instead source the "fresh" local versions from the GIT development tree itself.

This patch prevents build errors when SELinux is not already installed on a
system or even worse it prevents linking against previous (obsolete, buggy or even
insecure) versions of the libraries that might be found on the standard system
library directory as defined by the Makefile variable LIBDIR.

It is intended only for the GIT development tree, therefore it should not be
applied to the individually released libraries or userspace tools, as it would
break their build (however, if released components are generated more or less
directly from the GIT development tree, it shouldn't be too difficult or time
consuming to process their Makefiles upon creation by using some sort of sed
script to revert linking from LIBDIR instead of relative local GIT tree library
subdirectories).

Please note that similar problems do arise for the header files and the shared
libraries when building the GIT tree, although these problems can be avoided by
passing the appropriate compiler/linker options in CPPFLAGS, CFLAGS and LDFLAGS
to make so that the local headers and shared libraries files are used when
compiling/linking.

Signed-off-by: Guido Trentalancia <guido@xxxxxxxxxxxxxxxx>

---
 checkpolicy/Makefile                    |    2 +-
 checkpolicy/test/Makefile               |    2 +-
 libselinux/src/Makefile                 |    2 +-
 policycoreutils/mcstrans/src/Makefile   |    2 +-
 policycoreutils/mcstrans/utils/Makefile |    2 +-
 policycoreutils/semodule_deps/Makefile  |    2 +-
 policycoreutils/sepolgen-ifgen/Makefile |    2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff -pru selinux-04062012-original/checkpolicy/Makefile selinux-04062012/checkpolicy/Makefile
--- selinux-04062012-original/checkpolicy/Makefile	2011-09-09 20:12:55.978662153 +0200
+++ selinux-04062012/checkpolicy/Makefile	2012-06-04 14:04:44.954580741 +0200
@@ -19,7 +19,7 @@ CHECKOBJS = y.tab.o lex.yy.o queue.o mod
 CHECKPOLOBJS = $(CHECKOBJS) checkpolicy.o
 CHECKMODOBJS = $(CHECKOBJS) checkmodule.o
 
-LDLIBS=$(LIBDIR)/libsepol.a -lfl
+LDLIBS=../libsepol/src/libsepol.a -lfl
 
 GENERATED=lex.yy.c y.tab.c y.tab.h
 
diff -pru selinux-04062012-original/checkpolicy/test/Makefile selinux-04062012/checkpolicy/test/Makefile
--- selinux-04062012-original/checkpolicy/test/Makefile	2012-03-23 17:00:49.273045007 +0100
+++ selinux-04062012/checkpolicy/test/Makefile	2012-06-04 14:01:39.788487811 +0200
@@ -9,7 +9,7 @@ INCLUDEDIR ?= $(PREFIX)/include
 CFLAGS ?= -g -Wall -W -Werror -O2 -pipe
 override CFLAGS += -I$(INCLUDEDIR)
 
-LDLIBS=-lfl -lselinux $(LIBDIR)/libsepol.a -L$(LIBDIR)
+LDLIBS=-lfl -lselinux ../../libsepol/src/libsepol.a -L$(LIBDIR)
 
 all: dispol dismod
 
diff -pru selinux-04062012-original/libselinux/src/Makefile selinux-04062012/libselinux/src/Makefile
--- selinux-04062012-original/libselinux/src/Makefile	2012-05-29 21:12:20.635265972 +0200
+++ selinux-04062012/libselinux/src/Makefile	2012-06-04 14:02:48.398135397 +0200
@@ -122,7 +122,7 @@ $(AUDIT2WHYLOBJ): audit2why.c
 	$(CC) $(filter-out -Werror, $(CFLAGS)) $(PYINC) -fPIC -DSHARED -c -o $@ $<
 
 $(AUDIT2WHYSO): $(AUDIT2WHYLOBJ)
-	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux $(LIBDIR)/libsepol.a -L$(LIBDIR) -Wl,-soname,$@
+	$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux ../../libsepol/src/libsepol.a -L$(LIBDIR) -Wl,-soname,$@
 
 %.o:  %.c policy.h
 	$(CC) $(CFLAGS) $(TLSFLAGS) -c -o $@ $<
diff -pru selinux-04062012-original/policycoreutils/mcstrans/src/Makefile selinux-04062012/policycoreutils/mcstrans/src/Makefile
--- selinux-04062012-original/policycoreutils/mcstrans/src/Makefile	2011-09-09 20:12:56.040662607 +0200
+++ selinux-04062012/policycoreutils/mcstrans/src/Makefile	2012-06-04 14:06:54.356297716 +0200
@@ -28,7 +28,7 @@ override CFLAGS += -I../include -D_GNU_S
 all: $(PROG)
 
 $(PROG): $(PROG_OBJS)
-	$(CC) $(LDFLAGS) -pie -o $@ $^ -lselinux -lcap -lpcre $(LIBDIR)/libsepol.a
+	$(CC) $(LDFLAGS) -pie -o $@ $^ -lselinux -lcap -lpcre ../../../libsepol/src/libsepol.a
 
 %.o:  %.c 
 	$(CC) $(CFLAGS) -fPIE -c -o $@ $<
diff -pru selinux-04062012-original/policycoreutils/mcstrans/utils/Makefile selinux-04062012/policycoreutils/mcstrans/utils/Makefile
--- selinux-04062012-original/policycoreutils/mcstrans/utils/Makefile	2011-09-09 20:12:56.041662614 +0200
+++ selinux-04062012/policycoreutils/mcstrans/utils/Makefile	2012-06-04 14:06:45.590585065 +0200
@@ -21,7 +21,7 @@ endif
 
 CFLAGS ?= -Wall
 override CFLAGS += -I../src -D_GNU_SOURCE
-LDLIBS += -L../src ../src/mcstrans.o ../src/mls_level.o -lselinux -lpcre $(LIBDIR)/libsepol.a
+LDLIBS += -L../src ../src/mcstrans.o ../src/mls_level.o -lselinux -lpcre ../../../libsepol/src/libsepol.a
 
 TARGETS=$(patsubst %.c,%,$(wildcard *.c))
 
diff -pru selinux-04062012-original/policycoreutils/semodule_deps/Makefile selinux-04062012/policycoreutils/semodule_deps/Makefile
--- selinux-04062012-original/policycoreutils/semodule_deps/Makefile	2011-11-15 00:32:56.867740958 +0100
+++ selinux-04062012/policycoreutils/semodule_deps/Makefile	2012-06-04 14:06:38.284818580 +0200
@@ -7,7 +7,7 @@ MANDIR ?= $(PREFIX)/share/man
 
 CFLAGS ?= -Werror -Wall -W
 override CFLAGS += -I$(INCLUDEDIR)
-LDLIBS = $(LIBDIR)/libsepol.a
+LDLIBS = ../../libsepol/src/libsepol.a
 
 all: semodule_deps
 
diff -pru selinux-04062012-original/policycoreutils/sepolgen-ifgen/Makefile selinux-04062012/policycoreutils/sepolgen-ifgen/Makefile
--- selinux-04062012-original/policycoreutils/sepolgen-ifgen/Makefile	2011-11-15 00:32:56.878741037 +0100
+++ selinux-04062012/policycoreutils/sepolgen-ifgen/Makefile	2012-06-04 14:08:14.580334340 +0200
@@ -6,7 +6,7 @@ INCLUDEDIR ?= $(PREFIX)/include
 
 CFLAGS ?= -Werror -Wall -W
 override CFLAGS += -I$(INCLUDEDIR)
-LDLIBS = $(LIBDIR)/libsepol.a
+LDLIBS = ../../libsepol/src/libsepol.a
 
 all: sepolgen-ifgen-attr-helper
  


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.


[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux