This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] 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 <mjw@redhat.com>
---
 backends/ChangeLog         | 14 ++++++++++++++
 backends/aarch64_reloc.def |  4 ++--
 backends/arm_reloc.def     |  4 ++--
 backends/i386_reloc.def    |  4 ++--
 backends/ia64_reloc.def    |  4 ++--
 backends/ppc64_reloc.def   |  4 ++--
 backends/ppc_reloc.def     |  4 ++--
 backends/s390_reloc.def    |  4 ++--
 backends/sh_reloc.def      |  4 ++--
 backends/sparc_reloc.def   |  4 ++--
 backends/tilegx_reloc.def  |  3 ++-
 backends/x86_64_reloc.def  |  4 ++--
 12 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/backends/ChangeLog b/backends/ChangeLog
index 9f5975a..818e8d5 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,17 @@
+2015-03-09  Mark Wielaard  <mjw@redhat.com>
+
+	* aarch64_reloc.def (COPY): Add DYN.
+	* arm_reloc.def (COPY): Likewise.
+	* i386_reloc.def (COPY): Likewise.
+	* ia64_reloc.def (COPY): Likewise.
+	* ppc64_reloc.def (COPY): Likewise.
+	* ppc_reloc.def (COPY): Likewise.
+	* s390_reloc.def (COPY): Likewise.
+	* sh_reloc.def (COPY): Likewise.
+	* sparc_reloc.def (COPY): Likewise.
+	* tilegx_reloc.def (COPY): Likewise.
+	* x86_64_reloc.def (COPY): Likewise.
+
 2015-02-23  Petr Machata  <pmachata@redhat.com>
 
 	* arm_symbol.c (arm_symbol_type_name): New function.
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)
-- 
1.8.3.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]