Compiling WP-34S
|
11-24-2019, 09:30 AM
Post: #1
|
|||
|
|||
Compiling WP-34S
I'm attempting to compile WP34S from sources.
I've checked source out using svn. Current revision is 3912. I haven't modified the code. I'm getting an error from keys.c about a misleading indent (line 2057) I can see what it means about the misleading indent, but "fixing" that, either by unindenting line 2057 or bracketing 2056-67, of course does not resolve the fact that it is trying to return a value to main() - it only gets rid of the misleading indent warning. I'm trying to find an unmatched brace or something to account for it, but I'm not familiar with this code, and I'm struggling. I'm hoping one of the devs might be willing to have a look and confirm the intention on line 2056-57 and help me find where this is going wrong? Please? I'm trying to get to the point that I can compile it all, including the QT gui for linux. Code:
Here is the code snippet: Code:
Georgia, USA 10BII+, 12C, 14B (AE), 17B, 17BII, 20B, WP-34S, 28S, 35S, 39GS, 48G, 82240A,B + sliderules galore, mostly Hemmi/Post & Dietzgen |
|||
11-24-2019, 09:52 AM
(This post was last modified: 11-24-2019 09:56 AM by Paul Dale.)
Post: #2
|
|||
|
|||
RE: Compiling WP-34S
Unindent the return statement to match the indentation of the preceding if and else.
The other error will be more difficult, the main() function does not return for native builds. It looks like you are trying to build calculator firmware. We had all sorts of problems with arm tool chains introducing bugs. In the end we had to go with a specific version which is now very old. It wasn't advanced enough to produce the diagnostic messages you are seeing. As for a Qt Linux version, I've never built such. I still use the text console mode when a bug comes up, you really don't want to go there -- I suspect I'm the only person who has ever used it Pauli |
|||
11-24-2019, 10:31 AM
(This post was last modified: 11-24-2019 11:10 AM by jpcuzzourt.)
Post: #3
|
|||
|
|||
RE: Compiling WP-34S
(11-24-2019 09:52 AM)Paul Dale Wrote: Unindent the return statement to match the indentation of the preceding if and else. Thanks for the response. Yes, without having found any build instructions, I just jumped in to see what I could manage and learn. I started with the linux-build-arm script and figured once I got all the necessary build chain established for that, I could try looking at the QT stuff. And yes, I'm using all the current Debian stable build tools. (gcc version 8.3 and arm-none-eabi-gcc version 7.3.1) I had managed building the QT linux version of newRPL, and so I have a lot of that build environment set up and working. Again, thanks for letting me know the intention of the else clause. Maybe I'll be able to sort out where it's getting mixed up! (EDIT: turning off -Werror patches this issue - the compiler can't prove whether the return() is going to execute or not, and so it flags the warning. -Werror treats the warning as an error. There are smarter ways to do this, but not for me, not right now.) -JP EDIT: Oh, one more thing - you may or may not be interested in the warnings that my tools are generating for pretty.c in compile_cats.c. I haven't looked into these at all yet, but they seem to be indicating some potential buffer overruns. Code: In file included from compile_cats.c:1287: Georgia, USA 10BII+, 12C, 14B (AE), 17B, 17BII, 20B, WP-34S, 28S, 35S, 39GS, 48G, 82240A,B + sliderules galore, mostly Hemmi/Post & Dietzgen |
|||
11-24-2019, 11:46 AM
Post: #4
|
|||
|
|||
RE: Compiling WP-34S
The pretty.c ones are almost certainly furfies. It is printing instructions there and none are ever even remotely close to the buffer length -- they fit on the screen which limits the output to just over 20 characters (from memory, so probably wrong). I think you need to disable -Werror and ignore them. Or get an older compiler. There isn't a lot of compile time optimisation used for the firmware -- size is the most important factor rather than speed.
Dig into the Makefile, make sure your machine is being properly detected and modify the environment variable settings as required. You're treading into an area I've never used. Pascal or Marcus might be able to assist maybe? Pauli (11-24-2019 10:31 AM)jpcuzzourt Wrote:(11-24-2019 09:52 AM)Paul Dale Wrote: Unindent the return statement to match the indentation of the preceding if and else. |
|||
11-24-2019, 11:52 AM
Post: #5
|
|||
|
|||
RE: Compiling WP-34S
You will need the Yagarto GCC stuff to build firmware. Nothing else built the code properly.
Have a look in the project's doc direction for a guide to compiling the code. Pauli |
|||
11-24-2019, 03:14 PM
(This post was last modified: 11-24-2019 03:22 PM by jpcuzzourt.)
Post: #6
|
|||
|
|||
RE: Compiling WP-34S
(11-24-2019 11:52 AM)Paul Dale Wrote: You will need the Yagarto GCC stuff to build firmware. Nothing else built the code properly. Thanks! - Especially for pointing me to the compiling instructions. I'd looked for such and missed it there every time. It's obviously a bigger project than I anticipated, and I probably have better things to spend time on, but I would *like* to get a build environment set up eventually. I'll start with Yagarto next time I play with it (after I get my nap out. Zzzzz) On a parallel track, I may try starting where you guys originally did, with the HP-20B SDK, and try to build it up from there, starting with their sample apps. JP Georgia, USA 10BII+, 12C, 14B (AE), 17B, 17BII, 20B, WP-34S, 28S, 35S, 39GS, 48G, 82240A,B + sliderules galore, mostly Hemmi/Post & Dietzgen |
|||
11-24-2019, 08:51 PM
Post: #7
|
|||
|
|||
RE: Compiling WP-34S | |||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)