summaryrefslogtreecommitdiff
path: root/src/elfcompress.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/elfcompress.c')
-rw-r--r--src/elfcompress.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/elfcompress.c b/src/elfcompress.c
index 1b5b1e36..65a922a7 100644
--- a/src/elfcompress.c
+++ b/src/elfcompress.c
@@ -52,6 +52,8 @@ static const char *foutput = NULL;
#define T_DECOMPRESS 1 /* none */
#define T_COMPRESS_ZLIB 2 /* zlib */
#define T_COMPRESS_GNU 3 /* zlib-gnu */
+#define WORD_BITS (8U * sizeof (unsigned int))
+
static int type = T_UNSET;
struct section_pattern
@@ -242,6 +244,12 @@ compress_section (Elf_Scn *scn, size_t orig_size, const char *name,
return res;
}
+static void
+set_section (unsigned int *sections, size_t ndx)
+{
+ sections[ndx / WORD_BITS] |= (1U << (ndx % WORD_BITS));
+}
+
static int
process_file (const char *fname)
{
@@ -275,12 +283,6 @@ process_file (const char *fname)
/* How many sections are we talking about? */
size_t shnum = 0;
-#define WORD_BITS (8U * sizeof (unsigned int))
- void set_section (size_t ndx)
- {
- sections[ndx / WORD_BITS] |= (1U << (ndx % WORD_BITS));
- }
-
bool get_section (size_t ndx)
{
return (sections[ndx / WORD_BITS] & (1U << (ndx % WORD_BITS))) != 0;
@@ -498,7 +500,7 @@ process_file (const char *fname)
else if (shdr->sh_type != SHT_NOBITS
&& (shdr->sh_flags & SHF_ALLOC) == 0)
{
- set_section (ndx);
+ set_section (sections, ndx);
/* Check if we might want to change this section name. */
if (! adjust_names
&& ((type != T_COMPRESS_GNU