scotch: packaging a version with 64bit integers


I've received a request to package a version of scotch with 64bit
integers (as opposed to 32bit). I suppose the details are less
important, the bottom line is

scotch 32bit: typedef int32_t SCOTCH_Num;

scotch 64bit: typedef int64_t SCOTCH_Num;

where SCOTCH_Num affects the public ABI and is used by third parties
which use scotch.

Upstream allows selecting the integer size at compile-time (i.e. passing
-DINTSIZE64 for int64_t). However, this choice has no effect on the
library name, so vanilla upstream will build a library named regardless of how you configure it.

I'm skeptical whether introducing a downstream scotch64 package with
i.e. is a good solution, given that possibly no build
system of third-party software using scotch knows about
and would need to be carefully patched (i.e. to not mix parts using
libscotch and those using libscotch64). Also, introducing downstream
specific suffixes is never a good idea.

The alternative would be to just switch the main scotch package to 64bit
integers, but this may be undesirable for memory-bound applications
which rely on the smaller memory-usage of 32bit integers.

I'm not really sure whether there is a good solution, happy to hear




Re: scotch: packaging a version with 64bit integers

By Dominik 'Rathan... at 01/11/2018 - 03:25

Hi, Sandro.

On Wednesday, 10 January 2018 at 14:58, Sandro Mani wrote:
Why don't you talk to upstream about this. Having the two builds
parallel-installable would be a benefit for everyone. Please take a look
at what we did in openblas and arpack
(<a href="" title=""></a>)

Hopefully that will convince upstream to support library name suffixing.

In general yes, but in this domain it's a common trend (openblas and
arpack are doing it already).

Type incompatibility (narrowing) could also be an issue.

I'd open a discussion with upstream to see where it goes.


Re: scotch: packaging a version with 64bit integers

By Sandro Mani at 01/11/2018 - 07:31

On 11.01.2018 09:25, Dominik 'Rathann' Mierzejewski wrote: