Package: binutils
Version: 2.16.1-2
Severity: important
Tags: patch

The current binutils can't compile the experimental glibc 2.3.5-2 with
unstable gcc-3.4 (3.4.4-5) or unstable gcc-4.0 (4.0.1-2) on m68k:

        make[3]: Entering directory 
`/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/glibc-2.3.5/intl'
        gcc-4.0 localealias.c -c -std=gnu99 -O2 -Wall -Winline 
-Wstrict-prototypes -Wwrite-strings -fstrict-aliasing -g -pipe      
-I../include -I. 
-I/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/m68k-libc/intl
 -I.. -I../libio  
-I/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/m68k-libc
 -I../sysdeps/m68k/elf -I../linuxthreads/sysdeps/unix/sysv/linux/m68k 
-I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread 
-I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv 
-I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/m68k 
-I../sysdeps/unix/sysv/linux/m68k -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu 
-I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet 
-I../sysdeps/unix/sysv -I../sysdeps/unix -I../sysdeps/posix 
-I../sysdeps/m68k/m68020 -I../sysdeps/m68k/fpu -I../sysdeps/m68k 
-I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 
-I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 
-I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem 
/usr/lib/gcc/m68k-linux-gnu/4.0.1/include -isystem 
/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/debian/include 
-D_LIBC_REENTRANT -include ../include/libc-symbols.h       
-D'LOCALEDIR="/usr/share/locale"' -D'LOCALE_ALIAS_PATH="/usr/share/locale"' -o 
/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/m68k-libc/intl/localealias.o
 -MD -MP -MF 
/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/m68k-libc/intl/localealias.o.dt
 -MT 
/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/m68k-libc/intl/localealias.o
        {standard input}: Assembler messages:
        {standard input}:878: Error: junk at end of line, first unrecognized 
character is `,'
        make[3]: *** 
[/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/m68k-libc/intl/localealias.o]
 Error 1
        make[3]: Leaving directory 
`/home/gotom/glibc/glibc_2.3.5-2.build4.0714.1/glibc-2.3.5/build-tree/glibc-2.3.5/intl'

It worked with gcc-3.3, but not gcc-3.4 or gcc-4.0.  The generated
assembler code showed:

   .LFE66:
        .size   _nl_expand_alias, .-_nl_expand_alias
        .local  maxmap
        .comm   maxmap,4,2
        .local  nmap            (<= line 878)
        .comm   nmap,4,2
        .section        __libc_freeres_ptrs
        #,"aw",@progbits        (<= the actual problem)
        .align  2
        .type   map, @object
        .size   map, 4

But the actual problem is line 881 has an invalid character `,' after
# comment.  This was discussed at the following threads:

        http://gcc.gnu.org/ml/gcc/2004-04/msg01251.html
        http://sources.redhat.com/ml/binutils/2004-04/msg00646.html

I attached the patch for binutils 2.16.1-2 which fixed to build glibc
on m68k again.

Regards,
-- gotom


--- /dev/null   2005-04-09 20:28:28.000000000 +0900
+++ binutils-2.16.1/debian/patches/130_m68k_glibc.dpatch        2005-07-21 
04:10:12.000000000 +0900
@@ -0,0 +1,60 @@
+#!/bin/sh -e
+## 130_m68k_glibc.dpatch by GOTO Masanori <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: gas ignores unknown text after line comment character.
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+       -patch) patch $patch_opts -p0 < $0;;
+       -unpatch) patch $patch_opts -p0 -R < $0;;
+        *)
+                echo >&2 "`basename $0`: script expects -patch|-unpatch as 
argument"
+                exit 1;;
+esac
+
+exit 0
+
[EMAIL PROTECTED]@
+http://kegel.com/crosstool/crosstool-0.37/patches/binutils-2.15.91.0.2/binutils-skip-comments.patch
+
+2004-04-23  Andreas Schwab  <[EMAIL PROTECTED]>
+
+        * read.c (read_a_source_file): Ignore unknown text after line
+        comment character.  Fix misleading comment.
+
+--- gas/read.c.org     2005-07-15 17:03:42.000000000 +0900
++++ gas/read.c 2005-07-15 17:38:01.000000000 +0900
+@@ -975,10 +975,14 @@ read_a_source_file (char *name)
+             unsigned int new_length;
+             char *tmp_buf = 0;
+ 
+-            bump_line_counters ();
+             s = input_line_pointer;
+             if (strncmp (s, "APP\n", 4))
+-              continue;       /* We ignore it */
++              {
++                /* We ignore it */
++                ignore_rest_of_line ();
++                continue;
++              }
++            bump_line_counters ();
+             s += 4;
+ 
+             sb_new (&sbuf);
+@@ -1077,7 +1081,7 @@ read_a_source_file (char *name)
+           continue;
+ #endif
+         input_line_pointer--;
+-        /* Report unknown char as ignored.  */
++        /* Report unknown char as error.  */
+         demand_empty_rest_of_line ();
+       }
+ 
--- binutils-2.16.1/debian/patches/00list.org   2005-07-21 04:05:41.000000000 
+0900
+++ binutils-2.16.1/debian/patches/00list       2005-07-15 17:48:54.000000000 
+0900
@@ -7,3 +7,4 @@
 117_mips_symbolic_link
 118_arm_pass_all
 120_mips_xgot_multigot_workaround
+130_m68k_glibc


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to