Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Current porting state?
Current porting state? [message #4930] Fri, 25 August 2006 17:24 Go to next message
Werner is currently offline  Werner
Messages: 234
Registered: May 2006
Location: Cologne / Germany
Experienced Member
Mirek's message #4924 "PocketPC conquered...."

I am happy to announce that the hard part of PocketPC support is finished - I was able
to run most of "examples" on my PDA (interestingly, without any changes to the examples code,
just compile&run).

Now of course, a lot of issues remains to be resolved, starting with right click emulation etc....
but the core work is already done.

Mirek

P.S.: Somebody to donate OSX capable PowerPC Mac?


gives cause to update my web site. So:

What is the current state of the Linux, UNIX, MacOS, ... portings?

Werner
Re: Current porting state? [message #4942 is a reply to message #4930] Sun, 27 August 2006 19:13 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
- Windows is mature

- Most of Linux problems of past (e.g. printing or PdfDraw) are now resolved. (still missing is OpenGL support). FreeBSD is I believe the same thing.

- PocketPC is under development, I hope that next big release will be able to announce support

- MacOS is still in plans. With the current PocketPC experience, I dare to say that it will need no more than two months, however I do not think there will be MacOS in next release (unfortunately).

Mirek
Re: Current porting state? [message #4953 is a reply to message #4942] Sun, 27 August 2006 20:36 Go to previous messageGo to next message
Werner is currently offline  Werner
Messages: 234
Registered: May 2006
Location: Cologne / Germany
Experienced Member
luzr wrote on Sun, 27 August 2006 19:13

- Windows is mature

- Most of Linux problems of past (e.g. printing or PdfDraw) are now resolved. (still missing is OpenGL support). FreeBSD is I believe the same thing.

- PocketPC is under development, I hope that next big release will be able to announce support

- MacOS is still in plans. With the current PocketPC experience, I dare to say that it will need no more than two months, however I do not think there will be MacOS in next release (unfortunately).

Mirek


Thanks a lot. I'll incorporate this into the next update of my web site.

Werner

P. S.:

Actually I expected the Linux, FreeBSD, etc. maintainers to answer. Are you doing all the stuff yourself?

Werner

Re: Current porting state? [message #4955 is a reply to message #4953] Sun, 27 August 2006 21:22 Go to previous messageGo to next message
masu is currently offline  masu
Messages: 378
Registered: February 2006
Senior Member
Werner wrote on Sun, 27 August 2006 20:36

Actually I expected the Linux, FreeBSD, etc. maintainers to answer. Are you doing all the stuff yourself?


Hi Werner,

as far as FreeBSD is concerned, I can assure you that Ultimate++ is working. I think it should be similar to all BSDs. But I think one has to compile Ultimate++ on its own for example on NetBSD and OpenBSD for now. Maybe I prepare a pkgsrc port in the near future, which supports quite a lot BSDs since pkgsrc is available for all these systems.
If you are curious, you can have a look at:
http://www.netbsd.org/Documentation/software/packages.html

Matthias
Re: Current porting state? [message #4961 is a reply to message #4953] Sun, 27 August 2006 22:52 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Quote:


Actually I expected the Linux, FreeBSD, etc. maintainers to answer. Are you doing all the stuff yourself?



Let us say I am responsible for majority of changes in uppsrc... including all platform specific code. This is not quite fortunate situation (nobody likes to depend on one-mans show), but it is as it is now...

So far, I have created all linux releases too (but not freebsd), which shows... Smile (by avoiding all rules... Smile I hope this is gona change soon.

Mirek

[Updated on: Sun, 27 August 2006 22:54]

Report message to a moderator

Re: Current porting state? [message #4973 is a reply to message #4955] Mon, 28 August 2006 21:38 Go to previous messageGo to next message
Werner is currently offline  Werner
Messages: 234
Registered: May 2006
Location: Cologne / Germany
Experienced Member
masu wrote on Sun, 27 August 2006 21:22

Werner wrote on Sun, 27 August 2006 20:36

Actually I expected the Linux, FreeBSD, etc. maintainers to answer. Are you doing all the stuff yourself?


Hi Werner,

as far as FreeBSD is concerned, I can assure you that Ultimate++ is working. I think it should be similar to all BSDs. But I think one has to compile Ultimate++ on its own for example on NetBSD and OpenBSD for now. Maybe I prepare a pkgsrc port in the near future, which supports quite a lot BSDs since pkgsrc is available for all these systems.
If you are curious, you can have a look at:
http://www.netbsd.org/Documentation/software/packages.html

Matthias


Thanks. I updated my web site accordingly. (Maybe in a slightly optimistic tone as far as NetBSD and OpenBSD are concerned Cool ...)

Werner
Re: Current porting state? [message #5241 is a reply to message #4973] Mon, 11 September 2006 10:35 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

I run Ultimate++ on NetBSD and it was no more than 7-8 changes needed to compile it. However, it will still only run on Little Endian. We are very patiently waiting for BE, and OsX support.

Many users waiting on OsX infact.

I should try the new Japanese fixes though, be curious if it runs better in Japanese.

Lund
Re: Current porting state? [message #5242 is a reply to message #5241] Mon, 11 September 2006 10:41 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Quote:


I run Ultimate++ on NetBSD and it was no more than 7-8 changes needed to compile it.



Well, I might have missed something, but if they are in the C++ code, could you list them please?

Quote:


However, it will still only run on Little Endian. We are very patiently waiting for BE, and OsX support.



At least, it now runs on ARM Smile

BE support should be easy (right now there is just single place which needs fixing). Do you have any hardware to test with?

Mirek
Re: Current porting state? [message #5251 is a reply to message #5242] Mon, 11 September 2006 14:05 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member
luzr wrote on Mon, 11 September 2006 17:41



Well, I might have missed something, but if they are in the C++ code, could you list them please?



Nah, usual porting things when it's Linux coders Smile .. lets see if I remember.
loff_t=off_t
lseek64=lseek
ftruncate64=ftruncate
strerror_r=strerror

Hmm actually, i think the latter needed some code changes due to the argument count differences.

Considered autoconf? I know it doesn't fit in the picture when you have the IDE running, but to build the ide maybe?

Oh, as a corollary, I need a way to run ./configure in my Project from the ide.. possible?


Quote:


BE support should be easy (right now there is just single place which needs fixing). Do you have any hardware to test with?



Lots and lots. If you want to fiddle with the last place, we can start on some debugging.

Lund

Re: Current porting state? [message #5253 is a reply to message #5251] Mon, 11 September 2006 14:16 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Quote:


Considered autoconf? I know it doesn't fit in the picture when you have the IDE running, but to build the ide maybe?



No problem, but do not expect me to do that. I still hope for posix maintainer to do that for us...

Quote:


Oh, as a corollary, I need a way to run ./configure in my Project from the ide.. possible?



The only possible way would be using custom build steps AFAIK.

Quote:


Lots and lots. If you want to fiddle with the last place, we can start on some debugging.



Actually, the last place I am aware of deals with swapping order in serialization, it would be problem only if you would want to share serialization between BE/LE machines (which is hardly the case now).

Means, if you can, what about to simply try the current version?

Mirek
Re: Current porting state? [message #5262 is a reply to message #5253] Tue, 12 September 2006 03:13 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member
luzr wrote on Mon, 11 September 2006 21:16


No problem, but do not expect me to do that. I still hope for posix maintainer to do that for us...



Well, let me know. I just forced myself to learn autoconf, and converted 4 of my projects to use it. It was surprisingly easy, but it helped to find an excellent PDF walk-through.


Quote:


The only possible way would be using custom build steps AFAIK.


I'll explore that, as long as it could be a possible step.

Quote:


Actually, the last place I am aware of deals with swapping order in serialization, it would be problem only if you would want to share serialization between BE/LE machines (which is hardly the case now).

Means, if you can, what about to simply try the current version?

Mirek


Ok, I have started that.



Re: Current porting state? [message #5265 is a reply to message #5262] Tue, 12 September 2006 06:01 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

The Makefile seems quite out of date, if it is automatically generated by something, could someone do that for me Smile

Perhaps something else is up. But files like PixelArray.h don't exist, but are mentioned in Makefile.


Re: Current porting state? [message #5266 is a reply to message #5265] Tue, 12 September 2006 07:49 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

Sorry for the noise, but it appears I can export the Makefile with my old 604 ide just fine. Nice it seems backward compatible.
Re: Current porting state? [message #5272 is a reply to message #5266] Tue, 12 September 2006 11:03 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

Right, I created a new flagNETBSD ok, changed everywhere so it compiles without issue. The IDE does seem to have some trouble:

http://netbsd.interq.or.jp/~lundman/upp-609dev1.jpg

But testing all Examples that build, they all work fine.



Did the same for OSX, which compiles, but it does not start. Initially it is:

0xffff86f8 in ___bzero () at
/System/Library/Frameworks/System.framework/PrivateHeaders/p pc/cpu_capabilities.h:187
101::memset(&obj, 0, sizeof(obj));

Which does not really make sense. A bit of googling seems to suggest there is a namespace issue "history", with libedit (readline).

However, I commented that line out, in the interest to see how much further I could get:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x3a262ff8
0x0026e500 in UnpackRLE (t=0x3a262ff8, s=0x421995 "ËËËÃÔ×\205o^rQ:\204a4\030\003vT=\215udÙåç\001òòò", len=<incomplete type>) at /Users/lundman/uppsrc/uppsrc/Draw/ImageBlit.cpp:51
51 *t++ = h;

Also seems odd, perhaps still related to the first issue, so I need to track that down first.



Re: Current porting state? [message #5273 is a reply to message #5272] Tue, 12 September 2006 11:16 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
I am a bit confused. That NetBSD test, is it on non-X86 (big endian) architecture?

UnpackRLE - looks like unaligned access or access to invalid memory. Well, unaligned access is unlikely, 0x3a262ff8 is not unaligned. Perhaps there is a problem with heap, that is very likely, please try to compile with USEMALLOC (that could resolve the first problem as well).

Mirek
Re: Current porting state? [message #5281 is a reply to message #5273] Tue, 12 September 2006 12:06 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

Correct, two tests.

First one to bring my working Intel-NetBSD-604 to latest. However, it displays that corruption in the IDE. However, programs compiled with ide seems to work. (Maybe I should recompile the ide in the ide hmm)

I will try with USEMALLOC on the ppc OsX.

Re: Current porting state? [message #5282 is a reply to message #5281] Tue, 12 September 2006 12:56 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

Hmm is it enough to add -DflagUSEMALLOC in Makefile, and hose the out/ dir to recompile? Because if it is, it is 100% the same problem Smile

Re: Current porting state? [message #5283 is a reply to message #5282] Tue, 12 September 2006 13:00 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Yes, that should be enough.

Well, in that case, I thing you should start with something more simple, some Core application without GUI, like

CONSOLE_APP_MAIN { LOG("Hello world!"); }

to get Core working and add GUI later...

Mirek
Re: Current porting state? [message #5298 is a reply to message #5283] Wed, 13 September 2006 03:27 Go to previous messageGo to next message
lundman is currently offline  lundman
Messages: 175
Registered: March 2006
Location: Tokyo
Experienced Member

I do not know if I am doing it the correct way, but I exported the Makefile for HelloWorld and set to.

The flagUSEMALLOC, when enabled, created some undefined references MemoryDumpLeaks() in Core.h, which was easy to fix, but I took out USEMALLOC anyway.

Compiling HelloWorld failed due to:

StaticCriticalSection::Initialize

So I wrapped the prototype in #ifdef _MULTITHREADED in mt.h


Then we were linked. Still cores in identical memset(), commented out.

Cores in UnpackRLE, so I made it just return s;

Cores in memcpy:82 Util.h

Cores in memset:273 Image.cpp

At this point I get the Window comes up, with working menu bar.

Picking About will core again, this time in:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x36340834
0x000e14fc in BltAAMapRGBA4 (dest=0x6888c00, s=0x36340834, map=0x6377080) at /Users/lundman/uppsrc/uppsrc/Draw/ImageScale.cpp:278
278 dest[0] = (s[0].b + s[step].b + s[2 * step].b + s[3 * step].b) << 6;
(gdb) p s
$1 = (const RGBA *) 0x36340834
(gdb) p *s
Cannot access memory at address 0x36340834

Why is it that your RGBA's, which seem to be defined as "RGBA *" or, pointers to an RGBA, end up with the RGBA value "0x36340834" (which looks like a clean RGBA value to me) instead of a pointer to said value.

Almost like:
RGBA *rgba;
*rgba = value;
.. is interpreted as "*(rgba)=value;" instead of the correct
"(*rgba)=value;".


Re: Current porting state? [message #5299 is a reply to message #5298] Wed, 13 September 2006 08:10 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Quote:


I do not know if I am doing it the correct way, but I exported the Makefile for HelloWorld and set to.



HelloWorld is still too big. First thing that you should make working when porting is logging (LOG and DUMP).

Quote:


The flagUSEMALLOC, when enabled, created some undefined references MemoryDumpLeaks() in Core.h, which was easy to fix, but I took out USEMALLOC anyway.



Rather stay with malloc. If there is something highly platform sensitive, it is heap allocator implementation.

Quote:


Compiling HelloWorld failed due to:

StaticCriticalSection::Initialize



Error?

Quote:


(gdb) p s
$1 = (const RGBA *) 0x36340834
(gdb) p *s
Cannot access memory at address 0x36340834

Why is it that your RGBA's, which seem to be defined as "RGBA *" or, pointers to an RGBA, end up with the RGBA value "0x36340834" (which looks like a clean RGBA value to me) instead of a pointer to said value.

Almost like:
RGBA *rgba;
*rgba = value;
.. is interpreted as "*(rgba)=value;" instead of the correct
"(*rgba)=value;".



Actually, I believe that debugger and compiler are correct. Just somehow s contains invalid address.

Previous Topic: SO for Draw, Esc and other packages
Next Topic: C strings
Goto Forum:
  


Current Time: Thu Mar 28 18:31:06 CET 2024

Total time taken to generate the page: 0.01554 seconds