[Spice-devel] Error compiling Spice Client on ARM

Alon Levy alevy at redhat.com
Mon Jan 16 04:56:07 PST 2012


On Mon, Jan 16, 2012 at 08:47:00AM -0300, Nicolas Antonio Corrarello wrote:
>    Alo,
>    Sorry for the delay's, I left the VM at the office. Here is the output you

Thanks,

Can you try this patch?


diff --git a/client/foreign_menu.cpp b/client/foreign_menu.cpp
index d1df49d..faef4c2 100644
--- a/client/foreign_menu.cpp
+++ b/client/foreign_menu.cpp
@@ -30,7 +30,7 @@
 
 #ifdef WIN32
 #define PIPE_NAME "SpiceForeignMenu-%lu"
-#elif defined(__i386__)
+#elif defined(__i386__) || __SIZEOF_LONG__ == 4
 #define PIPE_NAME "/tmp/SpiceForeignMenu-%llu.uds"
 #else
 #define PIPE_NAME "/tmp/SpiceForeignMenu-%lu.uds"

>    requested:
>    # 1 "<stdin>"
>    # 1 "<built-in>"
>    #define __STDC__ 1
>    #define __STDC_HOSTED__ 1
>    #define __GNUC__ 4
>    #define __GNUC_MINOR__ 6
>    #define __GNUC_PATCHLEVEL__ 2
>    #define __VERSION__ "4.6.2"
>    #define __FINITE_MATH_ONLY__ 0
>    #define __SIZEOF_INT__ 4
>    #define __SIZEOF_LONG__ 4
>    #define __SIZEOF_LONG_LONG__ 8
>    #define __SIZEOF_SHORT__ 2
>    #define __SIZEOF_FLOAT__ 4
>    #define __SIZEOF_DOUBLE__ 8
>    #define __SIZEOF_LONG_DOUBLE__ 8
>    #define __SIZEOF_SIZE_T__ 4
>    #define __CHAR_BIT__ 8
>    #define __BIGGEST_ALIGNMENT__ 8
>    #define __ORDER_LITTLE_ENDIAN__ 1234
>    #define __ORDER_BIG_ENDIAN__ 4321
>    #define __ORDER_PDP_ENDIAN__ 3412
>    #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
>    #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
>    #define __SIZEOF_POINTER__ 4
>    #define __SIZE_TYPE__ unsigned int
>    #define __PTRDIFF_TYPE__ int
>    #define __WCHAR_TYPE__ unsigned int
>    #define __WINT_TYPE__ unsigned int
>    #define __INTMAX_TYPE__ long long int
>    #define __UINTMAX_TYPE__ long long unsigned int
>    #define __CHAR16_TYPE__ short unsigned int
>    #define __CHAR32_TYPE__ unsigned int
>    #define __SIG_ATOMIC_TYPE__ int
>    #define __INT8_TYPE__ signed char
>    #define __INT16_TYPE__ short int
>    #define __INT32_TYPE__ int
>    #define __INT64_TYPE__ long long int
>    #define __UINT8_TYPE__ unsigned char
>    #define __UINT16_TYPE__ short unsigned int
>    #define __UINT32_TYPE__ unsigned int
>    #define __UINT64_TYPE__ long long unsigned int
>    #define __INT_LEAST8_TYPE__ signed char
>    #define __INT_LEAST16_TYPE__ short int
>    #define __INT_LEAST32_TYPE__ int
>    #define __INT_LEAST64_TYPE__ long long int
>    #define __UINT_LEAST8_TYPE__ unsigned char
>    #define __UINT_LEAST16_TYPE__ short unsigned int
>    #define __UINT_LEAST32_TYPE__ unsigned int
>    #define __UINT_LEAST64_TYPE__ long long unsigned int
>    #define __INT_FAST8_TYPE__ signed char
>    #define __INT_FAST16_TYPE__ int
>    #define __INT_FAST32_TYPE__ int
>    #define __INT_FAST64_TYPE__ long long int
>    #define __UINT_FAST8_TYPE__ unsigned char
>    #define __UINT_FAST16_TYPE__ unsigned int
>    #define __UINT_FAST32_TYPE__ unsigned int
>    #define __UINT_FAST64_TYPE__ long long unsigned int
>    #define __INTPTR_TYPE__ int
>    #define __UINTPTR_TYPE__ unsigned int
>    #define __GXX_ABI_VERSION 1002
>    #define __SCHAR_MAX__ 127
>    #define __SHRT_MAX__ 32767
>    #define __INT_MAX__ 2147483647
>    #define __LONG_MAX__ 2147483647L
>    #define __LONG_LONG_MAX__ 9223372036854775807LL
>    #define __WCHAR_MAX__ 4294967295U
>    #define __WCHAR_MIN__ 0U
>    #define __WINT_MAX__ 4294967295U
>    #define __WINT_MIN__ 0U
>    #define __PTRDIFF_MAX__ 2147483647
>    #define __SIZE_MAX__ 4294967295U
>    #define __INTMAX_MAX__ 9223372036854775807LL
>    #define __INTMAX_C(c) c ## LL
>    #define __UINTMAX_MAX__ 18446744073709551615ULL
>    #define __UINTMAX_C(c) c ## ULL
>    #define __SIG_ATOMIC_MAX__ 2147483647
>    #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
>    #define __INT8_MAX__ 127
>    #define __INT16_MAX__ 32767
>    #define __INT32_MAX__ 2147483647
>    #define __INT64_MAX__ 9223372036854775807LL
>    #define __UINT8_MAX__ 255
>    #define __UINT16_MAX__ 65535
>    #define __UINT32_MAX__ 4294967295U
>    #define __UINT64_MAX__ 18446744073709551615ULL
>    #define __INT_LEAST8_MAX__ 127
>    #define __INT8_C(c) c
>    #define __INT_LEAST16_MAX__ 32767
>    #define __INT16_C(c) c
>    #define __INT_LEAST32_MAX__ 2147483647
>    #define __INT32_C(c) c
>    #define __INT_LEAST64_MAX__ 9223372036854775807LL
>    #define __INT64_C(c) c ## LL
>    #define __UINT_LEAST8_MAX__ 255
>    #define __UINT8_C(c) c
>    #define __UINT_LEAST16_MAX__ 65535
>    #define __UINT16_C(c) c
>    #define __UINT_LEAST32_MAX__ 4294967295U
>    #define __UINT32_C(c) c ## U
>    #define __UINT_LEAST64_MAX__ 18446744073709551615ULL
>    #define __UINT64_C(c) c ## ULL
>    #define __INT_FAST8_MAX__ 127
>    #define __INT_FAST16_MAX__ 2147483647
>    #define __INT_FAST32_MAX__ 2147483647
>    #define __INT_FAST64_MAX__ 9223372036854775807LL
>    #define __UINT_FAST8_MAX__ 255
>    #define __UINT_FAST16_MAX__ 4294967295U
>    #define __UINT_FAST32_MAX__ 4294967295U
>    #define __UINT_FAST64_MAX__ 18446744073709551615ULL
>    #define __INTPTR_MAX__ 2147483647
>    #define __UINTPTR_MAX__ 4294967295U
>    #define __FLT_EVAL_METHOD__ 0
>    #define __DEC_EVAL_METHOD__ 2
>    #define __FLT_RADIX__ 2
>    #define __FLT_MANT_DIG__ 24
>    #define __FLT_DIG__ 6
>    #define __FLT_MIN_EXP__ (-125)
>    #define __FLT_MIN_10_EXP__ (-37)
>    #define __FLT_MAX_EXP__ 128
>    #define __FLT_MAX_10_EXP__ 38
>    #define __FLT_DECIMAL_DIG__ 9
>    #define __FLT_MAX__ 3.4028234663852886e+38F
>    #define __FLT_MIN__ 1.1754943508222875e-38F
>    #define __FLT_EPSILON__ 1.1920928955078125e-7F
>    #define __FLT_DENORM_MIN__ 1.4012984643248171e-45F
>    #define __FLT_HAS_DENORM__ 1
>    #define __FLT_HAS_INFINITY__ 1
>    #define __FLT_HAS_QUIET_NAN__ 1
>    #define __DBL_MANT_DIG__ 53
>    #define __DBL_DIG__ 15
>    #define __DBL_MIN_EXP__ (-1021)
>    #define __DBL_MIN_10_EXP__ (-307)
>    #define __DBL_MAX_EXP__ 1024
>    #define __DBL_MAX_10_EXP__ 308
>    #define __DBL_DECIMAL_DIG__ 17
>    #define __DBL_MAX__ ((double)1.7976931348623157e+308L)
>    #define __DBL_MIN__ ((double)2.2250738585072014e-308L)
>    #define __DBL_EPSILON__ ((double)2.2204460492503131e-16L)
>    #define __DBL_DENORM_MIN__ ((double)4.9406564584124654e-324L)
>    #define __DBL_HAS_DENORM__ 1
>    #define __DBL_HAS_INFINITY__ 1
>    #define __DBL_HAS_QUIET_NAN__ 1
>    #define __LDBL_MANT_DIG__ 53
>    #define __LDBL_DIG__ 15
>    #define __LDBL_MIN_EXP__ (-1021)
>    #define __LDBL_MIN_10_EXP__ (-307)
>    #define __LDBL_MAX_EXP__ 1024
>    #define __LDBL_MAX_10_EXP__ 308
>    #define __DECIMAL_DIG__ 17
>    #define __LDBL_MAX__ 1.7976931348623157e+308L
>    #define __LDBL_MIN__ 2.2250738585072014e-308L
>    #define __LDBL_EPSILON__ 2.2204460492503131e-16L
>    #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
>    #define __LDBL_HAS_DENORM__ 1
>    #define __LDBL_HAS_INFINITY__ 1
>    #define __LDBL_HAS_QUIET_NAN__ 1
>    #define __DEC32_MANT_DIG__ 7
>    #define __DEC32_MIN_EXP__ (-94)
>    #define __DEC32_MAX_EXP__ 97
>    #define __DEC32_MIN__ 1E-95DF
>    #define __DEC32_MAX__ 9.999999E96DF
>    #define __DEC32_EPSILON__ 1E-6DF
>    #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
>    #define __DEC64_MANT_DIG__ 16
>    #define __DEC64_MIN_EXP__ (-382)
>    #define __DEC64_MAX_EXP__ 385
>    #define __DEC64_MIN__ 1E-383DD
>    #define __DEC64_MAX__ 9.999999999999999E384DD
>    #define __DEC64_EPSILON__ 1E-15DD
>    #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
>    #define __DEC128_MANT_DIG__ 34
>    #define __DEC128_MIN_EXP__ (-6142)
>    #define __DEC128_MAX_EXP__ 6145
>    #define __DEC128_MIN__ 1E-6143DL
>    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
>    #define __DEC128_EPSILON__ 1E-33DL
>    #define __DEC128_SUBNORMAL_MIN__
>    0.000000000000000000000000000000001E-6143DL
>    #define __REGISTER_PREFIX__ 
>    #define __USER_LABEL_PREFIX__ 
>    #define __GNUC_GNU_INLINE__ 1
>    #define __NO_INLINE__ 1
>    #define __CHAR_UNSIGNED__ 1
>    #define __PRAGMA_REDEFINE_EXTNAME 1
>    #define __SIZEOF_WCHAR_T__ 4
>    #define __SIZEOF_WINT_T__ 4
>    #define __SIZEOF_PTRDIFF_T__ 4
>    #define __arm__ 1
>    #define __APCS_32__ 1
>    #define __ARMEL__ 1
>    #define __SOFTFP__ 1
>    #define __VFP_FP__ 1
>    #define __THUMB_INTERWORK__ 1
>    #define __ARM_ARCH_4T__ 1
>    #define __ARM_PCS 1
>    #define __ARM_EABI__ 1
>    #define __GXX_TYPEINFO_EQUALITY_INLINE 0
>    #define __gnu_linux__ 1
>    #define __linux 1
>    #define __linux__ 1
>    #define linux 1
>    #define __unix 1
>    #define __unix__ 1
>    #define unix 1
>    #define __ELF__ 1
>    # 1 "<command-line>"
>    # 1 "<stdin>"
>    int main() {return 0;}
>    2012/1/14 Alon Levy <[1]alevy at redhat.com>
> 
>      On Fri, Jan 13, 2012 at 03:54:02PM -0300, Nicolas Antonio Corrarello
>      wrote:
>      >    Guys,
>      >    Being well aware that spice server only works on x64-64, I'm trying
>      to
>      >    compile the spice client in ARM, but I'm bumping into the
>      following:
>      >    make ן߽all-am
>      >    make[1]: Entering directory `/root/spice-0.10.0/client'
>      >    ן߽ CXX ן߽ ן߽foreign_menu.o
>      >    foreign_menu.cpp: In constructor
>      >    'ForeignMenu::ForeignMenu(ForeignMenuInterface*)':
> 
>      Ok, this is due to the define above only checking for __i386__, can you
>      run this to dump all predefined variables, so we can find the relevant
>      one (I guess something like __armv6__):
>      echo "int main() { return 0; }" | g++ -dD -E -
> 
>      Thanks,
>      Alon
>      >    foreign_menu.cpp:47:81: error: format '%lu' expects argument of
>      type 'long
>      >    unsigned int', but argument 4 has type 'uint64_t {aka long long
>      unsigned
>      >    int}' [-Werror=format]
>      >    foreign_menu.cpp:47:81: error: format '%lu' expects argument of
>      type 'long
>      >    unsigned int', but argument 4 has type 'uint64_t {aka long long
>      unsigned
>      >    int}' [-Werror=format]
>      >    cc1plus: all warnings being treated as errors
>      >    make[1]: *** [foreign_menu.o] Error 1
>      >    make[1]: Leaving directory `/root/spice-0.10.0/client'
>      >    make: *** [all] Error 2
>      >    I had to add my arm machine type manually in ./configure in order
>      for it
>      >    to pass the processor check.
>      >    The system is emulated with qemu, and here is some info about the
>      linux
>      >    distro running on it:
>      >    Script started on Fri Jan 13 18:50:48 2012
>      >    root at test-arm:~/spice-0.10.0/client# gcc -version. .. .. .. .. .. .
>      >    Using built-in specs.
>      >    COLLECT_GCC=gcc
>      >    COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/4.6/lto-wrapper
>      >    Target: arm-linux-gnueabi
>      >    Configured with: ../src/configure -v --with-pkgversion='Debian
>      4.6.2-11'
>      >    --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
>      >    --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
>      >    --program-suffix=-4.6 --enable-shared --enable-linker-build-id
>      >    --with-system-zlib --libexecdir=/usr/lib --without-included-gettext
>      >    --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
>      >    --libdir=/usr/lib --enable-nls --enable-clocale=gnu
>      >    --enable-libstdcxx-debug --enable-libstdcxx-time=yes
>      --enable-plugin
>      >    --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv4t
>      >    --with-float=soft --enable-checking=release
>      --build=arm-linux-gnueabi
>      >    --host=arm-linux-gnueabi --target=arm-linux-gnueabi
>      >    Thread model: posix
>      >    gcc version 4.6.2 (Debian 4.6.2-11)ן߽
>      >    root at test-arm:~/spice-0.10.0/client# [2]una.me -a
>      >    Linux test-arm 3.0.4 #2 Mon Oct 17 17:39:42 ICT 2011 armv6l
>      GNU/Linux
>      >    root at test-arm:~/spice-0.10.0/client# exit
>      >    exit
>      >    Script done on Fri Jan 13 18:51:08 2012
>      >    I'd appreciate any help on the matter,
>      >    Yours truly
>      >    nac
> 
> References
> 
>    Visible links
>    1. mailto:alevy at redhat.com
>    2. http://una.me/

> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



More information about the Spice-devel mailing list