How to build for arm?

All development related issues welcome

Moderator: Moderator Team

User avatar
EmuandCo
Developer
Posts: 4465
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: How to build for arm?

Post by EmuandCo »

Well, then try to get things build with MSVC, maybe it will provide the needed SEH Compiler support, but theres way too much missing to make things work outta box. Memory manager for example still is not fully migrated too ARM3 Memory manager and the old one is not very portable. If you have the resources and skills to implement the missing parts, sure it will boot. But for this you need badass low level Windows skills.
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes
BlackRabbit
Posts: 128
Joined: Sat Dec 22, 2012 7:36 am

Re: How to build for arm?

Post by BlackRabbit »

kaungzanarakkub wrote:Becaus i need to develope reactos for mobile phone.
How strange. I need the exact same thing. :o
User avatar
kaungzanarakkub
Posts: 31
Joined: Thu Dec 11, 2008 8:44 am

Re: How to build for arm?

Post by kaungzanarakkub »

Aha, Yes.
User avatar
jonaspm
Posts: 585
Joined: Mon Nov 21, 2011 1:10 am
Location: Mexico
Contact:

Re: How to build for arm?

Post by jonaspm »

The best way we can help ReactOS is:
-coding
-testing
-spreading the word

That way, support for ARM and mobile devices will come faster my friends :)
theColonel26
Posts: 1
Joined: Tue Jul 09, 2013 10:14 pm

Re: How to build for arm?

Post by theColonel26 »

I found this while searching the site because I wanted to compile ReactOS from Raspberry Pi.

Could someone give me a brief explanation of the difficulties in compiling ReactOS for ARM? Preferably in terms a high level language coder can understand.
BlackRabbit
Posts: 128
Joined: Sat Dec 22, 2012 7:36 am

Re: How to build for arm?

Post by BlackRabbit »

If you do not feel like reading the text below, you only need to know one thing:

There are no technical limitations that prevent ReactOS from executing on the vast majority of ARM-based systems, including Raspberry Pi.

[Qualification: I am talking about the core OS primitives. Raspberry Pi appears to lack a real-time clock, which might be annoying from an engineering perspective.]

I will try to summarize the main points here for anyone who is thinking about porting ReactOS to:
  1. Since at least the year 2000, and beginning with ARMv3 (yes version 3), it has been possible to run a preemptive, multi-threaded OS on ARM.
  2. There are fundamental, theoretic primitives that any CPU must have in order to support a preemptive, multi-threaded OS.
  3. A thread must be able to lock a data structure to prevent other threads from accessing the data structure.
  4. A thread that cannot access a data structure because the structure has been locked by another thread, will either spin-in-circles until the data structure becomes unlocked, or enter a wait-state until the data structure becomes unlocked.
  5. A fundamental CPU primitive must exist that allows a thread to spins-in-circles or become blocked in a wait-state, while waiting for access to a data structure that is locked. This fundamental primitive varies against the basic theme of atomic check-and-modify. Two prevalent schemes are test-and-set and compare-and-swap.
  6. A CPU either has support for such atomic operations, or it does not. Like pregnancy, there is no gray area here. Either there is, or there is not.
  7. ARMv3, and every subsequent version of ARM, has those primitives in some form.
  8. ARMv3, and every subsequent version of ARM, is able, therefore, to run ReactOS.
  9. There are other preemptive, multi-threaded OS's that have been running on ARM even before the year 2000. This should be a very strong hint regarding whether it is feasible to run ReactOS on ARM.
  10. If you check the history of this subject, you might find some statements to the contrary about feasibility of ReactOS on ARM. It appears, to me at least, that those statements arose from some confusion caused by a misunderstanding of new CPU instructions that were created by ARM Ltd. The instructions in question are advanced instructions that are meant to solve problems with multi-processor systems, not uni-processor systems commonly prevalent, like the Raspberry Pi.
If you are wondering if suitable C/C++ compilers exist for compiling to ARM, the answer is yes. Microsoft has been providing such compilers for well over a decade now, and both Visual Studio 2005 and Visual Studio 2008 come with such compilers built-in. Visual Studio 2012, however, is even more "special" in its support for ARM development.

If you are wondering why no one has ported ReactOS to ARM yet, it is because no one has ported ReactOS to ARM yet. :geek:
User avatar
jonaspm
Posts: 585
Joined: Mon Nov 21, 2011 1:10 am
Location: Mexico
Contact:

Re: How to build for arm?

Post by jonaspm »

No one has done it because it still doesn't worth it
mrugiero
Posts: 482
Joined: Sun Feb 14, 2010 9:12 am

Re: How to build for arm?

Post by mrugiero »

GCC can target ARM, too.

The obstacles for porting are in the ReactOS codebase, and I think the OP meant those. It takes some porting work, but I don't know exactly what are the missing bits.
BlackRabbit
Posts: 128
Joined: Sat Dec 22, 2012 7:36 am

Re: How to build for arm?

Post by BlackRabbit »

mrugiero wrote: The obstacles for porting are in the ReactOS codebase, and I think the OP meant those. It takes some porting work, but I don't know exactly what are the missing bits.
I think it is the same as asking about porting to other CPU's like MIPS or PowerPC or whatever. In other words, it is what one would expect when trying to port, say, Linux, to a new, not-yet-known CPU that is inherently capable of running Linux. You have to do the port.

The reason I wrote my verbose response was to inform anyone who is interested is that there is no voodoo inside ReactOS, nor is there inside an ARM CPU, that makes porting ReactOS to ARM problematic, since there previously seemed to be sentiments to the contrary.

In other words, porting ReactOS to ARM is an activity that has not been done yet. The act itself has, so far, been its own limitation.
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 2 guests