tags 455420 +patch
thanks
Hi,
I'm attaching a patch to fix this problem. Please take into account that the
gcc 4.3 issues are marked as release goals bugs, so if you don't upload a fix
soon it would probably be NMUed.
This patch was taken from the new upstream release (libpfm-3.3) which fixes
this issue.
Thanks,
--
"Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the Universe trying to produce
bigger and better idiots. So far, the Universe is winning."
-- (Rich Cook)
Saludos /\/\ /\ >< `/
--- libpfm3-3.2-3.2.070507.orig/lib/pfmlib_pentium4.c
+++ libpfm3-3.2-3.2.070507/lib/pfmlib_pentium4.c
@@ -270,7 +270,7 @@
{
unsigned int assigned_pmcs[PENTIUM4_NUM_PMCS] = {0};
unsigned int event, event_mask, mask;
- unsigned int tag_value, tag_enable;
+ unsigned int bit, tag_value, tag_enable;
unsigned int plm;
unsigned int i, j, k, m, n;
int escr, escr_pmc;
@@ -361,13 +361,14 @@
tag_enable = 0;
for (n = 0; n < input->pfp_events[i].num_masks; n++) {
mask = input->pfp_events[i].unit_masks[n];
- if (mask < EVENT_MASK_BITS &&
- pentium4_events[event].event_masks[mask].name) {
- event_mask |= (1 << pentium4_events[event].event_masks[mask].bit);
+ bit = pentium4_events[event].event_masks[mask].bit;
+ if (bit < EVENT_MASK_BITS &&
+ pentium4_events[event].event_masks[mask].name) {
+ event_mask |= (1 << bit);
}
- if (mask >= EVENT_MASK_BITS &&
- pentium4_events[event].event_masks[mask].name) {
- tag_value |= (1 << (pentium4_events[event].event_masks[mask].bit - EVENT_MASK_BITS));
+ if (bit >= EVENT_MASK_BITS &&
+ pentium4_events[event].event_masks[mask].name) {
+ tag_value |= (1 << (bit - EVENT_MASK_BITS));
tag_enable = 1;
}
}