Differences between revisions 108 and 137 (spanning 29 versions)
Revision 108 as of 2008-08-06 02:31:44
Size: 5980
Editor: ?smarenka
Comment:
Revision 137 as of 2016-06-12 04:27:02
Size: 9704
Editor: PaulWise
Comment: freewrt.org is dead, stretch has m68k cross compilers
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
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,

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.4 with TLS backport is now the default
 * works rather well
 * builds from unmodified Debian unstable sources (thanks doko!)
 * TLS capable eglibc in Debian unstable (thanks Aurélien!)
 * next version will be gcc-4.6 (we will skip gcc-4.5 and it will not be released with wheezy according to doko)
 * gcc-4.3 (and older) have been removed from Debian unstable already (by April 2011)

= m68k usertags =
 * 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]].

== binNMUs ==
 * binNMU [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=binNMU;users=m68k-build@nocrew.org|bugs]]

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

  * build a stretch chroot for amd64
  * A metapackage {{{gcc-m68k-linux-gnu}}} (also cpp, g++) is available
  * These are built according to BuildingCrossCompilers

== Building Cross-Compilers ==

 * Best to start with [[EmdebianToolchain]].
 * 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




= obsolete? =

The information below is probably mostly obsolete
Line 8: Line 41:
Line 11: Line 43:
== ice in find_reloads ==
Line 13: Line 46:
  * test case built   * 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]]
Line 15: Line 52:
{{{testreloads.c:207: error: unable to generate reloads for: {{{
testreloads.c:207: error: unable to generate reloads for:
Line 25: Line 63:

== Related to above? ==
=== related? ===
Line 30: Line 66:
{{{avidec.c:606: error: unable to generate reloads for: {{{
avidec.c:606: error: unable to generate reloads for:
Line 39: Line 76:
Line 42: Line 78:
{{{avidec.c:606: error: unable to generate reloads for: {{{
avidec.c:606: error: unable to generate reloads for:
Line 51: Line 88:
Line 54: Line 90:
{{{InstructionCombining.cpp:9187: error: unable to generate reloads for:   * different than above, although same area
{{{
InstructionCombining.cpp:9187: error: unable to generate reloads for:
Line 64: Line 102:

== Related? Reconfirm with -8 ==
== 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.
}}}
Line 70: Line 150:
Line 74: Line 153:
Line 78: Line 156:
Line 81: Line 158:

== Related? Reconfirm with -8 ==
== ice Segmentation fault: Reconfirm with -8 ==
Line 87: Line 162:
Line 91: Line 165:
Line 95: Line 168:
Line 98: Line 170:
Line 102: Line 173:
== 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}}}
Line 103: Line 179:
Line 107: Line 182:
Line 111: Line 185:
Line 114: Line 187:

 * simutrans
  * found in gcc-4.3_4.3.0-3
  * {{{route.cc:520: internal compiler error: in subreg_get_info, at rtlanal.c:3185}}}
Line 122: Line 190:
Line 125: Line 192:
Line 128: Line 194:
Line 131: Line 196:
Line 135: Line 199:
Line 137: Line 200:
Line 140: Line 202:
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.

= m68k usertags =

 * 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"].
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 149: Line 207:

 * 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]
 * 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 155: Line 212:

Line 158: Line 213:

 * [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]
 
 * [[http://gcc.gnu.org/bugs.html|GCC Bugs]]
Line 166: Line 215:

* 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
 * 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; Thorsten Glaser has discovered that the System'Address type must be coerced into %a0 instead of %d0 by GCC, so the ball is now in the hands of the GCC/GNAT developers

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.4 with TLS backport is now the default
  • works rather well
  • builds from unmodified Debian unstable sources (thanks doko!)
  • TLS capable eglibc in Debian unstable (thanks Aurélien!)
  • next version will be gcc-4.6 (we will skip gcc-4.5 and it will not be released with wheezy according to doko)
  • gcc-4.3 (and older) have been removed from Debian unstable already (by April 2011)

m68k usertags

binNMUs

Cross-Compilers

  • build a stretch chroot for amd64
  • A metapackage gcc-m68k-linux-gnu (also cpp, g++) is available

  • These are built according to BuildingCrossCompilers

Building Cross-Compilers

obsolete?

The information below is probably mostly obsolete

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.

gcc-4.x bugs

upstream

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; Thorsten Glaser has discovered that the System'Address type must be coerced into %a0 instead of %d0 by GCC, so the ball is now in the hands of the GCC/GNAT developers
  • D will probably require similar work done for it.