summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2006-12-17 23:56:51 +0000
committerRoland McGrath <roland@redhat.com>2006-12-17 23:56:51 +0000
commit8190db6a86a37aec86c81626ab1b083c96aff891 (patch)
tree2b065733f6ee44885a447e9506fae59518076048 /src
parent7c0e79ffc201e4828a050b35f2c9d96e3001cb48 (diff)
downloadelfutils-8190db6a86a37aec86c81626ab1b083c96aff891.tar.gz
propagate from branch 'com.redhat.elfutils' (head b4944cf70801d9dac056f4f80ef1334e5acb8bdc)
to branch 'com.redhat.elfutils.roland.pending' (head e7e402c668fb0670fc5f6b6a522853ae88f32f11)
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog13
-rw-r--r--src/Makefile.am6
-rw-r--r--src/elflint.c3
-rw-r--r--src/strip.c4
4 files changed, 20 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e89f6c0b..190c6732 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -4,6 +4,19 @@
two hash tables have different content (module expected omission
of undefined symbols).
+2006-10-31 Roland McGrath <roland@redhat.com>
+
+ * elflint.c (check_program_header): Don't complain about
+ p_filesz > p_memsz if p_memsz is zero and p_type is not PT_LOAD.
+
+2006-09-19 Jakub Jelinek <jakub@redhat.com>
+
+ * strip.c (process_file): Disallow -f on archives.
+
+2006-10-09 Roland McGrath <roland@redhat.com>
+
+ * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
+
2006-08-29 Roland McGrath <roland@redhat.com>
* Makefile.am (MAINTAINERCLEANFILES): New variable.
diff --git a/src/Makefile.am b/src/Makefile.am
index 470a6b3a..7c9eb842 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -133,9 +133,9 @@ am_libld_elf_i386_pic_a_OBJECTS = i386_ld.os
libld_elf_i386_so_SOURCES =
libld_elf_i386.so: libld_elf_i386_pic.a libld_elf_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- $(libelf) $(libeu) \
- -Wl,--version-script,$(srcdir)/libld_elf_i386.map
+ $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
+ $(libelf) $(libeu) \
+ -Wl,--version-script,$(srcdir)/libld_elf_i386.map
$(textrel_check)
endif
diff --git a/src/elflint.c b/src/elflint.c
index e5917392..06930ca8 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -3829,7 +3829,8 @@ loadable segment GNU_RELRO applies to is executable\n"));
program header offset in ELF header and PHDR entry do not match"));
}
- if (phdr->p_filesz > phdr->p_memsz)
+ if (phdr->p_filesz > phdr->p_memsz
+ && (phdr->p_memsz != 0 || phdr->p_type == PT_LOAD))
ERROR (gettext ("\
program header entry %d: file size greater than memory size\n"),
cnt);
diff --git a/src/strip.c b/src/strip.c
index fc6ddf50..4c6b7bfb 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -344,9 +344,9 @@ process_file (const char *fname)
case ELF_K_AR:
/* It is not possible to strip the content of an archive direct
the output to a specific file. */
- if (unlikely (output_fname != NULL))
+ if (unlikely (output_fname != NULL || debug_fname != NULL))
{
- error (0, 0, gettext ("%s: cannot use -o when stripping archive"),
+ error (0, 0, gettext ("%s: cannot use -o or -f when stripping archive"),
fname);
result = 1;
}