|
|
@ -0,0 +1,203 @@ |
|
|
|
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
|
|
# |
|
|
|
# Filename: package/.../binutils/0001_binutils-gcc4.9-compat.patch |
|
|
|
# Copyright (C) 2015 The OpenSDE Project |
|
|
|
# |
|
|
|
# More information can be found in the files COPYING and README. |
|
|
|
# |
|
|
|
# This patch file is dual-licensed. It is available under the license the |
|
|
|
# patched project is licensed under, as long as it is an OpenSource license |
|
|
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
|
|
# of the GNU General Public License as published by the Free Software |
|
|
|
# Foundation; either version 2 of the License, or (at your option) any later |
|
|
|
# version. |
|
|
|
# --- SDE-COPYRIGHT-NOTE-END --- |
|
|
|
|
|
|
|
From 27b829ee701e29804216b3803fbaeb629be27491 Mon Sep 17 00:00:00 2001 |
|
|
|
From: Nick Clifton <nickc@redhat.com> |
|
|
|
Date: Wed, 29 Jan 2014 13:46:39 +0000 |
|
|
|
Subject: [PATCH] Following up on Tom's suggestion I am checking in a patch to |
|
|
|
replace the various bfd_xxx_set macros with static inline functions, so that |
|
|
|
we can avoid compile time warnings about comma expressions with unused |
|
|
|
values. |
|
|
|
|
|
|
|
* bfd-in.h (bfd_set_section_vma): Delete. |
|
|
|
(bfd_set_section_alignment): Delete. |
|
|
|
(bfd_set_section_userdata): Delete. |
|
|
|
(bfd_set_cacheable): Delete. |
|
|
|
* bfd.c (bfd_set_cacheable): New static inline function. |
|
|
|
* section.c (bfd_set_section_userdata): Likewise. |
|
|
|
(bfd_set_section_vma): Likewise. |
|
|
|
(bfd_set_section_alignment): Likewise. |
|
|
|
* bfd-in2.h: Regenerate. |
|
|
|
---
|
|
|
|
bfd/bfd-in.h | 5 ----- |
|
|
|
bfd/bfd-in2.h | 41 +++++++++++++++++++++++++++++++++++------ |
|
|
|
bfd/bfd.c | 8 ++++++++ |
|
|
|
bfd/section.c | 26 ++++++++++++++++++++++++++ |
|
|
|
5 files changed, 81 insertions(+), 11 deletions(-) |
|
|
|
|
|
|
|
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
|
|
|
|
index 3afd71b..c7c5a7d 100644
|
|
|
|
--- a/bfd/bfd-in.h
|
|
|
|
+++ b/bfd/bfd-in.h
|
|
|
|
@@ -292,9 +292,6 @@ typedef struct bfd_section *sec_ptr;
|
|
|
|
|
|
|
|
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) |
|
|
|
|
|
|
|
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
|
|
|
|
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
|
|
|
|
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
|
|
|
|
/* Find the address one past the end of SEC. */ |
|
|
|
#define bfd_get_section_limit(bfd, sec) \ |
|
|
|
(((bfd)->direction != write_direction && (sec)->rawsize != 0 \ |
|
|
|
@@ -517,8 +514,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
|
|
|
|
|
|
|
|
#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) |
|
|
|
|
|
|
|
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
|
|
|
|
-
|
|
|
|
extern bfd_boolean bfd_cache_close |
|
|
|
(bfd *abfd); |
|
|
|
/* NB: This declaration should match the autogenerated one in libbfd.h. */ |
|
|
|
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
|
|
|
|
index 71996db..b5aeb40 100644
|
|
|
|
--- a/bfd/bfd-in2.h
|
|
|
|
+++ b/bfd/bfd-in2.h
|
|
|
|
@@ -299,9 +299,6 @@ typedef struct bfd_section *sec_ptr;
|
|
|
|
|
|
|
|
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) |
|
|
|
|
|
|
|
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
|
|
|
|
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
|
|
|
|
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
|
|
|
|
/* Find the address one past the end of SEC. */ |
|
|
|
#define bfd_get_section_limit(bfd, sec) \ |
|
|
|
(((bfd)->direction != write_direction && (sec)->rawsize != 0 \ |
|
|
|
@@ -524,8 +521,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
|
|
|
|
|
|
|
|
#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) |
|
|
|
|
|
|
|
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
|
|
|
|
-
|
|
|
|
extern bfd_boolean bfd_cache_close |
|
|
|
(bfd *abfd); |
|
|
|
/* NB: This declaration should match the autogenerated one in libbfd.h. */ |
|
|
|
@@ -1029,7 +1024,7 @@ bfd *bfd_openr (const char *filename, const char *target);
|
|
|
|
|
|
|
|
bfd *bfd_fdopenr (const char *filename, const char *target, int fd); |
|
|
|
|
|
|
|
-bfd *bfd_openstreamr (const char *, const char *, void *);
|
|
|
|
+bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
|
|
|
|
|
|
|
|
bfd *bfd_openr_iovec (const char *filename, const char *target, |
|
|
|
void *(*open_func) (struct bfd *nbfd, |
|
|
|
@@ -1596,6 +1591,32 @@ struct relax_table {
|
|
|
|
int size; |
|
|
|
}; |
|
|
|
|
|
|
|
+/* Note: the following are provided as inline functions rather than macros
|
|
|
|
+ because not all callers use the return value. A macro implementation
|
|
|
|
+ would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
|
|
|
|
+ compilers will complain about comma expressions that have no effect. */
|
|
|
|
+static inline bfd_boolean
|
|
|
|
+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
|
|
|
|
+{
|
|
|
|
+ ptr->userdata = val;
|
|
|
|
+ return TRUE;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline bfd_boolean
|
|
|
|
+bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
|
|
|
|
+{
|
|
|
|
+ ptr->vma = ptr->lma = val;
|
|
|
|
+ ptr->user_set_vma = TRUE;
|
|
|
|
+ return TRUE;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline bfd_boolean
|
|
|
|
+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
|
|
|
|
+{
|
|
|
|
+ ptr->alignment_power = val;
|
|
|
|
+ return TRUE;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
/* These sections are global, and are managed by BFD. The application |
|
|
|
and target back end are not permitted to change the values in |
|
|
|
these sections. */ |
|
|
|
@@ -6415,6 +6436,14 @@ struct bfd
|
|
|
|
unsigned int selective_search : 1; |
|
|
|
}; |
|
|
|
|
|
|
|
+/* See note beside bfd_set_section_userdata. */
|
|
|
|
+static inline bfd_boolean
|
|
|
|
+bfd_set_cacheable (bfd * abfd, bfd_boolean val)
|
|
|
|
+{
|
|
|
|
+ abfd->cacheable = val;
|
|
|
|
+ return TRUE;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
typedef enum bfd_error |
|
|
|
{ |
|
|
|
bfd_error_no_error = 0, |
|
|
|
diff --git a/bfd/bfd.c b/bfd/bfd.c
|
|
|
|
index 8d0580c..2d174f3 100644
|
|
|
|
--- a/bfd/bfd.c
|
|
|
|
+++ b/bfd/bfd.c
|
|
|
|
@@ -311,6 +311,14 @@ CODE_FRAGMENT
|
|
|
|
. unsigned int selective_search : 1; |
|
|
|
.}; |
|
|
|
. |
|
|
|
+.{* See note beside bfd_set_section_userdata. *}
|
|
|
|
+.static inline bfd_boolean
|
|
|
|
+.bfd_set_cacheable (bfd * abfd, bfd_boolean val)
|
|
|
|
+.{
|
|
|
|
+. abfd->cacheable = val;
|
|
|
|
+. return TRUE;
|
|
|
|
+.}
|
|
|
|
+.
|
|
|
|
*/ |
|
|
|
|
|
|
|
#include "sysdep.h" |
|
|
|
diff --git a/bfd/section.c b/bfd/section.c
|
|
|
|
index fb19d8c..a661228 100644
|
|
|
|
--- a/bfd/section.c
|
|
|
|
+++ b/bfd/section.c
|
|
|
|
@@ -542,6 +542,32 @@ CODE_FRAGMENT
|
|
|
|
. int size; |
|
|
|
.}; |
|
|
|
. |
|
|
|
+.{* Note: the following are provided as inline functions rather than macros
|
|
|
|
+. because not all callers use the return value. A macro implementation
|
|
|
|
+. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
|
|
|
|
+. compilers will complain about comma expressions that have no effect. *}
|
|
|
|
+.static inline bfd_boolean
|
|
|
|
+.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
|
|
|
|
+.{
|
|
|
|
+. ptr->userdata = val;
|
|
|
|
+. return TRUE;
|
|
|
|
+.}
|
|
|
|
+.
|
|
|
|
+.static inline bfd_boolean
|
|
|
|
+.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
|
|
|
|
+.{
|
|
|
|
+. ptr->vma = ptr->lma = val;
|
|
|
|
+. ptr->user_set_vma = TRUE;
|
|
|
|
+. return TRUE;
|
|
|
|
+.}
|
|
|
|
+.
|
|
|
|
+.static inline bfd_boolean
|
|
|
|
+.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
|
|
|
|
+.{
|
|
|
|
+. ptr->alignment_power = val;
|
|
|
|
+. return TRUE;
|
|
|
|
+.}
|
|
|
|
+.
|
|
|
|
.{* These sections are global, and are managed by BFD. The application |
|
|
|
. and target back end are not permitted to change the values in |
|
|
|
. these sections. *} |
|
|
|
--
|
|
|
|
1.9.4 |
|
|
|
|
|
|
|
|