Skip to content

Instantly share code, notes, and snippets.

@pfitzseb
Created July 28, 2019 11:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pfitzseb/262a808395dae307583cc7f0df71c326 to your computer and use it in GitHub Desktop.
Save pfitzseb/262a808395dae307583cc7f0df71c326 to your computer and use it in GitHub Desktop.
PackageCompiler on  pathfix [?]
λ j1 juliac.jl -vasji `pwd`/hello.jl
Julia program file:
"/home/pfitzseb/.julia/dev/PackageCompiler/hello.jl"
Build directory:
"/home/pfitzseb/.julia/dev/PackageCompiler/builddir"
Build static library "hello.a":
atexit_hook_copy = copy(Base.atexit_hooks) # make backup
# clean state so that any package we use can carelessly call atexit
empty!(Base.atexit_hooks)
Base.__init__()
Sys.__init__() #fix https://github.com/JuliaLang/julia/issues/30479
using REPL
Base.REPL_MODULE_REF[] = REPL
Mod = @eval module $(gensym("anon_module")) end
# Include into anonymous module to not polute namespace
Mod.include("/home/pfitzseb/.julia/dev/PackageCompiler/hello.jl")
Base._atexit() # run all exit hooks we registered during precompile
empty!(Base.atexit_hooks) # don't serialize the exit hooks we run + added
# atexit_hook_copy should be empty, but who knows what base will do in the future
append!(Base.atexit_hooks, atexit_hook_copy)
Build shared library "hello.so":
`cc -shared '-DJULIAC_PROGRAM_LIBNAME="/home/pfitzseb/.julia/dev/PackageCompiler/builddir/hello.so"' -o hello.so -Wl,--whole-archive hello.a -Wl,--no-whole-archive /home/pfitzseb/.julia/dev/PackageCompiler/builddir/lib_init.c -std=gnu99 -I/home/pfitzseb/Documents/julia-1.1.0/include/julia -DJULIA_ENABLE_THREADING=1 -fPIC -L/home/pfitzseb/Documents/julia-1.1.0/lib -Wl,--export-dynamic -Wl,-rpath,/home/pfitzseb/Documents/julia-1.1.0/lib -Wl,-rpath,/home/pfitzseb/Documents/julia-1.1.0/lib/julia -ljulia -m64`
Copy Julia libraries to build directory:
none
All done
PackageCompiler on  pathfix [?]
λ ipython
Python 3.7.3 (default, Jun 24 2019, 04:54:02)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.6.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import ctypes
In [2]: lib = ctypes.CDLL("./builddir/hello.so", ctypes.RTLD_GLOBAL)
fatal: error thrown and no exception handler available.
#<null>
rec_backtrace at /buildworker/worker/package_linux64/build/src/stackwalk.c:94
record_backtrace at /buildworker/worker/package_linux64/build/src/task.c:217 [inlined]
jl_throw at /buildworker/worker/package_linux64/build/src/task.c:417
jl_errorf at /buildworker/worker/package_linux64/build/src/rtutils.c:77
jl_dlsym at /buildworker/worker/package_linux64/build/src/dlload.c:234
jl_load_and_lookup at /buildworker/worker/package_linux64/build/src/runtime_ccall.cpp:63
jlplt_jl_cpu_threads_4217 at ./builddir/hello.so (unknown line)
__init__ at ./sysinfo.jl:108
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2219
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1571 [inlined]
jl_module_run_initializer at /buildworker/worker/package_linux64/build/src/toplevel.c:72
_julia_init at /buildworker/worker/package_linux64/build/src/init.c:832
jl_init_with_image__threading at /buildworker/worker/package_linux64/build/src/jlapi.c:54
init_jl_runtime at ./builddir/hello.so (unknown line)
initialize at ./builddir/hello.so (unknown line)
call_init.part.0 at /lib64/ld-linux-x86-64.so.2 (unknown line)
_dl_init at /lib64/ld-linux-x86-64.so.2 (unknown line)
dl_open_worker at /lib64/ld-linux-x86-64.so.2 (unknown line)
_dl_catch_exception at /usr/lib/libc.so.6 (unknown line)
_dl_open at /lib64/ld-linux-x86-64.so.2 (unknown line)
unknown function (ip: 0x7fd7f403f34b)
_dl_catch_exception at /usr/lib/libc.so.6 (unknown line)
_dl_catch_error at /usr/lib/libc.so.6 (unknown line)
unknown function (ip: 0x7fd7f403fab8)
dlopen at /usr/lib/libdl.so.2 (unknown line)
unknown function (ip: 0x7fd7f218c119)
_PyMethodDef_RawFastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyCFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7d4b)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallDict at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyObject_Call_Prepend at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a52f4)
_PyObject_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7dc1)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
PyEval_EvalCodeEx at /usr/lib/libpython3.7m.so.1.0 (unknown line)
PyEval_EvalCode at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41df429)
_PyMethodDef_RawFastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyCFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7d4b)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyGen_Send at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyGen_Send at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyGen_Send at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyMethodDef_RawFastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyMethodDescr_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7d13)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallDict at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyObject_Call_Prepend at /usr/lib/libpython3.7m.so.1.0 (unknown line)
PyObject_Call at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyFunction_FastCallKeywords at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f41a7c2f)
_PyEval_EvalFrameDefault at /usr/lib/libpython3.7m.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /usr/lib/libpython3.7m.so.1.0 (unknown line)
PyEval_EvalCodeEx at /usr/lib/libpython3.7m.so.1.0 (unknown line)
PyEval_EvalCode at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f42658a4)
PyRun_FileExFlags at /usr/lib/libpython3.7m.so.1.0 (unknown line)
PyRun_SimpleFileExFlags at /usr/lib/libpython3.7m.so.1.0 (unknown line)
unknown function (ip: 0x7fd7f426e021)
_Py_UnixMain at /usr/lib/libpython3.7m.so.1.0 (unknown line)
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
_start at /usr/bin/python3 (unknown line)
PackageCompiler on  pathfix [?]
λ cat hello.jl
Base.@ccallable foo(x::Cint)::Cint = 42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment