Bug in generation of lnInclude links
Hello,
I finally found time again, to work on my alternative meson-based build system. While doing that, I found something very suspicious:
The symlinks inside the lnInclude directory are created using this command:
find .. \
\( -name lnInclude -o -name Make -o -name config -o -name noLink \) \
-prune \
-o \( \
-name '*.[CHch]' \
-o -name '*.cc' \
-o -name '*.hh' \
-o -name '*.[ch]xx' \
-o -name '*.[ch]pp' \
-o -name '*.type' \
\) \
-exec ln "$optLink" {} . \;
Now what happens if find finds two files with the same name? The second symlink will overwrite the first one. This looks very much unintentional to me (see also: https://serverfault.com/a/181815) and might confuse other people (it did confuse me).
I would suggest renaming all these "duplicate" files. If you want, I can write the patch.
List of all conflicts.
Conflicts for ./applications/test/00-dummy/library/lnInclude
../dummy/dummyMpiLib.C
../mpi/dummyMpiLib.C
Conflicts for ./applications/test/00-dummy/lnInclude
../library/dummy/dummyMpiLib.C
../library/mpi/dummyMpiLib.C
Conflicts for ./applications/solvers/incompressible/pimpleFoam/lnInclude
../overPimpleDyMFoam/UEqn.H
../UEqn.H
../overPimpleDyMFoam/correctPhi.H
../correctPhi.H
../overPimpleDyMFoam/createFields.H
../SRFPimpleFoam/createFields.H
../createFields.H
../overPimpleDyMFoam/pEqn.H
../SRFPimpleFoam/pEqn.H
../pEqn.H
Conflicts for ./applications/solvers/incompressible/simpleFoam/lnInclude
../SRFSimpleFoam/createFields.H
../overSimpleFoam/createFields.H
../createFields.H
../SRFSimpleFoam/pEqn.H
../overSimpleFoam/pEqn.H
../porousSimpleFoam/pEqn.H
../pEqn.H
../overSimpleFoam/UEqn.H
../porousSimpleFoam/UEqn.H
../UEqn.H
Conflicts for ./applications/solvers/basic/potentialFoam/lnInclude
../overPotentialFoam/createControls.H
../createControls.H
../overPotentialFoam/createFields.H
../createFields.H
Conflicts for ./applications/solvers/basic/laplacianFoam/lnInclude
../overLaplacianDyMFoam/write.H
../write.H
../overLaplacianDyMFoam/createFields.H
../createFields.H
Conflicts for ./applications/solvers/lagrangian/DPMFoam/lnInclude
../DPMDyMFoam/pEqn.H
../pEqn.H
Conflicts for ./applications/solvers/lagrangian/sprayFoam/lnInclude
../sprayDyMFoam/pEqn.H
../pEqn.H
Conflicts for ./applications/solvers/lagrangian/reactingParcelFoam/lnInclude
../simpleReactingParcelFoam/YEqn.H
../YEqn.H
../simpleReactingParcelFoam/UEqn.H
../UEqn.H
../simpleReactingParcelFoam/createFields.H
../createFields.H
../simpleReactingParcelFoam/pEqn.H
../pEqn.H
../simpleReactingParcelFoam/createClouds.H
../createClouds.H
../simpleReactingParcelFoam/createFieldRefs.H
../createFieldRefs.H
../simpleReactingParcelFoam/EEqn.H
../EEqn.H
Conflicts for ./applications/solvers/heatTransfer/chtMultiRegionFoam/lnInclude
../chtMultiRegionTwoPhaseEulerFoam/solid/solveSolid.H
../solid/solveSolid.H
../chtMultiRegionSimpleFoam/solid/solveSolid.H
../fluid/UEqn.H
../chtMultiRegionSimpleFoam/fluid/UEqn.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/compressibleMultiRegionCourantNo.H
../fluid/compressibleMultiRegionCourantNo.H
../chtMultiRegionSimpleFoam/fluid/compressibleMultiRegionCourantNo.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/storeOldFluidFields.H
../fluid/storeOldFluidFields.H
../fluid/pEqn.H
../chtMultiRegionSimpleFoam/fluid/pEqn.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/solveFluid.H
../fluid/solveFluid.H
../chtMultiRegionSimpleFoam/fluid/solveFluid.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/createFluidFields.H
../fluid/createFluidFields.H
../chtMultiRegionSimpleFoam/fluid/createFluidFields.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/initContinuityErrs.H
../fluid/initContinuityErrs.H
../chtMultiRegionSimpleFoam/fluid/initContinuityErrs.H
../fluid/compressibleContinuityErrors.H
../chtMultiRegionSimpleFoam/fluid/compressibleContinuityErrors.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/readFluidMultiRegionPIMPLEControls.H
../fluid/readFluidMultiRegionPIMPLEControls.H
../fluid/createFluidMeshes.H
../chtMultiRegionSimpleFoam/fluid/createFluidMeshes.H
../chtMultiRegionTwoPhaseEulerFoam/fluid/setRegionFluidFields.H
../fluid/setRegionFluidFields.H
../chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H
../fluid/EEqn.H
../chtMultiRegionSimpleFoam/fluid/EEqn.H
Conflicts for ./applications/solvers/heatTransfer/buoyantPimpleFoam/lnInclude
../overBuoyantPimpleDyMFoam/createFieldRefs.H
../createFieldRefs.H
../overBuoyantPimpleDyMFoam/pEqn.H
../pEqn.H
../overBuoyantPimpleDyMFoam/createFields.H
../createFields.H
Conflicts for ./applications/solvers/combustion/XiFoam/lnInclude
../XiDyMFoam/pEqn.H
../XiEngineFoam/pEqn.H
../pEqn.H
../XiEngineFoam/UEqn.H
../UEqn.H
Conflicts for ./applications/solvers/combustion/reactingFoam/lnInclude
../rhoReactingBuoyantFoam/createFieldRefs.H
../rhoReactingFoam/createFieldRefs.H
../createFieldRefs.H
../rhoReactingBuoyantFoam/UEqn.H
../UEqn.H
../rhoReactingBuoyantFoam/pEqn.H
../pEqn.H
../rhoReactingBuoyantFoam/createFields.H
../rhoReactingFoam/createFields.H
../createFields.H
Conflicts for ./applications/solvers/multiphase/potentialFreeSurfaceFoam/lnInclude
../potentialFreeSurfaceDyMFoam/pEqn.H
../pEqn.H
Conflicts for ./applications/solvers/multiphase/twoPhaseEulerFoam/lnInclude
../pUf/createDDtU.H
../pU/createDDtU.H
../pUf/pEqn.H
../pU/pEqn.H
../pUf/UEqns.H
../pU/UEqns.H
../pUf/DDtU.H
../pU/DDtU.H
Conflicts for ./applications/solvers/multiphase/interFoam/lnInclude
../overInterDyMFoam/pEqn.H
../pEqn.H
../overInterDyMFoam/UEqn.H
../UEqn.H
../overInterDyMFoam/alphaSuSp.H
../alphaSuSp.H
../interMixingFoam/createFields.H
../overInterDyMFoam/createFields.H
../createFields.H
../overInterDyMFoam/correctPhi.H
../correctPhi.H
Conflicts for ./applications/solvers/multiphase/reactingTwoPhaseEulerFoam/lnInclude
../pUf/UEqns.H
../pU/UEqns.H
../pUf/pEqn.H
../pU/pEqn.H
Conflicts for ./applications/solvers/multiphase/interPhaseChangeFoam/lnInclude
../interPhaseChangeDyMFoam/correctPhi.H
../overInterPhaseChangeDyMFoam/correctPhi.H
../overInterPhaseChangeDyMFoam/createFields.H
../createFields.H
../overInterPhaseChangeDyMFoam/UEqn.H
../UEqn.H
../interPhaseChangeDyMFoam/pEqn.H
../overInterPhaseChangeDyMFoam/pEqn.H
../pEqn.H
Conflicts for ./applications/solvers/multiphase/cavitatingFoam/lnInclude
../cavitatingDyMFoam/readControls.H
../readControls.H
../cavitatingDyMFoam/pEqn.H
../pEqn.H
../cavitatingDyMFoam/createControls.H
../createControls.H
Conflicts for ./applications/solvers/multiphase/reactingMultiphaseEulerFoam/lnInclude
../pUf/UEqns.H
../pU/UEqns.H
../pUf/pEqn.H
../pU/pEqn.H
Conflicts for ./applications/solvers/multiphase/compressibleInterFoam/lnInclude
../compressibleInterDyMFoam/correctPhi.H
../compressibleInterIsoFoam/correctPhi.H
../compressibleInterIsoFoam/compressibleAlphaEqnSubCycle.H
../compressibleAlphaEqnSubCycle.H
../compressibleInterFilmFoam/TEqn.H
../overCompressibleInterDyMFoam/TEqn.H
../TEqn.H
../compressibleInterDyMFoam/pEqn.H
../compressibleInterIsoFoam/pEqn.H
../compressibleInterFilmFoam/pEqn.H
../overCompressibleInterDyMFoam/pEqn.H
../pEqn.H
../compressibleInterIsoFoam/createFields.H
../overCompressibleInterDyMFoam/createFields.H
../createFields.H
../compressibleInterDyMFoam/alphaSuSp.H
../compressibleInterIsoFoam/alphaSuSp.H
../overCompressibleInterDyMFoam/alphaSuSp.H
../alphaSuSp.H
../overCompressibleInterDyMFoam/UEqn.H
../UEqn.H
Conflicts for ./applications/solvers/compressible/sonicFoam/lnInclude
../sonicDyMFoam/pEqn.H
../pEqn.H
../sonicLiquidFoam/createFields.H
../createFields.H
Conflicts for ./applications/solvers/compressible/rhoSimpleFoam/lnInclude
../overRhoSimpleFoam/createFields.H
../createFields.H
../rhoPorousSimpleFoam/UEqn.H
../overRhoSimpleFoam/UEqn.H
../UEqn.H
../overRhoSimpleFoam/createFieldRefs.H
../createFieldRefs.H
../rhoPorousSimpleFoam/pEqn.H
../overRhoSimpleFoam/pEqn.H
../pEqn.H
Conflicts for ./applications/solvers/compressible/rhoPimpleFoam/lnInclude
../overRhoPimpleDyMFoam/createFields.H
../createFields.H
../overRhoPimpleDyMFoam/correctPhi.H
../correctPhi.H
../overRhoPimpleDyMFoam/pEqn.H
../pEqn.H
Conflicts for ./src/phaseSystemModels/reactingEuler/multiphaseSystem/lnInclude
../derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/exponential/exponential.H
../populationBalanceModel/breakupModels/exponential/exponential.H
../BlendedInterfacialModel/blendingMethods/linear/linear.H
../derivedFvPatchFields/wallBoilingSubModels/partitioningModels/linear/linear.H
../derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/exponential/exponential.C
../populationBalanceModel/breakupModels/exponential/exponential.C
../BlendedInterfacialModel/blendingMethods/linear/linear.C
../derivedFvPatchFields/wallBoilingSubModels/partitioningModels/linear/linear.C