Go to file
Arnaldo Carvalho de Melo 75f3520fed strings: Rename strings.h to avoid clashing with /usr/include/strings.h
This was detected with:

  In file included from /home/acme/git/pahole/strings.h:9,
                   from /usr/include/string.h:432,
                   from /home/acme/git/pahole/lib/bpf/src/libbpf_common.h:12,
                   from /home/acme/git/pahole/lib/bpf/src/libbpf.h:20,
                   from /home/acme/git/pahole/lib/bpf/src/ringbuf.c:20:
  /home/acme/git/pahole/lib/bpf/src/btf.h:33:11: error: expected ‘;’ before ‘void’
     33 | LIBBPF_API void btf__free(struct btf *btf);
        |           ^~~~~
        |           ;

libbpf_common.h has:

  #include <string.h>

  #ifndef LIBBPF_API
  #define LIBBPF_API __attribute__((visibility("default")))
  #endif

So before defining LIBBPF_API it includes libc's string.h that in turn
includes pahole's strings.h and now it includes:

  #include "lib/bpf/src/btf.h"

That will need the LIBBPF_API, b00m.

So lets just rename pahole's strings.h to pahole_strings.h to avoid this
pitfall.

This patch was moved to before this problem takes place so that we keep
everything bisectable.

Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2020-10-20 17:11:34 -03:00
cmake/modules cmake: libebl was merged into libdw 2020-02-03 08:42:13 +01:00
lib libbpf: Update to latest libbpf version 2020-10-08 14:36:51 -03:00
man-pages pahole: Implement --packed 2020-10-08 10:11:31 -03:00
ostra ostra: Initial python3 conversion 2019-04-23 12:02:22 -03:00
rpm/SPECS dwarves: Prep v1.18 2020-10-02 17:29:59 -03:00
.gitignore pahole: Add build dir, config.h to .gitignore 2019-02-11 12:55:46 -03:00
.gitmodules pahole: add libbpf as submodule under lib/bpf 2019-02-11 12:56:40 -03:00
btf_encoder.c btf_encoder: revamp how per-CPU variables are encoded 2020-10-09 12:57:35 -03:00
btf_encoder.h btf_encoder: Allow disabling BTF var encoding. 2020-09-21 17:00:16 -03:00
btf_loader.c btf_loader: Use libbpf to load BTF 2020-10-09 12:43:42 -03:00
btfdiff v1.13: New release 2019-04-16 16:13:19 -03:00
changes-v1.13 v1.13: New release 2019-04-16 16:13:19 -03:00
changes-v1.16 dwarves: Prep v1.16 2019-12-16 11:43:53 -03:00
changes-v1.17 dwarves: Prep v1.17 2020-03-13 16:36:02 -03:00
changes-v1.18 dwarves: Prep v1.18 2020-10-02 17:29:59 -03:00
CMakeLists.txt strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
codiff.c codiff: Remove unused filenames variable 2019-07-01 16:41:02 -03:00
config.h.cmake [DWARVES] Fixes a FIXME relating to a missing elf (libdw) symbol check. 2008-02-12 21:08:49 -02:00
COPYING [LICENSE]: Add COPYING file and add missing license info on some files 2007-12-17 14:15:42 -02:00
ctf_encoder.c libctf: The type_ids returned are uint32_t fixup where it was uint16_t 2019-03-11 11:44:53 -03:00
ctf_encoder.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
ctf_loader.c dwarves: Move the common initialization of fields for 'struct type' 2020-08-05 15:16:19 -03:00
ctf.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
ctfdwdiff ctfdwdiff: Don't ask for variables and inline expansions in pfunct 2009-03-31 19:21:46 -03:00
ctracer.c dwarves: Adopt tag__is_base_type() from ctrace.c 2020-06-24 14:14:33 -03:00
dtagnames.c Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
dutil.c dutils: Allow for having a priv area per strlist 2020-08-05 15:16:19 -03:00
dutil.h dutils: Allow for having a priv area per strlist 2020-08-05 15:16:19 -03:00
dwarf_loader.c strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
dwarves_emit.c emit: Remove unused 'is_pointer' variable 2019-07-02 10:27:16 -03:00
dwarves_emit.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
dwarves_fprintf.c fprintf: Support DW_TAG_string_type 2020-09-18 18:19:22 -03:00
dwarves_reorganize.c reorganize: Enclose bitfield routines under ifdef 2019-07-02 12:28:50 -03:00
dwarves_reorganize.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
dwarves.c strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
dwarves.h strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
elf_symtab.c Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
elf_symtab.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
elfcreator.c elfcreator: Address initialization warning emitted by 'gcc -O6' 2019-12-16 11:19:47 -03:00
elfcreator.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
fullcircle v1.13: New release 2019-04-16 16:13:19 -03:00
gobuffer.c gobuffer: Do not crash on object without any public symbols 2020-01-17 13:54:15 -03:00
gobuffer.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
hash.h [DWARVES]: Use a hash table for the tags in a CU 2008-02-11 11:47:17 -02:00
libbtf.c btf_encoder: revamp how per-CPU variables are encoded 2020-10-09 12:57:35 -03:00
libbtf.h btf_encoder: revamp how per-CPU variables are encoded 2020-10-09 12:57:35 -03:00
libctf.c libctf: Make can't get header message to appear only in verbose mode 2020-10-01 10:08:25 -03:00
libctf.h libctf: The type_ids returned are uint32_t fixup where it was uint16_t 2019-03-11 11:44:53 -03:00
list.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
MANIFEST strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
NEWS dwarves: Prep v1.18 2020-10-02 17:29:59 -03:00
pahole_strings.h strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
pahole.c btf_encoder: Discard CUs after BTF encoding 2020-10-09 12:49:42 -03:00
pdwtags.c core: Allow the loaders to advertise features they have 2019-04-15 14:45:27 -03:00
pfunct.c btf_loader: Add support for BTF_KIND_FUNC 2019-11-05 12:04:23 -03:00
pglobal.c pglobal: Allow passing the format path specifier, to use with BTF 2019-10-24 08:17:16 -03:00
prefcnt.c prefcnt: Avoid ambiguous else with for_each macro 2019-07-02 12:31:57 -03:00
rbtree.c Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
rbtree.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
README [CMAKE]: Make the default install prefix be /usr/local 2007-04-19 18:01:47 -03:00
README.btf v1.13: New release 2019-04-16 16:13:19 -03:00
README.cross README: Add instructions to do a cross build 2020-08-17 09:52:02 -03:00
README.ctracer ctracer: update README.ctracer, f9 has the dwarves 2008-10-29 08:54:53 -02:00
README.DEBUG README.DEBUG: Add an extra step to make the instructions cut'n'exec 2017-12-14 14:15:54 -03:00
README.tarball docs: Add command line to generate tarball with a prefix 2020-03-12 16:55:15 -03:00
regtest regtest: Accept --diff instad of plain 'diff' as long option 2012-05-14 19:36:58 -03:00
scncopy.c Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
strings.c strings: Rename strings.h to avoid clashing with /usr/include/strings.h 2020-10-20 17:11:34 -03:00
syscse.c dwarves: Make function__for_each_parameter receive 'cu' arg 2020-01-09 14:16:52 -03:00

Build instructions:

1. install cmake
2. mkdir build
3. cd build
4. cmake -D__LIB=lib ..
5. make install

Default is to be installed on /usr/local, see rpm spec file for
installing on other places.

Known to work scenarios:

Mandriva Cooker:

cmake 2.4.5-1mdv2007.1
libelfutils1-devel 0.123-1mdv2007.1

Debian Unstable:

cmake 2.4.5-1
libdw-dev 0.123-2

Fedora Core 6:

cmake 2.4.5-2.fc6
elfutils-devel 0.126-1.fc6