XScreenSaver 5.28

XScreenSaver 5.28 out now. Minor fixes, mostly build related.
Tags: , , , ,

10 Responses:

  1. JeffreyATW says:

    Installs and works fine in OS X Yosemite, in case you were wondering.

  2. Edouard says:

    I hadn't seen UnknownPleasures before - nice! Kind of ... sluggish on the ipad though.

  3. Pavel Lishin says:

    It looks like VidWhacker is missing.

  4. sammyx says:

    Fails to build (5.28) with:

    memscroller.c: In function ‘more_bits’:
    memscroller.c:353: error: #pragma GCC diagnostic not allowed inside functions
    make[1]: *** [memscroller.o] Error 1

    Build (attempted) Using gcc 4.4.4. I'm guessing that gcc 4.6 is now the minimum required to build xscreensaver(?).

    Kind regards.

  5. Ben Carr says:

    With 5.28 none of the screen savers are working, all greyed out and I get a ScreenSaverEngine crash. I'm on 10.7.5:

    PlugIn Path: /Library/Screen Savers/BSOD.saver/Contents/MacOS/BSOD
    PlugIn Identifier: org.jwz.xscreensaver.BSOD
    Exception Type: EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000001

    Anyone else seeing this? This happens whether I "Install Everything" or manually move the *.saver to /Library/Screen\ Savers or ~/Library/Screen\ Savers
    -Ben

    • jwz says:

      I don't understand why you would be having this problem on 10.7. I would expect this on 10.6. I am confused.

      The problem is this:

      • OSX 10.5 and earlier require .saver bundles to not use GC.
      • OSX 10.6 require .saver bundles to use GC.
      • OSX 10.7 and later require .saver bundles to not use GC.

      So the way to build a portable .saver is to build it with "GC optional", via "-fobjc-gc" on the x86-64 architecture.

      But XCode 5.0.2 was the last version of XCode to support building executables that support GC, even optionally. So there's no way to make the XCode that ships with OSX 10.9 create a .saver bundle that will work on OSX 10.6. Though it will work on 10.5!

      So we tried this fix in 5.27: After compiling, hand-hack the generated binary to tag the x86-64 arch with the OBJC_IMAGE_SUPPORTS_GC flag. This means that the binary is marked as supporting GC, but there are no actual GC-supporting write barriers compiled in! At first we beleived that what this did was make incremental GCs do nothing, but full GCs work still collect ObjC objects properly. (That's what the black magic in OSX/enable_gc.c does.)

      However, it then started looking like this was actually causing intermittent crashes in malloc/calloc/free on 10.6 64-bit. Whereas, when compiled with legit -fobjc-gc by an older Xcode, those crashes didn't occur.

      So at this point, my choices are: keep an old version of Xcode around forever (a difficult solution that surely won't continue working for much longer anyway) or give up on supporting 10.6.

      Which brings me back to: I have no idea why you're seeing this on 10.7.

      • Ben Carr says:

        Thanks for the quick response. I love XScreenSaver. I can't upgrade without buying a new Matlab license. Also not sure why this is happening with 5.28, though 5.27 started crashing last week as well, I emailed you the crash reports. Can you post or host a download link to 5.26 for those of us marooned on 10.7.x?

      • Son Lam says:

        Dear Jamie,

        I tried to use external password helper program. So I was able to configure the build OK on Centos 6.5. But when I treid to build I got this error "#pragma GCC diagnostic not allowed inside functions".

        Could you let me know how I can build it.

        My OS info (Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013)

        Best Regards,

        Son Lam.

Leave a Reply

Your email address will not be published. Required fields are marked *

Connect with Facebook

You may use these HTML tags and attributes: <a href="" title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> <img src="" width="" height="" style=""> <object data="" type="" width="" height=""> <param name="" value=""> <embed src="" type="" width="" height=""> <blink> <tt> <u>, or *italics*.