armv7 targeting: multimedia/assimp poudriere build failure: 'Assimp::MDL::Vertex_MDL7' is less aligned than 'Assimp::MDL::Vertex_MDL7::(anonymous union . . .

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 31 May 2022 03:34:43 UTC
My attempted bulk -a -c targeting armv7 (on a aarch64 machine
that can execute armv7 code) failed for multimedia/assimp :

FAILED: code/CMakeFiles/assimp.dir/AssetLib/MDL/MDLLoader.cpp.o 
/usr/bin/c++ -DASSIMP_BUILD_DLL_EXPORT -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_M3D_EXPORTER -DASSIMP_BUILD_NO_M3D_IMPORTER -DASSIMP_BUILD_NO_OWN_ZLIB -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 -DMINIZ_USE_UNALIGNED_LOADS_AND_STORES=0 -DOPENDDLPARSER_BUILD -DRAPIDJSON_HAS_STDSTRING=1 -DRAPIDJSON_NOMEMBERITERATORCLASS -Dassimp_EXPORTS -I/wrkdirs/usr/ports/multimedia/assimp/work/.build/include -I/wrkdirs/usr/ports/multimedia/assimp/work/.build -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/include -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/. -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/../contrib/pugixml/src -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/../contrib/rapidjson/include -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/../contrib -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/../contrib/openddlparser/include -I/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/../include -I/wrkdirs/usr/ports/multimedia/assimp/work/.build/code/../include -I/usr/local/include/minizip -fvisibility=hidden -fno-strict-aliasing -Wall -Wno-long-long -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -fPIC -Werror -std=gnu++11 -MD -MT code/CMakeFiles/assimp.dir/AssetLib/MDL/MDLLoader.cpp.o -MF code/CMakeFiles/assimp.dir/AssetLib/MDL/MDLLoader.cpp.o.d -o code/CMakeFiles/assimp.dir/AssetLib/MDL/MDLLoader.cpp.o -c /wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/AssetLib/MDL/MDLLoader.cpp
In file included from /wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/AssetLib/MDL/MDLLoader.cpp:51:
In file included from /wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/AssetLib/MDL/MDLLoader.h:51:
/wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/AssetLib/MDL/MDLFileData.h:603:5: error: field  within 'Assimp::MDL::Vertex_MDL7' is less aligned than 'Assimp::MDL::Vertex_MDL7::(anonymous union at /wrkdirs/usr/ports/multimedia/assimp/work/assimp-5.1.5/code/AssetLib/MDL/MDLFileData.h:603:5)' and is usually due to 'Assimp::MDL::Vertex_MDL7' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access]
    union {
    ^
1 error generated.


For reference:

# ~/fbsd-based-on-what-commit.sh -C /usr/ports/
branch: main
merge-base: 0a2f0da65b65bb9b3abf7a06815854f3cff063fa
merge-base: CommitDate: 2022-05-07 18:07:34 +0000
0a2f0da65b65 (HEAD -> main) devel/py-tabulate: update to version 0.8.9
n582877 (--first-parent --count for merge-base)

# poudriere jail -jmain-CA7-bulk_a -i
Jail name:         main-CA7-bulk_a
Jail version:      14.0-CURRENT
Jail arch:         arm.armv7
Jail method:       null
Jail mount:        /usr/obj/DESTDIRs/main-CA7-poud-bulk_a
Jail fs:           
Jail updated:      2022-05-23 02:21:24
Jail pkgbase:      disabled

# uname -apKU # output line split for readability
FreeBSD CA72_UFS 14.0-CURRENT FreeBSD 14.0-CURRENT #56
main-n255745-77649f35a7e5-dirty: Sat May 21 18:48:32 PDT 2022
root@CA72_16Gp_ZFS:/usr/obj/BUILDs/main-CA72-nodbg-clang/usr/main-src/arm64.aarch64/sys/GENERIC-NODBG-CA72
arm64 aarch64 1400059 1400059

The jail is based on a armv7 build of the same source tree as
used for the above.


===
Mark Millard
marklmi at yahoo.com