Uploaded image for project: 'Libmongocrypt'
  1. Libmongocrypt
  2. MONGOCRYPT-70

libmongocrypt: Build static link of libbson by default

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None

    Description

      In CDRIVER-2973, the linkage of libmongocrypt to libbson was changed from static to dynamic in order to prevent problems with symbol clashes when a libmongocrypt consumer also links directly to libbson. However, there are instances where the static linkage is preferable. Specifically the libmongocrypt Java implementation, which loads a .so/.dll via JNA, is drastically simplified by only requiring the loading of a single library file. The dynamic linkage situation forces users of the Java bindings to either install libbson in a system-wide location or to set the LD_LIBRARY_PATH environment variable to the location of libbson in order to enable the dynamic linker to satisfy the dependencies.

      The desired approach is instead to make a static linkage of libbson the default (most consumers of this library will never have a need to link directly to libbson) and to allow dynamic linkage based on a build flag for those consumers which require it (i.e., the C driver, which links directly to both libmongocrypt and libbson).

      The artifacts published by this ticket's parent (CDRIVER-3133) will be the static-linked version.

      Attachments

        Activity

          People

            roberto.sanchez@mongodb.com Roberto Sanchez
            roberto.sanchez@mongodb.com Roberto Sanchez
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: