This issue was introduced when I converted fusb_darwin to use omnithreads, in r6149. Apparently my QA wasn't good enough, since I didn't verify that the executables in 'usrp/host/apps' worked. Given that, IIRC, OSX is the only OS that uses threads in the USRP module, I don't think this will affect other OS's apps execution. I've attached a diff on the current SVN trunk to correct this issue, which is a better solution that the previous one, since it assigned just what is needed for each OS, not forcing all to include the omnithreads stuff since they don't need it (unless the OS == darwin).

I think the correct solution is to add a switch in Makefile.common (top level) to right after

USRP_LA = $(top_builddir)/usrp/host/lib/legacy/libusrp.la

that checks the host OS (I choose "FUSB_TECH_darwin"); if it's darwin, then append $(OMNITHREAD_LA) to the $(USRP_LA) list, and likewise for the $(USRP_INCLUDES). That way, -any- application or whatever that wants to compile using libusrp.la will also include omnithread.la , and thus will create a working executable (ditto for the includes). And, since the switch is for darwin only, all the other OSs will just do the same thing they were doing before.

Thoughts? Comments? Let me know if you want me to do these changes on an SVN branch to be merged. - MLD

Attachment: usrp_omnithread_darwin_fix.diff
Description: Binary data

_______________________________________________
Patch-gnuradio mailing list
Patch-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/patch-gnuradio

Reply via email to