November 12, 2013 Re: Fail to build LDC2 on Windows 7 X64 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Nacke | thanks Kai I have used your new patch (win64eh_all_20131112.diff). but the same problem generated. Unknown frame setup opcode! UNREACHABLE executed at C:\LDC\llvm\lib\Target\X86\X86MCInstLower.cpp:855! I compiled with a Visual Studio 2012. I think that the cause of this problem is related with a X64 Prolog and Epliog RSP register realignment. Visual Studio 2012 does over allocates and realigns RSP How to resolve it? Would you upate the patch ^^;;; Regards, Kai On Tuesday, 12 November 2013 at 10:50:35 UTC, Kai Nacke wrote: > On Tuesday, 12 November 2013 at 06:07:16 UTC, tae hoo wrote: >> Hey Kai >> >> I noticed that, too. >> Would you send me the llvm SRC files which can be used with >> a win64eh_all_20131021.diff file. >> >> Thanks you. > > Hi tae, > > I have updated the patch in the wiki. Just use the new version. > > Regards, > Kai |
November 12, 2013 Re: Fail to build LDC2 on Windows 7 X64 | ||||
---|---|---|---|---|
| ||||
Posted in reply to tae hoo | Hi tae, On Tuesday, 12 November 2013 at 16:24:26 UTC, tae hoo wrote: > I have used your new patch (win64eh_all_20131112.diff). > but the same problem generated. > > Unknown frame setup opcode! > UNREACHABLE executed at C:\LDC\llvm\lib\Target\X86\X86MCInstLower.cpp:855! > > I compiled with a Visual Studio 2012. > I think that the cause of this problem is related with a X64 Prolog and > Epliog RSP register realignment. > > Visual Studio 2012 does over allocates and realigns RSP > > How to resolve it? That is PR16779 (http://llvm.org/bugs/show_bug.cgi?id=16779). To fix it, you have to change the generation of prolog and epliog code (located in file lib/Target/X86/X86FrameLowering.cpp). > Would you upate the patch ^^;;; I tried to solve the mentioned PR but so far I have no solution for it. Sorry. Currently, I am working on the next release (merge of 2.064), therefore there is no time to fix this. Volunteers are welcome. :-) Regards, Kai |
November 13, 2013 Re: It seems to be a BUG of ldc2 compiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Nacke | <test.d> module test; void poo() { wchar[4096] buffW; } ldc2 --output-o -c -IC:/LDC/ldc/runtime/druntime/src -IC:/LDC/ldc/runtime/druntime/src/gc test.d -oftest.obj -w -d -O0 -release -IC:/LDC/ldc/runtime/phobos if you compile the above test.d, same error message generated >> Unknown frame setup opcode! >> UNREACHABLE executed at C:\LDC\llvm\lib\Target\X86\X86MCInstLower.cpp:855! But, if reduce the stack variable size to below 2000, error message not generated. <test.d> module test; void poo() { wchar[2000] buffW; } It seems to be a BUG of ldc2 compiler not stack alingment problem. On Tuesday, 12 November 2013 at 17:14:59 UTC, Kai Nacke wrote: > Hi tae, > > On Tuesday, 12 November 2013 at 16:24:26 UTC, tae hoo wrote: >> I have used your new patch (win64eh_all_20131112.diff). >> but the same problem generated. >> >> Unknown frame setup opcode! >> UNREACHABLE executed at C:\LDC\llvm\lib\Target\X86\X86MCInstLower.cpp:855! >> >> I compiled with a Visual Studio 2012. >> I think that the cause of this problem is related with a X64 Prolog and >> Epliog RSP register realignment. >> >> Visual Studio 2012 does over allocates and realigns RSP >> >> How to resolve it? > > That is PR16779 (http://llvm.org/bugs/show_bug.cgi?id=16779). > To fix it, you have to change the generation of prolog and epliog code (located in file lib/Target/X86/X86FrameLowering.cpp). > >> Would you upate the patch ^^;;; > > I tried to solve the mentioned PR but so far I have no solution for it. Sorry. > > Currently, I am working on the next release (merge of 2.064), therefore there is no time to fix this. Volunteers are welcome. :-) > > Regards, > Kai |
November 13, 2013 Re: It seems to be a BUG of ldc2 compiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to tae hoo | Hi tae! On Wednesday, 13 November 2013 at 03:42:27 UTC, tae hoo wrote: > <test.d> > module test; > void poo() > { > wchar[4096] buffW; > } > > ldc2 --output-o -c -IC:/LDC/ldc/runtime/druntime/src -IC:/LDC/ldc/runtime/druntime/src/gc test.d -oftest.obj -w -d -O0 -release -IC:/LDC/ldc/runtime/phobos > > if you compile the above test.d, same error message generated >>> Unknown frame setup opcode! >>> UNREACHABLE executed at C:\LDC\llvm\lib\Target\X86\X86MCInstLower.cpp:855! > > > But, if reduce the stack variable size to below 2000, > error message not generated. > > <test.d> > module test; > void poo() > { > wchar[2000] buffW; > } Yes, you are right. It is a bug! The sub instruction after a call to __chkstk was not regarded as valid. I already updated the patch. Please retry. And thanks for the report. :-) > It seems to be a BUG of ldc2 compiler not stack alingment problem. A wouldn't call a problem caused by a LLVM patch a bug of ldc2, even if the author of the patch happens to be a maintainer of the ldc project. ;-) Regards, Kai |
November 15, 2013 Re: It seems to be a BUG of ldc2 compiler | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Nacke | Hi tae!
On Wednesday, 13 November 2013 at 19:34:32 UTC, Kai Nacke wrote:
> And thanks for the report. :-)
Your report was really inspiring. I found yet another bug and fixed it. New version of the patch (for the first time with a test case!) is already linked to the wiki page.
Regards,
Kai
|
November 17, 2013 Re: Hi Kai ! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Nacke | Hi Kai ! I patched llvm and succefully build druntime & phobos lib without visual studio 2012 link warning messages. (...set1.. set2.. set3... etc) but at final link time, the following errors generated. D:\LDC\LDC64\lib>ldc2 test.d phobos-ldc.lib(math.obj) : error LNK2019: unresolved external symbol _D3std4math 4exp2FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc phobos-ldc.lib(math.obj) : error LNK2019: unresolved external symbol _D3std4math 5expm1FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc phobos-ldc.lib(math.obj) : error LNK2019: unresolved external symbol _D3std4math 5atan2FNaNbNeeeZe referenced in function _D3std4math4acosFNaNbNfeZe phobos-ldc.lib(math.obj) : error LNK2019: unresolved external symbol _D3std4math 5truncFNbNeeZe referenced in function _D3std4math4modfFNbNeeKeZe phobos-ldc.lib(math.obj) : error LNK2019: unresolved external symbol _D3std4math 20FloatingPointControl15setControlStateFNbNetZv referenced in function _D3std4ma th5roundFNbNeeZe phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external symbol _D4core6t hread14getStackBottomFZPv referenced in function thread_entryPoint phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external symbol fiber_swi tchContext referenced in function fiber_entryPoint phobos-ldc.lib(threadaux.obj) : error LNK2019: unresolved external symbol _D4cor e3sys7windows9threadaux10thread_aux6getTEBFNbZPPv referenced in function _D4core 3sys7windows9threadaux10thread_aux18impersonate_threadFkMDFZvZv test.exe : fatal error LNK1120: 8 unresolved externals Error: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\x86_amd64\link .exe failed with status: 1120 it seems to be someting wrong at druntime & phobos library build CMake file which related with compilation. How to resolve it? On Friday, 15 November 2013 at 06:39:53 UTC, Kai Nacke wrote: > Hi tae! > > On Wednesday, 13 November 2013 at 19:34:32 UTC, Kai Nacke wrote: >> And thanks for the report. :-) > > Your report was really inspiring. I found yet another bug and fixed it. New version of the patch (for the first time with a test case!) is already linked to the wiki page. > > Regards, > Kai |
November 17, 2013 Re: Hi Kai ! | ||||
---|---|---|---|---|
| ||||
Posted in reply to tae hoo | Hi tae! On Sunday, 17 November 2013 at 14:20:23 UTC, tae hoo wrote: > Hi Kai ! > > I patched llvm and succefully build druntime & phobos lib without > visual studio 2012 link warning messages. (...set1.. set2.. > set3... etc) How do you avoid the link warnings? I opened bug PR17967 (http://llvm.org/bugs/show_bug.cgi?id=17967) because the temporary labels are public! > > but at final link time, the following errors generated. > > D:\LDC\LDC64\lib>ldc2 test.d > phobos-ldc.lib(math.obj) : error LNK2019: unresolved external > symbol _D3std4math > 4exp2FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc > phobos-ldc.lib(math.obj) : error LNK2019: unresolved external > symbol _D3std4math > 5expm1FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc > phobos-ldc.lib(math.obj) : error LNK2019: unresolved external > symbol _D3std4math > 5atan2FNaNbNeeeZe referenced in function > _D3std4math4acosFNaNbNfeZe > phobos-ldc.lib(math.obj) : error LNK2019: unresolved external > symbol _D3std4math > 5truncFNbNeeZe referenced in function _D3std4math4modfFNbNeeKeZe > phobos-ldc.lib(math.obj) : error LNK2019: unresolved external > symbol _D3std4math > 20FloatingPointControl15setControlStateFNbNetZv referenced in > function _D3std4ma > th5roundFNbNeeZe > phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external > symbol _D4core6t > hread14getStackBottomFZPv referenced in function thread_entryPoint > phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external > symbol fiber_swi > tchContext referenced in function fiber_entryPoint > phobos-ldc.lib(threadaux.obj) : error LNK2019: unresolved > external symbol _D4cor > e3sys7windows9threadaux10thread_aux6getTEBFNbZPPv referenced in > function _D4core > 3sys7windows9threadaux10thread_aux18impersonate_threadFkMDFZvZv > test.exe : fatal error LNK1120: 8 unresolved externals > Error: C:\Program Files (x86)\Microsoft Visual Studio > 11.0\VC\BIN\x86_amd64\link > .exe failed with status: 1120 > > it seems to be someting wrong at druntime & phobos library build > CMake file > which related with compilation. > > How to resolve it? No idea yet. I have to check it. Regards, Kai |
November 17, 2013 Re: Hi Kai ! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Nacke | Hi Kai ! LLVM does generates incompatible with MS tool(case jmp table lable , seh lable etc) the problem is 'set directive' do patch llvm, HasSetDirective from true to false. <llvm/lib/MC/MCAsmInfo.cpp> GPRel64Directive = 0; GPRel32Directive = 0; GlobalDirective = "\t.globl\t"; HasSetDirective = false;//true; <---- this, line number 74, HasAggressiveSymbolFolding = true; COMMDirectiveAlignmentIsInBytes = true; LCOMMDirectiveAlignmentType = LCOMM::NoAlignment; I used <git clone http://llvm.org/git/llvm.git llvm> version. but final link error genarated. which version is required for avoiding this phobos link problem? > How do you avoid the link warnings? I opened bug PR17967 (http://llvm.org/bugs/show_bug.cgi?id=17967) because the temporary labels are public! > >> >> but at final link time, the following errors generated. >> >> D:\LDC\LDC64\lib>ldc2 test.d >> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >> symbol _D3std4math >> 4exp2FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc >> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >> symbol _D3std4math >> 5expm1FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc >> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >> symbol _D3std4math >> 5atan2FNaNbNeeeZe referenced in function >> _D3std4math4acosFNaNbNfeZe >> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >> symbol _D3std4math >> 5truncFNbNeeZe referenced in function _D3std4math4modfFNbNeeKeZe >> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >> symbol _D3std4math >> 20FloatingPointControl15setControlStateFNbNetZv referenced in >> function _D3std4ma >> th5roundFNbNeeZe >> phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external >> symbol _D4core6t >> hread14getStackBottomFZPv referenced in function thread_entryPoint >> phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external >> symbol fiber_swi >> tchContext referenced in function fiber_entryPoint >> phobos-ldc.lib(threadaux.obj) : error LNK2019: unresolved >> external symbol _D4cor >> e3sys7windows9threadaux10thread_aux6getTEBFNbZPPv referenced in >> function _D4core >> 3sys7windows9threadaux10thread_aux18impersonate_threadFkMDFZvZv >> test.exe : fatal error LNK1120: 8 unresolved externals >> Error: C:\Program Files (x86)\Microsoft Visual Studio >> 11.0\VC\BIN\x86_amd64\link >> .exe failed with status: 1120 >> >> it seems to be someting wrong at druntime & phobos library build >> CMake file >> which related with compilation. >> >> How to resolve it? > > No idea yet. I have to check it. > > Regards, > Kai |
November 17, 2013 Re: Hi Kai ! | ||||
---|---|---|---|---|
| ||||
Posted in reply to tae hoo | Hi Kai ! Sorry, I am poor at english ^^;;; LVM does generates incompatible with MS tool(case jmp table lable , seh lable etc) the problem is 'set directive' do patch llvm, HasSetDirective from true to false. <llvm/lib/MC/MCAsmInfo.cpp> GPRel64Directive = 0; GPRel32Directive = 0; GlobalDirective = "\t.globl\t"; HasSetDirective = false;//true; <---- this, line number 74, HasAggressiveSymbolFolding = true; COMMDirectiveAlignmentIsInBytes = true; LCOMMDirectiveAlignmentType = LCOMM::NoAlignment; I used <git clone --recursive https://github.com/ldc-developers/ldc.git> version. but final link error genarated. which version is required to avoide this phobos link problem? >> How do you avoid the link warnings? I opened bug PR17967 (http://llvm.org/bugs/show_bug.cgi?id=17967) because the temporary labels are public! >> >>> >>> but at final link time, the following errors generated. >>> >>> D:\LDC\LDC64\lib>ldc2 test.d >>> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >>> symbol _D3std4math >>> 4exp2FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc >>> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >>> symbol _D3std4math >>> 5expm1FNaNbNeeZe referenced in function _D3std4math3sinFNaNbNfcZc >>> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >>> symbol _D3std4math >>> 5atan2FNaNbNeeeZe referenced in function >>> _D3std4math4acosFNaNbNfeZe >>> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >>> symbol _D3std4math >>> 5truncFNbNeeZe referenced in function _D3std4math4modfFNbNeeKeZe >>> phobos-ldc.lib(math.obj) : error LNK2019: unresolved external >>> symbol _D3std4math >>> 20FloatingPointControl15setControlStateFNbNetZv referenced in >>> function _D3std4ma >>> th5roundFNbNeeZe >>> phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external >>> symbol _D4core6t >>> hread14getStackBottomFZPv referenced in function thread_entryPoint >>> phobos-ldc.lib(thread.obj) : error LNK2019: unresolved external >>> symbol fiber_swi >>> tchContext referenced in function fiber_entryPoint >>> phobos-ldc.lib(threadaux.obj) : error LNK2019: unresolved >>> external symbol _D4cor >>> e3sys7windows9threadaux10thread_aux6getTEBFNbZPPv referenced in >>> function _D4core >>> 3sys7windows9threadaux10thread_aux18impersonate_threadFkMDFZvZv >>> test.exe : fatal error LNK1120: 8 unresolved externals >>> Error: C:\Program Files (x86)\Microsoft Visual Studio >>> 11.0\VC\BIN\x86_amd64\link >>> .exe failed with status: 1120 >>> >>> it seems to be someting wrong at druntime & phobos library build >>> CMake file >>> which related with compilation. >>> >>> How to resolve it? >> >> No idea yet. I have to check it. >> >> Regards, >> Kai |
November 18, 2013 Re: Hi Kai ! | ||||
---|---|---|---|---|
| ||||
Posted in reply to tae hoo | Hi tae! On Sunday, 17 November 2013 at 19:17:02 UTC, tae hoo wrote: > Hi Kai ! > > Sorry, I am poor at english ^^;;; No problem at all. I am also no native speaker. > LVM does generates incompatible with MS tool(case jmp table > lable , seh lable > etc) > > the problem is 'set directive' > > do patch llvm, HasSetDirective from true to false. > > <llvm/lib/MC/MCAsmInfo.cpp> > > GPRel64Directive = 0; > GPRel32Directive = 0; > GlobalDirective = "\t.globl\t"; > HasSetDirective = false;//true; <---- this, line number 74, > HasAggressiveSymbolFolding = true; > COMMDirectiveAlignmentIsInBytes = true; > LCOMMDirectiveAlignmentType = LCOMM::NoAlignment; Great information. :-) I think it is a bit to generic. I set HasSetDirective = false; in class X86MCAsmInfoMicrosoft and it works, too. I added this piece of information to the PR. > > I used <git clone --recursive https://github.com/ldc-developers/ldc.git> version. > > but final link error genarated. > > which version is required to avoide this phobos link problem? I am still investigating. There might simply something missing - I was/am busy with a lot of other issues, too. Regards, Kai |
Copyright © 1999-2021 by the D Language Foundation