19 November 2015, 01:19 | #1 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
QEMU-UAE keeps tripping on my OSX PPC!
Yo dawg.
So I've been trying to get the QEMU-UAE plugin working on my PPC OSX box. Or laptop rather. PowerBook G4. But it always traps out. After a lot of different testing and log saving I finally found why. It's missing a dylib. Which ended in the OSX crash window. It wants libgthread. So, is it possible to just compile the plugin as a static build? I played around looking on the net for various libgthread files but in the end all I was doing was plugging a random file in various places and trying to make it stick that ended up wrecking my FS-UAE! I had to wipe and reinstall it. So static build please. |
21 November 2015, 12:45 | #2 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Well two days have passed and no one has the QEMU-UAE plug in working on PPC. Not surprising, nor do I! I guess that explains why it doesn't work.
|
21 November 2015, 20:34 | #3 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
The problem (as shown in http://eab.abime.net/showpost.php?p=...0&postcount=50) is that the plugin you tried to use depends on a (missing) library, and the plugin refers - with absolute path - to a library which only exists on the computer of the person performing the build.
For the official QEMU-UAE plugin (qemu-uae.so) I change the library reference so the plugin finds the Glib libraries included in FS-UAE (via the rpath mechanism). This works well when the plugin is compiled with the same Glib version as FS-UAE: Code:
otool -L qemu-uae.so qemu-uae.so: ... @rpath/libgthread-2.0.0.dylib (compatibility version 4401.0.0, current version 4401.1.0) @rpath/libglib-2.0.0.dylib (compatibility version 4401.0.0, current version 4401.1.0) ... |
22 November 2015, 14:57 | #4 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Thanks Frode for your post. That is very useful. Yes I didn't want to repeat myself in another thread. These dylibs may be convenient but for public usage I find a static build is best. Can OSX do that?
I tried copying both libgthread and libglib which I found inside FS-UAE (would have saved me searching for dead ends) to /usr/local/lib/ to no avail. I saw a reference to that folder but the errors in the log don't make sense. According to the loader the image isn't found. What image? The file is certainly there! Damiens-PowerBook-G4:3.3.0qemu2.1.0 Damien$ ls -l /usr/local/lib/libg* So if you ask me DLOPEN is a bit unclear as it looks like it is saying an image doesn't exist when it plainly does! I'll try the tool you mention but I'll need to get out my other Mac with XCode on it as I couldn't find them on the net. The other one has a broken screen so not easily usable and the battery has gone dead. BTW, for whatever reason I cannot get a complete fs-uae.log.txt. Perhaps it is the B trap crashing the code but most of the time I cannot get any QEMU error. Usually all I get on the tail end is lines of how the audio buffer is underun. Perhaps this is related to "slow" CPU of host. I could see no way to disable audio in FS config. Looks like I need override it with UAE config. I did use the key shortcut but the log was still cut short. |
23 November 2015, 19:04 | #5 |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
For have the qemu-uae library you need to install the mac ports and install qemu from there .. it will install all the necessary library for the qemu library plug-in for fs uae ppc too. this because qemu need many library not more supported by osx leopard ppc and mac ports close this gap
Last edited by tlosm; 23 November 2015 at 19:23. |
24 November 2015, 14:59 | #6 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Then your plug in will be useless to anyone who isn't a programmer. Which is unfortunate as there is interest. I found the following is needed. This list may be incomplete:
/usr/local/lib/libglib-2.0.0.dylib /usr/local/lib/libgthread-2.0.0.dylib /usr/local/opt/gettext/lib/libintl.8. What I wonder is why a static build cannot be compiled. Will it conflict with FS-UAE? Does OSX make it too hard? Also, I installed QEMU using port on my broken machine and the plugin still didn't work. There is also a .so and .dylib version of your plugin. Which is best and how do we select it? I also wonder what the point of this Mac ports is? I mean, I expected it to download include files and binaries but all it does is download a source package somewhere and compile it! What's the point of that?! I want a "port" not a "compile"! It has issues. I swear, I once had my Mac going all day downloading stuff needed and compiling, but by the end of it I still didn't get anything working. All I got was compile errors. Time to give up my man. |
24 November 2015, 19:50 | #7 |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
Hypex the best is compile the qemu-uae.so your self ... what is macports? is the place where you can find all the porting from linux to osx ;-) .
in any way . install the base mac port system ... after open a terminal and write "sudo ports selfupdate" "sudo port search qemu" "sudo port install qemu" it will start install and compile all needed library and sources for qemu ... and you will have qemu working and qemu-ppc working. Isnt possible have the qemu-uae.so working stand alone without macports because isnt a app plus there are many dipendency of the macports ported library not available on osx leopard |
28 November 2015, 13:47 | #8 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
I had a go at compiling qemu-uae tlosm but I just got errors. I can see I need to read all the PPC threads to see what mods need to be applied.
Well your description for Mac ports sounds nice, but I must be using it wrong as all it does for me is download sources, patch for OSX and compile. My understanding of a "port" is that the software is precompiled to run on the target platform. But here this is not the case. In any case I tried what you said. In fact I had tried before but gave up when I saw it was going to compile at least five packages. Download, configure, build; I don't have all day! Yes it would take all day. So I left it overnight preparing for the big one. But no I'm afraid that doesn't get qemu let alone qemu-ppc working. It ends up in error. How could you not remember that? I found a glib and gthread but needed gettext. I compiled it but it still wasn't installed where the plug in expects. I also downloaded and installed pixman when I gitted qemu-uae-master down the line but it didn't see it! :? In any case here's the complete list. /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) /usr/local/lib/libgthread-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.0.0) /usr/local/lib/libglib-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.0.0) /usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.2.0) /usr/local/lib/libpixman-1.0.dylib (compatibility version 33.0.0, current version 33.6.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0) Being qemu-uae is subordinate to FS-UAE the best thing would be to reference the libs in that app. However, others are used and the location FS-UAE may not be known so this could also break down. In any case there must be something wrong with OSX as on other platforms like Amiga for example you simply compile as static and everything works from one binary the way it should. Or you stick it in a LIBS subdir and it loads it. I read on OS9 this worked fine and on OSX they broke a working system. In any case I think qemu-uae can work standalone. You just need to take Frode's advice and set the paths for the dylibs. Or if not, then likewise find dylibs needed, include them and write a simple bash script to install them. Or one of those icon symlinks. Last edited by Hypex; 28 November 2015 at 13:53. |
30 November 2015, 19:53 | #9 |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
umm...
did you installed the last Xcode for Leopard 3.1? look like something is missing there. if you need and hand try build qemu-uae.so with this parameters: replace it in the configure. Ah i forget you need gcc 4.2 for build qemu-uae right. sudo port select --set gcc gcc42 Code:
CFLAGS="$CFLAGS" ./configure \ --prefix=/opt/local \ --cpu=ppc \ --cc=gcc-4.2 \ --objcc=gcc-4.2 \ --host-cc=gcc-4.2 \ --python=/opt/local/bin/python2.7 \ --target-list=ppc-softmmu \ |
01 December 2015, 10:37 | #10 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
I have the latest I could find. Xcode 3.1.4. Thanks for tips. I actually got it configured fine from this and compiled all objects:
CFLAGS="-faltivec -maltivec" ./configure But it broke on linking: Undefined symbols: I tried to select gcc42 but got this: Selecting 'gcc42' for 'gcc' failed: The specified group 'gcc' does not exist. Also tried to install gcc42 and gcc from port but it failed to find package. I've been following the " FS-UAE for OS X PPC (Not officially supported)" thread for compiling tips. A host of information on there but hard to pluck out what I need. |
02 December 2015, 14:29 | #11 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Hell again.
Given my compiling attempts a rest for now and tried to get existing plug in working. Almost got it. I got stuck on gettext. because port puts the lib in a different spot than what qemu expects. Whatever is up with that. Managed to locate and copy it. Butt now it's stuck on pixman! The horror never ends. Yes my port is updated. Reason: Incompatible library version: qemu-uae.so requires version 33.0.0 or later, but libpixman-1.0.dylib provides version 22.0.0 |
02 December 2015, 20:17 | #12 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
qemu includes its own version of pixman, and qemu-uae can be compiled with it (linked statically). The official plugins are compiled with the built-in pixman version, and the latest qemu-uae (from github) should automatically configure with "--without-system-pixman".
|
03 December 2015, 18:20 | #13 | |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
Quote:
sudo port install gettext , remember to do everytime first sudo port selfupdate and sudo port upgrade outdate for have the lastest ports . hope you will have the qemu-uae.so work |
|
04 December 2015, 14:51 | #14 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Thanks guys. I got it! I mean, I got it compiled. But now what do I do with it?
I put it in place of the other plug in (when I found it) but I seem to be back where I started. It still doesn't seem to be finding the libs and FS-UAE is still crashing. Most annoying is that the log keeps getting cut off so I don't exactly know what is wrong with it. Also I had to specify gcc-4.2 in the configure line. Because the port set gcc42 failed I didn't think it would work. But that configure line did work when it came to linking it all together. My ports are all updated and I recompiled qemu again to be sure but no go. :-? My current state of affairs: Code:
qemu-uae.so: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8) /opt/local/lib/libgthread-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0) /opt/local/lib/libglib-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0) /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.4.0) /opt/local/lib/libpixman-1.0.dylib (compatibility version 33.0.0, current version 33.8.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0) Code:
Thread 6 Crashed: 0 dyld 0x8fe121c8 ImageLoaderMachO::hasCoalescedExports() const + 4 1 dyld 0x8fe15204 ImageLoaderMachO::parseLoadCmds() + 136 2 dyld 0x8fe05e00 dyld::loadPhase5open(char const*, dyld::LoadContext const&, std::vector<char const*, std::allocator<char const*> >*) + 1200 3 dyld 0x8fe0606c dyld::loadPhase4(char const*, dyld::LoadContext const&, std::vector<char const*, std::allocator<char const*> >*) + 232 4 dyld 0x8fe064c0 dyld::loadPhase3(char const*, dyld::LoadContext const&, std::vector<char const*, std::allocator<char const*> >*) + 596 5 dyld 0x8fe06980 dyld::loadPhase1(char const*, dyld::LoadContext const&, std::vector<char const*, std::allocator<char const*> >*) + 176 6 dyld 0x8fe06ae8 dyld::loadPhase0(char const*, dyld::LoadContext const&, std::vector<char const*, std::allocator<char const*> >*) + 240 7 dyld 0x8fe06b9c dyld::load(char const*, dyld::LoadContext const&) + 136 8 dyld 0x8fe0c154 dlopen + 504 9 libSystem.B.dylib 0x94b19ca4 dlopen + 84 10 no.fengestad.fs-uae 0x000cb214 0x2000 + 823828 11 no.fengestad.fs-uae 0x000cb2e0 0x2000 + 824032 12 no.fengestad.fs-uae 0x002664f4 0x2000 + 2508020 13 no.fengestad.fs-uae 0x002656a4 0x2000 + 2504356 14 no.fengestad.fs-uae 0x00265c48 0x2000 + 2505800 15 no.fengestad.fs-uae 0x000864f4 0x2000 + 541940 16 no.fengestad.fs-uae 0x002f6cac 0x2000 + 3099820 17 no.fengestad.fs-uae 0x0022ecbc 0x2000 + 2280636 18 no.fengestad.fs-uae 0x00230638 0x2000 + 2287160 19 no.fengestad.fs-uae 0x001d39e4 0x2000 + 1907172 20 no.fengestad.fs-uae 0x002464b4 0x2000 + 2376884 21 no.fengestad.fs-uae 0x0000ced8 0x2000 + 44760 22 no.fengestad.fs-uae 0x009f6bd0 0x2000 + 10439632 23 libglib-2.0.0.dylib 0x056a8a34 g_thread_proxy + 160 24 libSystem.B.dylib 0x94b52f70 _pthread_start + 316 |
08 December 2015, 19:44 | #15 |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
Hypex good job i see it compiled in the zone ;-)
only problem here it not loading the plugin i have the green screen . i dont know if because some library differs from your in my system . in any way let me know your performances there im really courious do a time demo with doom (demo 3) an with quake (demo 2) |
09 December 2015, 13:06 | #16 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Hello guys. I thought I posted this last night. Must have forgot to press send!
As you could see. I just uploaded my build of qemu-uae and it's been zoned to the top. Please test it. It doesn't work here because it just causes FS-UAE to crash and I can't figure out why. I used FS-UAE 2.7.4. Is that incompatible? So, tlosm, my plug in has the same effect as yours. Look like I have all the dylibs needed, but it just crashes in the end. But here I don't get any indication why. There is no message about failed plug in. There is a crash in thread 6 as usual. And an fs-uae.log.txt with its tail cut off! Does yours say anything or is it always cut off like mine? I also came across a useful tool called macdylibbundler when compiling another project. I just used it to relocate all dylibs in a subdir that can easily be uploaded in an archive. It's the closest to being static you can get by being dynamic! https://github.com/auriamg/macdylibbundler Here's a manifest of the dylibs. Code:
/Users/Damien/Documents/FS-UAE/Plugins/qemu-uae-macosx-ppc/3.8.1qemu2.2.0/qemu-uae.so: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) @executable_path/../libs/libz.1.2.8.dylib (compatibility version 1.0.0, current version 1.2.8) @executable_path/../libs/libgthread-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0) @executable_path/../libs/libglib-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0) @executable_path/../libs/libintl.8.dylib (compatibility version 10.0.0, current version 10.4.0) @executable_path/../libs/libpixman-1.0.dylib (compatibility version 33.0.0, current version 33.8.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0) |
12 December 2015, 18:51 | #17 |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
Hypex what meke me suspicius is the 1mb difference from my plugin and your your is 5mb mine is 6 mb .. i m using last version of Snakecoils fsuae . in any way i will make a better check for see if i will have the way to make it run
|
14 December 2015, 14:39 | #18 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
Hmm. Well I compiled the plug in from a git clone last week so it was recent. I also found qemu-uae.so was created but I don't know how! I searched for content and nothing shows up in any makefile! Is this an OSX search bug where it doesn't find text you know exists inside a file!?
I wanted to compile FS-UAE as well but got stuck in an error as usual. I forget exactly but think it wanted GLES IIRC. But Mac ports has yet another broken port as it didn't work after downloading. Or it installed something but CMake complained it wasn't installed! I then got the source myself but found the source was also broken and won't compile on OSX. I was sick of the BS and gave up. It's almost Xmas, I have presents to find, not waste my life compiling broken programs! Perhaps my libs differ exactly from FS-UAE. Either way, I duplicated the libs I had on my other system in the same places and it broke there as well. Always the same way. And it always crashes which must destroy the log file. Any way to stop this happening? Really annoying that OSX insists on crashing it for a file/lib not found error! Argh!!!! Also, have you tried a static build of qemu-uae.so? I found I could easily tell it to do one but it broke on compiling. Forget why. Some error, never fully look into it. In the meantime perhaps you could run the dylibbundler for me. Like so: dylibbundler -od -b -x ./qemu-uae.so -d ../libs Then send it to me. Same for FS-UAE could be good test. :P In future I'd like to make a build script that creates the version folder and puts it all together. With libs of course! |
15 December 2015, 19:30 | #19 |
Registered User
Join Date: Sep 2014
Location: italy
Posts: 189
|
Nothing to do it dont copy any libs and exit with error :-/
really strange |
16 December 2015, 13:12 | #20 |
Registered User
Join Date: May 2015
Location: Australia
Posts: 131
|
What's the error?
I forget how I built it but I'm sure I recreated the plug-in folder structure, did a cd to where the qemu-uae.so file is and then executed the command there as above. I may have used the -of switch instead of -od and created a libs folder. By the looks of it, if you examine mine from the Zone, it looks like I set up a libs folder there where the qemu-uae.so file sits. So the following command should do the trick: dylibbundler -of -b -x ./qemu-uae.so -d ./libs Last edited by Hypex; 17 December 2015 at 13:16. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
FS-UAE keeps crashing on OSX PPC | Hypex | support.FS-UAE | 58 | 08 March 2016 19:17 |
FS-UAE for G4 ppc OSX 10.5.8 | elowan | support.FS-UAE | 35 | 10 November 2014 19:22 |
[Solved] FS-UAE 2.1.10 build fails on OSX PPC | mr_a500 | support.FS-UAE | 6 | 12 April 2013 18:40 |
FS-UAE (OSX-PPC) - No OSD menu? | snakecoils | support.FS-UAE | 10 | 22 March 2013 22:51 |
FS-UAE 2.0: How make an OSX PPC build? [Solved] | snakecoils | support.FS-UAE | 8 | 04 November 2012 17:06 |
|
|