Open IntinteDAO opened 2 years ago
Could you try these patches from FreeBSD port?
fileman.cpp:296:33: error: non-constant-expression cannot be narrowed from type 'unsigned long' to 'uint8_t' (aka 'unsigned char') in initializer list [-Wc++11-narrowing]
uint8_t sizes[3]={ CLIENT_NFS,strlen(filename)+1,strlen(mode)+1};
^~~~~~~~~~~~~~~~~~
fileman.cpp:296:33: note: insert an explicit cast to silence this issue
uint8_t sizes[3]={ CLIENT_NFS,strlen(filename)+1,strlen(mode)+1};
^~~~~~~~~~~~~~~~~~
static_cast<uint8_t>( )
fileman.cpp:296:52: error: non-constant-expression cannot be narrowed from type 'unsigned long' to 'uint8_t' (aka 'unsigned char') in initializer list [-Wc++11-narrowing]
uint8_t sizes[3]={ CLIENT_NFS,strlen(filename)+1,strlen(mode)+1};
^~~~~~~~~~~~~~
fileman.cpp:296:52: note: insert an explicit cast to silence this issue
uint8_t sizes[3]={ CLIENT_NFS,strlen(filename)+1,strlen(mode)+1};
^~~~~~~~~~~~~~
static_cast<uint8_t>( )
--- src/net/fileman.cpp.orig 2011-05-02 11:55:06 UTC
+++ src/net/fileman.cpp
@@ -293,7 +293,7 @@ file_manager::remote_file::remote_file(net_socket *soc
next=Next;
open_local=0;
- uint8_t sizes[3]={ CLIENT_NFS,strlen(filename)+1,strlen(mode)+1};
+ uint8_t sizes[3]={ CLIENT_NFS,(uint8_t)(strlen(filename)+1),(uint8_t)(strlen(mode)+1)};
if (sock->write(sizes,3)!=3) { r_close("could not send open info"); return ; }
if (sock->write(filename,sizes[1])!=sizes[1]) { r_close("could not send filename"); return ; }
if (sock->write(mode,sizes[2])!=sizes[2]) { r_close("could not send mode"); return ; }
hmi.cpp:302:97: error: non-constant-expression cannot be narrowed from type 'int' to 'uint8_t'
(aka 'unsigned char') in initializer list [-Wc++11-narrowing]
...0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, (num_tracks + 1), 0x00, 0xC0 };
^~~~~~~~~~~~~~~~
hmi.cpp:302:97: note: insert an explicit cast to silence this issue
...0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, (num_tracks + 1), 0x00, 0xC0 };
^~~~~~~~~~~~~~~~
static_cast<uint8_t>( )
--- src/sdlport/hmi.cpp.orig 2011-05-09 07:58:30 UTC
+++ src/sdlport/hmi.cpp
@@ -299,7 +299,7 @@ uint8_t* load_hmi(char const *filename, uint32_t &data
uint8_t num_tracks = (next_offset - offset_tracks) / sizeof(uint32_t);
// Write Midi file header
- uint8_t midi_header[] = { 0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, (num_tracks + 1), 0x00, 0xC0 };
+ uint8_t midi_header[] = { 0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, (uint8_t)(num_tracks + 1), 0x00, 0xC0 };
memcpy(output_buffer_ptr, midi_header, 14);
output_buffer_ptr += 14;
Other thing I've tested is that it only runs when compiled with clang <= 11 or I get a seg fault, could you confirm?
Other thing I've tested is that it only runs when compiled with clang <= 11 or I get a seg fault, could you confirm?
Yep, I tried on Termux and it segfaults when compiled on Clang, but works on GCC. Sorry for waiting, we just use GCC to compile Abuse on Termux.
But still no issue why it's segfaulting
This is how I try to build various projects under Termux. Probably a proper patch would fix the problem, but I'm not familiar with C++ (so the question is whether it makes sense to build the source code :P).
I wonder if you can fix it (as long as it's fixable so as not to break compatibility)
The compiler is clang, Termux doesn't have gcc