# JL\_GC\_PUSH and JL\_GC\_POP cause undefined reference to \`jl\_tls\_states'

**URL:** <https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054>\
**Category:** New to Julia\
**Tags:** question, embedding\
**Created:** [April 5, 2017, 4:13am UTC](https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054 "2017-04-05T04:13:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jinliangwei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jinliangwei/32/1929_2.png) [@jinliangwei](https://discourse.julialang.org/u/jinliangwei)\
**Post date:** [April 5, 2017, 4:13am UTC](https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054/1 "2017-04-05T04:13:46Z")

</div>

Compile-time linking failed due to the error above. I am linking against libjulia.so. The program can compile if I remove those GC macro calls.

It seems jl\_tls\_states is defined in threading.c. Did I miss something to link against?

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [April 5, 2017, 5:50am UTC](https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054/2 "2017-04-05T05:50:12Z")

</div>

You’re probably missing a compiler flag. See if [https://github.com/JuliaLang/julia/issues/18192](https://github.com/JuliaLang/julia/issues/18192) helps you.

---

<div class="post-metadata">

**Author:** ![jinliangwei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jinliangwei/32/1929_2.png) [@jinliangwei](https://discourse.julialang.org/u/jinliangwei)\
**Post date:** [April 5, 2017, 6:54pm UTC](https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054/3 "2017-04-05T18:54:15Z")

</div>

Thanks. This does solve my problem. But I have trouble running julia-config.jl.

I built julia (0.5.1) from source and found julia-config.jl under contrib. When I tried running it, it reported error:

> ERROR: LoadError: UndefVarError: is\_unix not defined  
> in initDir at /home/ubuntu/julia-0.5.1/contrib/julia-config.jl:40  
> in main at /home/ubuntu/julia-0.5.1/contrib/julia-config.jl:84  
> while loading /home/ubuntu/julia-0.5.1/contrib/julia-config.jl, in expression starting on line 91

Was I supposed to “configure julia” somehow?

---

<div class="post-metadata">

**Author:** ![tkelman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkelman/32/692_2.png) [@tkelman](https://discourse.julialang.org/u/tkelman)\
**Post date:** [April 5, 2017, 11:06pm UTC](https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054/4 "2017-04-05T23:06:12Z")

</div>

That sounds like the script is trying to be run by julia 0.4. Check your PATH?

---

<div class="post-metadata">

**Author:** ![jinliangwei](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jinliangwei/32/1929_2.png) [@jinliangwei](https://discourse.julialang.org/u/jinliangwei)\
**Post date:** [April 6, 2017, 5:51pm UTC](https://discourse.julialang.org/t/jl-gc-push-and-jl-gc-pop-cause-undefined-reference-to-jl-tls-states/3054/5 "2017-04-06T17:51:08Z")

</div>

Thanks! Problem solved!
