Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[JNI][Gandiva] LLVM generated code can't access some system functions on certain platforms

Offen
#657 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java
Bereich
backend

Rechercherichtung

Beginne mit dem JNI/Gandiva-Pfad zum Laden von Bibliotheken und dem im Issue beschriebenen standardmäßigen RTLD_LOCAL-Verhalten von Java; vergleiche ihn mit dem JNA-Ansatz und dem zugehörigen Apache-Arrow-Issue. Reproduziere den sinh-Fehler im Zusammenhang mit sinhl auf einer betroffenen Linux-Plattform und überprüfe anschließend, dass von LLVM generierter Code die importierten Systemsymbole von Gandiva auflösen kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Type: bug
Describe the bug, including details regarding any error messages, version, and platform.

When linux loads libraries there are different options for symbols visibility like: RTLD_LOCAL, RTLD_GLOBAL. Default in Java is RTLD_LOCAL which makes all symbols inside Gandiva library only visible to the Gandiva library.

The problem is when LLVM compiles code and loads it into Java process that code won't be able to find any symbols imported by Gandiva. One example is 'sinhl' from libgcc which causes sinh function to fail when it is present in SQL query executed by Dremio using Gandiva engine. By importing JNA package we can control how to load Gandiva library and set Global symbol visibility.

See also: https://github.com/apache/arrow/issues/40839

Vorherrschende Sprache
Java
Sterne
95
Forks
154
Ø Merge
2 T. 10 Std.
Gemergte PRs (30 T.)
11

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/arrow-java

Alle Issues in apache/arrow-java

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

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