Re: [PATCH pahole] libbpf: build as PIC and statically link into libdwarves

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



cc Yonghong (mistyped his email)

-- Andrii

On Mon, Feb 18, 2019 at 7:02 PM Andrii Nakryiko <andriin@xxxxxx> 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@xxxxxx>
> ---
>  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
>



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux