Hi,

I reviewed Robert's patches and added some of my own, that were necessary for GiNaC to work with CLN on Win64. They can be viewed on Github:

=== CLN ===

https://github.com/jrheinlaender/cln/commits/win64

There are two kinds of patches:

- Patches required for Win64 platform (e.g. UL is 32 bit type on that platform). Mostly due to Robert (Number 1-10)

- Cosmetic patches to avoid unnecessary compiler warnings (e.g. confusion of class and struct)

Most patches I surrounded with #ifdef _M_AMD64 so that other platforms will be unaffected

=== GiNaC ===

https://github.com/jrheinlaender/ginac/commits/win64

- Here I removed some old patches that are not required any more because of improvements in MSVC 2015

- And added a few constructors from size_t

I hope these patches are OK and can be included in master.


Am 24.02.2018 um 12:49 schrieb Robert Szalai:

Here is the previous win64 patch set...

---------- Forwarded message ----------
From: "Robert Szalai" <robicjedi@gmail.com>
Date: Aug 15, 2012 02:22
Subject: Re: [CLN-list] MinGW64 build
To: "CLN discussion list" <cln-list@ginac.de>
Cc:

Hi Alexei,

I've splitted the path into 10 parts. There is a bigger one that is only
s/long/intptr_t/  and s/unsigned long/uintptr_t/
the rest is very small.

Hopefully this can now be applied.

> Ditto (the corresponding hunk is not quite optimal, though. {s,u}int32
> can be typedef'ed to {,u}int32_t => no need for ugly #if's).

I was thinking of this, however we need exactly the same underlying type as
(u)intptr_t for the same sized integer to avoid compiler confusion.
So in some cases (e.g. on i686 Linux) stdint.h might define int32_t as int and intptr_t as long
and in this case the compiler will complain about multiple definition of the same function.

Bests,
Robert


_______________________________________________
CLN-list mailing list
CLN-list@ginac.de
https://www.cebix.net/mailman/listinfo/cln-list