View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0002059 | NetSurf | Atari-specific | public | 2014-01-21 16:18 | 2014-08-03 15:06 | ||||||||
Reporter | John-Mark Bell | ||||||||||||
Assigned To | |||||||||||||
Severity | major | Reproducibility | always | ||||||||||
Status | confirmed | Resolution | open | ||||||||||
Product Version | 3.1 | ||||||||||||
Target Version | Fixed in Version | ||||||||||||
Summary | 0002059: Atari toolchain(s) do not work | ||||||||||||
Description | We have two atari toolchains: m68k-atari-mint, and a derivative m5475-atari-mint. The latter is supposed to target the Coldfire v4e microarchitecture by default. Sadly, it doesn't, and builds in exactly the same way as m68k-atari-mint (so, host triplet aside, is effectively the same toolchain) m68k-atari-mint has 5 multilib settings: $ /opt/netsurf/m68k-atari-mint/cross/bin/m68k-atari-mint-gcc -print-multi-lib .; m68020-60;@m68020-60 m5475;@mcpu=5475 mshort;@mshort m68020-60/mshort;@m68020-60@mshort m5475/mshort;@mcpu=5475@mshort The SDK is only ever built for 1 of those (the default, so m68000) The NS libs are only ever built for the default lib config for the triplet (so, m68020-60 for m68k-atari-mint and, perversely, m68000 for m5475-atari-mint) NetSurf is built for both m68020-60 and 5475. That the m68020-60 build of NetSurf works is pure luck (in that, ttbomk, m68000 and m68020-60 are binary-compatible) The Coldfire build of NetSurf, however, is just plain wrong. Coldfire is in no way binary compatible with m68k (at least, there's no options you can pass to the tooling to generate a binary that uses only the common subset of the instruction set). Either way, the mix of m68000, m68020-60, and 5475 code is just plain wrong and needs fixing. It's actually a miracle anything links (or, more accurately, belies the lack of flags in the object files preventing linkage of binary-incompatible components). | ||||||||||||
Tags | No tags attached. | ||||||||||||
Fixed in CI build # | |||||||||||||
Reported in CI build # | |||||||||||||
URL of problem page | |||||||||||||
Attached Files |
|
Notes | |
Vincent Sanders (administrator) 2014-01-22 13:08 |
I have added --with-arch=cf which *ought* to select coldfire ( with default cpu as 5475) as the compiler default, it is definitely in the compiler config which sets the config options in builddir/gcc/configargs.h static const struct { const char *name, *value; } configure_default_options[] = { { "cpu", "mcpu=5475" }, { "arch", "cf" } }; but it appears the compiled elf objects have no identifying marks to say what architecture they are built for, no elf symbols, tags or flags differentiate cf arch from 68k arch so i cannot verify this having any affect at all |
Vincent Sanders (administrator) 2014-03-17 16:10 |
Bumped from 3.1 release as no feedback on toolchain updates already made |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2014-01-21 16:18 | John-Mark Bell | New Issue | |
2014-01-21 16:51 | Vincent Sanders | Status | new => confirmed |
2014-01-22 13:08 | Vincent Sanders | Note Added: 0000167 | |
2014-03-17 16:10 | Vincent Sanders | Note Added: 0000277 | |
2014-03-17 16:10 | Vincent Sanders | Target Version | 3.1 => 3.2 |
2014-08-03 15:06 | Vincent Sanders | Target Version | 3.2 => |