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