x64 builds and Windows 7

Ralf Habacker ralf.habacker at freenet.de
Sun Aug 16 00:14:12 CEST 2009


Casper van Donderen schrieb:
> I knew all the stuff about only being able to use x64 DLL's and stuff
> only on x64, that's why I was saying: make a different installer. then
> you can have the x64 installer set KDEROOT_X64 env var and when the
> user then accidentally downloads the 32-bit installer too that would
> say: nothing installed yet because it cannot find the installed x64
> packages....
>
> The biggest problem will be the mixing of 32 and 64 bit packages. I
> think we have to split that out as early as possible.
>
> Say the 32-bit package of kget is available but the 64 isn't. the guy
> is using the universal installer on x64 and pushes the button: 'look
> for 32-bit packages' he finds kget and downloads that. Then in the
> worst case his system will lock up....
>   
You assume that 32 bit and 64 bit package could be installed into one 
install root, which is forbitten.
The universal installer will ask you for a installation root and a 
compiler type.
On a x64 system he is able to choose between msvc 64 and msvc 32 bit 
(maybe mingw32/64 too).
Then he can installs packages only of the choosen type into this install 
root, because x64 packages have the x64 term in the package name.
When he run next time the installer and choose the same install root, he 
is not able to change the compiler type for this install root. He can 
again only install packages for the previously selected compiler.

If he wants to install 32 bit packages too, he can start the installer, 
choose a different install root, select 32bit msvc compiler and is able 
to installs 32 bit applications without any interferences with the 64bit 
installation.

> I think your solution pasted above causes a lot more work for the
> people making the installer/emerge scripts will it not?
>   
No, this logic is already implemented in the installer, there is only 
the gui part for choosing x64 compiler and small fixes for x64 packages 
files detection required.

When the first x64 release comes to light i have to think about comes t 
I have
> (I don't have x64 compatible Visual Studio (Express edition can't do
> that) and need to find out if I can compile packages for XP/Vista with
> the Win7 SDK, or that I need to use the 2k5 PSDK. (anyone know this?)
>   
This VS is included in the msdn, maybe KDE e.V. can sponsor a license 
for this.
> Casper
>
> On Sat, Aug 15, 2009 at 11:35 PM, Ralf Habacker<ralf.habacker at freenet.de> wrote:
>   
>> Casper van Donderen schrieb:
>>     
>>> Yeah, but you could also do it with a compiler flag... Then you don't
>>> have to change a lot...
>>>
>>>       
>> which could be initial set by
>> EMERGE_ARCHITECTURE=x64
>>
>> while for 32 bit
>>    EMERGE_ARCHITECTURE=x86
>>
>> -> This feature was just checked into emerge on kde svn
>>     
>>> with your solution you have to rename all packages (or also just
>>> append -x64 to the packagename)
>>>
>>>       
>> On linux 32 and 64 bit package are unique for a given architecture
>> http://www.rpmseek.com/rpm-pl/kdelibs.html?hl=de&cs=kdelibs:PN:0:0:0:0:0
>> and I am sure, that this should be also the same on windows. Otherwise
>> this will end in a nightmare when people are mixing 32bit and 64 bit
>> packages.
>>
>> Also people may be required to install KDE/32bit also on a 64bit system,
>> may be because a specific kde application is not available as 64bit
>> version.
>> The installer could be easily fixed to support x64 packages as Patrick
>> has done for mingw4.
>>
>> BTW: emerge and the packager are already prepared for creating x64
>> packages, so you can immediatly start to build x64 packages.  :-)
>>
>> <snip>
>>     
>>>> If the 32 bit installer would be able to run on 64 bit systems and the
>>>> installer would be able to detect the 64bit os, the 64bit packages could
>>>> be preselected by default  (and the 32 bit packages when running on a 32
>>>> bit os)
>>>>
>>>>         
>> this looks easy
>>
>> BOOL Is64BitWindows()
>> {
>> #if defined(_WIN64)
>>  return TRUE;  // 64-bit programs run only on Win64
>> #elif defined(_WIN32)
>>  // 32-bit programs run on both 32-bit and 64-bit Windows
>>  // so must sniff
>>  BOOL f64 = FALSE;
>>  return IsWow64Process(GetCurrentProcess(), &f64) && f64;
>> #else
>>  return FALSE; // Win64 does not support Win16
>> #endif
>> }
>> http://blogs.msdn.com/oldnewthing/archive/2005/02/01/364563.aspx
>>
>>
>>     
>>>> Important questions with 64 bit systems I see are:
>>>>
>>>> - is it possible to load 32bit dll's from 64 dll's and 64bit executable ?
>>>>
>>>>         
>> I found the answer ... 32-bit DLLs cannot be loaded in a 64-bit process.
>> from
>> http://social.msdn.microsoft.com/forums/en-US/wpf/thread/7b8fe815-90c5-4919-aa22-431287a93d81
>>
>> This mean that *all* packages which kde packages deppends on have to be
>> rebuild for x64.
>>
>> Regards
>> Ralf
>> _______________________________________________
>> Kde-windows mailing list
>> Kde-windows at kde.org
>> https://mail.kde.org/mailman/listinfo/kde-windows
>>
>>     
> _______________________________________________
> Kde-windows mailing list
> Kde-windows at kde.org
> https://mail.kde.org/mailman/listinfo/kde-windows
>   




More information about the Kde-windows mailing list