Go to file
Patrick Steinhardt ca07a2ad46 libselinux: avoid redefining _FORTIFY_SOURCE
Two makefiles of ours pass `-D_FORTIFY_SOURCE=2` directly to the
preprocessor. While this does not pose any problems when the value has
not been previously set, it can break the build if it is part of the
standard build flags.

The issue can easily be fixed by instead defining `_FORTIFY_SOURCE`
without specifying a concrete value. In this case, gcc will not error
out and simply keep using the previously defined value. On the other
hand, if no value has been defined, we will now compile with
`_FORTIFY_SOURCE=1`. From feature_test_macros(7):

    If _FORTIFY_SOURCE is set to 1, with compiler optimization level 1
    (gcc -O1) and above, checks that shouldn't change the behavior of
    conforming programs are performed.  With _FORTIFY_SOURCE set to 2,
    some more checking is added, but some conforming programs might
    fail.

While this leaves us with less checks for buffer overflows, it will only
enable checks that should not change behaviour of conforming programs.
With _FORTIFY_SOURCE=2, the compiler may even unintentionally change
behaviour of conforming programs. So in fact, one could even argue that
we should only be setting the value to 1 anyway to avoid surprising side
effects.

So this patch changes our CFLAGS to only pass `-D_FORTIFY_SOURCE`
without any concrete value, fixing the build issue.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
2017-06-22 16:44:07 -04:00
checkpolicy Fix BINDIR/SBINDIR/... variables in Makefiles 2017-06-20 12:18:26 -04:00
dbus Update VERSION files for 2.7-rc2 release. 2017-06-16 12:50:03 -04:00
gui gui: do not create /etc 2017-06-21 10:31:36 -04:00
libselinux libselinux: avoid redefining _FORTIFY_SOURCE 2017-06-22 16:44:07 -04:00
libsemanage libsemanage/tests: fix linking 2017-06-21 10:31:36 -04:00
libsepol Makefiles: override *FLAGS and *LIBS 2017-06-20 12:15:04 -04:00
mcstrans Fix BINDIR/SBINDIR/... variables in Makefiles 2017-06-20 12:18:26 -04:00
policycoreutils Fix BINDIR/SBINDIR/... variables in Makefiles 2017-06-20 12:18:26 -04:00
python python/sepolicy: remove definition of SYSCONFDIR 2017-06-21 10:31:36 -04:00
restorecond Makefiles: override *FLAGS and *LIBS 2017-06-20 12:15:04 -04:00
sandbox Makefiles: override *FLAGS and *LIBS 2017-06-20 12:15:04 -04:00
scripts Fix release script 2016-11-16 11:19:51 -05:00
secilc Makefiles: override *FLAGS and *LIBS 2017-06-20 12:15:04 -04:00
semodule-utils Makefiles: override *FLAGS and *LIBS 2017-06-20 12:15:04 -04:00
.gitignore restorecond: Add gitignore 2016-11-16 11:20:05 -05:00
.travis.yml libsemanage/tests: include libsepol headers from $DESTDIR 2017-03-01 10:42:34 -05:00
CleanSpec.mk Add empty top level Android.mk / CleanSpec.mk files 2015-04-16 07:54:09 -04:00
Makefile Add includes for DESTDIR only in root Makefile 2017-04-25 08:31:10 -04:00
README libsepol compilation fixes for macOS. 2017-01-20 13:19:57 -05:00

README

Please submit all bug reports and patches to selinux@tycho.nsa.gov.
Subscribe via selinux-join@tycho.nsa.gov.

Build dependencies on Fedora:
yum install audit-libs-devel bison bzip2-devel dbus-devel dbus-glib-devel flex flex-devel flex-static glib2-devel libcap-devel libcap-ng-devel pam-devel pcre-devel python-devel setools-devel swig xmlto redhat-rpm-config

To build and install everything under a private directory, run:
make DESTDIR=~/obj install install-pywrap

To install as the default system libraries and binaries
(overwriting any previously installed ones - dangerous!),
on x86_64, run:
make LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install install-pywrap relabel
or on x86 (32-bit), run:
make install install-pywrap relabel

This may render your system unusable if the upstream SELinux userspace
lacks library functions or other dependencies relied upon by your
distribution.  If it breaks, you get to keep both pieces.

To install libsepol on macOS (mainly for policy analysis):
cd libsepol; make DESTDIR=/usr/local PREFIX=/usr/local install

This requires GNU coreutils (brew install coreutils).