attached is a patch that fixes some missing includes in musicbrainz-2.1.4. there was a major header cleanup in GCC 4.3 so some headers which were previously pulled in indirectly are no longer being included. http://www.cyrius.com/journal/2007/05/10#gcc-4.3-include
Created attachment 138623 [details, diff] musicbrainz-2.1.4-gcc43-includes.patch
I've bumped it to 2.1.5, the changelog says it fixes gcc 4.3 compilation, though the patch is a bit different. Please reopen if it still fails.
:/ x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include/musicbrainz -O3 -g -march=native -fomit-frame-pointer -pipe -fdirectives-only -Wall -O2 -MT comhttpsocket.lo -MD -MP -MF .deps/comhttpsocket.Tpo -c comhttpsocket.cpp -fPIC -DPIC -o .libs/comhttpsocket.o c_wrapper.cpp: In function 'int mb_GetWebSubmitURL(void*, char*, int)': c_wrapper.cpp:158: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'void mb_GetQueryError(void*, char*, int)': c_wrapper.cpp:207: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'int mb_GetResultData(void*, char*, char*, int)': c_wrapper.cpp:225: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'int mb_GetResultData1(void*, char*, char*, int, int)': c_wrapper.cpp:245: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'int mb_GetResultRDF(void*, char*, int)': c_wrapper.cpp:347: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'void mb_GetIDFromURL(void*, char*, char*, int)': c_wrapper.cpp:385: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'void mb_GetFragmentFromURL(void*, char*, char*, int)': c_wrapper.cpp:396: error: 'strncpy' was not declared in this scope c_wrapper.cpp: In function 'int trm_FinalizeSignature(void*, char*, char*)': c_wrapper.cpp:507: error: 'memset' was not declared in this scope c_wrapper.cpp:508: error: 'strncpy' was not declared in this scope make[2]: *** [c_wrapper.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include/musicbrainz -O3 -g -march=native -fomit-frame-pointer -pipe -fdirectives-only -Wall -O2 -MT comsocket.lo -MD -MP -MF .deps/comsocket.Tpo -c comsocket.cpp -fPIC -DPIC -o .libs/comsocket.o comhttpsocket.cpp: In constructor 'MBCOMHTTPSocket::MBCOMHTTPSocket()': comhttpsocket.cpp:31: error: 'memset' was not declared in this scope comhttpsocket.cpp: In member function 'int MBCOMHTTPSocket::Connect(const char*)': comhttpsocket.cpp:55: error: 'strncmp' was not declared in this scope comhttpsocket.cpp:59: error: 'memset' was not declared in this scope comhttpsocket.cpp:69: error: 'strcpy' was not declared in this scope comhttpsocket.cpp:78: error: 'strchr' was not declared in this scope comhttpsocket.cpp: In member function 'int MBCOMHTTPSocket::Write(const char*, size_t, size_t*)': comhttpsocket.cpp:117: error: 'strlen' was not declared in this scope comhttpsocket.cpp:122: error: 'memset' was not declared in this scope comhttpsocket.cpp:127: error: 'strcat' was not declared in this scope comhttpsocket.cpp:129: error: 'memcpy' was not declared in this scope comhttpsocket.cpp: In member function 'int MBCOMHTTPSocket::NBRead(char*, size_t, size_t*, int)': comhttpsocket.cpp:151: error: 'memset' was not declared in this scope comhttpsocket.cpp:179: error: 'strchr' was not declared in this scope comhttpsocket.cpp:195: error: 'strstr' was not declared in this scope comhttpsocket.cpp:200: error: 'memcpy' was not declared in this scope comhttpsocket.cpp:214: error: 'memcpy' was not declared in this scope comhttpsocket.cpp: In member function 'int MBCOMHTTPSocket::Read(char*, size_t, size_t*)': comhttpsocket.cpp:237: error: 'memcpy' was not declared in this scope comhttpsocket.cpp:241: error: 'memmove' was not declared in this scope comhttpsocket.cpp:254: error: 'memcpy' was not declared in this scope comhttpsocket.cpp: In member function 'bool MBCOMHTTPSocket::IsHTTPHeaderComplete(char*, unsigned int)': comhttpsocket.cpp:287: error: 'strncmp' was not declared in this scope make[2]: *** [comhttpsocket.lo] Error 1 comsocket.cpp: In member function 'int MBCOMSocket::Connect(const char*, int, int, bool)': comsocket.cpp:159: error: 'memset' was not declared in this scope comsocket.cpp:161: error: 'memcpy' was not declared in this scope comsocket.cpp: In member function 'int MBCOMSocket::NBConnect(const char*, int, int, int)': comsocket.cpp:311: error: 'memset' was not declared in this scope comsocket.cpp:313: error: 'memcpy' was not declared in this scope comsocket.cpp: In member function 'int MBCOMSocket::SetMCastInterface(const char*)': comsocket.cpp:385: error: 'memset' was not declared in this scope make[2]: *** [comsocket.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/media-libs/musicbrainz-2.1.5/work/libmusicbrainz-2.1.5/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/media-libs/musicbrainz-2.1.5/work/libmusicbrainz-2.1.5' make: *** [all] Error 2 * * ERROR: media-libs/musicbrainz-2.1.5 failed.
thanks for testing it I've applied your patch, please notify loudly upstream about it as they seem to think it's sane with gcc 4.3 ;)
for reference: http://bugs.musicbrainz.org/ticket/3492
*** Bug 208637 has been marked as a duplicate of this bug. ***
*** Bug 227759 has been marked as a duplicate of this bug. ***