-#ifdef WORDS_BIG_ENDIAN
-const bool host_big_endian = true;
-#else
-const bool host_big_endian = false;
-#endif
-
-// Conversion routines between target and host.
-
-// Convert Elf_Half.
-
-template<bool same_endian>
-Elf_Half
-convert_half_host(Elf_Half v);
-
-template<>
-inline Elf_Half
-convert_half_host<true>(Elf_Half v)
-{
- return v;
-}
-
-template<>
-inline Elf_Half
-convert_half_host<false>(Elf_Half v)
-{
- return bswap_16(v);
-}
-
-template<bool big_endian>
-inline Elf_Half
-convert_half(Elf_Half v)
-{
- return convert_half_host<big_endian == host_big_endian>(v);
-}
-
-// Convert Elf_Word.
-
-template<bool same_endian>
-Elf_Word
-convert_word_host(Elf_Word v);
-
-template<>
-inline Elf_Word
-convert_word_host<true>(Elf_Word v)
-{
- return v;
-}
-
-template<>
-inline Elf_Word
-convert_word_host<false>(Elf_Word v)
-{
- return bswap_32(v);
-}
-
-template<bool big_endian>
-inline Elf_Word
-convert_word(Elf_Word v)
-{
- return convert_word_host<big_endian == host_big_endian>(v);
-}
-
-// Convert Elf_Xword.
-
-template<bool same_endian>
-Elf_Xword
-convert_xword_host(Elf_Xword v);
-
-template<>
-inline Elf_Xword
-convert_xword_host<true>(Elf_Xword v)
-{
- return v;
-}
-
-template<>
-inline Elf_Xword
-convert_xword_host<false>(Elf_Xword v)
-{
- return bswap_64(v);
-}
-
-template<bool big_endian>
-inline Elf_Xword
-convert_xword(Elf_Xword v)
-{
- return convert_xword_host<big_endian == host_big_endian>(v);
-}
-
-// Convert Elf_addr.
-
-template<int size, bool same_endian>
-typename Elf_types<size>::Elf_Addr
-convert_addr_size(typename Elf_types<size>::Elf_Addr);
-
-template<>
-inline Elf_types<32>::Elf_Addr
-convert_addr_size<32, true>(Elf_types<32>::Elf_Addr v)
-{
- return v;
-}
-
-template<>
-inline Elf_types<64>::Elf_Addr
-convert_addr_size<64, true>(Elf_types<64>::Elf_Addr v)
-{
- return v;
-}
-
-template<>
-inline Elf_types<32>::Elf_Addr
-convert_addr_size<32, false>(Elf_types<32>::Elf_Addr v)
-{
- return bswap_32(v);
-}
-
-template<>
-inline Elf_types<64>::Elf_Addr
-convert_addr_size<64, false>(Elf_types<64>::Elf_Addr v)
-{
- return bswap_64(v);
-}
-
-template<int size, bool big_endian>
-inline typename Elf_types<size>::Elf_Addr
-convert_addr(typename Elf_types<size>::Elf_Addr v)
-{
- return convert_addr_size<size, big_endian == host_big_endian>(v);
-}
-
-// Convert Elf_Off.
-
-template<int size, bool big_endian>
-inline typename Elf_types<size>::Elf_Off
-convert_off(typename Elf_types<size>::Elf_Off v)
-{
- return convert_addr_size<size, big_endian == host_big_endian>(v);
-}
-
-// Convert Elf_WXword.
-
-template<int size, bool big_endian>
-inline typename Elf_types<size>::Elf_Off
-convert_wxword(typename Elf_types<size>::Elf_Off v)
-{
- return convert_addr_size<size, big_endian == host_big_endian>(v);
-}
-