Re: gcc: Internal compiler error: program as got fatal signal 11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 10 May 2010 04:56:00 -0400, <chandrakumar@xxxxxxxxxxxxxxx> wrote:
> On Fri, 07 May 2010 07:53:05 -0700, Ian Lance Taylor <iant@xxxxxxxxxx>
> wrote:
>> <chandrakumar@xxxxxxxxxxxxxxx> writes:
>> 
>>> I am building a native compiler with sources gcc-2.95.3,
> binutils-2.10.1
>>> and glibc-2.2.5.
>> 
>> You know that these are all very old versions, right?  You are pretty
>> much on your own when it comes to debugging these.  You are most
>> likely running into problems which were fixed long ago.
>> 
>> 
>>> Note: Versions of gcc and binutils used to do the above steps are
>>> gcc-4.4.1 and binutils-2.20
>> 
>> Ah, so you do know.
>> 
>> 
>>> /home/ckumar/ck/gcc295_installation/glibc_build/csu/init-first.o
>>> gcc: Internal compiler error: program as got fatal signal 11
>> 
>>> Please provide me some lead in solving this.
>> 
>> Run the compilation command with the --save-temps -v option to save
>> the assembler input file and see precisely how the assembler is being
>> run.  Then start up the debugger and find out what happened.
>> 
>> 
>>> gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.10.1/gas -I. -D_GNU_SOURCE
> -I.
>>> -I../../binutils-2.10.1/gas -I../bfd
-I../../binutils-2.10.1/gas/config
>>> -I../../binutils-2.10.1/gas/../include -I../../binutils-2.10.1/gas/..
>>> -I../../binutils-2.10.1/gas/../bfd -I../../binutils-2.10.1/gas/../intl
>>> -I../intl -DLOCALEDIR="\"/usr/local/gcc2953_install//share/locale\""  

>>> -O2
>>> -U_FORTIFY_SOURCE -c ../../binutils-2.10.1/gas/app.c
>>> In file included from ./targ-cpu.h:1,
>>>                  from ../../binutils-2.10.1/gas/config/obj-elf.h:40,
>>>                  from ./obj-format.h:1,
>>>                  from ../../binutils-2.10.1/gas/config/te-linux.h:4,
>>>                  from ./targ-env.h:1,
>>>                  from ../../binutils-2.10.1/gas/as.h:620,
>>>                  from ../../binutils-2.10.1/gas/app.c:29:
>>> ../../binutils-2.10.1/gas/config/tc-i386.h:441: error: array type has
>>> incomplete element type
>>> make[3]: *** [app.o] Error 1
>>> make[3]: Leaving directory
>>> `/home/ckumar/ck/gcc295_installation/binutils_build/gas'
>>> make[2]: *** [all-recursive] Error 1
>>> make[2]: Leaving directory
>>> `/home/ckumar/ck/gcc295_installation/binutils_build/gas'
>>> make[1]: *** [all-recursive-am] Error 2
>>> make[1]: Leaving directory
>>> `/home/ckumar/ck/gcc295_installation/binutils_build/gas'
>>> make: *** [all-gas] Error 2
>>> --snip end--
>>>
>>> Modified md_relax_table[] to *md_relax_table in files tc-i386.h and
>>> tc-i386.c.
>> 
>> That doesn't sound right to me.  At least in current binutils sources,
>> the array type is defined in as.h.  After making this change, did you
>> try running the assembler testsuite, via make check-gas?
>> 
> 
> No, I didn't. I did now and there are 5 failures as shown below:
> 
> --snip start--
> Running
>
/home/ckumar/ck/gcc295_installation/binutils-2.10.1/gas/testsuite/gas/i386/i386.exp
> ...
> FAIL: i386 general
> FAIL: i386 opcode
> FAIL: i386 intel
> FAIL: i386 jump
> FAIL: i386 jump16
> ...
> ...
> 		=== gas Summary ===
> 
> # of expected passes		72
> # of unexpected failures	5
> ../as-new 2.10.1
> --snip end--
> 
> 
> I checked with the current binutils sources for the array type defined
in
> as.h. In binutils-2.10.1, that definition was moved into tc.h. I
included
> the definition in as.h of binutils-2.10.1 and built the binutils-2.10.1.
> The build is successful. 
> 
> On running the assembler testsuites via make check-gas:
> 
> --snip start--
> 		=== gas Summary ===
> 
> # of expected passes		77
> ../as-new 2.10.1
> --snip end--
> 
> 
> Now, I started the build of glibc-2.2.5 with the installed
binutils-2.10.1
> and gcc-2.95.3. The phenomenon I said earlier (gcc: Internal compiler
> error: program as got fatal signal 11) is not observed. But instead I
got
> the problem of "*** buffer overflow detected ***:
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar terminated" as shown
> below:
> 
> --snip start--
> ...
> ...
> ...
> a - login/utmpxname.os
> a - login/updwtmpx.os
> a - login/getutmpx.os
> a - login/getutmp.os
> a - elf/dl-open.os
> a - elf/dl-close.os
> a - elf/dl-iteratephdr.os
> a - elf/dl-addr.os
> a - elf/dl-profstub.os
> a - elf/dl-origin.os
> a - elf/dl-libc.os
> a - elf/dl-sym.os
> a - elf/unwind-dw2-fde-glibc.os
> a - elf/framestate.os
> *** buffer overflow detected ***:
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar terminated
> ======= Backtrace: =========
> /lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)[0x4010ede8]
> /lib/tls/i686/cmov/libc.so.6[0x4010de20]
> /lib/tls/i686/cmov/libc.so.6[0x4010d558]
> /lib/tls/i686/cmov/libc.so.6(_IO_default_xsputn+0x9e)[0x4009759e]
> /lib/tls/i686/cmov/libc.so.6(_IO_padn+0xd8)[0x4008b048]
> /lib/tls/i686/cmov/libc.so.6(_IO_vfprintf+0x2b0e)[0x4006d64e]
> /lib/tls/i686/cmov/libc.so.6(__vsprintf_chk+0xad)[0x4010d60d]
> /lib/tls/i686/cmov/libc.so.6(__sprintf_chk+0x2d)[0x4010d54d]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x804fdc5]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x804e13b]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x80508be]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x8052e32]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x804b77c]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x804c267]
> /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x40044b56]
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar[0x8049721]
> ======= Memory map: ========
> 08048000-08089000 r-xp 00000000 08:01 1711      
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar
> 08089000-0808a000 r--p 00040000 08:01 1711      
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar
> 0808a000-0808b000 rw-p 00041000 08:01 1711      
> /usr/local/gcc2953_install/i686-pc-linux-gnu/bin/ar
> 0957f000-09cfc000 rw-p 00000000 00:00 0          [heap]
> 40000000-4001b000 r-xp 00000000 08:01 921        /lib/ld-2.10.1.so
> 4001b000-4001c000 r--p 0001a000 08:01 921        /lib/ld-2.10.1.so
> 4001c000-4001d000 rw-p 0001b000 08:01 921        /lib/ld-2.10.1.so
> 4001d000-4001e000 r-xp 00000000 00:00 0          [vdso]
> 4001e000-40020000 rw-p 00000000 00:00 0 
> 40020000-40021000 r--p 00000000 08:01 135873    
> /usr/lib/locale/en_IN/LC_MESSAGES/SYS_LC_MESSAGES
> 40021000-4002c000 rw-p 00000000 00:00 0 
> 4002e000-4016c000 r-xp 00000000 08:01 1917      
> /lib/tls/i686/cmov/libc-2.10.1.so
> 4016c000-4016e000 r--p 0013e000 08:01 1917      
> /lib/tls/i686/cmov/libc-2.10.1.so
> 4016e000-4016f000 rw-p 00140000 08:01 1917      
> /lib/tls/i686/cmov/libc-2.10.1.so
> 4016f000-40173000 rw-p 00000000 00:00 0 
> 40181000-4019d000 r-xp 00000000 08:01 971        /lib/libgcc_s.so.1
> 4019d000-4019e000 r--p 0001b000 08:01 971        /lib/libgcc_s.so.1
> 4019e000-4019f000 rw-p 0001c000 08:01 971        /lib/libgcc_s.so.1
> bfc3e000-bfc59000 rw-p 00000000 00:00 0          [stack]
> Aborted
> make[2]: ***
[/home/ckumar/ck/gcc295_installation/glibc_build/libc_pic.a]
> Error 134
> make[2]: Leaving directory
> `/home/ckumar/ck/gcc295_installation/glibc-2.2.5/elf'
> make[1]: *** [elf/subdir_lib] Error 2
> make[1]: Leaving directory
> `/home/ckumar/ck/gcc295_installation/glibc-2.2.5'
> make: *** [all] Error 2
> --snip end--

I installed gcc-2.95.4 with the following software packages:

- cpp-2.95_2.95.4-27_i386.deb
- gcc-2.95_2.95.4-24_i386.deb

and created the following symbolic links for ver.2.95:

ln -s /usr/bin/gcc-2.95 /usr/bin/gcc
ln -s /usr/bin/gcov-2.95 /usr/bin/gcov


Now I am able to build gcc-2.95.3, binutils-2.10.1 and glibc-2.2.5
successfully.

I didn't encounter any problem with the above sources and I haven't done
any changes to the above source for the build. Whereas (as I said in
earlier mails regarding this) when I used gcc-4.4, I had to make a change
in the binutils-2.10.1 source and I had to set CFLAGS with "-O2
-U_FORTIFY_SOURCE" for building gcc-2.95.3.


>From this, I understand that:
1. we get problems while building older sources of GNU tool chain with the
latest gcc. 
2. we can get the binaries of older versions and use them for such builds.


Is my understanding correct?

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux