[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] gcov: Support gcc 4.7
>>> On 17.06.13 at 10:29, Frediano Ziglio <frediano.ziglio@xxxxxxxxxx> wrote: > --- a/xen/arch/x86/xen.lds.S > +++ b/xen/arch/x86/xen.lds.S > @@ -112,6 +112,7 @@ SECTIONS > . = ALIGN(8); > __ctors_start = .; > *(.ctors) > + *(.init_array) > __ctors_end = .; > } :text > . = ALIGN(32); First of all - again an x86 change without a matching ARM one? And then this is different from how binutils deals with these in a number of aspects: - .init_array.* not handled (raises the question why .ctors.* didn't get handled already) - .init_array following .ctors here, while binutils has it the other way around - final section being .init_array instead of .ctors - enclosing symbols prefixed with __init_array_ instead of __ctors_ Some or all of these may not matter, but I think any difference to how binutils deals with these sections needs to be explained in the patch description. > +static inline const struct gcov_fn_info_407 * > +next_func(const struct gcov_info_407 *info, int *n_func) What are these "_407" suffixes intended to mean? They look rather arbitrary, and to me aren't connected to the gcc version talked about here. > +{ > + while ( ++*n_func < info->n_functions ) { Coding style. > + const struct gcov_fn_info_407 *fn = info->functions[*n_func]; > + > + /* the test for info member handle common data redefinitions > + in object files */ Again. Stopping here; there are more. > --- a/xen/include/public/gcov.h > +++ b/xen/include/public/gcov.h > @@ -28,10 +28,12 @@ > #ifndef __XEN_PUBLIC_GCOV_H__ > #define __XEN_PUBLIC_GCOV_H__ __XEN_PUBLIC_GCOV_H__ > > -#define XENCOV_COUNTERS 5 > +#define XENCOV_COUNTERS_MASK 5 Misnamed manifest constant? It's never being used as a mask and also doesn't look like one. > +#define XENCOV_COUNTERS 8 And this one doesn't appear to get used anywhere, so why are these changes being done in the first place? > #define XENCOV_TAG_BASE 0x58544300u > #define XENCOV_TAG_FILE (XENCOV_TAG_BASE+0x46u) > #define XENCOV_TAG_FUNC (XENCOV_TAG_BASE+0x66u) > +#define XENCOV_TAG_FUNC2 (XENCOV_TAG_BASE+0x67u) > #define XENCOV_TAG_COUNTER(n) (XENCOV_TAG_BASE+0x30u+((n)&0xfu)) > #define XENCOV_TAG_END (XENCOV_TAG_BASE+0x2eu) > #define XENCOV_IS_TAG_COUNTER(n) \ > @@ -93,6 +95,18 @@ struct xencov_function > }; > > /** > + * Information for each function > + * Number of counter is equal to the number of counter structures got before > + */ > +struct xencov_function2 > +{ > + uint32_t ident; > + uint32_t lineno_checksum; > + uint32_t cfg_checksum; > + uint32_t num_counters[1]; > +}; Nor can I seem to be able to spot a use of this structure. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |