private static LibraryLookupResult doLookupLibrary()

in jvmti-access/src/main/java/co/elastic/otel/JvmtiAccess.java [177:203]


  private static LibraryLookupResult doLookupLibrary() {
    String os = System.getProperty("os.name").toLowerCase();
    String arch = System.getProperty("os.arch").toLowerCase();
    if (os.contains("linux")) {
      String linuxVariant = "linux";
      if (isMusl()) {
        linuxVariant = "linux-musl";
      }
      if (arch.contains("arm") || arch.contains("aarch32")) {
        return LibraryLookupResult.failure("Unsupported architecture for Linux: " + arch);
      } else if (arch.contains("aarch")) {
        return LibraryLookupResult.success(linuxVariant + "-arm64");
      } else if (arch.contains("64")) {
        return LibraryLookupResult.success(linuxVariant + "-x64");
      } else {
        return LibraryLookupResult.failure("Unsupported architecture for Linux: " + arch);
      }
    } else if (os.contains("mac")) {
      if (arch.contains("aarch")) {
        return LibraryLookupResult.success("darwin-arm64");
      } else {
        return LibraryLookupResult.success("darwin-x64");
      }
    } else {
      return LibraryLookupResult.failure("jvmti native library does not work on " + os);
    }
  }