Differences between revisions 1 and 131 (spanning 130 versions)
Revision 1 as of 2005-12-20 14:09:16
Size: 3138
Editor: ?smarenka
Comment:
Revision 131 as of 2010-10-02 20:34:30
Size: 9212
Comment: this wiki is weird
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page tracks current issues with GCC for DebianM68kPorting. User support is at debian-68k@lists.debian.org. Buildd admins can be found at m68k-build@nocrew.org. #language en
## page was renamed from DebianM68kGcc

This page tracks current issues with [[GCC]] for [[M68k/Porting]]. User support and buildd admins can be found at debian-68k@lists.debian.org .

 * gcc-4.3 is now the default
 * tls patches which should work with gcc-4.4 (already in trunk): http://people.debian.org/~smarenka/m68k/tls/

<<Anchor(cross)>>
= Cross-Compilers =

  * [optional] build a sid chroot
  * add the following to {{{/etc/apt/sources.list}}}: {{{deb http://people.debian.org/~smarenka/m68k/cross-compilers ./}}}
  * {{{apt-get update && apt-get install gcc-4.3-m68k-linux-gnu}}}

== Building Cross-Compilers ==

 * Christian's cross-compiler guide for kernel building: http://people.debian.org/~cts/debian-m68k/cross-compile/
 * Roman's cross-compiler guide for crosscc: http://www.xs4all.nl/~zippel/crosscc/crosscc.README
 * Stephen's cross-compiler draft notes: http://people.debian.org/~smarenka/m68k/cross-compilers/aaareadme.txt

= Bugs =
Gathering the bugs in gcc-4.3_4.3.1-8.

== ice in find_reloads ==
 * hdf5
  * found in gcc 4.3.1-8
  * found in cross compiler
  * confirmed in 4.3.4-10+m68k from unreleased (tg@)
  * hit in kernel compile (btrfs) XXX why do we not use CONFIG_FRAME_POINTER?
  * [[http://people.debian.org/~smarenka/m68k/bugs/testreloads.c|test case]]
  * gnu pr [[http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37052|37052]]
  * bug #
{{{
testreloads.c:207: error: unable to generate reloads for:
(insn:QI 631 629 632 41 testreloads.c:94 (parallel [
            (set (cc0)
                (compare (reg/v:DI 0 %d0 [orig:117 j ] [117])
                    (reg:DI 4 %d4 [orig:115 pretmp.69 ] [115])))
            (clobber (reg:DI 273))
        ]) 12 {*m68k.md:521} (expr_list:REG_UNUSED (reg:DI 273)
        (nil)))
testreloads.c:207: internal compiler error: in find_reloads, at reload.c:3744
}}}
=== related? ===
 * ffmpeg-debian
  * found in gcc-4.3_4.3.1-2
{{{
avidec.c:606: error: unable to generate reloads for:
(insn:QI 1388 1785 1389 174 /build/buildd/ffmpeg-debian-0.svn20080206/libavformat/avidec.c:211 (parallel [
            (set (cc0)
                (compare (reg:DI 10 %a2 [orig:62 pretmp.702 ] [62])
                    (reg:DI 4 %d4 [430])))
            (clobber (reg:DI 431))
        ]) 12 {*m68k.md:521} (expr_list:REG_UNUSED (reg:DI 431)
        (nil)))
avidec.c:606: internal compiler error: in find_reloads, at reload.c:3744}}}
 * ffmpeg-free
  * found in gcc-4.3_4.3.0-3
{{{
avidec.c:606: error: unable to generate reloads for:
(insn:QI 1388 1785 1389 174 avidec.c:211 (parallel [
            (set (cc0)
                (compare (reg:DI 10 %a2 [orig:62 pretmp.702 ] [62])
                    (reg:DI 4 %d4 [430])))
            (clobber (reg:DI 431))
        ]) 12 {*m68k.md:521} (expr_list:REG_UNUSED (reg:DI 431)
        (nil)))
avidec.c:606: internal compiler error: in find_reloads, at reload.c:3744}}}
 * llvm
  * found in gcc-4.3_4.3.0-3
  * different than above, although same area
{{{
InstructionCombining.cpp:9187: error: unable to generate reloads for:
(insn:QI 1193 1192 1194 210 InstructionCombining.cpp:8939 (parallel [
            (set (cc0)
                (compare (reg:DI 0 %d0)
                    (reg:DI 4 %d4 [499])))
            (clobber (reg:DI 501))
        ]) 12 {*m68k.md:521} (expr_list:REG_DEAD (reg:DI 0 %d0)
        (expr_list:REG_UNUSED (reg:DI 501)
            (nil))))
InstructionCombining.cpp:9187: internal compiler error: in find_reloads, at reload.c:3744}}}
== ice in reload_cse_simplify_operands ==
 * r-base
  * found in gcc-4.3_4.3.1-8
  * found in cross-compiler
  * [[http://people.debian.org/~smarenka/m68k/bugs/postreload.c|test case]]
  * gnu pr [[http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37053|37053]]
  * bug #
{{{
postreload.c:886: error: insn does not satisfy its constraints:
(insn 309 2675 2677 36 postreload.c:446 (set (reg:SI 0 %d0)
        (plus:SI (mem/f:SI (reg:SI 8 %a0) [0 S4 A16])
            (reg:SI 0 %d0))) 132 {*addsi3_internal} (nil))
postreload.c:886: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395
}}}
 * pymol
  * found in gcc-4.3_4.3.1-8
{{{
Selector.c:3225: error: insn does not satisfy its constraints:
(insn 276 502 504 38 layer3/Selector.c:3213 (set (reg:SI 0 %d0)
        (plus:SI (mem/f:SI (reg:SI 8 %a0) [0 S4 A16])
            (reg:SI 0 %d0))) 132 {*addsi3_internal} (nil))
layer3/Selector.c:3225: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395}}}

=== related? ===

 * gnudatalanguage
  * found in gcc-4.3_4.3.1-8
{{{convol.cpp:127: error: insn does not satisfy its constraints:
(insn 1771 4339 1772 331 convol_inc1.cpp:355 (set (reg:HI 0 %d0 [orig:675+2 ] [675])
        (mult:HI (mem:HI (reg:SI 9 %a1) [304 S2 A16])
            (reg:HI 0 %d0 [orig:673+2 ] [673]))) 178 {mulhi3} (nil))
convol.cpp:127: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395
}}}

 * meep
  * found in gcc-4.3_4.3.1-8
{{{../../../src/boundaries.cpp:441: error: insn does not satisfy its constraints:
(insn 1749 3315 3317 237 ../../../src/boundaries.cpp:427 (set (reg:SI 6 %d6)
        (plus:SI (mem/s/f:SI (reg:SI 9 %a1) [68 <variable>.P S4 A8])
            (reg:SI 6 %d6))) 132 {*addsi3_internal} (nil))
../../../src/boundaries.cpp:441: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.3/README.Bugs> for instructions.
}}}
 * courier
  * found in gcc-4.3_4.3.0-3
  * {{{utf7.c:229: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395}}}
 * gnome-keyring
  * found in gcc-4.3_4.3.1-2
  * {{{gkr-crypto.c:151: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395}}}
 * insighttoolkit
  * found in gcc-4.3_4.3.1-8
  * {{{jdsample.c:141: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395}}}
 * osptoolkit
  * {{{sptransapi.c:121: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395}}}
== ice Segmentation fault: Reconfirm with -8 ==
 * gnome-settings-daemon
  * found in gcc-4.3_4.3.0-3
  * {{{gsd-xmodmap.c:397: internal compiler error: Segmentation fault}}}
 * oolite
  * found in gcc-4.3_4.3.1-2
  * {{{PlayerEntity Additions.m:1882: internal compiler error: Segmentation fault}}}
 * opencv
  * found in gcc-4.3_4.3.1-2
  * {{{cvfundam.cpp:311: internal compiler error: Segmentation fault}}}
 * gmfsk
  * {{{internal compiler error: Segmentation fault}}}
 * gpc-4.1
  * {{{rtsc.pas:430: internal compiler error: Segmentation fault}}}

== Other ==
 * simutrans
  * found in gcc-4.3_4.3.1-8
  * {{{route.cc:520: internal compiler error: in subreg_get_info, at rtlanal.c:3185}}}

== Reconfirm w/ -8 ==
 * compiz
  * found in gcc-4.3_4.3.0-3
  * {{{decorator.moc.cpp:130: internal compiler error: in value_format, at dwarf2out.c:7015}}}
 * iceowl
  * found in gcc-4.3_4.3.0-3
  * {{{error: asm-specifier for variable ¿result¿ conflicts with asm clobber list}}}
 * linux-2.6
  * found in gcc-4.3
 * genesis
  * found in gcc-4.3_4.3.0-3
  * {{{hines_chip.c:595: internal compiler error: in reg_overlap_mentioned_for_reload_p, at reload.c:6525}}}
 * gforth
  * {{{./engine.c:340: error: unable to find a register to spill in class ADDR_REGS}}}
 * libgnupdf
  * {{{ccZe2Dva.s:1523: Error: operands mismatch -- statement `rol.w #0,%d2' ignored}}}
 * openvrml
  * {{{Internal error: Killed (program cc1plus)}}}
 * washngo_2.12-1
  * {{{Internal error: Killed (program cc1)}}}

= Old glibc vs. gcc-4.3 =
Per http://lists.debian.org/debian-68k/2008/04/msg00033.html

The glibc support for the C99 inline semantics was added in glibc 2.6 and all the non-TLS support was removed. GCC 4.3 and later use C99 inline semantics in -std=gnu99 mode

This was resolved with -5 (although the first GCC we managed to build was -8). -std=gnu99 mode can now be used without any issue.
Line 4: Line 189:

 * If you find a bug not listed [http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=m68k;users=m68k-build@nocrew.org;pri0=tag:help,moreinfo,needs-help,needs-port,pending,upstream,patch,gcc-40,toolchain here], please usertag it or drop us a message.
 * See DebianM68kPorting for more info about usertags.


= gcc-4.0 bugs =

 * debian [http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=gcc-4.0 bts]
 * upstream gcc [http://gcc.gnu.org/bugzilla/ bugs]
 * If you find a bug not [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=m68k;users=m68k-build@nocrew.org;|listed]], please usertag it or drop us a message, see [[M68k/Porting]].
= gcc-4.x bugs =
 * debian [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=gcc-4.3|gcc-4.3 bts]]
 * debian [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=gcc-4.2|gcc-4.2 bts]]
 * debian [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=gcc-4.1|gcc-4.1 bts]]
 * upstream gcc [[http://gcc.gnu.org/bugzilla/|bugs]]
Line 14: Line 196:

== fixed (tracking packages) ==

 * ICE in cp_expr_size ('''fixed''')
  * debian #323686 and 323133, gnu pr 21123
  * found in gcc-4.0 4.0.2-2, fixed in 4.0.2-5.
  * rebuild: kfolding_1.0.0-rc2-4 klibido_0.2.4.1-1 ksubtile_1.1-1 ktorrent_1.1-1 ktrack_0.3.0-alpha1-6.1
  * done: aleph_0.9.0-2.1, ardour_0.99-3, bibletime_1.5.1-1, baghira_0.7a-1, inkscape_0.42.2+0.43pre1-1
Line 24: Line 197:

 * ICE in instantiate_virtual_regs_lossage
  * debian #333536, gnu pr 25043 (last updated 20051126)
  * from 25043: fixed in 4.1, 4.2, fails 4.0.3
  * found in gcc-4.0 4.0.2-5
  * pkgs: cl-sql_3.3.3-1, ntop_3:3.2-1, plptools_0.14-1, rsplib_1.0.0-1, squashfs_1:2.2r2-1, xfsprogs_2.7.7-1

 * ICE: output_operand: invalid expression as operand:
  * debian #270340, gnu pr 18592 (last updated 20050723)
  * found in gcc-4.0 4.0.2-2
  * pkgs: gnutls11_1.0.16-14, openmsx_0.5.2-4, zynaddsubfx_2.2.1-2.1 log4cxx_0.9.7-4 (w/gcc-4.0)
  * Ask if this needs to be filed separately against 4.0.3? Check test case against 4.0.3.

 * nmh: ICE reload_cse_simplify_operands
  * debian #340293, gnu pr 24912 (last updated 20051121)
  * from 24912: fixed in trunk? (gnu pr is closed)
  * found in gcc-4.0 4.0.2-5
  * Ask if this needs to be filed separately against 4.0.3? Check test case against 4.0.3.

 * csound_1:4.23f13-1: executable segfaults
  * debian #342121, gnu pr 25496 (filed 20051219)
  * found in gcc-4.0 4.0.2-5
  * note: accessing a char array as a long is an aliasing violation, per 25496 -- share with csound maintainer.


== not upstream yet ==

 * make: fatal error: internal consistency failure
  * debian #344041
  * found in gcc-4.0 4.0.2-5

 * fftw3: ICE in reload
  * debian #323426,
  * found in gcc-3.4 3.4.4-9, found in gcc-4.0 4.0.2-4
  * needs a test case

== no gcc bug filed yet ==

 * asterisk_1:1.0.9.dfsg-5: segfault
  * found in gcc-4.0 4.0.2-3

 * Assembler messages: Error: value out of range
  * found in gcc-4.0 4.0.2-3
  * pkgs: torcs_1.2.4-1, grace_1:5.1.18-4 (338433)
  * works fine with latest binutils and gcc-3.3, but not gcc-4.0.
  * needs a test case and a gcc-4.0 bug filed.

== gcc-3.4 bugs ==
 
  * ICE verify_initial_elim_offsets
   * found in gcc-3.4 3.4.4-9
   * gcc-4.0 yields 323133 (fixed in 4.0.3)
   * pkgs: kdemultimedia, koffice
   * should build with gcc-4.0_4.0.2-5
   * kdemultimedia is confirmed to build with gcc-4.0_4.0.2-5.
 * [[http://gcc.gnu.org/bugs.html|GCC Bugs]]
== binNMUs ==
 * binNMU [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=binNMU;users=m68k-build@nocrew.org|bugs]]
== Compiler status ==
 * We don't have an Ada or D compiler at the moment since both compilers require special bootstrapping which has never been done. Michael Casadevall has been been able to build the Ada cross-compiler, but hasn't successfully bootstrapped the native compiler
 * D will probably require similar work done for it.

This page tracks current issues with GCC for M68k/Porting. User support and buildd admins can be found at debian-68k@lists.debian.org .

Cross-Compilers

  • [optional] build a sid chroot
  • add the following to /etc/apt/sources.list: deb http://people.debian.org/~smarenka/m68k/cross-compilers ./

  • apt-get update && apt-get install gcc-4.3-m68k-linux-gnu

Building Cross-Compilers

Bugs

Gathering the bugs in gcc-4.3_4.3.1-8.

ice in find_reloads

  • hdf5
    • found in gcc 4.3.1-8
    • found in cross compiler
    • confirmed in 4.3.4-10+m68k from unreleased (tg@)
    • hit in kernel compile (btrfs) XXX why do we not use CONFIG_FRAME_POINTER?
    • test case

    • gnu pr 37052

    • bug #

testreloads.c:207: error: unable to generate reloads for:
(insn:QI 631 629 632 41 testreloads.c:94 (parallel [
            (set (cc0)
                (compare (reg/v:DI 0 %d0 [orig:117 j ] [117])
                    (reg:DI 4 %d4 [orig:115 pretmp.69 ] [115])))
            (clobber (reg:DI 273))
        ]) 12 {*m68k.md:521} (expr_list:REG_UNUSED (reg:DI 273)
        (nil)))
testreloads.c:207: internal compiler error: in find_reloads, at reload.c:3744

related?

  • ffmpeg-debian
    • found in gcc-4.3_4.3.1-2

avidec.c:606: error: unable to generate reloads for:
(insn:QI 1388 1785 1389 174 /build/buildd/ffmpeg-debian-0.svn20080206/libavformat/avidec.c:211 (parallel [
            (set (cc0)
                (compare (reg:DI 10 %a2 [orig:62 pretmp.702 ] [62])
                    (reg:DI 4 %d4 [430])))
            (clobber (reg:DI 431))
        ]) 12 {*m68k.md:521} (expr_list:REG_UNUSED (reg:DI 431)
        (nil)))
avidec.c:606: internal compiler error: in find_reloads, at reload.c:3744
  • ffmpeg-free
    • found in gcc-4.3_4.3.0-3

avidec.c:606: error: unable to generate reloads for:
(insn:QI 1388 1785 1389 174 avidec.c:211 (parallel [
            (set (cc0)
                (compare (reg:DI 10 %a2 [orig:62 pretmp.702 ] [62])
                    (reg:DI 4 %d4 [430])))
            (clobber (reg:DI 431))
        ]) 12 {*m68k.md:521} (expr_list:REG_UNUSED (reg:DI 431)
        (nil)))
avidec.c:606: internal compiler error: in find_reloads, at reload.c:3744
  • llvm
    • found in gcc-4.3_4.3.0-3
    • different than above, although same area

InstructionCombining.cpp:9187: error: unable to generate reloads for:
(insn:QI 1193 1192 1194 210 InstructionCombining.cpp:8939 (parallel [
            (set (cc0)
                (compare (reg:DI 0 %d0)
                    (reg:DI 4 %d4 [499])))
            (clobber (reg:DI 501))
        ]) 12 {*m68k.md:521} (expr_list:REG_DEAD (reg:DI 0 %d0)
        (expr_list:REG_UNUSED (reg:DI 501)
            (nil))))
InstructionCombining.cpp:9187: internal compiler error: in find_reloads, at reload.c:3744

ice in reload_cse_simplify_operands

  • r-base
    • found in gcc-4.3_4.3.1-8
    • found in cross-compiler
    • test case

    • gnu pr 37053

    • bug #

postreload.c:886: error: insn does not satisfy its constraints:
(insn 309 2675 2677 36 postreload.c:446 (set (reg:SI 0 %d0)
        (plus:SI (mem/f:SI (reg:SI 8 %a0) [0 S4 A16])
            (reg:SI 0 %d0))) 132 {*addsi3_internal} (nil))
postreload.c:886: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395
  • pymol
    • found in gcc-4.3_4.3.1-8

Selector.c:3225: error: insn does not satisfy its constraints:
(insn 276 502 504 38 layer3/Selector.c:3213 (set (reg:SI 0 %d0)
        (plus:SI (mem/f:SI (reg:SI 8 %a0) [0 S4 A16])
            (reg:SI 0 %d0))) 132 {*addsi3_internal} (nil))
layer3/Selector.c:3225: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395

related?

  • gnudatalanguage
    • found in gcc-4.3_4.3.1-8

{{{convol.cpp:127: error: insn does not satisfy its constraints: (insn 1771 4339 1772 331 convol_inc1.cpp:355 (set (reg:HI 0 %d0 [orig:675+2 ] [675])

  • (mult:HI (mem:HI (reg:SI 9 %a1) [304 S2 A16])
    • (reg:HI 0 %d0 [orig:673+2 ] [673]))) 178 {mulhi3} (nil))

convol.cpp:127: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395 }}}

  • meep
    • found in gcc-4.3_4.3.1-8

{{{../../../src/boundaries.cpp:441: error: insn does not satisfy its constraints: (insn 1749 3315 3317 237 ../../../src/boundaries.cpp:427 (set (reg:SI 6 %d6)

  • (plus:SI (mem/s/f:SI (reg:SI 9 %a1) [68 <variable>.P S4 A8])

    • (reg:SI 6 %d6))) 132 {*addsi3_internal} (nil))

../../../src/boundaries.cpp:441: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395 Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.3/README.Bugs> for instructions. }}}

  • courier
    • found in gcc-4.3_4.3.0-3
    • utf7.c:229: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395

  • gnome-keyring
    • found in gcc-4.3_4.3.1-2
    • gkr-crypto.c:151: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395

  • insighttoolkit
    • found in gcc-4.3_4.3.1-8
    • jdsample.c:141: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395

  • osptoolkit
    • sptransapi.c:121: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395

ice Segmentation fault: Reconfirm with -8

  • gnome-settings-daemon
    • found in gcc-4.3_4.3.0-3
    • gsd-xmodmap.c:397: internal compiler error: Segmentation fault

  • oolite
    • found in gcc-4.3_4.3.1-2
    • PlayerEntity Additions.m:1882: internal compiler error: Segmentation fault

  • opencv
    • found in gcc-4.3_4.3.1-2
    • cvfundam.cpp:311: internal compiler error: Segmentation fault

  • gmfsk
    • internal compiler error: Segmentation fault

  • gpc-4.1
    • rtsc.pas:430: internal compiler error: Segmentation fault

Other

  • simutrans
    • found in gcc-4.3_4.3.1-8
    • route.cc:520: internal compiler error: in subreg_get_info, at rtlanal.c:3185

Reconfirm w/ -8

  • compiz
    • found in gcc-4.3_4.3.0-3
    • decorator.moc.cpp:130: internal compiler error: in value_format, at dwarf2out.c:7015

  • iceowl
    • found in gcc-4.3_4.3.0-3
    • error: asm-specifier for variable ¿result¿ conflicts with asm clobber list

  • linux-2.6
    • found in gcc-4.3
  • genesis
    • found in gcc-4.3_4.3.0-3
    • hines_chip.c:595: internal compiler error: in reg_overlap_mentioned_for_reload_p, at reload.c:6525

  • gforth
    • ./engine.c:340: error: unable to find a register to spill in class ADDR_REGS

  • libgnupdf
    • ccZe2Dva.s:1523: Error: operands mismatch -- statement `rol.w #0,%d2' ignored

  • openvrml
    • Internal error: Killed (program cc1plus)

  • washngo_2.12-1
    • Internal error: Killed (program cc1)

Old glibc vs. gcc-4.3

Per http://lists.debian.org/debian-68k/2008/04/msg00033.html

The glibc support for the C99 inline semantics was added in glibc 2.6 and all the non-TLS support was removed. GCC 4.3 and later use C99 inline semantics in -std=gnu99 mode

This was resolved with -5 (although the first GCC we managed to build was -8). -std=gnu99 mode can now be used without any issue.

m68k usertags

gcc-4.x bugs

upstream

binNMUs

Compiler status

  • We don't have an Ada or D compiler at the moment since both compilers require special bootstrapping which has never been done. Michael Casadevall has been been able to build the Ada cross-compiler, but hasn't successfully bootstrapped the native compiler
  • D will probably require similar work done for it.