Does anyone agree with me on this? Maybe I’m missing something here but I would like to improve it.

 


From: ros-dev-bounces@reactos.org [mailto:ros-dev-bounces@reactos.org] On Behalf Of Marc Piulachs
Sent: Sunday, September 16, 2007 6:31 PM
To: 'ReactOS Development List'
Subject: [ros-dev] rbuild and HALs module optimization

 

If we don’t have a ntoskrnl rbuild module for every supported architecture I don’t understand why we do have a separate HAL rbuild module for every architecture (X86 , PowePC) and sub architecture (x86-Generic , x86-xbox , PowerPC-Generic)

 

Currently we have a very complicated logic to compile the appropriate HAL with conditions (IF) and alias that point to the correct module for the target architecture. At the end always two dlls are going to be generated for every architecture hal_up and hal_mp so what’s the reason to have a specific module for every architecture and not two generic modules that represent the two possible HAL modes (uniprocessor and multiprocessor) that dynamically include the appropriate source code for the platform (Architecture + Sub Architecture) being build?

 

For example :

 

<module name=”hal_generic” >

            (common code to all architectures, sub architectures , UP and MP HALs)

</module>

 

<module name=”hal_up” installname=”halup.dll”>

            <library>hal_generic</library>

            <library>….

 

            (common files to all UP HALs)

 

            <if property=”ARCH” value=”i386”>

                        (X86 common files to all X86 UP HALs)

                        <if property=”OARCH” value=”xbox”>

                                    (xbox specific files)

                        </if>

            </if>

 

            </if propery=”ARCH” value=”powerpc”>

                        (PPC common files)

            </if>

</module>

 

And the same for multiprocessor <module name=”hal_mp” installname=”halmp.dll” /> both files can be simply copied to the install cd and usetup will install the correct HAL renamed as hal.dll depending on the user selection. IMHO it greatly simplifies the process and is a more elegant solution than the current one.