Re: [PATCH] libselinux/utils: drop requirement to combine compiling and linking

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

 



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




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

  Powered by Linux