[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Systems that can't USE_LSB_TAG

From: Paul Eggert
Subject: Re: Systems that can't USE_LSB_TAG
Date: Tue, 15 Apr 2014 22:25:42 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

Stefan Monnier wrote:
Hmmm.. so with this patch we fail on all hosts where USE_LSB_TAG can't
be used, even those where DATA_SEG_BITS is not needed.

Yes, that's why I originally went for the wide-int fallback.

Which systems currently can't USE_LSB_TAG?

Only IRIX as far as I know.  Specifically, the list includes:

1. Systems with pre-C11 compilers that are not in the following list: GCC, HP, IBM, Intel, Sun/Oracle, Microsoft, plus any mimics of these (such as clang). Fundamentally we need the equivalent of GCC's attribute ((aligned (8))) and/or C11's _Alignas (8).

2. Systems where we must use the system malloc and it doesn't return a multiple of 8.

The only category (1) system I know of is IRIX cc, which SGI stopped supporting in December. I don't know of any category (2) systems.

I don't know all the Emacs porting targets and quite possibly I've missed some. Perhaps other unusual systems are in category (1); most likely we could port to them if we knew the right incantation to get an _Alignas equivalent on their compiler, and if not we could fall back on aligning the static C variables some other way. We could port to category (2) systems (if any practical ones exist) by wrapping malloc/free/etc. and losing at most 8 bytes per allocation. I hope we needn't use either hack, though.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]