2019-10-08 09:40:08

by Thomas Richter

[permalink] [raw]
Subject: [PATCH] perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()

The build of file libperf-jvmti.so succeeds but the resulting
object fails to load:

# ~/linux/tools/perf/perf record -k mono -- java \
-XX:+PreserveFramePointer \
-agentpath:/root/linux/tools/perf/libperf-jvmti.so \
hog 100000 123450
Error occurred during initialization of VM
Could not find agent library /root/linux/tools/perf/libperf-jvmti.so
in absolute path, with error:
/root/linux/tools/perf/libperf-jvmti.so: undefined symbol: _ctype

Add the missing _ctype symbol into the build script.

Fixes: c5d048240e49 ("perf jvmti: Link against tools/lib/string.h to have weak strlcpy()")

Signed-off-by: Thomas Richter <[email protected]>
---
tools/perf/jvmti/Build | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/jvmti/Build b/tools/perf/jvmti/Build
index 1e148bbdf820..202cadaaf097 100644
--- a/tools/perf/jvmti/Build
+++ b/tools/perf/jvmti/Build
@@ -2,7 +2,7 @@ jvmti-y += libjvmti.o
jvmti-y += jvmti_agent.o

# For strlcpy
-jvmti-y += libstring.o
+jvmti-y += libstring.o libctype.o

CFLAGS_jvmti = -fPIC -DPIC -I$(JDIR)/include -I$(JDIR)/include/linux
CFLAGS_REMOVE_jvmti = -Wmissing-declarations
@@ -15,3 +15,7 @@ CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PE
$(OUTPUT)jvmti/libstring.o: ../lib/string.c FORCE
$(call rule_mkdir)
$(call if_changed_dep,cc_o_c)
+
+$(OUTPUT)jvmti/libctype.o: ../lib/ctype.c FORCE
+ $(call rule_mkdir)
+ $(call if_changed_dep,cc_o_c)
--
2.21.0


2019-10-14 14:30:08

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()

Em Tue, Oct 08, 2019 at 11:38:41AM +0200, Thomas Richter escreveu:
> The build of file libperf-jvmti.so succeeds but the resulting
> object fails to load:
>
> # ~/linux/tools/perf/perf record -k mono -- java \
> -XX:+PreserveFramePointer \
> -agentpath:/root/linux/tools/perf/libperf-jvmti.so \
> hog 100000 123450
> Error occurred during initialization of VM
> Could not find agent library /root/linux/tools/perf/libperf-jvmti.so
> in absolute path, with error:
> /root/linux/tools/perf/libperf-jvmti.so: undefined symbol: _ctype
>
> Add the missing _ctype symbol into the build script.
>
> Fixes: c5d048240e49 ("perf jvmti: Link against tools/lib/string.h to have weak strlcpy()")

Thanks, applied.

- Arnaldo

> Signed-off-by: Thomas Richter <[email protected]>
> ---
> tools/perf/jvmti/Build | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/jvmti/Build b/tools/perf/jvmti/Build
> index 1e148bbdf820..202cadaaf097 100644
> --- a/tools/perf/jvmti/Build
> +++ b/tools/perf/jvmti/Build
> @@ -2,7 +2,7 @@ jvmti-y += libjvmti.o
> jvmti-y += jvmti_agent.o
>
> # For strlcpy
> -jvmti-y += libstring.o
> +jvmti-y += libstring.o libctype.o
>
> CFLAGS_jvmti = -fPIC -DPIC -I$(JDIR)/include -I$(JDIR)/include/linux
> CFLAGS_REMOVE_jvmti = -Wmissing-declarations
> @@ -15,3 +15,7 @@ CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PE
> $(OUTPUT)jvmti/libstring.o: ../lib/string.c FORCE
> $(call rule_mkdir)
> $(call if_changed_dep,cc_o_c)
> +
> +$(OUTPUT)jvmti/libctype.o: ../lib/ctype.c FORCE
> + $(call rule_mkdir)
> + $(call if_changed_dep,cc_o_c)
> --
> 2.21.0

--

- Arnaldo

Subject: [tip: perf/urgent] perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID: 6a6fac11b11299aa5bd8532ea863fc2f652af2b6
Gitweb: https://git.kernel.org/tip/6a6fac11b11299aa5bd8532ea863fc2f652af2b6
Author: Thomas Richter <[email protected]>
AuthorDate: Tue, 08 Oct 2019 11:38:41 +02:00
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitterDate: Tue, 15 Oct 2019 11:47:38 -03:00

perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()

The build of file libperf-jvmti.so succeeds but the resulting
object fails to load:

# ~/linux/tools/perf/perf record -k mono -- java \
-XX:+PreserveFramePointer \
-agentpath:/root/linux/tools/perf/libperf-jvmti.so \
hog 100000 123450
Error occurred during initialization of VM
Could not find agent library /root/linux/tools/perf/libperf-jvmti.so
in absolute path, with error:
/root/linux/tools/perf/libperf-jvmti.so: undefined symbol: _ctype

Add the missing _ctype symbol into the build script.

Fixes: 79743bc927f6 ("perf jvmti: Link against tools/lib/string.o to have weak strlcpy()")
Signed-off-by: Thomas Richter <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Vasily Gorbik <[email protected]>
Link: http://lore.kernel.org/lkml/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/jvmti/Build | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/jvmti/Build b/tools/perf/jvmti/Build
index 1e148bb..202cada 100644
--- a/tools/perf/jvmti/Build
+++ b/tools/perf/jvmti/Build
@@ -2,7 +2,7 @@ jvmti-y += libjvmti.o
jvmti-y += jvmti_agent.o

# For strlcpy
-jvmti-y += libstring.o
+jvmti-y += libstring.o libctype.o

CFLAGS_jvmti = -fPIC -DPIC -I$(JDIR)/include -I$(JDIR)/include/linux
CFLAGS_REMOVE_jvmti = -Wmissing-declarations
@@ -15,3 +15,7 @@ CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PE
$(OUTPUT)jvmti/libstring.o: ../lib/string.c FORCE
$(call rule_mkdir)
$(call if_changed_dep,cc_o_c)
+
+$(OUTPUT)jvmti/libctype.o: ../lib/ctype.c FORCE
+ $(call rule_mkdir)
+ $(call if_changed_dep,cc_o_c)

Subject: [tip: perf/core] perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()

The following commit has been merged into the perf/core branch of tip:

Commit-ID: 5fb470bc29d8e2ff0e1cab4fbb580a06da11ab28
Gitweb: https://git.kernel.org/tip/5fb470bc29d8e2ff0e1cab4fbb580a06da11ab28
Author: Thomas Richter <[email protected]>
AuthorDate: Tue, 08 Oct 2019 11:38:41 +02:00
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitterDate: Tue, 15 Oct 2019 08:39:42 -03:00

perf jvmti: Link against tools/lib/ctype.h to have weak strlcpy()

The build of file libperf-jvmti.so succeeds but the resulting
object fails to load:

# ~/linux/tools/perf/perf record -k mono -- java \
-XX:+PreserveFramePointer \
-agentpath:/root/linux/tools/perf/libperf-jvmti.so \
hog 100000 123450
Error occurred during initialization of VM
Could not find agent library /root/linux/tools/perf/libperf-jvmti.so
in absolute path, with error:
/root/linux/tools/perf/libperf-jvmti.so: undefined symbol: _ctype

Add the missing _ctype symbol into the build script.

Fixes: 79743bc927f6 ("perf jvmti: Link against tools/lib/string.o to have weak strlcpy()")
Signed-off-by: Thomas Richter <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Vasily Gorbik <[email protected]>
Link: http://lore.kernel.org/lkml/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/jvmti/Build | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/jvmti/Build b/tools/perf/jvmti/Build
index 1e148bb..202cada 100644
--- a/tools/perf/jvmti/Build
+++ b/tools/perf/jvmti/Build
@@ -2,7 +2,7 @@ jvmti-y += libjvmti.o
jvmti-y += jvmti_agent.o

# For strlcpy
-jvmti-y += libstring.o
+jvmti-y += libstring.o libctype.o

CFLAGS_jvmti = -fPIC -DPIC -I$(JDIR)/include -I$(JDIR)/include/linux
CFLAGS_REMOVE_jvmti = -Wmissing-declarations
@@ -15,3 +15,7 @@ CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PE
$(OUTPUT)jvmti/libstring.o: ../lib/string.c FORCE
$(call rule_mkdir)
$(call if_changed_dep,cc_o_c)
+
+$(OUTPUT)jvmti/libctype.o: ../lib/ctype.c FORCE
+ $(call rule_mkdir)
+ $(call if_changed_dep,cc_o_c)