On Wed, Jul 14, 2021 at 8:13 PM Christian Göttsche <cgzones@xxxxxxxxxxxxxx> wrote: > > The extra dependency of sefcontext_compile on its object file causes the > compile and link step to be separated. > During the link step the CFLAGS are not passed, which might contain > optimization or sanitizer flags. > > Current behavior: > > gcc-11 **custom CFLAGS** -I../include -D_GNU_SOURCE -c -o sefcontext_compile.o sefcontext_compile.c > gcc-11 -L../src sefcontext_compile.o ../src/regex.o -lselinux -lpcre ../src/libselinux.a -lsepol -o sefcontext_compile > > Changed: > > gcc-11 **custom CFLAGS** -I../include -D_GNU_SOURCE -L../src sefcontext_compile.c ../src/regex.o -lselinux -lpcre ../src/libselinux.a -lsepol -o sefcontext_compile > > Signed-off-by: Christian Göttsche <cgzones@xxxxxxxxxxxxxx> > --- > libselinux/utils/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libselinux/utils/Makefile b/libselinux/utils/Makefile > index b018a08a..f01295fd 100644 > --- a/libselinux/utils/Makefile > +++ b/libselinux/utils/Makefile > @@ -54,7 +54,7 @@ endif > > sefcontext_compile: LDLIBS += $(PCRE_LDLIBS) ../src/libselinux.a -lsepol > > -sefcontext_compile: sefcontext_compile.o ../src/regex.o > +sefcontext_compile: ../src/regex.o > > all: $(TARGETS) > Hello, In my humble opinion, this patch makes reading ilbselinux/utils/Makefile harder: it is no longer clear that sefcontext_compile depends on sefcontext_compile.c. While I prefer adding an explicit rule (such as "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)"), it seems that your issue can be fixed differently, by completely removing "sefcontext_compile: sefcontext_compile.o ../src/regex.o". Indeed, as regex.o is included in ../src/libselinux.a, it does not need to be included again. Could you please test that this patch works? diff --git a/libselinux/utils/Makefile b/libselinux/utils/Makefile index b018a08acbe0..086f9cbe91c4 100644 --- a/libselinux/utils/Makefile +++ b/libselinux/utils/Makefile @@ -54,8 +54,6 @@ endif sefcontext_compile: LDLIBS += $(PCRE_LDLIBS) ../src/libselinux.a -lsepol -sefcontext_compile: sefcontext_compile.o ../src/regex.o - all: $(TARGETS) install: all -- (It would be even nicer if sefcontext_compile did not depend on libselinux.a, but removing the dependency to libselinux.a is a much harder topic). Thanks, Nicolas