pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk Try again to fix Mac OS X Snow Leopard ABI issue (3...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/60a3ffd98917
branches:  trunk
changeset: 399539:60a3ffd98917
user:      tron <tron%pkgsrc.org@localhost>
date:      Tue Sep 22 09:17:50 2009 +0000

description:
Try again to fix Mac OS X Snow Leopard ABI issue (32-bit vs. 64-bit):
1.) Always set the "ABI" variable.
2.) Default to 64-bit mode if the machine is able to run 64-bit binaries.
    This seems to match the default behavior of Xcode (Apple's toolchain).
3.) Set "LOWER_ARCH" so it automatically evalutes to the correct value
    based on the ABI we are compiling for, not on based on the kernel
    the machine is running. This even works properly if the ABI is
    set in "/etc/mk.conf" or on the command line.

Thanks a lot to OBATA Akio for providing the crucial hint to get
this working properly.

diffstat:

 mk/bsd.prefs.mk |  14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diffs (29 lines):

diff -r a5c6be836647 -r 60a3ffd98917 mk/bsd.prefs.mk
--- a/mk/bsd.prefs.mk   Tue Sep 22 09:16:51 2009 +0000
+++ b/mk/bsd.prefs.mk   Tue Sep 22 09:17:50 2009 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.prefs.mk,v 1.297 2009/09/21 15:28:03 tron Exp $
+# $NetBSD: bsd.prefs.mk,v 1.298 2009/09/22 09:17:50 tron Exp $
 #
 # This file includes the mk.conf file, which contains the user settings.
 #
@@ -123,7 +123,19 @@
 
 .elif ${OPSYS} == "Darwin"
 LOWER_OPSYS?=          darwin
+.if empty(OS_VERSION:M[1-9].*.*)
+_SYSCTL_HW_OPTIONAL_X86_64!=   /usr/sbin/sysctl -n hw.optional.x86_64
+.  if ${_SYSCTL_HW_OPTIONAL_X86_64} == "1"
+ABI=                   64
+.else
+ABI=                   32
+.  endif
+LOWER_ARCH.32=         i386
+LOWER_ARCH.64=         x86_64
+LOWER_ARCH=            ${LOWER_ARCH.${ABI}}
+.else
 LOWER_ARCH!=           ${UNAME} -p
+.endif
 MACHINE_ARCH=          ${LOWER_ARCH}
 MAKEFLAGS+=            LOWER_ARCH=${LOWER_ARCH:Q}
 LOWER_OPSYS_VERSUFFIX= ${LOWER_OS_VERSION:C/([0-9]*).*/\1/}



Home | Main Index | Thread Index | Old Index