# What is it for, GMP external library used by JULIA?

**URL:** <https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893>\
**Category:** General Usage\
**Created:** [December 21, 2017, 3:30pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893 "2017-12-21T15:30:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![NKC](https://avatars.discourse-cdn.com/v4/letter/n/258eb7/32.png) [@NKC](https://discourse.julialang.org/u/NKC)\
**Post date:** [December 21, 2017, 3:30pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/1 "2017-12-21T15:30:51Z")

</div>

JULIA has some dependencies. Regarding this,

- What is it for, GMP external library used by JULIA?

- If it is not a necessary part of JULIA, how can I make JULIA avoid using it? Because it has GPL2+ license and I assume that it does not allow proprietary software.

Thanks.

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ihnorton/32/26_2.png) [@ihnorton](https://discourse.julialang.org/u/ihnorton)\
**Post date:** [December 21, 2017, 3:54pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/2 "2017-12-21T15:54:42Z")

</div>

> [@NKC](#):
>
> What is it for, GMP external library used by JULIA?

It is a multiple-precision arithmetic library: [https://gmplib.org/](https://gmplib.org/)

> [@NKC](#):
>
> If it is not a necessary part of JULIA, how can I make JULIA avoid using it?

GMP is currently required, however, the version used by Julia (\>6) is dual-licensed under GPL v2 and LGPL v3 (from link above):

> Since version 6, GMP is distributed under the dual licenses, GNU LGPL v3 and GNU GPL v2. These licenses make the library free to use, share, and improve, and allow you to pass on the result. The GNU licenses give freedoms, but also set firm restrictions on the use with non-free programs.

According to the Free Software Foundation’s interpretation of LGPL, this means that you can use it in a proprietary program as long as users can re-link their own modified version (and you redistribute any GMP-specific source changes you make, if any). The simplest way to allow this is to use dynamic linking, as Julia already does with GMP by default. See:

[https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic](https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic)

(as always, if this could materially impact your business: seek competent counsel)

---

<div class="post-metadata">

**Author:** ![NKC](https://avatars.discourse-cdn.com/v4/letter/n/258eb7/32.png) [@NKC](https://discourse.julialang.org/u/NKC)\
**Post date:** [December 21, 2017, 4:37pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/3 "2017-12-21T16:37:59Z")

</div>

Thank you very much.

---

<div class="post-metadata">

**Author:** ![NKC](https://avatars.discourse-cdn.com/v4/letter/n/258eb7/32.png) [@NKC](https://discourse.julialang.org/u/NKC)\
**Post date:** [December 21, 2017, 5:11pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/4 "2017-12-21T17:11:40Z")

</div>

I am confused with dual licensing. What part of it is under GPLv2 and is it an impediment in that case? I read the GMP site but could not find any clarification.

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ihnorton/32/26_2.png) [@ihnorton](https://discourse.julialang.org/u/ihnorton)\
**Post date:** [December 21, 2017, 5:56pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/5 "2017-12-21T17:56:49Z")

</div>

The whole library is available under either license.

See:  
[https://gmplib.org/repo/gmp/file/tip/README#l5](https://gmplib.org/repo/gmp/file/tip/README#l5)

especially [l12](https://gmplib.org/repo/gmp/file/tip/README#l12): **“or”**

(and for reference, again, Julia is using it under LGPLv3)

* * *

Many libraries use dual-licensing (Qt perhaps the most well-known). For some background see [wikipedia](https://en.wikipedia.org/wiki/Multi-licensing). For more specific clarification, you probably need to contact the mailing list of the library.

---

<div class="post-metadata">

**Author:** ![simonbyrne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simonbyrne/32/19_2.png) [@simonbyrne](https://discourse.julialang.org/u/simonbyrne)\
**Post date:** [December 21, 2017, 6:24pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/6 "2017-12-21T18:24:18Z")

</div>

Note that GMP is already used in [certain proprietary software](http://www.wolfram.com/LGPL/GMP/), so this is unlikely to be a problem.

---

<div class="post-metadata">

**Author:** ![NKC](https://avatars.discourse-cdn.com/v4/letter/n/258eb7/32.png) [@NKC](https://discourse.julialang.org/u/NKC)\
**Post date:** [December 21, 2017, 6:37pm UTC](https://discourse.julialang.org/t/what-is-it-for-gmp-external-library-used-by-julia/7893/7 "2017-12-21T18:37:50Z")

</div>

Thank you very much all. This clarifies the issue.
