[Media_api] portmidi patch and textrels, Makefile organization

Roger Dannenberg rbd at cs.cmu.edu
Tue Nov 28 14:16:24 PST 2006


Hanno,

GENTOO PATCH:
	I went through the diffs in
files/portmidi-061023.diff on https://bugs.gentoo.org/show_bug.cgi?id=90614
Most of the changes there had to do with building dynamic link library 
versions and eliminating compiler warnings, but there were a few real 
bug fixes (but not all bug fixes were correct). I've gone through and 
updated my sources with the changes, but I need to do some testing. I 
discovered that alsa_abort() was never properly implemented (it just 
printed a warning and returned). I've added an implementation for that, 
although I'm not sure how I can test to see if it really works. It's 
supposed to destroy pending output messages, so the behavior is 
timing-dependent.

TEXTRELS:
The textrels problem is new to me and results from building dynamic link 
library versions of PortMidi. The 
http://hardened.gentoo.org/pic-fix-guide.xml page implies that textrels 
result from in-line assembly, but PortMidi is all in C. It looks to me 
like the textrels are related to global variables, e.g. the variable 
"seq" is a global ALSA sequence pointer that is passed to almost every 
ALSA function. If you can find out where the textrels come from, I can 
help change or restructure the code to avoid the problem.


MAKEFILE ORGANIZATION:
A final issue is what to do with the Makefile. I think for many people, 
having a statically linked library is simple, and compiling with the 
error code checks on is a good idea for initial development. On the 
other hand, it would be nice to have one Makefile that could build and 
install dynamic libraries for production code as well as provide a 
template for first-time users writing simple test applications. Should 
the Makefile make two sets of libraries? Should the test applications be 
created by a separate Makefile?

Thanks,
Roger


More information about the media_api mailing list