tags 567366 + patch thanks I believe the enclosed patch solve the problem, by making sure all source files include the changesForSqueak.h file which define memoryAllocate(). The patch also make sure changesForSqueak.c include <stdlib.h> to make sure the prototype for free() is available when free() is used.
After looking at the source, I must admit the code quality is not very good. Function protypes are unknown when the functions are used (a problem for argument parsing and return type handling), several functions fail to always provide return values and a lot of unused variables are sprinkled around the source. The gcc warnings are instructive, and I suspect all the warnings reported by gcc during build should be looked and fixed. I do not try to do so with this patch, as it is better to fix it upstream. diff -ur squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.c squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.c --- squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.c 2009-12-29 09:34:53.000000000 +0100 +++ squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.c 2010-01-30 19:12:49.000000000 +0100 @@ -47,6 +47,8 @@ #include <windows.h> #endif +#include <stdlib.h> /* for free() */ + mpeg3_demuxer_t* mpeg3_new_demuxer(mpeg3_t *file, int do_audio, int do_video, int stream_id); mpeg3_title_t* mpeg3_new_title(mpeg3_t *file, char *path); mpeg3demux_timecode_t* mpeg3_append_timecode(mpeg3_demuxer_t *demuxer, diff -ur squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.h squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.h --- squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.h 2009-12-29 09:34:53.000000000 +0100 +++ squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.h 2010-01-30 19:26:48.000000000 +0100 @@ -1,4 +1,9 @@ +#ifndef CHANGESFORSQUEAK_H +#define CHANGESFORSQUEAK_H + #include "mpeg3private.h" int mpeg3_generate_toc_for_Squeak(mpeg3_t *file, int timecode_search, int print_streams, char *buffer, int buffer_size); void * memoryAllocate(int number,unsigned size); void memoryFree(void *stuff); + +#endif /* CHANGESFORSQUEAK_H */ diff -ur squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/mpeg3protos.h squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/mpeg3protos.h --- squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/mpeg3protos.h 2009-12-29 09:34:53.000000000 +0100 +++ squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/mpeg3protos.h 2010-01-30 19:25:58.000000000 +0100 @@ -1,6 +1,8 @@ #ifndef MPEG3PROTOS_H #define MPEG3PROTOS_H +#include "changesForSqueak.h" + /* CSS */ mpeg3_css_t* mpeg3_new_css(); diff -ur squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/mpeg3videoprotos.h squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/mpeg3videoprotos.h --- squeak-vm-3.11.3+svn2147/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/mpeg3videoprotos.h 2009-12-29 09:34:53.000000000 +0100 +++ squeak-vm-3.11.3+svn2147-pere/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/mpeg3videoprotos.h 2010-01-30 19:41:42.000000000 +0100 @@ -1,6 +1,8 @@ #ifndef MPEG3VIDEOPROTOS_H #define MPEG3VIDEOPROTOS_H +#include "changesForSqueak.h" + void mpeg3video_idct_conversion(short* block); unsigned int mpeg3slice_showbits(mpeg3_slice_buffer_t *slice_buffer, int bits); Happy hacking, -- Petter Reinholdtsen -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org