View Issue Details

IDProjectCategoryView StatusLast Update
0003696ThirdParty[All Projects] Bugpublic2021-07-26 15:36
ReportermgrigorovAssigned Tohenry 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
PlatformLinux ARM64OSUbuntuOS Version20.04.2
Product Versiondev 
Fixed in Version 
Summary0003696: Build failure on Linux ARM64 for ThirdParty-dev
DescriptionHello,

I am trying to build OpenFOAM on Ubuntu 20.04.2 ARM64.
The build fails for ThirdParty-dev, master branch.
I follow the instructions at https://openfoam.org/download/source/software-for-compilation/

Any ideas how to solve it ?

Thank you!
Steps To Reproduce1. sudo apt-get install build-essential flex bison git-core cmake zlib1g-dev
2. sudo apt-get install libqt5x11extras5-dev libxt-dev qt5-default qttools5-dev curl
3. git clone https://github.com/OpenFOAM/OpenFOAM-dev.git
4. git clone https://github.com/OpenFOAM/ThirdParty-dev.git && cd ThirdParty-dev
5. source $HOME/OpenFOAM/OpenFOAM-dev/etc/bashrc
6. ./Allwmake
7. ./makeParaView

and here it breaks with:

...
[ 87%] Built target vtkPVServerManagerDefault
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMUtilitiesClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMViewLayoutProxyClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMViewProxyClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMViewProxyInteractorHelperClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMViewResolutionDomainClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMWidgetRepresentationProxyClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkSMParaViewPipelineControllerWithRenderingClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkPVServerManagerRenderingObjectFactoryClientServer.cxx.o
[ 87%] Building CXX object Wrapping/ClientServer/CMakeFiles/vtkPVServerManagerRenderingCS.dir/vtkPVServerManagerRenderingCSInit.cxx.o
[ 87%] Linking CXX static library ../../lib/libvtkPVServerManagerRenderingCS-pv5.6.a
[ 87%] Built target vtkPVServerManagerRenderingCS
make: *** [Makefile:152: all] Error 2
Command exited with non-zero status 2
8921.63user 999.69system 23:58.03elapsed 689%CPU (0avgtext+0avgdata 1743496maxresident)k
118632inputs+2870128outputs (611major+185189999minor)pagefaults 0swaps
TagsNo tags attached.

Activities

henry

2021-07-21 21:15

manager   ~0012094

Have you tried building OpenFOAM without ParaView?
You could also try building a different version of ParaView.
If you have further problems building ParaView report the issue to KitWare who maintain ParaView.

mgrigorov

2021-07-22 12:38

reporter   ~0012095

Thank you for your quick answer, @henry!

1. cd OpenFOAM-dev
2. ./Allwmake -j

leads to :

...
g++ -std=c++14 -DlinuxArm64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -mcpu=native -fno-tree-slp-vectorize -DNoRepository -ftemplate-depth-100 -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/fileFormats/lnInclude -IlnInclude -I. -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/OpenFOAM/lnInclude -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -c surfaceFormats/stl/STLsurfaceFormatRunTime.C -o /home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/stl/STLsurfaceFormatRunTime.o
flex -+ -o/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/stl/STLsurfaceFormatASCII.L.C -f surfaceFormats/stl/STLsurfaceFormatASCII.L && g++ -std=c++14 -DlinuxArm64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -mcpu=native -fno-tree-slp-vectorize -DNoRepository -ftemplate-depth-100 -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/fileFormats/lnInclude -IlnInclude -I. -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/OpenFOAM/lnInclude -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds -c /home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/stl/STLsurfaceFormatASCII.L.C -o /home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/stl/STLsurfaceFormatASCII.o
g++ -std=c++14 -DlinuxArm64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -mcpu=native -fno-tree-slp-vectorize -DNoRepository -ftemplate-depth-100 -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/fileFormats/lnInclude -IlnInclude -I. -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/OpenFOAM/lnInclude -I/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -c surfaceFormats/tri/TRIsurfaceFormatCore.C -o /home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/tri/TRIsurfaceFormatCore.o
/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/stl/STLsurfaceFormatASCII.L.C:302:10: fatal error: FlexLexer.h: No such file or directory
  302 | #include <FlexLexer.h>
      | ^~~~~~~~~~~~~
compilation terminated.
make: *** [/home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/wmake/rules/General/transform:26: /home/ubuntu/git/2021.H2/openfoam/OpenFOAM-dev/platforms/linuxArm64GccDPInt32Opt/src/surfMesh/surfaceFormats/stl/STLsurfaceFormatASCII.o] Error 1
make: *** Waiting for unfinished jobs....


Do I miss some step ?

Regards,
Martin

mgrigorov

2021-07-22 12:39

reporter   ~0012096

I've reported the ParaView issue at https://discourse.paraview.org/t/build-failure-on-ubuntu-20-04-2-arm64/7669

henry

2021-07-22 12:43

manager   ~0012097

You will need FlexLexer.h installed.

mgrigorov

2021-07-22 13:02

reporter   ~0012098

OK, I was able to find it in libfl-dev package.
How it could be added to the list of dependent packages at https://openfoam.org/download/source/software-for-compilation/ ? Is there a Git repo for the website ? I don't find it at https://github.com/OpenFOAM?tab=repositories

chris

2021-07-26 09:31

manager   ~0012104

The "flex" package is on the list.
https://packages.ubuntu.com/focal/flex

libfl-dev is a recommended package of flex, so the following command installs libfl-dev by default.
sudo apt-get install flex

Testing:
+ Created a clean Ubuntu 20.04.2 LTS Arm server installation.
+ sudo apt-get update
+ sudo apt-get install flex
+ ls /usr/include/FlexLexer.h
/usr/include/FlexLexer.h

The list appears fine and it makes no sense to list recommended dependencies which are installed by default.

mgrigorov

2021-07-26 12:56

reporter   ~0012105

Thanks for the explanation, @chris!

I've just tested the same as you and indeed libfl-dev is installed with flex! I have no idea why it wasn't the first time!

mgrigorov

2021-07-26 13:02

reporter   ~0012106

The problem with ParaView is fixed in a later version - https://discourse.paraview.org/t/build-failure-on-ubuntu-20-04-2-arm64/7669/4
As requested by ParaView community member I've built it with `make -j 1` and this revealed this error:

[ 93%] Building CXX object Utilities/LegacyColorMapXMLToJSON/CMakeFiles/vtkLegacyColorMapXMLToJSON.dir/vtkLegacyColorMapXMLToJSON.cxx.o
[ 93%] Linking CXX executable …/…/bin/vtkLegacyColorMapXMLToJSON
/usr/bin/ld: /home/ubuntu/git/2021.H2/openfoam/ThirdParty-dev/build/linuxArm64Gcc/ParaView-5.6.3/lib/libvtkpng-pv5.6.so.1: undefined reference to `png_init_filter_functions_neon’
collect2: error: ld returned 1 exit status

They say this error is fixed in a newer version of ParaView!

OpenFOAM-dev itself builds fine on my Ubuntu 20.04.2 ARM64 ! Great!

By the way do you have a Linux ARM64 machine for testing/CI purposes ?
Chris said above that he tested the issue with libfl-dev on an ARM64 machine, so I guess you already have such.
I work for OpenLab Testing (https://openlabtesting.org) and we would be happy to donate the project an ARM64 VM if you think it might be useful!

Issue History

Date Modified Username Field Change
2021-07-21 21:09 mgrigorov New Issue
2021-07-21 21:15 henry Note Added: 0012094
2021-07-22 12:38 mgrigorov Note Added: 0012095
2021-07-22 12:39 mgrigorov Note Added: 0012096
2021-07-22 12:43 henry Note Added: 0012097
2021-07-22 13:02 mgrigorov Note Added: 0012098
2021-07-26 09:31 chris Note Added: 0012104
2021-07-26 12:56 mgrigorov Note Added: 0012105
2021-07-26 13:02 mgrigorov Note Added: 0012106
2021-07-26 15:36 henry Assigned To => henry
2021-07-26 15:36 henry Status new => closed
2021-07-26 15:36 henry Resolution open => no change required