OAH x64 Build

Asked by ManuelCalavera

Hi, I am currently trying to build gstreamer with oah as x64 binary. I succeeded at building glib after editing a few files and doing some workarounds to linking.

I created the corresponding vsprops files (e.g. oah-x64.vsprops).

If you guys are interested I would like to contribute my work to oah, so that maybe in the future more users are able to build x64 libs using oah.

Question information

Language:
English Edit question
Status:
Answered
For:
OAH Build Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Haakon Sporsheim (ieei) said :
#1

Sure, sounds sweet! Just create a branch and I will gladly merge it into trunk :) Thanks!

bzr push lp:~qblubb/oah/oah-x64-fixup or something like that..

Revision history for this message
ManuelCalavera (qblubb) said :
#2

Sadly I am not familiar with bazaar, will this upload the whole tree?
If so, this should not be necessary.
(Using a slow DSL line over here, with very little upload speed).

For oah I only created the following files:
"C:\Program Files (x86)\OAH Build\vsprops\oah-x64.vsprops"
"C:\Program Files (x86)\OAH Build\vsprops\oah-x64-Debug.vsprops"
"C:\Program Files (x86)\OAH Build\vsprops\oah-x64-Release.vsprops"
"C:\Program Files (x86)\OAH Build\vsprops\oah-x64-ReleaseWdkCrt.vsprops"

and for glib I edited:
"glib.sln" and "generated.vcproj"

building project with: "msbuild glib.sln /p:Configuration=Release;Platform=x64"

Linking fails for libglib, libgmodule, libgthread, libgobject and libgio.
Running the linker command from Buildlog.htm in the cmd-window succeeds, but some output files are named wrong (exe instead of dll, version number missing) and in wrong directory.

"C:\Users\...\FOSS\Release\bin\libgio.exe"
"C:\Users\...\FOSS\Release\bin\libgio.exp"
"C:\Users\...\FOSS\Release\bin\libgio.lib"
"C:\Users\...\FOSS\Release\bin\libglib.exe"
"C:\Users\...\FOSS\Release\bin\libglib.exp"
"C:\Users\...\FOSS\Release\bin\libglib.lib"
"C:\Users\...\FOSS\Release\bin\libgmodule.exe"
"C:\Users\...\FOSS\Release\bin\libgmodule.exp"
"C:\Users\...\FOSS\Release\bin\libgmodule.lib"
"C:\Users\...\FOSS\Release\bin\libgobject.exe"
"C:\Users\...\FOSS\Release\bin\libgobject.exp"
"C:\Users\...\FOSS\Release\bin\libgobject.lib"
"C:\Users\...\FOSS\Release\bin\libgthread.exe"
"C:\Users\...\FOSS\Release\bin\libgthread.exp"
"C:\Users\...\FOSS\Release\bin\libgthread.lib"

Copying the .lib files to the lib dir and suffixing them with "-2.0" fixes the problem.

You can email me directly to "qblubb AT gmail DOT com"

Revision history for this message
ManuelCalavera (qblubb) said :
#3

I got around the naming problem by removing [OutputFile="$(OutDir)\bin\$(ProjectName).exe"] from oah.vsprops.

The rest of the errors seem to be caused by the build system using "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\link.exe", maybe a x64 compatible linkwrapper is needed?? Just a thought.

I will wait for you guys to release version 0.4 and then try again :-)

Revision history for this message
Ole André Vadla Ravnås (oleavr) said :
#4

The x64 property sheets have been part of mainline (post 0.3) for some time now, so I would recommend basing any changes on HEAD and not 0.3.

I've also been hacking on getting GLib built for x64, and my work in progress branches can be found here:
lp:~oleavr/+junk/oahbuild-x64
lp:~oleavr/+junk/glib-x64

The changes needed in GLib were next to none (just adding corresponding x64 configurations to the generated project and to the solution file), and I had to make some minor adjustments to the x64 property sheets. Other than that I've hacked linkwrapper so that it looks at its location to invoke the correct link.exe relative from %OAH_INSTALLED_PATH%\bin so you can have the actual Win32 link.exe there like before and the other two in subdirs named exactly like their original installation locations. This means that you'll typically have three copies of linkwrapper, in my case meaning:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\link.exe
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\link.exe
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\link.exe

Can you help with this problem?

Provide an answer of your own, or ask ManuelCalavera for more information if necessary.

To post a message you must log in.