[petsc-dev] 32 bit compilers and PETSc

Scott Kruger kruger at txcorp.com
Thu Mar 4 10:13:55 CST 2021


On 2021-03-04 08:58, Satish Balay via petsc-dev did write:
> On Wed, 3 Mar 2021, Barry Smith wrote:
> > 
> >    Can we make ./configure ban 32 bit compilers unless a special flag is used? And just have one CI test that uses 32 bit where we turn off examples that overflow 32 bits?
> 
> We could add another linux test where 32bit part is more obvious.
> 
> And we have "requires: defined(FLAG)" but not sure if we can check for "PETSC_SIZEOF_VOID_P 8" this way. Perhaps we can add to configure:
> 
> requires: defined(PETSC_USING_64BIT_PTR)
> or
> requires: !defined(PETSC_USING_32BIT_PTR)

This sounds like a lot of work just to figure out which tests overflow,
and then clutter up the tests just to fix bad compilers.  For example,
does the "medium" test matrix cause overflow?  Perhaps we could just
turn off any external file reading?

Scott


> 
> Satish
> 
> ---
> diff --git a/config/BuildSystem/config/types.py b/config/BuildSystem/config/types.py
> index 39eda33099..d35adae503 100644
> --- a/config/BuildSystem/config/types.py
> +++ b/config/BuildSystem/config/types.py
> @@ -268,6 +268,8 @@ char petsc_max_path_len[] = xstr(PETSC_MAX_PATH_LEN);
>                       'enum': (4, 8),
>                       'size_t': (8, 4)}.items():
>        self.executeTest(self.checkSizeof, args=[t, sizes])
> +    if self.sizes['void-p'] == 8:
> +      self.addDefine('USING_64BIT_PTR',1)
>      self.executeTest(self.checkVisibility)
>      self.executeTest(self.checkMaxPathLen)
>      return
> 
> 
> ./configure CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 --with-mpi=0 && make && make check

-- 
Scott Kruger
Tech-X Corporation               kruger at txcorp.com
5621 Arapahoe Ave, Suite A       Phone: (720) 466-3196
Boulder, CO 80303                Fax:   (303) 448-7756


More information about the petsc-dev mailing list