On Wed, 3 Mar 2021, Barry Smith wrote:
>
> I just wasted an enormous amount of time "debugging"my additions to BAIJ
> on the solaris test machines. Turns out there was no bug at all just that the
> compilers default to 32 bit and we have no possible way of detecting size_t
> overflow; so smallish test cases can become a debugging nightmare.
>
> 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)
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