OpenMathLib / OpenMathLib/OpenBLAS

SYMBOLSUFFIX have no effect when building static library

Aperta
#6,028 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C
Stelle
7.6k
Fork
1.7k
Merge medio
1g 3h
PR unite (30g)
42

Descrizione

It seems that SYMBOLSUFFIX only works with BUILD_SHARED_LIBS=ON, at least from what I understood from reading CMakeLists. To confirm this, I compiled openblas using the options below

%CMAKE_COMMAND% ^
-G "Ninja" ^
-D CMAKE_BUILD_TYPE:STRING="Release" ^
-D CMAKE_INSTALL_PREFIX="%LAPACK_DIR%" ^
-D CMAKE_C_COMPILER="cl.exe" ^
-D CMAKE_CXX_COMPILER="cl.exe" ^
-D CMAKE_Fortran_COMPILER="ifx.exe" ^
-D CMAKE_Fortran_FLAGS="" ^
-D SYMBOLSUFFIX="_" ^
-D CMAKE_VERBOSE_MAKEFILE:BOOL=OFF ^
-D BUILD_SHARED_LIBS:BOOL=OFF ^
-D BUILD_STATIC_LIBS:BOOL=ON ^
-D BUILD_WITHOUT_CBLAS:BOOL=ON ^
-D BUILD_WITHOUT_LAPACKE:BOOL=ON ^
-D BUILD_LAPACK_DEPRECATED:BOOL=ON ^
-D BUILD_TESTING:BOOL=OFF ^
%LAPACK_HOME%

And extracting the symbol:

dumpbin /SYMBOLS openblas.lib | findstr /i "dgemm"
02C 00000000 UNDEF notype External | dgemm
.....

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia leggendo i riferimenti di CMakeLists a SYMBOLSUFFIX e la configurazione della libreria statica. Ricompila con le opzioni Ninja indicate, quindi ispeziona openblas.lib con dumpbin /SYMBOLS; il lavoro è completato quando il suffisso richiesto è riflesso con BUILD_SHARED_LIBS=OFF e BUILD_STATIC_LIBS=ON.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, cmake, fortran
Ambito
build-system
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
68/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.