[File] One more set of observations from static analysis

Steve Grubb sgrubb at redhat.com
Mon Jun 8 20:46:38 UTC 2020


On Monday, June 8, 2020 4:17:22 PM EDT Christos Zoulas wrote:
> Unfortunately magic.h is handled in Makefile.am in src:
> 
> CLEANFILES = magic.h
> EXTRA_DIST = magic.h.in
> HDR= $(top_srcdir)/src/magic.h.in
> BUILT_SOURCES = magic.h
> 
> magic.h:        ${HDR}
>         sed -e "s/X.YY/$$(echo @VERSION@ | tr -d .)/" < ${HDR} > $@
> 
> Now we could write some m4 that does this during the configure phase
> so we can add it in AC_CONFIG_FILES()...

I think this is all that's needed is below.

> I am not sure though why magic.h did not get rebuilt in your case or if
> the problem is that the static analysis tool did not have -I.

I make have done a make clean to recreate the object file by a fake make which
grabs all the config info for the scanner.

I tested this by

./autogen.sh
./configure
make
make clean
make
make distclean
./configure
make distcheck

and it seems to do everything OK.

Best Regards,
-Steve


diff -urp /home/sgrubb/working/BUILD/repos/git-repos/file/configure.ac ./configure.ac
--- /home/sgrubb/working/BUILD/repos/git-repos/file/configure.ac	2020-06-08 15:25:53.125164329 -0400
+++ ./configure.ac	2020-06-08 16:29:34.496754256 -0400
@@ -217,5 +217,5 @@ if  test "$ac_cv_header_lzma_h$ac_cv_lib
   AC_DEFINE([XZLIBSUPPORT], 1, [Enable xzlib compression support])
 fi
 
-AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile libmagic.pc])
+AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile src/magic.h libmagic.pc])
 AC_OUTPUT
diff -urp /home/sgrubb/working/BUILD/repos/git-repos/file/src/magic.h.in ./src/magic.h.in
--- /home/sgrubb/working/BUILD/repos/git-repos/file/src/magic.h.in	2020-06-04 10:41:49.329075290 -0400
+++ ./src/magic.h.in	2020-06-08 16:29:59.468751576 -0400
@@ -113,7 +113,7 @@ b\31transp_compression\0\
 #define	MAGIC_NO_CHECK_FORTRAN	0x000000 /* Don't check ascii/fortran */
 #define	MAGIC_NO_CHECK_TROFF	0x000000 /* Don't check ascii/troff */
 
-#define MAGIC_VERSION		X.YY	/* This implementation */
+#define MAGIC_VERSION		@VERSION@	/* This implementation */
 
 
 #ifdef __cplusplus
diff -urp /home/sgrubb/working/BUILD/repos/git-repos/file/src/Makefile.am ./src/Makefile.am
--- /home/sgrubb/working/BUILD/repos/git-repos/file/src/Makefile.am	2020-06-04 10:41:49.324075291 -0400
+++ ./src/Makefile.am	2020-06-08 16:39:39.862689294 -0400
@@ -21,10 +21,5 @@ libmagic_la_LIBADD = $(LTLIBOBJS) $(MING
 
 file_SOURCES = file.c seccomp.c
 file_LDADD = libmagic.la
-CLEANFILES = magic.h
 EXTRA_DIST = magic.h.in
-HDR= $(top_srcdir)/src/magic.h.in
-BUILT_SOURCES = magic.h
 
-magic.h:	${HDR}
-	sed -e "s/X.YY/$$(echo @VERSION@ | tr -d .)/" < ${HDR} > $@





More information about the File mailing list