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: '
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.