Re: [PATCH] perf: Fix endianness argument compatibility
- From
- Ingo Molnar <mingo@elte.hu>
- Date
- Apr 14, 2010, 09:28 UTC
- Message-ID
- <20100414092843.GD10537@elte.hu>
- In-Reply-To
- <20100413.014821.34906166.davem@davemloft.net>
* David Miller <davem@davemloft.net> wrote:
Show 27 quoted lines
> From: "Ian Munsie" <imunsie@au1.ibm.com> > Date: Tue, 13 Apr 2010 18:37:33 +1000 > > > From: Ian Munsie <imunsie@au.ibm.com> > > > > Parsing an option from the command line with OPT_BOOLEAN on a bool data > > type would not work on a big-endian machine due to the manner in which > > the boolean was being cast into an int and incremented. For example, > > running 'perf probe --list' on a PowerPC machine would fail to properly > > set the list_events bool and would therefore print out the usage > > information and terminate. > > > > This patch makes OPT_BOOLEAN work as expected with a bool datatype. For > > cases where the original OPT_BOOLEAN was intentionally being used to > > increment an int each time it was passed in on the command line, this > > patch introduces OPT_INCR with the old behaviour of OPT_BOOLEAN (the > > verbose variable is currently the only such example of this). > > > > I have reviewed every use of OPT_BOOLEAN to verify that a true C99 bool > > was passed. Where integers were used, I verified that they were only > > being used for boolean logic and changed them to bools to ensure that > > they would not be mistakenly used as ints. The major exception was the > > verbose variable which now uses OPT_INCR instead of OPT_BOOLEAN. > > > > Signed-off-by: Ian Munsie <imunsie@au.ibm.com> > > Thanks for finding and fixing this bug.
Nice fix!
Btw., perf got the option parser from the Git project - i'm wondering how the Git folks solved this endianness problem?
Ingo