I just encountered the problem below. [...] checking for DirectX... no You can't enable DGA for SVGAlib, SDL and ncurses targets! The XF86VidMode extension can only be used in DGA mode. Disabling it. checking for gtk-config... /usr/bin/gtk-config [...] checking availability of libscg headers and lib... not available Please refer to the UAE SCSI device section in docs/README for installation instructions. updating cache ./config.cache creating ./config.status [...] checking for setitimer... yes updating cache ./config.cache creating ./config.status creating Makefile creating sysconfig.h There were 2 errors. UAE may still build and run cleanly, but you may not get all the features you asked for. cd src && make make[1]: Entering directory `/var/tmp/portage/uae-0.8.22/work/uae-0.8.22/src' gcc -I. -I../src/include/ -c -O2 -fomit-frame-pointer -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes -I/usr/include/SDL -D_REENTRANT -DUSE_SDL -DGCCCONSTFUNC="__attribute__((const))" -mpreferred-stack-boundary=2 -fno-exceptions -DUNALIGNED_PROFITABLE -fno-strength-reduce -DREGPARAM="__attribute__((regparm(3)))" -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DUSE_ZFILE -D__inline__=inline -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -DSHM_SUPPORT_LINKS=1 main.c -o main.o main.c: In function `parse_cmdline': main.c:363: warning: passing arg 2 of `parse_cmdline_option' discards qualifiers from pointer target type gcc -I. -I../src/include/ -c -O2 -fomit-frame-pointer -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes -I/usr/include/SDL -D_REENTRANT -DUSE_SDL -DGCCCONSTFUNC="__attribute__((const))" -mpreferred-stack-boundary=2 -fno-exceptions -DUNALIGNED_PROFITABLE -fno-strength-reduce -DREGPARAM="__attribute__((regparm(3)))" -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DUSE_ZFILE -D__inline__=inline -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -DSHM_SUPPORT_LINKS=1 newcpu.c -o newcpu.o newcpu.c:104: error: conflicting types for 'op_illg_1' newcpu.c:101: error: previous declaration of 'op_illg_1' was here newcpu.c:104: error: conflicting types for 'op_illg_1' newcpu.c:101: error: previous declaration of 'op_illg_1' was here newcpu.c: In function `build_cpufunctbl': newcpu.c:124: warning: assignment from incompatible pointer type newcpu.c:137: warning: comparison of distinct pointer types lacks a cast newcpu.c: At top level: newcpu.c:1129: error: conflicting types for 'op_illg' ../src/include/newcpu.h:57: error: previous declaration of 'op_illg' was here newcpu.c:1129: error: conflicting types for 'op_illg' ../src/include/newcpu.h:57: error: previous declaration of 'op_illg' was here newcpu.c: In function `m68k_go': newcpu.c:1429: warning: implicit declaration of function `savestate_restore_finish' newcpu.c: In function `m68k_verify': newcpu.c:1451: warning: comparison of distinct pointer types lacks a cast newcpu.c: In function `m68k_disasm': newcpu.c:1486: warning: comparison of distinct pointer types lacks a cast make[1]: *** [newcpu.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/uae-0.8.22/work/uae-0.8.22/src' make: *** [all] Error 2 !!! ERROR: app-emulation/uae-0.8.22 failed. Call stack: ebuild.sh, line 1539: Called dyn_compile ebuild.sh, line 939: Called src_compile uae-0.8.22.ebuild, line 52: Called die [ebuild R ] app-emulation/uae-0.8.22 USE="X gtk sdl -svga*" 0 kB removing the sdl USE flag did not solve the problem.
Created attachment 89079 [details, diff] Patch to uae-0.8.22 file sysdeps.h This patch checks the gcc version and if it is 3.4 or above, the REGPARAM2 macro is treated as is is on amiga, i.e. set to REGPARAM. This solved the problem for me. I added a version check to only change behaviour for gcc 3.4 to change as little as possible, to make sure nothing breaks that worked before. I notice however that the uae-0.8.24 sources just check for __GNUC__, without checks for AMIGA or gcc version. This would be an alternative, to backport the changes made in uae sources.
Do you have this problem with uae-0.8.24.ebuild?
(In reply to comment #2) > Do you have this problem with uae-0.8.24.ebuild? As I mentioned, the 0.8.24 sources already set REGPARAM2 equal to REGPARAM, without regard for the gcc version. So the question is, will the uae 0.8.24 ebuild work with gcc 3.3.6 as well. I just checked, uae 0.8.24 compiles all right using either gcc 3.3.6 or 3.4.6. The issue is solved in 0.8.24, marking it stable would be acceptable as well, instead of incorporating my patch into the uae 0.8.22 ebuild.
No point in porting outdated stuff for gcc-3.4 when 4.1 is current stable on all arches this is keyworded for. WONTFIX, see Bug 141217 for gcc-4.x porting.