Thread: [Madwifi-devel] {standardinput}:7260: Error: Branch out of range
Status: Beta
Brought to you by:
otaku
From: Bryce <bry...@ya...> - 2009-06-24 15:06:05
|
Hi ALL I am compiling for ar71xx the madwifi r4032 the following error coming. Checking requirements... ok. Checking kernel configuration... ok. make -C /home/brodev/work/wifi/kamikaze_8.09/build_dir/linux-ar71xx/linux-2.6.26.5 SUBDIRS=/home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi modules make[1]: Entering directory /home/brodev/work/wifi/kamikaze_8.09/build_dir/linux-ar71xx/linux-2.6.26.5' CC [M] /home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi/ath/if_ath.o {standard input}: Assembler messages: {standard input}:7260: Error: Branch out of range {standard input}:7303: Error: Branch out of range {standard input}:9713: Error: Branch out of range {standard input}:9730: Error: Branch out of range {standard input}:9842: Error: Branch out of range {standard input}:9882: Error: Branch out of range make[3]: *** [/home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi/ath/if_ath.o] thanks and regards bryce |
From: Pavel R. <pr...@gn...> - 2009-06-24 18:35:40
|
On Wed, 2009-06-24 at 15:05 +0000, Bryce wrote: > Hi ALL > I am compiling for ar71xx the madwifi r4032 the following error coming. > > Checking requirements... ok. > Checking kernel configuration... ok. > make -C > /home/brodev/work/wifi/kamikaze_8.09/build_dir/linux-ar71xx/linux-2.6.26.5 > SUBDIRS=/home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi modules > make[1]: Entering directory > /home/brodev/work/wifi/kamikaze_8.09/build_dir/linux-ar71xx/linux-2.6.26.5' > CC [M] /home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi/ath/if_ath.o > {standard input}: Assembler messages: > {standard input}:7260: Error: Branch out of range > {standard input}:7303: Error: Branch out of range > {standard input}:9713: Error: Branch out of range > {standard input}:9730: Error: Branch out of range > {standard input}:9842: Error: Branch out of range > {standard input}:9882: Error: Branch out of range > make[3]: *** [/home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi/ath/if_ath.o] I don't think MadWifi is doing anything wrong. It must be a compiler problem. It could be mitigated by splitting if_ath.c into smaller pieces (or maybe by splitting some functions), but I don't think it's worth the trouble. -- Regards, Pavel Roskin |
From: Louay S. <lou...@li...> - 2009-06-24 19:55:57
|
This happen on MIPS and I send you the workaround before, but you did not want to add it in, without it, no one can build it on MIPS. Louay Pavel Roskin wrote: > On Wed, 2009-06-24 at 15:05 +0000, Bryce wrote: >> Hi ALL >> I am compiling for ar71xx the madwifi r4032 the following error coming. >> >> Checking requirements... ok. >> Checking kernel configuration... ok. >> make -C >> /home/brodev/work/wifi/kamikaze_8.09/build_dir/linux-ar71xx/linux-2.6.26.5 >> SUBDIRS=/home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi modules >> make[1]: Entering directory >> /home/brodev/work/wifi/kamikaze_8.09/build_dir/linux-ar71xx/linux-2.6.26.5' >> CC [M] /home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi/ath/if_ath.o >> {standard input}: Assembler messages: >> {standard input}:7260: Error: Branch out of range >> {standard input}:7303: Error: Branch out of range >> {standard input}:9713: Error: Branch out of range >> {standard input}:9730: Error: Branch out of range >> {standard input}:9842: Error: Branch out of range >> {standard input}:9882: Error: Branch out of range >> make[3]: *** [/home/brodev/work/wifi/wp543-sdk/madwifihal/madwifi/ath/if_ath.o] > > I don't think MadWifi is doing anything wrong. It must be a compiler > problem. It could be mitigated by splitting if_ath.c into smaller > pieces (or maybe by splitting some functions), but I don't think it's > worth the trouble. > -- Louay Sakka LinoWave Corp 1001-101 Champlain Av L7L5Z4 Burlington On Canada Tel: 12892880060 Fax: 12892880061 Cell:12898882248 www.linowave.com |
From: Pavel R. <pr...@gn...> - 2009-06-24 20:00:53
|
On Wed, 2009-06-24 at 15:31 -0400, Louay Sakka wrote: > This happen on MIPS and I send you the workaround before, but you did > not want to add it in, without it, no one can build it on MIPS. I remember seeing somebody report that problem, but I don't remember anyone sending a patch. I checked your resent post and I cannot find anything relevant. Could you please resend your patch? I tried to reproduce the problem but couldn't. I used bcm47xx_defconfig for the configuration, as it's 32-bit and has PCI. I used gcc 4.3.3 compiled by buildroot. The kernel in Linux 2.6.30, MadWifi is the current trunk. Everything compiles fine. -- Regards, Pavel Roskin |
From: Louay S. <lou...@li...> - 2009-06-24 20:26:31
|
I remember it was about adding a relax-branch to gcc in the Makefile for MIPS: COPTS+= -G 0 -mips32 -mno-abicalls -fno-pic -Wa,--trap -Wa,-relax-branch -fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls I remember this is all what need to be done, But it was a long time, I can send you my makefile if you want. Louay Pavel Roskin wrote: > On Wed, 2009-06-24 at 15:31 -0400, Louay Sakka wrote: >> This happen on MIPS and I send you the workaround before, but you did >> not want to add it in, without it, no one can build it on MIPS. > > I remember seeing somebody report that problem, but I don't remember > anyone sending a patch. I checked your resent post and I cannot find > anything relevant. Could you please resend your patch? > > I tried to reproduce the problem but couldn't. I used bcm47xx_defconfig > for the configuration, as it's 32-bit and has PCI. I used gcc 4.3.3 > compiled by buildroot. The kernel in Linux 2.6.30, MadWifi is the > current trunk. Everything compiles fine. > -- Louay Sakka LinoWave Corp 1001-101 Champlain Av L7L5Z4 Burlington On Canada Tel: 12892880060 Fax: 12892880061 Cell:12898882248 www.linowave.com |
From: Pavel R. <pr...@gn...> - 2009-06-24 21:30:07
|
On Wed, 2009-06-24 at 16:23 -0400, Louay Sakka wrote: > I remember it was about adding a relax-branch to gcc in the Makefile for > MIPS: > > COPTS+= -G 0 -mips32 -mno-abicalls -fno-pic -Wa,--trap > -Wa,-relax-branch -fno-strict-aliasing -fno-common -fomit-frame-pointer > -mlong-calls > > I remember this is all what need to be done, But it was a long time, I > can send you my makefile if you want. I remember that the patch was adding that option for all architectures, and that's why it was rejected. Moreover, -relax-branch doesn't appear to be a documented option of GNU assembler. -- Regards, Pavel Roskin |
From: Louay S. <lou...@li...> - 2009-06-24 21:37:09
|
Yes I remember, you are right, unfortunately my makefile experience are little, but I am confident that it is safe to use for MIPS. Pavel Roskin wrote: > On Wed, 2009-06-24 at 16:23 -0400, Louay Sakka wrote: >> I remember it was about adding a relax-branch to gcc in the Makefile for >> MIPS: >> >> COPTS+= -G 0 -mips32 -mno-abicalls -fno-pic -Wa,--trap >> -Wa,-relax-branch -fno-strict-aliasing -fno-common -fomit-frame-pointer >> -mlong-calls >> >> I remember this is all what need to be done, But it was a long time, I >> can send you my makefile if you want. > > I remember that the patch was adding that option for all architectures, > and that's why it was rejected. > > Moreover, -relax-branch doesn't appear to be a documented option of GNU > assembler. > |
From: Pavel R. <pr...@gn...> - 2009-06-25 18:43:37
|
On Wed, 2009-06-24 at 17:36 -0400, Louay Sakka wrote: > Yes I remember, you are right, unfortunately my makefile experience > are little, but I am confident that it is safe to use for MIPS. In any case, I would prefer a solution that doesn't involve adding compiler or assembler flags that the kernel doesn't use. Undocumented options can disappear or change meaning. They can also affect interaction between the MadWifi modules and the kernel. I believe the problem happens because some function is so large that jumps inside the function need to be long. It's possible that it happens because of inlining. Then the fix would be to disable inlining for some functions using __attribute__((__noinline__)). If you can figure out which function is too large and what calls need to be uninlined, then I can apply the fix. Alternatively, I need the .config file from the kernel and version of the kernel, the compiler and the assembler, so that I can reproduce the problem myself. Another possibility is that if_ath.c is too large and needs to be split. That's a less welcome situation, but I think it can be done too. -- Regards, Pavel Roskin |
From: Dino <din...@ya...> - 2009-06-25 07:44:54
|
Louay Sakka <louay.sakka <at> linowave.com> writes: > > I remember it was about adding a relax-branch to gcc in the Makefile for > MIPS: > > COPTS+= -G 0 -mips32 -mno-abicalls -fno-pic -Wa,--trap > -Wa,-relax-branch -fno-strict-aliasing -fno-common -fomit-frame-pointer > -mlong-calls > > I remember this is all what need to be done, But it was a long time, I > can send you my makefile if you want. > > Louay > Hi, Thanks Louay I did the changes for COPTS+ as mentioned above. below warning came as below and madwifi compiled. make -C /home/brodev/wifi/wp543/WFAP-08/linux/kernels/linux-2.6.26.5 SUBDIRS=/home/brodev/wifi/wp543/WFAP-08/wlan/madwifi modules make[1]: Entering directory `/home/brodev/wifi/wp543/WFAP-08/linux/kernels/linux-2.6.26.5' CC [M] /home/brodev/wifi/wp543/WFAP-08/wlan/madwifi/ath/if_ath.o {standard input}: Assembler messages: {standard input}:1466: Warning: relaxed out-of-range branch into a jump {standard input}:9594: Warning: relaxed out-of-range branch into a jump {standard input}:9643: Warning: relaxed out-of-range branch into a jump {standard input}:12207: Warning: relaxed out-of-range branch into a jump {standard input}:12327: Warning: relaxed out-of-range branch into a jump {standard input}:13050: Warning: relaxed out-of-range branch into a jump {standard input}:1469: Warning: relaxed out-of-range branch into a jump {standard input}:9596: Warning: relaxed out-of-range branch into a jump {standard input}:9645: Warning: relaxed out-of-range branch into a jump {standard input}:12209: Warning: relaxed out-of-range branch into a jump {standard input}:12329: Warning: relaxed out-of-range branch into a jump {standard input}:13052: Warning: relaxed out-of-range branch into a jump CC [M] /home/brodev/wifi/wp543/WFAP-08/wlan/madwifi/ath/if_ath_radar.o CC [M] /home/brodev/wifi/wp543/WFAP-08/wlan/madwifi/ath/if_ath_hal_extensions.o CC [M] /home/brodev/wifi/wp543/WFAP-08/wlan/madwifi/ath/if_ath_pci.o LD [M] /home/brodev/wifi/wp543/WFAP-08/wlan/madwifi/ath/ath_pci.o But while i load the madwifi modules below warning message comes wifi0: ath_fatal_tasklet: Hardware error; resetting. Thanks and regards Bryce |
From: Pavel R. <pr...@gn...> - 2009-06-26 03:29:31
|
On Wed, 2009-06-24 at 17:36 -0400, Louay Sakka wrote: > Yes I remember, you are right, unfortunately my makefile experience > are little, but I am confident that it is safe to use for MIPS. P.S. I wrote a script that test MadWifi for all mips default configs included in the kernel sources. I tried the Ubiquity toolchain (gcc 3.3.3, binutils 2.14.90.0.6): http://www.ubnt.com/downloads/sdk/toolchain-mips-ls_0.1-1.deb I also tested a toolchain I compiled using buildroot (gcc 4.3.3, binutils 2.19.1). I could not reproduce the "Branch out of range" error. I found many other issues, which I fixed in Subversion. I also ran that script on PowerPC and ARM configs and fixed more issues. I'm quite sure now that "Branch out of range" is a compiler bug. I'm not going to work around compiler bugs by such invasive changes as adding an undocumented assembler option. If you have a buggy compiler, please use another compiler. -- Regards, Pavel Roskin |
From: Louay S. <lou...@li...> - 2009-06-26 03:37:58
|
Pavel, You are right, this was a compiler error, but I am sure there was no other way around it. Can you please provide more details about the MIPS envirenemnt you used? I use openembedded, and mipsel-linux-gcc (GCC) 4.1.2 Not sure what Bryce use. This is what this blog say: http://madwifi-project.org/ticket/1910 "In hal/public/mips-le-elf.inc put LDOPTS= -EL COPTS+= -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN COPTS+= -G 0 -mips32 -mno-abicalls -fno-pic -Wa,--trap -Wa,-relax-branch \ -fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls The relax-branch helps the job of the compiler. In fact it is not a compiler bug, it is a compiler feature, or a missing feature." So it is a limitation inside the compiler, but not sure why it does not show up when you try to compile Pavel Roskin wrote: > On Wed, 2009-06-24 at 17:36 -0400, Louay Sakka wrote: >> Yes I remember, you are right, unfortunately my makefile experience >> are little, but I am confident that it is safe to use for MIPS. > > P.S. I wrote a script that test MadWifi for all mips default configs > included in the kernel sources. I tried the Ubiquity toolchain (gcc > 3.3.3, binutils 2.14.90.0.6): > http://www.ubnt.com/downloads/sdk/toolchain-mips-ls_0.1-1.deb > > I also tested a toolchain I compiled using buildroot (gcc 4.3.3, > binutils 2.19.1). > > I could not reproduce the "Branch out of range" error. I found many > other issues, which I fixed in Subversion. I also ran that script on > PowerPC and ARM configs and fixed more issues. > > I'm quite sure now that "Branch out of range" is a compiler bug. I'm > not going to work around compiler bugs by such invasive changes as > adding an undocumented assembler option. > > If you have a buggy compiler, please use another compiler. > -- Louay Sakka LinoWave Corp 1001-101 Champlain Av L7L5Z4 Burlington On Canada Tel: 12892880060 Fax: 12892880061 Cell:12898882248 www.linowave.com |
From: Pavel R. <pr...@gn...> - 2009-06-26 05:21:06
|
Quoting Louay Sakka <lou...@li...>: > Pavel, > > You are right, this was a compiler error, but I am sure there was no > other way around it. Why are you sure? Are you saying that no other approach would work, not even disabling inlining? > Can you please provide more details about the MIPS envirenemnt you used? I was using MadWifi from trunk and the following combinations of the kernel, gcc and binutils: 1) 2.6.31-rc1, 4.3.3, 2.19.1 2) 2.6.19, 3.3.3, 2.14.90.0.6 I tried all default MIPS configurations in the respective kernels. The script would enable wireless extensions and PCI and rerun "make oldconfig" with the default answers. If PCI could not be enabled, compilation for AHB was performed. > I use openembedded, and mipsel-linux-gcc (GCC) 4.1.2 Unfortunately, buildroot doesn't offer anything older that 4.2.4. I may have a look at openembedded, but it will take time. And I'm not sure it's worth my time to look for an old compiler to work around some bug in it. > This is what this blog say: > > http://madwifi-project.org/ticket/1910 It's not a blog, it's a ticket. Everyone can post there, and no posts are edited or removed (with very rare exceptions). > The relax-branch helps the job of the compiler. In fact it is not a > compiler bug, it is a compiler feature, or a missing feature." It's just an opinion of somebody who commented on the bug after it was closed and everyone with a clue left. > So it is a limitation inside the compiler, but not sure why it does not > show up when you try to compile Apparently because I'm using compilers that either don't have that limitation, or don't optimize hard enough for this limitation to become visible. -- Regards, Pavel Roskin |