Discussion:
Compiling DeskLib
(too old to reply)
Rob Heaton
2017-10-31 21:23:19 UTC
Permalink
I'm trying to compile DeskLib v2.8 using !GCC 4.7.4r3, but getting
errors when running the make file on RISC OS.

From reading the documentation with the source it also mentions using
the GCCSDK Autobuilder, but I can't get that to compile under the
latest version of Ubuntu.

Is there some kind soul out there that could compile DeskLib v2.8
using a recent version of the GCCSDK Autobuilder please?

I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
--
Rob Heaton
Alan
2017-11-03 14:42:14 UTC
Permalink
Post by Rob Heaton
I'm trying to compile DeskLib v2.8 using !GCC 4.7.4r3, but getting
errors when running the make file on RISC OS.
From reading the documentation with the source it also mentions using
the GCCSDK Autobuilder, but I can't get that to compile under the
latest version of Ubuntu.
Is there some kind soul out there that could compile DeskLib v2.8
using a recent version of the GCCSDK Autobuilder please?
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
I can get Desklib to compile on the autobuilder and have done a little
so it puts the headers in RISC OS format for the package site, but the
test examples I built didn't seem to work correctly and one crashed.

This is also the build against the SharedUnixLibrary.

I think it's better than the previous autobuilder version and if you
think it would help I could upload it to the autobuilder site, but I'm
not a desklib expert so I can't really test it or debug it.
Rob Heaton
2017-11-03 18:07:26 UTC
Permalink
Post by Alan
Post by Rob Heaton
I'm trying to compile DeskLib v2.8 using !GCC 4.7.4r3, but getting
errors when running the make file on RISC OS.
From reading the documentation with the source it also mentions using
the GCCSDK Autobuilder, but I can't get that to compile under the
latest version of Ubuntu.
Is there some kind soul out there that could compile DeskLib v2.8
using a recent version of the GCCSDK Autobuilder please?
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
I can get Desklib to compile on the autobuilder and have done a little
so it puts the headers in RISC OS format for the package site, but the
test examples I built didn't seem to work correctly and one crashed.
This is also the build against the SharedUnixLibrary.
I think it's better than the previous autobuilder version and if you
think it would help I could upload it to the autobuilder site, but I'm
not a desklib expert so I can't really test it or debug it.
If you could upload it, that would be great!
Thank you!

Or if you want to email it over, my posting address is valid.
--
Rob Heaton
Alan
2017-11-04 16:54:19 UTC
Permalink
Post by Rob Heaton
Post by Alan
Post by Rob Heaton
I'm trying to compile DeskLib v2.8 using !GCC 4.7.4r3, but getting
errors when running the make file on RISC OS.
From reading the documentation with the source it also mentions using
the GCCSDK Autobuilder, but I can't get that to compile under the
latest version of Ubuntu.
Is there some kind soul out there that could compile DeskLib v2.8
using a recent version of the GCCSDK Autobuilder please?
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
I can get Desklib to compile on the autobuilder and have done a little
so it puts the headers in RISC OS format for the package site, but the
test examples I built didn't seem to work correctly and one crashed.
This is also the build against the SharedUnixLibrary.
I think it's better than the previous autobuilder version and if you
think it would help I could upload it to the autobuilder site, but I'm
not a desklib expert so I can't really test it or debug it.
If you could upload it, that would be great!
Thank you!
Or if you want to email it over, my posting address is valid.
--
Rob Heaton
Rob,

I've tried to send you a copy as I couldn't get it to upload today.

You will need to use -L/Desklib: -lDesk to link with it using GCC.

The example makefiles are all incorrect. Let me know how you get on.

Regards,
Alan
Matthew Phillips
2017-11-04 14:29:59 UTC
Permalink
Post by Rob Heaton
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
Are you intending to build the application with GCC as well, or are you going
to use Norcroft? It's best to use the same compiler for the library as well.
--
Matthew Phillips
Durham
Rob Heaton
2017-11-05 19:02:42 UTC
Permalink
Post by Matthew Phillips
Post by Rob Heaton
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
Are you intending to build the application with GCC as well, or are you going
to use Norcroft? It's best to use the same compiler for the library as well.
The problem I have is, I’m trying to recompile RDPClient, the original
author isn’t contactable, but he told me it requires to be built with
Norcroft.

RDPClient relies on DeskLib, the only version that supports Norcroft is
v2.8 of DeskLib.
The current compiled version of DeskLib 2.8 is compiled with an old
version of GCC and fails when used on ARMv6 or ARMv7.

I downloaded the source to DeskLib 2.8 and the documentation says it
can be built with either GCC or the GCCSDK.
I tried to compile it with GCC, however the source and makefiles seem
to have been modified and only support GCCSDK.

I’ve tried to install the GCCSDK, but building the GCCSDK fails on the
current release of Ubuntu with errors relating to Automake 1.9.
t***@cestriant.plus.com
2017-12-01 21:38:12 UTC
Permalink
[Snip]
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
Forgive my asking, but why do you say DeskLib v2.8 doesn't appear to
produce code suitable for ARMv7/v8? I have generated code using v2.8
with the latest Norcroft compiler and have not noticed any problems
with my ARMv7 machines (ARMX6, ARMini & RPi2).
I suspect that there are now very few users of this combination of
library and compiler.
--
Regards,
TerryK
Rick Murray
2017-12-05 21:58:48 UTC
Permalink
Post by t***@cestriant.plus.com
produce code suitable for ARMv7/v8? I have generated code using v2.8
with the latest Norcroft compiler and have not noticed any problems
with my ARMv7 machines (ARMX6, ARMini & RPi2).
My own "fork" (of DeskLib 2.30) is built on a Pi2 (ARMv7) and it
works fine. My "Manga" software (on !Store) is written using DDE and
DeskLib.
--
Best wishes,

Rick (heyrick one nine seven three at yahoo dot co dot uk)
Rob Heaton
2017-12-25 09:04:53 UTC
Permalink
Post by t***@cestriant.plus.com
produce code suitable for ARMv7/v8? I have generated code using
v2.8
Post by t***@cestriant.plus.com
with the latest Norcroft compiler and have not noticed any problems
with my ARMv7 machines (ARMX6, ARMini & RPi2).
My own "fork" (of DeskLib 2.30) is built on a Pi2 (ARMv7) and it works
fine. My "Manga" software (on !Store) is written using DDE and DeskLib.
Did you have to make any modifications to DeskLib for it to be suitable
for newer hardware?
Rick Murray
2018-01-02 11:08:25 UTC
Permalink
Post by Rob Heaton
Did you have to make any modifications to DeskLib for it to be suitable
for newer hardware?
Yes and no.

Basically it was just rebuilding it to use a newer compiler that won't try
unaligned loads and ARMv7 deprecated stuff. I did earlier (around 2001 or
so) convert it to "32 bit". I missed a few things which got fixed when I
had an actual 32 bit machine to run it on.

The hard part is the slowly adding stuff. Like SpriteOp via address
(quicker), or Error_ReportWithType() to allow the little icon on the left
to be changed, and Error_Question() to ask a question (with optional
buttons) and return the result. Etc etc etc etc. :-)
--
___
/__/ o __ /_
/ \ / /__ / \ (heyrick one nine seven three at yahoo dot co dot uk)
n***@sprow.co.uk
2018-01-02 21:55:13 UTC
Permalink
Post by Rick Murray
Post by t***@cestriant.plus.com
produce code suitable for ARMv7/v8? I have generated code using
v2.8 with the latest Norcroft compiler and have not noticed any problems
with my ARMv7 machines (ARMX6, ARMini & RPi2).
Depending on the complexity of your application, and the particular library functions you happen to call, you might just be lucky that the functions used don't have data alignment issues (or, you've turned off alignment exceptions - eek!).
Post by Rick Murray
My own "fork" (of DeskLib 2.30) is built on a Pi2 (ARMv7) and it
works fine. My "Manga" software (on !Store) is written using DDE and
DeskLib.
Rick's fork is too early to be useful for RDPClient, which needs the newer 2.80.
As I mentioned (to Rob, not here) in October the source to the AOF version of 2.80 is here
http://www.riscos.info/websvn/listing.php?repname=DeskLib&path=%2Fbranches%2Faof%2F&#a46b28182cb7212733cc3f449521d95e6

Starting from there is by far the shorter route to success,
Sprow.
Rick Murray
2018-01-03 18:22:39 UTC
Permalink
Post by n***@sprow.co.uk
Rick's fork is too early to be useful for RDPClient,
Yes, my original modifications were made when v2.30 (DeskLib) and v3.20
(Desk) were all that existed. v2.80 came along later... ;-)

Do you know what it is that RDPClient needs? Is there a global list of
changes made to get to v2.80 that doesn't involve reading a changelog for
every component? [http://heyrick.ddns.net/desklib/source/!ChangeLog]

Reminds me, I must fix that event dispatch stupidity...
--
___
/__/ o __ /_
/ \ / /__ / \ (heyrick one nine seven three at yahoo dot co dot uk)
Rick Murray
2018-01-03 19:23:49 UTC
Permalink
Post by Rick Murray
Do you know what it is that RDPClient needs?
Done. Not a lot, it seems. Wimp_AddMessages (easy, it'll be a SWI veneer),
File_CreateDir (mine has "ectory" at the end, so macro might be able to
fix that), a missing URL library (kinda see what that might be useful,
it's been on my to-do list for a while), plus there are some changes to
the sprite descriptor definitions. I ought to update mine to match and, in
doing so, support the various ways of describing a sprite that is
supported by RISC OS these days.
Post by Rick Murray
Reminds me, I must fix that event dispatch stupidity...
Thanks for the reminder. Just done that. And was SHOCKED (shocked, I tell
you!) to discover there was no Event_PollIdle() just below. So I've added
that... only a quarter century late...
--
___
/__/ o __ /_
/ \ / /__ / \ (heyrick one nine seven three at yahoo dot co dot uk)
Rob Heaton
2017-12-25 09:03:57 UTC
Permalink
Post by t***@cestriant.plus.com
[Snip]
I need DeskLib v2.8 as I'm trying to recompile an application that was
written with the Norcroft compiler in mind.
The current binary version of DeskLib v2.8 doesn't appear to produce
code suitable for ARMv7/v8.
Forgive my asking, but why do you say DeskLib v2.8 doesn't appear to
produce code suitable for ARMv7/v8? I have generated code using v2.8
with the latest Norcroft compiler and have not noticed any problems
with my ARMv7 machines (ARMX6, ARMini & RPi2).
I suspect that there are now very few users of this combination of
library and compiler.
This was after a discussion with Sprow, he managed to compile RDPClient
on a recent Norcroft version, but the code produced works fine on a
Risc PC, but fails on new hardware.

Happy ot be proven wrong though!
Loading...