| 
      
      
      From: Jorge L. W. <jo...@jl...> - 2004-06-25 10:07:53
      
     | 
| Did anyone take a look at the patch I submit last December? It addressed/fixed a lot of these linker problems and got things working for GLX applications on OS X. I was planning on working on it further this summer but been kinda busy. -jOrGe W. On Jun 24, 2004, at 12:09 PM, Christopher Waters wrote: > I did some browsing around the Mac documentation, and I came across > some articles on Umbrella Frameworks, which is another way of saying > "frameworks within frameworks." The nifty thing about these is that > when the dynamic linker cannot find a symbol in the base framework, it > looks in its child frameworks for the symbols. This takes care of a > lot of problems the dynamic linker has given me about certain symbols > it expected to find in libGL.dylib (specifically gll_noop and > gll_pkey). In order to implement this, though, we have to create a > temporary framework file structure. The following is a list of the > folders I used to test this out: > > /private/tmp/OpenGL.framework > cwaters% ls -lR > Frameworks -> Versions/Current/Frameworks > Headers -> Versions/Current/Headers > Libraries -> Versions/Current/Libraries > OpenGL -> Versions/Current/OpenGL > Resources -> Versions/Current/Resources > Versions > > ./Versions: > A > Current -> A > > ./Versions/A: > Frameworks > Headers -> > /System/Library/Frameworks/OpenGL.framework/Versions/A/Headers > Libraries > OpenGL -> /cr/lib/Darwin/libcrfaker.dylib > Resources -> > /System/Library/Frameworks/OpenGL.framework/Versions/A/Resources > > ./Versions/A/Frameworks: > NOpenGL.framework -> /System/Library/Frameworks/OpenGL.framework > > ./Versions/A/Libraries: > libGL.dylib -> /cr/lib/Darwin/libcrfaker.dylib > > After I made all the folders and symbolic links, I preappeneded "/tmp" > to DYLD_FRAMEWORK_PATH (in app_faker.c) > I wouldn't say it worked sucessfully, since the program itself crashed > after creating/setting the context, but I would say that it -worked-, > in the sense that the faker's CGL functions were actually called. > > Attached is a diff between the HEAD app_faker.c and the app_faker.c > with the implementation I wrote for this purpose. > > -Chris Waters > > <app_faker.diff> > > On Jun 23, 2004, at 2:11 PM, Christopher Waters wrote: > >> Attached is the "change log" I made. The tarballed code can be found >> at: http://www.cse.msstate.edu/~crw7/vis/cr-1.1.tar.gz >> I restarted off of HEAD yesterday morning, so it should be up to date. >> >> I got most of my ideas for all of this (using AGL in spus and CGL in >> faker; defining SPU before including arch.mk; etc) from Jorge's >> "Darwin Patch" mails. >> Everything builds fine, but then goes downhill when trying to run the >> app faker :( >> >> There seems to be some trick in "tricking" the dynamic linker, too... >> forcing a flat namspace and then inserting the faker library only >> worked until you tried to call functions in the actual opengl >> library. >> >> -Chris Waters >> >> <Darwin_work.rtf> |