[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] gcov: add new interface and 3.4 and 4.7 format support
>>> On 11.10.16 at 12:31, <wei.liu2@xxxxxxxxxx> wrote: > --- /dev/null > +++ b/xen/common/gcov/gcc_4_7.c > @@ -0,0 +1,205 @@ > +/* > + * This code provides functions to handle gcc's profiling data format > + * introduced with gcc 4.7. > + * > + * This file is based heavily on gcc_3_4.c file. > + * > + * For a better understanding, refer to gcc source: > + * gcc/gcov-io.h > + * libgcc/libgcov.c > + * > + * Uses gcc-internal data definitions. > + * > + * Imported from Linux and modified for Xen by > + * Wei Liu <wei.liu2@xxxxxxxxxx> > + */ > + > +#include <xen/string.h> > + > +#include "gcov.h" > + > +#if GCC_VERSION < 40700 > +#error "Wrong version of GCC used to compile gcov" > +#endif > + > +#if (__GNUC__ > 5) || (__GNUC__ == 5 && __GNUC_MINOR__ >= 1) > +#define GCOV_COUNTERS 10 > +#elif __GNUC__ == 4 && __GNUC_MINOR__ >= 9 > +#define GCOV_COUNTERS 9 > +#else > +#define GCOV_COUNTERS 8 > +#endif I'm sorry for not having pointed this out on v2 (I had noticed it, but then didn't finish analyzing the situation), but I'm afraid this together with ... > +struct gcov_info { > + unsigned int version; > + struct gcov_info *next; > + unsigned int stamp; > + const char *filename; > + void (*merge[GCOV_COUNTERS])(gcov_type *, unsigned int); > + unsigned int n_functions; > + struct gcov_fn_info **functions; > +}; ... this structure's trailing fields actually getting used by the code won't work well when changing compiler versions without cleaning the tree. I think instead you need thin gcc_5.c and gcc_4_9.c #define-ing their GCOV_COUNTERS and then #include-ing this shared source file. Plus btw, I don't think gcc 5.0.x (the development variant of 5.x) would use anything different from 5.1.x or 5.2.x; in fact use of __GNUC_MINOR__ should not normally be necessary anymore with gcc 5+. And then - how is all of this supposed to be working in conjucntion with live patching, where the patch may have been created by yet another compiler version? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |