qca / open-ath9k-htc-firmware

The firmware for QCA AR7010/AR9271 802.11n USB NICs
Other
429 stars 182 forks source link

Fix toolchain build #29

Closed oblique closed 10 years ago

erikarn commented 11 years ago

Hi!

I think this needs a bit more testing before we update the toolchain.

The last toolchain update caused all kinds of strange behaviour.

Would you please email the ath9k firmware list and ask for some more wider testing?

Does this produce smaller code? Why should we update to the latest gcc right now?

Adrian

On 8 May 2013 09:30, oblique notifications@github.com wrote:


You can merge this Pull Request by running

git pull https://github.com/oblique/open-ath9k-htc-firmware fix-toolchain-build

Or view, comment on, or merge it at:

https://github.com/qca/open-ath9k-htc-firmware/pull/29

Commit Summary

Update GCC to 4.8.0 Add a patch for binutils 2.23.1

File Changes

M Makefile (4) A local/patches/binutils-elf32-xtensa-sec_cache.patch (20)

Patch Links:

https://github.com/qca/open-ath9k-htc-firmware/pull/29.patch https://github.com/qca/open-ath9k-htc-firmware/pull/29.diff

oblique commented 11 years ago

The reason I updated GCC is because 4.7.2 fails to compile. What toolchain versions you had before?

niklas88 commented 11 years ago

I can no longer compile the toolchain with current GCC 4.8.1 as shipped on Arch Linux, it fails with the following error http://pastebin.com/MbHzyuBF

hemlockII commented 11 years ago

I can also confirm the failure to build with GCC 4.7.2. Also, (probably due to lack of enough linux experience) have never seen a build process involving "make toolchain" before; why ship gcc binutils etc when you can use the local one I already have?

erikarn commented 11 years ago

Hi!

Do you have a locally installed tensilica toolchain?

The whole point here is to create binaries that exactly match what we have. The firmware build process could use a locally installed tensilica toolchain but then the generated binaries may be different and the bugs and behaviour may differ in subtle ways.

Doing it this way ensures everyone is on the same page and has the same code generated.

-adrian

On 24 August 2013 20:04, hemlockII notifications@github.com wrote:

I can also confirm the failure to build with GCC 4.7.2. Also, (probably due to lack of enough linux experience) have never seen a build process involving "make toolchain" before; why ship gcc binutils etc when you can use the local one I already have?

— Reply to this email directly or view it on GitHubhttps://github.com/qca/open-ath9k-htc-firmware/pull/29#issuecomment-23220982 .

alexander-naumov commented 11 years ago

Hi guys, I have the same error (as niklas88 has) during compiling the toolchain. I got it with gcc-4.8-1.3.i586 (openSUSE 13.1-m4).

2oblique: does your brange fix this problem?

oblique commented 11 years ago

Well, it compiles. But I don't know if there are any strange behaviours. Give it a try

alexander-naumov commented 11 years ago

Using this repo: https://github.com/oblique/open-ath9k-htc-firmware I got the same error...

oblique commented 11 years ago

I don't get any errors, make sure that you're in the fix-toolchain-build branch. If you're not in, just do: git checkout fix-toolchain-build

niklas88 commented 11 years ago

That branch's build instructions are outdated though, it doesn't actually have a ./build script anymore. Also I'm getting the following build error http://pastebin.com/df9Z4ehK which I guess is a case of the new GCC behaviour to use language constraints for upper bounds of loop iterations and will likely break code, see http://gcc.gnu.org/gcc-4.8/changes.html . It would be best to fix the loops but in the meantime -fno-aggressive-loop-optimizations should give the old behaviour.

jaysonlarose commented 10 years ago

8 months later, and I'm still seeing the same error that niklas88 was, on both an Ubuntu 14.04 LTS virtual machine and a Debian Jessie/Sid ARM box.

Fix it? Post a workaround? Better still, post firmware binaries, since I really have no interest in the magic of the build process?

erikarn commented 10 years ago

hi,

gcc-4.7.2 fails to compile beacuse the ubuntu compiler suite defaults to -Werror and it spits out problems.

Updating to gcc-4.8.0 means that there may be a whole new round of code generation bugs and/or bad source code (ie, not C-anything compliant) that lead to code generation that changes the behaviour of the firmware.

So in order to update to gcc-4.8.0 and the later binutils, the firmware itself has to be throughly tested. I just don't have the time to do that right now. If others can run it with these patches and validate that they don't see any issues, then I'll merge the pull request.

I hope that makes sense.

-a

On 22 April 2014 13:13, jaysonlarose notifications@github.com wrote:

8 months later, and I'm still seeing the same error that niklas88 was, on both an Ubuntu 14.04 LTS virtual machine and a Debian Jessie/Sid ARM box.

Fix it? Post a workaround? Better still, post firmware binaries, since I really have no interest in the magic of the build process?

— Reply to this email directly or view it on GitHubhttps://github.com/qca/open-ath9k-htc-firmware/pull/29#issuecomment-41089710 .

jaysonlarose commented 10 years ago

Makes perfect sense... but all I need is the end product; a built-and-good copy of htc_9271.fw. :)

erikarn commented 10 years ago

Hi!

Well, ask around to see how to convince the ubuntu tool(s) to not enable Werror by default.

-a

On 22 April 2014 13:49, jaysonlarose notifications@github.com wrote:

Makes perfect sense... but all I need is the end product; a built-and-good copy of htc_9271.fw. :)

— Reply to this email directly or view it on GitHubhttps://github.com/qca/open-ath9k-htc-firmware/pull/29#issuecomment-41093741 .

jaysonlarose commented 10 years ago

That still means I have to compile the thing, and to compile the toolchain I need to compile the thing.

I guess there's something I'm not quite understanding here.... Is there any particular reason why you aren't make binary open-ath9k firmware images available? It is "open", after all...

erikarn commented 10 years ago

There's a binary firmware image in the Linux firmware git repository. (linux-firmware.git.)

-a

On 22 April 2014 16:51, jaysonlarose notifications@github.com wrote:

That still means I have to compile the thing, and to compile the toolchain I need to compile the thing.

I guess there's something I'm not quite understanding here.... Is there any particular reason why you aren't make binary open-ath9k firmware images available? It is "open", after all...

— Reply to this email directly or view it on GitHubhttps://github.com/qca/open-ath9k-htc-firmware/pull/29#issuecomment-41110132 .

olerem commented 10 years ago

hmm... this image seems to be from 2011.

erikarn commented 10 years ago

The images are still binary API comaptible right? We should build a new one.

-a

On 28 April 2014 15:05, Oleksij Rempel notifications@github.com wrote:

hmm... this image seems to be from 2011.

— Reply to this email directly or view it on GitHubhttps://github.com/qca/open-ath9k-htc-firmware/pull/29#issuecomment-41619731 .

olerem commented 10 years ago

Yes, then lets build it at the end of this week. I'll try to finish my patchset

look-a-squirrel commented 10 years ago

For anyone in need of an up-to-date build patch, they can use https://github.com/look-a-squirrel/open-ath9k-htc-firmware/commit/ebc6cb1f6be8053f1b4d0165c9d8ea98d41eba1f which will