Penulis Topik: [MSVC C++] clang-cl yang kadang fail compiling/linking?  (Dibaca 1479 kali)

Offline descrates

  • Moderator
  • Pro500
  • *****
  • Tulisan: 755
  • Reputation: +5079/-0
    • Lihat Profil
[MSVC C++] clang-cl yang kadang fail compiling/linking?
« pada: Juli 27, 2019, 12:03:55 PM »
sebenarnya ini bug yang agak lucu
yang sampai sekarang belum fixed
mulai dari clang 5 keatas
contohnya kalo compile x64 success
giliran x86 aka 32 bit failed error di <limits>
sebaliknya kadang x86 linking bisa
giliran x64 error

why?

jawabannya ada di source code-nya
ini kaitannya dengan /include/ punya msvc
pada 32 bit code nyaris tidak ada revisi berarti
yang 64 bit cenderung direvisi berkala

SDK MSVC yg bisa handle 90% x64 & x86
cuman SDK 7.1 + msvc 2010/2012 (yg partial)
2013 error x86 + linking problem
2015 error x86 + linking problem
2017 error x86 + linking problem
2019 error x86 + linking problem

solusi?

pakai cmake
buat x64 pakai clang-cl
buat x86 pakai msvc
linkernya msvc (tapi susah juga kalo mau full lto)
TASKKILL /F /IM SMΔRTP.exe /T

Win7 32bit [kernel patch] --- 2x2,8GHz Intel --- 8GB RAM DDR3 --- 512MB 9600M GT NVidia --- Iron 15 beta --- Opera Mini Proxies

other OS: Lucid Puppy, XP SP2 [custom], XP SP3, Win7 64bit, Tails

Offline descrates

  • Moderator
  • Pro500
  • *****
  • Tulisan: 755
  • Reputation: +5079/-0
    • Lihat Profil
Re:[MSVC C++] clang-cl yang kadang fail compiling/linking?
« Jawab #1 pada: September 20, 2019, 09:22:14 AM »
ada fakta menarik jika clang-cl dicombo dengan icl
ini kaitannya dengan icl lib juga sih contoh libmmt.lib
contoh ketika clang-cl pakai msvc2015 lib (defaultnya SSE2)
tapi ketika implementasi pada icl lib tidak begitu
(SSE2 punya intel tidak terlink dengan baik)

contoh kasus

pada kasus _exp2 misalnya
secara default clang-cl akan linking ke msvc2015 lib
jika lib diganti ke icl lib bisa saja tapi bikin crash
untuk mengubah ke icl lib juga akan susah sekali
yang patternnya cukup panjang -> libm sse2 exp2

solusi?

kita harus edit source dan compile ulang clang-cl
« Edit Terakhir: September 20, 2019, 10:51:27 AM oleh descrates »
TASKKILL /F /IM SMΔRTP.exe /T

Win7 32bit [kernel patch] --- 2x2,8GHz Intel --- 8GB RAM DDR3 --- 512MB 9600M GT NVidia --- Iron 15 beta --- Opera Mini Proxies

other OS: Lucid Puppy, XP SP2 [custom], XP SP3, Win7 64bit, Tails

Offline descrates

  • Moderator
  • Pro500
  • *****
  • Tulisan: 755
  • Reputation: +5079/-0
    • Lihat Profil
Re:[MSVC C++] clang-cl yang kadang fail compiling/linking?
« Jawab #2 pada: Oktober 01, 2019, 05:13:20 AM »
ini juga bug yang terbilang aneh, aneh bener
ketika memakai SVML (-fveclib=SVML)
selain linking ke SVML, clang bikin vector juga
hasilnya antar vector akan saling bertabrakan
SVML bentrok dengan vector internal
hal ini membuat aplikasi crash
TASKKILL /F /IM SMΔRTP.exe /T

Win7 32bit [kernel patch] --- 2x2,8GHz Intel --- 8GB RAM DDR3 --- 512MB 9600M GT NVidia --- Iron 15 beta --- Opera Mini Proxies

other OS: Lucid Puppy, XP SP2 [custom], XP SP3, Win7 64bit, Tails

Offline descrates

  • Moderator
  • Pro500
  • *****
  • Tulisan: 755
  • Reputation: +5079/-0
    • Lihat Profil
Re:[MSVC C++] clang-cl yang kadang fail compiling/linking?
« Jawab #3 pada: November 13, 2019, 06:08:01 AM »
kalo ini bisa dibilang rare bug juga
pada clang 10 alpha bug ini mulai ada
dan clang-cl & lld-link harus "sama versi"
kalau beda versi bakal error
terus juga sekarang forcing ke MSVC
dan sekarang clang-cl 10 + msvc2019
sudah mendekati dengan icl
dari segi performance
clang-cl + msvc2013 = 15x (avg)
clang-cl + msvc2015 = 16x (avg)
clang-cl + msvc2017 = 17x (avg)
clang-cl + msvc2019 = 19x (avg)
clang-cl + icl 17 + msvc2013 = 20x (avg)
icl 17 = 18x (avg)
icl 18 = 19x (avg)
icl 19 = 19x - 20x (avg)
bugnya begini
kondisi ketika LTO + create .debug info
clang-cl create lto.tmp dan oke
tapi waktu linking, lld-link tidak resolve
karena tidak bisa baca reference
jika tidak LTO semua normal
solusi?
belum tahu
TASKKILL /F /IM SMΔRTP.exe /T

Win7 32bit [kernel patch] --- 2x2,8GHz Intel --- 8GB RAM DDR3 --- 512MB 9600M GT NVidia --- Iron 15 beta --- Opera Mini Proxies

other OS: Lucid Puppy, XP SP2 [custom], XP SP3, Win7 64bit, Tails

Offline descrates

  • Moderator
  • Pro500
  • *****
  • Tulisan: 755
  • Reputation: +5079/-0
    • Lihat Profil
Re:[MSVC C++] clang-cl yang kadang fail compiling/linking?
« Jawab #4 pada: Desember 04, 2019, 01:29:14 PM »
lanjut ya bugnya
bug ini sebenarnya berkaitan dengan "fail if mismatch" etc
ketika compile secara "fastway" mendadak tidak bisa linking
(dan kelamaan kalau harus masuk cmake)

clang-cl *.cpp

error?

solusinya gunakan 2 langkah

1. clang-cl /c *.cpp
2. lld-link /force *.obj (kalau error di SEH pakai /safeseh:no)
TASKKILL /F /IM SMΔRTP.exe /T

Win7 32bit [kernel patch] --- 2x2,8GHz Intel --- 8GB RAM DDR3 --- 512MB 9600M GT NVidia --- Iron 15 beta --- Opera Mini Proxies

other OS: Lucid Puppy, XP SP2 [custom], XP SP3, Win7 64bit, Tails