On Thu, 12 Jan 2023, Even Rouault wrote:

Andrew,

how did you get clang 15.0.2 on Ubuntu 21:10 ? Not through the apt package manager with the default apt repositories, right ? Because I've just tried with ubuntu 22.04 and this is only clang 14.0.0 that gets distributed, and the test runs fine.

'sudo apt reinstall clang-15' gives:

Get:1 http://gb.archive.ubuntu.com/ubuntu kinetic/universe amd64 clang-15 amd64 1:15.0.2-1 [80.5 kB]
Fetched 80.5 kB in 0s (205 kB/s)
(Reading database ... 1008451 files and directories currently installed.)
Preparing to unpack .../clang-15_1%3a15.0.2-1_amd64.deb ...
Unpacking clang-15 (1:15.0.2-1) over (1:15.0.2-1) ...
Setting up clang-15 (1:15.0.2-1) ...

I think the "universe" and "clang-15" might be the significant differences.

That said, I'm moderately surprised that you hit an issue. The virtualmem code stuff does some on-the-fly at-hand un-assembling (cf https://gdal.org/development/rfc/rfc45_virtualmem.html#low-level-machinery-cpl-virtualmem-h), so if a compiler emits new machine instructions the code isn't ready for, such errors could happen. So, assuming the compiler you use isn't broken, I suspect some code updates are required. But we need to be able to reproduce first. Did you also use particular CPPFLAGS that activate AVX instruction set or something like that ?

Not explicitly, but
   autotest/cpp/CMakeFiles/testvirtualmem.dir/flags.make
does mention such things, though the flags in the clang-14 version
are no different. Here it is in full:
-------------------------
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.24

# compile CXX with /usr/lib/llvm-15/bin/clang++
CXX_DEFINES = -DDONT_DEPRECATE_SPRINTF -DGDAL_COMPILATION 
-DGDAL_TEST_ROOT_DIR=\"/home/werdna/git/gdal/autotest\" 
-DHAVE_AVX_AT_COMPILE_TIME -DHAVE_SSE_AT_COMPILE_TIME -DHAVE_SSSE3_AT_COMPILE_TIME

CXX_INCLUDES = -I/home/werdna/git/gdal/apps -I/home/werdna/git/gdal/alg 
-I/home/werdna/git/gdal/gcore -I/home/werdna/git/gdal.build.llvm/gcore 
-I/home/werdna/git/gdal/port -I/home/werdna/git/gdal.build.llvm/port 
-I/home/werdna/git/gdal/ogr -I/home/werdna/git/gdal/ogr/ogrsf_frmts 
-I/home/werdna/git/gdal/frmts 
-I/home/werdna/git/gdal.build.llvm/gcore/gdal_version_full

CXX_FLAGS =  -fno-finite-math-only -fvisibility=hidden  -g -Wall -Wextra 
-Winit-self -Wunused-parameter -Wmissing-declarations -Wshorten-64-to-32 
-Wshadow -Wshadow-field -Wmissing-include-dirs -Wformat -Werror=format-security 
-Wno-format-nonliteral -Werror=vla -Wdate-time -Wnull-dereference -Wextra-semi 
-Wcomma -Wfloat-conversion -Wdocumentation -Wno-documentation-deprecated-sync 
-Wunused-private-field -Wnon-virtual-dtor -Woverloaded-virtual 
-Wsuggest-override -fno-operator-names -Wzero-as-null-pointer-constant 
-DGTEST_HAS_PTHREAD=1 -std=gnu++11
-------------------------

The overall CMakeCache.txt is at
https://www.aitchison.me.uk/gdal/CMakeCache.txt.clang15.20230112.txt


Apart from the inconvenience of the test suite not passing, that doesn't invalidate your GDAL build in general. This is a very specific functionality that no one triggers without explicitly asking for it.

Even

Thanks.

--
Andrew C. Aitchison                      Kendal, UK
                   and...@aitchison.me.uk
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to