Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri, 7 Aug 2020 10:15:38 +0000
From: "Gamble, Bradley" <>
To: "" <>
Subject: Support for PowerPC64 devices lacking AltiVec extentions


musl currently lists "powerpc64" on it's supported target architectures page. I have been trying to use musl on a device that uses Freescale's T1022/T1042 processors based on the e5500 core - These devices lacks the AltiVec extentions that most other PowerPC64 processors support.

I was initially encountering exceptions with longjmp()/setjmp() due to the use of lvx/stvx instructions to store and restore vector registers. These vector registers are AltiVec-specific and are not required for devices that do not have the AltiVec extentions, so simply removing them was enough to allow musl to function properly on e5500 devices.

I initially considered whether a compile-time check in the configure script was possible, however I believe this has to be a run-time check to query whether the processor supports AltiVec extentions and to conditionally store/restore the registers if it does. I see that Arm targets use __hwcap for platform-specific functionality, and in hwcap.h for PowerPC64 there is a "PPC_FEATURE_HAS_ALTIVEC" definition.

Would this be the correct way to detect this platform-specific behavior?

Kind regards,


Content of type "text/html" skipped

Download attachment "0001-Remove-AltiVec-specific-instructions-on-PowerPC64-pl.patch" of type "application/octet-stream" (2264 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.