xine-lib-1_rc5-r3 fails to build on sparc due to libavcodec assuming it has more than 32 registers. This appears to be related to this VIS optimizations for the UltraSPARC processors. Not quite sure how to make it smart enough to realize that not all SPARCs have VIS extensions/ Error is as follows; gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../.. -I../../../../include - I../../../../include -I../../../../src -I../../../../src/xine-engine -I../../../ ../src/xine-engine -I../../../../src/xine-utils -I../../../../src/input -I../../ ../../src/input -DSIMPLE_IDCT -DHAVE_AV_CONFIG_H -DRUNTIME_CPUDETECT -DUSE_FASTM EMCPY -DCONFIG_RISKY -DCONFIG_DECODERS -DXINE_MPEG_ENCODER -DCONFIG_ZLIB -O3 -mc pu=supersparc -mtune=supersparc -funroll-loops -finline-functions -Wall -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -Wpointer-arith -Wnested-ext erns -Wcast-align -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -mcpu=hypersparc -g -O2 -pipe -fno-stack-protector -ffunction-sections -MT dsput il_vis.lo -MD -MP -MF .deps/dsputil_vis.Tpo -c dsputil_vis.c -fPIC -DPIC -o .li bs/dsputil_vis.o In file included from ../dsputil.h:31, from dsputil_vis.c:35: ../common.h: In function `put_bits': ../common.h:448: warning: cast increases required alignment of target type dsputil_vis.c: At top level: dsputil_vis.c:3990: warning: no previous prototype for `get_pixels_vis' dsputil_vis.c: In function `dsputil_init_vis': dsputil_vis.c:4064: warning: assignment from incompatible pointer type {standard input}: Assembler messages: {standard input}:940: Error: Illegal operands: There are only 32 f registers; [0 -31] {standard input}:948: Error: Illegal operands: There are only 32 f registers; [0 -31] {standard input}:952: Error: Illegal operands: There are only 32 f registers; [0 -31] {standard input}:956: Error: Illegal operands: There are only 32 f registers; [0 -31] {standard input}:960: Error: Illegal operands: There are only 32 f registers; [0 -31] {standard input}:996: Error: Illegal operands: There are only 32 f registers; [0 -31] {standard input}:1000: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1035: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1043: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1047: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1051: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1055: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1091: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1095: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1127: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1135: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1139: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1143: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1147: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1183: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1187: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1222: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1230: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1235: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1265: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1269: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1348: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1405: Error: Illegal operands: There are only 32 f registers; [ {standard input}:1459: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1644: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1650: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1656: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1695: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1699: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1752: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1756: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1845: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1850: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1876: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1880: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1977: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:1991: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2070: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2084: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2160: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2174: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2586: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2590: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2592: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2598: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2600: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2818: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2822: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2827: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2873: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2877: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2881: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2907: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2911: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2960: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2964: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2968: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2994: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:2998: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3044: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3048: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3052: Error: Illegal operands: There are only 32 f registers; [0-31] {standard input}:3078: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3082: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3157: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3162: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3226: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3537: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3543: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3547: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3741: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3820: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:3896: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4076: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4082: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4086: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4347: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4561: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4567: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4571: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:4874: Error: Illegal operands: There are only 32 f registers; [ 0-31]{standard input}:5403: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5411: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5415: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5419: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5423: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5459: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5463: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5498: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5506: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5510: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5514: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5518: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5554: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5558: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5590: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5598: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5602: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5606: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5610: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5646: Error: Illegal operands: There are only 32 f registers; [0-31] {standard input}:5650: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5685: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5693: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5698: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5728: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5732: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5811: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5868: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:5922: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6107: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6113: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6119: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6158: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6162: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6215: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6219: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6308: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6313: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6339: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6343: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6440: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6454: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6533: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6547: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6623: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:6637: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7049: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7053: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7055: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7061: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7063: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7281: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7285: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7290: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7336: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7340: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7344: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7370: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7374: Error: Illegal operands: There are only 32 f registers; [0-31] {standard input}:7423: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7427: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7431: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7457: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7461: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7507: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7511: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7515: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7541: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7545: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7620: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7625: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:7689: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8000: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8006: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8010: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8204: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8283: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8359: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8539: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8545: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8549: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:8810: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:9024: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:9030: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:9034: Error: Illegal operands: There are only 32 f registers; [ 0-31] {standard input}:9337: Error: Illegal operands: There are only 32 f registers; [ 0-31] make[5]: *** [dsputil_vis.lo] Error 1 make[5]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r3/work/xine-lib-1-r c5/src/libffmpeg/libavcodec/sparc' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r3/work/xine-lib-1-r c5/src/libffmpeg/libavcodec' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r3/work/xine-lib-1-r c5/src/libffmpeg' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r3/work/xine-lib-1-r c5/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r3/work/xine-lib-1-r c5' make: *** [all] Error 2 !!! ERROR: media-libs/xine-lib-1_rc5-r3 failed. !!! Function src_compile, Line 146, Exitcode 2 !!! Parallel make failed
According to Dave Miller (sparc64 kernel maintainer), this is related to a binutils issue he made a patch for. I'm in the process of trying to track down said patch and once I get it, I'll test it out.
weeve, can you try again with the latest stable binutils?
xine-lib now builds on ~sparc sparc32 boxen, but not sparc sparc32 boxen. Guessing this is due to the different versions of binutils. Going to keep masked until we get a binutils that xine-lib likes.
Any updates on the binutils thing?
A newer version of binutils is now stable. However the current stable version of xine-lib on SPARC (1_rc6-r1) still suffers from this issue. xine-lib-1_rc8-r1 and 1.0 do not however.
Updating version on comment just to have it clear :)
News about this? Seems like recent xine-lib doesn't work on sparc also if they are marked ~sparc, and this which is marked stable isn't working. Please refer something if there are any news.
Need to be fixed by sparc team, as it's a sparc-related bug, don't think I can do anything about this.
Old bug, xine is masked for sparc32 so it's no longer relevant.