Comments (3)
Apologies, a bug report should have been included before closing.
Including this patch broke an existing implementation of MUI + OpenFOAM, compiled with GCC 7.3.0 on a Debian based system. The compilation error is due to there being multiple definitions of specialisations found in endian_traits.h.
e.g.:
"In function mui::detail::endian_converter<2ul>::htobe()': (.text+0x0): multiple definition of
mui::detail::endian_converter<2ul>::htobe()'
(.text+0x0): first defined here
In function mui::detail::endian_converter<2ul>::betoh()': (.text+0x10): multiple definition of
mui::detail::endian_converter<2ul>::betoh()'
(.text+0x10): first defined here
In function mui::detail::endian_converter<4ul>::htobe()': (.text+0x20): multiple definition of
mui::detail::endian_converter<4ul>::htobe()'
(.text+0x20): first defined here
In function mui::detail::endian_converter<4ul>::betoh()': (.text+0x30): multiple definition of
mui::detail::endian_converter<4ul>::betoh()'
(.text+0x30): first defined here
In function mui::detail::endian_converter<8ul>::htobe()': (.text+0x40): multiple definition of
mui::detail::endian_converter<8ul>::htobe()'
(.text+0x40): first defined here
In function mui::detail::endian_converter<8ul>::betoh()': (.text+0x50): multiple definition of
mui::detail::endian_converter<8ul>::betoh()'
(.text+0x50): first defined here....."
I suspect this is down to the fact that MUI is embedded as a class that is then utilised by a good majority of other OpenFOAM classes, rather than the more traditional use-case of simply including mui.h at the top of a not heavily-OO design. However, as the original code worked without error on the same system, I reverted the changes to avoid it being broken for any other user of the master branch.
More details will be provided in any future bug reports.
from mui.
Thanks Stephen! With that clue I reproduced the issue in LAMMPS (using MUI in main() and in a custom fix for the communication ). I'd forgotten that explicit specialisations are not implicitly inline. I've got a fix on my traits branch - I'll make a PR
from mui.
I have integrated the fix and all seems well this time, so I'll leave the patch applied unless somebody else comes across a problem. I'm going to close this bug for now.
from mui.
Related Issues (20)
- Calling mpi_split_by_app with a single app HOT 3
- Issue with Nearest Neighbour spatial filter HOT 2
- Not find the fetch_values function implement HOT 2
- Connecting MUI applications with different starting commands HOT 4
- MUI Coupling with the Lattice Boltzmann solver Palabos freezes HOT 2
- polymorphic uniface -- ideas / opinions wanted HOT 3
- Please, guide for how to install MUI in Lammps HOT 1
- Possible bug with fetch_points/fetch_values HOT 4
- Better packaging for Python wrapper. HOT 2
- Add unit tests for Python wrapper. HOT 3
- Store the mesh connectivity information for mesh based solvers HOT 7
- Add interpolation filter at the sending side HOT 1
- accelerating spatial samplers HOT 1
- improve generality of RBF spatial filter
- Cmake shouldn't specify FORTRAN unless needed HOT 1
- Compiling Errors for MUI Python Wrapper on macOS Based Machine HOT 4
- fortran wrapper type error?? HOT 2
- trasfering array of string from fortran into cpp HOT 1
- configure/install as header-only HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mui.