www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Status of Win64 DMD/MSVC path situation?

reply Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
I know there's been some work/discussion regarding improvements to how
DMD/sc.ini/whatever handles the paths for MSVC for Win64 builds. I
haven't been following that closely, so I wanted to ask: What's the
current state of that? Is it decided how 2.064 is going to deal with
that, and if so, how exactly?
Sep 25 2013
next sibling parent reply "Brad Anderson" <eco gnuk.net> writes:
On Wednesday, 25 September 2013 at 16:26:14 UTC, Nick Sabalausky 
wrote:
 I know there's been some work/discussion regarding improvements 
 to how
 DMD/sc.ini/whatever handles the paths for MSVC for Win64 
 builds. I
 haven't been following that closely, so I wanted to ask: What's 
 the
 current state of that? Is it decided how 2.064 is going to deal 
 with
 that, and if so, how exactly?

https://github.com/D-Programming-Language/dmd/pull/2509 It was closed with several people asking that Walter use [Environment64] instead of LIBPATH64. Walter hasn't replied so it's a bit in limbo.
Sep 25 2013
parent Rainer Schuetze <r.sagitario gmx.de> writes:
On 25.09.2013 20:49, Jacob Carlborg wrote:
 On Wednesday, 25 September 2013 at 17:01:34 UTC, Brad Anderson wrote:

 [Environment64]
 ; VS2008 and VS2012
 LINKCMD64=%VCINSTALLDIR%\bin\amd64\link.exe

 ; VS2012
 ; LINKCMD64=%VCINSTALLDIR%\bin\x86_amd64\link.exe

Two different for VS2012? Should the first one be 2010?

Yes, eagle eye ;-) Please also note that the proposed sc.ini uses a different folder for win64 libraries than the current releases.
Sep 26 2013
prev sibling next sibling parent Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
On Wed, 25 Sep 2013 18:29:45 +0200
"Brad Anderson" <eco gnuk.net> wrote:

 On Wednesday, 25 September 2013 at 16:26:14 UTC, Nick Sabalausky 
 wrote:
 I know there's been some work/discussion regarding improvements 
 to how
 DMD/sc.ini/whatever handles the paths for MSVC for Win64 
 builds. I
 haven't been following that closely, so I wanted to ask: What's 
 the
 current state of that? Is it decided how 2.064 is going to deal 
 with
 that, and if so, how exactly?

https://github.com/D-Programming-Language/dmd/pull/2509 It was closed with several people asking that Walter use [Environment64] instead of LIBPATH64. Walter hasn't replied so it's a bit in limbo.

Hmm, ok. Am I correct in understanding that, for the average user, the that'll be an inconsequential decision and *regardless* of how sc.ini works the only thing they'll (hopefully) need to worry about is setting their environment's %VCINSTALLDIR% and %WindowsSdkDir% vars?
Sep 25 2013
prev sibling next sibling parent "Brad Anderson" <eco gnuk.net> writes:
On Wednesday, 25 September 2013 at 16:42:22 UTC, Nick Sabalausky 
wrote:
 On Wed, 25 Sep 2013 18:29:45 +0200
 "Brad Anderson" <eco gnuk.net> wrote:

 On Wednesday, 25 September 2013 at 16:26:14 UTC, Nick 
 Sabalausky wrote:
 I know there's been some work/discussion regarding 
 improvements to how
 DMD/sc.ini/whatever handles the paths for MSVC for Win64 
 builds. I
 haven't been following that closely, so I wanted to ask: 
 What's the
 current state of that? Is it decided how 2.064 is going to 
 deal with
 that, and if so, how exactly?

https://github.com/D-Programming-Language/dmd/pull/2509 It was closed with several people asking that Walter use [Environment64] instead of LIBPATH64. Walter hasn't replied so it's a bit in limbo.

Hmm, ok. Am I correct in understanding that, for the average user, the that'll be an inconsequential decision and *regardless* of how sc.ini works the only thing they'll (hopefully) need to worry about is setting their environment's %VCINSTALLDIR% and %WindowsSdkDir% vars?

Not quite. The tail of the path changes with VC versions. I've modified the installer to detect VS and adjust sc.ini accordingly: https://github.com/D-Programming-Language/installer/pull/22 This will make it pretty simple for those using the installer. I think I'm going to ask Walter to ship an sc.ini more like this sc.ini Rainer posted[1] and adjust the installer accordingly: --- ; environment for both 32/64 bit [Environment] LIB="% P%\..\lib" DFLAGS="-I% P%\..\..\src\phobos" "-I% P%\..\..\src\druntime\import" LINKCMD=% P%\link.exe [Environment64] ; VS2008 and VS2012 LINKCMD64=%VCINSTALLDIR%\bin\amd64\link.exe ; VS2012 ; LINKCMD64=%VCINSTALLDIR%\bin\x86_amd64\link.exe ; needed with /DEBUG to find mspdb*.dll PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE ; needed to avoid COMDAT folding (bugzilla 10664) DFLAGS=%DFLAGS% -L/OPT:NOICF LIB="% P%\..\lib64" ;;;; search path for C Runtime libraries ; the following lib path works with VS2008, VS2010 and VS2012 LIB=%LIB%;"%VCINSTALLDIR%\lib\amd64" ;;;; search path for Platform libraries ; the following lib path works with Windows SDK 6.x and 7.x LIB=%LIB%;%WindowsSdkDir%\Lib\x64 ; the following lib path works with Windows SDK 8.0 LIB=%LIB%;%WindowsSdkDir%\Lib\win8\um\x64 --- That sc.ini is much more helpful to people editing by hand (as well as takes care of some bugs I wasn't aware of). 1. http://forum.dlang.org/post/l10vtc$76o$1 digitalmars.com
Sep 25 2013
prev sibling next sibling parent "Jacob Carlborg" <doob me.com> writes:
On Wednesday, 25 September 2013 at 17:01:34 UTC, Brad Anderson 
wrote:

 [Environment64]
 ; VS2008 and VS2012
 LINKCMD64=%VCINSTALLDIR%\bin\amd64\link.exe

 ; VS2012
 ; LINKCMD64=%VCINSTALLDIR%\bin\x86_amd64\link.exe

Two different for VS2012? Should the first one be 2010? -- /Jacob Carlborg
Sep 25 2013
prev sibling parent Manu <turkeyman gmail.com> writes:
--001a11c3356012977b04e7455364
Content-Type: text/plain; charset=UTF-8

On 26 September 2013 18:11, Rainer Schuetze <r.sagitario gmx.de> wrote:

 On 25.09.2013 20:49, Jacob Carlborg wrote:

 On Wednesday, 25 September 2013 at 17:01:34 UTC, Brad Anderson wrote:

  [Environment64]
 ; VS2008 and VS2012
 LINKCMD64=%VCINSTALLDIR%\bin\**amd64\link.exe

 ; VS2012
 ; LINKCMD64=%VCINSTALLDIR%\bin\**x86_amd64\link.exe

Two different for VS2012? Should the first one be 2010?

Please also note that the proposed sc.ini uses a different folder for win64 libraries than the current releases.

Amen! :) .. I wasn't sure if that got through. --001a11c3356012977b04e7455364 Content-Type: text/html; charset=UTF-8 <div dir="ltr">On 26 September 2013 18:11, Rainer Schuetze <span dir="ltr">&lt;<a href="mailto:r.sagitario gmx.de" target="_blank">r.sagitario gmx.de</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br> <br> On 25.09.2013 20:49, Jacob Carlborg wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> On Wednesday, 25 September 2013 at 17:01:34 UTC, Brad Anderson wrote:<br> <br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> [Environment64]<br> ; VS2008 and VS2012<br> LINKCMD64=%VCINSTALLDIR%\bin\<u></u>amd64\link.exe<br> <br> ; VS2012<br> ; LINKCMD64=%VCINSTALLDIR%\bin\<u></u>x86_amd64\link.exe<br> </blockquote> <br> Two different for VS2012? Should the first one be 2010?<br> <br> </blockquote> <br></div></div> Yes, eagle eye ;-)<br> <br> Please also note that the proposed sc.ini uses a different folder for win64 libraries than the current releases.<br></blockquote><div><br></div><div>Amen! :) .. I wasn&#39;t sure if that got through.</div></div></div></div> --001a11c3356012977b04e7455364--
Sep 26 2013