commit cc4e10fb398d40fb90e15056d808a596ef893cc3 Author: Mark Wielaard Date: Mon Mar 9 22:43:08 2015 +0100 backends: COPY relocations can also happen in ET_DYN. In particular COPY relocations might happen in PIE executables, which are ET_DYN. Found on Fedora Rawhide with run-elflint-self.sh. Signed-off-by: Mark Wielaard diff --git a/backends/aarch64_reloc.def b/backends/aarch64_reloc.def index 36d29e6..2e16e98 100644 --- a/backends/aarch64_reloc.def +++ b/backends/aarch64_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for AArch64. -*- C -*- - Copyright (C) 2013, 2014 Red Hat, Inc. + Copyright (C) 2013, 2014, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -30,7 +30,7 @@ RELOC_TYPE (ABS64, REL|EXEC|DYN) RELOC_TYPE (ABS32, REL|EXEC|DYN) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JUMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/arm_reloc.def b/backends/arm_reloc.def index 4b7894b..113648e 100644 --- a/backends/arm_reloc.def +++ b/backends/arm_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for arm. -*- C -*- - Copyright (C) 2005-2010, 2014 Red Hat, Inc. + Copyright (C) 2005-2010, 2014, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -48,7 +48,7 @@ RELOC_TYPE (THM_XPC22, REL) RELOC_TYPE (TLS_DTPMOD32, EXEC|DYN) RELOC_TYPE (TLS_DTPOFF32, EXEC|DYN) RELOC_TYPE (TLS_TPOFF32, EXEC|DYN) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JUMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/i386_reloc.def b/backends/i386_reloc.def index bd273b3..de3575d 100644 --- a/backends/i386_reloc.def +++ b/backends/i386_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for i386. -*- C -*- - Copyright (C) 2000, 2001, 2002, 2003, 2005, 2009 Red Hat, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2005, 2009, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -29,7 +29,7 @@ /* NAME, REL|EXEC|DYN */ RELOC_TYPE (NONE, 0) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (32, REL|EXEC|DYN) RELOC_TYPE (PC32, REL|EXEC|DYN) RELOC_TYPE (GOT32, REL) diff --git a/backends/ia64_reloc.def b/backends/ia64_reloc.def index 9e058c8..2428925 100644 --- a/backends/ia64_reloc.def +++ b/backends/ia64_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for ia64. -*- C -*- - Copyright (C) 2005, 2006 Red Hat, Inc. + Copyright (C) 2005, 2006, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -88,7 +88,7 @@ RELOC_TYPE (PCREL22, REL) RELOC_TYPE (PCREL64I, REL) RELOC_TYPE (IPLTMSB, REL|EXEC|DYN) RELOC_TYPE (IPLTLSB, REL|EXEC|DYN) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (SUB, 0) RELOC_TYPE (LTOFF22X, REL) RELOC_TYPE (LDXMOV, REL) diff --git a/backends/ppc64_reloc.def b/backends/ppc64_reloc.def index 3a693cf..15a73ba 100644 --- a/backends/ppc64_reloc.def +++ b/backends/ppc64_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for ppc64. -*- C -*- - Copyright (C) 2005 Red Hat, Inc. + Copyright (C) 2005, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -46,7 +46,7 @@ RELOC_TYPE (GOT16, REL) RELOC_TYPE (GOT16_LO, REL) RELOC_TYPE (GOT16_HI, REL) RELOC_TYPE (GOT16_HA, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/ppc_reloc.def b/backends/ppc_reloc.def index dc963a0..3723a9c 100644 --- a/backends/ppc_reloc.def +++ b/backends/ppc_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for ppc. -*- C -*- - Copyright (C) 2005 Red Hat, Inc. + Copyright (C) 2005, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -47,7 +47,7 @@ RELOC_TYPE (GOT16_LO, REL) RELOC_TYPE (GOT16_HI, REL) RELOC_TYPE (GOT16_HA, REL) RELOC_TYPE (PLTREL24, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/s390_reloc.def b/backends/s390_reloc.def index b4686a3..cdef9eb 100644 --- a/backends/s390_reloc.def +++ b/backends/s390_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for s390. -*- C -*- - Copyright (C) 2005, 2006 Red Hat, Inc. + Copyright (C) 2005, 2006, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -37,7 +37,7 @@ RELOC_TYPE (PC32, REL|EXEC|DYN) RELOC_TYPE (GOT12, REL) RELOC_TYPE (GOT32, REL) RELOC_TYPE (PLT32, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/sh_reloc.def b/backends/sh_reloc.def index 66a5a9d..aded361 100644 --- a/backends/sh_reloc.def +++ b/backends/sh_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for SH. -*- C -*- - Copyright (C) 2005 Red Hat, Inc. + Copyright (C) 2005, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -59,7 +59,7 @@ RELOC_TYPE (TLS_DTPOFF32, DYN) RELOC_TYPE (TLS_TPOFF32, DYN) RELOC_TYPE (GOT32, REL) RELOC_TYPE (PLT32, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/sparc_reloc.def b/backends/sparc_reloc.def index c39b0fa..2aeb129 100644 --- a/backends/sparc_reloc.def +++ b/backends/sparc_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for sparc. -*- C -*- - Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2009, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -47,7 +47,7 @@ RELOC_TYPE (GOT22, REL) RELOC_TYPE (PC10, REL) RELOC_TYPE (PC22, REL) RELOC_TYPE (WPLT30, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/tilegx_reloc.def b/backends/tilegx_reloc.def index 9736286..1018110 100644 --- a/backends/tilegx_reloc.def +++ b/backends/tilegx_reloc.def @@ -1,5 +1,6 @@ /* List the relocation types for tilegx. -*- C -*- Copyright (C) 2012 Tilera Corporation + Copyright (C) 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -44,7 +45,7 @@ RELOC_TYPE (HW3, REL) RELOC_TYPE (HW0_LAST, REL) RELOC_TYPE (HW1_LAST, REL) RELOC_TYPE (HW2_LAST, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN) diff --git a/backends/x86_64_reloc.def b/backends/x86_64_reloc.def index 8ed98f6..ad84efa 100644 --- a/backends/x86_64_reloc.def +++ b/backends/x86_64_reloc.def @@ -1,5 +1,5 @@ /* List the relocation types for x86-64. -*- C -*- - Copyright (C) 2000, 2001, 2002, 2003, 2005, 2009 Red Hat, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2005, 2009, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -33,7 +33,7 @@ RELOC_TYPE (64, REL|EXEC|DYN) RELOC_TYPE (PC32, REL|EXEC|DYN) RELOC_TYPE (GOT32, REL) RELOC_TYPE (PLT32, REL) -RELOC_TYPE (COPY, EXEC) +RELOC_TYPE (COPY, EXEC|DYN) RELOC_TYPE (GLOB_DAT, EXEC|DYN) RELOC_TYPE (JUMP_SLOT, EXEC|DYN) RELOC_TYPE (RELATIVE, EXEC|DYN)