Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 397
    • Issues 397
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 7
    • Merge requests 7
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Issues
  • #2520
Closed
Open
Created Jun 21, 2022 by Volker Weißmann@volker-weissmann

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
Assignee
Assign to
Time tracking