I'm working on a problem where I have a code sample from biogears https://github.com/BioGearsEngine/core Where my XSD CodeSynthesis generated code fails the one definition rule when compiled against an gcc5.4 armhf compiler. I regularly build the same files against gcc5.4 arm64 MacOS & Linux and Visual Studio 2017 Win64. I can also build against gcc5.4 aarch64. I'm including an example from my drive account that reduces this to two compilation units. Saddly, this requires a number of headers from XSD and Xerces-C to compile so they are included as well. https://drive.google.com/open?id=1xfzEyugXOGKYuj69JKD2RXqbMBQ4ro4r I'm hopping the mailing list can point me in to some build chain or output format difference between arm7 and arm8 that might be the cause. Or a difference in the ubuntu 16.04 cross-compiler default flags. I'm going to admit. I can't really decide where to start on this so any help is appreciated. Error armhf arm-linux-gnueabihf-g++ (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. arm-linux-gnueabihf-g++ -shared -Wl,-soname,libbiogears_cdm_d.so -o libbiogears_cdm_d.so ActionData.o ActionListData.o ActionListData.o:(.data.rel.ro+0x348): multiple definition of `typeinfo for xsd::cxx::tree::simple_type<char, xsd::cxx ::tree::_type>::text_content_type' ActionData.o:(.data.rel.ro+0x348): first defined here ActionListData.o:(.data.rel.ro+0x54): multiple definition of `typeinfo for xsd::cxx::tree::no_prefix_mapping<char>' ActionData.o:(.data.rel.ro+0x54): first defined here ActionListData.o:(.data.rel.ro+0xb4): multiple definition of `typeinfo for xsd::cxx::tree::bounds<char>' ActionData.o:(.data.rel.ro+0xb4): first defined here ActionListData.o:(.data.rel.ro+0x3c): multiple definition of `typeinfo for xsd::cxx::tree::not_derived<char>' ActionData.o:(.data.rel.ro+0x3c): first defined here ActionListData.o:(.data.rel.ro+0x48): multiple definition of `typeinfo for xsd::cxx::tree::no_type_info<char>' ActionData.o:(.data.rel.ro+0x48): first defined here ActionListData.o:(.data.rel.ro+0x60): multiple definition of `typeinfo for xsd::cxx::tree::expected_text_content<char> ' Success aarch64 aarch64-linux-gnu-g++ (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. aarch64-linux-gnu-g++ --std=c++14 -I. -Ibiogears/schema -fPIC -o ActionData.o -c ActionData.cxx aarch64-linux-gnu-g++ --std=c++14 -I. -Ibiogears/schema -fPIC -o ActionListData.o -c ActionListData.cxx Building libbiogears_cdm.so aarch64-linux-gnu-g++ -shared -Wl,-soname,libbiogears_cdm_d.so -o libbiogears_cdm_d.so ActionData.o ActionListData.o Success amd64 gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. g++ --std=c++14 -I. -Ibiogears/schema -fPIC -o ActionData.o -c ActionData.cxx g++ --std=c++14 -I. -Ibiogears/schema -fPIC -o ActionListData.o -c ActionListData.cxx Building libbiogears_cdm.so g++ -shared -Wl,-soname,libbiogears_cdm_d.so -o libbiogears_cdm_d.so ActionData.o ActionListData.o Linux biogears-dev01 4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux -- Memento Mori