Skip to contentSkip to conversation

Patch "perf tools: Work around lack of sched_getcpu in glibc < 2.6." has been added to the 4.0-stable tree

PATCH [email protected] 1 participant 1 message May 2, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

perf tools: Work around lack of sched_getcpu in glibc < 2.6.

to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
perf-tools-work-around-lack-of-sched_getcpu-in-glibc-2.6.patch
and it can be found in the queue-4.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From e1e455f4f4d35850c30235747620d0d078fe9f64 Mon Sep 17 00:00:00 2001

From: Vinson Lee <[email protected]>
Date: Mon, 23 Mar 2015 12:09:16 -0700
Subject: perf tools: Work around lack of sched_getcpu in glibc < 2.6.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vinson Lee <[email protected]>

commit e1e455f4f4d35850c30235747620d0d078fe9f64 upstream.

This patch fixes this build error with glibc < 2.6.

CC util/cloexec.o
cc1: warnings being treated as errors
util/cloexec.c: In function ‘perf_flag_probe’:
util/cloexec.c:24: error: implicit declaration of function ‘sched_getcpu’
util/cloexec.c:24: error: nested extern declaration of ‘sched_getcpu’
make: *** [util/cloexec.o] Error 1

---
 tools/perf/util/cloexec.c |    6 ++++++
 tools/perf/util/cloexec.h |    6 ++++++
 2 files changed, 12 insertions(+)
tools/perf/util/cloexec.c +6 -0
@@ -7,6 +7,12 @@
 
 static unsigned long flag = PERF_FLAG_FD_CLOEXEC;
 
+int __weak sched_getcpu(void)
+{
+	errno = ENOSYS;
+	return -1;
+}
+
 static int perf_flag_probe(void)
 {
 	/* use 'safest' configuration as used in perf_evsel__fallback() */
tools/perf/util/cloexec.h +6 -0
@@ -3,4 +3,10 @@
 
 unsigned long perf_event_open_cloexec_flag(void);
 
+#ifdef __GLIBC_PREREQ
+#if !__GLIBC_PREREQ(2, 6)
+extern int sched_getcpu(void) __THROW;
+#endif
+#endif
+
 #endif /* __PERF_CLOEXEC_H */

Patches currently in stable-queue which might be from [email protected] are

queue-4.0/perf-tools-work-around-lack-of-sched_getcpu-in-glibc-2.6.patch queue-4.0/perf-symbols-define-stt_gnu_ifunc-for-glibc-2.9-and-older.patch