Re: [PATCH 6/8] libselinux: support ANDROID_HOST=1 on Mac

2016-10-18 Thread William Roberts
On Oct 18, 2016 08:41, "Stephen Smalley"  wrote:
>
> On 10/17/2016 04:24 PM, william.c.robe...@intel.com wrote:
> > From: William Roberts 
> >
> > To build on mac, first build libsepol with
> > DISABLE_CIL=y and no DESTDIR set.
>
> DISABLE_CIL=y isn't required after the earlier patches, right?

Correct libsepol builds, I forgot to edit the commit message. I'm flying,
so if that's your only issue could you please rewrite the message?

>
> >
> > Secondly, build libselinux with ANDROID_HOST=y
> >
> > This configuration can be used to test the Android
> > host build on Mac.
> >
> > Signed-off-by: William Roberts 
> > ---
> >  libselinux/Makefile   | 10 ++
> >  libselinux/src/Makefile   | 36 ++--
> >  libselinux/utils/Makefile | 29 +
> >  3 files changed, 57 insertions(+), 18 deletions(-)
> >
> > diff --git a/libselinux/Makefile b/libselinux/Makefile
> > index baa0db3..ef971f4 100644
> > --- a/libselinux/Makefile
> > +++ b/libselinux/Makefile
> > @@ -27,6 +27,16 @@ else
> >  endif
> >  export PCRE_CFLAGS PCRE_LDFLAGS
> >
> > +OS := $(shell uname)
> > +export OS
> > +
> > +ifeq ($(shell $(CC) -v 2>&1 | grep "clang"),)
> > +COMPILER := gcc
> > +else
> > +COMPILER := clang
> > +endif
> > +export COMPILER
> > +
> >  all install relabel clean distclean indent:
> >   @for subdir in $(SUBDIRS); do \
> >   (cd $$subdir && $(MAKE) $@) || exit 1; \
> > diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
> > index 13501cd..7a1ae05 100644
> > --- a/libselinux/src/Makefile
> > +++ b/libselinux/src/Makefile
> > @@ -48,23 +48,39 @@ OBJS= $(patsubst %.c,%.o,$(SRCS))
> >  LOBJS= $(patsubst %.c,%.lo,$(SRCS))
> >  CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security
-Winit-self -Wmissing-include-dirs \
> >-Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow
-Wpointer-arith \
> > -  -Wbad-function-cast -Wcast-align -Wwrite-strings
-Wlogical-op -Waggregate-return \
> > +  -Wbad-function-cast -Wcast-align -Wwrite-strings
-Waggregate-return \
> >-Wstrict-prototypes -Wold-style-definition
-Wmissing-prototypes \
> >-Wmissing-declarations -Wmissing-noreturn
-Wmissing-format-attribute \
> >-Wredundant-decls -Wnested-externs -Winline -Winvalid-pch
-Wvolatile-register-var \
> > -  -Wdisabled-optimization -Wbuiltin-macro-redefined
-Wpacked-bitfield-compat \
> > -  -Wsync-nand -Wattributes -Wcoverage-mismatch -Wmultichar
-Wcpp \
> > +  -Wdisabled-optimization -Wbuiltin-macro-redefined \
> > +  -Wattributes -Wmultichar \
> >-Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion
-Wendif-labels -Wextra \
> > -  -Wformat-contains-nul -Wformat-extra-args
-Wformat-zero-length -Wformat=2 -Wmultichar \
> > -  -Wnormalized=nfc -Woverflow -Wpointer-to-int-cast -Wpragmas
-Wsuggest-attribute=const \
> > -  -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure
-Wtrampolines \
> > -  -Wno-missing-field-initializers -Wno-sign-compare
-Wjump-misses-init \
> > -  -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE)
-Wp,-D_FORTIFY_SOURCE=2 \
> > +  -Wformat-extra-args -Wformat-zero-length -Wformat=2
-Wmultichar \
> > +  -Woverflow -Wpointer-to-int-cast -Wpragmas \
> > +  -Wno-missing-field-initializers -Wno-sign-compare \
> > +  -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE)
\
> >-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions
\
> >-fasynchronous-unwind-tables -fdiagnostics-show-option
-funit-at-a-time \
> > -  -fipa-pure-const -Wno-suggest-attribute=pure
-Wno-suggest-attribute=const \
> >-Werror -Wno-aggregate-return -Wno-redundant-decls
> >
> > +LD_SONAME_FLAGS=-soname,$(LIBSO),-z,defs,-z,relro
> > +
> > +ifeq ($(COMPILER), gcc)
> > +override CFLAGS += -fipa-pure-const -Wlogical-op
-Wpacked-bitfield-compat -Wsync-nand \
> > + -Wcoverage-mismatch -Wcpp -Wformat-contains-nul -Wnormalized=nfc
-Wsuggest-attribute=const \
> > + -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure
-Wtrampolines -Wjump-misses-init \
> > + -Wno-suggest-attribute=pure -Wno-suggest-attribute=const
-Wp,-D_FORTIFY_SOURCE=2
> > +else
> > +override CFLAGS += -Wunused-command-line-argument
> > +override LDFLAGS += -L/opt/local/lib -undefined dynamic_lookup
> > +LD_SONAME_FLAGS=-install_name,$(LIBSO)
> > +endif
> > +
> > +ifeq ($(OS), Darwin)
> > +override CFLAGS += -I/opt/local/include
> > +override LDFLAGS += -L/opt/local/lib -undefined dynamic_lookup
> > +endif
> > +
> >  PCRE_LDFLAGS ?= -lpcre
> >
> >  override CFLAGS += -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE
$(DISABLE_FLAGS) $(PCRE_CFLAGS)
> > @@ -117,7 +133,7 @@ $(LIBA): $(OBJS)
> >   $(RANLIB) $@
> >
> >  $(LIBSO): $(LOBJS)
> > - $(CC) $(CFLAGS) -shared -o $@ $^ $(PCRE_LDFLAGS) -ldl $(LDFLAGS)
-L$(LIBDIR) -Wl,-soname,$(LIBSO),-z,defs,-z,relro
>

Re: [PATCH 6/8] libselinux: support ANDROID_HOST=1 on Mac

2016-10-18 Thread Stephen Smalley
On 10/17/2016 04:24 PM, william.c.robe...@intel.com wrote:
> From: William Roberts 
> 
> To build on mac, first build libsepol with
> DISABLE_CIL=y and no DESTDIR set.

DISABLE_CIL=y isn't required after the earlier patches, right?

> 
> Secondly, build libselinux with ANDROID_HOST=y
> 
> This configuration can be used to test the Android
> host build on Mac.
> 
> Signed-off-by: William Roberts 
> ---
>  libselinux/Makefile   | 10 ++
>  libselinux/src/Makefile   | 36 ++--
>  libselinux/utils/Makefile | 29 +
>  3 files changed, 57 insertions(+), 18 deletions(-)
> 
> diff --git a/libselinux/Makefile b/libselinux/Makefile
> index baa0db3..ef971f4 100644
> --- a/libselinux/Makefile
> +++ b/libselinux/Makefile
> @@ -27,6 +27,16 @@ else
>  endif
>  export PCRE_CFLAGS PCRE_LDFLAGS
>  
> +OS := $(shell uname)
> +export OS
> +
> +ifeq ($(shell $(CC) -v 2>&1 | grep "clang"),)
> +COMPILER := gcc
> +else
> +COMPILER := clang
> +endif
> +export COMPILER
> +
>  all install relabel clean distclean indent:
>   @for subdir in $(SUBDIRS); do \
>   (cd $$subdir && $(MAKE) $@) || exit 1; \
> diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
> index 13501cd..7a1ae05 100644
> --- a/libselinux/src/Makefile
> +++ b/libselinux/src/Makefile
> @@ -48,23 +48,39 @@ OBJS= $(patsubst %.c,%.o,$(SRCS))
>  LOBJS= $(patsubst %.c,%.lo,$(SRCS))
>  CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self 
> -Wmissing-include-dirs \
>-Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow 
> -Wpointer-arith \
> -  -Wbad-function-cast -Wcast-align -Wwrite-strings -Wlogical-op 
> -Waggregate-return \
> +  -Wbad-function-cast -Wcast-align -Wwrite-strings 
> -Waggregate-return \
>-Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes \
>-Wmissing-declarations -Wmissing-noreturn 
> -Wmissing-format-attribute \
>-Wredundant-decls -Wnested-externs -Winline -Winvalid-pch 
> -Wvolatile-register-var \
> -  -Wdisabled-optimization -Wbuiltin-macro-redefined 
> -Wpacked-bitfield-compat \
> -  -Wsync-nand -Wattributes -Wcoverage-mismatch -Wmultichar -Wcpp \
> +  -Wdisabled-optimization -Wbuiltin-macro-redefined \
> +  -Wattributes -Wmultichar \
>-Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion 
> -Wendif-labels -Wextra \
> -  -Wformat-contains-nul -Wformat-extra-args -Wformat-zero-length 
> -Wformat=2 -Wmultichar \
> -  -Wnormalized=nfc -Woverflow -Wpointer-to-int-cast -Wpragmas 
> -Wsuggest-attribute=const \
> -  -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure 
> -Wtrampolines \
> -  -Wno-missing-field-initializers -Wno-sign-compare 
> -Wjump-misses-init \
> -  -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) 
> -Wp,-D_FORTIFY_SOURCE=2 \
> +  -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar \
> +  -Woverflow -Wpointer-to-int-cast -Wpragmas \
> +  -Wno-missing-field-initializers -Wno-sign-compare \
> +  -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \
>-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
>-fasynchronous-unwind-tables -fdiagnostics-show-option 
> -funit-at-a-time \
> -  -fipa-pure-const -Wno-suggest-attribute=pure 
> -Wno-suggest-attribute=const \
>-Werror -Wno-aggregate-return -Wno-redundant-decls
>  
> +LD_SONAME_FLAGS=-soname,$(LIBSO),-z,defs,-z,relro
> +
> +ifeq ($(COMPILER), gcc)
> +override CFLAGS += -fipa-pure-const -Wlogical-op -Wpacked-bitfield-compat 
> -Wsync-nand \
> + -Wcoverage-mismatch -Wcpp -Wformat-contains-nul -Wnormalized=nfc 
> -Wsuggest-attribute=const \
> + -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines 
> -Wjump-misses-init \
> + -Wno-suggest-attribute=pure -Wno-suggest-attribute=const 
> -Wp,-D_FORTIFY_SOURCE=2
> +else
> +override CFLAGS += -Wunused-command-line-argument
> +override LDFLAGS += -L/opt/local/lib -undefined dynamic_lookup
> +LD_SONAME_FLAGS=-install_name,$(LIBSO)
> +endif
> +
> +ifeq ($(OS), Darwin)
> +override CFLAGS += -I/opt/local/include
> +override LDFLAGS += -L/opt/local/lib -undefined dynamic_lookup
> +endif
> +
>  PCRE_LDFLAGS ?= -lpcre
>  
>  override CFLAGS += -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE 
> $(DISABLE_FLAGS) $(PCRE_CFLAGS)
> @@ -117,7 +133,7 @@ $(LIBA): $(OBJS)
>   $(RANLIB) $@
>  
>  $(LIBSO): $(LOBJS)
> - $(CC) $(CFLAGS) -shared -o $@ $^ $(PCRE_LDFLAGS) -ldl $(LDFLAGS) 
> -L$(LIBDIR) -Wl,-soname,$(LIBSO),-z,defs,-z,relro
> + $(CC) $(CFLAGS) -shared -o $@ $^ $(PCRE_LDFLAGS) -ldl $(LDFLAGS) 
> -L$(LIBDIR) -Wl,$(LD_SONAME_FLAGS)
>   ln -sf $@ $(TARGET) 
>  
>  $(LIBPC): $(LIBPC).in ../VERSION
> diff --git a/libselinux/utils/Makefile b/libselinux/utils/Makefile
> index e56a953..a4f9903 100644
> --- a/libselinux/utils/Makefile
> 

[PATCH 6/8] libselinux: support ANDROID_HOST=1 on Mac

2016-10-17 Thread william . c . roberts
From: William Roberts 

To build on mac, first build libsepol with
DISABLE_CIL=y and no DESTDIR set.

Secondly, build libselinux with ANDROID_HOST=y

This configuration can be used to test the Android
host build on Mac.

Signed-off-by: William Roberts 
---
 libselinux/Makefile   | 10 ++
 libselinux/src/Makefile   | 36 ++--
 libselinux/utils/Makefile | 29 +
 3 files changed, 57 insertions(+), 18 deletions(-)

diff --git a/libselinux/Makefile b/libselinux/Makefile
index baa0db3..ef971f4 100644
--- a/libselinux/Makefile
+++ b/libselinux/Makefile
@@ -27,6 +27,16 @@ else
 endif
 export PCRE_CFLAGS PCRE_LDFLAGS
 
+OS := $(shell uname)
+export OS
+
+ifeq ($(shell $(CC) -v 2>&1 | grep "clang"),)
+COMPILER := gcc
+else
+COMPILER := clang
+endif
+export COMPILER
+
 all install relabel clean distclean indent:
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
index 13501cd..7a1ae05 100644
--- a/libselinux/src/Makefile
+++ b/libselinux/src/Makefile
@@ -48,23 +48,39 @@ OBJS= $(patsubst %.c,%.o,$(SRCS))
 LOBJS= $(patsubst %.c,%.lo,$(SRCS))
 CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self 
-Wmissing-include-dirs \
   -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow 
-Wpointer-arith \
-  -Wbad-function-cast -Wcast-align -Wwrite-strings -Wlogical-op 
-Waggregate-return \
+  -Wbad-function-cast -Wcast-align -Wwrite-strings -Waggregate-return \
   -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes \
   -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute 
\
   -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch 
-Wvolatile-register-var \
-  -Wdisabled-optimization -Wbuiltin-macro-redefined 
-Wpacked-bitfield-compat \
-  -Wsync-nand -Wattributes -Wcoverage-mismatch -Wmultichar -Wcpp \
+  -Wdisabled-optimization -Wbuiltin-macro-redefined \
+  -Wattributes -Wmultichar \
   -Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion 
-Wendif-labels -Wextra \
-  -Wformat-contains-nul -Wformat-extra-args -Wformat-zero-length 
-Wformat=2 -Wmultichar \
-  -Wnormalized=nfc -Woverflow -Wpointer-to-int-cast -Wpragmas 
-Wsuggest-attribute=const \
-  -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines \
-  -Wno-missing-field-initializers -Wno-sign-compare -Wjump-misses-init 
\
-  -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) 
-Wp,-D_FORTIFY_SOURCE=2 \
+  -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar \
+  -Woverflow -Wpointer-to-int-cast -Wpragmas \
+  -Wno-missing-field-initializers -Wno-sign-compare \
+  -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \
   -fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
   -fasynchronous-unwind-tables -fdiagnostics-show-option 
-funit-at-a-time \
-  -fipa-pure-const -Wno-suggest-attribute=pure 
-Wno-suggest-attribute=const \
   -Werror -Wno-aggregate-return -Wno-redundant-decls
 
+LD_SONAME_FLAGS=-soname,$(LIBSO),-z,defs,-z,relro
+
+ifeq ($(COMPILER), gcc)
+override CFLAGS += -fipa-pure-const -Wlogical-op -Wpacked-bitfield-compat 
-Wsync-nand \
+   -Wcoverage-mismatch -Wcpp -Wformat-contains-nul -Wnormalized=nfc 
-Wsuggest-attribute=const \
+   -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines 
-Wjump-misses-init \
+   -Wno-suggest-attribute=pure -Wno-suggest-attribute=const 
-Wp,-D_FORTIFY_SOURCE=2
+else
+override CFLAGS += -Wunused-command-line-argument
+override LDFLAGS += -L/opt/local/lib -undefined dynamic_lookup
+LD_SONAME_FLAGS=-install_name,$(LIBSO)
+endif
+
+ifeq ($(OS), Darwin)
+override CFLAGS += -I/opt/local/include
+override LDFLAGS += -L/opt/local/lib -undefined dynamic_lookup
+endif
+
 PCRE_LDFLAGS ?= -lpcre
 
 override CFLAGS += -I../include -I$(INCLUDEDIR) -D_GNU_SOURCE $(DISABLE_FLAGS) 
$(PCRE_CFLAGS)
@@ -117,7 +133,7 @@ $(LIBA): $(OBJS)
$(RANLIB) $@
 
 $(LIBSO): $(LOBJS)
-   $(CC) $(CFLAGS) -shared -o $@ $^ $(PCRE_LDFLAGS) -ldl $(LDFLAGS) 
-L$(LIBDIR) -Wl,-soname,$(LIBSO),-z,defs,-z,relro
+   $(CC) $(CFLAGS) -shared -o $@ $^ $(PCRE_LDFLAGS) -ldl $(LDFLAGS) 
-L$(LIBDIR) -Wl,$(LD_SONAME_FLAGS)
ln -sf $@ $(TARGET) 
 
 $(LIBPC): $(LIBPC).in ../VERSION
diff --git a/libselinux/utils/Makefile b/libselinux/utils/Makefile
index e56a953..a4f9903 100644
--- a/libselinux/utils/Makefile
+++ b/libselinux/utils/Makefile
@@ -8,22 +8,35 @@ INCLUDEDIR ?= $(PREFIX)/include
 MAX_STACK_SIZE=8192
 CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self 
-Wmissing-include-dirs \
   -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow 
-Wpointer-arith \
-  -Wbad-function-cast -Wcast-align -Wwrite-strings -Wlogical-op