10297
Comment:
|
← Revision 138 as of 2016-06-12 04:39:50 ⇥
9725
ports category
|
Deletions are marked like this. | Additions are marked like this. |
Line 22: | Line 22: |
* [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}}} * … or … * build a sid chroot for amd64 (or request from ThorstenGlaser to add binaries for your architecture) * {{{deb https://www.freewrt.org/~tg/debs68k/ cross main}}} (use http or install apt-transport-https package) * the package is called {{{gcc-4.4-m68k-linux-gnu}}} here; I try to keep the entire toolchain the exact same versions we use natively (i.e. from sid) * [[https://www.freewrt.org/~tg/debs68k/debidx.htm|overview of packages in that repo]] |
* build a stretch chroot for amd64 * A metapackage {{{gcc-m68k-linux-gnu}}} (also cpp, g++) is available |
Line 223: | Line 217: |
---- CategoryPorts |
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 listed, please usertag it or drop us a message, see M68k/Porting.
binNMUs
binNMU bugs
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
Bugs
Gathering the bugs in gcc-4.3_4.3.1-8.
ice in find_reloads
- hdf5
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
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
debian gcc-4.3 bts
debian gcc-4.2 bts
debian gcc-4.1 bts
upstream gcc bugs
- check with gcc-snapshot (if it's more recent than sid)
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.