summaryrefslogtreecommitdiff
path: root/patches/binutils
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-09-22 12:09:19 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-09-22 12:09:19 (GMT)
commit2d87a3583118c410fdd3a2fd2acfb281ec15537a (patch)
tree29e3bc2831e970fde6ea0769b67bf0821d7fe7ef /patches/binutils
parentc0cc140a6feb53213104a81b35cadec0cb04af9c (diff)
Add binutils-2.18.50.0.9.
Add a patch to binutils to not use '/' as a comment separator on i386 assembly when targeting bare metal (breaks linux kernel build). /trunk/patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/patches/binutils/2.14/110-i386-no-divide-comment.patch | 38 38 0 0 ++++++ /trunk/patches/binutils/2.14/270-i386-no-divide-comment.patch | 38 38 0 0 ++++++ /trunk/patches/binutils/2.16.1/160-i386-no-divide-comment.patch | 40 40 0 0 ++++++ /trunk/patches/binutils/2.17/210-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/patches/binutils/2.18/120-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch | 64 64 0 0 ++++++++++ /trunk/config/binutils.in | 6 6 0 0 + 11 files changed, 570 insertions(+)
Diffstat (limited to 'patches/binutils')
-rw-r--r--patches/binutils/2.14/110-i386-no-divide-comment.patch38
-rw-r--r--patches/binutils/2.14/270-i386-no-divide-comment.patch38
-rw-r--r--patches/binutils/2.16.1/160-i386-no-divide-comment.patch40
-rw-r--r--patches/binutils/2.17/210-i386-no-divide-comment.patch64
-rw-r--r--patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch64
-rw-r--r--patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch64
-rw-r--r--patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch64
-rw-r--r--patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch64
-rw-r--r--patches/binutils/2.18.50.0.9/100-arm-uclibcgnueabi.patch24
-rw-r--r--patches/binutils/2.18.50.0.9/110-ld-makefile-path.patch24
-rw-r--r--patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch21
-rw-r--r--patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch64
-rw-r--r--patches/binutils/2.18/120-i386-no-divide-comment.patch64
13 files changed, 633 insertions, 0 deletions
diff --git a/patches/binutils/2.14/110-i386-no-divide-comment.patch b/patches/binutils/2.14/110-i386-no-divide-comment.patch
new file mode 100644
index 0000000..699db8e
--- /dev/null
+++ b/patches/binutils/2.14/110-i386-no-divide-comment.patch
@@ -0,0 +1,38 @@
+diff -durN binutils-2.14.orig/gas/config/tc-i386.c binutils-2.14/gas/config/tc-i386.c
+--- binutils-2.14.orig/gas/config/tc-i386.c 2003-01-29 11:05:52.000000000 +0100
++++ binutils-2.14/gas/config/tc-i386.c 2008-09-22 08:54:50.000000000 +0200
+@@ -189,15 +189,10 @@
+ const char extra_symbol_chars[] = "*%-([";
+ #endif
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+ pre-processor is disabled, these aren't very useful. */
+-const char comment_chars[] = "#/";
+-#define PREFIX_SEPARATOR '\\'
++const char comment_chars[] = "#";
++#define PREFIX_SEPARATOR '/'
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -207,16 +202,7 @@
+ #NO_APP at the beginning of its output.
+ Also note that comments started like this one will always work if
+ '/' isn't otherwise defined. */
+-const char line_comment_chars[] = "#";
+-
+-#else
+-/* Putting '/' here makes it impossible to use the divide operator.
+- However, we need it for compatibility with SVR4 systems. */
+-const char comment_chars[] = "#";
+-#define PREFIX_SEPARATOR '/'
+-
+ const char line_comment_chars[] = "/#";
+-#endif
+
+ const char line_separator_chars[] = ";";
+
diff --git a/patches/binutils/2.14/270-i386-no-divide-comment.patch b/patches/binutils/2.14/270-i386-no-divide-comment.patch
new file mode 100644
index 0000000..47c56d0
--- /dev/null
+++ b/patches/binutils/2.14/270-i386-no-divide-comment.patch
@@ -0,0 +1,38 @@
+diff -durN binutils-2.15.orig/gas/config/tc-i386.c binutils-2.15/gas/config/tc-i386.c
+--- binutils-2.15.orig/gas/config/tc-i386.c 2004-05-17 21:36:09.000000000 +0200
++++ binutils-2.15/gas/config/tc-i386.c 2008-09-22 08:57:14.000000000 +0200
+@@ -185,15 +185,10 @@
+ const char extra_symbol_chars[] = "*%-([";
+ #endif
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+ pre-processor is disabled, these aren't very useful. */
+-const char comment_chars[] = "#/";
+-#define PREFIX_SEPARATOR '\\'
++const char comment_chars[] = "#";
++#define PREFIX_SEPARATOR '/'
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -203,16 +198,7 @@
+ #NO_APP at the beginning of its output.
+ Also note that comments started like this one will always work if
+ '/' isn't otherwise defined. */
+-const char line_comment_chars[] = "#";
+-
+-#else
+-/* Putting '/' here makes it impossible to use the divide operator.
+- However, we need it for compatibility with SVR4 systems. */
+-const char comment_chars[] = "#";
+-#define PREFIX_SEPARATOR '/'
+-
+ const char line_comment_chars[] = "/#";
+-#endif
+
+ const char line_separator_chars[] = ";";
+
diff --git a/patches/binutils/2.16.1/160-i386-no-divide-comment.patch b/patches/binutils/2.16.1/160-i386-no-divide-comment.patch
new file mode 100644
index 0000000..046a55f
--- /dev/null
+++ b/patches/binutils/2.16.1/160-i386-no-divide-comment.patch
@@ -0,0 +1,40 @@
+diff -durN binutils-2.16.1.orig/gas/config/tc-i386.c binutils-2.16.1/gas/config/tc-i386.c
+--- binutils-2.16.1.orig/gas/config/tc-i386.c 2005-04-13 19:58:42.000000000 +0200
++++ binutils-2.16.1/gas/config/tc-i386.c 2008-09-22 09:00:09.000000000 +0200
+@@ -192,16 +192,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+ pre-processor is disabled, these aren't very useful. */
+-const char comment_chars[] = "#/";
+-#define PREFIX_SEPARATOR '\\'
++const char comment_chars[] = "#";
++#define PREFIX_SEPARATOR '/'
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -211,16 +205,7 @@
+ #NO_APP at the beginning of its output.
+ Also note that comments started like this one will always work if
+ '/' isn't otherwise defined. */
+-const char line_comment_chars[] = "#";
+-
+-#else
+-/* Putting '/' here makes it impossible to use the divide operator.
+- However, we need it for compatibility with SVR4 systems. */
+-const char comment_chars[] = "#";
+-#define PREFIX_SEPARATOR '/'
+-
+-const char line_comment_chars[] = "/#";
+-#endif
++const char line_comment_chars[] = "#/";
+
+ const char line_separator_chars[] = ";";
+
diff --git a/patches/binutils/2.17/210-i386-no-divide-comment.patch b/patches/binutils/2.17/210-i386-no-divide-comment.patch
new file mode 100644
index 0000000..c6b3f62
--- /dev/null
+++ b/patches/binutils/2.17/210-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.17.orig/gas/config/tc-i386.c binutils-2.17/gas/config/tc-i386.c
+--- binutils-2.17.orig/gas/config/tc-i386.c 2006-04-07 08:40:57.000000000 +0200
++++ binutils-2.17/gas/config/tc-i386.c 2008-09-22 09:06:07.000000000 +0200
+@@ -196,24 +196,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -5486,20 +5472,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ default:
+@@ -5525,13 +5497,8 @@
+ fprintf (stream, _("\
+ -s ignored\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ }
+
+ #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
diff --git a/patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch b/patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch
new file mode 100644
index 0000000..f0d7bb8
--- /dev/null
+++ b/patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.18.50.0.4.orig/gas/config/tc-i386.c binutils-2.18.50.0.4/gas/config/tc-i386.c
+--- binutils-2.18.50.0.4.orig/gas/config/tc-i386.c 2008-02-08 17:44:10.000000000 +0100
++++ binutils-2.18.50.0.4/gas/config/tc-i386.c 2008-09-22 09:08:03.000000000 +0200
+@@ -300,24 +300,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -7243,20 +7229,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ case OPTION_MARCH:
+@@ -7392,13 +7364,8 @@
+ fprintf (stream, _("\
+ --32/--64 generate 32bit/64bit code\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ fprintf (stream, _("\
+ -march=CPU[,+EXTENSION...]\n\
+ generate code for CPU and EXTENSION, CPU is one of:\n\
diff --git a/patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch b/patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch
new file mode 100644
index 0000000..e435805
--- /dev/null
+++ b/patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.18.50.0.6.orig/gas/config/tc-i386.c binutils-2.18.50.0.6/gas/config/tc-i386.c
+--- binutils-2.18.50.0.6.orig/gas/config/tc-i386.c 2008-04-03 18:54:04.000000000 +0200
++++ binutils-2.18.50.0.6/gas/config/tc-i386.c 2008-09-22 09:09:23.000000000 +0200
+@@ -312,24 +312,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -7876,20 +7862,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ case OPTION_MARCH:
+@@ -8029,13 +8001,8 @@
+ fprintf (stream, _("\
+ --32/--64 generate 32bit/64bit code\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ fprintf (stream, _("\
+ -march=CPU[,+EXTENSION...]\n\
+ generate code for CPU and EXTENSION, CPU is one of:\n\
diff --git a/patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch b/patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch
new file mode 100644
index 0000000..af62265
--- /dev/null
+++ b/patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.18.50.0.7.orig/gas/config/tc-i386.c binutils-2.18.50.0.7/gas/config/tc-i386.c
+--- binutils-2.18.50.0.7.orig/gas/config/tc-i386.c 2008-05-04 16:28:10.000000000 +0200
++++ binutils-2.18.50.0.7/gas/config/tc-i386.c 2008-09-22 09:11:19.000000000 +0200
+@@ -312,24 +312,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -7920,20 +7906,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ case OPTION_MARCH:
+@@ -8084,13 +8056,8 @@
+ fprintf (stream, _("\
+ --32/--64 generate 32bit/64bit code\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ fprintf (stream, _("\
+ -march=CPU[,+EXTENSION...]\n\
+ generate code for CPU and EXTENSION, CPU is one of:\n\
diff --git a/patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch b/patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch
new file mode 100644
index 0000000..196671d
--- /dev/null
+++ b/patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.18.50.0.8.orig/gas/config/tc-i386.c binutils-2.18.50.0.8/gas/config/tc-i386.c
+--- binutils-2.18.50.0.8.orig/gas/config/tc-i386.c 2008-07-10 17:32:58.000000000 +0200
++++ binutils-2.18.50.0.8/gas/config/tc-i386.c 2008-09-22 09:12:39.000000000 +0200
+@@ -313,24 +313,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -7952,20 +7938,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ case OPTION_MARCH:
+@@ -8116,13 +8088,8 @@
+ fprintf (stream, _("\
+ --32/--64 generate 32bit/64bit code\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ fprintf (stream, _("\
+ -march=CPU[,+EXTENSION...]\n\
+ generate code for CPU and EXTENSION, CPU is one of:\n\
diff --git a/patches/binutils/2.18.50.0.9/100-arm-uclibcgnueabi.patch b/patches/binutils/2.18.50.0.9/100-arm-uclibcgnueabi.patch
new file mode 100644
index 0000000..b4504d4
--- /dev/null
+++ b/patches/binutils/2.18.50.0.9/100-arm-uclibcgnueabi.patch
@@ -0,0 +1,24 @@
+diff -durN binutils-2.18.50.0.8.orig/configure binutils-2.18.50.0.8/configure
+--- binutils-2.18.50.0.8.orig/configure 2008-07-10 17:32:56.000000000 +0200
++++ binutils-2.18.50.0.8/configure 2008-07-13 23:08:13.000000000 +0200
+@@ -2313,7 +2313,7 @@
+ noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+ libgloss_dir=arm
+ ;;
+- arm*-*-linux-gnueabi)
++ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
+ noconfigdirs="$noconfigdirs target-qthreads"
+ case ${with_newlib} in
+ no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+diff -durN binutils-2.18.50.0.8.orig/configure.ac binutils-2.18.50.0.8/configure.ac
+--- binutils-2.18.50.0.8.orig/configure.ac 2008-07-10 17:32:56.000000000 +0200
++++ binutils-2.18.50.0.8/configure.ac 2008-07-13 23:08:13.000000000 +0200
+@@ -562,7 +562,7 @@
+ noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+ libgloss_dir=arm
+ ;;
+- arm*-*-linux-gnueabi)
++ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
+ noconfigdirs="$noconfigdirs target-qthreads"
+ case ${with_newlib} in
+ no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
diff --git a/patches/binutils/2.18.50.0.9/110-ld-makefile-path.patch b/patches/binutils/2.18.50.0.9/110-ld-makefile-path.patch
new file mode 100644
index 0000000..41a2249
--- /dev/null
+++ b/patches/binutils/2.18.50.0.9/110-ld-makefile-path.patch
@@ -0,0 +1,24 @@
+diff -durN binutils-2.18.50.0.8.orig/ld/Makefile.am binutils-2.18.50.0.8/ld/Makefile.am
+--- binutils-2.18.50.0.8.orig/ld/Makefile.am 2008-04-03 18:54:05.000000000 +0200
++++ binutils-2.18.50.0.8/ld/Makefile.am 2008-07-13 23:15:40.000000000 +0200
+@@ -18,7 +18,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+diff -durN binutils-2.18.50.0.8.orig/ld/Makefile.in binutils-2.18.50.0.8/ld/Makefile.in
+--- binutils-2.18.50.0.8.orig/ld/Makefile.in 2008-07-10 17:32:58.000000000 +0200
++++ binutils-2.18.50.0.8/ld/Makefile.in 2008-07-13 23:15:40.000000000 +0200
+@@ -290,7 +290,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch b/patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch
new file mode 100644
index 0000000..f2f096d
--- /dev/null
+++ b/patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch
@@ -0,0 +1,21 @@
+diff -durN binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em binutils-2.18.50.0.8/ld/emultempl/elf32.em
+--- binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em 2008-07-10 17:33:23.000000000 +0200
++++ binutils-2.18.50.0.8/ld/emultempl/elf32.em 2008-07-13 23:19:29.000000000 +0200
+@@ -1220,6 +1220,8 @@
+ && command_line.rpath == NULL)
+ {
+ lib_path = (const char *) getenv ("LD_RUN_PATH");
++ if ((lib_path) && (strlen (lib_path) == 0))
++ lib_path = NULL;
+ if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
+ force))
+ break;
+@@ -1405,6 +1407,8 @@
+ rpath = command_line.rpath;
+ if (rpath == NULL)
+ rpath = (const char *) getenv ("LD_RUN_PATH");
++ if ((rpath) && (strlen (rpath) == 0))
++ rpath = NULL;
+ if (! (bfd_elf_size_dynamic_sections
+ (link_info.output_bfd, command_line.soname, rpath,
+ command_line.filter_shlib,
diff --git a/patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch b/patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch
new file mode 100644
index 0000000..196671d
--- /dev/null
+++ b/patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.18.50.0.8.orig/gas/config/tc-i386.c binutils-2.18.50.0.8/gas/config/tc-i386.c
+--- binutils-2.18.50.0.8.orig/gas/config/tc-i386.c 2008-07-10 17:32:58.000000000 +0200
++++ binutils-2.18.50.0.8/gas/config/tc-i386.c 2008-09-22 09:12:39.000000000 +0200
+@@ -313,24 +313,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -7952,20 +7938,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ case OPTION_MARCH:
+@@ -8116,13 +8088,8 @@
+ fprintf (stream, _("\
+ --32/--64 generate 32bit/64bit code\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ fprintf (stream, _("\
+ -march=CPU[,+EXTENSION...]\n\
+ generate code for CPU and EXTENSION, CPU is one of:\n\
diff --git a/patches/binutils/2.18/120-i386-no-divide-comment.patch b/patches/binutils/2.18/120-i386-no-divide-comment.patch
new file mode 100644
index 0000000..efbbcea
--- /dev/null
+++ b/patches/binutils/2.18/120-i386-no-divide-comment.patch
@@ -0,0 +1,64 @@
+diff -durN binutils-2.18.orig/gas/config/tc-i386.c binutils-2.18/gas/config/tc-i386.c
+--- binutils-2.18.orig/gas/config/tc-i386.c 2007-08-24 16:01:22.000000000 +0200
++++ binutils-2.18/gas/config/tc-i386.c 2008-09-22 08:11:42.000000000 +0200
+@@ -180,24 +180,10 @@
+ #endif
+ ;
+
+-#if (defined (TE_I386AIX) \
+- || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+- && !defined (TE_GNU) \
+- && !defined (TE_LINUX) \
+- && !defined (TE_NETWARE) \
+- && !defined (TE_FreeBSD) \
+- && !defined (TE_NetBSD)))
+ /* This array holds the chars that always start a comment. If the
+- pre-processor is disabled, these aren't very useful. The option
+- --divide will remove '/' from this list. */
+-const char *i386_comment_chars = "#/";
+-#define SVR4_COMMENT_CHARS 1
+-#define PREFIX_SEPARATOR '\\'
+-
+-#else
++ pre-processor is disabled, these aren't very useful. */
+ const char *i386_comment_chars = "#";
+ #define PREFIX_SEPARATOR '/'
+-#endif
+
+ /* This array holds the chars that only start a comment at the beginning of
+ a line. If the line seems to have the form '# 123 filename'
+@@ -6061,20 +6047,6 @@
+ break;
+
+ case OPTION_DIVIDE:
+-#ifdef SVR4_COMMENT_CHARS
+- {
+- char *n, *t;
+- const char *s;
+-
+- n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
+- t = n;
+- for (s = i386_comment_chars; *s != '\0'; s++)
+- if (*s != '/')
+- *t++ = *s;
+- *t = '\0';
+- i386_comment_chars = n;
+- }
+-#endif
+ break;
+
+ case OPTION_MARCH:
+@@ -6142,13 +6114,8 @@
+ fprintf (stream, _("\
+ --32/--64 generate 32bit/64bit code\n"));
+ #endif
+-#ifdef SVR4_COMMENT_CHARS
+- fprintf (stream, _("\
+- --divide do not treat `/' as a comment character\n"));
+-#else
+ fprintf (stream, _("\
+ --divide ignored\n"));
+-#endif
+ fprintf (stream, _("\
+ -march=CPU/-mtune=CPU generate code/optimize for CPU, where CPU is one of:\n\
+ i386, i486, pentium, pentiumpro, pentium4, nocona,\n\