OpenMathLib / OpenMathLib/OpenBLAS

cblas.h function declarations should include calling convention specifier

Offen
#618 9 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Feature request
Vorherrschende Sprache
C
Sterne
7.6k
Forks
1.7k
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
42

Beschreibung

Hi there!
I'm trying to use OpenBLAS in my code in MSVC2015 (@ Win7 x64). The code uses __vectorcall calling convention by default, and therefore any external function declared (such as that in cblas.h) are expected to conform this calling convention (extern "C" doesn't influence on that). At the same time, OpenBLAS is built with __cdecl calling convention and therefore it can't be used until cblas.h function declarations are hacked with proper __cdecl calling convention.

For example,

void cblas_dgemm(OPENBLAS_CONST enum .....bla-bla-bla);

should be declared as:

void __cdecl cblas_dgemm(OPENBLAS_CONST enum .....bla-bla-bla);

in order to be used in code with non-cdecl calling convention.

__cdecl keyword might be Microsoft specific, but you can make generic workaround with preprocessor macros.

Could you please update function declarations of cblas.h?
Thanks!

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, cblas.h zu suchen und seine CBLAS-Funktionsdeklarationen sowie die vorhandenen Präprozessormakros zu überprüfen. Prüfe, wie sich die Deklarationen mit MSVC2015 und __vectorcall verhalten, und verifiziere anschließend, dass die Deklarationen die __cdecl-Aufrufkonvention der Bibliothek durchgängig beibehalten, ohne andere Plattformen zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c
Bereich
api
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.