[File] One more set of observations from static analysis
Steve Grubb
sgrubb at redhat.com
Mon Jun 8 21:11:19 UTC 2020
Hello,
On Monday, June 8, 2020 4:56:17 PM EDT Christos Zoulas wrote:
> I have not tried it, but it looks like with your changes we'll get:
> #define MAGIC_VERSION "5.38" /* This implementation */
> and not:
> #define MAGIC_VERSION 538 /* This implementation */
> like we used to. The string is not useful as a CPP symbol to compare
> against.
Right. My first thought was to use PACKAGE_VERSION but it does result in a
string. But using VERSION directly is unquoted. This also passes make check.
Best Regards,
-Steve
> This is why I wrote before we'll need some m4 in configure.ac to define
> a new version substitution symbols.
>
> Best,
>
> christos
>
> > On Jun 8, 2020, at 4:46 PM, Steve Grubb <sgrubb at redhat.com> wrote:
> >
> > 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-0
> > 4 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