Changed files:
binutils-gasp.patch -> 1.14
binutils-pt_pax_flags.patch -> 1.9
diff -urNbB binutils-2.16.91.0.2.org/gas/macro.c binutils-2.16.91.0.2/gas/macro.c
--- binutils-2.16.91.0.2.org/gas/macro.c 2005-05-10 22:46:44.000000000 +0000
+++ binutils-2.16.91.0.2/gas/macro.c 2005-07-21 18:31:04.000000000 +0000
diff -urNbB binutils-2.16.91.0.2.org/gas/macro.c binutils-2.16.91.0.2/gas/macro.c
--- binutils-2.16.91.0.2.org/gas/macro.c 2005-05-10 22:46:44.000000000 +0000
+++ binutils-2.16.91.0.2/gas/macro.c 2005-07-21 18:31:04.000000000 +0000
static int get_apost_token (int, sb *, sb *, int);
static int sub_actual (int, sb *, sb *, struct hash_control *, int, sb *, int);
static const char *macro_expand_body
static int get_apost_token (int, sb *, sb *, int);
static int sub_actual (int, sb *, sb *, struct hash_control *, int, sb *, int);
static const char *macro_expand_body
static void free_macro(macro_entry *);
#define ISWHITE(x) ((x) == ' ' || (x) == '\t')
static void free_macro(macro_entry *);
#define ISWHITE(x) ((x) == ' ' || (x) == '\t')
static const char *
macro_expand_body (sb *in, sb *out, formal_entry *formals,
static const char *
macro_expand_body (sb *in, sb *out, formal_entry *formals,
{
sb t;
int src = 0, inquote = 0, macro_line = 0;
{
sb t;
int src = 0, inquote = 0, macro_line = 0;
else if (in->ptr[src] == '\\')
{
src++;
else if (in->ptr[src] == '\\')
{
src++;
{
/* Sub in till the next ')' literally. */
src++;
{
/* Sub in till the next ')' literally. */
src++;
else
{
src = sb_skip_white (src + 5, in);
else
{
src = sb_skip_white (src + 5, in);
{
const char *name;
formal_entry *f = new_formal ();
{
const char *name;
formal_entry *f = new_formal ();
else if (in->ptr[src] == '"'
|| (macro_mri && in->ptr[src] == '\''))
{
else if (in->ptr[src] == '"'
|| (macro_mri && in->ptr[src] == '\''))
{
body. */
static const char *
body. */
static const char *
{
sb t;
formal_entry *ptr;
{
sb t;
formal_entry *ptr;
/* Peel off the actuals and store them away in the hash tables' actuals. */
idx = sb_skip_white (idx, in);
/* Peel off the actuals and store them away in the hash tables' actuals. */
idx = sb_skip_white (idx, in);
sb_add_string (&ptr->actual, buffer);
}
sb_add_string (&ptr->actual, buffer);
}
}
/* Discard any unnamed formal arguments. */
}
/* Discard any unnamed formal arguments. */
*EXPAND. Return 1 if a macro is found, 0 otherwise. */
int
*EXPAND. Return 1 if a macro is found, 0 otherwise. */
int
const char **error, macro_entry **info)
{
const char *s;
const char **error, macro_entry **info)
{
const char *s;
sb_add_char (&line_sb, *s++);
sb_new (expand);
sb_add_char (&line_sb, *s++);
sb_new (expand);
success, or an error message otherwise. */
const char *
success, or an error message otherwise. */
const char *
{
sb sub;
formal_entry f;
{
sb sub;
formal_entry f;
sb_reset (out);
idx = sb_skip_comma (idx, in);
sb_reset (out);
idx = sb_skip_comma (idx, in);
- if (irpc && in->ptr[idx] == '"')
- ++idx;
+@@ -1333,7 +1351,7 @@
+ ++idx;
+ }
+
- while (idx < in->len)
+ while (idx < in->len && in->ptr[idx] != comment_char)
{
if (!irpc)
idx = get_any_string (idx, in, &f.actual);
- while (idx < in->len)
+ while (idx < in->len && in->ptr[idx] != comment_char)
{
if (!irpc)
idx = get_any_string (idx, in, &f.actual);
-@@ -1349,7 +1367,7 @@
- int nxt;
-
+@@ -1347,7 +1365,7 @@
+ in_quotes = ! in_quotes;
+
nxt = sb_skip_white (idx + 1, in);
- if (nxt >= in->len)
+ if (nxt >= in->len || in->ptr[nxt] == comment_char)
{
idx = nxt;
break;
nxt = sb_skip_white (idx + 1, in);
- if (nxt >= in->len)
+ if (nxt >= in->len || in->ptr[nxt] == comment_char)
{
idx = nxt;
break;
-@@ -1359,7 +1377,7 @@
- sb_add_char (&f.actual, in->ptr[idx]);
- err = macro_expand_body (&sub, out, &f, h, 0);
+ err = macro_expand_body (&sub, out, &f, h, 0, comment_char);
if (err != NULL)
- err = macro_expand_body (&sub, out, &f, h, 0);
+ err = macro_expand_body (&sub, out, &f, h, 0, comment_char);
if (err != NULL)
diff -uNr binutils-2.15.94.0.2.2.orig/bfd/elflink.c binutils-2.15.94.0.2.2/bfd/elflink.c
--- binutils-2.15.94.0.2.2.orig/bfd/elflink.c 2005-02-07 20:42:44.000000000 +0100
+++ binutils-2.15.94.0.2.2/bfd/elflink.c 2005-02-20 13:13:17.432547560 +0100
diff -uNr binutils-2.15.94.0.2.2.orig/bfd/elflink.c binutils-2.15.94.0.2.2/bfd/elflink.c
--- binutils-2.15.94.0.2.2.orig/bfd/elflink.c 2005-02-07 20:42:44.000000000 +0100
+++ binutils-2.15.94.0.2.2/bfd/elflink.c 2005-02-20 13:13:17.432547560 +0100
if (!is_elf_hash_table (info->hash))
return TRUE;
if (!is_elf_hash_table (info->hash))
return TRUE;
+ else if (info->noexecheap)
+ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
+
+ else if (info->noexecheap)
+ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
+
- elf_tdata (output_bfd)->relro = info->relro;
if (info->execstack)
- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+ {
if (info->execstack)
- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
+ {
for (inputobj = info->input_bfds;
inputobj;
inputobj = inputobj->link_next)
for (inputobj = info->input_bfds;
inputobj;
inputobj = inputobj->link_next)
if (s)
{
if (s->flags & SEC_CODE)
if (s)
{
if (s->flags & SEC_CODE)
diff -uNr binutils-2.15.94.0.2.2.orig/include/elf/common.h binutils-2.15.94.0.2.2/include/elf/common.h
--- binutils-2.15.94.0.2.2.orig/include/elf/common.h 2004-11-22 21:33:32.000000000 +0100
+++ binutils-2.15.94.0.2.2/include/elf/common.h 2005-02-20 13:13:17.482539960 +0100
diff -uNr binutils-2.15.94.0.2.2.orig/include/elf/common.h binutils-2.15.94.0.2.2/include/elf/common.h
--- binutils-2.15.94.0.2.2.orig/include/elf/common.h 2004-11-22 21:33:32.000000000 +0100
+++ binutils-2.15.94.0.2.2/include/elf/common.h 2005-02-20 13:13:17.482539960 +0100
-@@ -293,12 +293,27 @@
- #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
+ #define PT_GNU_SHR (PT_LOOS + 0x474e554) /* Sharable segment */
+#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */
/* Program segment permissions, in program header p_flags field. */
+#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */
/* Program segment permissions, in program header p_flags field. */