Dear Alexei, Alexei Sheplyakov wrote:
ISO C++ demands (in 7.1.2.4) "If a function with external linkage is declared inline in one translation unit, it shall be declared inline in all translation units in which it appears; no diagnostic is required." MAYBE_INLINE violates this requirement. Moreover, it's pointless, since the compiler emits those functions anyway. This causes link errors on non-ELF platforms (such as woe32 and Darwin). Hence, I decided to replace MAYBE_INLINE with standard compliant (but more intrusive) code. Only fiew occurences of MAYBE_INLINE have been converted. However, this happens to be enough to build CLN as a woe32 DLL (after massive hacking of build scripts).
Ouch, that patch is ugly as sin. But if, as a consequence, it will help someone provide DLLs of CLN, well, then maybe it should be applied. However, I'm worried about the maintainability: Can you, please, write a comment explaining what you're doing at some suitable place in the sources? And, can you please provide a ChangeLog entry for all that? (Oh, and don't worry about that cln_1-1 branch: I'll release CLN 1.2.0 really soon now.) And one last question: Do you have any idea why it's enough converting only these few occurrences? Cheers -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>