#143 closed defect (wontfix)
Build fails on 64-bit Mac OS X
Reported by: | felix winkelmann | Owned by: | Ivan Raikov |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | build system | Version: | 4.2.x |
Keywords: | arch | Cc: | Ivan Raikov |
Estimated difficulty: |
Description
uname
appears to return i386
on 64-bit Macs, so assembling the apply-hack will fail.
Attachments (1)
Change History (14)
Changed 15 years ago by
Attachment: | config-arch.sh.patch added |
---|
comment:1 Changed 15 years ago by
I have attached a patch for config-arch.sh that checks the output of gcc -dumpspecs under Darwin to determine if this is a 64-bit machine.
comment:2 Changed 15 years ago by
There was a post to the list a few months ago about this problem on OS X 10.6 and I recommended compiling with ARCH=x86-64 as a workaround. But I did not have Snow Leopard to test a proper fix (and still don't).
However, this is what raikov's patch does on my box:
$ gcc -dumpspecs | grep -A2 darwin_arch: | paste - - | grep x86_64 *darwin_arch: %{m64:x86_64;:i386}
This is on OS X 10.5 32-bit, but it would set ARCH=x86-64 unconditionally. That is only fine if you wish to force 64-bit builds on any OS X system that supports them.
comment:3 Changed 15 years ago by
And let me point out that is a bad idea. On 10.5, even though it supports 64-bit, gcc is configured to build 32-bit. That means user-built libraries are typically all 32-bit. You will break everything if you force 64-bit without the user's permission.
On 10.6 gcc will build 64-bit by default so this is fine.
Therefore any patch needs to do two things:
1) If ARCH is not set, determine the default bittedness of gcc and configure ARCH accordingly.
2) Probably, permit override of 64-bit to 32-bit if ARCH=x86 is specified on 10.6. I assume this is possible on 10.6, however, I do not know what the flag is (-m32?)
Sounds like I need to get 10.6 soon.
comment:4 Changed 15 years ago by
I don't see what's wrong with just letting the user decide. A note in the README and possibly a warning at build-time is enough. We do this for PLATFORM
, and we can require it just as well for ARCH
.
comment:5 follow-up: 7 Changed 15 years ago by
Ivan, is there a way of finding out the processor-type?
comment:6 Changed 15 years ago by
Milestone: | 4.3.0 → 4.4.0 |
---|
comment:7 follow-up: 8 Changed 15 years ago by
Replying to felix:
Ivan, is there a way of finding out the processor-type?
Well, as per zbigniew's suggestion, it appears that it is better to check whether the default system libraries are 32-bit or 64-bit; the processor type is always reported as x86_64 by gcc on recent Macs, so this is not a reliable indicator. I will look into a reliable way to detect what target the system libraries were compiled for.
comment:8 follow-up: 9 Changed 15 years ago by
Well, as per zbigniew's suggestion, it appears that it is better to check whether the default system libraries are 32-bit or 64-?> bit; the processor type is always reported as x86_64 by gcc on recent Macs, so this is not a reliable indicator. I will look into a > reliable way to detect what target the system libraries were compiled for.
You probably want to look for a Darwin Kernel Version >=10 and 'sysctl hw.cpu64bit_capable: 1'
If the kernel version is less than 10 or the CPU is not 64-bit capable, then build 32-bit.
comment:9 Changed 15 years ago by
Owner: | set to felix winkelmann |
---|---|
Status: | new → accepted |
Replying to ddp:
Well, as per zbigniew's suggestion, it appears that it is better to check whether the default system libraries are 32-bit or 64-?> bit; the processor type is always reported as x86_64 by gcc on recent Macs, so this is not a reliable indicator. I will look into a > reliable way to detect what target the system libraries were compiled for.
You probably want to look for a Darwin Kernel Version >=10 and 'sysctl hw.cpu64bit_capable: 1'
If the kernel version is less than 10 or the CPU is not 64-bit capable, then build 32-bit.
Ok, but how do I check for this?
comment:10 Changed 15 years ago by
Owner: | felix winkelmann deleted |
---|---|
Status: | accepted → assigned |
Since I have no access to such a system, I will refuse to do anything about it, unless someone gives me some assistance.
comment:11 Changed 15 years ago by
Owner: | set to Ivan Raikov |
---|
comment:12 Changed 15 years ago by
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
Closed, due to lack of interest and assistance.
Patch for config-arch.sh