arm-elf-gcc 4.0.1 class alignment

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) Ltd<http://www.gendac.com/>
participants (2)
-
Pierre-Andre van Leeuwen