Forum Smadav

Teknologi Komputer dan Internet => Programming => C/C++ => Topik dimulai oleh: descrates pada Juli 27, 2019, 12:03:55 PM

Judul: [MSVC C++] clang-cl yang kadang fail compiling/linking?
Ditulis oleh: descrates 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)
Judul: Re:[MSVC C++] clang-cl yang kadang fail compiling/linking?
Ditulis oleh: descrates 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
Judul: Re:[MSVC C++] clang-cl yang kadang fail compiling/linking?
Ditulis oleh: descrates 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