Package: basilisk2
Severity: normal
Tags: patch

When building 'basilisk2' on amd64 with gcc-4.0,
I get the following error:

g++ -I../include -I. -I../uae_cpu -DHAVE_CONFIG_H  -DOS_linux 
-DDIRECT_ADDRESSING -DUNALIGNED_PROFITABLE -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS 
-DFPU_IEEE -D_REENTRANT -DDATADIR=\"/usr/share/BasiliskII\" -O2 
-fno-merge-constants -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 
-I/usr/lib/glib/include  -c ../ether.cpp -o obj/ether.o
../ether.cpp: In function 'void ether_udp_read(uint8*, int, sockaddr_in*)':
../ether.cpp:443: error: cast from 'uint8*' to 'uint32' loses precision
make[1]: *** [obj/ether.o] Error 1
make[1]: Leaving directory `/basilisk2-0.9.20030722/src/Unix'
make: *** [debian/stamp-makefile-build] Error 2

With the attached patch 'basilisk2' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/basilisk2-0.9.20030722/src/Unix/ether_unix.cpp 
./src/Unix/ether_unix.cpp
--- ../tmp-orig/basilisk2-0.9.20030722/src/Unix/ether_unix.cpp  2002-02-07 
16:10:55.000000000 +0000
+++ ./src/Unix/ether_unix.cpp   2005-02-26 14:51:49.000000000 +0000
@@ -420,7 +420,7 @@
                        M68kRegisters r;
                        r.d[0] = type;                                          
                        // Packet type
                        r.d[1] = length - 14;                                   
                // Remaining packet length (without header, for ReadPacket)
-                       r.a[0] = (uint32)p + 14;                                
                // Pointer to packet (host address, for ReadPacket)
+                       r.a[0] = (unsigned long)p + 14;                         
                // Pointer to packet (host address, for ReadPacket)
                        r.a[3] = ether_data + ed_RHA + 14;                      
        // Pointer behind header in RHA
                        r.a[4] = ether_data + ed_ReadPacket;                    
// Pointer to ReadPacket/ReadRest routines
                        D(bug(" calling protocol handler %08x, type %08x, 
length %08x, data %08x, rha %08x, read_packet %08x\n", handler, r.d[0], r.d[1], 
r.a[0], r.a[3], r.a[4]));
diff -urN ../tmp-orig/basilisk2-0.9.20030722/src/ether.cpp ./src/ether.cpp
--- ../tmp-orig/basilisk2-0.9.20030722/src/ether.cpp    2002-02-07 
16:10:55.000000000 +0000
+++ ./src/ether.cpp     2005-02-26 14:51:03.000000000 +0000
@@ -440,7 +440,7 @@
        M68kRegisters r;
        r.d[0] = type;                                                          
        // Packet type
        r.d[1] = length - 14;                                                   
// Remaining packet length (without header, for ReadPacket)
-       r.a[0] = (uint32)packet + 14;                                   // 
Pointer to packet (host address, for ReadPacket)
+       r.a[0] = (unsigned long)packet + 14;                                    
// Pointer to packet (host address, for ReadPacket)
        r.a[3] = ether_data + ed_RHA + 14;                              // 
Pointer behind header in RHA
        r.a[4] = ether_data + ed_ReadPacket;                    // Pointer to 
ReadPacket/ReadRest routines
        D(bug(" calling protocol handler %08x, type %08x, length %08x, data 
%08x, rha %08x, read_packet %08x\n", handler, r.d[0], r.d[1], r.a[0], r.a[3], 
r.a[4]));


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to