[PATCH] [RFC] Emulate "lwsync" to run standard user land on e500 cores

David Laight David.Laight at ACULAB.COM
Fri Oct 25 20:58:16 EST 2013


> This is not a distro issue. It's a libstdc++ portability issue. libstdc++
> hardcodes lwsync unless __NO_LWSYNC__ is explicitly defined,
> which you only get with -mcpu=8540/-mcpu=8548.  When compiled
> for any powerpc target other than -mcpu=8540/-mcpu=8548, including
> the default -mcpu=common,  libstdc++ will end up containing lwsync.
> There is no way to explicitly request libstdc++ to be built without lwsync
> with an -mcpu target other than 8540/8548.
> 
> The issue is easily demonstrated by running a program that throws a
> C++ exception: __cxa_throw() is called, which has an lwsync.  This
> results in an illegal instruction exception when run on an e500v1/e500v2.

Perhaps libstc++ should be working out at run time whether lwsync is valid?

	David





More information about the Linuxppc-dev mailing list