I have successfully installed a mingw-w64 cross compiler. But that
compiler won't create a native gcc. This is the error:
x86_64-w64-mingw32-g++ -c -g -O2 -DIN_GCC -fno-exceptions -fno-rtti
-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -DHAVE_CONFIG_H -I. -I.
-I/home/solskogen/mingw-w64-builder/gcc/gcc
-I/home/solskogen/mingw-w64-builder/gcc/gcc/.
-I/home/solskogen/mingw-w64-builder/gcc/gcc/../include
-I/home/solskogen/mingw-w64-builder/gcc/gcc/../libcpp/include
-I/home/solskogen/obj/prereq.x86_64-w64-mingw32/include
-I/home/solskogen/mingw-w64-builder/gcc/gcc/../libdecnumber
-I/home/solskogen/mingw-w64-builder/gcc/gcc/../libdecnumber/bid
-I../libdecnumber -DCLOOG_INT_GMP
-I/home/solskogen/obj/prereq.x86_64-w64-mingw32/include
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c -o ggc-common.o
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c: In function 'int
gt_pch_note_object(void*, void*, gt_note_pointers, gt_types_enum)':
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:326:63: error:
cast from 'void*' to 'long int' loses precision [-fpermissive]
htab_find_slot_with_hash (saving_htab, obj, POINTER_HASH (obj),
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:311:43: note: in
definition of macro 'POINTER_HASH'
#define POINTER_HASH(x) (hashval_t)((long)x >> 3)
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c: In function
'void gt_pch_note_reorder(void*, void*, gt_handle_reorder)':
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:359:58: error:
cast from 'void*' to 'long int' loses precision [-fpermissive]
htab_find_with_hash (saving_htab, obj, POINTER_HASH (obj));
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:311:43: note: in
definition of macro 'POINTER_HASH'
#define POINTER_HASH(x) (hashval_t)((long)x >> 3)
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c: In function
'hashval_t saving_htab_hash(const void*)':
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:370:54: error:
cast from 'void*' to 'long int' loses precision [-fpermissive]
return POINTER_HASH (((const struct ptr_data *)p)->obj);
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:311:43: note: in
definition of macro 'POINTER_HASH'
#define POINTER_HASH(x) (hashval_t)((long)x >> 3)
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c: In function
'void relocate_ptrs(void*, void*)':
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:443:60: error:
cast from 'void*' to 'long int' loses precision [-fpermissive]
htab_find_with_hash (saving_htab, *ptr, POINTER_HASH (*ptr));
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:311:43: note: in
definition of macro 'POINTER_HASH'
#define POINTER_HASH(x) (hashval_t)((long)x >> 3)
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c: In function
'void write_pch_globals(const ggc_root_tab* const*, traversal_state*)':
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:472:56: error:
cast from 'void*' to 'long int' loses precision [-fpermissive]
htab_find_with_hash (saving_htab, ptr, POINTER_HASH (ptr));
^
/home/solskogen/mingw-w64-builder/gcc/gcc/ggc-common.c:311:43: note: in
definition of macro 'POINTER_HASH'
#define POINTER_HASH(x) (hashval_t)((long)x >> 3)
^
make[2]: *** [ggc-common.o] Error 1
make[2]: Leaving directory
`/home/solskogen/obj/_build/gcc.native.x86_64-w64-mingw32/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory
`/home/solskogen/obj/_build/gcc.native.x86_64-w64-mingw32'
make: *** [all] Error 2
I'm using gcc from svn, and it was updated this morning.
--
chs