SuSE 10.1: gcc 4.1 does not have x86_64, how to switch to gcc 3.4 ????
I got the following info to a compile problem, and it seems if I can switch to gcc 3.4 it would be solved. How can I do that? Ronald Wiplinger wrote:
First try to compile Openser on an AMD Semperon CPU:
openser-1.1.0-tls> make all Compiling action.c gcc -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=x86_64 -DNAME='"openser"' -DVERSION='"1.1.0-notls"' -DARCH='"x86_64"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.0"' -D__CPU_x86_64 -D__OS_linux -D__SMP_no -DCFG_DIR='"/usr/local/etc/openser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DF_MALLOC -DSTATISTICS -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT -c action.c -o action.o action.c:1: error: bad value (x86_64) for -mtune= switch make: *** [action.o] Error 1
How can I solve that?
bye
Ronald
GCC 4.1??? The manual says these are your options for the -mtune switch k6 AMD K6 CPU with MMX instruction set support. k6-2, k6-3 Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support. athlon, athlon-tbird AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support. athlon-4, athlon-xp, athlon-mp Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support. k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.) so there is no x86_64 (or x86-64) cpu type in 4.1 You could try compiling with gcc 3.4 if you have it..
* Ronald Wiplinger (ronald@elmit.com) [20060911 17:12]: You can't use the -mtune switch because it only allows
k6 AMD K6 CPU with MMX instruction set support. k6-2, k6-3 Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support. athlon, athlon-tbird AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support. athlon-4, athlon-xp, athlon-mp Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support. k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
so there is no x86_64 (or x86-64) cpu type in 4.1
Change the software to use -m64 compiler switch, which you *need* to get binaries working on the AMD64/EM64T platforms. Philipp
I got the following info to a compile problem, and it seems if I can switch to gcc 3.4 it would be solved. How can I do that?
Ronald Wiplinger wrote:
First try to compile Openser on an AMD Semperon CPU:
openser-1.1.0-tls> make all Compiling action.c gcc -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=x86_64 -DNAME='"openser"' -DVERSION='"1.1.0-notls"' -DARCH='"x86_64"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.0"' -D__CPU_x86_64 -D__OS_linux -D__SMP_no -DCFG_DIR='"/usr/local/etc/openser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DF_MALLOC -DSTATISTICS -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT -c action.c -o action.o action.c:1: error: bad value (x86_64) for -mtune= switch make: *** [action.o] Error 1
How can I solve that?
bye
Ronald
GCC 4.1???
The manual says these are your options for the -mtune switch
k6 AMD K6 CPU with MMX instruction set support. k6-2, k6-3 Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support. athlon, athlon-tbird AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support. athlon-4, athlon-xp, athlon-mp Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support. k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
so there is no x86_64 (or x86-64) cpu type in 4.1 Not true. There is no x86_64, but while x86-64 is deprecated, it is still
On Monday 11 September 2006 11:11 am, Ronald Wiplinger wrote: permissable. If you are building code for the platform you are running on, then you can use one of the -mtune=k8 or -mtune=generic or -mtune=prescott, or simply let the compiler figure it out. Or better use the -m64 option which will cause the compiler to build for a generic x86-64 platform. -- Jerry Feldman <gaf@blu.org> Boston Linux and Unix user group http://www.blu.org PGP key id:C5061EA9 PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9
Jerry Feldman wrote:
On Monday 11 September 2006 11:11 am, Ronald Wiplinger wrote:
I got the following info to a compile problem, and it seems if I can switch to gcc 3.4 it would be solved. How can I do that?
Ronald Wiplinger wrote:
First try to compile Openser on an AMD Semperon CPU:
openser-1.1.0-tls> make all Compiling action.c gcc -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=x86_64 -DNAME='"openser"' -DVERSION='"1.1.0-notls"' -DARCH='"x86_64"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.0"' -D__CPU_x86_64 -D__OS_linux -D__SMP_no -DCFG_DIR='"/usr/local/etc/openser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DF_MALLOC -DSTATISTICS -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT -c action.c -o action.o action.c:1: error: bad value (x86_64) for -mtune= switch make: *** [action.o] Error 1
How can I solve that?
bye
Ronald
GCC 4.1???
The manual says these are your options for the -mtune switch
k6 AMD K6 CPU with MMX instruction set support. k6-2, k6-3 Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support. athlon, athlon-tbird AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support. athlon-4, athlon-xp, athlon-mp Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support. k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
so there is no x86_64 (or x86-64) cpu type in 4.1
Not true. There is no x86_64, but while x86-64 is deprecated, it is still permissable. If you are building code for the platform you are running on, then you can use one of the -mtune=k8 or -mtune=generic or -mtune=prescott, or simply let the compiler figure it out. Or better use the -m64 option which will cause the compiler to build for a generic x86-64 platform.
there is obviously no better solution than to switch to gcc 3.x yet. Is there an easy way to do that? bye Ronald
First try to compile Openser on an AMD Semperon CPU:
openser-1.1.0-tls> make all Compiling action.c gcc -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=x86_64 -DNAME='"openser"' -DVERSION='"1.1.0-notls"' -DARCH='"x86_64"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.0"' -D__CPU_x86_64 -D__OS_linux -D__SMP_no -DCFG_DIR='"/usr/local/etc/openser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DF_MALLOC -DSTATISTICS -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT -c action.c -o action.o action.c:1: error: bad value (x86_64) for -mtune= switch make: *** [action.o] Error 1
How can I solve that?
GCC 4.1???
The manual says these are your options for the -mtune switch
k6 AMD K6 CPU with MMX instruction set support. k6-2, k6-3 Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support. athlon, athlon-tbird AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support. athlon-4, athlon-xp, athlon-mp Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support. k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
so there is no x86_64 (or x86-64) cpu type in 4.1
Not true. There is no x86_64, but while x86-64 is deprecated, it is still permissable. If you are building code for the platform you are running on, then you can use one of the -mtune=k8 or -mtune=generic or -mtune=prescott, or simply let the compiler figure it out. Or better use the -m64 option which will cause the compiler to build for a generic x86-64 platform.
there is obviously no better solution than to switch to gcc 3.x yet. Is there an easy way to do that?
Fix the makefile and use -m64 instead of ANY -mcpu, -mtune or -march. Jan Engelhardt --
On Wed, 13 Sep 2006 13:16:39 +0800, Ronald Wiplinger wrote:
there is obviously no better solution than to switch to gcc 3.x yet. Is there an easy way to do that?
That wouldn't buy you anything as that will still *not* give you binaries you can run on a x86-64 (aka AMD64/EM64T) system. Only -m64 will give you what you want. But if you want to try for yourself: Get the gcc 3.4 tarball, unpack it at a location of your choice. Configure with --prefix=/opt/gcc3, run 'make bootstrap' and at the end call 'make install'. After you've built and installed this gcc, configure the the package in question by running CC=/opt/gcc3/bin/gcc ./configure Philipp
Ronald Wiplinger wrote: Thanks for all the people participating in that part ;-) The solution (thanks to Bogdan-Andrei Iancu): The variable $CPU was set by the system to x86_64, which was than used for -mtune=x86_64 I had to unset $CPU and than the Makefile created the right -mtune=opteron (I have a Semperon CPU) The program (btw openser) could be compiled. bye Ronald
Jerry Feldman wrote:
On Monday 11 September 2006 11:11 am, Ronald Wiplinger wrote:
I got the following info to a compile problem, and it seems if I can switch to gcc 3.4 it would be solved. How can I do that?
Ronald Wiplinger wrote:
First try to compile Openser on an AMD Semperon CPU:
openser-1.1.0-tls> make all Compiling action.c gcc -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=x86_64 -DNAME='"openser"' -DVERSION='"1.1.0-notls"' -DARCH='"x86_64"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.0"' -D__CPU_x86_64 -D__OS_linux -D__SMP_no -DCFG_DIR='"/usr/local/etc/openser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DF_MALLOC -DSTATISTICS -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT -c action.c -o action.o action.c:1: error: bad value (x86_64) for -mtune= switch make: *** [action.o] Error 1
How can I solve that?
bye
Ronald
GCC 4.1???
The manual says these are your options for the -mtune switch
k6 AMD K6 CPU with MMX instruction set support. k6-2, k6-3 Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support. athlon, athlon-tbird AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support. athlon-4, athlon-xp, athlon-mp Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support. k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
so there is no x86_64 (or x86-64) cpu type in 4.1
Not true. There is no x86_64, but while x86-64 is deprecated, it is still permissable. If you are building code for the platform you are running on, then you can use one of the -mtune=k8 or -mtune=generic or -mtune=prescott, or simply let the compiler figure it out. Or better use the -m64 option which will cause the compiler to build for a generic x86-64 platform.
there is obviously no better solution than to switch to gcc 3.x yet. Is there an easy way to do that?
bye
Ronald
-- Ronald Wiplinger (CEO of ELMIT) http://www.elmit.com http://voip.elmit.com http://e-paper.elmit.com Tel. (M) +886.939.775.516 (O) +886.2.2835.7765 (ENUM) or FWD 511208 - I'm a SpamCon Foundation Member, #694, Verify it at http://www.spamcon.org PS: Spam prevention! Our system is protected with a spam prevention program. If you send us an e-mail, our system will send you a confirmation message back. Just reply to this confirmation message please. After receiving this confirmation message, our system will send the hold message (one) and all future messages (after the received confirmation message) to me without asking you again.
participants (5)
-
Jan Engelhardt
-
Jerry Feldman
-
Philipp Thomas
-
Philipp Thomas
-
Ronald Wiplinger