From: Tomek J. <to...@je...> - 2004-11-02 20:45:34
|
On Athlon 64 to be precise. I decided to compile Sheepshaver on my new Athlon 64 rig, however without succes.=20 =46irst of all, this is what I have: =46edora Core 3 test 3 x86_64 gcc 3.4.2: Configured with: ../configure --prefix=3D/usr --mandir=3D/usr/share/man= -- infodir=3D/usr/share/info --enable-shared --enable-threads=3Dposix -- disable-checking --with-system-zlib --enable-__cxa_atexit --disable- libunwind-exceptions --enable-languages=3Dc,c++,objc,java,f77 --enable- java-awt=3Dgtk --host=3Dx86_64-redhat-linux Thread model: posix gcc version 3.4.2 20041017 (Red Hat 3.4.2-6) I downloaded the latest sources (today) from CVS, then executed: cvs -d :pserver:an...@do...:/cvs checkout BasiliskII $ cvs -d :pserver:an...@do...:/cvs checkout SheepShaver $ cd SheepShaver $ make links $ cd src/Unix $ ./autogen.sh So far everything has been fine. This is the end of autogen output: SheepShaver configuration summary: SDL support ...................... : none XFree86 DGA support .............. : yes XFree86 VidMode support .......... : no Using PowerPC emulator ........... : yes Enable JIT compiler .............. : yes Enable video on SEGV signals ..... : yes ESD sound support ................ : yes GTK user interface ............... : yes mon debugger support ............. : no Bad memory access recovery type .. : siginfo Now I execute 'make' and what do I see? The following errors appear: (...) g++ -I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. - DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=3D\"/usr/local/share/SheepShaver\= " - g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include = - finline-limit=3D10000 -fno-reorder-blocks -fno-optimize-sibling-calls - c ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp -o obj/basic-dyngen-ops.o =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_mov_32_T0_im()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:82: error: ISO C++ forbid= s cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_mov_32_T0_T1()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:83: error: ISO C++ forbid= s cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_mov_32_T0_T2()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:84: error: ISO C++ forbid= s cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_mov_32_T0_A0()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:85: error: ISO C++ forbid= s cast to non-reference type used as lvalue (...) =46ine, I say, I know how to overcome it. So I add -fpermissive switch = to Makefile: (...) CXXFLAGS =3D -g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include - fpermissive (...) Now 'make clean' and 'make' again. It goes a but farther: (...) =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_load_s8_T0_A0_im()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:227: warning: ISO C++ forbids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_load_u8_T0_A0_T1()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:228: warning: ISO C++ forbids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function `void op_load_s8_T0_A0_T1()': =2E./kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:228: warning: ISO C++ forbids cast to non-reference type used as lvalue gcc -I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. - DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=3D\"/usr/local/share/SheepShaver\= " - g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include = - c ../kpx_cpu/src/cpu/jit/dyngen.c -o obj/dyngen.og++ - I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. - DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=3D\"/usr/local/share/SheepShaver\= " - g -O2 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include - fpermissive -c ../kpx_cpu/src/cpu/jit/cxxdemangle.cpp -o obj/cxxdemangle.o g++ -o dyngen obj/dyngen.o obj/cxxdemangle.o =2E/dyngen -o basic-dyngen-ops.hpp obj/basic-dyngen-ops.o dyngen: invalid section for opcode (0x0) make: *** [basic-dyngen-ops.hpp] B=C5=82=C4=85d 1 Oh, I'm almost stuck now. But let's play a bit more. I change optimization settings in Makefile from -02 to -O1 in the following way: (...) CFLAGS =3D -g -O1 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include CXXFLAGS =3D -g -O1 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include - fpermissive (...) Now 'make clean' and 'make' again: (...) =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void op_subfzeo_T0()': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1216: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void op_nego_= T0 ()': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1232: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void op_dcbz_= T0 ()': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1237: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_lmw() [with int N =3D 26]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1267: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_lmw() [with int N =3D 27]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1267: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_lmw() [with int N =3D 28]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 27]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1267: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_lmw() [with int N =3D 29]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 28]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 27]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1267: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_lmw() [with int N =3D 30]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 29]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 28]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 27]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1268: instantiated from `void do_lmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1267: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_stmw(= ) [with int N =3D 26]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1289: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_stmw(= ) [with int N =3D 27]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1289: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_stmw(= ) [with int N =3D 28]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 27]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1289: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_stmw(= ) [with int N =3D 29]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 28]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 27]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1289: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp: In function `void do_stmw(= ) [with int N =3D 30]': =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 29]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 28]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 27]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1290: instantiated from `void do_stmw() [with int N =3D 26]' =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1313: instantiated from h= ere =2E./kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp:1289: warning: ISO C++ forb= ids cast to non-reference type used as lvalue =2E/dyngen -o ppc-dyngen-ops.hpp obj/ppc-dyngen-ops.o g++ -I../kpx_cpu/include -I../kpx_cpu/src -DUSE_JIT -I../include -I. - DHAVE_CONFIG_H -D_REENTRANT -DDATADIR=3D\"/usr/local/share/SheepShaver\= " - g -O1 -I/usr/X11R6/include -I/usr/include/gtk-1.2 - I/usr/include/glib-1.2 -I/usr/lib64/glib/include -I/usr/X11R6/include - fpermissive -c ../kpx_cpu/src/cpu/ppc/ppc-dyngen.cpp -o obj/ppc-dyngen.= o /tmp/ccP0F64j.s: Assembler messages: /tmp/ccP0F64j.s:54225: Error: suffix or operands invalid for `push' /tmp/ccP0F64j.s:54225: Error: suffix or operands invalid for `push' /tmp/ccP0F64j.s:54225: Error: suffix or operands invalid for `pop' /tmp/ccP0F64j.s:54225: Error: suffix or operands invalid for `pop' make: *** [obj/ppc-dyngen.o] B=C5=82=C4=85d 1 Complete failure again... What should I do now? Any clues? Need more info? =46ull autogen.sh output: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + Running aclocal: configure.ac:298: warning: underquoted definition of AC_CHECK_FRAMEWORK run info '(automake)Extending aclocal' or see http://sources.redhat.com/automake/automake.html#Extending- aclocal configure.ac:378: warning: underquoted definition of AC_TRANSLATE_DEFIN= E done. + Running autoheader: done. + Running autoconf: done. + Running 'configure ': ** If you wish to pass arguments to ./configure, please ** specify them on the command line. checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for egrep... grep -E checking for PowerPC target CPU... no checking for mon... no configure: WARNING: Could not find mon, ignoring --with-mon. checking for sem_init in -lposix4... no checking for X... libraries /usr/X11R6/lib64, headers /usr/X11R6/includ= e checking for gethostbyname... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking for IceConnectionNumber in -lICE... yes checking for pthread_create in -lpthread... yes checking for pthread_cancel... yes checking for pthread_mutexattr_setprotocol... no checking for pthread_mutexattr_settype... yes checking for pthread_mutexattr_setpshared... yes checking for sem_init... yes checking for XF86DGAQueryExtension in -lXxf86dga... yes checking for gtk-config... /usr/bin/gtk-config checking for GTK - version >=3D 1.2.0... yes checking for esd-config... /usr/bin/esd-config checking for ESD - version >=3D 0.2.8... yes checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for _LARGE_FILES value needed for large files... no checking for ANSI C header files... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking mach/vm_map.h usability... no checking mach/vm_map.h presence... no checking for mach/vm_map.h... no checking mach/mach_init.h usability... no checking mach/mach_init.h presence... no checking for mach/mach_init.h... no checking sys/mman.h usability... yes checking sys/mman.h presence... yes checking for sys/mman.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/times.h usability... yes checking sys/times.h presence... yes checking for sys/times.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking unistd.h usability... yes checking unistd.h presence... yes checking for unistd.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking byteswap.h usability... yes checking byteswap.h presence... yes checking for byteswap.h... yes checking dirent.h usability... yes checking dirent.h presence... yes checking for dirent.h... yes checking for linux/if.h... yes checking linux/if_tun.h usability... yes checking linux/if_tun.h presence... yes checking for linux/if_tun.h... yes checking net/if.h usability... yes checking net/if.h presence... yes checking for net/if.h... yes checking net/if_tun.h usability... no checking net/if_tun.h presence... no checking for net/if_tun.h... no checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking for inline... inline checking for short... yes checking size of short... 2 checking for int... yes checking size of int... 4 checking for long... yes checking size of long... 8 checking for long long... yes checking size of long long... 8 checking for float... yes checking size of float... 4 checking for double... yes checking size of double... 8 checking for void *... yes checking size of void *... 8 checking for off_t... yes checking for loff_t... yes checking for size_t... yes checking return type of signal handlers... void checking whether time.h and sys/time.h may both be included... yes checking whether struct tm is in sys/time.h or time.h... time.h checking whether struct sigaction has sa_restorer... yes checking for strdup... yes checking for strlcpy... no checking for cfmakeraw... yes checking for nanosleep... yes checking for sigaction... yes checking for signal... yes checking for mmap... yes checking for mprotect... yes checking for munmap... yes checking for vm_allocate... no checking for vm_deallocate... no checking for vm_protect... no checking for posix_memalign... yes checking for memalign... yes checking for valloc... yes checking for mach_task_self... no checking for task_self... no checking for library containing clock_gettime... -lrt checking for clock_gettime... yes checking whether compiler supports framework Carbon... no checking whether compiler supports framework IOKit... no checking whether TUN/TAP is supported... yes checking whether mmap supports MAP_ANON... yes checking whether mmap supports MAP_ANONYMOUS... yes checking whether mprotect works... yes checking whether __PAGEZERO can be Low Memory area 0x0000-0x3000... no checking whether we can map Low Memory area 0x0000-0x3000... yes checking whether signal handlers need to be reinstalled... no checking whether sigaction handlers need to be reinstalled... no checking whether your system supports Mach exceptions... no checking whether your system supports extended signal handlers... yes checking whether we can skip instruction in SIGSEGV handler... yes checking for true... /bin/true checking for GCC 2.7 or higher... yes checking for GCC 3.0 or higher... yes checking for ICC... no checking whether the compiler can generate ELF objects... yes checking whether dyngen can be used... yes checking mmintrin.h usability... yes checking mmintrin.h presence... yes checking for mmintrin.h... yes checking xmmintrin.h usability... yes checking xmmintrin.h presence... yes checking for xmmintrin.h... yes checking emmintrin.h usability... yes checking emmintrin.h presence... yes checking for emmintrin.h... yes checking whether static data regions are executable... no configure: creating ./config.status config.status: creating Makefile config.status: creating ../MacOSX/Info.plist config.status: creating config.h SheepShaver configuration summary: SDL support ...................... : none XFree86 DGA support .............. : yes XFree86 VidMode support .......... : no Using PowerPC emulator ........... : yes Enable JIT compiler .............. : yes Enable video on SEGV signals ..... : yes ESD sound support ................ : yes GTK user interface ............... : yes mon debugger support ............. : no Bad memory access recovery type .. : siginfo Configuration done. Now type "make". =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D |