On Fri, Oct 31, 2025 at 10:11 AM Bruno Haible via Gnulib discussion
list <[email protected]> wrote:
>
> Sergey Fedorov wrote:
> > > The needed information is, again, the set of compiler predefines. Like
> > > in the earlier mails.
> > >
> >
> > gcc 4.2 / 10.5.8
> >
> > $ gcc -arch ppc -E -dM - < /dev/null | grep -i '\(ppc\|powerpc\)' | sort
> > #define _ARCH_PPC 1
> > #define __POWERPC__ 1
> > #define __ppc__ 1
> >
> > $ gcc -arch ppc64  -E -dM - < /dev/null | grep -i '\(ppc\|powerpc\)' | sort
> > #define _ARCH_PPC 1
> > #define _ARCH_PPC64 1
> > #define __POWERPC__ 1
> > #define __ppc64__ 1
>
> Thanks for these info. As it is hard to remember these predefines per
> platform, I've added a wiki page about them here:
> https://gitweb.git.savannah.gnu.org/gitweb/?p=gnulib/maint-tools.git;a=blob;f=platforms/predefines.txt
> and am adjusting the code accordingly.

Also see <https://sourceforge.net/p/predef/wiki/Home/> and
<https://sourceforge.net/p/predef/wiki/Architectures/>.

[...]

> > I have a setup in a VM with Rosetta too, but do not use it for normal
> > builds. For the most part Rosetta is okay, may need explicit triple to be
> > specified, but I agree, it is not 100% reliable and some software will not
> > work at all in Rosetta (SBCL or GHC, for example, and surprisingly 3.x
> > versions of Ruby – don’t ask, I have no idea why, since they all work on
> > 10.4–10.6 ppc natively).
>
> SBCL has a JIT compiler. That means, it creates machine instructions
> dynamically and then invokes the equivalent of gnulib/lib/jit/cache.h.
> That's most likely why Rosetta does not work with it.

Memory protections changed with Apple M1's, if I recall correctly.  I
don't recall the marketing name Apple used for it.  Also see
<https://developer.apple.com/documentation/browserenginecore/be_memory_inline_jit_restrict_rwx_to_rx_with_witness>.

Jeff

Reply via email to