Hi Not sure if this belongs on this list or the Boost.Build list, but the problem exists when using Boost as well as building it. I'm using Boost with the ARM-ELF-GCC toolchain with gcc version 4.0.1. When building the Boost serialization library, I get the following error: ./boost/archive/basic_binary_oarchive.hpp:80: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>' It turns out that sizeof(class_id_type ) == 4 in stead of 2, where class_id_type is defined as follows: class class_id_type { private: typedef int_least16_t base_type; base_type t; ... }; Using a toolchain with a more recent gcc version (arm-none-eabi-gcc 4.4.1) works correctly, but unfortunately I need to get Boost working with the old toolchain as well. I have tried to add __attribute__ ((packed)) to the class declaration, but that breaks as well (cannot bind packed field in operator int_least16_t). Is there anything I can do to rectify the situation? My user-config.jam contains the following: using gcc : armelf : "arm-elf-gcc.exe" : <cflags>-nostdlib <cxxflags>-DBOOST_NO_INTRINSIC_WCHAR_T <cxxflags>-D__OAT_API_VERSION__=637 <cxxflags>-D__WIP_PLUGIN_VERSION__=543 <cxxflags>-D__arm <cxxflags>-D_LITTLE_ENDIAN <cxxflags>-IC:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.os.model.6.37.0.201202060950_6.37.0.201202060950\resources/ADL/itf <cxxflags>-IC:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.os.model.6.37.0.201202060950_6.37.0.201202060950\resources/ADL/basic <cxxflags>-IC:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.WIP.5.43.0.201202100610_5.43.0.201202100610\resources/WIP/itf <cxxflags>-fshort-enums <cxxflags>-fdollars-in-identifiers <cxxflags>-nostartfiles <cxxflags>-fno-strict-aliasing <cxxflags>-fno-common <cxxflags>-fomit-frame-pointer <cxxflags>-mthumb-interwork <cxxflags>-mthumb <cxxflags>-march=armv5te <cxxflags>-msoft-float <cxxflags>-mfpu=fpa <cxxflags>-mapcs <cxxflags>-mno-apcs-stack-check <cxxflags>-mlittle-endian <architecture>arm <address-model>32 ; I'm building boost with the following command .\b2 variant=debug,release link=static threading=single toolset=gcc-armelf --debug-configuration --debug-building --with-serialization stage Any help will be appreciated. Pierre-Andre van Leeuwen Director | Gendac (Pty) Ltdhttp://www.gendac.com/
participants (1)
-
Pierre-Andre van Leeuwen