2.0.4 OS X binary release is x86_64 only

Hi,
in another thread, rtrussell pointed out that the 2.0.4 OS X framework
is built for x86_64 only ( http://libsdl.org/release/SDL2-2.0.4.dmg
).

Just wondering if this was an oversight? Apple made x86_64 a system
requirement in OS X 10.7, so I imagine most people still using 10.5/6
are doing so because they have 32-bit CPU’s and can’t run 10.7+.

Could someone edit the download page on the website to read
"SDL2-2.0.4.dmg (64-bit Intel 10.5+)"?

Thanks,
Eric

It would be worthwhile to recompile the frameworks as universal
libraries supporting the i386, x86_64, and x86_64h architectures. Even
though the OS itself has been 64-bit only since 10.7, it can still run
32-bit applications, and developers may have a reason to favor (or
only provide!) a 32-bit version of their application. For example,
EDuke32 currently has special assembly code only for i386.

Until the framework downloads are updated, Homebrew provides
Unix-style universal libraries of SDL if you run brew install --universal sdl2, and the same for the subprojects. (For existing
installations, you will first need to run brew uninstall --force sdl2 to remove the bottled x86_64-only library.)

-Evan

Indeed.
I don’t even dare to compile Daikatana as 64bit binary… getting Quake2
64bit clean was hard enough, Daikatana’s code is worse…
Also, 32bit/OSX 10.6 compat is nice for older Core2-based Macbooks.

AFAIK 2.0.4 OSX binaries being 64bit-only was an accident, so the next
release will probably provide both again.
If 2.0.5 will take as long as 2.0.4, updated 2.0.4 binaries would be
great, of course :slight_smile:

Cheers,
DanielOn 06/17/2016 10:00 PM, Evan Ramos wrote:

It would be worthwhile to recompile the frameworks as universal
libraries supporting the i386, x86_64, and x86_64h architectures. Even
though the OS itself has been 64-bit only since 10.7, it can still run
32-bit applications, and developers may have a reason to favor (or
only provide!) a 32-bit version of their application. For example,
EDuke32 currently has special assembly code only for i386.

Daniel Gibson wrote:

AFAIK 2.0.4 OSX binaries being 64bit-only was an accident, so the next release will probably provide both again.

I sincerely hope you’re right, but both SDL2_ttf-2.0.13.dmg and SDL2_ttf-2.0.14.dmg are also 64-bit only, which gives me some concern that it may have been a deliberate decision. There are Macs with 32-bit processors running OS-X 10.6 (which AIUI is still supported by SDL2) and, as has been pointed out, there can be good reasons to compile a 32-bit app for later versions (for example if it contains assembler code).

If any mainstream OS stops supporting 32-bit apps that will cause major problems, but I don’t see it happening any time soon.

eric.w wrote:

Just wondering if this was an oversight?

As nobody here seems to know for sure, would it be appropriate to report it as a ‘bug’ so that the right people will be alerted? Or is there a better way to communicate with whoever is responsible for creating the binaries?

Richard.

eric.w wrote:

Just wondering if this was an oversight?

As nobody here seems to know for sure, would it be appropriate to report
it as a ‘bug’ so that the right people will be alerted? Or is there a
better way to communicate with whoever is responsible for creating the
binaries?

Richard.

Yes, reporting a bug sounds good.

It looks like Sam disabled 32+64-bit for the Xcode project in this
changeset: https://hg.libsdl.org/SDL/rev/957d1cf8e26f

I attached a patch that restores building 32+64 bit in the Xcode projects
(only for release builds; the “Build Active Architecture Only” setting is
"true" for debug builds.)
-------------- next part --------------
diff -r b82c0f22d22a Xcode/SDL/SDL.xcodeproj/project.pbxproj
— a/Xcode/SDL/SDL.xcodeproj/project.pbxproj Wed Jun 08 08:01:21 2016 -0700
+++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj Wed Jun 22 11:55:18 2016 -0600
@@ -2767,6 +2767,7 @@
00CFA621106A567900758660 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {

  •   		ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
      		DEPLOYMENT_POSTPROCESSING = YES;
      		GCC_ALTIVEC_EXTENSIONS = YES;
      		GCC_AUTO_VECTORIZATION = YES;
    

@@ -2827,6 +2828,7 @@
00CFA627106A568900758660 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {

  •   		ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
      		GCC_ALTIVEC_EXTENSIONS = YES;
      		GCC_AUTO_VECTORIZATION = YES;
      		GCC_ENABLE_SSE3_EXTENSIONS = YES;
    

diff -r b82c0f22d22a Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj
— a/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj Wed Jun 08 08:01:21 2016 -0700
+++ b/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj Wed Jun 22 11:55:18 2016 -0600
@@ -3927,6 +3927,7 @@
002A85B21073008E007319AE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {

  •   		ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
      		FRAMEWORK_SEARCH_PATHS = (
      			"$(SRCROOT)/../SDL/build/$(CONFIGURATION)",
      			"$(HOME)/Library/Frameworks",
    

@@ -3935,6 +3936,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = …/…/include;
MACOSX_DEPLOYMENT_TARGET = 10.6;

  •   		ONLY_ACTIVE_ARCH = YES;
      	};
      	name = Debug;
      };
    

@@ -4053,6 +4055,7 @@
002A85D41073009D007319AE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {

  •   		ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
      		FRAMEWORK_SEARCH_PATHS = (
      			"$(SRCROOT)/../SDL/build/$(CONFIGURATION)",
      			"$(HOME)/Library/Frameworks",On Tue, Jun 21, 2016 at 7:34 AM, rtrussell <news at rtrussell.co.uk> wrote: