Comments (2)
On behalf of Rich Felker [email protected]:
Hi,
John Spencer forwarded me the thread about issues building Boehm GC
against musl libc. I'm the primary author and maintainer of musl and
would like to help with this process from the standpoints of:
- Figuring out what extensions potentially should be added to musl to
meet the needs of GC, and whether the current usage of such extensions
is sufficiently abstract that things would automatically work if the
functions were added to musl, or whether it's making further
non-portable assumptions about implementation internals, that may
require additional work to resolve. - Improving the portability of Boehm GC, both things like header
conflict issues and better fallback methods for doing nonportable
things like determining stack bounds when one of the methods currently
being used isn't available.
Have the header issues been addressed yet? Basically, the issue seems
to be that some kernel headers are being included which define the
same types as userspace headers. I suspect on glibc, the userspace
headers are including the kernel headers for the types (so including
the kernel header is unnecessary but not harmful) whereas musl does
not use kernel headers whatsoever, resulting in a conflict when the
kernel header is included. For issues like this, I think the most
portable approach would be to test whether everything that's needed is
present without including the kernel headers, and only attempt to
include the kernel header if something is missing. But I'm doubtful
that there are any systems where including these kernel headers is
the right thing to do, so just unconditionally removing the include
directives might be the cleanest fix.
I'm not sure what the other issues JS was encountering with GC not
working are. Anyone have some ideas?
Rich
from bdwgc.
- https://lists.opendylan.org/pipermail/bdwgc/2013-January/005525.html
- https://lists.opendylan.org/pipermail/bdwgc/2013-January/005531.html
from bdwgc.
Related Issues (20)
- Re-enable incremental mode in child process on Darwin
- Re-enable thread-local allocation for GC_memalign
- SIGSEGV in subthreadcreatetest on Debian/x64
- Remove dependency on CoreFoundation or make it optional HOT 4
- Unexpected heap growth in gctest on Linux with malloc redirection HOT 2
- Regression: support of macOS before 10.7 HOT 8
- Soft-dirty bit is not supported by kernel on Ubuntu 22.04/x86_64 HOT 4
- Test crash on Windows if GWW mode and checksums
- gctest fails if shared build by Zig HOT 5
- Zig support improvement HOT 11
- Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS HOT 5
- compile fail on Win10/MSVC HOT 2
- Bad maximum heap size on large initial heap HOT 4
- Zig warning of "large atomic operation may incur significant performance penalty" on 32-bit arm HOT 7
- Assertion violation of GC_stop_count&THREAD_RESTARTED in GC_restart_all running disclaimtest
- Illegal instruction in GC_clear_stack in tests built by Zig on Linux HOT 7
- disclaimtest, weakmaptest or middletest fail in zig build on Linux if enable_gc_debug and enable_redirect_malloc HOT 5
- Unexpected bus error on Linux/powerpc (32-bit) HOT 9
- weakmap test fail on Ubuntu/x64 (zig build) if malloc redirection and gc-debug enabled HOT 1
- autogen.sh is incomplete HOT 16
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bdwgc.