* [PATCH pahole] libbpf: build as PIC and statically link into libdwarves @ 2019-02-19 3:02 Andrii Nakryiko 2019-02-19 3:04 ` Andrii Nakryiko 0 siblings, 1 reply; 4+ messages in thread From: Andrii Nakryiko @ 2019-02-19 3:02 UTC (permalink / raw) To: acme, ast, dwarves, bpf, yst, arnaldo.melo, Kernel-team, jolsa, namhyung, wangnan0, andrii.nakryiko Cc: Andrii Nakryiko As libbpf is not yet widely available, it's safer to statically link it into libdwarves for now. Easiest way to define that in cmake is through OBJECT library with PIC. Signed-off-by: Andrii Nakryiko <andriin@fb.com> --- CMakeLists.txt | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d6929b4..e0fdaf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ project(pahole C) -cmake_minimum_required(VERSION 2.4.8) +cmake_minimum_required(VERSION 2.8.8) cmake_policy(SET CMP0005 NEW) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) @@ -72,24 +72,19 @@ if (NOT HAVE_REALLOCARRAY_SUPPORT) endif() file(GLOB libbpf_sources "lib/bpf/src/*.c") -add_library(bpf-static STATIC ${libbpf_sources}) -set_target_properties(bpf-static PROPERTIES OUTPUT_NAME bpf) -target_include_directories(bpf-static PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) -add_library(bpf-shared SHARED ${libbpf_sources}) -set_target_properties(bpf-shared PROPERTIES OUTPUT_NAME bpf) -target_include_directories(bpf-shared PRIVATE +add_library(bpf OBJECT ${libbpf_sources}) +set_property(TARGET bpf PROPERTY POSITION_INDEPENDENT_CODE 1) +target_include_directories(bpf PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) set(dwarves_LIB_SRCS dwarves.c dwarves_fprintf.c gobuffer strings ctf_encoder.c ctf_loader.c libctf.c btf_encoder.c btf_loader.c libbtf.c dwarf_loader.c dutil.c elf_symtab.c rbtree.c) -add_library(dwarves SHARED ${dwarves_LIB_SRCS}) +add_library(dwarves SHARED ${dwarves_LIB_SRCS} $<TARGET_OBJECTS:bpf>) set_target_properties(dwarves PROPERTIES VERSION 1.0.0 SOVERSION 1) set_target_properties(dwarves PROPERTIES INTERFACE_LINK_LIBRARIES "") -target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES} bpf-shared) +target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES}) set(dwarves_emit_LIB_SRCS dwarves_emit.c) add_library(dwarves_emit SHARED ${dwarves_emit_LIB_SRCS}) -- 2.17.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH pahole] libbpf: build as PIC and statically link into libdwarves 2019-02-19 3:02 [PATCH pahole] libbpf: build as PIC and statically link into libdwarves Andrii Nakryiko @ 2019-02-19 3:04 ` Andrii Nakryiko 2019-02-19 13:16 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 4+ messages in thread From: Andrii Nakryiko @ 2019-02-19 3:04 UTC (permalink / raw) To: Andrii Nakryiko Cc: Arnaldo Carvalho de Melo, Alexei Starovoitov, dwarves, bpf, Arnaldo Carvalho de Melo, Kernel Team, jolsa, namhyung, wangnan0, Yonghong Song cc Yonghong (mistyped his email) -- Andrii On Mon, Feb 18, 2019 at 7:02 PM Andrii Nakryiko <andriin@fb.com> wrote: > > As libbpf is not yet widely available, it's safer to statically link it > into libdwarves for now. Easiest way to define that in cmake is through > OBJECT library with PIC. > > Signed-off-by: Andrii Nakryiko <andriin@fb.com> > --- > CMakeLists.txt | 17 ++++++----------- > 1 file changed, 6 insertions(+), 11 deletions(-) > > diff --git a/CMakeLists.txt b/CMakeLists.txt > index d6929b4..e0fdaf7 100644 > --- a/CMakeLists.txt > +++ b/CMakeLists.txt > @@ -1,5 +1,5 @@ > project(pahole C) > -cmake_minimum_required(VERSION 2.4.8) > +cmake_minimum_required(VERSION 2.8.8) > cmake_policy(SET CMP0005 NEW) > > INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) > @@ -72,24 +72,19 @@ if (NOT HAVE_REALLOCARRAY_SUPPORT) > endif() > > file(GLOB libbpf_sources "lib/bpf/src/*.c") > -add_library(bpf-static STATIC ${libbpf_sources}) > -set_target_properties(bpf-static PROPERTIES OUTPUT_NAME bpf) > -target_include_directories(bpf-static PRIVATE > - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include > - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) > -add_library(bpf-shared SHARED ${libbpf_sources}) > -set_target_properties(bpf-shared PROPERTIES OUTPUT_NAME bpf) > -target_include_directories(bpf-shared PRIVATE > +add_library(bpf OBJECT ${libbpf_sources}) > +set_property(TARGET bpf PROPERTY POSITION_INDEPENDENT_CODE 1) > +target_include_directories(bpf PRIVATE > ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include > ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) > > set(dwarves_LIB_SRCS dwarves.c dwarves_fprintf.c gobuffer strings > ctf_encoder.c ctf_loader.c libctf.c btf_encoder.c btf_loader.c libbtf.c > dwarf_loader.c dutil.c elf_symtab.c rbtree.c) > -add_library(dwarves SHARED ${dwarves_LIB_SRCS}) > +add_library(dwarves SHARED ${dwarves_LIB_SRCS} $<TARGET_OBJECTS:bpf>) > set_target_properties(dwarves PROPERTIES VERSION 1.0.0 SOVERSION 1) > set_target_properties(dwarves PROPERTIES INTERFACE_LINK_LIBRARIES "") > -target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES} bpf-shared) > +target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES}) > > set(dwarves_emit_LIB_SRCS dwarves_emit.c) > add_library(dwarves_emit SHARED ${dwarves_emit_LIB_SRCS}) > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH pahole] libbpf: build as PIC and statically link into libdwarves 2019-02-19 3:04 ` Andrii Nakryiko @ 2019-02-19 13:16 ` Arnaldo Carvalho de Melo 2019-02-19 18:22 ` Andrii Nakryiko 0 siblings, 1 reply; 4+ messages in thread From: Arnaldo Carvalho de Melo @ 2019-02-19 13:16 UTC (permalink / raw) To: Andrii Nakryiko Cc: Andrii Nakryiko, Alexei Starovoitov, dwarves, bpf, Arnaldo Carvalho de Melo, Kernel Team, jolsa, namhyung, wangnan0, Yonghong Song Em Mon, Feb 18, 2019 at 07:04:17PM -0800, Andrii Nakryiko escreveu: > cc Yonghong (mistyped his email) Applied, but before I split it into two patches, one bumping the minimum required cmake version, with an explanation about why that is needed, then the rest of the patch, with the explanation you provided. Please try to make the patches in a granular fashion, with justification for each independent part, Thanks, - Arnaldo > On Mon, Feb 18, 2019 at 7:02 PM Andrii Nakryiko <andriin@fb.com> wrote: > > > > As libbpf is not yet widely available, it's safer to statically link it > > into libdwarves for now. Easiest way to define that in cmake is through > > OBJECT library with PIC. > > > > Signed-off-by: Andrii Nakryiko <andriin@fb.com> > > --- > > CMakeLists.txt | 17 ++++++----------- > > 1 file changed, 6 insertions(+), 11 deletions(-) > > > > diff --git a/CMakeLists.txt b/CMakeLists.txt > > index d6929b4..e0fdaf7 100644 > > --- a/CMakeLists.txt > > +++ b/CMakeLists.txt > > @@ -1,5 +1,5 @@ > > project(pahole C) > > -cmake_minimum_required(VERSION 2.4.8) > > +cmake_minimum_required(VERSION 2.8.8) > > cmake_policy(SET CMP0005 NEW) > > > > INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) > > @@ -72,24 +72,19 @@ if (NOT HAVE_REALLOCARRAY_SUPPORT) > > endif() > > > > file(GLOB libbpf_sources "lib/bpf/src/*.c") > > -add_library(bpf-static STATIC ${libbpf_sources}) > > -set_target_properties(bpf-static PROPERTIES OUTPUT_NAME bpf) > > -target_include_directories(bpf-static PRIVATE > > - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include > > - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) > > -add_library(bpf-shared SHARED ${libbpf_sources}) > > -set_target_properties(bpf-shared PROPERTIES OUTPUT_NAME bpf) > > -target_include_directories(bpf-shared PRIVATE > > +add_library(bpf OBJECT ${libbpf_sources}) > > +set_property(TARGET bpf PROPERTY POSITION_INDEPENDENT_CODE 1) > > +target_include_directories(bpf PRIVATE > > ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include > > ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) > > > > set(dwarves_LIB_SRCS dwarves.c dwarves_fprintf.c gobuffer strings > > ctf_encoder.c ctf_loader.c libctf.c btf_encoder.c btf_loader.c libbtf.c > > dwarf_loader.c dutil.c elf_symtab.c rbtree.c) > > -add_library(dwarves SHARED ${dwarves_LIB_SRCS}) > > +add_library(dwarves SHARED ${dwarves_LIB_SRCS} $<TARGET_OBJECTS:bpf>) > > set_target_properties(dwarves PROPERTIES VERSION 1.0.0 SOVERSION 1) > > set_target_properties(dwarves PROPERTIES INTERFACE_LINK_LIBRARIES "") > > -target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES} bpf-shared) > > +target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES}) > > > > set(dwarves_emit_LIB_SRCS dwarves_emit.c) > > add_library(dwarves_emit SHARED ${dwarves_emit_LIB_SRCS}) > > -- > > 2.17.1 > > -- - Arnaldo ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH pahole] libbpf: build as PIC and statically link into libdwarves 2019-02-19 13:16 ` Arnaldo Carvalho de Melo @ 2019-02-19 18:22 ` Andrii Nakryiko 0 siblings, 0 replies; 4+ messages in thread From: Andrii Nakryiko @ 2019-02-19 18:22 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Andrii Nakryiko, Alexei Starovoitov, dwarves, bpf, Kernel Team, jolsa, namhyung, wangnan0, Yonghong Song On Tue, Feb 19, 2019 at 5:17 AM Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > > Em Mon, Feb 18, 2019 at 07:04:17PM -0800, Andrii Nakryiko escreveu: > > cc Yonghong (mistyped his email) > > Applied, but before I split it into two patches, one bumping the minimum > required cmake version, with an explanation about why that is needed, > then the rest of the patch, with the explanation you provided. > > Please try to make the patches in a granular fashion, with justification > for each independent part, Yep, sorry about that, will do next time. > > Thanks, > > - Arnaldo > > > On Mon, Feb 18, 2019 at 7:02 PM Andrii Nakryiko <andriin@fb.com> wrote: > > > > > > As libbpf is not yet widely available, it's safer to statically link it > > > into libdwarves for now. Easiest way to define that in cmake is through > > > OBJECT library with PIC. > > > > > > Signed-off-by: Andrii Nakryiko <andriin@fb.com> > > > --- > > > CMakeLists.txt | 17 ++++++----------- > > > 1 file changed, 6 insertions(+), 11 deletions(-) > > > > > > diff --git a/CMakeLists.txt b/CMakeLists.txt > > > index d6929b4..e0fdaf7 100644 > > > --- a/CMakeLists.txt > > > +++ b/CMakeLists.txt > > > @@ -1,5 +1,5 @@ > > > project(pahole C) > > > -cmake_minimum_required(VERSION 2.4.8) > > > +cmake_minimum_required(VERSION 2.8.8) > > > cmake_policy(SET CMP0005 NEW) > > > > > > INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) > > > @@ -72,24 +72,19 @@ if (NOT HAVE_REALLOCARRAY_SUPPORT) > > > endif() > > > > > > file(GLOB libbpf_sources "lib/bpf/src/*.c") > > > -add_library(bpf-static STATIC ${libbpf_sources}) > > > -set_target_properties(bpf-static PROPERTIES OUTPUT_NAME bpf) > > > -target_include_directories(bpf-static PRIVATE > > > - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include > > > - ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) > > > -add_library(bpf-shared SHARED ${libbpf_sources}) > > > -set_target_properties(bpf-shared PROPERTIES OUTPUT_NAME bpf) > > > -target_include_directories(bpf-shared PRIVATE > > > +add_library(bpf OBJECT ${libbpf_sources}) > > > +set_property(TARGET bpf PROPERTY POSITION_INDEPENDENT_CODE 1) > > > +target_include_directories(bpf PRIVATE > > > ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include > > > ${CMAKE_CURRENT_SOURCE_DIR}/lib/bpf/include/uapi) > > > > > > set(dwarves_LIB_SRCS dwarves.c dwarves_fprintf.c gobuffer strings > > > ctf_encoder.c ctf_loader.c libctf.c btf_encoder.c btf_loader.c libbtf.c > > > dwarf_loader.c dutil.c elf_symtab.c rbtree.c) > > > -add_library(dwarves SHARED ${dwarves_LIB_SRCS}) > > > +add_library(dwarves SHARED ${dwarves_LIB_SRCS} $<TARGET_OBJECTS:bpf>) > > > set_target_properties(dwarves PROPERTIES VERSION 1.0.0 SOVERSION 1) > > > set_target_properties(dwarves PROPERTIES INTERFACE_LINK_LIBRARIES "") > > > -target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES} bpf-shared) > > > +target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES}) > > > > > > set(dwarves_emit_LIB_SRCS dwarves_emit.c) > > > add_library(dwarves_emit SHARED ${dwarves_emit_LIB_SRCS}) > > > -- > > > 2.17.1 > > > > > -- > > - Arnaldo ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-02-19 18:22 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-02-19 3:02 [PATCH pahole] libbpf: build as PIC and statically link into libdwarves Andrii Nakryiko 2019-02-19 3:04 ` Andrii Nakryiko 2019-02-19 13:16 ` Arnaldo Carvalho de Melo 2019-02-19 18:22 ` Andrii Nakryiko
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.