From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
Ingo Molnar <mingo@kernel.org>,
linux-kernel@vger.kernel.org,
Adrian Hunter <adrian.hunter@intel.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Alexander Yarygin <yarygin@linux.vnet.ibm.com>,
Alexey Brodkin <Alexey.Brodkin@synopsys.com>,
Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Brendan Gregg <brendan.d.gregg@gmail.com>,
Chris Phlipot <cphlipot0@gmail.com>,
Christoffer Dall <christoffer.dall@linaro.org>,
David Ahern <dsahern@gmail.com>, Davidlohr Bueso <dbueso@suse.de>,
David Tolnay <dtolnay@gmail.com>,
Eric Auger <eric.auger@linaro.org>,
Hemant Kumar <hemant@linux.vnet.ibm.com>,
Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>,
Jiri Olsa <jolsa@kernel.org>, Marc Zyngier <marc.zyngier@arm.com>,
Masami Hiramatsu <mhiramat@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
"Naveen N . Rao" <naveen.n.rao@linux.vnet.ibm.com>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Vineet Gupta <vgupta@synopsys.com>,
Wang Nan <wangnan0@huawei.com>,
Yunlong Song <yunlong.song@huawei.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: Re: [GIT PULL 00/66] perf/core improvements and fixes
Date: Wed, 13 Jul 2016 20:29:26 -0300 [thread overview]
Message-ID: <20160713232926.GB6961@kernel.org> (raw)
In-Reply-To: <20160713205449.GA30909@twins.programming.kicks-ass.net>
Em Wed, Jul 13, 2016 at 10:54:49PM +0200, Peter Zijlstra escreveu:
> On Wed, Jul 13, 2016 at 03:49:14PM -0500, Josh Poimboeuf wrote:
> > That '#define BITS_PER_LONG 32' comes from the following code in
> > tools/include/asm-generic/bitsperlong.h:
> >
> > #ifdef CONFIG_64BIT
> > #define BITS_PER_LONG 64
> > #else
> > #define BITS_PER_LONG 32
> > #endif /* CONFIG_64BIT */
> >
> > Because objtool doesn't have CONFIG_64BIT defined, it falls through to
> > the '#else' condition. I think tools code shouldn't be relying on
> > kernel config options.
>
> Right.. __LP64__ would work in general I think, or __SIZEOF_LONG__ *
> __CHAR_BIT__.
Ok, to keep it close to the kernel counterpart, I ended up with the
patch below, that builds for all the distros I have in my container set.
commit 2a00f026a15d161b47ba3d3417d0fec5193468c3
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Wed Jul 13 15:04:04 2016 -0300
tools: Fix up BITS_PER_LONG setting
It was set based on CONFIG_64BIT, that is available only when using
Kconfig, which we're working towards but not to the point of having this
CONFIG variable set, so synthesize it from available compiler defined
defines, __SIZEOF_LONG__ or, lacking that, __WORDSIZE.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-og5fmkr17856lhupacihwxvb@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
diff --git a/tools/include/asm-generic/bitsperlong.h b/tools/include/asm-generic/bitsperlong.h
index d1d70aa19021..cfd661c6fc17 100644
--- a/tools/include/asm-generic/bitsperlong.h
+++ b/tools/include/asm-generic/bitsperlong.h
@@ -3,6 +3,24 @@
#include <uapi/asm-generic/bitsperlong.h>
+/*
+ * In the kernel, where this file comes from, we can rely on CONFIG_64BIT,
+ * here we have to make amends with what the various compilers provides us
+ * to figure out if we're on a 64-bit machine...
+ */
+#ifdef __SIZEOF_LONG__
+# if __SIZEOF_LONG__ == 8
+# define CONFIG_64BIT
+# endif
+#else
+# ifdef __WORDSIZE
+# if __WORDSIZE == 64
+# define CONFIG_64BIT
+# endif
+# else
+# error Failed to determine BITS_PER_LONG value
+# endif
+#endif
#ifdef CONFIG_64BIT
#define BITS_PER_LONG 64
@@ -10,11 +28,7 @@
#define BITS_PER_LONG 32
#endif /* CONFIG_64BIT */
-/*
- * FIXME: The check currently breaks x86-64 build, so it's
- * temporarily disabled. Please fix x86-64 and reenable
- */
-#if 0 && BITS_PER_LONG != __BITS_PER_LONG
+#if BITS_PER_LONG != __BITS_PER_LONG
#error Inconsistent word size. Check asm/bitsperlong.h
#endif
next prev parent reply other threads:[~2016-07-13 23:29 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-12 22:39 [GIT PULL 00/66] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 01/66] perf hists: Introduce hist_entry__init function Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 02/66] perf hists: Introduce hist_entry_ops Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 03/66] perf hists: Introduce hists__add_entry_ops function Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 04/66] perf ui stdio: Add way to setup the color output mode selection Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 05/66] perf annotate: Introduce --stdio-color " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 06/66] perf report: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 07/66] perf trace beauty msg_flags: Remove MSG_TRYHARD Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 08/66] perf trace beauty flock: Add missing fcntl.h include Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 09/66] perf trace beauty open_flags: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 10/66] perf trace beauty mmap: Add more conditional defines Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 11/66] perf trace beauty flock: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 12/66] perf trace beauty open_flags: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 13/66] tools: Introduce str_error_r() Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 14/66] perf bench: Add missing pthread.h include for CPU_*() macros Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 15/66] perf tests: " Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 16/66] perf trace: Add conditional define for AT_FDCWD Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 17/66] perf tests openat-syscall-tp-fields: Add some conditional defines Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 18/66] perf bench: Disentangle headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 19/66] perf tools: Move syscall number fallbacks from perf-sys.h to tools/arch/x86/include/asm/ Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 20/66] perf strbuf: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 21/66] perf quote: Disentangle headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 22/66] perf tests cpumap: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 23/66] perf test fdarray: Add missing poll.h header Arnaldo Carvalho de Melo
2016-07-12 22:39 ` [PATCH 24/66] perf tests x86 rdpmc: Add missing headers Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 25/66] perf tools: Add missing header to color.c Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 26/66] perf tools: Remove needless includes from cache.h Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 27/66] perf evsel: Uninline the is_function_event method Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 28/66] perf tools: Uninline scnprintf() and vscnprint() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 29/66] tools lib traceevent: Use str_error_r() Arnaldo Carvalho de Melo
2016-07-12 23:11 ` Steven Rostedt
2016-07-12 23:14 ` Arnaldo Carvalho de Melo
2016-07-12 23:25 ` Steven Rostedt
2016-07-12 23:32 ` Arnaldo Carvalho de Melo
2016-07-13 12:30 ` Steven Rostedt
2016-07-13 13:51 ` Arnaldo Carvalho de Melo
2016-07-13 19:17 ` Steven Rostedt
2016-07-13 20:01 ` Arnaldo Carvalho de Melo
2016-07-14 1:25 ` Steven Rostedt
2016-07-14 1:39 ` Arnaldo Carvalho de Melo
2016-07-17 18:49 ` Jiri Olsa
2016-07-28 16:04 ` Steven Rostedt
2016-07-12 22:40 ` [PATCH 30/66] tools lib api fs: " Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 31/66] tools lib: Guard the strlcpy() header with __GLIBC__ Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 32/66] tools lib subcmd: Use str_error_r() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 33/66] perf bench futex: Add missing compiler.h header Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 34/66] perf tools: event.h needs asm/perf_regs.h Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 35/66] tools: Add copy of perf_event.h to tools/include/linux/ Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 36/66] perf bench: Copy kernel files needed to build mem{cpy,set} x86_64 benchmarks Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 37/66] tools lib bpf: Copy bpf.h and bpf_common.h from the kernel Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 38/66] tools: Copy uapi/asm/perf_regs.h " Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 39/66] perf test bpf: Use epoll_wait() instead of epoll_pwait() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 40/66] tools: Copy uapi/linux/hw_breakpoint.h from the kernel Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 41/66] perf tools: Introduce weak alternative to sched_getcpu() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 42/66] perf tools: Remove unneeded magic.h include from util.h Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 43/66] perf trace: Remove unused sys/ptrace.h include Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 44/66] kvm arm/arm64: Remove trailing whitespace from headers Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 45/66] tools: Copy the header files needed by perf tools Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 46/66] perf tools: Fallback to reading sysfs to get cacheline size Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 47/66] perf trace beauty futex_op: Add missing defines for older systems Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 48/66] perf trace beauty seccomp: Remove seccomp.h include Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 49/66] perf symbols: Provide a GElf_Nhdr typedef Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 50/66] perf script python: Silence -Werror=maybe-uninitialized on gcc 5.3.0 Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 51/66] tools: Copy the bitsperlong.h files from the kernel Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 52/66] perf tools: Add the tools/ stringify copy to the MANIFEST Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 53/66] perf tools: Don't add kernel directories to the header search path Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 54/66] perf intel-pt-decoder: Avoid checking code drift on busibox's diff Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 55/66] perf tools: Add feature detection for gelf_getnote() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 56/66] perf symbols: Add Rust demangling Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 57/66] perf evlist: Make event2evsel public Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 58/66] perf tools: Introduce trace_event__tp_format_id() Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 59/66] perf python: Init perf_event_attr::size in perf.evsel constructor Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 60/66] perf python: Fix pyrf_evlist__read_on_cpu event consuming Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 61/66] perf python: Put perf.event objects into dictionary Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 62/66] perf python: Add perf.tracepoint method Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 63/66] perf python: Add struct evsel into struct pyrf_event Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 64/66] perf python: Add support to resolve tracepoint fields Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 65/66] perf python: Add tracepoint example Arnaldo Carvalho de Melo
2016-07-12 22:40 ` [PATCH 66/66] tools lib traceevent: Add filter on task CPU id Arnaldo Carvalho de Melo
2016-07-13 6:59 ` [GIT PULL 00/66] perf/core improvements and fixes Ingo Molnar
2016-07-13 7:35 ` Ingo Molnar
2016-07-13 20:49 ` Josh Poimboeuf
2016-07-13 20:54 ` Peter Zijlstra
2016-07-13 23:29 ` Arnaldo Carvalho de Melo [this message]
2016-07-13 7:37 ` Ingo Molnar
2016-07-13 7:33 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2013-05-30 16:00 Arnaldo Carvalho de Melo
2013-05-31 11:04 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160713232926.GB6961@kernel.org \
--to=acme@kernel.org \
--cc=Alexey.Brodkin@synopsys.com \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=ananth@linux.vnet.ibm.com \
--cc=brendan.d.gregg@gmail.com \
--cc=christoffer.dall@linaro.org \
--cc=cphlipot0@gmail.com \
--cc=dbueso@suse.de \
--cc=dsahern@gmail.com \
--cc=dtolnay@gmail.com \
--cc=eric.auger@linaro.org \
--cc=hemant@linux.vnet.ibm.com \
--cc=jolsa@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=mitake@dcl.info.waseda.ac.jp \
--cc=namhyung@kernel.org \
--cc=naveen.n.rao@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=vgupta@synopsys.com \
--cc=wangnan0@huawei.com \
--cc=yarygin@linux.vnet.ibm.com \
--cc=yunlong.song@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).