I've found this in a couple places. Once was when trying to statically link nbench compiled with tcc instead of gcc, and now, I get this same error message when trying to use boehm's gcc with LD_PRELOAD (compiled with gcc and --enable-redirect-malloc0. I've used boehm-gc and LD_PRELOAD together before (even had it set before X ran and garbage collected my whole desktop to see how it would run!). Now I get this ... taro ~ # export LD_PRELOAD=/usr/lib/libgc.so taro ~ # vi vi: symbol lookup error: /usr/lib/libgc.so: undefined symbol: __gcc_personality_v0 That error happens every time, using both gcc-3.3.5-20050130 and gcc-3.4.4 Can anyone tell me what this means and why I get this? Reproducible: Always Steps to Reproduce:
looks like there's a desync between libgc.so and libgcc_s.so.1 try running `rm /lib/libgcc_s.so*` and re-emerge boehm-gc
Dunno how that happened, or how you knew that it happened. But .. that fixed it! Thanks!
Seems like my last test was false. I started playing with it again and it gives the same results as before. So removing /lib/libgcc_s.so* didn't help. I just haven't gotten around to mentioning it until now.
OK - here's the fix .. LD_PRELOAD="/usr/lib/libgc.so /lib/libgcc_s.so" You have to preload BOTH libraries. I used your earlier response to figure this one out, so thanks for the help. I don't know why the linker would automatically load libgcc_s automatically before, and not anymore, but in case someone is looking for the answer .. its now here.