Re: [Gc] Compilation issue against musl
Ivan Maidanski <ivmai-JGs/[email protected]> Thu, 06 Aug 2015 11:20:03 +0300
| Newsgroups | gmane.comp.programming.garbage-collection.boehmgc |
|---|---|
| Message-ID | <[email protected]> |
Hi Brendan, I think realistic schedule of gc 7.4.x, 7.6.0 release is Sept-Oct. -- пятница, 31 июля 2015г., 15:44 +03:00 от Brendan Heading < [email protected]> : >Ivan, > >Thank you - my apologies, I should have checked the master branch on >github. I tested the changes from there and they appear to solve the >problem. > >Do you have any plans to issue a new release in the near future ? > >regards > >Brendan > >On 31 July 2015 at 09:40, Ivan Maidanski < [email protected] > wrote: >> Hi, >> >> Please check master branch. Issue should be solved. >> Also, there are a couple of issues in github bdwgc bug tracker, please check >> them. >> >> -- >> >> среда, 29 июля 2015г., 02:31 +03:00 от Brendan Heading >> < [email protected] >: >> >> Hi guys, >> >> There's a minor compilation issue when building bdwgc against musl. The >> problem is observed on version 7.4.2. The compilation error is as follows : >> >> ================= >> >> In file included from os_dep.c:44:0: >> /home/peko/autobuild/instance-2/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/asm/sigcontext.h:9:8: >> error: redefinition of 'struct sigcontext' >> struct sigcontext { >> ^ >> In file included from >> /home/peko/autobuild/instance-2/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/signal.h:243:0, >> from ./include/private/../gc_pthread_redirects.h:42, >> from ./include/private/../gc.h:1443, >> from ./include/private/gc_priv.h:46, >> from os_dep.c:17: >> /home/peko/autobuild/instance-2/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/bits/signal.h:11:16: >> note: originally defined here >> typedef struct sigcontext >> >> ================= >> >> The root cause is in the following excerpt from os_dep.c >> >> ================= >> >> # if 2 <= __GLIBC__ >> >> # if 2 == __GLIBC__ && 0 == __GLIBC_MINOR__ >> >> /* glibc 2.1 no longer has sigcontext.h. But signal.h */ >> >> /* has the right declaration for glibc 2.1. */ >> >> # include <sigcontext.h> >> >> # endif /* 0 == __GLIBC_MINOR__ */ >> >> # else /* __GLIBC__ < 2 */ >> >> /* libc5 doesn't have <sigcontext.h>: go directly with the kernel */ >> >> /* one. Check LINUX_VERSION_CODE to see which we should reference. */ >> >> # include <asm/sigcontext.h> >> >> # endif /* __GLIBC__ < 2 */ >> >> ================= >> >> The logic here is intended to provide two special cases; one for __GLIBC__ >> version 2.0, the other is a fall through case intended to be reached if >> __GLIBC__ version is <2. However this fall through is also reached if >> __GLIBC__ is undefined as is the case in musl. If the __GLIBC__ version is >> 2.1 or greater no special action is taken. >> >> musl, as a matter of policy, will never provide a macro to detect its >> presence. Instead I propose that the above logic be wrapped in an #ifdef >> __GLIBC__. I've tested that this allows the build to work on musl, and >> should also work on uclibc and other C libraries. >> >> I've attached a patch - I'm more than happy to update it if you feel there >> is a better approach. >> >> regards >> >> Brendan >> >> >> >> >> >> >> >> >> _______________________________________________ >> bdwgc mailing list >> [email protected] >> https://lists.opendylan.org/mailman/listinfo/bdwgc >_______________________________________________ >bdwgc mailing list >[email protected] >https://lists.opendylan.org/mailman/listinfo/bdwgc _______________________________________________ bdwgc mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/bdwgc