On Wed, Oct 10, 2012 at 10:07:56AM +0200, Ralf Baechle wrote:
> On Wed, Oct 10, 2012 at 08:32:47AM +0200, Ronny Meeus wrote:
> > I have a legacy application that we want to port to a MIPS (Cavium)
> > architecture from a PPC based one.
> > The board has 4GB memory of which we actually need almost 3GB in
> > application space. On the PPC this is no issue since the split
> > user/kernel is 3GB/1GB.
> > We have to use the N32 ABI Initial tests on MIPS showed me the
> > user-space limit of 2GB.
> > We do not want to port the application to a 64bit
> > Now the question is: are there any workarounds, tricks existing to get
> > around this limitation?
> > I found some mailthreads on this subject (n32-big ABI -
> > http://gcc.gnu.org/ml/gcc/2011-02/msg00278.html,
> > http://elinux.org/images/1/1f/New-tricks-mips-linux.pdf) but is looks
> > like this is not accepted by the community. Is there any process
> > planned or made in this area?
> I think limited time and gain killed the propoosed ABI rather than
> theoretical issues raised. Other architectures such as i386 - well,
> IIRC any 32-bit ABI with more than 2GB userspace and a signed
> ptrdiff_t - are suffering from them as well.
There's no issue with ptrdiff_t being signed 32-bit as long as the
implementation does not allow individual objects larger than 2GB.
Taking differences between pointers into different objects is UB.