From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Douglas RAILLARD <douglas.raillard@arm.com>
Cc: acme@redhat.com, dwarves@vger.kernel.org
Subject: Re: [PATCH] CMakeLists.txt: Add STATIC_LINK option
Date: Fri, 15 Oct 2021 11:39:34 -0300 [thread overview]
Message-ID: <YWmSpjBrLUFF87Tj@kernel.org> (raw)
In-Reply-To: <YWmOOP0/fF2BEd/s@kernel.org>
Em Fri, Oct 15, 2021 at 11:20:40AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Oct 15, 2021 at 10:22:43AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Fri, Oct 15, 2021 at 10:18:41AM -0300, Arnaldo Carvalho de Melo escreveu:
> > CMake Error at cmake/modules/FindDWARF.cmake:103 (message):
> > Could NOT find some ELF and DWARF libraries, please install the missing
> > packages
> > Call Stack (most recent call first):
> > CMakeLists.txt:64 (find_package)
> >
> >
> > -- Configuring incomplete, errors occurred!
> > See also "/var/home/acme/git/pahole/build/CMakeFiles/CMakeOutput.log".
> > ⬢[acme@toolbox build]$
> >
> > Which means I don't have those static library files, will try installing
> > them.
>
> I'm trying with the latest fedora that comes with static libraries,
> fedora:32, and there I noticed that we need to look for libzstd as well,
> I added it manually to:
>
> target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES} ${LIBBPF_LIBRARIES} ${ARGP_LIBRARY} ${OBSTACK_LIBRARY} ${BZ2_LIBRARY} ${LZMA_LIBRARY} -lzstd)
>
> [root@cc85f3a7b96f dwarves-1.22]# rpm -qa | grep -- -static
> zlib-static-1.2.11-21.fc32.x86_64
> glibc-static-2.31-6.fc32.x86_64
> elfutils-devel-static-0.183-1.fc32.x86_64
> xz-static-5.2.5-1.fc32.x86_64
> libxcrypt-static-4.4.20-2.fc32.x86_64
> libzstd-static-1.4.9-1.fc32.x86_64
> elfutils-libelf-devel-static-0.183-1.fc32.x86_64
> bzip2-static-1.0.8-2.fc32.x86_64
> [root@cc85f3a7b96f dwarves-1.22]# cat /etc/fedora-release
> Fedora release 32 (Thirty Two)
> [root@cc85f3a7b96f dwarves-1.22]#
>
> now I'm at:
>
> /usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/libdw.a(debuginfod-client.o): in function `__libdwfl_debuginfod_init':
> (.text.startup[.text.startup.group]+0x1b): undefined reference to `dlopen'
> /usr/bin/ld: (.text.startup[.text.startup.group]+0x36): undefined reference to `dlsym'
> /usr/bin/ld: (.text.startup[.text.startup.group]+0x4f): undefined reference to `dlsym'
> /usr/bin/ld: (.text.startup[.text.startup.group]+0x68): undefined reference to `dlsym'
> /usr/bin/ld: (.text.startup[.text.startup.group]+0x81): undefined reference to `dlsym'
> /usr/bin/ld: (.text.startup[.text.startup.group]+0xe0): undefined reference to `dlclose'
>
> that needs some more magic that I already forgot :-\
>
> But now out to lunch.
Before that:
[root@cc85f3a7b96f dwarves-1.22]# file build/pahole
build/pahole: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=c972bee0f67994e0c161ac3cf8bcc8b7f609d6ee, for GNU/Linux 3.2.0, with debug_info, not stripped, too many notes (256)
[root@cc85f3a7b96f dwarves-1.22]#
This after applying the patch below after yours, but then:
[root@cc85f3a7b96f dwarves-1.22]# build/pahole build/pahole
Segmentation fault (core dumped)
[root@cc85f3a7b96f dwarves-1.22]#
That doesn't happen with a non-static build:
[root@cc85f3a7b96f dwarves-1.22]# build/pahole list_head
struct list_head {
struct list_head * next; /* 0 8 */
struct list_head * prev; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
[root@cc85f3a7b96f dwarves-1.22]# ldd build/pahole
linux-vdso.so.1 (0x00007fff08654000)
libdwarves_reorganize.so.1 => /root/dwarves-1.22/build/libdwarves_reorganize.so.1 (0x00007f8af5b45000)
libdwarves.so.1 => /root/dwarves-1.22/build/libdwarves.so.1 (0x00007f8af5aad000)
libdw.so.1 => /lib64/libdw.so.1 (0x00007f8af5a07000)
libelf.so.1 => /lib64/libelf.so.1 (0x00007f8af59ec000)
libz.so.1 => /lib64/libz.so.1 (0x00007f8af59d2000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f8af59bf000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f8af5993000)
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f8af58b5000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8af58ae000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8af588c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8af56c2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8af5b4d000)
[root@cc85f3a7b96f dwarves-1.22]#
- Arnaldo
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ba467bf4dcff3106..73d8919056281f94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -127,7 +127,7 @@ endif()
add_library(dwarves ${dwarves_LIB_SRCS})
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} ${LIBBPF_LIBRARIES} ${ARGP_LIBRARY} ${OBSTACK_LIBRARY} ${BZ2_LIBRARY} ${LZMA_LIBRARY})
+target_link_libraries(dwarves ${DWARF_LIBRARIES} ${ZLIB_LIBRARIES} ${LIBBPF_LIBRARIES} ${ARGP_LIBRARY} ${OBSTACK_LIBRARY} ${BZ2_LIBRARY} ${LZMA_LIBRARY} ${ZSTD_LIBRARY} ${DL_LIBRARY})
set(dwarves_emit_LIB_SRCS dwarves_emit.c)
add_library(dwarves_emit ${dwarves_emit_LIB_SRCS})
diff --git a/cmake/modules/FindDWARF.cmake b/cmake/modules/FindDWARF.cmake
index 1b4ac499ea07e267..8fa5cc47cea86486 100644
--- a/cmake/modules/FindDWARF.cmake
+++ b/cmake/modules/FindDWARF.cmake
@@ -47,6 +47,16 @@ find_library(LZMA_LIBRARY
PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64 ~/usr/local/lib ~/usr/local/lib64
)
+find_library(ZSTD_LIBRARY
+ NAMES zstd
+ PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64 ~/usr/local/lib ~/usr/local/lib64
+)
+
+find_library(DL_LIBRARY
+ NAMES dl
+ PATHS /lib /lib64 /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64 ~/usr/local/lib ~/usr/local/lib64
+)
+
if (DWARF_INCLUDE_DIR AND LIBDW_INCLUDE_DIR AND DWARF_LIBRARY AND ELF_LIBRARY)
set(DWARF_FOUND TRUE)
set(DWARF_LIBRARIES ${DWARF_LIBRARY} ${ELF_LIBRARY})
next prev parent reply other threads:[~2021-10-15 14:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-15 10:10 [PATCH] CMakeLists.txt: Add STATIC_LINK option Douglas RAILLARD
2021-10-15 13:18 ` Arnaldo Carvalho de Melo
2021-10-15 13:22 ` Arnaldo Carvalho de Melo
2021-10-15 14:20 ` Arnaldo Carvalho de Melo
2021-10-15 14:39 ` Arnaldo Carvalho de Melo [this message]
2021-10-18 9:57 ` Douglas Raillard
2021-10-19 15:24 ` Arnaldo Carvalho de Melo
2021-10-19 16:03 ` Douglas Raillard
2021-10-19 17:29 ` Douglas Raillard
2021-10-20 12:49 ` Arnaldo Carvalho de Melo
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=YWmSpjBrLUFF87Tj@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=douglas.raillard@arm.com \
--cc=dwarves@vger.kernel.org \
/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