From e3e8411bec4ef30d331d6185bd2650a3fc56ea09 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Fri, 5 Jun 2020 22:52:41 +0100 Subject: [PATCH] libctf, link: add CTF_LINK_OMIT_VARIABLES_SECTION This flag (not used anywhere yet) causes the variables section to be omitted from the output CTF dict. include/ * ctf-api.h (CTF_LINK_OMIT_VARIABLES_SECTION): New. libctf/ * ctf-link.c (ctf_link_one_input_archive_member): Check CTF_LINK_OMIT_VARIABLES_SECTION. --- include/ChangeLog | 4 ++++ include/ctf-api.h | 3 +++ libctf/ChangeLog | 5 +++++ libctf/ctf-link.c | 3 ++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/ChangeLog b/include/ChangeLog index daf0fe2a564..896f33387b4 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2020-07-22 Nick Alcock + + * ctf-api.h (CTF_LINK_OMIT_VARIABLES_SECTION): New. + 2020-07-22 Nick Alcock * ctf-api.h (CTF_LINK_SHARE_DUPLICATED): No longer unimplemented. diff --git a/include/ctf-api.h b/include/ctf-api.h index c3683db0996..f034f9859dd 100644 --- a/include/ctf-api.h +++ b/include/ctf-api.h @@ -90,6 +90,9 @@ typedef struct ctf_link_sym emitted into them. */ #define CTF_LINK_EMPTY_CU_MAPPINGS 0x4 +/* Omit the content of the variables section. */ +#define CTF_LINK_OMIT_VARIABLES_SECTION 0x8 + /* Symbolic names for CTF sections. */ typedef enum ctf_sect_names diff --git a/libctf/ChangeLog b/libctf/ChangeLog index 58eb2f61de3..4ec74427e51 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,3 +1,8 @@ +2020-07-22 Nick Alcock + + * ctf-link.c (ctf_link_one_input_archive_member): Check + CTF_LINK_OMIT_VARIABLES_SECTION. + 2020-07-22 Nick Alcock * ctf-impl.h (ctf_type_id_key): New, the key in the diff --git a/libctf/ctf-link.c b/libctf/ctf-link.c index 886106cb478..043d6a2f530 100644 --- a/libctf/ctf-link.c +++ b/libctf/ctf-link.c @@ -685,7 +685,8 @@ ctf_link_one_input_archive_member (ctf_file_t *in_fp, const char *name, void *ar arg->in_fp = in_fp; if ((err = ctf_type_iter_all (in_fp, ctf_link_one_type, arg)) > -1) - err = ctf_variable_iter (in_fp, ctf_link_one_variable, arg); + if (!(in_fp->ctf_link_flags & CTF_LINK_OMIT_VARIABLES_SECTION)) + err = ctf_variable_iter (in_fp, ctf_link_one_variable, arg); arg->in_input_cu_file = 0; -- 2.30.2