Can't compile : "more than 30 operands in Ďasmí"

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=4915

cooldll694

27-07-2008 13:02:01

I encountered the following error when compiling today's CVS.

PCC2D2lvm/home/daniel/Desktop/rt73-cvs-2008072704/Module # make
make[1] Entering directory `/usr/src/linux-2.6.16.60-0.21-obj/i386/default'
make -C ../../../linux-2.6.16.60-0.21 O=../linux-2.6.16.60-0.21-obj/i386/default modules
CC [M] /home/daniel/Desktop/rt73-cvs-2008072704/Module/sanity.o
/home/daniel/Desktop/rt73-cvs-2008072704/Module/sanity.c In function ĎPeerBeaconAndProbeRspSanityí
/home/daniel/Desktop/rt73-cvs-2008072704/Module/sanity.c519 error more than 30 operands in Ďasmí[/color2po3bzzv]
make[4] *** [/home/daniel/Desktop/rt73-cvs-2008072704/Module/sanity.o] Error 1
make[3] *** [_module_/home/daniel/Desktop/rt73-cvs-2008072704/Module] Error 2
make[2] *** [modules] Error 2
make[1] *** [modules] Error 2
make[1] Leaving directory `/usr/src/linux-2.6.16.60-0.21-obj/i386/default'
rt73.ko failed to build!
make *** [module] Error 1

I think it's a limit of gcc. But actually i'm using SLED 10 sp2. The version of gcc (4.1.2 20070115 (SUSE Linux)) shouldn't be too old.
How can I fix it?

Maxvr

21-10-2008 11:07:52

Hi, I've got similar problem on SLES 10 SP2
[code17wsi4mo]make -C /lib/modules/2.6.16.60-0.31-smp/build SUBDIRS=/home/max/2008_0723_RT61_Linux_STA_v1.1.2.2/Module modules
make[1]: Entering directory `/usr/src/linux-2.6.16.60-0.31-obj/x86_64/smp'
make -C ../../../linux-2.6.16.60-0.31 O=../linux-2.6.16.60-0.31-obj/x86_64/smp modules
CC [M] /home/max/2008_0723_RT61_Linux_STA_v1.1.2.2/Module/sanity.o
/home/max/2008_0723_RT61_Linux_STA_v1.1.2.2/Module/sanity.c: In function ‚PeerBeaconAndProbeRspSanity‚:
/home/max/2008_0723_RT61_Linux_STA_v1.1.2.2/Module/sanity.c:518: error: more than 30 operands in ‚asm‚
make[4]: *** [/home/max/2008_0723_RT61_Linux_STA_v1.1.2.2/Module/sanity.o] Error 1
make[3]: *** [_module_/home/max/2008_0723_RT61_Linux_STA_v1.1.2.2/Module] Error 2
make[2]: *** [modules] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.16.60-0.31-obj/x86_64/smp'
make: *** [all] Error 2[/code17wsi4mo]

Anybody any idea ?

Thank you.
Tomas

IvD

21-10-2008 11:17:14

cooldll694 From what I gather this seems like a GCC limit, it is strange that you're the first to encounter this issue.. S Are you using any special CFLAGS or other compiler flags?

Maxvr You are using an unsupported version of the driver, namely one which is not released by this project, but downloaded from the Ralink website.

ken68

21-10-2008 14:38:20

Hi,

I have the same problem with this compiler.
But by using the version gcc4.2 is OK.

That comes from version 4.1 of gcc

Ken.

cooldll694

21-10-2008 16:29:00

[quote1yiutzil]Are you using any special CFLAGS or other compiler flags?[/quote1yiutzil]

Well, I just followed the usual installation method on Linux configure first, then make.
I didn't add any additional flags myself.

IvD

21-10-2008 16:31:01

Ok, does SuSE provide an GCC update through Yast by any chance?

cooldll694

21-10-2008 16:52:28

Ok, does SuSE provide an GCC update through Yast by any chance?[/quote3ki286ss]
Well, I don't think this is the matter of version.
I did some search on Google and found that my GCC version is much newer than its first version to support more than 30 operands.
Pretty strange problem.

ken68

22-10-2008 07:33:03

Hi

I have the same version of GCC that cooldll694 (gcc version 4.1.2 20070115 (SUSE Linux))
My problem, it is that i cannot upgrad yhe version of gcc because my pc is of professional use.

Vern

22-10-2008 16:46:58

FWIW, the offending function has 32 parameters(!), which seems quite a few. Under Debian Etch with gcc 4.1.2, however, I compile the driver with no problems with both 2.4.36 and 2.6.26 vanilla kernels.

I don't know what SLED is, but if we can identify something in that environment to test for, maybe something can be done.

Thanks,

Maxvr

22-10-2008 20:25:01

Hello guys,

thanks to IvD for help - I thought the newer driver version the better, but if this 1.1.0.Beta2 works I'm pretty much OK. Unfortunatelly I'm no OK I've downloaded the file rt61-1.1.0-b2.tar.gz, unzip it and tried the command "make". Here is the result
[code3a3w8x1j]server2:/home/max/rt61-1.1.0-b2/Module # make clean
server2:/home/max/rt61-1.1.0-b2/Module # make
make[1]: Entering directory `/usr/src/linux-2.6.16.60-0.31-obj/x86_64/smp'
make -C ../../../linux-2.6.16.60-0.31 O=../linux-2.6.16.60-0.31-obj/x86_64/smp modules
CC [M] /home/max/rt61-1.1.0-b2/Module/rtmp_main.o
CC [M] /home/max/rt61-1.1.0-b2/Module/mlme.o
CC [M] /home/max/rt61-1.1.0-b2/Module/connect.o
CC [M] /home/max/rt61-1.1.0-b2/Module/sync.o
CC [M] /home/max/rt61-1.1.0-b2/Module/assoc.o
CC [M] /home/max/rt61-1.1.0-b2/Module/auth.o
CC [M] /home/max/rt61-1.1.0-b2/Module/auth_rsp.o
CC [M] /home/max/rt61-1.1.0-b2/Module/rtmp_data.o
/home/max/rt61-1.1.0-b2/Module/rtmp_data.c: In function ‚RTMPCheckDHCPFrame‚:
/home/max/rt61-1.1.0-b2/Module/rtmp_data.c:4318: warning: unused variable ‚dest_port‚
/home/max/rt61-1.1.0-b2/Module/rtmp_data.c:4317: warning: unused variable ‚is_udp‚
/home/max/rt61-1.1.0-b2/Module/rtmp_data.c:4316: warning: unused variable ‚is_ipv4‚
/home/max/rt61-1.1.0-b2/Module/rtmp_data.c:4315: warning: unused variable ‚is_ip‚
CC [M] /home/max/rt61-1.1.0-b2/Module/rtmp_init.o
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c: In function ‚RTMPReadParametersFromFile‚:
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c:2486: warning: format ‚%02x‚ expects type ‚unsigned int *‚, but argument 3 has type ‚u8 *‚
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c:2486: warning: format ‚%02x‚ expects type ‚unsigned int *‚, but argument 4 has type ‚u8 *‚
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c:2486: warning: format ‚%02x‚ expects type ‚unsigned int *‚, but argument 5 has type ‚u8 *‚
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c:2486: warning: format ‚%02x‚ expects type ‚unsigned int *‚, but argument 6 has type ‚u8 *‚
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c:2486: warning: format ‚%02x‚ expects type ‚unsigned int *‚, but argument 7 has type ‚u8 *‚
/home/max/rt61-1.1.0-b2/Module/rtmp_init.c:2486: warning: format ‚%02x‚ expects type ‚unsigned int *‚, but argument 8 has type ‚u8 *‚
CC [M] /home/max/rt61-1.1.0-b2/Module/sanity.o
/home/max/rt61-1.1.0-b2/Module/sanity.c: In function ‚PeerBeaconAndProbeRspSanity‚:
/home/max/rt61-1.1.0-b2/Module/sanity.c:479: error: more than 30 operands in ‚asm‚
make[4]: *** [/home/max/rt61-1.1.0-b2/Module/sanity.o] Error 1
make[3]: *** [_module_/home/max/rt61-1.1.0-b2/Module] Error 2
make[2]: *** [modules] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.16.60-0.31-obj/x86_64/smp'
rt61.ko failed to build!
make: *** [module] Error 1[/code3a3w8x1j]
Reagarding the version v GCC compiler YaST of SLES/SLED offers following packages
[code3a3w8x1j]?gcc ?4.1.2_20070115?4.1.2_20070115?The GNU C Compiler and Support Files ?
?gcc-c++ ?4.1.2_20070115?4.1.2_20070115?The GNU C++ Compiler ?
?gcc-fortran ?4.1.2_20070115?4.1.2_20070115?The GNU Fortran Compiler and Support Files ?
|gcc-info ?4.1.2_20070115?4.1.2_20070115?GNU Info-Pages for GCC ?
?gcc-java ?4.1.2_20070115? ?The GNU Java Compiler ?
?gcc-locale ?4.1.2_20070115? ?Locale Data for the GNU Compiler Collection?
?gcc-obj-c++ ?4.1.2_20070115? ?GNU Objective C++ Compiler ?
?gcc-objc ?4.1.2_20070115?4.1.2_20070115?GNU Objective C Compiler ?
?libgcc ?4.1.2_20070115?4.1.2_20070115?C compiler runtime library ?
?libgcj ?4.1.2_20070115?4.1.2_20070115?Java Runtime Library for gcc ?
?libgcj-32bit?4.1.2_20070115?4.1.2_20070115?Java Runtime Library for gcc |[/code3a3w8x1j]
I'm not expert in GCC compilers, but do you really thing, that newer version of the compiler would work ?

Thank you
Regards
Tomas

ken68

23-10-2008 14:30:50

Hi,

I cannot make an upgrade of version of my compiler GCC (PC profesionnel) cry cry

ken68

24-10-2008 08:04:03

Hi,

I'm download rt2570-1.1.0-b2, tried the command make and it's OK.
Unfortunately, it's not work with the wifi card AWUS036S cry

Spy84464

27-10-2008 19:25:29

Hello,
Have you tried the latest CVS tarball? It is usually the way to go, as beta2 is *very* old.

Regards,
Romain

ken68

28-10-2008 12:32:21

Hello,

Yes. I'm tested the version rt73-cvs-2008102806 and it's similar.

Regards.
Stephane

ken68

28-10-2008 14:17:12

Hi,

I'm tested rt2570-cvs-2008102806 and here is the result with the command make

rt_config.h10627 error linux/freezer.h Aucun fichier ou rťpertoire de ce type

kennon

29-10-2008 04:00:36

OK so I was having the exact same problem during compile as the OP on SLED10 SP2 64-bit but I found a workaround. It is a hack and messy and will invalidate your support from Novell if you are using it most likely but here it is. You must add http//download.opensuse.org/distributi ... /repo/oss/ as an install source in Yast. Once you've done that then you must upgrade to the version of GCC41 made available by this repo. Yast will complain that it must remove the current version of libgcc and sledp2-cpp. I am kind of desperate for this to work so I just said yes. After that just follow the docs in the README in the CVS and as soon as I issued a modprobe rt73 the linklight on this D-Link WUA-1340 lit up like christmas. I am using rt73-cvs-2008102821

Hope this helps someone.