The bundled GC is too old; it's not working in the embedded ECL situation on FreeBSD (see for a very fresh fix to this), or in at least one dynamic C library case on OSX I know about (see

In general, I don't see the value of bundling with ECL an old snapshot of a relatively popular and actively maintained library.
(removing it is trivial - there is one script from bdwgc/ that is used, and should be copied, the rest can go...)

Just my 0.02c.

On Thu, Oct 12, 2017 at 5:12 PM, Daniel Kochmański <> wrote:


your problem is related to bundled libgc. We have some conditionalization for musl, so I'm sure it worked in the past. I'd suggest trying to install libgc from alpine repositories and build ECL against that libgc. If Alpine doesn't have libgc in the repositories, I'd try building upstream bdwgc and linking ECL with it. If it doesn't build, report a bug on bdwgc project, if it does – please let us know here so we'll update bundled libgc to the working version.

Best regards,


On 12.10.2017 18:03, Lucas Ramage wrote:

I am attempting to package ecl for alpine linux and I am having troubles compiling against musl. 

Building ecl_min...

.//libeclgc.a(mach_dep.o): In function `GC_with_callee_saves_pushed':

/root/ecl-16.1.3/src/bdwgc/mach_dep.c:245: undefined reference to `getcontext'

collect2: error: ld returned 1 exit status

make[1]: *** [Makefile:224: ecl_min] Error 1

make[1]: Leaving directory '/root/ecl-16.1.3/build'

make: *** [Makefile:72: all] Error 2

I tried `make CFLAGS='-DNO_GETCONTEXT'`​ but that did not work either.

Has anyone successfully built ecl using musl?


Visit online

Lucas Ramage / Software Engineer / (941) 404-6794

PGP Fingerprint / Learn More
EAE7 45DF 818D 4948 DDA7 0F44 F52A 5A96 7B9B 6FB7

Visit online journal

Github Linkedin